基本信息
文件名称:《数据库原理及应用(第二版)》课件 第2章 关系数据库理论基础.pptx
文件大小:466.16 KB
总页数:29 页
更新时间:2025-06-07
总字数:约1.75千字
文档摘要

第2章关系数据库理论;一、关系运算;A;A;A;A;选择运算根据一个或多个条件从一张数据表中选择符合条件的行。;【例2-2】从关系Student中选取所有年龄小于20的学生,其关系运算表达式为:;投影运算也是一个单目运算,它是从一个关系R中选取所需要的列组成一个新关系。;【例2-4】查询学生的姓名和所在系;一、关系运算》专门关系运算》连接运算;一、关系运算》专门关系运算》连接运算;【例2-7】查询选修了1号课程的学生学号。

?Sno(?Cno=‘1’(SC))

【例2-8】查询选修了1号课程或3号课程的学生学号。

?Sno(?Cno=‘1’vCno=‘3’(SC))

?Sno(?Cno=‘1’(SC))U?Sno(?Cno=‘3’(SC))

【例2-9】查询至少选修了一门其先行课为5号课程的学生姓名。

?Sname(?Cpno=‘5’(Course)?SC??Sno,Sname(Student));二、规范化理论;Sno;Sno;定义2.1设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。;范式是符合某一种级别的关系模式的集合,是衡量关系模式规范化程度的标准,达到范式要求的关系才是规范化的。

关系模式的规范化主要解决的问题是关系中数据冗余及由此产生的操作异常。而从函数依赖的观点来看,即是消除关系模式中产生数据冗余的函数依赖。;1.第一范式(1NF);关系模式如下:

SLC(SNO,DEPT,SLOC,CNO,GRADE)

字段的含义分别为:学号、系别、住处,课号、成绩。

此关系模式为第一范式,但存在如下问题:

(1)插入异常问题。假若要插入一个SNO?=?95102,DEPT?=?IS,SLOC?=?N,但还未选课的学生,即这个学生无CNO,这样的元组不能插入SLC中。

(2)删除异常问题。假定某个学生只选修了一门课,且这门课程只有这一个学生选。删除选课记录后,学生的基本信息丢失了,课程信息的信息也丢失了。

(3)数据冗余度大的问题。如果一个学生选修了10门课程,那么他的DEPT和SLOC值就要重复存储10次。

;2.第二范式(2NF);SLC(SNO,DEPT,SLOC,CNO,GRADE)

;将SLC分解为以下两个关系??式:

SC(SNO,CNO,GRADE)

SL(SNO,DEPT,SLOC)

其中,SC的码为(SNO,CNO);SL的码为SNO。;定义2.4在关系模式R(U)中,如果X→Y,Y→Z,且Y?X,则称Z传递函数依赖

于X,记作Z→X。

定义2.11如果一个关系模式R∈2NF,且所有非主属性都不传递函数依赖于任何候选码,则R∈3NF。

第三范式例子:

成绩表(学号,课程号,成绩)(学号,课程号)→成绩

学生(学号,姓名,性别)学号→姓名,学号→性别,姓名?性别

;把SL(SNO,DEPT,SLOC)分解为两个关系模式:

SD(SNO,DEPT)

DL(DEPT,SLOC)

其中,SD的码为SNO;DL的码为DEPT。

关系模式中既没有非主属性对码的部分函数依赖,也没有非主属性对码的传递函数依赖,基本上解决了上述问题:

(1)当没有学生信息时,在DL关系中可以插入系别和住处信息。

(2)某个系的学生全部毕业了,只是删除SD关系中的相应元组,DL关系中关于该系的信息仍然存在。

(3)关于系的住处的信息只在DL关系中存储一次。

(4)当学校调整某个系的学生住处时,只需修改DL关系中一个相应元组的SLOC属性值。;在信息系统的设计中,普遍采用的是“基于3NF的系统设计”方法,就是由于3NF是无条件可以达到的,并且基本解决了“异常”的问题,因此这种方法目前在信息系统的设计中仍然被广泛地应用。;二、规范化理论》关系模式规范化的实例;Ecode;本章小结