第五章:数据库设计基础
一,实体与联系
二、关系模型
三、关系模型规范化
四、关键字
五、数据的完整性
5.1实体与联系
数据库设计的基本方法是建立 E-R模型,在
将 E-R模型转换为关系模型,再对关系模型
进行规范化处理。
? 实体,客观存在并可相互区别的事物。将
实体具有的特性叫属性。实体表示的是一
类事物。
? 实体标识符,如果某个属性或属性的组合
能惟一的表识出实体中的每一行,则选择
该属性或属性的组合作为实体表识符。
? 联系,实体不是孤立的,实体与实体之间
有联系。 1对 1,1对 N,M对 N。
E-R模型
数据库设计就是将现实世界的数据组织
成数据库管理系统所采取的数据模型。
E-R图有 3个要素:
1 实体 矩形
2 属性 椭圆
3实体之间的联系 菱形框表示
5.2关系模型
关系就是一个具有下列特点的二维表格:
1.表格中的每一列都是不可再分的基本数
据项。
2.每列的名字不同,同一列的数据类型相
同。
3.行的顺序无关紧要。
4.列的顺序无关紧要。
5.关系中不允许有完全相同的两行存在。
相关概念,
将关系称之为表,将关系中的行称之为元组。
也称之为记录或行。将关系中的列称之为属性,
也称之为字段或列。元组与属性相对应,记录与
字段对应,行和列相对应。
1课程表
2学生表
3学生选课表
5.3关系模型规范化
关系模型规范化的目的是为了消除存储异常,减少
数据冗余,保证数据的完整性和存储效率。
1数据冗余。
2数据不一致。
3维护困难。
— 范试
一个关系的每个属性都是不可在分的基本数据项,
该关系是 I范式。
不满足该条件的关系模型称为非规范化关系。
1.函数依赖
(1)课程编码能唯一的标识出课程表中的每一行,
所以课程编码是 主关键字 。
例:
主关键字为,当知道学号,课程名称时,
就能唯一地确定出学生的成绩,成绩即依赖学
号,有依赖课程名称,它完全函数依赖主关键
字,如果知道学号,就可以确定出姓名,所以
姓名属性只依赖于学号,它与课程名无关,它
只依赖于主关键字的一部分,则称学号属性部分函数依赖于主关键字。
(2)函数传递依赖
课程编码和系部名称之间存在函数传递依赖关
系。
2.范式
2范式 首先是 1范式,关系中的每一个
非主属性完全函数依赖于主关键字。则
该关系是 2范式。
将非 2范试为 2范式的方法是,将部分
函数依赖关系中的主属性和非属性从关
系中提取出来。单独构成一个关系模式:
将关系模式中余下的属性,加上主关键
字,构成另一个关系。
3范式 首先是 2范式,且关系中的任何
一个非主属性都不传递依赖于任何主关
键字,则关系是 3范式。
首先需要找出关系中的所有主关键字,
然后确定任何一个非主属性和任何主关键
字之间是否存在函数传递依赖关系。如果
有则删除函数传递依赖关系。
关键字
关键字是用来唯一标识表中每一行的属
性或属性的组合,也可一将其称之为关键
码,码或键。
后选关键字
是那些可以用来作关键字的属性或属
性组合 。
将被选中的那个关键字称之为 主关键字 。
在一个表中只能指定一个主关键字,它的值必
须是惟一的并且不允许为空值。
公共关键字 就是连接两个表的公共属性。
关键字分 为主关键字,和 外关键字,外关键字,
亦称为外键或外码,它由一个表中的一个属性
或多个属性所组成。
一个表不一定有外关键字,而且外关
键字的也不一定是惟一的。
主键 所在的表称之为主表,外键所在的表
称为从表。
数据的完整性 分为域的完整性,表的完整
性和参照完整性。
域完整性 也可以为列的完整性或用户定义
的完整性。
表的完整性也可称为实体的完整性。
参照完整性 也称之为引用完整性。参照完
整性是对表与表之间的联系而言的。
保证参照完整性的规则
( 1)对从表作 INSERT操作时要保证外关键字
的值一定要在主表中存在。
( 2) UPDATE 从表的外关键字时,要保证修
改后的外键值一定要在主表中存在,就是说要
参照主表的主关键字的值。
( 3) UPDATE 主表的主关键字时,一定要注
意从表中是否存在该关键字。如果有,则禁止
所做的修改或级联修改所有从表中与之相应的
外关键字的值。
( 4) DELETE 主表的主关键字时,一定要注意
从表中是否存在该关键字。如果有,则禁止
所做的删除或级联删除所有从表中与之相应
的外关键字的值。