[工学]第6章 数据库

上传人:tia****nde 文档编号:71041400 上传时间:2019-01-19 格式:PPT 页数:50 大小:767.81KB
返回 下载 相关 举报
[工学]第6章 数据库_第1页
第1页 / 共50页
[工学]第6章 数据库_第2页
第2页 / 共50页
[工学]第6章 数据库_第3页
第3页 / 共50页
[工学]第6章 数据库_第4页
第4页 / 共50页
[工学]第6章 数据库_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《[工学]第6章 数据库》由会员分享,可在线阅读,更多相关《[工学]第6章 数据库(50页珍藏版)》请在金锄头文库上搜索。

1、信息工程学院,数据库系统概论 An Introduction to Database System 第六章 关系数据理论,An Introduction to Database System,第六章 关系数据理论,6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解,An Introduction to Database System,6.1 问题的提出,关系数据库逻辑设计 针对具体问题,如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由哪些属性组成。 设计任何一个数据库应用系统,不论是层次的、网状的还是关系的,都会遇到如何构造合适的数据模式即逻

2、辑结构的问题 数据库逻辑设计的一个有力工具关系数据库的规范化理论。,An Introduction to Database System,一、概念回顾,关系:表示实体,实体与实体间的联系。 从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。 关系模式:关系的描述称为关系模式。 关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F: 属性间数据的依赖关系集合,An Introduction to Database System,二、关系模式的简化表示,关系

3、模式R(U, D, DOM, F) 简化为一个三元组: R(U, F) 当且仅当U上的一个关系r 满足F时,r称为关系模式 R(U, F)的一个关系,An Introduction to Database System,三、什么是数据依赖,是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 人们已经提出了许多种类型的数据依赖,其中最主要的是: 函数依赖(Functional Dependency,简记为FD) 多值依赖(Multivalued Dependency,简记为MVD),An Introduction to

4、Database System,四、一个实例,例:建立一个描述学生情况的数据库,面临的对象有: 学生:用学号(Sno)描述, 系:用系名(Sdept)描述 系主任:用其姓名(Mname)描述 课程:用课程号(Cno)描述 成绩:Grade 假设用单一的关系模式S来表示,属性集合为: U Sno, Sdept, Mname, Cno, Grade ,An Introduction to Database System,一个实例(续),由现实世界的已知事实得知: 一个系有若干学生, 一个学生只属于一个系; 一个系只有一名(正职)主任; 一个学生可以选修多门课程, 每门课程有若干学生选修; 每个学生

5、所学的每门课程都有一个成绩。,An Introduction to Database System,一个实例(续),属性组U上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cno) Grade ,An Introduction to Database System,一个实例(续),如果只考虑函数依赖这一种数据依赖,就会得到描述该数据库单一的关系模式 : s ,An Introduction to Database System,关系模式s中存在的问题, 数据冗余太大 浪费大量的存储空间 例:学生所在的系和系主任的姓名重复出现 2.更新异样 数据冗余 ,更新

6、数据时,维护数据完整性代价大,容易造成数据不一致。 例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组,An Introduction to Database System,关系模式s中存在的问题,3插入异常 该插入的数据插不进去 例:如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。 如果一个学生没有选修任何一门课程,则学生的信息无法插入。 4删除异常 不该删除的数据不得不删 例:如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。 如果一个学生就选了一门课,现在这门课也不选了,在删除选课信息的同时这个学生的信息就会

7、被删除。,An Introduction to Database System,关系模式s中存在的问题,结论: s关系模式不是一个“好”的模式。 怎样的模式才是“好”的模式: 不会发生插入异常、删除异常,数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适 的数据依赖。,An Introduction to Database System,6.2 规范化,规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常和数据冗余等问题。,An Introduction to Database System

8、,6.2.1 函数依赖,一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖,An Introduction to Database System,一、函数依赖,定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。 若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作XY。 Y=f(x),An Introduction to Database System,说明:,1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而

9、是指R的所有关系实例均要满足的约束条件。 2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立 3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝插入该元组。,An Introduction to Database System,函数依赖(续),例: S(Sno, Sname, Ssex, Sage, Sdept) 假设不允许重名,则有: Sno Ssex, Sno Sage , Sno Sdept, Sno

10、 Sname, Sname Ssex, Sname Sage Sname Sdept 但SsexSage 若XY,并且YX, 则记为XY。 若Y不函数依赖于X, 则记为XY。,An Introduction to Database System,二、平凡函数依赖与非平凡函数依赖,在关系模式R(U)中,对于U的子集X和Y, 如果XY,但Y X,则称XY是非平凡的函数依赖 若XY,但Y X, 则称XY是平凡的函数依赖 例:在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno,

11、An Introduction to Database System,平凡函数依赖与非平凡函数依赖(续),对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。,An Introduction to Database System,三、完全函数依赖与部分函数依赖,定义6.2 在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有 X Y, 则称Y完全函数依赖于X,记作X Y。 若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X P Y。,An Introduction to Database System,完全函

12、数依赖与部分函数依赖(续),例: 1.在关系SC(Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade 2.在关系S(Sno, Sname, Ssex, Sage, Sdept)中 由于Sno Ssex 因此(Sno,Sname) P Ssex,An Introduction to Database System,四、传递函数依赖,定义6.3 在关系模式R(U)中,如果XY,YZ,且YX,YX,则称Z传递函数依赖于X。 注: 如果YX, 即XY,则Z直接依赖于X。 例: 在关系Std(Sno, Sdept, Mname)中

13、,有: Sno Sdept,Sdept Mname Mname传递函数依赖于Sno,An Introduction to Database System,6.2.2 码,定义6.4 设K为关系模式R中的属性或属性组合。若K U,则K称为R的一个侯选码(Candidate Key)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。 主属性:包含在任何一个候选码中的属性。 非主属性:不包含在任何码中的属性称为非主属性。 如:在选课关系sc中,sno,cno f (sno,cno,grade),所以(sno,cno)是关系sc的码,sno,cno为主属性,而grade为

14、非主属性。,An Introduction to Database System,外部码,定义6.5 关系模式R 中属性或属性组X 并非R 的主码,但X 是另一个关系模式的主码,则称X 是R 的外部码(Foreign key)也称外码 主码和外部码提供了一个表示关系间联系的手段。,An Introduction to Database System,6.2.3 范式,关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。 本来,所谓“第几范式”,是表示关系的某一级别。所以经常称某一关系模式R为第几范式。 现在把范式这个概念理解成符合某一级别的关系的集合,则R为第几范式可以写成Rx

15、NF。 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。,An Introduction to Database System,6.2.3 范式,范式的种类: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF),An Introduction to Database System,6.2.4 1NF,1NF的定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 但是满足第

16、一范式的关系模式并不一定是一个好的关系模式。,An Introduction to Database System,2NF,2NF的定义 定义6.6 若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则R2NF。,An Introduction to Database System,2NF,例: 关系模式 S(Sno, Sdept, MName, Cno, Grade) 函数依赖包括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sdept Sno Mname (Sno, Cno) P MName,An Introduction to Database System,2NF,S的码为(Sno, Cno) S满足第一范式。 非主属性Sdept

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号