数据层的设计_第1页
数据层的设计_第2页
数据层的设计_第3页
数据层的设计_第4页
数据层的设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于基于.NET的需求分析和解决方案设计的需求分析和解决方案设计第第1章章 商务解决方案设计商务解决方案设计第第2章章 收集和分析信息收集和分析信息第第3章章 解决方案的构思解决方案的构思 第第4章章 概念设计的创建概念设计的创建 第第5章章 逻辑设计的创建逻辑设计的创建 第第6章章 物理设计的创建物理设计的创建第第7章章 表示层的设计表示层的设计第第8章章 数据层的设计数据层的设计第第9章章 设计安全规范设计安全规范第第10章章 完成计划阶段完成计划阶段第第11章章 稳定和部署方案稳定和部署方案第第8章章 数据层的设计数据层的设计设计数据存储设计数据存储优化数据访问优化数据访问实现数据有效性

2、检查实现数据有效性检查设计数据存储设计数据存储 设计过程设计过程确定实体和属性确定实体和属性确定表和列确定表和列实现关系实现关系8.1 设计数据存储设计数据存储 设计过程设计过程概念设计概念设计逻辑设计逻辑设计物理设计物理设计8.1.1 设计过程设计过程概念设计概念设计整理收集的信息整理收集的信息系统需求、使用案例和场景等分析对数据的需求分析对数据的需求确定哪些数据需要存储和处理确定哪些数据需要存储和处理8.1.1 设计过程设计过程逻辑设计逻辑设计描述将会存储在数据库中的实体和属性,可参考描述将会存储在数据库中的实体和属性,可参考逻辑对象模型使用场景现成数据说明用户如何访问、操作、浏览数据说明

3、用户如何访问、操作、浏览数据8.1.1 设计过程设计过程物理设计物理设计创建数据库结构创建数据库结构示例示例确定过程确定过程规划数据服务规划数据服务整合存储技术(一大挑战)整合存储技术(一大挑战)8.1.1 设计过程设计过程物理设计物理设计常见的物理存储技术常见的物理存储技术平面文件层次型关系型面向对象型8.1.1 设计过程设计过程确定实体和属性确定实体和属性 实体实体存储信息的对象定义数据关系属性属性描述实体仅与实体一同存在定义了数据库中的列8.1.2确定实体和属性确定实体和属性确定实体和属性确定实体和属性 表的行与列表的行与列实体可以转换成表,实例可以成为行属性可以转换成列确定实体和属性确

4、定实体和属性实体通过在数据层的逻辑设计中分析使用案例确定属性通过描述每个实体确定8.1.2确定实体和属性确定实体和属性确定表和列确定表和列表表在关系型数据库中对实体的物理表示数据以行的形式存储在表中,可使用XML进行操作可反映不同类型实体之间的关系8.1.3 确定表和列确定表和列确定表和列确定表和列行行又称记录每一行表示一个实体的实例每一行必须惟一可通过XML进行操作可通过SQL语句进行操作8.1.3 确定表和列确定表和列确定表和列确定表和列列列又称字段每一行数据的数据项以列形式存储每一列有不同类型的数据项,如电话号码表示实体的属性8.1.3 确定表和列确定表和列确定表和列确定表和列数据类型数

5、据类型允许数据库引擎验证数据的有效性分类分类系统提供的数据类型,如整型自定义数据类型8.1.3 确定表和列确定表和列确定表和列确定表和列键键惟一标识了每个实体的实例分类分类主键:惟一标识了表中的每一行外键:连接两张表8.1.3 确定表和列确定表和列实现关系实现关系在两张以上实体表之间创建键,从而实体能通过同在两张以上实体表之间创建键,从而实体能通过同一键值关联起来一键值关联起来关联的多样性关联的多样性一对一关联一对多关联多对多关联8.1.4 实现关系实现关系实现关系实现关系一对一关系一对一关系一个实体的实例与其他实体的对应实例直接相关以一张表、两张表或多张表的形式出现Attribute1Att

