软件设计师培训数据库(DB).ppt

上传人:工**** 文档编号:569932411 上传时间:2024-07-31 格式:PPT 页数:121 大小:1.01MB
返回 下载 相关 举报
软件设计师培训数据库(DB).ppt_第1页
第1页 / 共121页
软件设计师培训数据库(DB).ppt_第2页
第2页 / 共121页
软件设计师培训数据库(DB).ppt_第3页
第3页 / 共121页
软件设计师培训数据库(DB).ppt_第4页
第4页 / 共121页
软件设计师培训数据库(DB).ppt_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《软件设计师培训数据库(DB).ppt》由会员分享,可在线阅读,更多相关《软件设计师培训数据库(DB).ppt(121页珍藏版)》请在金锄头文库上搜索。

1、软件设计师培训软件设计师培训软件设计师培训软件设计师培训软件设计师软件设计师历年考试对本章内容的考查情况历年考试对本章内容的考查情况考次考次2004200520062007200820095月月11月月5月月11月月5月月11月月5月月11月月5月月11月月5月月分值分值620202020202220212121比重4%13.3%13.3%13.3%13.3%13.3%14.7%13.3%14%14% 14%本章的重点程度:本章的重点程度:软件设计师软件设计师2.2.数据库技术基础知识数据库技术基础知识大纲要求:大纲要求:l 数据库管理系统的功能和特征数据库管理系统的功能和特征l 数据库体系结

