一、概念设计
依据:数据库概念设计以需求分析的结果为依据,及需求说明书、DFD图以及在需求阶段收集到的引用领域中的各种报表等。
结果:概念设计的结果是概念模型(ER图)与概念设计说明书。
E-R模型(Entity-Relationship Model),及实体联系模型,E-R图的符号如下所示:
二、逻辑设计
关系模型中的关系模式描述关系的静态结构,它是稳态、稳定的,而关系是动态、随用户对数据库的操作而变化的
任务:将概念模型(如ER图)转化为DBMS支持的数据模型(如关系模型),并对其进行优化。
数据依赖的类型:
函数依赖:唯一确定的关系,一个x只能推出一个y
多值依赖:不能唯一确定,一个x可以推出多个y
平凡函数依赖:y为x的子集
非平凡函数依赖:y不为x的子集
完全函数依赖:x中没有多余的属性
部分函数依赖:x中有多余的属性
传递函数依赖:x->y,y->z
无损连接:指分解的若干连接重组时可以精确恢复到原来的数据表,数据记录既没有增加也没有减少
保持函数依赖:是指原关系模式含有的属性之间的隐含关系在分解后不能丢失
候选码:能够唯一确定整个元祖的值
主码(Primary Key):候选码中的一个
外码(Foreign Key):属性或属性组x不是关系模式R的码(既不是主码也不是候选码),但x是另一个关系模式的码
关系模式的规范化:把一个低一级的关系模式分解为高一级关系模式的过程。
范式:关系模式满足的约束条件称为范式。根据满足规范化的程度不同,范式由第到高分为1NF、2NF、3NF、BCNF、4NF、5NF
1NF:关系模式R所有属性都是不可再分的基本数据项
2NF:属于1NF,且每个非主属性完全函数依赖于主码
3NF:属于2NF,且R中每个非主属性不传递依赖于R的主码
数据库逻辑模型的产生:概念模型按一定规则可转化为数据模型:
① 一个实体转化为一个关系模式
② 一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并
③ 一个1:n可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并
④ 一个m:n联系转化为一个关系模式
⑤ 三个或三个以上实体间的一个多元联系转化为一个关系模式
⑥ 同一个实体集的实体间的联系,也可以按1:1、1:n、m:m三种情况分别处理
三、物理设计
物理数据库设计是设计数据库的存储结构和物理实现方法。
目的:将数据的逻辑描述转换为实现技术规范,设计数据存储方案,以便提供足够好的性能并确保数据库数据的完整性、安全性、可靠性。
索引分类:
① 有序索引,索引文件机制,利用索引文件实现记录域取值到记录物理地址间的映射关系。
数据文件和索引文件是有序索引技术中的两个主题,数据文件常采用顺序文件结构。
1) 聚集索引(索引项与数据记录排列顺序一致,索引顺序文件)和非聚集索引。
一个数据文件只可建立一个聚集索引,但可建立多个非聚集索引。
2) 稠密索引(数据文件中每个查找码都对应索引码记录)和稀疏索引(部分查找码的值对应索引记录)。
3) 唯一索引(索引列不包含重复值)
4) 主索引(主码索引集上建立的索引)与辅索引(非主属性上建立的索引)。
5) 散列索引,哈希索引机制,利用散列函数实现记录域取值到记录物理地址之间的直接映射关系。
存储表的文件结构:
① 散列文件:指利用散列存储方式组织的文件,亦称为直接存取文件。散列文件的优点是:文件随机存放,记录不需进行排序;插入删除方便;存取速度快;不需要索引区,节省存储空间。缺点是:不能进行顺序存取,只能按照关键字随机存取,且访问方式只限于简单访问,并且在经过多次插入、删除后,也可能造成文件结构不合理,需要重新组织文件
② 堆文件:无需建立索引,维护代价非常低。虽然堆文件的数据访问效率低,但在数据量很少时定位文件记录的时间非常短
③ 顺序文件:指的是文件信息存放在若干连续的物理快中。其优点时简单,支持顺序存取和随机存取,顺序存取速度相对较快。缺点是文件不能动态增长,不利于文件的插入和删除。如果用户的查询条件定义在查找码上,则顺序文件是比较适合的文件结构
④ 聚集文件:将不同关系表中有关联的记录存储在一起。如果某些重要而频繁的用户查询经常需要进行多表连接操作,可以考虑聚集文件,来改善查询效率
如果在索引码上执行大量删除操作,索引页可能会出现空间的浪费,而这些被浪费的空间需要在重建索引后才能提高数据库的性能
将经常一起使用的具有公共列值的多个表中的数据行存储在一起的存储方法被称为聚集
在多属性索引中,索引属性的顺序是按照其区分度来进行排序的
四、数据库应用系统的设计与实现
两种常见的DBAS体系结构:
① 客户/服务器体系结构(C/S)
② 浏览器/服务器体系结构(B/S)
从功能角度,数据库应用系统通常划分为四个层次实现:
① 表示层,人机界面设计,影响系统易用性
设计原则:“用户自主控制”;反馈即时、上下文感知;容错与错误恢复;输入灵活;界面简洁;交互及时
② 业务逻辑层
设计原则:高内聚低耦合,即构件单一原则;构件独立功能;接口简单明确;构建间关系简单,如过于复杂,就细化分解。
设计内容:结构,行为,数据,接口,故障处理,安全设计,系统维护和保障等。
③ 数据访问层
任务:针对DBAS的数据处理需求设计用于操作数据库的各类事务。
事务:事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
事务的特性:
1) 原子性(atomicity),一个不可分割的工作单位;
2) 一致性(consistency),从一个一致性状态变到另一个一致性状态;
3) 隔离性(isolation),执行不能被其他事务干扰;
4) 持久性(durability),永久性(permanence),指一个事务一旦提交,他对数据库中数据的改变就应该是永久性的。
④ 数据持久层
属于数据组织和存储方面的设计内容
三层架构(B/S/S、C/S/S):通常意义上的三层架构就是将整个业务应用划分为:表示层、业务逻辑层(位于应用服务器)、数据访问层(位于数据库服务器)
五、应用系统安全架构设计