1、第第3 3章章 关系数据库设计基础关系数据库设计基础(3 吉林大学计算机教学与研究中心吉林大学计算机教学与研究中心2/36数据库设计的个环节数据库设计的个环节需求分析需求分析:了解业务范围、流程、处理细节和了解业务范围、流程、处理细节和数据库存储环境数据库存储环境;收集、归纳和分析资料。收集、归纳和分析资料。概念设计概念设计:用概念模型对事务及其关系描述用概念模型对事务及其关系描述,如,如E R方法。方法。逻辑设计逻辑设计:将概念模型转成关系模型,规范:将概念模型转成关系模型,规范化关系模型,减少数据冗余,避免数据异常化关系模型,减少数据冗余,避免数据异常操作。主要将人工表优化成数据库表操作。
2、主要将人工表优化成数据库表 物理设计物理设计:确定数据库存储路径,建数据库确定数据库存储路径,建数据库、表、表间联系、数据完整性和安全性规则、表、表间联系、数据完整性和安全性规则,建主索引(主键)和普通索引(外键)。,建主索引(主键)和普通索引(外键)。3/363.1.1 人工表与数据库表人工表与数据库表 1人工表人工表:纸介质表格和某些电子表格。纸介质表格和某些电子表格。如如Word表或表或Excel表。表。人工表的主要特点人工表的主要特点:无格式性无格式性;每列;每列数据类型的不确定性数据类型的不确定性;嵌套性嵌套性等。等。学号学号姓姓名名性性别别出生日出生日期期民族民族学学院院学院学院地
3、址地址课程课程成成 绩绩学学分分重重修修考考试试分分课课堂堂分分实验实验分分总总分分22060101马马伟伟立立男男1987-10-12汉族汉族法法学学逸夫逸夫楼楼大学计算大学计算机基础机基础65910C844英语英语5619855高等数学高等数学 C4513584A AD D11050102赵赵晓晓敏敏女女1988-5-1朝鲜朝鲜族族物物理理理化理化楼楼大学计算大学计算机基础机基础50505 57 762624 4英语英语55556 661615 54/363.1.1 人工表与数据库表人工表与数据库表 数据库表数据库表:存于外存储器的二维电子表存于外存储器的二维电子表 4 数据库表数据库表特
4、点特点:列:列原子性原子性;单元格;单元格值值的的单一单一;关键字关键字值惟一值惟一;主主属性属性值非值非空空性性。54高等数学 C0103034高等数学 B0103025英语0102014数据库及程序设计0101024大学计算机基础010101学分课程名课程码课程码5/363.1.1 人工表与数据库表人工表与数据库表关系数据库设计关系数据库设计:实质研究如何将:实质研究如何将人工表人工表转换成转换成数据库表数据库表,即规范表的过程。,即规范表的过程。学号学号姓名姓名性性别别出生日期出生日期民族民族学院学院学院地址学院地址课程课程成成 绩绩学学分分重重修修考试分考试分课堂课堂分分实验分实验分总
5、总分分22060101马伟立马伟立男男1987-10-12汉族汉族法学法学逸夫楼逸夫楼大学计算机基础大学计算机基础65910C844英语英语5619855高等数学高等数学 C4513584A AD DT T4 458580 013134545高等数学高等数学 C C逸夫楼逸夫楼法学法学汉族汉族1987/10/121987/10/12男男马伟立马伟立2206010122060101F F5 585850 019195656英语英语逸夫楼逸夫楼法学法学汉族汉族1987/10/121987/10/12男男马伟立马伟立2206010122060101F F4 4848410109 96565大学计算机
6、基础大学计算机基础逸夫楼逸夫楼法学法学汉族汉族1987/10/121987/10/12男男马 伟 立马 伟 立2206010122060101重重修修学学分分总总分分实验成绩实验成绩课堂成绩课堂成绩考试成绩考试成绩课程课程学院地址学院地址学院学院民族民族出生日期出生日期性别性别姓名姓名学号学号6/363.1.1 人工表与数据库表人工表与数据库表学院码学院码学院名学院名学院地址学院地址11物理学院物理学院理化楼理化楼12文学院文学院翠文楼翠文楼2222法学院法学院逸夫楼逸夫楼规范化方法规范化方法:将:将一个表一个表通过投影分解的方通过投影分解的方法规范成功能等价的法规范成功能等价的多个表多个表。
7、课程码课程码课程名课程名学学分分010101大学计算机基础大学计算机基础4010102数据库及程序设计数据库及程序设计4010201英语英语5010302010302高等数学高等数学 B4010303高等数学高等数学 C4学号学号课程码课程码考试成绩考试成绩课堂成绩课堂成绩实验成绩实验成绩总分总分重修重修220601010101016591084F220601010102015619085F F220601010103034513058T T1105010201010150505 57 76262F F1105010201020155556 60 06161T T学号学号姓名姓名性别性别出生日
8、期出生日期民族民族学院码学院码22060101马伟立马伟立男男1987/10/12汉族汉族2211050102赵晓敏赵晓敏女女1988/05/01朝鲜族朝鲜族111112060201孙武孙武男男1989/03/02满族满族12T T4 458580 013134545高等数学高等数学 C C逸夫楼逸夫楼法学法学汉族汉族1987/10/121987/10/12男男马伟立马伟立2206010122060101F F5 585850 019195656英语英语逸夫楼逸夫楼法学法学汉族汉族1987/10/121987/10/12男男马伟立马伟立2206010122060101F F4 48484101
9、09 96565大学计算机基础大学计算机基础逸夫楼逸夫楼法学法学汉族汉族1987/10/121987/10/12男男马 伟 立马 伟 立2206010122060101重重修修学学分分总总分分实验成绩实验成绩课堂成绩课堂成绩考试成绩考试成绩课程课程学院地址学院地址学院学院民族民族出生日期出生日期性性别别姓名姓名学号学号7/363.1.2 数据语义数据语义 数据语义数据语义:是对数据项是对数据项含义含义的的规定规定与与解释解释。数据语义对数据库的影响数据语义对数据库的影响:修改修改某些数据项某些数据项的的语义语义,可能导致重新,可能导致重新调整数据库调整数据库。例如:若一个学院只有一个例如:若一
10、个学院只有一个地址地址,且一个,且一个地地址址对应一个学院,则学院表中对应一个学院,则学院表中地址地址可作关键字,可作关键字,且一个学院对应一个记录且一个学院对应一个记录若规定一个学院可有多个若规定一个学院可有多个地址地址,则学院表中,则学院表中一个学院可能对应多个记录或多个一个学院可能对应多个记录或多个地址地址字段。字段。8/36321 关系模式关系模式关系模式关系模式:关系名及其所有属性的集合,描:关系名及其所有属性的集合,描述表结构述表结构。CJ(学号,课程码,成绩)(学号,课程码,成绩)关键字关键字:能惟一地标识元组、最少属性的:能惟一地标识元组、最少属性的集合。一个关系模式可能有多个
11、关键字。也集合。一个关系模式可能有多个关键字。也称键、候选键或候选码。称键、候选键或候选码。主属性主属性:包含在某关键字中的属性称:包含在某关键字中的属性称主属主属性性 外码外码:关系关系R一组非关键字属性一组非关键字属性F,若,若F与与关系关系S的主键对应,则的主键对应,则F是表是表R的外码或外键的外码或外键。主关键字主关键字:选一个关键字作主关键字,也选一个关键字作主关键字,也简称为主键、主码简称为主键、主码。9/36322 函数依赖 函数依赖的作用函数依赖的作用:通过分析关系模式中属通过分析关系模式中属性的函数依赖关系性的函数依赖关系规范数据库表规范数据库表。10/36322 函数依赖
12、函数依赖函数依赖:X X和和Y Y是中两组属性,对是中两组属性,对R R中任中任意两个元组,如对意两个元组,如对X的投影值相等的投影值相等,则对,则对Y的投的投影就相等影就相等。记为:。记为:XYXY。例:。例:学号学号姓名姓名(学号,课程学号,课程)姓名姓名 (学号,课程学号,课程)考试成绩考试成绩学号学号考试成绩考试成绩 学号学号姓名姓名性性别别出生日期出生日期民族民族学院学院学院地址学院地址课程课程考试成绩考试成绩课堂成绩课堂成绩实验成绩实验成绩总总分分学学分分重重修修22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼大学计算机基础大学计算机基础659108
13、44F22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼英语英语56190855F F22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼高等数学高等数学 C45130584T T11050102赵晓敏赵晓敏女女1988/05/01朝鲜族朝鲜族物理物理理化楼理化楼大学计算机基础大学计算机基础50505 57 762624 4F F11050102赵晓敏赵晓敏女女1988/05/01朝鲜族朝鲜族物理物理理化楼理化楼英语英语55556 60 061615 5T T12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼大
14、学计算机基础大学计算机基础751010954F12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼高等数学高等数学 B79200994F12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼数据库及程序设计数据库及程序设计5057624F11/36322 函数依赖 学号学号姓名姓名性性别别出生日期出生日期民族民族学院学院学院地学院地址址课程课程考试成考试成绩绩课堂成绩课堂成绩实验成绩实验成绩总总分分学学分分重重修修22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼大学计算机基础大学计算机基础65910844F22060
15、101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼英语英语56190855F F22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼高等数学高等数学 C45130584T T11050102赵晓敏赵晓敏女女1988/05/01朝鲜朝鲜族族物理物理理化楼理化楼大学计算机基础大学计算机基础50505 57 762624 4F F11050102赵晓敏赵晓敏女女1988/05/01朝鲜朝鲜族族物理物理理化楼理化楼英语英语55556 60 061615 5T T12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼大学计算机基础大学
16、计算机基础751010954F12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼高等数学高等数学 B79200994F12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼数据库及程序设计数据库及程序设计5057624F2 2完全函数依赖完全函数依赖:X X和和Y Y是不同属性集合,有是不同属性集合,有XYXY,对于,对于X X的任意的任意真子集真子集XX,都有,都有XYXY。记为:记为:XYXY。例:由于。例:由于学号学号考试成绩考试成绩,课程课程考试成绩考试成绩,故,故(学号,课程学号,课程)考试成绩考试成绩;由于;由于学号学号姓名姓名,即,
17、即(学号,课程)(学号,课程)姓名姓名12/36部分函数依赖部分函数依赖:X X和和Y Y是不同属性集合,有是不同属性集合,有XYXY,但,但Y Y不完全函数依赖于不完全函数依赖于X X。记为:。记为:XYXY。例:由于例:由于学号学号性别性别,课程课程学分学分,故,故(学号(学号,课程),课程)性别,(学号,课程)性别,(学号,课程)学分学分。322 函数依赖 学号学号姓名姓名性性别别出生日期出生日期民族民族学院学院学院地学院地址址课程课程考试成考试成绩绩课堂成绩课堂成绩实验成绩实验成绩总总分分学学分分重重修修22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼大
18、学计算机基础大学计算机基础65910844F22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼英语英语56190855F F22060101马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼高等数学高等数学 C45130584T T11050102赵晓敏赵晓敏女女1988/05/01朝鲜朝鲜族族物理物理理化楼理化楼大学计算机基础大学计算机基础50505 57 762624 4F F11050102赵晓敏赵晓敏女女1988/05/01朝鲜朝鲜族族物理物理理化楼理化楼英语英语55556 60 061615 5T T12060201孙武孙武男男1989/0
19、3/02满族满族文学文学翠文楼翠文楼大学计算机基础大学计算机基础751010954F12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼高等数学高等数学 B79200994F12060201孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼数据库及程序设计数据库及程序设计5057624F13/36传递函数依赖传递函数依赖:X X、Y Y和和Z Z是不同属性集合是不同属性集合,有,有XYXY,但,但且且Y Y不是不是X X的子集的子集,则称则称Z Z传递函数依赖于传递函数依赖于X X。例如:例如:(学号学号,课程课程)(考试成绩考试成绩,课堂成绩课堂成绩,实验成
20、绩实验成绩)(考试成绩考试成绩,课堂成绩课堂成绩,实验成绩实验成绩)总分总分因此,因此,总分总分传递函数依赖于传递函数依赖于(学号,课程学号,课程)322 函数依赖 14/3633 关系模式的规范化关系模式的规范化 规范化目标规范化目标:减少数据冗余减少数据冗余,便于,便于数据更新数据更新、插入插入和和删除删除,提高时空效率,满足应用要求,提高时空效率,满足应用要求。规范化方法规范化方法:对关系模式对关系模式投影分解投影分解,去掉冗去掉冗余属性余属性,得到更多、较理想的关系模式,得到更多、较理想的关系模式。数据依赖引发的主要问题数据依赖引发的主要问题:数据冗余数据冗余和和更新更新异常异常。解决
21、。解决办法办法是对关系模式进行合理地是对关系模式进行合理地分分解解,即对,即对关系模式规范化关系模式规范化。范式范式:满足特定要求满足特定要求的关系模式的关系模式集合集合。有第。有第一、第二、第三、一、第二、第三、BCNF、第四和第五范式、第四和第五范式,条件逐渐增强条件逐渐增强。15/3633 关系模式的规范化关系模式的规范化 总体原则总体原则:概念:概念单一化单一化,一个关系模式对应,一个关系模式对应一个实体型一个实体型或或实体型间的联系实体型间的联系(如(如学生学生、学院学院、课程课程、学生与课程学生与课程);必须);必须无损分解无损分解,即对新的关系模式进行,即对新的关系模式进行自然连
22、接自然连接后可以后可以还还原原回原关系模式。回原关系模式。学生学生学院学院课程课程学生与课程学生与课程学院学院逸夫楼逸夫楼法学院法学院2222翠文楼翠文楼文学院文学院12理化楼理化楼物理学院物理学院11学院地址学院地址学院名学院名学院码学院码XYB(学院码学院码,学院名,学院地址),学院名,学院地址)学生学生XSA(XSA(学号学号,姓名姓名,性别性别,出生日期出生日期,民族民族,学院码学院码)1212满族满族1989/03/021989/03/02男男孙武孙武12060201120602011111朝鲜族朝鲜族1988/05/011988/05/01女女赵晓敏赵晓敏1105010211050
23、1022222汉族汉族1987/10/121987/10/12男男马伟立马伟立2206010122060101学院码学院码民族民族出生日期出生日期性性别别姓名姓名学号学号课程课程KCBKCB(课程码课程码,课程名,学分),课程名,学分)4 4高等数学高等数学 C C0103030103034 4高等数学高等数学 B B0103020103025 5英语英语0102010102014 4数据库及程序设计数据库及程序设计0101020101024 4大学计算机基础大学计算机基础010101010101学分学分课程名课程名课程码课程码学生与课程学生与课程CJ(学号学号,课程码课程码,考试成绩考试成绩
24、,课堂成绩课堂成绩,实验成绩实验成绩,重修重修)F755001010212060201F0207901030201030212060201F10107501010112060201T T0 06 6555501020111050102F F7 75 5505001010111050102T T0134501030322060101F F0195601020122060101F1096501010122060101重修重修实验成绩实验成绩课堂成绩课堂成绩考试成绩考试成绩课程码课程码学号学号16/36331 第一范式规范化关系模式规范化关系模式:每个每个属性属性都是不可分割的基都是不可分割的基本数
25、据项(本数据项(原子性原子性),也称第一范式(简记为),也称第一范式(简记为1NF)。人工表规范到第一范式人工表规范到第一范式:拆分多维表成二维拆分多维表成二维表,考虑属性的表,考虑属性的原子性原子性、主属性的非空性主属性的非空性等等 17/36331 第一范式规范化方法规范化方法:将:将嵌套列横向嵌套列横向展开变成多个属性展开变成多个属性,将,将多值单元格纵向展开多值单元格纵向展开多行,某些数据项信多行,某些数据项信息息重复存储重复存储。学号学号姓名姓名性别性别出生日期出生日期民族民族学院学院学院地址学院地址课程课程考试成绩考试成绩课堂成绩课堂成绩实验成绩实验成绩总总分分学学分分重重修修22
26、06010122060101马 伟 立马 伟 立男男1987/10/121987/10/12汉族汉族法学法学逸夫楼逸夫楼大学计算机基础大学计算机基础65659 9101084844 4F F2206010122060101马伟立马伟立男男1987/10/121987/10/12汉族汉族法学法学逸夫楼逸夫楼英语英语565619190 085855 5F F2206010122060101马伟立马伟立男男1987/10/121987/10/12汉族汉族法学法学逸夫楼逸夫楼高等数学高等数学 C C454513130 058584 4T T学号学号姓名姓名性性别别出生日期出生日期民族民族学院学院学院地
27、址学院地址课程课程成成 绩绩学学分分重重修修考试分考试分课堂课堂分分实验分实验分总总分分22060101马伟立马伟立男男1987-10-12汉族汉族法学法学逸夫楼逸夫楼大学计算机基础大学计算机基础65910C844英语英语5619855高等数学高等数学 C4513584A AD D18/36331 第一范式存在的问题数据冗余数据冗余度大:一个学生选多门课程需要重复度大:一个学生选多门课程需要重复存放学号、姓名等信息,产生存放学号、姓名等信息,产生冗余数据冗余数据。学号学号姓姓名名性性别别出生出生日期日期民民族族学学院院学院学院地址地址课程课程考试考试成绩成绩课堂课堂成绩成绩实验实验成绩成绩总总
28、分分学学分分重重修修2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼大学计大学计算机基算机基础础65659 9101084844 4F F2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼英语英语565619190 085855 5F F2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼高等数高等数学学 C C454513130 058584 4T T19/36331 第一范式存在的问题更新异常更新异常
29、:学生转学院,必须修改该学生所有:学生转学院,必须修改该学生所有元组中学院和学院地址,否则,将造成元组中学院和学院地址,否则,将造成数据的数据的不一致性不一致性。学号学号姓姓名名性性别别出生出生日期日期民民族族学学院院学院学院地址地址课程课程考试考试成绩成绩课堂课堂成绩成绩实验实验成绩成绩总总分分学学分分重重修修2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼大学计大学计算机基算机基础础65659 9101084844 4F F2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学
30、逸夫逸夫楼楼英语英语565619190 085855 5F F2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼高等数高等数学学 C C454513130 058584 4T T20/36331 第一范式存在的问题插入异常插入异常:主关键字是(学号,课程),新生:主关键字是(学号,课程),新生的课程(课程不能为空)没确定时,其的课程(课程不能为空)没确定时,其信息无信息无法加入法加入到关系中到关系中。学号学号姓姓名名性性别别出生出生日期日期民民族族学学院院学院学院地址地址课程课程考试考试成绩成绩课堂课堂成绩成绩实验实验成绩成绩总总
31、分分学学分分重重修修2206220601010101马马伟伟立立男男1987/1987/10/1210/12汉汉族族法法学学逸夫逸夫楼楼大学计大学计算机基算机基础础65659 910108 84 44 4F F2206220601010101马马伟伟立立男男1987/1987/10/1210/12汉汉族族法法学学逸夫逸夫楼楼英语英语565619190 08 85 55 5F F2206220601010101马马伟伟立立男男1987/1987/10/1210/12汉汉族族法法学学逸夫逸夫楼楼高等数高等数学学 C C454513130 05 58 84 4T T21/36331 第一范式存在的问
32、题删除异常删除异常:当选课人数少无法开课时,从关系当选课人数少无法开课时,从关系中删除所有与该课程相关的元组,导致删除课中删除所有与该课程相关的元组,导致删除课程的信息程的信息,如课程名和学分,即如课程名和学分,即丢失丢失课程的课程的相相关信息关信息。学号学号姓姓名名性性别别出生出生日期日期民民族族学学院院学院学院地址地址课程课程考试考试成绩成绩课堂课堂成绩成绩实验实验成绩成绩总总分分学学分分重重修修2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼大学计大学计算机基算机基础础65659 9101084844 4F F220622
33、0601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼英语英语565619190 085855 5F F2206220601010101马马伟伟立立男男19871987/10/10/1212汉汉族族法法学学逸夫逸夫楼楼高等数高等数学学 C C454513130 058584 4T T22/36331 第一范式存在的问题主要原因主要原因:存在:存在非主属性非主属性(姓名、性别(姓名、性别或学分等)或学分等)部分函数依赖关键字部分函数依赖关键字(学号(学号,课程)。,课程)。例如例如课程课程学分学分学号学号姓名姓名学号学号性别性别导致导致(学号(学号
34、,课程)课程)学分学分(学号(学号,课程)课程)姓名姓名(学号(学号,课程)课程)性别性别等。等。23/36332 第二范式 第二范式第二范式 :属于属于第一范式第一范式,其,其中非主属性中非主属性都都完全函数依赖完全函数依赖于任意于任意关键字关键字,即,消除非主属即,消除非主属性对任何关键字的部分函数依赖性对任何关键字的部分函数依赖 。24/36332 第二范式学号学号姓名姓名性别性别出生日期出生日期民族民族学院学院学院地址学院地址课程课程考试成绩考试成绩课堂成绩课堂成绩实验成绩实验成绩总总分分学学分分重重修修2206010122060101马 伟 立马 伟 立男男1987/10/12198
35、7/10/12汉族汉族法学法学逸夫楼逸夫楼大学计算机基础大学计算机基础65659 9101084844 4F F2206010122060101马伟立马伟立男男1987/10/121987/10/12汉族汉族法学法学逸夫楼逸夫楼英语英语565619190 085855 5F F2206010122060101马伟立马伟立男男1987/10/121987/10/12汉族汉族法学法学逸夫楼逸夫楼高等数学高等数学 C C454513130 058584 4T T规范化方法规范化方法:对关系模式按:对关系模式按实体型实体型及其及其联系联系进进行行投影分解投影分解,分解成多个关系模式,分解成多个关系模式
36、,消除非主消除非主属性属性对对关键字关键字的的部分函数依赖部分函数依赖。例如:。例如:学生学生、课程课程及其及其联系联系(成绩成绩)。XS(学号学号,姓名姓名,性别性别,出生日期出生日期,民族民族,学院学院,学院地址)学院地址)翠文楼翠文楼文学文学满族满族1989/03/02男男孙武孙武12060201理化楼理化楼物理物理朝鲜族朝鲜族1988/05/01女女赵晓敏赵晓敏11050102逸夫楼逸夫楼法学法学汉族汉族1987/10/12男男马伟立马伟立22060101学院地址学院地址学院学院民族民族出生日期出生日期性别性别姓名姓名学号学号KCB(课程码课程码,课程名课程名,学分学分)4高等数学 C
37、0103034高等数学 B0103025英语0102014数据库及程序设计0101024大学计算机基础010101学分学分课程名课程名课程码课程码CJ(学号学号,课程码课程码,考试成绩考试成绩,课堂成绩课堂成绩,实验成绩实验成绩,总分总分,重修重修)F9510107501010112060201T T61610 06 6555501020111050102F F62627 75 5505001010111050102T T58580134501030322060101F F75750195601020122060101F841096501010122060101重修重修总分总分实验成绩实验成绩
38、课堂成绩课堂成绩考试成绩考试成绩课程码课程码学号学号25/36332 第二范式还原验证还原验证:用用Select自然连接自然连接 验证验证。存在的问题存在的问题:数据冗余数据冗余、更新更新异常、异常、插入插入异常异常和和删除异常删除异常等问题。等问题。如,某学院学生都毕业后,如,某学院学生都毕业后,丢失学院信息丢失学院信息,产,产生删除异常;生删除异常;重复存储学院地址重复存储学院地址、总分。、总分。学号学号姓名姓名性性别别出生日期出生日期民族民族学院学院学院地址学院地址22060101 马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼11050102 赵晓敏赵晓敏女女1988
39、/05/01 朝鲜族朝鲜族物理物理理化楼理化楼12060201 孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼12060202 李春丽李春丽女女1988/06/12汉族汉族文学文学翠文楼翠文楼26/36332 第二范式问题存在的主要原因问题存在的主要原因:存在非主属性传存在非主属性传递函数依赖递函数依赖主属性主属性。例如,在例如,在XS中,学号是关键字,有:中,学号是关键字,有:学号学号学院学院学院学院学号学号学院学院学院地址学院地址故故学院地址学院地址传递函数依赖传递函数依赖学号学号。同样,同样,总分总分传递函数依赖传递函数依赖(学号,课程学号,课程)27/36333 第三范式
40、 第三范式第三范式 :属于属于第二范式第二范式,非主属性对任何,非主属性对任何关键字都关键字都不存在传递函数依赖不存在传递函数依赖,简记为,简记为3NF。规范化方法规范化方法:对关系模式进行:对关系模式进行投影投影,分解分解成多成多个关系模式,或直接个关系模式,或直接去掉冗余属性去掉冗余属性,消除消除非主非主属性对关键字的属性对关键字的传递函数依赖传递函数依赖。学号学号课程码课程码考试成绩考试成绩 课堂成绩课堂成绩 实验成绩实验成绩 总分总分 重修重修22060101 0101016591084F22060101 010201561907575F F22060101 0103034513058
41、58T T11050102 01010150505 57 76262F F11050102 01020155556 60 06161T T CJ(学号学号,课程码课程码,考试成绩考试成绩,课堂成绩课堂成绩,实验成绩实验成绩,重修重修)28/36333 第三范式学号学号姓名姓名性别性别出生日期出生日期民族民族学院学院学院地址学院地址22060101 马伟立马伟立男男1987/10/12汉族汉族法学法学逸夫楼逸夫楼11050102 赵晓敏赵晓敏女女1988/05/01朝鲜族朝鲜族物理物理理化楼理化楼12060201 孙武孙武男男1989/03/02满族满族文学文学翠文楼翠文楼例如,对例如,对XS投
42、影分解成投影分解成学生学生和和学院学院两个关系两个关系模式,消除非主属性模式,消除非主属性学院地址学院地址对关键字对关键字学号学号的的传递函数依赖传递函数依赖。XSA(学号学号,姓名姓名,性别性别,出生日期出生日期,民族民族,学院码)学院码)12满族满族1989/03/02男男孙武孙武120602011111朝鲜族朝鲜族1988/05/01女女赵晓敏赵晓敏1105010222汉族汉族1987/10/12男男马伟立马伟立22060101学院码学院码民族民族出生日期出生日期性别性别姓名姓名学号学号XS(XS(学院码学院码,学院名,学院地址)学院名,学院地址)逸夫楼法学院22翠文楼文学院12理化楼物
43、理学院11学院地址学院地址学院名学院名学院码学院码29/36333 第三范式存在的问题存在的问题:在少数关系模式中仍然存在在少数关系模式中仍然存在数据数据冗余冗余、数据更新异常数据更新异常等问题。等问题。进一步规范化进一步规范化:在设计实用数据库时,三级在设计实用数据库时,三级范式基本满足要求。如果需要进一步规范化范式基本满足要求。如果需要进一步规范化,可以用,可以用BCNF、4NF和和5NF。总体规则总体规则:关系模式必须关系模式必须满足某级范式满足某级范式。范。范式式级别高级别高,数据,数据冗余小冗余小,关系数多关系数多,数据,数据更更新异常少新异常少,关系,关系连接操作次数多连接操作次数
44、多,系统,系统开销开销 大大。30/36333 第三范式 例如,输出学号、姓名、学院名、课程名和例如,输出学号、姓名、学院名、课程名和总分总分,通过,通过一级范式无连接一级范式无连接,而通过,而通过三级范式需三级范式需4 4个关系连接个关系连接。Select 学号,姓名,学院,课程,总分学号,姓名,学院,课程,总分;From XSXXB Select XSA.学号学号,姓名姓名,学院名学院名,课程名课程名,;考试成绩考试成绩+课堂成绩课堂成绩+实验成绩实验成绩 As 总分总分;From XSA,XYB,CJB,KCB;Where XSA.学号学号=CJB.学号学号 And;XSA.学院码学院码
45、=XYB.学院码学院码 And;CJB.课程码课程码=KCB.课程码课程码 31/36341 数据编码数据编码 数据编码数据编码:表示事物对象的一种符号,是对象表示事物对象的一种符号,是对象在某一范围内的在某一范围内的唯一标识唯一标识。如学号、身份证号。如学号、身份证号、性别码、民族码、书号、车牌号等。、性别码、民族码、书号、车牌号等。数据编码的作用数据编码的作用:数据数据规范化规范化,增强,增强通用性通用性、准确性准确性,易自动化,易自动化获取获取、节省节省存储存储空间空间。单体编码单体编码:用于用于标识对象标识对象,编码中各位没有,编码中各位没有特定含义。通常由国家统一标准。例如,性特定含
46、义。通常由国家统一标准。例如,性别码:别码:1男,男,2女;民族码:女;民族码:01汉族,汉族,11满族满族;省市码:;省市码:11北京,北京,22吉林吉林。32/36341 数据编码数据编码 复合编码复合编码:由由若干段若干段编码组成,编码组成,每段每段编码表示编码表示不同的含义不同的含义。如学号、身份证号、书号等。如学号、身份证号、书号等。分段方法分段方法:有按位分段(如身份证号)、分有按位分段(如身份证号)、分隔符(如或)分段(如图书或期刊号)隔符(如或)分段(如图书或期刊号)。按位分段法更适合计算机数据处理。按位分段法更适合计算机数据处理。如如 身份证身份证:省市编码省市编码 县编码县
47、编码 地区编码地区编码 出生日期出生日期 奇数为男;偶数为女奇数为男;偶数为女 33/36341 数据编码数据编码 学院编码学院编码 班级班级 年级年级 序号序号 又如又如 学生教学号学生教学号:34/36342 数据编码对关系模式的影响数据编码对关系模式的影响 单体编码单体编码:可可节省存储空间节省存储空间。如。如性别性别、民族民族民族码民族码 民族名民族名01汉族汉族02蒙古族蒙古族1010朝鲜族朝鲜族1111满族满族学号学号姓名姓名 性别性别 出生日期出生日期民族民族学院码学院码22060101马伟立男 1987/10/12汉族2211050102赵晓敏女 1988/05/01朝鲜族11
48、12060201孙武男 1989/03/02满族1212060202李春丽女 1988/06/12汉族12学号学号姓名姓名 性别性别 出生日期出生日期 民族码民族码 学院码学院码22060101马伟立11987/10/12012211050102赵晓敏21988/05/01101112060201孙武11989/03/02021212060202李春丽21988/06/12011235/36342 数据编码对关系模式的影响数据编码对关系模式的影响 学号学号姓名姓名性别性别出生日期出生日期民族码民族码学院码学院码22060101马伟立11987/10/12012211050102赵晓敏21988
49、/05/01101112060201孙武11989/03/02021212060202李春丽21988/06/120112复合编码复合编码:能能减少数据冗余减少数据冗余。如利用。如利用学号学号可以可以去掉学院码去掉学院码属性。属性。011988/06/12女女李春丽李春丽12060202111989/03/021孙武孙武1206020110101988/05/012 2赵晓敏赵晓敏11050102011987/10/121马伟立马伟立22060101民族码民族码出生日期出生日期性别码性别码姓名姓名学号学号36/36342 数据编码对关系模式的影响数据编码对关系模式的影响 复合编码的利弊复合编码
50、的利弊:数据数据复合编码复合编码是多个属性的是多个属性的组合,组合,破坏属性破坏属性的的原子性原子性,但,但方便操作方便操作和和节省节省存储空间存储空间。学号学号姓名姓名性别码性别码出生日期出生日期民族码民族码22060101 马伟立11987/10/120111050102 赵晓敏21988/05/011012060201 孙武11989/03/021112060202 李春丽女1988/06/1201序号序号学院学院年级年级班级班级37/3635 关系数据库物理设计关系数据库物理设计 1启动启动VFPVFP:单击:单击开始开始菜单菜单程序程序Microsoft Visual FoxPro