关于表的规范化.doc
《关于表的规范化.doc》由会员分享,可在线阅读,更多相关《关于表的规范化.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/16规化规化:满足第一式是表的最低要求,不满足第一式要求的数据库(表)就不能称之为关系数据库。在此基础上满足更高要求的称为第二式,简记为 2NF,其余依此类推,还有第三式(3NF)、BC 式(BCNF F)、第四式(4NF4NF)、第五式(5NF5NF)。BCNFBCNF 可以看作是修正了的第三式可以看作是修正了的第三式。把表从低低式,通过投影运算投影运算转换成若干高高一级式的过程,叫做表表的规化。的规化。一般地说,表满足的式级别越高式级别越高,设计的表越是规,表的质量越表的质量越高高,数据的冗余度越小,共享性越高,所占的存储空间越少,并将数据的不一致性减少到最低程度,这也是对表进行规化的
2、目的。但是但是,高式的数据库查询起来比较复杂高式的数据库查询起来比较复杂。所以,不应一味追求高式,一般满一般满足第三式或足第三式或 BCBC 式就可以了式就可以了二、表的规化1、第一式(1NF)如前所述,第一式要求表的每一个字段都是不可再分的最小单位。例 1:学生(学号,学院,地址,选修课程成绩(课程号,课程名,成绩)表数据如下:学号学院地址选修课程成绩(课程号,课程名,成绩)9901丽管理管20C001,高等数学,902/1619901丽管理管201C002,英语,809901丽管理管201C003,计算机,669902锋电子电101C004,法律,78表一不满足第一式的表显然,这样的表是不
3、满足第一式的。因为选修课程成绩字段还可分为 3 个字段即(课程号,课程名,成绩)。如果不把它进行规化,即转换成满足第一式的表,将会产生很多问题,如:删除异常,即本来只想删除成绩的,不得不把课程号和课程名也删除了!转换的方法就是把可以拆分的字段进行拆分,即把选修课程成绩分解成 3 个字段:课程号,课程名,成绩。变成下面满足第一式的表:学号学院地址课程号课程名成绩3/169901丽管理管201C001高等数学909901丽管理管201C002英语809901丽管理管201C003计算机669902锋电子电101C004法律78表二 满足第一式的表2、第二式(2NF)一个关系应满足 1NF 是最起码
4、的条件。但是,仅满足 1NF 的关系还可能存在一些问题。例 2:表二中存在以下的问题:问题问题 1 1:数据冗余度大数据冗余度大。丽选几门课程,都必须输入所有几个她的相关信息,同时,如果有几千个人选修高等数学课,就得输入几千个“高等数学”。如果要修改“高等数学”这个课程名称,对于几千个课程名中,只要漏改一个,将造成数据的不一致性。4/16问题问题 2 2:删除异常删除异常。我们知道,这个表中的关键字为学号和课程号,它们不能为空值,而当锋退学时,不可能只删除锋的学号和,只能删除了锋的整条记录,这时相应的课程号为 C004 的法律也被删除,如果这个表中只有锋一人选法律课,该记录删除后,下次将无法查
5、询法律课的课程号。问题问题 3 3:插入记录异常插入记录异常。与删除异常相似,如果锋刚入学,还没有选修任何一门课程,无法知道他选修的课程号,而课程号为关键字,不能为空,因此,锋这个记录也不能输入。造成出现这些问题的原因是因为这个表不满足第二式。如何判断一个表是否满足第二式呢,判断方法是:如何判断一个表是否满足第二式呢,判断方法是:(1 1)、找出表的关键字。)、找出表的关键字。(2 2)、如果只有一个关键字,若每一个非关键字都依赖于这个)、如果只有一个关键字,若每一个非关键字都依赖于这个关键字,则表满足第二式,否则不是。关键字,则表满足第二式,否则不是。什么是依赖什么是依赖(关系关系)呢?呢?
6、例:某表中有两个字段:学号、,对于每一个学号,只有一个与之对应,则称依赖于学号,或称学号唯一确定,记作:学号。例 3:学生(学号,学院)表是否满足第二式?答:例 4:学生(学号,学院,成绩)表是否满足第二式?答:5/16(3 3)、如果有两个或两个以上的关键字,那么,把这些关键字)、如果有两个或两个以上的关键字,那么,把这些关键字看成是一个组合关键字看成是一个组合关键字,若每一个非关键字都能完全依赖于组合关键若每一个非关键字都能完全依赖于组合关键字,则表满足第二式,否则不是。字,则表满足第二式,否则不是。例 5:成绩(学号,课程,成绩)表是否满足第二式?定义定义:如果一个表满足如果一个表满足
7、1NF1NF,且每一个非关键字都完全依且每一个非关键字都完全依赖于关键字,则这个表满足第二式。赖于关键字,则这个表满足第二式。第一式转换成第二式的方法:第一式转换成第二式的方法:找出依赖关系找出依赖关系,将能完全依赖于主键的字段从表中提取出来将能完全依赖于主键的字段从表中提取出来,同同主键一起组成一个新的关系。主键一起组成一个新的关系。例 7:表二(学号,学院,地址,课程号,课程名,成绩)的依赖关系如下:显然,不满足 2NF。转换的过程就是拆分的过程,也是一个消除部分依赖的过程。但是,要注意注意,拆分的结果应该包含原表的所有字段!(即无损分解无损分解)3 3、第三式(、第三式(3NF3NF)通
8、过分析,发现表 A 仍然在一定程度上存在上面提与的三个问题,要消除和减少它们,还得把它分解成满足更高式(即 3NF)的表.满足第三式的判断方法:满足第三式的判断方法:判断表在满足第二式的基础上是否有传递依赖的情况,如果有判断表在满足第二式的基础上是否有传递依赖的情况,如果有,不是第三式,否则是。不是第三式,否则是。6/16将非第三式规为第三式的方法:将非第三式规为第三式的方法:把产生传递依赖关系的非关键字段抽出来把产生传递依赖关系的非关键字段抽出来,同关键字一起建立新同关键字一起建立新的表。的表。例 8:表 A(学号,学院,地址)中,存在地址传递依赖于学号的关系,即:学号学院,学院地址。把地址
9、从原表中分出来,同关键字一起建立新的表形成表 A1(学院、地址),原表就可消除了传递依赖关系。表 A 分解为:表 A1(学院、地址)表 A2(学号、学院)小结:小结:表的规化中,1NF 是要满足每个字段都是不可再分的;2NF是在 1NF 的基础上消除部分依赖关系(只保留完全依赖),3NF 是在2NF 的基础上进一步消除传递依赖关系。二:在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极简化应用程序的其他容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是数据库规化。数据冗余数据应该尽可能少地冗余
10、,这意味着重复数据应该减少到最少。比如说,一个部门雇员的不应该被存储在不同的表中,因为这里的是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用了更多7/16的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不一致性。规化实例规化实例为了说明方便,我们在本文中将使用一个 SAMPLE 数据表,来一步一步分析规化的过程。首先,我们先来生成一个的最初始的表。CREATECREATE TABLETABLE SAMPLESAMPLE(PRJNUMPRJNUM INTEGERINTEGER NO
11、TNOT NULL,NULL,PRJNAMEPRJNAME VARCHAR(200),VARCHAR(200),EMYNUMEMYNUM INTEGERINTEGER NOTNOT NULL,NULL,EMYNAMEEMYNAME VARCHAR(200),VARCHAR(200),SALCATEGORYSALCATEGORY CHAR(1),CHAR(1),SALPACKAGESALPACKAGE INTEGER)INTEGER)ININ USERSPACE1;USERSPACE1;ALTERALTER TABLETABLE SAMPLESAMPLEADDADD PRIMARYPRIMARY
12、 KEYKEY(PRJNUM,(PRJNUM,EMYNUM);EMYNUM);InsertInsert intointo SAMPLE(PRJNUM,SAMPLE(PRJNUM,PRJNAME,PRJNAME,EMYNUM,EMYNUM,EMYNAME,EMYNAME,SALCATEGORY,SALCATEGORY,SALPACKAGE)SALPACKAGE)values(100001,values(100001,TPMS,TPMS,200001,200001,Johnson,Johnson,A,A,2000),2000),(100001,(100001,TPMS,TPMS,200002,20
13、0002,Christine,Christine,B,B,3000),3000),(100001,(100001,TPMS,TPMS,200003,200003,Kevin,Kevin,C,C,4000),4000),(100002,(100002,TCT,TCT,200001,200001,Johnson,Johnson,A,A,2000),2000),(100002,(100002,TCT,TCT,200004,200004,Apple,Apple,B,B,3000);3000);8/16表1-1考察表 1-1,我们可以看到,这表一共有六个字段,分析每个字段都有重复的值出现,也就是说,存在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 规范化
限制150内