2、构(概念模式、外模式、内模式)数据库体系结构(概念模式、外模式、内模式)l 数据模型,数据模型,ERER图,第一范式、第二范式、第三范式图,第一范式、第二范式、第三范式l 数据操作(集合运算和关系运算)数据操作(集合运算和关系运算)l 数据库语言(数据库语言(SQLSQL)l 数据库的控制功能(并发控制、恢复、安全性、完整性)数据库的控制功能(并发控制、恢复、安全性、完整性)l 数据仓库和分布式数据库基础知识数据仓库和分布式数据库基础知识 软件设计师软件设计师2.1 2.1 数据库系统的基本概念数据库系统的基本概念l DB、DBMS和和DBS的定义的定义 DB (数据数据库) 是长期存储在计算

3、机内、有组织的、统一管是长期存储在计算机内、有组织的、统一管理的相关数据的集合。理的相关数据的集合。 DBMS(数据库管理系统数据库管理系统)是数据库系统中管理数据的软件是数据库系统中管理数据的软件系统。位于用户与操作系统之间的一层管理软件。系统。位于用户与操作系统之间的一层管理软件。 DBS(数据库管理系统数据库管理系统)在计算机系统中引入数据库后的在计算机系统中引入数据库后的系统。是数据库、硬件、软件、数据库管理员及用户的集系统。是数据库、硬件、软件、数据库管理员及用户的集合。合。软件设计师软件设计师l数据库管理系统的功能数据库管理系统的功能1.1.数据库的定义功能数据库的定义功能 DBM

4、SDBMS提供数据定义语言提供数据定义语言(DDL)(DDL)定义数据库的三级结构定义数据库的三级结构两级映象,定义数据的完整性、安全控制约束。两级映象,定义数据的完整性、安全控制约束。2.2.数据库的操作数据库的操作 DBMS DBMS提供数据操作语言提供数据操作语言(DML)(DML)实现对数据库中数据的操实现对数据库中数据的操 作。基本数据操作有:检索作。基本数据操作有:检索( (查询查询) )、和更新、和更新( (插入、删除、插入、删除、修改修改) )。软件设计师软件设计师3.3.数据库的保护功能数据库的保护功能 DBMS DBMS对数据的保护主要通过四个方面实现,因而对数据的保护主要

5、通过四个方面实现,因而DBMSDBMS中包括四个子系统。中包括四个子系统。数据库恢复数据库恢复数据库的并发控制数据库的并发控制数据库的完整性控制数据库的完整性控制数据库的安全性控制数据库的安全性控制软件设计师软件设计师4.4.数据库存储管理数据库存储管理 DBMSDBMS的存储管理子系统提供了数据库中数据和应用程的存储管理子系统提供了数据库中数据和应用程序的一个界面,序的一个界面,DBMSDBMS存储管理子系统的职责是把各种存储管理子系统的职责是把各种DMLDML语句转换成底层的与磁盘中数据打交道的操作系统的文件语句转换成底层的与磁盘中数据打交道的操作系统的文件系统命令,起到数据的存储、检索和

6、更新的作用。系统命令,起到数据的存储、检索和更新的作用。软件设计师软件设计师5.5.数据库的维护功能数据库的维护功能数据装载程序数据装载程序备份程序备份程序文件重组织程序文件重组织程序性能监控程序性能监控程序6. 6. 数据字典(数据字典(DDDD) 数据库系统中存放三级结构定义的数据库称为数据字数据库系统中存放三级结构定义的数据库称为数据字典。对数据库的操作都要通过访问典。对数据库的操作都要通过访问DDDD才能实现。才能实现。DDDD中还存中还存放数据库运行的统计信息,例如记录个数、访问次数等。放数据库运行的统计信息,例如记录个数、访问次数等。软件设计师软件设计师 【软件设计师考试软件设计师

7、考试20072007年年1111月上午试题月上午试题5151】 在数据库系统中,数据的完整性约束的建立需要在数据库系统中,数据的完整性约束的建立需要通过数据库管理系统提供的通过数据库管理系统提供的(5151) 语言来实现。语言来实现。(5151)A. A. 数据定义数据定义B. B. 数据操作数据操作 C. C. 数据查询数据查询D. D. 数据控制数据控制A A软件设计师软件设计师2.2 2.2 数据库系统的体系结构数据库系统的体系结构三级结构两级映象三级结构两级映象l 三级结构:外模式、概念模式、内模式三级结构:外模式、概念模式、内模式l 两级映象:外模式两级映象:外模式/ /模式映象、模

8、式模式映象、模式/ /内模式映象内模式映象软件设计师软件设计师l 三级结构:三级结构: 外模式:外模式:单个用户使用到的那部分数据的描述。单个用户使用到的那部分数据的描述。 概念模式:概念模式:是用户定义的数据库中全部数据逻辑是用户定义的数据库中全部数据逻辑结构的描述。结构的描述。 内模式:内模式:是数据库在物理存储方面的描述,接近是数据库在物理存储方面的描述,接近于物理存储设备,涉及到实际数据存储的结构。于物理存储设备,涉及到实际数据存储的结构。软件设计师软件设计师软件设计师软件设计师软件设计师软件设计师l两级映象两级映象 模式内模式映象:模式内模式映象:存在于概念级和内部级之间,存在于概念

9、级和内部级之间,用于定义概念模式和内模式之间的对应性。用于定义概念模式和内模式之间的对应性。 外模式模式映象:外模式模式映象:存在于外部级和概念级之间,存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。用于定义外模式和概念模式之间的对应性。软件设计师软件设计师l两级数据独立性两级数据独立性 数据独立性是指应用程序和数据库的数据结构之间相互数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。独立,不受影响。 数据独立性分成数据独立性分成物理数据独立性物理数据独立性和和逻辑数据独立性逻辑数据独立性两个两个级别。级别。 物理数据独立性物理数据独立性:数据的内模式修改,模式内

10、模式也:数据的内模式修改,模式内模式也要进行相应的修改,但概念模式尽可能保持不变。要进行相应的修改,但概念模式尽可能保持不变。 逻辑数据独立性:逻辑数据独立性:数据的概念模式修改,外模式模式数据的概念模式修改,外模式模式也要进行相应的修改,但外模式尽可能保持不变。也要进行相应的修改,但外模式尽可能保持不变。软件设计师软件设计师2.3 2.3 数据模型数据模型 数据模型数据模型: :表示实体类型及实体间联系的模型表示实体类型及实体间联系的模型. . 根据模型应用的不同目的可以将模型化分为根据模型应用的不同目的可以将模型化分为概念概念数据模型数据模型和和结构数据模型结构数据模型l 概念模型概念模型

11、 ER ER模型(实体联系模型)模型(实体联系模型)l 结构数据模型结构数据模型 层次模型、网状模型、关系模型层次模型、网状模型、关系模型按用户的观点对按用户的观点对数据和信息建模的数据和信息建模的按计算机的观点对按计算机的观点对数据建模的,直接数据建模的,直接面向数据库的结构面向数据库的结构软件设计师软件设计师概念模型概念模型结构数据模型结构数据模型现实世界现实世界信息世界信息世界机器世界机器世界软件设计师软件设计师l 概念模型概念模型 ER ER模型(实体联系模型)模型(实体联系模型) 实体间的联系实体间的联系:实体集内部以及实体集的联:实体集内部以及实体集的联 系。包括一对一的联系、一对

12、多的联系、多对系。包括一对一的联系、一对多的联系、多对 多的联系多的联系。 描述实体间联系的模型称为描述实体间联系的模型称为实体联系模型实体联系模型 简称简称ERER模型。模型。软件设计师软件设计师学生学生课程课程选修选修学号学号姓名姓名性别性别课程号课程号 课程名课程名学分学分年龄年龄mn软件设计师软件设计师软件设计师软件设计师1nn11n1n1nmn1n1n软件设计师软件设计师l数据结构模型数据结构模型 数据库领域中常用的数据结构模型:数据库领域中常用的数据结构模型: 层次模型层次模型 网状模型网状模型 关系模型关系模型软件设计师软件设计师【软件设计师考试软件设计师考试20092009年年

13、5 5月上午试题月上午试题5151】 采用二维表格结构表达实体类型及实体间联系的数据模采用二维表格结构表达实体类型及实体间联系的数据模型是型是 (5151) 。 (5151)A. A. 层次模型层次模型 B. B. 网状模型网状模型 C. C. 关系模型关系模型D. D. 面向对象模型面向对象模型 软件设计师软件设计师层次模型:层次模型: 用用树树型结构表示实体类型及实体间联系的数据模型。型结构表示实体类型及实体间联系的数据模型。特点:特点:1.1.有且只有一个结点无父结点;有且只有一个结点无父结点;2.2.其它结点有且只有一个父结点;其它结点有且只有一个父结点;3.3.适用于适用于一对多的一

14、对多的实体联系。实体联系。R1R2R3R4R5R6R7软件设计师软件设计师系编号系编号办公地点办公地点系名系名系系教研室编号教研室编号教研室教研室教研室教研室学学 号号成绩成绩 姓名姓名 学生学生研究方向研究方向姓名姓名 职工号职工号 教师教师层次模型的实例层次模型的实例软件设计师软件设计师R1R2R3R4特点:特点:1.1.任何一个结点可以有一个或一个以任何一个结点可以有一个或一个以 上的父结点;上的父结点;2.2.任何一个结点可以没有父结点;任何一个结点可以没有父结点;3.3.适用于多对多的实体联系。适用于多对多的实体联系。网状模型:网状模型: 用用有向图有向图表示实体类型及实体间联系的数

15、据模型表示实体类型及实体间联系的数据模型. .软件设计师软件设计师学号学号姓名姓名系别系别学生学生课程课程课程号课程号课程名课程名学分学分选课选课课程号课程号课程名课程名学分学分网状模型的实例网状模型的实例软件设计师软件设计师关系模型:关系模型: 用二维用二维表表格结构表达实体间的联系的数据模型格结构表达实体间的联系的数据模型 学号学号姓名姓名性别性别出生日期出生日期籍贯籍贯所在系所在系相片相片20078425012007842501张三张三男男1985.9.41985.9.4山西山西信息工程信息工程1.jpg1.jpg20078425022007842502李四李四女女1984.11.261

16、984.11.26江苏江苏财务管理财务管理2.jpg2.jpg20078425032007842503王五王五男男1985.4.201985.4.20河北河北电子商务电子商务 3.jpg3.jpg软件设计师软件设计师关系模型中的基本术语关系模型中的基本术语: :关系关系:二维的数据表,它描述了实体之间的联系。:二维的数据表,它描述了实体之间的联系。元组元组(实体):数据表中的每一行表示一个实体。(实体):数据表中的每一行表示一个实体。属性属性(字段):数据表中的每一列。(字段):数据表中的每一列。域域:属性的取值范围。:属性的取值范围。关系模式关系模式:对关系的描述称为关系模式。:对关系的描述

17、称为关系模式。 关系名(属性名关系名(属性名1 1,属性名,属性名2 2,属性名,属性名n n)例:学生(学号,姓名,性别,出生日期,籍贯,所在系)例:学生(学号,姓名,性别,出生日期,籍贯,所在系)软件设计师软件设计师超键超键( (超码超码) ):在关系模式中,能唯一标识元组的属性集。这:在关系模式中,能唯一标识元组的属性集。这个属性集可能含有多余的属性。个属性集可能含有多余的属性。候选键候选键( (候选码候选码) ):能唯一标识元组,且又不含有多余的属性:能唯一标识元组,且又不含有多余的属性一个属性集,即超键中删除多余属性剩下的属性集。一个属性集,即超键中删除多余属性剩下的属性集。主键主键

18、( (主码主码) ):从候选键中选择一个作为关系模式中用户使:从候选键中选择一个作为关系模式中用户使用的候选键称为主键。用的候选键称为主键。 例如:在关系模式(工号,姓名,年龄,性别,工资)例如:在关系模式(工号,姓名,年龄,性别,工资) (工号,姓名)是关系的一个超键;(工号,姓名)是关系的一个超键; (工号)是候选键;(工号)是候选键; (工号)是主键。(工号)是主键。 软件设计师软件设计师主属性主属性:包含在任何候选键中的属性称为主属性。不包含:包含在任何候选键中的属性称为主属性。不包含在任何候选键中的属性称为非主属性。在任何候选键中的属性称为非主属性。外键(外码)外键(外码):当关系:

19、当关系R R中的某个属性(或属性组)虽然不中的某个属性(或属性组)虽然不是该关系的码,但却是另一个关系是该关系的码,但却是另一个关系S S的码,称该属性(或属的码,称该属性(或属性组)为性组)为R R关系的外键。关系的外键。 全键(全码)全键(全码):关系模型中所有属性都是这个关系的关键字关系模型中所有属性都是这个关系的关键字 例:例:R R(教师,课程,学生)(教师,课程,学生)软件设计师软件设计师 例例1 1:学生学生(学号学号,姓名,性别,年龄,系号),姓名,性别,年龄,系号) 系系(系号系号,系名,系主任),系名,系主任) 例例2 2:选课选课(学号,课程号学号,课程号,成绩),成绩)

