《【教学课件】第7章关系数据库系统基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章关系数据库系统基础.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第7章 关系数据库系统基础l本章主要内容本章主要内容:l1.1.关系模型的数学定义关系模型的数学定义l2.2.结构化查询语言结构化查询语言 SQL SQLl3.3.关系数据库理论关系数据库理论:函数依赖和规范化函数依赖和规范化l4.4.安全性和完整性安全性和完整性17.1 7.1 关系模型的数学定义和关系代数关系模型的数学定义和关系代数l一一.关系模型的数学定义关系模型的数学定义l1.1.域域:同类型值的集合。如整数集合、同类型值的集合。如整数集合、字母集合等。字母集合等。l2.2.笛卡尔积笛卡尔积:由一组域由一组域D D1,1,D D2,2,D,D 产生产生l3.3.元组元组:笛卡尔积集合中
2、的每个元素称为笛卡尔积集合中的每个元素称为一个一个元组元组.l4.4.关系关系:笛卡尔积集合的一个子集。笛卡尔积集合的一个子集。2笛卡尔乘积举例笛卡尔乘积举例l设有三个集合:设有三个集合:NAMENAME、AGEAGE、SEXSEXNAME AGE SEX NAS(NAME AGE SEX NAS(NAMEAGESEX)=刘刘王王2120男男女女NAME AGE SEXNAME AGE SEX刘刘 21 男男刘刘 21 女女刘刘 20 男男刘刘 20 女女王王 21 男男王王 21 女女王王 20 男男王王 20 女女(刘刘,21,男男)是其中一个是其中一个元组元组3个分量分别为个分量分别为
3、刘刘,21,男男.3二二.关系组成关系组成l1.1.关系用二维表表示关系用二维表表示l 第一行第一行:字段名的集合字段名的集合,关系框架关系框架(结构结构)l 其它行其它行:元组或记录元组或记录l 列列:属性属性(域域)或属性或属性l2.2.关系模式关系模式:一个关系的属性名表一个关系的属性名表l 格式格式:关系名关系名(属性名表属性名表)l 例如例如:STUDENT(STUDENT(学号学号,姓名姓名,性别性别,年龄年龄)4二二.关系组成关系组成l3.3.关系的基本性质关系的基本性质每一列不能再分每一列不能再分每一列属性的值具有相同的数据类型每一列属性的值具有相同的数据类型不允许有重复的列不
4、允许有重复的列不允许有相同的记录不允许有相同的记录行、列次序均无关行、列次序均无关5二二.关系组成关系组成l4.关系中的键关系中的键(码码)l(1)候选键候选键:关系中可以唯一标识元组的属关系中可以唯一标识元组的属性或属性集合性或属性集合.l例例1 关系关系STUDENT 例例2 关系关系SCOREl 学号学号 姓名姓名 年龄年龄 学号学号 课号课号 成绩成绩l 99001 张平张平 19 99001 C01 90l 99002 李化李化 20 99001 C02 89l 99003 王一王一 18 99002 C02 70 6二二.关系组成关系组成l(2)主键主键(主码主码)l 在多个候选键
5、中选择一个在多个候选键中选择一个l(3)外键外键 l 用来联系两个关系的一组属性用来联系两个关系的一组属性,在一个在一个关系中不是候选健关系中不是候选健,在另一个关系中是候选在另一个关系中是候选键键,如上例中的学号如上例中的学号.l(4)主属性主属性:属于候选键中的属性属于候选键中的属性l(5)非主属性非主属性:不属于候选键中的属性不属于候选键中的属性7三三.关系数据库关系数据库l1.1.关系数据库关系数据库 l 以关系模式为基础以关系模式为基础l2.2.组成组成l 数据结构数据结构+关系操作关系操作+完整性约束完整性约束l3.3.完整性约束完整性约束l 1)1)实体完整性实体完整性:要求主属
6、性非空要求主属性非空l 2)2)参照完整性参照完整性:关系之间的参照关系之间的参照l 3)3)用户定义完整性用户定义完整性:l 例如例如,0,0数学数学1001008四四.关系代数及关系运算关系代数及关系运算示例示例:关系关系STUDENTSTUDENT学号学号 姓名姓名 专业专业 性别性别 数学数学 物理物理 化学化学 99001 99001 沈小平沈小平 计算机计算机 女女 85 76 76 85 76 7699002 99002 陆华陆华 计算机计算机 女女 96 92 95 96 92 9599003 99003 王华王华 计算机计算机 女女 91 92 99 91 92 99 990
7、04 99004 郭勇郭勇 计算机计算机 男男 89 96 96 89 96 9699005 99005 魏明魏明 计算机计算机 男男 89 85 82 89 85 829四四.关系代数及关系运算关系代数及关系运算l1.1.选选择择 从从指指定定关关系系中中选选择择出出符符合合条条件件的的元元组组成新的关系。组组成新的关系。l举举例例:从从关关系系STUDENTSTUDENT中中,选选择择总总成成绩绩不不低低于于270270分的记录。分的记录。l条件条件:数学数学+物理物理+化学化学=270=270 结果结果:学号学号 姓名姓名 专业专业 性别性别 数学数学 物理物理 化学化学 99002 9
8、9002 陆华陆华 计算机计算机 女女 96 92 95 96 92 9599003 99003 王华王华 计算机计算机 女女 91 92 99 91 92 99 99004 99004 郭勇郭勇 计算机计算机 男男 89 96 96 89 96 9610四四.关系代数及关系运算关系代数及关系运算l2.投投影影 从从指指定定关关系系的的属属性性集集合合中中选选取取部部分分属性组成新的关系。属性组成新的关系。l举举 例例:从从 关关 系系 STUDENTSTUDENT中中,选选 择择“姓姓 名名”、“专业专业”、“物理物理”三个属性构成新关系。三个属性构成新关系。结果结果:姓名姓名 专业专业 物
9、理物理 沈小平沈小平 计算机计算机 76 76 陆华陆华 计算机计算机 92 92 王华王华 计算机计算机 92 92 郭勇郭勇 计算机计算机 96 96 魏明魏明 计算机计算机 85 85 11四四.关系代数及关系运算关系代数及关系运算l3.3.联联接接 将将两两个个关关系系中中的的元元组组按按指指定定条条件件进进行组合行组合,生成一个新的关系生成一个新的关系l举例举例:将下面两个关系按学号合并。将下面两个关系按学号合并。学号 姓名 数学 英语 学号 姓名 体育 8612162 陆华 96 92 8612162 陆华 良 8612104 王华 91 92 8612104 王华 良 86121
10、05 郭勇 89 96 8612107 刘平 优l结果结果:学号 姓名 数学 英语 体育 8612162 陆华 96 92 良 8612104 王华 91 92 良12四四.关系代数及关系运算关系代数及关系运算l4.4.并运算并运算 两个关系两个关系R R和和S S的并结果由属的并结果由属于于R R或属于或属于S S的元组组成。的元组组成。R R S S13并运算举例并运算举例 名称名称 颜色颜色 长度长度的确良的确良 白白 1000 1000华达呢华达呢 黑黑 2000 2000名称名称 颜色颜色 长度长度的确良的确良 黑黑 2000 2000华达呢华达呢 黑黑 2000 2000 名称名称
11、 颜色颜色 长度长度的确良的确良 白白 1000 1000的确良的确良 黑黑 2000 2000华达呢华达呢 黑黑 2000 2000关系关系S S关系关系R RS S关系关系R R14四四.关系代数及关系运算关系代数及关系运算l5.5.交运算交运算 关系关系R R和和S S的交由既属于的交由既属于R R又属又属于于S S的元组组成。的元组组成。RSR R S S15交运算举例交运算举例 名称名称 颜色颜色 长度长度的确良的确良 白白 1000 1000华达呢华达呢 黑黑 2000 2000名称名称 颜色颜色 长度长度的确良的确良 黑黑 2000 2000华达呢华达呢 黑黑 2000 2000
12、 名称名称 颜色颜色 长度长度华达呢华达呢 黑黑 2000 2000关系关系S S关系关系R R S S关系关系R R16四四.关系代数及关系运算关系代数及关系运算l6.6.差运算差运算 关系关系R R和和S S的差的差R-SR-S,由属,由属于于R R而不属于而不属于S S的元组组成的元组组成RSR-SR-S17差运算举例差运算举例 名称名称 颜色颜色 长度长度的确良的确良 白白 1000 1000华达呢华达呢 黑黑 2000 2000名称名称 颜色颜色 长度长度的确良的确良 黑黑 2000 2000华达呢华达呢 黑黑 2000 2000 名称名称 颜色颜色 长度长度的确良的确良 白白 10
13、00 1000关系关系S S关系关系R-SR-S关系关系R R18四四.关系代数及关系运算关系代数及关系运算 关系关系A关系关系BX Y ZX Y Z U VU Vx1 y1 1x2 y2 2u1 v11 v2关系关系C=AxB X Y Z U Vx1 y1 1 u1 v1x1 y1 1 1 v2x2 y2 2 u1 v1x2 y2 2 1 v27 7.笛卡尔积 两个关系A和B的笛卡尔积是一个元组集合C。C中属性个数为A和B的属性个数之和,元组个数为A和B各自元组个数的乘积。举例:197.2 结构化查询语言结构化查询语言l一一.概述概述l1.SQL 结构化查询语言结构化查询语言:关系数据库的标
14、关系数据库的标准查询语言准查询语言l2.组成组成:DDL 数据定义语言数据定义语言l DML 数据操纵语言数据操纵语言l DCL 数据控制语言数据控制语言l3.运算符运算符 P201l4.数据类型数据类型207.2 结构化查询语言结构化查询语言l二二.DDL 作用作用:定义表定义表,视图视图,索引索引l1.表表l1)定义定义 CREATE TABLE student(l no char(8),name char(6),l age number(3);l2)修改修改 ALTER TABLE studentl MODIFY(name char(8)l ADD(sex char(2);217.2 结
15、构化查询语言结构化查询语言l3)删除删除 DROP TABLE student;l2.索引索引l1)建立索引建立索引 lCREATE INDEX st_no ON student(no);l2)删除索引删除索引 lDROP INDEX st_no227.2 结构化查询语言结构化查询语言l3.视图视图l1)建立建立 CREATE VIEW lx AS l SELECT*FROM studentl WHERE age20;l2)删除删除l DROP VIEW lx;237.2 结构化查询语言结构化查询语言l三三.DMLl1.查询查询 P205l1)SELECT*FROM studentl2)SEL
16、ECT NO,NAME FROM studentl3)SELECT*FROM STUDENT WHEREl age20 ORDER BY agel4)SELECT*FROM studentl GROUP BY sex247.2 结构化查询语言结构化查询语言l2.插入插入(记录记录)l INSERT INTO student l VALUES(990001,ZHANG,20);l3.更改(记录)更改(记录)l UPDATE student l SET age=age+1;l4.删除删除lDELETE FROM student WHERE age19257.2 结构化查询语言结构化查询语言l四四.
17、DCLl1.授权授权 GRANTl2.回收回收 REVOKE267.3 7.3 关系数据库理论关系数据库理论l一一.问题的引出问题的引出:关系关系SCT(SCT(学生课程教师)学生课程教师)l 学号学号 课号课号 成绩成绩 教师姓名教师姓名 教师年龄教师年龄 办公室办公室 S#C#GRADE TNAME TAGE OFFICE S#C#GRADE TNAME TAGE OFFICE S1 C1 90 S1 C1 90 周周 45 301 45 301 S1 C2 91 S1 C2 91 刘刘 39 302 39 302 S1 C3 85 S1 C3 85 刘刘 39 302 39 302 S1
18、 C4 87 S1 C4 87 王王 51 301 51 301 S2 C1 92 S2 C1 92 周周 45 301 45 301 S3 C1 75 S3 C1 75 周周 45 301 45 301 S3 C2 56 S3 C2 56 刘刘 39 302 39 30227SCTSCT关系中存在的问题关系中存在的问题数据冗余数据冗余 如果某门课程有如果某门课程有100100个学生选修,要个学生选修,要出现出现100100个记录,相应的教这门课的教师个记录,相应的教这门课的教师的姓名、年龄、办公室也要出现的姓名、年龄、办公室也要出现100100次。次。更新异常更新异常 对对SCTSCT关系中
19、的数据进行修改,可能关系中的数据进行修改,可能导致数据不一致的情况。导致数据不一致的情况。例如,将第一条记录的例如,将第一条记录的OFFICEOFFICE值改为值改为303303,会出现周老师的办公室号码不一致,会出现周老师的办公室号码不一致,除非修改所有周老师记录中的办公室号码。除非修改所有周老师记录中的办公室号码。28SCTSCT关系中存在的问题关系中存在的问题l插入异常插入异常 l 如果某课程决定由张老师担任,但在还如果某课程决定由张老师担任,但在还不知道哪些学生选修前,无法将张老师的记不知道哪些学生选修前,无法将张老师的记录插入关系中。因为,在录插入关系中。因为,在SCTSCT关系中(
20、关系中(S#S#,C#C#)是主关键字,在)是主关键字,在C#C#不确定的情况下,不不确定的情况下,不能插入该记录。能插入该记录。l删除异常删除异常 l 如果要删除某门课程的所有成绩,则会如果要删除某门课程的所有成绩,则会将教这门功课的教师信息也删除掉。例如,将教这门功课的教师信息也删除掉。例如,若要删除若要删除C4C4的元组,结果会丢失王老师的元组,结果会丢失王老师的有关信息。的有关信息。29SCTSCT关系中存在的问题关系中存在的问题l解决方法解决方法:将将SCTSCT关系分解为两个关系关系分解为两个关系SCSC和和CT(CT(还需分解还需分解)S#C#GRADE S#C#GRADE S1
21、 C1 90 S1 C1 90 S1 C2 91 S1 C2 91 S1 C3 85 S1 C3 85 S1 C4 87 S1 C4 87 S2 C1 92 S2 C1 92 S3 C1 75 S3 C1 75 S3 C2 56S3 C2 56SC关系关系 C#TNAME TAGE OFFICEC#TNAME TAGE OFFICE C1 C1 周周 45 301 45 301 C2 C2 刘刘 39 302 39 302 C3 C3 刘刘 39 302 39 302 C4 C4 王王 51 301 51 301 CT关系关系30二二.数据依赖数据依赖l1.1.描述同一关系内各属性之间的相互关
22、描述同一关系内各属性之间的相互关系被称为数据依赖。系被称为数据依赖。l2.2.常见依赖类型常见依赖类型:函数依赖函数依赖、完全函数完全函数依赖依赖,部分函数依赖部分函数依赖和和传递依赖传递依赖l3.3.函数依赖函数依赖:关系关系R R中,如果每个属性中,如果每个属性(或或属性集属性集)A)A的值只有一个属性的值只有一个属性B B的值与之对的值与之对应,就称属性应,就称属性B B函数依赖于函数依赖于A A,或,或A A函数决函数决定定B.B.记为:记为:A A B B。例例:学号学号 姓名姓名 学号学号 年龄年龄 学号学号,课号课号 成绩成绩 31二二.函数依赖函数依赖l4.4.如果非主属性如果
23、非主属性B B函数依赖于构成某个候函数依赖于构成某个候选关键字的一组主属性选关键字的一组主属性A A,而不函数依赖于,而不函数依赖于A A的任何一个真子集,则称的任何一个真子集,则称B B完全函数依赖完全函数依赖于于A A;反之,则称;反之,则称B B部分函数依赖部分函数依赖于于A A。l5.5.设设X,Y,Z X,Y,Z 是关系是关系R R的三个不同属性子集,的三个不同属性子集,如果如果 X XY Y,但,但Y YX X且且Y YZ Z,则称,则称Z Z传递函传递函数依赖数依赖于于X X。(更正教材更正教材P215P215页页)32函数依赖举例函数依赖举例l关系BORROWl借书证号 姓名
24、单位 主任 书号 书名 日期l0621 张山 财务 胡月 6201 哲学 99.03.02 33函数依赖举例函数依赖举例l借书证号 姓名 单位 主任书号 书名 日期l 关键字关键字:借书证号借书证号+书号书号l 主属性主属性:借书证号借书证号,书号书号l 非主属性非主属性:姓名姓名,单位单位,主任主任,书名书名,日期日期l 日期日期完全函数依赖完全函数依赖于关键字于关键字l 其它非主属性其它非主属性部分函数依赖部分函数依赖于关键字于关键字 由于由于:单位函数依赖于借书证号单位函数依赖于借书证号 主任函数依赖于单位主任函数依赖于单位 所以所以:主任主任传递函数依赖传递函数依赖于借书证号于借书证号
25、34三三.关系规范化关系规范化l1.1.规范化规范化:将关系按不同标准分解的过程将关系按不同标准分解的过程l2.2.范式范式:分解关系的不同标准。分解关系的不同标准。第一范式第一范式1NF1NF第二范式第二范式2NF2NF第三范式第三范式3NF3NFBoyce-CoddBoyce-Codd范式范式BCNFBCNF第四范式第四范式4NF4NF第五范式第五范式5NF5NF 它们满足下列关系:它们满足下列关系:5NF5NF 4NF 4NF BCNF BCNF 3NF 3NF 2NF 2NF 1NF 1NF35三三.关系规范化关系规范化l3.3.第一范式第一范式l 关系中的所有属性都是不可分的基本关系
26、中的所有属性都是不可分的基本数据项数据项,则关系称为第一范式则关系称为第一范式1NF1NF。l4.4.第二范式第二范式l 如果关系如果关系R R为第一范式,并且任一非为第一范式,并且任一非主属性都完全函数依赖于主属性都完全函数依赖于R R的任一候选关的任一候选关键字,则称键字,则称R R为第二范式为第二范式2NF2NF36三三.关系规范化关系规范化l举例举例 l 关系关系BORROWBORROW中中,姓名、单位、书名、主姓名、单位、书名、主任都任都部分函数依赖部分函数依赖于候选关键字于候选关键字 借书证号借书证号+书号书号,所以不是第二范式所以不是第二范式l将其分解为以下将其分解为以下3 3个
27、关系个关系,都属于都属于2NF2NF READERREADER(借书证号、姓名、单位、主任)、姓名、单位、主任)BOOKBOOK(书号、书名)、书名)BORROWBORROW(借书证号、书号、日期、日期)37 READER BOOK READER BOOKl借书证号 姓名 单位 主任 书号 书名 l8212 陆定 校办 李平 6201 哲学 l0621 张山 财务 胡月 3104 会计学 l2103 何力 财务 胡月 5112 党史 BORROW BORROW借书证号 书号 日期l0621 6201 99.03.02 l 38三三.关系规范化关系规范化5.5.第三范式第三范式l 如果关系模式如
28、果关系模式R R满足满足2NF2NF,并且其任何,并且其任何一个非主属性都不传递函数依赖于任何候一个非主属性都不传递函数依赖于任何候选关键字,则称选关键字,则称R R为第三范式为第三范式3NF3NF。举例举例:READER:READER满足第二范式,但非主属性主满足第二范式,但非主属性主任传递依赖于借书证号任传递依赖于借书证号,因此不是第三范因此不是第三范式式,将将READERREADER再分解再分解,消除传递函数依赖消除传递函数依赖l借书证号 姓名 单位 主任l8212 陆定 校办 李平l0621 张山 财务 胡月l2103 何力 财务 胡月39l将将READERREADER分解为分解为ST
29、UFFSTUFF和和LEADERLEADERl STUFF LEADER STUFF LEADERl借书证号 姓名 单位 单位 主任l8212 陆定 校办 校办 李平l0621 张山 财务 财务 胡月l2103 何力 财务 l STUFF STUFF和和LEADERLEADER都为第三范式。都为第三范式。40总结总结 1.1.非规范关系消去重复组或空白变为非规范关系消去重复组或空白变为1NF1NF;2.1NF2.1NF中消去非主属性对候选键的部分依中消去非主属性对候选键的部分依赖变为赖变为2NF2NF;3.3.消去非主属性对候选键的传递依赖变消去非主属性对候选键的传递依赖变成成3NF3NF;一
30、般分解到一般分解到3NF3NF就能满足需要。就能满足需要。范式级别越高,产生的新关系就越多,范式级别越高,产生的新关系就越多,查询时就要进行大量的联结运算。查询时就要进行大量的联结运算。417.4 关系数据库的安全性和完整性关系数据库的安全性和完整性l一一.安全性安全性l 1.用户身份标识和鉴别用户身份标识和鉴别-口令口令l 2.存取权限控制策略存取权限控制策略l二二.完整性完整性 l 数据的正确性和相容性数据的正确性和相容性l三三.并发控制并发控制 l 多个用户操作的同步和冲突多个用户操作的同步和冲突427.5 新型关系数据库概述新型关系数据库概述l一一.分布式数据库分布式数据库l 网络环境下不同场地数据的存取网络环境下不同场地数据的存取l二二.对象数据库对象数据库l 扩展数据类型扩展数据类型,支持继承和重载支持继承和重载l 43作业、思考题作业、思考题1 1、思考题:、思考题:P221 7.1P221 7.1、7.37.3、7.47.42 2、作业题:、作业题:P221 7.5P221 7.544