写在前面
在学习了将现实世界中的实体转换为信息世界中的模型之后,我们就要学习数据库设计的一个过程,并且如何根据E- R图设计一个好的数据库这是需要掌握的
数据库设计的四个过程
1)需求分析
2)概念数据库设计:得到概念模型,例如 E-R 图
3)逻辑数据库 设计:建立关系模型,得到三层抽象中的外模式
4)物理数据库 设计:依赖于具体的 DBMS 组织物理数据
1.如何做需求分析
理解企业业务过程和数据处理流程、理解数据处理的性能需求;然后总结提交一份需求分析报告,形成数据库设计的“源”清单和“属性”清单以及详细描述,有球注意业务规则与属性处理规则
2.概念模型数据库设计
进一步深入理解,对信息源进行抽象,发现信息(属性)之间的内在本质联系,提交一个概念数据库设计报告,一般最重要的是用E-R模型或其他视图表示出来,让大家理解的同时看懂你自己的理解。
设计概念数据库的时候可以用两种思路:先局部再全局、先全局再局部
概念数据库设计时要记得消除冲突:属性冲突、结构冲突、命名冲突
3.逻辑数据库的设计
逻辑数据库设计最后要提交 逻辑数据库设计报告。应当包含数据库的逻辑设计。
E-R 图向关系模式的转换
- E-R 图的实体转换为关系
- E-R 图的属性转换为属性
- E-R 图的关键字转换为主键
- E-R 图的复合属性应当分解成多个属性或者- 合并车一个关系
- E-R 图的多值属性应当和主键一起 形成一个新的关系
- 一对一联系,且双方都是部分参与时,可以将联系定义为新的关系,属性为双方的主键
- 多对一联系,将单方参与实体的主键作为多方参与实体的属性
- 多对多联系,应当新建一个关系,其属性为双方的主键
- 弱实体的主键应当包含依赖的强实体的主键
分类实体对应的关系应包含一般实体的主键
如果分类是完全的,则可以不建立一般实体对应的关系 - 对于多元联系(一个联系关联多个实体),可
①引入新的关系表示这个联系,关系应继承各个实体的主键,将其作为主键
②引入新的关系,并使用自己独立的 ID 作为主键,然后引入关联的各个实体的主键作为普通的属性
③转换为多个二元联系
那么关于泛化与具体化实体的转换是怎样的呢?
数据库设计中可能存在的问题
- 数据库中可能存在冗余。
- 在插入数据和删除数据时可能出现异常
当然在消除这些问题时可能也会有一些其他的不便,那如何选择就是我们数据库设计人员的选择了,我们往往根据之前学的数据库设计理论进行规范和约束。
4.如何做物理数据库设计
我们在这里需要根据具体的DBMS系统(选择合适的DBMS)进行合理构建,关于这部分内容我们会在接下来几节讲述。
我需要依据逻辑数据库设计报告,利用具体DBMS,创建数据库/表,确定物理存储方式和存储空间,并合理创建索引和视图等,形成并提交物理数据库设计报告
DBMS 选型
数据库的存储结构
设置触发器
设置安全性控制
。。。
等等其它一些设计
最后
在这里基本就将一个数据库工作者在拿到需求后如何进行分析并设计一个合理的数据库的一些思考角度进行了讲述和规范。
至于具体物理数据库如何构建在后面几节讲述。