20、 学生学生(学号学号, 姓名,姓名, 性别)性别) 课程课程(课程号课程号,课程名,学分),课程名,学分)外键外键外键外键软件设计师软件设计师 【软件设计师考试软件设计师考试20042004年年5 5月上午试题月上午试题1717、1818】 已知关系已知关系R R如下表所示,关系如下表所示,关系R R的主属性为的主属性为(1717) ,候,候选关键字分别为选关键字分别为 (18) (18) 。(17) A.ABC(17) A.ABC B.ABD B.ABD C.ACD C.ACD D.ABCDD.ABCD(18) A.ABC (18) A.ABC B.AB B.AB 、AD AD C.ACC.

21、AC、ADAD和和CDCD D.ABD.AB、ADAD、BDBD的的CDCDD DD D软件设计师软件设计师 【软件设计师考试软件设计师考试20042004年年1111月上午试题月上午试题42-4442-44】 假定每一车次具有唯一的始发站和终点站。如果实体假定每一车次具有唯一的始发站和终点站。如果实体“列车时刻表列车时刻表”属性为车次、始发站、发车时间、终点站、属性为车次、始发站、发车时间、终点站、到达时间,该实体的主键是到达时间,该实体的主键是 (42) (42) ;如果实体;如果实体“列车运行列车运行表表”属性为车次、日期、发车时间、到达时间,该实体的主属性为车次、日期、发车时间、到达时

22、间,该实体的主键是键是(43) (43) 。通常情况下,上述。通常情况下,上述“列车时刻表列车时刻表”和和“列车列车运行表运行表”两实体间两实体间 (44) (44) 联系。联系。(42)A.(42)A.车次车次 B.B.始发站始发站 C.C.发车时间发车时间 D.D.车次,始发站车次,始发站(43)A.(43)A.车次车次 B.B.始发站始发站 C.C.发车时间发车时间 D.D.车次,日期车次,日期(44)A.(44)A.不存在不存在 B.B.存在一对一存在一对一 C.C.存在一对多存在一对多 D.D.存在多对多存在多对多 A AD D C C软件设计师软件设计师关系模型的完整性约束(数据完

23、整性)关系模型的完整性约束(数据完整性) 数据完整性数据完整性是用来确保数据库中数据的正确性和可靠性。是用来确保数据库中数据的正确性和可靠性。 数据完整性包括:数据完整性包括:实体完整性:主键的取值实体完整性:主键的取值必须唯一必须唯一,并且,并且不能为空不能为空。 域完整性:保证域完整性:保证数据的取值数据的取值在在有效有效的范围内。的范围内。参照完整性:参照完整性是通过参照完整性:参照完整性是通过主键主键和和外键外键来保证相来保证相 关联的表间关联的表间数据保持一致数据保持一致,避免因一个表的数据修,避免因一个表的数据修 改,而导致关联生效改,而导致关联生效。软件设计师软件设计师 【软件设

24、计师考试软件设计师考试20062006年年5 5月上午试题月上午试题4848】某数据库中有:某数据库中有:员工关系员工关系E E(员工编号,姓名,部门)(员工编号,姓名,部门)产品关系产品关系P P(产品编号,产品名称,型号,尺寸,颜色);(产品编号,产品名称,型号,尺寸,颜色);仓库关系仓库关系W W(仓库编号,仓库名称,地址,负责人编号);(仓库编号,仓库名称,地址,负责人编号);库存关系库存关系I I(仓库编号,产品编号和产品数量)(仓库编号,产品编号和产品数量) 若要求仓库关系的负责人引用员工关系的员工编号,若要求仓库关系的负责人引用员工关系的员工编号,员工关系员工关系E E的员工编号

25、、仓库关系的员工编号、仓库关系W W的仓库编号和产品关系的仓库编号和产品关系P P的产品编号不能为空且惟一标识一个记录,并且仓库的地址的产品编号不能为空且惟一标识一个记录,并且仓库的地址不能为空,则依次要满足的完整性约束是不能为空,则依次要满足的完整性约束是 (4848) 。软件设计师软件设计师(4848) A. A. 实体完整性、参照完整性、用户定义完整性实体完整性、参照完整性、用户定义完整性 B. B. 参照完整性、实体完整性、用户定义完整性参照完整性、实体完整性、用户定义完整性 C. C. 用户定义完整性、实体完整性、参照完整性用户定义完整性、实体完整性、参照完整性 D. D. 实体完整

26、性、用户定义完整性、参照完整性实体完整性、用户定义完整性、参照完整性软件设计师软件设计师 【软件设计师考试软件设计师考试20062006年年5 5月上午试题月上午试题4848】 在数据库系统中,数据的完整性约束的建立需要通过在数据库系统中,数据的完整性约束的建立需要通过数据库管理系统提供的数据库管理系统提供的(5151) 语言来实现。语言来实现。(5151)A. A. 数据定义数据定义 B. B. 数据操作数据操作 C. C. 数据查询数据查询 D. D. 数据控制数据控制软件设计师软件设计师2.4 数据操作数据操作 关系数据库的数据操作语言(关系数据库的数据操作语言(DMLDML)的语句分成

27、查询语句)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户进行插入、删除、修改等操作。求;更新语句用于描述用户进行插入、删除、修改等操作。关于查询的理论称为关于查询的理论称为“关系运算理论关系运算理论”。 关系查询语言根据其理论基础的不同分成两大类:关系查询语言根据其理论基础的不同分成两大类: 关系代数语言:查询操作是以集合操作为基础的关系代数语言:查询操作是以集合操作为基础的DMLDML语言。语言。 关系演算语言:查询操作是以谓词演算为基础的关系演算语言:查询操作是以谓词演算为基础的DMLDML语言

28、。语言。软件设计师软件设计师l 关系代数关系代数 关系代数的五个基本操作关系代数的五个基本操作 并、差、笛卡尔积、投影、选择并、差、笛卡尔积、投影、选择 关系代数的四个组合操作关系代数的四个组合操作 交、联接、自然连接、除法交、联接、自然连接、除法 l 关系演算关系演算 元组关系演算元组关系演算 域关系演算域关系演算软件设计师软件设计师l 关系代数关系代数关系代数的五个基本操作关系代数的五个基本操作(1 1)并()并(UnionUnion) 设关系设关系R R和和S S具有相同的关系模式,具有相同的关系模式,R R和和S S的并是由属于的并是由属于R R或属于或属于S S的元组构成的集合,记为

29、的元组构成的集合,记为RSRS。 形式定义如下:形式定义如下: RStRSt | tR tS | tR tS, t t是元组变量,是元组变量,R R和和S S的元数相同。的元数相同。软件设计师软件设计师R RS S软件设计师软件设计师(2 2)差()差(DifferenceDifference) 设关系设关系R R和和S S具有相同的关系模式,具有相同的关系模式,R R和和S S的差是由属于的差是由属于R R但不属于但不属于S S的元组构成的集合,记为的元组构成的集合,记为R RS S。 形式定义如下:形式定义如下: R RS t | S t | tRtR tStS ,R R和和S S的元数相

30、同。的元数相同。软件设计师软件设计师R RS S软件设计师软件设计师(3 3)笛卡尔积)笛卡尔积 设关系设关系R R和和S S的元数分别为的元数分别为r r和和s s。定义。定义R R和和S S的笛卡尔积的笛卡尔积是一个(是一个(r+sr+s)元的元组集合,每个元组的前)元的元组集合,每个元组的前r r个分量(属个分量(属性值)来自性值)来自R R的一个元组,后的一个元组,后s s个分量来自个分量来自R R的一个元组,的一个元组,记为记为RSRS。 形式定义如下:形式定义如下: R RS t |t=S t |t=t tr rRtRts sSS 若若R R有有m m个元组,个元组,S S有有n

