数据库设计,是大题中必考的,当然,也是我们开发程序必不可少的,现在对数据库设计进行一下总结。
一、数据库设计阶段划分
首先,来张图,对数据库的设计流程有一个直观的认识
(1)需求分析
目标:通过调查研究,了解用户的需求要求和处理要求
成果:整理形成需求说明书。以后设计的基础和依据。包括:数据库包含的数据、数据的特征、使用频率和数据
量的估计,例如:数据名、类型、数据的要求和使用量的大小等,通常使用数据字典进管理
(2)概念结构设计
目标:对需求分析的数据和要求进行抽象,构造反应用户环境的数据,以及数据之间相互联系的概念模型
(3)逻辑结构设计
目标:根据有关规则,将E-R图转换成关系模式。根据有关规范化的理论确定主键、外键和约束等特性
结果:DBMS所提供的数据定义语言,所写成的数据模式
(4)物理设计
目标:逻辑模型转换成物理模型,包括文件结构、索引等的设计过程
二、E-R模型
(1)包括:实体、属性、联系、联系的类型(数字)
(2)设计步骤:先设计局部的E-R图,之后进行合并(视图集成)。合并时着力消除各个局部ER图间的不一致
合并时局部ER图的冲突类型:
1)属性冲突:属性域的冲突和属性取值的冲突
2)命名冲突:同名异意,和异名同意
3)结构冲突:同一个对象在不同应用中不同的抽象,同一实体在不图中的属性个数等不完全相同
(3)局部E-R图设计步骤:确定局部视图的范围(例如与采购有有关的),识别局部的每个实体以及实体间的
联系反馈实体以及实体间联系的属性
E-R图向关系模式的转换:
1)一个实体转换为一个关系模式
2)一对一的联系,转化为一个独立的关系模式——属性:联系本身和与之相连的属性的码与任意一
端对应的关系模合并——属性: 加入两一个关系的码和 另一个关系的属性
3)一对多的关系。可以单独组成一个关系模式——各个实体的码和联系本身的属性。与n端合并——
加入另一端的码和联系本身的属性
4)多对多联系。只能转换为一个独立的关系模式。与联系相连的各个实体的码以及联系本身的属性
5)联系连接多个实体。和前四点相似