数据库设计是完成一个系统很重要的一步。下面来介绍一下数据库设计的过程。
数据库设计分6个阶段:需求分析、概念设计、逻辑设计、物理设计、数据库实施、数据库运行与维护,详细内容请见:数据库设计
在这里我只简单的介绍一下我理解的概念设计、逻辑设计2个阶段。
概念设计:根据用户需求,设计数据库的概念模型
概念模型的抽象级别最高,特点如下:
●表达了数据的整体逻辑结构
●从用户需求的角度出发,对数据建模
●独立于硬件和软件
●是数据库设计人员与用户之间进行交流的工具
概念模型主要是实体联系模型(ER):ER模型简单,易理解,真实地反映用户的需求;
与计算机无关,用户容易接受。但是ER模型只能说明实体间语义的联系,还不能进一步
说明详细的数据结构。
ER模型基本元素:实体(Entity)、联系(Relationship)、属性(Attribute)
一个联系涉及到实体集的个数,成为联系的元数或度数,分为一元联系、二元
联系(1:1,1:N,M:N)、三元联系。
ER模型设计:定义实体,定义联系,分配属性
逻辑设计:据转换规则,把概念模型转换为数据库的逻辑模型,根据用户业务特点,
设计不同的外部模型,给程序员用。
逻辑模型的特点:
●表达了数据的整体逻辑结构,是设计人员对整个应用项目数据库的全面描述
●是从数据库实现的观点出发,对数据建模
●独立于硬件,依赖于软件
●是数据库设计人员与应用程序员之间进行交流的工具
逻辑模型有:层次,网状,关系模型3种。
关系模型:用二维表格表示实体集,用关键码表示实体之间联系的数据模型
超键、候选键、主键、外键
ER模型转换为关系模型:
1.(实体类型的转换):将每个实体类型转换为关系模式,实体的属性即为关系
模式的属性,实体标识符即为关系模式的键
2.(联系类型的转换):根据不同情况处理,以二元联系为例
(1)实体间联系为1:1,可以在两个实体类型转换成的两个关系模式中
任意一个关系模式的属性中加入另一个关系模式的键(作为外键)和联系类型的属性
(2)1:N,在N端实体类型转换成的关系模式中加入1端实体类型的键
(作为外键)和联系类型的属性
(3)M:N,将联系类型也转换为关系模式,其属性为两端实体类型的键
(作为外键)加上联系类型的属性,而键为两端实体键的组合
学生(学号,姓名,性别,年级,系)
课程(课程号,课名,学分,学时,教工号)
教师(教工号,姓名,性别,职称,职务)
选课(学号,课程号,成绩)
讲授(课程号,教工号)
除此之外还要满足三范式
第一范式:关系模式R的每个关系r的属性值是不可分的原子值
第二范式:在满足第一范式的前提下每个非主属性完全函数依赖于候选键
第三范式:在满足第一范式的前提下每个非主属性都不传递依赖于候选键(2个非主
键字段的数值之间不存在函数依赖关系)