欢迎来到天天文库
浏览记录
ID:40844752
大小:146.50 KB
页数:9页
时间:2019-08-08
《关系数据库设计理论资料》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第6章关系数据库设计理论本章主要讲解在关系数据库的设计过程中,如何减少数据冗余,避免出现异常,该如何对数据库模式进行中心设计。1.深入理解函数依赖和键码的概念。学会计算属性的封闭集。2.模式设计是本章的重点。了解数据冗余和更新异常产生的根源;理解关系模式规范化的途径;准确理解第一范式、第二范式、第三范式和BC范式的含义、联系与区别;深入理解模式分解的原则;熟练掌握模式分解的方法,能正确而熟练的将一个关系模式分解成属于第三范式或BC范式的模式。3.了解多值依赖和第四范式的概念,掌握把关系模式分解成属于
2、第四范式的模式的方法。本章主要的知识点包括:知识点1函数依赖知识点2模式设计知识点3多值依赖学习要点1、函数依赖1.1函数依赖的定义如果关系R的两个元组在属性A1,A2,…An上一致(也就是,两个元组在这些属性所对应的各个分量具有相同的值),则它们在另一个属性B上也一致。那么,我们就说在关系R中属性B函数依赖于属性A1A2…An。记做A1A2…AnB,也可以说“A1,A2,…,An函数决定B”。A1A2…An称为决定因素。举例:学生关系Student的实例如下:SNoSNameSdeptMnameC
3、nameGrade99230贺小华计算机周至光数据库系统7899239金谦计算机周至光计算机网络8799239金谦计算机周至光操作系统8699238陈刚建筑王勇建筑原理7299236吕宋自动化李霞电路基础8299236吕宋自动化李霞自动化涉及85在这个关系中,学号确定后,学生的姓名及所在的系就都确定了。属性中的这种依赖关系就是函数依赖。在本例中存在下列函数依赖。•SnoSName•SnoSdept•SdeptMname•SnoCnameGrade1.2关系的键码如一个或多个属性的集合{A1,…,An
4、}满足如下条件,称该集合为关系R的键码:1.这些属性函数决定该关系的所有其它属性。2.{A1,…,An}的任何真子集都不能函数决定R的所有其它属性,键码必须是最小的。1.3超键码包含键码的属性集称为“超键码”。1因此,每个键码都是超键码。某些超键码不是(最小的)键码。每个超键码都满足键码的第一个条件:函数决定它所在的关系的所有其它属性。超键码不必满足键码的第二个条件:最小化条件。1.4函数依赖规则分解/合并规则可以把每个函数依赖右边的属性分解,从而使其右边只出现一个属性。同样,我们也可以把左边相同的
5、依赖的聚集用一个依赖来表示,该依赖的左边没变,而右边则为所有属性组成的一个属性集。两种情况下,新的依赖集都等价于旧的依赖集。平凡依赖规则对于函数依赖A1A2…AnB来说,如果B是A中的某一个,我们就称之为“平凡的”。对于函数依赖A1A2…AnB1B2…Bm,如果B是A的子集,则称该依赖为平凡的。如果B中至少有一个属性不在A中,则称该依赖为非平凡的。如果B中没有一个属性在A中,则称该依赖为完全非平凡的。函数依赖A1A2…AnB1B2…Bm等价于A1A2…AnC1C2…Ck,其中C是B的子集,但不在A中
6、出现。我们称这个规则为“平凡依赖规则”。举例:学生关系Student的实例如下:SNoSNameSdeptMnameCnameGrade99230贺小华计算机周至光数据库系统7899239金谦计算机周至光计算机网络8799239金谦计算机周至光操作系统8699238陈刚建筑王勇建筑原理7299236吕宋自动化李霞电路基础8299236吕宋自动化李霞自动化涉及85下面三个函数依赖关系中SnoCnameGradeCnameGrade右边属性集是左边属性集的子集,根据平凡依赖的定义,这个函数依赖属于平凡依
7、赖。(设计人员注意:请用动画表示黄色字和蓝色字。)SnoCnameCnameGrade右边的Cname属性在左边的属性集Z中,而Grade属性不在左边的属性集中,这个函数依赖是非平凡依赖。(设计人员注意:请用动画表示黄色字和蓝色字。)SnoCnameSnameGrade右边的属性都不在左边的属性集中,这个函数的依赖是完全非平凡依赖。传递规则传递规则使我们能把两个函数依赖级联成一个新的函数依赖。如果A1A2…AnB1B2…Bm和B1B2…BmC1C2…Ck,在关系R中成立,则A1A2…AnC1C2…C
8、k在R中也成立。这个规则就称为传递规则。举例:对于关系Student,有如下两个依赖:SnoSdeptSdeptMname根据传递规则,可以得到一个新的依赖SnoMname2学习要点2模式设计2.1问题的提出设计关系数据库模式时,特别是从面向对象的ODL设计或从E/R设计直接向关系数据库模式转换时,很容易出现的问题是冗余性,即一个事实在多个元组中重复。造成这种冗余的最常见的原因是,企图把一个对象的单值和多值特性包含在一个关系中。当我们企图把太多的信息存放在一个关系时,
此文档下载收益归作者所有