31、n个元组,则个元组,则R RS S有有m mn n个元组。个元组。软件设计师软件设计师R RS S软件设计师软件设计师(4 4)投影)投影(ProjectionProjection) 这这个个操操作作是是对对一一个个关关系系进进行行垂垂直直分分割割,消消去去某某些些列列,并并重新安排列的顺序。重新安排列的顺序。 设设关关系系R R是是k k元元关关系系,R R在在其其分分量量A Ai1i1,A Aimim(mkmk,i i1 1,i im m为为1 1到到k k间间的的整整数数)上上的的投投影影用用i1i1,imim(R R)表表示示,它是一个它是一个m m元元组集合,元元组集合, 形式定义如

32、下:形式定义如下: i1,im(R) t| tti1,timt1,tkR 软件设计师软件设计师例如,例如,3 3,1 1(R R)表示关系)表示关系R R中取第中取第1 1、3 3列,组成新列,组成新的关系,新关系中第的关系,新关系中第1 1列为列为R R的第的第3 3列,新关系的第列,新关系的第2 2列为列为R R的第的第1 1列。列。 如果如果R R的每列标上属性名,那么操作符的每列标上属性名,那么操作符的下标的下标处也可以用属性名表示。例如,关系处也可以用属性名表示。例如,关系R R(A A,B B,C C),),那么那么C C,A A(R R)与)与3 3,1 1(R R)是等价的。)

33、是等价的。软件设计师软件设计师R RS S软件设计师软件设计师 (5 5)选择)选择(SelectionSelection) 选择操作是根据某些条件对关系做水平分割,即选取选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式件表达式)F F表示。表示。 F F中有两种成分:运算对象和运算符中有两种成分:运算对象和运算符 形式定义如下:形式定义如下: F F(R R) t | tR F t | tR F(t t)= true = true 为选择运算符,为选择运算符,F F(R R)表示从表

34、示从R R中挑选满足公式中挑选满足公式F F为为真的元组所构成的关系。真的元组所构成的关系。软件设计师软件设计师例如,例如,2 233(R R)表示从)表示从R R中挑选第中挑选第2 2个分量值个分量值大于大于3 3的元组所构成的关系。的元组所构成的关系。 常量用引号括起来,而属性序号或属性名不要用常量用引号括起来,而属性序号或属性名不要用引号括起来。引号括起来。软件设计师软件设计师S SR R软件设计师软件设计师关系代数的四个组合操作关系代数的四个组合操作(1 1)交()交(intersectionintersection) 关系关系R R和和S S的交是由属于的交是由属于R R又属于又属于

35、S S的元组构成的集合,记的元组构成的集合,记为为RSRS,这里要求这里要求R R和和S S定义在相同的关系模式上。定义在相同的关系模式上。形式定义如下:形式定义如下: RStRSttRtR tS tS,R R和和S S的元数相同。的元数相同。 软件设计师软件设计师(2 2)连接()连接(joinjoin) 连接有两种:连接有两种:连接和连接和F F连接连接 连接连接 (是算术比较符)是算术比较符) 连接是从关系连接是从关系R R和和S S的笛卡儿积中选取属性间满足某一的笛卡儿积中选取属性间满足某一操作的元组操作的元组, , R R StStt t=t tr rRtRts sStStr ri

36、i t ts sj j 因此因此,连接由笛卡尔积和选择操作组合而成。连接由笛卡尔积和选择操作组合而成。 R R S S ii(r+jr+j) (R RSS)ijij软件设计师软件设计师 F F连接连接 (F F是公式)是公式) F F连接是从关系连接是从关系R R和和S S的笛卡儿积中选取属性间满足某的笛卡儿积中选取属性间满足某一公式一公式F F的元组的元组, , 这里这里F F是形为是形为F F1 1FF2 2FFn n的公式,每的公式,每个个F FP P是形为是形为ijij的式子,而的式子,而i i和和j j分别为关系分别为关系R R和和S S的第的第i i、第第j j个分量的序号。个分量