6、ribute2Attribute3E2_Key (PK)E1_Key (FK)Entity2Attribute1Attribute2Attribute3E1_Key (PK)E2_Key (FK)Entity18.1.4 实现关系实现关系实现关系实现关系一对多关系一对多关系一个父实体可对应有多个子实体在子实体上需要采用外键表明关系Attribute1Attribute2Attribute3E1_Key (PK)Attribute1Attribute2Attribute3E2_Key (PK)E1_Key (FK)Entity1Entity28.1.4 实现关系实现关系实现关系实现关系多对多关系

7、多对多关系使用连接表在连接表中存储两个实体的关系信息Attribute1Attribute2Attribute3E1_KeyIDAttribute1Attribute2Attribute3E2_KeyIDE1_KeyID (FK)E2_KeyID (FK)EmployeeCustomerContacts8.1.4 实现关系实现关系第第8章章 数据层的设计数据层的设计设计数据存储设计数据存储优化数据访问优化数据访问实现数据有效性检查实现数据有效性检查优化数据访问优化数据访问优化数据访问的最佳实践优化数据访问的最佳实践索引数据索引数据分片数据分片数据规范化数据规范化数据8.2 优化数据访问优化数据

8、访问优化数据访问的最佳实践优化数据访问的最佳实践优化应用程序优化应用程序尽可能减少结果集请求的往返次数尽可能缩小结果集减少并发解决冲突对应用程序进行压力测试8.2.1 优化数据访问的最佳实践优化数据访问的最佳实践优化数据访问的最佳实践优化数据访问的最佳实践优化事务处理优化事务处理设计精简、持续时间短的事务处理尽量少用分布式事务处理在跨边界的情况下有效地进行通信8.2.1 优化数据访问的最佳实践优化数据访问的最佳实践优化数据访问的最佳实践优化数据访问的最佳实践优化数据库优化数据库创建索引,但不要使用过多的索引划分、规范经常需要修改的数据反规范化经常需要读取的数据8.2.1 优化数据访问的最佳实践

9、优化数据访问的最佳实践索引数据索引数据索引是一个已排序的数据列表索引是一个已排序的数据列表好处好处良好的索引可优化数据访问和更新索引还可保证数据的完整性8.2.2 索引数据索引数据索引数据索引数据类型类型聚簇索引通常是表的主键物理上记录了表中数据行的顺序高效率的查询增加了数据写入的时间非聚簇索引记录了表中一列或者多列的索引信息8.2.2 索引数据索引数据分片数据分片数据将数据划分为多张表将数据划分为多张表无法通过数据优化来提高访问速度时使用无法通过数据优化来提高访问速度时使用好处好处降低单张表的数据量提高数据访问速度8.2.3 分片数据分片数据分片数据分片数据类型类型水平分片将含多行的数据表划

10、分成几张含相同列的数据表垂直分片将含多列的数据表划分成几张含相同行的数据表8.2.3 分片数据分片数据规范化数据规范化数据定义数据模型,将数据库分割成几张相关表的集合定义数据模型,将数据库分割成几张相关表的集合好处好处将信息冗余减小到最小,提高查询效率降低数据不一致加快数据修改操作,如插入、更新、删除8.2.4 规范化数据规范化数据规范化数据规范化数据第一范式第一范式 表必须为两维,分行和列 每个单元格仅能有一个值 每一列只能表达一个意思EmployeeCustomerJobTaskDateExpensesHoursDescriptionTimesheetEmployeeFirstNameEm

11、ployeeLastNameCustomerNameCustomerLocationJobNameJobDescTaskNameTaskDescDateExpensesTotalHoursBillableHoursDescriptionTimesheetIDTimesheet第一范式第一范式 8.2.4 规范化数据规范化数据规范化数据规范化数据EmployeeIDCustomerIDJobDescTaskNameTaskDescDateExpensesTotalHoursBillableHoursDescriptionTimesheetIDTimesheet第二范式第二范式 EmployeeF

