第2章 关系数据库基本原理.ppt
文本预览下载声明
* 实体完整性用主键约束,参照完整性通过建立两个一对多表间的关系来约束,域完整性是在建表时建立的约束,如部门编号列,只允许输入4个字符,在输入数据时不能超过4个 * 有问题 插入异常:关系数据模型不允许有数据完全相同的行,但该表可能会出现,一旦在不同时间从同一供应商处购买了相同数量的同种商品,描述这两次进货的信息元组会完全相同 删除异常:如果为了提高处理效率而把一些时间比较长的元组删除,就可能把一些最近没有业务往来的供应商的信息删除 更新异常:如华科电子有限公司如果更换了联系人,则需要更改多条记录,而且容易漏掉! * 2.3 关系模式的分解 引例:表2-2关系模型存在如下3方面的问题。 插入异常 删除异常 数据冗余与更新异常 供应商代码 供应商名称 联系人 商品名称 订货数量 单价 S001 华科电子有限公司 施宾彬 笔记本计算机 10 9800.00 S001 华科电子有限公司 施宾彬 激光打印机 5 2800.00 S002 湘江计算机外设公司 方胜力 笔记本计算机 5 10200.00 S003 韦力电子实业公司 周昌 喷墨打印机 5 480.00 S003 韦力电子实业公司 周昌 交换机 2 8500.00 表 2-2 一个不好的关系模式 * 2.3 关系模式的分解 要解决上述3个问题,需要把表2-2进行分解,表中前3列独立建立一个表,指定供应商代码作为关键字,并删除相同的行;后3列独立,引入供应商代码列作为外键,并增加一个订货日期列,经过这样处理后,上述异常问题就完全解决了。 * 2.3 关系模式的分解 函数依赖的基本概念 定义1 设R=R(A1,A2,…,An)是一个关系模式(A1,A2,…,An是R的属性),X∈{ A1,A2,…,An },Y∈{ A1,A2,…,An },即X和Y是R的属性子集,T1、T2是R的两个任意元组,即T1=T1(A1,A2,…,An),T2=T2(A1,A2,…,An),如果当T1(X)=T2(X)成立时,总有T1(Y)=T2(Y),则称X决定Y,或称Y函数依赖于X。记为:X→Y。 * 2.3 关系模式的分解 定义2 R,X,Y如定义1所设,如果X→Y成立,但对X的任意真子集X1,都有X1→Y不成立,称Y完全函数依赖于X,否则,称Y部分函数依赖于X。 定义3 设X,Y,Z是关系模式R的不同属性集,若X→Y(并且Y→X不成立),Y→Z,称X传递决定Z,或称Z传递函数依赖于X。 * 2.3 关系模式的分解 关系的规范化 1. 主属性与非主属性 候选关键属性和关键属性 定义4 设关系模式R(A1,A2,…,An),A1,A2,…,An是R的属性,X是R的一个属性集,如果 ①?X→R(A1,A2,…,An), ②?对于X的任意真子集X1,X1→(A1,A2,…,An)都不成立, 则称属性集X是关系模式R的一个候选关键属性。 如果关系模式R只有一个候选关键属性,称这惟一的候选关键属性为关键属性,否则,应从多个候选关键属性中指定一个作为关键属性。 习惯上把候选关键属性称为候选关键字,关键属性称为关键字。 主属性和非主属性 定义5 设Ai是关系模式R的一个属性,若Ai属于R的某个候选关键属性,称Ai是R的主属性,否则,称Ai为非主属性。 * 2.3 关系模式的分解 2. 第1范式 对关系模式的规范化要求分成从低到高不同的层次,分别称为第1范式、第2范式、第3范式、Boyce-Codd范式、第4范式和第5范式。 定义6 当关系模式R的所有属性都不能分解为更基本的数据单位时,称R是满足第1范式的,简记为1NF。 例如,如果关于员工的关系中有一个工资属性,而工资又由更基本的两个数据项基本工资和岗位工资组成,则这个员工的关系模式就不满足1NF。 * 2.3 关系模式的分解 3. 第2范式 定义7 如果关系模式R满足第1范式,并且R的所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第2范式,简记为2NF。 4. 第3范式 定义8 设R是一个满足第1范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第3范式,简记为3NF。 定理 若关系模式R符合3NF条件,则R一定符合2NF条件。 * 2.3 关系模式的分解 5. Boyce-Codd范式 定义9 设R是一个关系模式,若R的每一个函数依赖关系的左部都是R的一个候选关键字,称R满足Boyce-Codd范式,简记为BCNF。 可以证明,BCNF是比3NF更强的规范(证明略),即符合BCNF条件的关系模式一定符合3NF条件,但反过来却不成立。 * 2.3 关系模式的分解 关系的分解 1. 关系模式分解的一般问题 所谓关系模式的分解,就是对原有关系在
显示全部