37、的序号。软件设计师软件设计师(3 3) 自然连接(自然连接(natural joinnatural join) 两个关系两个关系R R和和S S的自然连接操作具体计算过程如下:的自然连接操作具体计算过程如下: 计算计算RS RS ; 设设R R和和S S的公共属性是的公共属性是A1,AKA1,AK,挑选挑选RSRS中满足中满足 R.A R.A1 1=S.A=S.A1 1,R.AR.AK K=S.A=S.AK K的那些元组;的那些元组; 去掉去掉S.AS.A1 1,S.AS.AK K这些列。这些列。 形式定义如下:形式定义如下: R RS S i1,i1,imim ( (R.A1=S.A1. R

38、.AK=S.AKR.A1=S.A1. R.AK=S.AK (RS),(RS), 其中其中i i1 1,i im m为为R R和和S S的全部属性,但公共属性只出现一次。的全部属性,但公共属性只出现一次。 自然连接就是等值连接去掉重复列自然连接就是等值连接去掉重复列。软件设计师软件设计师【软件设计师考试软件设计师考试20072007年年1111月上午试题月上午试题543543、5555】 关系关系R R、S S如下图所示,如下图所示,R RS S可由可由 (5454) 基本的关系运基本的关系运算组成,算组成,R RS =S = (5555) 。 (5454)A. A. ,和和 B. B. -,-

39、,和和 C. C. ,和和 D. D. ,和和 D DA A软件设计师软件设计师软件设计师软件设计师(4 4)除法(除法(divisiondivision) 设关系设关系R R和和S S的元数分别为的元数分别为r r和和s s(设(设rs0rs0),那么),那么RSRS是是一个(一个(r-sr-s)元的元组的集合。(元的元组的集合。(RSRS)是满足下列条件的是满足下列条件的最大关系:其中每个元组最大关系:其中每个元组t t与与S S中每个元组中每个元组u u组成的新元组组成的新元组tu必在关系必在关系R R中。中。 RS RS1,2,r-s1,2,r-s(R)-(R)-1,2,1,2,,r-

40、sr-s(1,2,1,2,r-sr-s(R)S)-R(R)S)-R) ) 软件设计师软件设计师A AB BC CD Da ab bc cd da ab be ef fa ab bd de eb bc ce ef fe ed dc cd de ed de ef fC CD Dc cd de ef fRSRSA AB Ba ab be ed d 先列出先列出R-SR-S的属性的属性 属性值属性值A A、B B同时满足同时满足S S中(中(c c,d d)和()和(e e,f f)的元组。)的元组。软件设计师软件设计师例:选修了所有课程的学生的学号和姓名。例:选修了所有课程的学生的学号和姓名。S#S

41、#C#C#s1s1c1c1s1s1c2c2s2s2c2c2s3s3c1c1s3s3c2c2s4s4c1c1C#C#c1c1c2c2选修表选修表课程课程选修表选修表课程课程S#S#s1s1s3s3软件设计师软件设计师例:检索所学课程包含学生例:检索所学课程包含学生s1s1所学课程的学生学号。所学课程的学生学号。S#S#C#C#GradeGrades1s1c1c19090s1s1c2c28585s2s2c4c47676s3s3c1c16868s3s3c2c26565s4s4c1c17070s4s4c3c38686C#C#CnameCnamec1c1数据库数据库c2c2英语英语c3c3高数高数c4c

42、4体育体育选修表选修表课程课程S#S#s1s1s3s3s#,c#(选修表选修表) c# (s#=s1 (选修表选修表)软件设计师软件设计师 【软件设计师考试软件设计师考试20052005年年1111月上午试题月上午试题3333、3434】 在关系代数运算中,关系在关系代数运算中,关系 S S、SPSP和和R R如下表所示。若如下表所示。若先先 _(33)_ _(33)_ ,则可以从,则可以从 S S 和和 SP SP 获得获得 R R 。其对应的。其对应的关系表达式为关系表达式为 _(34)_ _(34)_ 。部门号部门号商品号商品号销售量销售量010010010202100102021050

43、0500010010010202110102021178078001001001020212010202129909900210210211020002110200580580025025025201000252010012901290035035035303110353031146804680部门号部门号部门名部门名010010家电部家电部021021百货部百货部030030食品部食品部035035五金部五金部部门名部门名商品号商品号销售量销售量家电部家电部0102021001020210500500家电部家电部0102021101020211780780家电部家电部010202120102

44、0212990990SSPR软件设计师软件设计师(33)A.(33)A.对对 S S 进行选择运算,再与进行选择运算,再与 S S 进行自然连接运算进行自然连接运算 B. B.对对 S S 进行选择运算,再与进行选择运算,再与 SP SP 进行自然连接运算,最进行自然连接运算,最 后进行投影运算后进行投影运算 C. C.对对 S S 和和 SP SP 进行笛卡尔积运算,再对运算结果进行投进行笛卡尔积运算,再对运算结果进行投 影运算影运算 D. D.分别对分别对 S S 和和 SP SP 进行投影运算,再对运算结果进行进行投影运算,再对运算结果进行 笛卡尔积运算笛卡尔积运算 软件设计师软件设计师

45、如下的如下的 SQL SQL 语句可以查询销售总量大于语句可以查询销售总量大于 1000 1000 的部门号。的部门号。 Select Select 部门名部门名 From S From S Where Where 部门号部门号 in in (Select (Select 部门号部门号 From SP From SP Group by _(35)_) Group by _(35)_)(35) A. (35) A. 部门号部门号 where sum( where sum( 销售量销售量 )1000)1000 B. B. 部门号部门号 having sum( having sum( 销售量销售量

46、)1000 )1000 C. C. 商品号商品号 where sum( where sum( 销售量销售量 )1000 )1000 D. D. 商品号商品号 having sum( having sum( 销售量销售量 )1000)1000 软件设计师软件设计师【软件设计师考试软件设计师考试20062006年年5 5月上午试题月上午试题4747】 设有关系设有关系R R、S S如下所示,则关系代数表达式如下所示,则关系代数表达式RSRS的结果的结果集为集为(4747) 。 RSC C软件设计师软件设计师l 关系演算关系演算 元组关系演算元组关系演算 在元组关系演算中,元组关系演算表达式简称为元

47、组表在元组关系演算中,元组关系演算表达式简称为元组表达式,其一般形式为:达式,其一般形式为: t|Pt|P(t t) 其中,其中,t t是元组变量,表示一个元数固定的元组;是元组变量,表示一个元数固定的元组;P P是是公式,在数理逻辑中也称为谓词,也就是计算机语言中的条公式,在数理逻辑中也称为谓词,也就是计算机语言中的条件表达式。件表达式。 t|Pt|P(t t) 表示满足公式表示满足公式P P的所有元组的所有元组t t的集的集合。合。 软件设计师软件设计师在元组表达式中,公式由原子公式组成。在元组表达式中,公式由原子公式组成。 原子公式(原子公式(Atoms)有下列三种形式:有下列三种形式:

48、 R(s) :s是是R的一个元组。的一个元组。 siuj :元组:元组 s的第的第i个分量与元组个分量与元组u的第的第j个分量之间个分量之间 满足满足关系。关系。 sia或或auj:a是常量。是常量。 在定义关系演算操作时,要用到在定义关系演算操作时,要用到“自由自由” 和和“约束约束”变量变量概概念。在一个公式中,如果元组变量未用存在量词念。在一个公式中,如果元组变量未用存在量词或全称量或全称量词词 符号定义,那么称为自由元组变量,否则称为约束元组符号定义,那么称为自由元组变量,否则称为约束元组变量。变量。 软件设计师软件设计师R1 = t | S(t)t12 例:已知关系例:已知关系R R

49、,S S,给出,给出R1-R5R1-R5五个关系的元五个关系的元组关系演算表达式。组关系演算表达式。软件设计师软件设计师R2 = t | R(t)S(t)软件设计师软件设计师R3R3R3 = t |( u)()(S(t)R(u)t3u1)软件设计师软件设计师R5 = t |( u)()( v)()(R(u) S(v)u1v2t1=u2t2=v3t3=u1) 软件设计师软件设计师关系代数表达式到元组表达式的转换:关系代数表达式到元组表达式的转换: RS 可用可用 t | R(t)S(t)表示;表示; R-S 可用可用 t | R(t)S(t) 表示;表示; RS可用可用 t |( u)()( v

50、)()(R(u)S(v) t1=u1 t2=u2t3=u3t4=v1t5=v2 t6=v3) 表示。表示。 投影操作是投影操作是2,3(R),),那么元组表达式可写成:那么元组表达式可写成: t |( u)(R(u)tl=u2t2=u3) F(R)可用可用 t |R(t)F表示,表示,F是是F的等价表示形式。的等价表示形式。 例如例如2=d(R)可写成可写成 t |(R(t)t2=d)。)。 软件设计师软件设计师【软件设计师考试软件设计师考试20052005年年5 5月上午试题月上午试题3636、3737】 某数据库中有供应商关系某数据库中有供应商关系S S和零件关系和零件关系P P,其中;供

51、应商,其中;供应商关系模式关系模式S S(SnoSno,SnameSname,SzipSzip,CityCity), ,零件关系模式零件关系模式P P(PnoPno,PnamePname,ColorColor,WeightWeight,CityCity),供应模式),供应模式SP(SnoSP(Sno,PnoPno, Status, Status,Qty)Qty),要求一个供应商可以供应多,要求一个供应商可以供应多种零件,而一种零件可由多个供应商供应。种零件,而一种零件可由多个供应商供应。 查询供应了查询供应了“红红”色零件的供应商名、零件号和数量的色零件的供应商名、零件号和数量的元组演算表达式

52、为:元组演算表达式为: t|(t|( u)(u)( v)(v)( w)(w)( (36) (36) u1=v1v2=w1w3=u1=v1v2=w1w3=红红 (37) (37) )软件设计师软件设计师 (36) A. (36) A. S(u)SP(v)P(wS(u)SP(v)P(w) ) B. B. SP(u)S(v)P(wSP(u)S(v)P(w) ) C. C. P(u)SP(v)S(wP(u)SP(v)S(w) ) D. D. S(u)P(v)SP(wS(u)P(v)SP(w) )(37) A.t1=u1t2=w2t3=v4(37) A.t1=u1t2=w2t3=v4 B. t1=v1t

53、2=u2t3=u4B. t1=v1t2=u2t3=u4 C. t1=w1t2=u2t3=v4 C. t1=w1t2=u2t3=v4 D. t1=u2t2=v2t3=v4 D. t1=u2t2=v2t3=v4 软件设计师软件设计师l 关系数据库关系数据库SQLSQL语言语言 SQL SQL的数据定义的数据定义 SQL SQL的数据查询的数据查询 SQL SQL的数据更新的数据更新软件设计师软件设计师【软件设计师考试软件设计师考试20052005年年1111月上午试题月上午试题3333、3434】 关系关系R R,S S如下图所示,元组演算表达式如下图所示,元组演算表达式 t|(t|( u u)

54、)(R(t)S(u)t3R(t)S(u)t3u1)u1)的结果为的结果为 (47)(47) 软件设计师软件设计师软件设计师软件设计师SQLSQL的数据定义的数据定义创建表创建表 CREATE TABLE ( , , , ) 软件设计师软件设计师 涉及相应属性列的完整性约束条件:涉及相应属性列的完整性约束条件: 主键约束:主键约束:PRIMARY KEYPRIMARY KEY 检查约束:检查约束:CHECKCHECK 外键约束:外键约束:FOREIGN KEYFOREIGN KEY 唯一性约束:唯一性约束: UNIQUEUNIQUE 是否为空值约束:是否为空值约束: NULL / NOT NUL

55、L NULL / NOT NULL 默认值:默认值: DEFAULTDEFAULT软件设计师软件设计师 例:使用例:使用T-SQLT-SQL语言创建语言创建Student Student 表表 StudentStudent(Sno , Sname, Ssex Sno , Sname, Ssex ) CREATE TABLE Student (sno CHAR(10) PRIMARY KEY , sname CHAR(8) NOT NULL UNIQUE, ssex CHAR(2) DEFAULT (男男) )软件设计师软件设计师 例:使用例:使用T-SQLT-SQL语言创建语言创建Crouse

56、Crouse表表 Crouse Crouse (cnocno,cnamecname, credit credit ) CREATE TABLE Course ( cno char(10) PRIMARY KEY, cname char (8) NOT NULL UNIQUE, credit int )软件设计师软件设计师 例:使用例:使用T-SQLT-SQL语言创建语言创建SCSC表表 SC SC ( snosno,cnocno,scorescore) CREATE TABLE SCCREATE TABLE SC ( ( snosno CHAR(10) CHAR(10) FOREIGN KEY

57、 REFERENCES Student (sno),FOREIGN KEY REFERENCES Student (sno), cno CHAR(10) cno CHAR(10) FOREIGN KEY REFERENCES Course (cno)FOREIGN KEY REFERENCES Course (cno) , , score INT score INT CHECK (score BETWEEN 0 AND 100)CHECK (score BETWEEN 0 AND 100) , , PRIMARY KEY (sno, cno)PRIMARY KEY (sno, cno) ) )

58、主键表名主键表名主键主键软件设计师软件设计师 CREATE TABLE SCCREATE TABLE SC ( ( snosno CHAR(10), CHAR(10), cno cno CHAR(10), CHAR(10), score score INT, INT, PRIMARY KEY (sno, cno), PRIMARY KEY (sno, cno), FOREIGN KEY FOREIGN KEY (sno)(sno) REFERENCES Student (sno), REFERENCES Student (sno), FOREIGN KEY FOREIGN KEY (cno)(

59、cno) REFERENCES Course (cno) , REFERENCES Course (cno) , CHECK (score BETWEEN 0 AND 100) CHECK (score BETWEEN 0 AND 100) ) )软件设计师软件设计师 某数据库中有供应商关系某数据库中有供应商关系S S和零件关系和零件关系P P,其中;供应商,其中;供应商关系模式关系模式S S(SnoSno,SnameSname,SzipSzip,CityCity)零件关系模式)零件关系模式P P(PnoPno,PnamePname,ColorColor,WeightWeight,CityCi

60、ty)要求一个供应)要求一个供应商可以供应多种零件,而一种零件可由多个供应商供应。商可以供应多种零件,而一种零件可由多个供应商供应。请将下面的请将下面的SQLSQL语句空缺部分补充完整。语句空缺部分补充完整。CREATE TABLE SPCREATE TABLE SP(SnoSno CHAR(5) CHAR(5),PnoPno CHAR(6) CHAR(6),Status CHAR(8)Status CHAR(8),Qty NUMERIC(9)Qty NUMERIC(9),_(33)_(Sno_(33)_(Sno,PnoPno) ),_(34)_(Sno)_(34)_(Sno),_(35)_(

61、Pno)_(35)_(Pno);软件设计师软件设计师供选择的答案:供选择的答案:(33)-(35) (33)-(35) A.FOREIGN KEY A.FOREIGN KEY B.PRIMARY KEY B.PRIMARY KEY C.FOREIGN KEY C.FOREIGN KEY(SnoSno)REFERENCES S REFERENCES S D.FOREIGN KEY D.FOREIGN KEY(PnoPno)PEFERENCES PPEFERENCES P (33)A (33)C (35)D (33)A (33)C (35)D软件设计师软件设计师 SQL SQL的数据查询的数据查询

62、 数据查询语句基本格式如下:数据查询语句基本格式如下: SELECT SELECT FROM FROM WHERE WHERE 软件设计师软件设计师6 6个聚合函数:个聚合函数:SUM(SUM(列名列名):):求某一列的总和求某一列的总和( (此列的值必须是数值型此列的值必须是数值型) )AVG(AVG(列名列名):):求某一列的平均值求某一列的平均值( (此列的值必须是数值型此列的值必须是数值型) )MIN(MIN(列名列名):):求某一列中的最小值求某一列中的最小值MAX(MAX(列名列名):):求某一列中的最大值求某一列中的最大值COUNT(COUNT(列名列名):):传回一列中的非传回

63、一列中的非NULLNULL值的个数值的个数COUNT(*):COUNT(*):传回符合查询条件的元组的个数传回符合查询条件的元组的个数 软件设计师软件设计师例:查询男生的总人数,以及他们的平均年龄。例:查询男生的总人数,以及他们的平均年龄。 SELECTSELECT COUNTCOUNT(*),(*), AVGAVG( (年龄年龄) ) FROM FROM 学生学生 WHERE WHERE 性别性别=男男软件设计师软件设计师例:查询财管例:查询财管1 1班的所有学生的英语总成绩和均分。班的所有学生的英语总成绩和均分。 SELECT SELECT SUMSUM(c1),(c1), AVGAVG(

64、c1) (c1) FROM FROM 成绩成绩 WHERE c#=c1WHERE c#=c1软件设计师软件设计师 ORDER BY子句子句对查询的结果进行排序对查询的结果进行排序 SELECT SELECT语句中可以使用语句中可以使用ORDER BYORDER BY子句对查询子句对查询的结果进行排序,带的结果进行排序,带ASCASC参数时为升序,带参数时为升序,带DESCDESC参数参数时为降序,不待任何参数时为默认方式时为降序,不待任何参数时为默认方式升序。升序。 SELECT SELECT FROM FROM WHEREWHERE ORDER BY ORDER BY ASCASC | |

65、DESCDESC 软件设计师软件设计师例:查询全体学生的姓名和年龄,年龄按降序排列例:查询全体学生的姓名和年龄,年龄按降序排列 显示。显示。SELECT SELECT 姓名姓名, , 年龄年龄FROM FROM 学生学生ORDER BY ORDER BY 年龄年龄 DESC DESC 软件设计师软件设计师GROUP BY 子句、子句、 HAVING 子句子句 按条件分类统计按条件分类统计 在在SELECT语句中可以使用语句中可以使用GROUP BY子句进子句进行分类统计。行分类统计。 GROUP BY子句可以将表达式的值相子句可以将表达式的值相同的记录归为同一组,从而进行统计。同的记录归为同一

66、组,从而进行统计。语法格式如下语法格式如下: GROUP BY 软件设计师软件设计师 HAVING 子句指定组或聚合的搜索条件,只能子句指定组或聚合的搜索条件,只能和和SELECT语句一起使用,通常和语句一起使用,通常和GROUP BY连用。连用。 语法格式如下:语法格式如下:HAVING 软件设计师软件设计师例:查询女生每一年龄组有多少人。例:查询女生每一年龄组有多少人。 SELECT SELECT 年龄年龄, count, count(* *) FROM FROM 学生学生 WHERE WHERE 性别性别=女女 GROUP BY GROUP BY 年龄年龄软件设计师软件设计师例:查询女生

67、每一年龄组超过例:查询女生每一年龄组超过1010人的年龄。人的年龄。 SELECT SELECT 年龄年龄, , FROM FROM 学生学生 WHERE WHERE 性别性别=女女 GROUP BY GROUP BY 年龄年龄 HAVING COUNT(*)10 HAVING COUNT(*)10软件设计师软件设计师例:查询平均成绩低于例:查询平均成绩低于6060分的分的课程。课程。 SELECT SELECT 课程号程号, AVG (, AVG (成成绩) ) FROM FROM 成绩成绩 GROUP BY GROUP BY 课程号课程号 HAVING AVG ( HAVING AVG (

68、成绩成绩) 60) 60软件设计师软件设计师例例: :下面给一个关系模式下面给一个关系模式 R R(TNAMETNAME,ADDRESSADDRESS,C#C#,CNAMECNAME) 关系模式中的属性一次表示教师姓名,教师地址,课关系模式中的属性一次表示教师姓名,教师地址,课程编号,课程名。分析该模式存在的问题程编号,课程名。分析该模式存在的问题。TNAMETNAMEADDRESSADDRESSC#C#CNAMECNAMEt1t1a1a1c1c1n1n1t1t1a1a1c2c2n2n2t1t1a1a1c3c3n3n3t2t2a2a2c4c4n4n4t2t2a2a2c5c5n2n2t3t3a3

69、a3c6c6n4n4软件设计师软件设计师有现实世界中的事实可知:有现实世界中的事实可知: 一个教师只有一个地址(户籍所在地);一个教师只有一个地址(户籍所在地); 一个教师可教若干门课程;一个教师可教若干门课程; 每门课程只有一个教师任教。每门课程只有一个教师任教。 即:即:TNAME TNAME ADDRESSADDRESS C# C# CNAME CNAME C# C# TNAMETNAME 于是关系模式于是关系模式R R的主键是的主键是 C#C#软件设计师软件设计师 虽然这个模式只有四个属性,但在使用过程中明显存虽然这个模式只有四个属性,但在使用过程中明显存在下列问题。在下列问题。(1)

70、(1)数据冗余。在上述关系中,如一名教师教多门课程,数据冗余。在上述关系中,如一名教师教多门课程,那么这位教师的地址就要重复多次。那么这位教师的地址就要重复多次。(2)(2)更新异常。由于数据的冗余,在数据更新时会出现问更新异常。由于数据的冗余,在数据更新时会出现问题,例如:一个教师教三门课程,在关系中就会有三个元题,例如:一个教师教三门课程,在关系中就会有三个元组,如果他的地址改变了,这三个元组中的地址都要改组,如果他的地址改变了,这三个元组中的地址都要改变,若有一个元组中的地址没有更改,就造成这个教师的变,若有一个元组中的地址没有更改,就造成这个教师的地址不惟一,产生错误的信息。地址不惟一

71、,产生错误的信息。软件设计师软件设计师(3)(3)插入异常。在关系方法中,每个关系必须用键值区分关系插入异常。在关系方法中,每个关系必须用键值区分关系中的不同元组。如果新增加一名教师,尚未分配教学任务,那中的不同元组。如果新增加一名教师,尚未分配教学任务,那么要存储该教师的姓名和地址到关系中去时,在属性么要存储该教师的姓名和地址到关系中去时,在属性C#C#和和CNAMECNAME上就没有值,在本例中上就没有值,在本例中C#C#是主键的一部分,键值为空的是主键的一部分,键值为空的元组违反了实体完整性约束。元组违反了实体完整性约束。(4)(4)删除异常。与插入异常相反,删除操作会引起一些信息的删除

72、异常。与插入异常相反,删除操作会引起一些信息的丢失。如一个教师原来有教学任务,目前没有安排那么要把这丢失。如一个教师原来有教学任务,目前没有安排那么要把这个教师的所有元组都要删去,这样就把这个教师的姓名和地址个教师的所有元组都要删去,这样就把这个教师的姓名和地址信息也从数据库中删去了,这也是一种不合理的现象。信息也从数据库中删去了,这也是一种不合理的现象。软件设计师软件设计师 对于上述模式中存在的问题可采用分解的方法,将对于上述模式中存在的问题可采用分解的方法,将其分解成两个模式:其分解成两个模式: R1R1(TNAMETNAME,ADDRESSADDRESS) R2R2(TNAMETNAME

73、,C#C#,CNAMECNAME) 那么分解后的关系模式的好坏,用什么标准来衡量那么分解后的关系模式的好坏,用什么标准来衡量呢?呢? 范式:满足特定要求得关系模式。范式:满足特定要求得关系模式。软件设计师软件设计师 设有关系模式设有关系模式R(U),X和和Y是属性集是属性集U的子的子集,集, r是是R任一具体关系,如果对任一具体关系,如果对r的任意两个元组的任意两个元组t1和和 t2,都有,都有t1X= = t2X导致导致t1Y= = t2Y,那么称那么称X函数决定函数决定Y或或Y函数依赖函数依赖X X,记为,记为XY, XY为模式为模式R的一个的一个函数依赖函数依赖。软件设计师软件设计师第一

74、范式第一范式 如果关系模式如果关系模式R R的每个关系的每个关系r r的属性值都是不可分的原子的属性值都是不可分的原子值,那么称值,那么称R R是第一范式(是第一范式(first normal formfirst normal form,简记为,简记为1NF1NF)的)的模式。模式。 满足满足1NF1NF的关系称为规范化的关系,否则称为非规范化的关的关系称为规范化的关系,否则称为非规范化的关系。关系数据库研究的关系都是规范化的关系。例如关系模式系。关系数据库研究的关系都是规范化的关系。例如关系模式R R(NAMENAME,ADDRESSADDRESS,PHONEPHONE),如果一个人有两个电

75、话号码),如果一个人有两个电话号码(PHONEPHONE),那么在关系中至少要出现两个元组,以便存储这两),那么在关系中至少要出现两个元组,以便存储这两个号码。个号码。 1NF1NF是关系模式应具备的最起码的条件。在建立关系数据模是关系模式应具备的最起码的条件。在建立关系数据模型时,必须将非规范化形式规范化,型时,必须将非规范化形式规范化,软件设计师软件设计师第一范式第一范式 软件设计师软件设计师第二范式第二范式 如果关系模式如果关系模式R R是是1NF1NF,且每个非主属性完全函数依赖,且每个非主属性完全函数依赖于候选键,那么称于候选键,那么称R R是第二范式(是第二范式(2NF2NF)模式

76、。如果数据库)模式。如果数据库模式中每个关系模式都是模式中每个关系模式都是2NF2NF,则称数据库模式为,则称数据库模式为2NF2NF的数的数据库模式。据库模式。 对于函数依赖对于函数依赖WAWA,如果存在,如果存在X X W W有有XAXA成立,那么成立,那么称称WAWA是是局部依赖局部依赖(A A局部依赖于局部依赖于W W);否则称);否则称WAWA是是完完全依赖全依赖。软件设计师软件设计师 例:现在分析以下关系,它符合第一范式。假定职工号例:现在分析以下关系,它符合第一范式。假定职工号是每个职工的唯一标识,而工资完全由级别所确定。毕是每个职工的唯一标识,而工资完全由级别所确定。毕业时间由