12、irstNameEmployeeLastNameCustomerNameCustomerLocationJobNameJobDescTaskNameTaskDescDateExpensesTotalHoursBillableHoursDescriptionTimesheetIDTimesheet第二范式第二范式通过实体减少冗余将仅与部分值相关的属性移到其他表中尽可能的整合信息8.2.4 规范化数据规范化数据规范化数据规范化数据TimeSheetIDEmployeeIDCustomerIDJobIDTaskIDTaskDescDateExpensesTotalHoursBillableHours

13、Description时间表时间表员工员工客户客户JobIDJobDesc工作工作TaskIDJobIDTaskDesc任务任务完成完成 与之签约与之签约 花费时间花费时间 有多个有多个 主键主键外键外键关系字关系字 第三范式第三范式去除所有不依赖键值的列一般将不与表直接相关的实体移到其他表中消除删除和更新的不规范没有冗余8.2.4 规范化数据规范化数据规范化数据规范化数据反规范化数据反规范化数据规范化数据的逆过程减少表的关联形成较多列的表好处好处优化性能降低复杂度需要考虑的问题需要考虑的问题增加了冗余数据同步问题8.2.4 规范化数据规范化数据第第8章章 数据层的设计数据层的设计设计数据存储

14、设计数据存储优化数据访问优化数据访问实现数据有效性检查实现数据有效性检查数据完整性数据完整性数据完整性需求的验证数据完整性需求的验证确定业务规则确定业务规则在数据库中实现业务规则在数据库中实现业务规则在组件中数据有效性检查的实现在组件中数据有效性检查的实现实现数据有效性检查实现数据有效性检查8.3 实现数据有效性检查实现数据有效性检查数据完整性数据完整性数据的一致性和准确性数据的一致性和准确性为列定义一组有效的值并确定是否允许空值为列定义一组有效的值并确定是否允许空值表中每行都有惟一的标识,即主键值表中每行都有惟一的标识,即主键值确保主键(父实体)与外键(子实体)的关系一直存在确保主键(父实体

15、)与外键(子实体)的关系一直存在确保数据库中的数据正确且有效(正确的数据类型、格式并在确保数据库中的数据正确且有效(正确的数据类型、格式并在范围限制之内)范围限制之内)实体完整性实体完整性引用完整性引用完整性 数据有效性数据有效性域完整性域完整性8.3.1 数据完整性数据完整性数据完整性需求的验证数据完整性需求的验证参考解决方案设计阶段确定的数据需求参考解决方案设计阶段确定的数据需求特别注意需求中对以下方面的要求特别注意需求中对以下方面的要求惟一性限制和约束确保解决方案数据要求中所有逻辑和物理需求都已确保解决方案数据要求中所有逻辑和物理需求都已满足满足8.3.2 数据完整性需求的验证数据完整性

16、需求的验证确定业务规则确定业务规则例如:未到款的货是否能发例如:未到款的货是否能发例如:产品售价是否能降到某一水平或者库存能否小于零例如:产品售价是否能降到某一水平或者库存能否小于零例如:当库存产品为负或者订单到款时,确定进行何种操作例如:当库存产品为负或者订单到款时,确定进行何种操作确定业务规则是将数据需求得到的逻辑模型转变成确定业务规则是将数据需求得到的逻辑模型转变成解决方案的基础解决方案的基础确定业务规则包括确定业务规则包括 数据有效必须满足的条件 必须避免的条件 事件发生的顺序8.3.3 确定业务规则确定业务规则业务规则可通过一组条件来实现业务规则可通过一组条件来实现利用数据库自身的功能利用数据库自身的功能 数据类型利用编程实现业务规则利用编程实现业务规则 存储过程 脚本在数据库中实现业务规则在数据库中实现业务规则 默认值 数据有效性规则 键 触发器8.3.4 在数据库中实现业务规则在数据库中实现业务规则在组件中数据有效性检查的实现在组件中数据有效性检查的实现如果可能,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论