77、职工号和学历确定。业时间由职工号和学历确定。 这表明:姓名、级别、工资等的取值依赖于职工号,这表明:姓名、级别、工资等的取值依赖于职工号,而毕业时间要由职工号和学历两个属性才能唯一确定。而毕业时间要由职工号和学历两个属性才能唯一确定。软件设计师软件设计师那么,在这个表中各个属性之间表示的相互依赖关系如图。那么,在这个表中各个属性之间表示的相互依赖关系如图。存在(姓名,级别,工资)对(职工号,学历)的局部依赖存在(姓名,级别,工资)对(职工号,学历)的局部依赖软件设计师软件设计师 因此,可以拆开原来关系为以下两个关系,使之成因此,可以拆开原来关系为以下两个关系,使之成为第二范式。为第二范式。软件

78、设计师软件设计师第三范式第三范式 如果关系模式如果关系模式R R是是1NF1NF,且每个非主属性都不,且每个非主属性都不传递依赖于传递依赖于R R的候选键,那么称的候选键,那么称R R是第三范式是第三范式(3NF3NF)的模式。如果数据库模式中每个关系模)的模式。如果数据库模式中每个关系模式都是式都是3NF3NF,则称其为,则称其为3NF3NF的数据库模式。的数据库模式。 如果如果XYXY,YAYA,且,且YXYX和和 AYAY,那么称,那么称XAXA是是传递依赖传递依赖(A A传递依赖于传递依赖于X X)。)。软件设计师软件设计师 由以上关系可以看到实际上可能很多人的级别都是技由以上关系可以

79、看到实际上可能很多人的级别都是技6 6级级的,那么他们的工资都是的,那么他们的工资都是15001500元,如果把技元,如果把技6 6级的工资改为级的工资改为18001800元,则所有技元,则所有技6 6级的工资都要改,只要一个人改错了,级的工资都要改,只要一个人改错了,就会造成同一级工资不一样的错误。就会造成同一级工资不一样的错误。 原因就在于这些属性间存在着传递依赖关系:原因就在于这些属性间存在着传递依赖关系:职工号职工号级别,级别级别,级别工资工资 从而使:职工号从而使:职工号级别级别工资工资 软件设计师软件设计师 进一步的规范化就是要消去非主属性对主关键字的传递进一步的规范化就是要消去非

80、主属性对主关键字的传递依赖性,变为第三范式。依赖性,变为第三范式。 现在只要把第二范式的关系恰当拆开为几个关系即可达现在只要把第二范式的关系恰当拆开为几个关系即可达目的。目的。软件设计师软件设计师 【软件设计师考试软件设计师考试20042004年年1111月上午试题月上午试题4545、4646】 建立一个供应商、零件数据库。其中建立一个供应商、零件数据库。其中“供应商供应商”表表S S(SnoSno,SnameSname,ZipZip,CityCity)分别表示:供应商代码、供)分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:应商名、供应商邮编、供应商所在城市,其函数

81、依赖为:SnoSno(SnameSname,ZipZip,City City ),),ZipCityZipCity。“供应商供应商”表表S S属于属于 (5353) 。 (5353)A. 1NFA. 1NF B. 2NFB. 2NF C. 3NF C. 3NFD. BCNFD. BCNFB B软件设计师软件设计师数据库模式设计原则数据库模式设计原则 : : 关系模式关系模式R R相对于函数依赖集分解成数据库模式相对于函数依赖集分解成数据库模式=R=R1 1,R R2 2,。R Rk k ,一般应具有下面四项特性。,一般应具有下面四项特性。(1)(1) 中每个关系模式中每个关系模式 上应有某种分

82、时性质(上应有某种分时性质(3NF3NF或或 BCNFBCNF)(2)(2)无损联接。无损联接。(3)(3)保持函数的依赖集。保持函数的依赖集。软件设计师软件设计师无损联接无损联接 设设R R是一个关系模式,是一个关系模式,F F是是R R上的一个函数依赖上的一个函数依赖集。集。R R分解成数据库模式分解成数据库模式= R R1 1,R Rk k 。如果对如果对R R中满足中满足F F的每一个关系的每一个关系r r,都有,都有 r=r=R R1 1(r r)R R2 2(r r) R Rk k(r r) 那么称分解那么称分解相对于相对于F F是是“无损联接分解无损联接分解” ” 简称简称为为“

83、无损分解无损分解”,否则称为,否则称为“损失分解损失分解”。软件设计师软件设计师无损联接测试:无损联接测试: 设设= R R1 1,R R2 2 是关系模式是关系模式R R的一个分的一个分解,解,F F是是R R上成立的上成立的FDFD集,那么分解集,那么分解相对于相对于F F是无损分解的充分必要条件是:是无损分解的充分必要条件是: (R R1 1RR2 2)(R R1 1R R2 2)或或 (R R1 1RR2 2)(R R2 2R R1 1)。)。软件设计师软件设计师保持函数的依赖集保持函数的依赖集 保持关系模式一个分解是等价的另一个重要条保持关系模式一个分解是等价的另一个重要条件是关系模

84、式的函数依赖集在分解后仍在数据库模件是关系模式的函数依赖集在分解后仍在数据库模式中保持不变。式中保持不变。 设设= R1R1,RkRk 是是R R的一个分解,的一个分解,F F是是R R上的函数依赖,如果有上的函数依赖,如果有 RiRi(F F)=F=F,那么称分,那么称分解解保持函数依赖集保持函数依赖集F F。软件设计师软件设计师 【软件设计师考试软件设计师考试20042004年年1111月上午试题月上午试题4545、4646】 关系模式关系模式R R(U U,F F),其中),其中U UW,X,Y,Z,F=WXY,WX, W,X,Y,Z,F=WXY,WX, XZ,YWXZ,YW。关系模式。

85、关系模式R R的候选建是的候选建是 (45) (45) 、 (46) (46) 是无损是无损连接并保持函数依赖的分解。连接并保持函数依赖的分解。(4545)A.WA.W和和Y YB. WYB. WYC.WXC.WXD.WZD.WZ(4646)A.pA.p=R1(WY),R2(XZ)=R1(WY),R2(XZ) B.pB.p=R1(WZ),R2(XY)=R1(WZ),R2(XY)C.pC.p=R1(WXY),R2(XZ)=R1(WXY),R2(XZ) D.pD.p=R1(WX),R2(YZ)=R1(WX),R2(YZ) A AC C软件设计师软件设计师U UW,X,Y,Z,F=WXY,WX, X

86、Z,YWW,X,Y,Z,F=WXY,WX, XZ,YW求属性集求属性集U U关于函数依赖关于函数依赖F F的属性闭包的属性闭包U U+ +。 设设 W W+ +=W=W 找到左边被找到左边被W W包含的函数依赖关系:包含的函数依赖关系:WXWX, 将将 W W+ += W= WX =WXX =WX 同理:找到左边被同理:找到左边被WXWX包含的函数依赖关系:包含的函数依赖关系:WXY, XZWXY, XZ 将将 W W+ += WX= WXY YZ =WXYZZ =WXYZ 所以所以W W+ +=WXYZ=WXYZ,即,即W W能决定多有的属性,能决定多有的属性,W W为候选键为候选键软件设计师软件设计师U UW,X,Y,Z,F=WXY,WX, XZ,YWW,X,Y,Z,F=WXY,WX, XZ,YW

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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