《数据库逻辑模型设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据库逻辑模型设计ppt课件.ppt(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、项目项目3 3 逻辑模型设计逻辑模型设计数据库设计的步骤:数据库设计的步骤:1. 1. 需求分析需求分析2. 2. 概念结构设计概念结构设计3. 3. 逻辑结构设计逻辑结构设计4. 4. 数据库的物理设计数据库的物理设计5. 5. 数据库实施数据库实施6. 6. 数据库运行与维护数据库运行与维护数据库三级模式结构数据库三级模式结构各种人员的数据视图各种人员的数据视图 v不同的人员涉及不同的数据抽象级别,具有不同的数不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图所示据视图,如下图所示 项目项目3 3 逻辑模型设计逻辑模型设计 学习目标:学习目标:1.了解关系模型的基本概念;2. 理
2、解关系数据库的概念;3. 掌握函数依赖、范式的定义;4. 理解关系模式规范化的意义;5. 熟练掌握模式分解的方法;6. 熟练掌握E-R图向关系数据模型转换的规则和方法。 项目项目3 3 逻辑模型设计逻辑模型设计任务任务1 1 逻辑模型基础知识逻辑模型基础知识 任务任务2 2 关系数据库理论关系数据库理论 任务任务3 3 概念模型向关系模型的转换概念模型向关系模型的转换 任务任务4 4 数据库逻辑结构设计数据库逻辑结构设计实训实训4 4 逻辑模型设计逻辑模型设计 任务任务1 1 逻辑模型基础知识逻辑模型基础知识1.1 1.1 关系模型概述关系模型概述1.2 1.2 关系数据库的基本概念关系数据库
3、的基本概念 任务任务1 1 逻辑模型基础知识逻辑模型基础知识 E-R E-R图表示的概念模型是用户数据要求的形式图表示的概念模型是用户数据要求的形式化。化。E-RE-R图独立于任何一种数据模型,它也不为任图独立于任何一种数据模型,它也不为任何一个何一个DBMSDBMS所支持。逻辑结构设计的任务就是把概所支持。逻辑结构设计的任务就是把概念模型结构转换成某个具体的念模型结构转换成某个具体的DBMSDBMS所支持的数据模所支持的数据模型,并将其性能进行优化。型,并将其性能进行优化。 任务任务1 1 逻辑模型基础知识逻辑模型基础知识 不同的数据模型具有不同的数据结不同的数据模型具有不同的数据结构形式。
4、构形式。数据库系统中数据库系统中最常使用最常使用的数据的数据模型是层次模型、网状模型和关系模型。模型是层次模型、网状模型和关系模型。 l非关系模型非关系模型 层次模型(Hierarchical Model) 网状模型(Network Model )任务任务1 1 逻辑模型基础知识逻辑模型基础知识l关系模型关系模型(Relational Model) 数据结构:表数据结构:表l面向对象模型面向对象模型(Object Oriented Model) 数据结构:对象数据结构:对象1.1 1.1 关系模型关系模型l最重要的一种数据模型。最重要的一种数据模型。也是目前主要采用的也是目前主要采用的数据模型
5、,关系数据库系统采用关系模型作为数据模型,关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都数据的组织方式,现在流行的数据库系统大都是关系数据库系统。是关系数据库系统。 l1970年由美国年由美国IBM公司公司San Jose研究室的研究研究室的研究员员E.F.Codd提出提出l本课程的重点本课程的重点一、关系数据模型的数据结构一、关系数据模型的数据结构 l在用户观点下,关系模型中数据的逻辑结构是一张二在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。维表,它由行和列组成。学学 号号姓姓 名名年年 龄龄性性 别别系系 名名年年 级级2005004王小明王小
6、明19女女社会学社会学20052005006黄大鹏黄大鹏20男男商品学商品学20052005008张文斌张文斌18女女法律法律2005学生登记表学生登记表属性属性元组元组(1) 关系模型的基本概念关系模型的基本概念关系(关系(RelationRelation)一个关系对应通常说的一张表。一个关系对应通常说的一张表。元组(元组(TupleTuple)表中的一行即为一个元组。存放的是客观世界的表中的一行即为一个元组。存放的是客观世界的一个实体,如表一个实体,如表StudentStudent关系中的一行,存放的关系中的一行,存放的是一个学生的数据是一个学生的数据 。属性(属性(AttributeAt
7、tribute) 表中的一列即为一个属性,给每一个属性起一表中的一列即为一个属性,给每一个属性起一个名称即属性名。个名称即属性名。(1) 关系模型的基本概念关系模型的基本概念 主码(主码(Key)表中的某个属性组,它可以唯一确定一个元组。表中的某个属性组,它可以唯一确定一个元组。 域(域(Domain)属性的取值范围。属性的取值范围。 分量(分量(Element) 元组中的一个属性值。元组中的一个属性值。 关系模式(关系模式(Relation mode) 对关系的描述对关系的描述关系名(属性关系名(属性1,属性,属性2,属性,属性n)学生(学号,姓名,年龄,性别,系,年级)学生(学号,姓名,年
8、龄,性别,系,年级)(1) 关系模型的基本概念关系模型的基本概念关系术语关系术语一般表格的术语一般表格的术语关系名关系名表名表名关系模式关系模式表头(表格的描述)表头(表格的描述)关系关系(一张)二维表(一张)二维表元组元组记录或行记录或行属性属性列列属性名属性名列名列名属性值属性值列值列值分量分量一条记录中的一个列值一条记录中的一个列值非规范关系非规范关系表中有表(大表中嵌有小表)表中有表(大表中嵌有小表)表表1.2 术语对比术语对比 v关系的等价术语之间的对应关系一般用户一般用户 关系模型关系模型 程序员程序员 表表( (Table) ) 关系关系( (Relation) ) 文件文件(
9、(File) ) 行行( (Row) ) 实体实体( (Entity) ) 记录记录( (Record) ) 列列( (Column) ) 属性属性( (Attribute) ) 字段字段( (Field) ) (1) (1) 关系模型的基本概念关系模型的基本概念(2) (2) 关系模型中的数据全部用关系表示关系模型中的数据全部用关系表示 在关系模型中,实体集以及实体间的联系都在关系模型中,实体集以及实体间的联系都是用关系来表示。是用关系来表示。例如,关系模型中,学生、课程、学生与课程例如,关系模型中,学生、课程、学生与课程之间的联系表示为:之间的联系表示为: 学生学生(学号,姓名,性别,年龄
10、,所在系);(学号,姓名,性别,年龄,所在系); 课程课程(课程号,课程名,先行课);(课程号,课程名,先行课); 选修选修(学号,课程号,成绩)。(学号,课程号,成绩)。 2.2.关系操作和关系的完整性约束条件关系操作和关系的完整性约束条件 l数据操作由查询、插入、删除、更新数据操作由查询、插入、删除、更新l数据操作是集合操作数据操作是集合操作,操作对象和操作操作对象和操作结果都是关系,结果都是关系,即若干元组的集合。即若干元组的集合。l存取路径对用户隐蔽,用户只要指出存取路径对用户隐蔽,用户只要指出“干什么干什么”,不必详细说明不必详细说明“怎么干怎么干”。2.2.关系操作和关系的完整性约
11、束条件关系操作和关系的完整性约束条件关系模型的完整性约束关系模型的完整性约束l实体完整性实体完整性l参照完整性参照完整性l用户定义的完整性用户定义的完整性3.3.关系模型的存储结构关系模型的存储结构 关系数据模型的存储结构关系数据模型的存储结构l表以文件形式存储表以文件形式存储l有的有的DBMS一个表对应一个操作系统文一个表对应一个操作系统文件件l有的有的DBMS自己设计文件结构自己设计文件结构4.4.关系模型的优缺点关系模型的优缺点l优点优点 建立在严格的数学概念的基础上;建立在严格的数学概念的基础上; 概念单一;数据结构简单、清晰,用户易懂概念单一;数据结构简单、清晰,用户易懂易用;易用;
12、 实体和各类联系都用关系来表示。 对数据的检索结果也是关系。 关系模型的存取路径对用户透明关系模型的存取路径对用户透明 具有更高的数据独立性,更好的安全保密性 简化了程序员的工作和数据库开发建立的工作4.4.关系模型的优缺点关系模型的优缺点l缺点缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能,必须对用户的查询请求进行优化查询请求进行优化增加了开发数据库管理系统的难度5. 5. 典型的关系数据库系统典型的关系数据库系统 ORACLE SYBASE INFORMIX DB/2 COBASE PBASE EasyBase DM/2 OpenBase信息的三种世界术语的对应关系表信
13、息的三种世界术语的对应关系表现实世界现实世界 信息世界信息世界 计算机世界计算机世界 实体实体 实例实例 记录记录 特征特征 属性属性 数据项数据项 实体集实体集 对象或实体型对象或实体型 数据或文件数据或文件 实体间的联系实体间的联系对象间的联系对象间的联系 数据间的联系数据间的联系 概念模型概念模型数据模型数据模型 1.2 1.2 关系数据库的基本概念关系数据库的基本概念1.1.关系数据结构关系数据结构2.2.关系操作概述关系操作概述 3.3.关系的完整性关系的完整性1. 1.关系数据结构关系数据结构 在关系模型中,无论是实体集,还在关系模型中,无论是实体集,还是实体集之间的联系均由单一的
14、关系表是实体集之间的联系均由单一的关系表示。由于关系模型是建立在集合代数基示。由于关系模型是建立在集合代数基础上的,因而一般从集合论角度对关系础上的,因而一般从集合论角度对关系数据结构进行定义。数据结构进行定义。 (1 1)域()域(DomainDomain)l域域是一组具有相同数据类型的值的集合。是一组具有相同数据类型的值的集合。 例例 整数整数 实数实数 介于某个取值范围的整数介于某个取值范围的整数 长度指定长度的字符串集合长度指定长度的字符串集合 男男,女女 介于某个取值范围的日期介于某个取值范围的日期(2 2) 笛卡尔积(笛卡尔积(Cartesian ProductCartesian
15、Product)l1) 1) 笛卡尔积笛卡尔积给定一组域给定一组域D1,D2,Dn,这些域中可以,这些域中可以有相同的。有相同的。D1,D2,Dn的的笛卡尔积笛卡尔积为:为:D1D2Dn(d1,d2,dn)di Di,i1,2,n 所有域的所有取值的一个组合所有域的所有取值的一个组合 不能重复不能重复(2 2) 笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)例例2-1 给出三个域:给出三个域: D1=SUPERVISOR = 张清玫,刘逸张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业计算机专业,信息专业 D3=POSTGRADUATE
16、=李勇,刘晨,王敏李勇,刘晨,王敏则则D1,D2,D3的笛卡尔积为:的笛卡尔积为:D1D2D3 (张清玫,计算机专业,李勇张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏张清玫,计算机专业,王敏),(张清玫,信息专业,李勇张清玫,信息专业,李勇), (张清玫,信息专业,刘晨张清玫,信息专业,刘晨),(张清玫,信息专业,王敏张清玫,信息专业,王敏), (刘逸,计算机专业,李勇刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏刘逸,计算机专业,王敏),(刘逸,信息专业,李勇刘逸,信息专
17、业,李勇), (刘逸,信息专业,刘晨刘逸,信息专业,刘晨),(刘逸,信息专业,王敏刘逸,信息专业,王敏) (2 2) 笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)l2) 元组元组(Tuple) 笛卡尔积中每一个元素(笛卡尔积中每一个元素(d1,d2,dn)叫作一)叫作一个个n元组元组(n-tuple)或简称)或简称元组元组。 例例l3) 分量(分量(Component) 笛卡尔积元素(笛卡尔积元素(d1,d2,dn)中的每一个值)中的每一个值di叫叫作一个作一个分量分量。 (2 2) 笛卡尔积(笛卡尔积(Cartesian ProductCarte
18、sian Product)l4) 基数(基数(Cardinal number) 若若Di(i1,2,n)为有限集,其基数)为有限集,其基数为为 mi( i 1 , 2 , , n ) , 则) , 则D1D2Dn的基数的基数M为:为:在上例中,基数:在上例中,基数:22312,即,即D1D2D3共有共有22312个元组个元组mMin1i(2 2) 笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)l5)笛卡尔积的表示方法笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。表中的每行笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。对应
19、一个元组,表中的每列对应一个域。在上例中,在上例中,12个元组可列成一张二维表个元组可列成一张二维表 表表 2.1 D1, D2, D3的的 笛笛 卡卡 尔尔 积积SUPE R VISO RSPE CIAL IT YPO ST G R A DU AT E张张 清清 玫玫计计 算算 机机 专专 业业李李 勇勇张张 清清 玫玫计计 算算 机机 专专 业业刘刘 晨晨张张 清清 玫玫计计 算算 机机 专专 业业王王 敏敏张张 清清 玫玫信信 息息 专专 业业李李 勇勇张张 清清 玫玫信信 息息 专专 业业刘刘 晨晨张张 清清 玫玫信信 息息 专专 业业王王 敏敏刘刘 逸逸计计 算算 机机 专专 业业李
20、李 勇勇刘刘 逸逸计计 算算 机机 专专 业业刘刘 晨晨刘刘 逸逸计计 算算 机机 专专 业业王王 敏敏刘刘 逸逸信信 息息 专专 业业李李 勇勇刘刘 逸逸信信 息息 专专 业业刘刘 晨晨刘刘 逸逸信信 息息 专专 业业王王 敏敏(3 3) 关系(关系(RelationRelation)1) 关系关系D1D2Dn的子集叫作在域的子集叫作在域D1,D2,Dn上的上的关系关系,表示为,表示为 R(D1,D2,Dn) R:关系名关系名 n:关系的关系的目目或或度度(Degree)(3 3) 关系(关系(RelationRelation)注意注意关系是笛卡尔积的有限子集。关系是笛卡尔积的有限子集。无限
21、关系在数据库无限关系在数据库系统中是无意义的。系统中是无意义的。由于由于笛卡尔积不满足交换律笛卡尔积不满足交换律,即,即 ( (d1d1,d2d2,dndn )(d2 )(d2,d1d1,dndn ) )但但关系满足交换律关系满足交换律,即,即(d(d1 1,d d2 2 ,d di i ,d dj j ,d dn n)= =(d d1 1,d d2 2 ,djdj,didi ,d dn n) (i i,j j = 1 = 1,2 2,n n)解决方法:为关系的每个列附加一个属性名以取解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性消关系元组的有序性(3 3) 关系(关系(Rela
22、tionRelation)例如在表例如在表2.1 2.1 的笛卡尔积中取出有实际意义的元组的笛卡尔积中取出有实际意义的元组 来构造关系来构造关系关系:关系:SAP(SUPERVISORSAP(SUPERVISOR,SPECIALITYSPECIALITY,POSTGRADUATE)POSTGRADUATE)关系名,属性名关系名,属性名假设:导师与专业:假设:导师与专业:1:11:1(即一个导师只能对一个专业),(即一个导师只能对一个专业),导师与研究生:导师与研究生:1:n1:n(一个研究生只能遵从一个导师)(一个研究生只能遵从一个导师)于是:于是:SAPSAP关系可以包含三个元组关系可以包含
23、三个元组 ( (张清玫,信息专业,李勇张清玫,信息专业,李勇) ), ( (张清玫,信息专业,刘晨张清玫,信息专业,刘晨) ), ( (刘逸,信息专业,王敏刘逸,信息专业,王敏) ) (3 3) 关系(关系(RelationRelation)2) 元组元组关系中的每个元素是关系中的元组,关系中的每个元素是关系中的元组,通常通常用用t表示表示。3) 单元关系与二元关系单元关系与二元关系当当n=1时,称该关系为时,称该关系为单元单元关系(关系(Unary relation)。)。当当n=2时,称该关系为时,称该关系为二元二元关系(关系(Binary relation)。)。(3 3) 关系(关系(
24、RelationRelation)4) 关系的表示关系的表示 关系也是一个关系也是一个二维表二维表,表的每,表的每行行对应一对应一个个元组元组,表的每,表的每列列对应一个对应一个域域。表表2.2 SAP关关 系系SUPERVISORSPECIALITYPOSTGRADUATE张张清清玫玫信信息息专专业业李李勇勇张张清清玫玫信信息息专专业业刘刘晨晨刘刘逸逸信信息息专专业业王王敏敏(3 3) 关系(关系(RelationRelation)5) 5) 属性属性关系中不同列可以对应相同的域,为了加以关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性区分,必须对每列起一个名字,称
25、为属性(AttributeAttribute)。)。n n目关系必有目关系必有n n个属性。个属性。(3 3) 关系(关系(RelationRelation)6) 6) 码码候选码(候选码(Candidate keyCandidate key)若关系中的某一属性组的值能唯一地标识一个元组,若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码,在有多个后选码时可以选则称该属性组为候选码,在有多个后选码时可以选一个作为一个作为主码主码。在最简单的情况下,候选码只包含一个属性。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组在最极端的情况下,关系模式的所有
26、属性组是这个关系模式的候选码,称为全码(是这个关系模式的候选码,称为全码(All-keyAll-key)(3 3) 关系(关系(RelationRelation)码码(续续)主码主码若一个关系有多个候选码,则选定其中一个若一个关系有多个候选码,则选定其中一个为为主码主码(Primary key)主码的诸属性称为主码的诸属性称为主属性主属性(Prime attribute)。)。不包含在任何侯选码中的属性称为不包含在任何侯选码中的属性称为非主属性非主属性(Non-key attribute) (3 3) 关系(关系(RelationRelation)7) 7) 三类关系(或称三类表)三类关系(或
27、称三类表)基本关系基本关系(基本表或基表)(基本表或基表)实际存在的表,是实际存储数据的逻辑表示实际存在的表,是实际存储数据的逻辑表示查询表查询表查询结果对应的表查询结果对应的表视图表视图表由基本表或其他视图表导出的表,是虚表,不对由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据应实际存储的数据(4 4)数据库中基本关系的性)数据库中基本关系的性质质 列是同质的(列是同质的(HomogeneousHomogeneous)每一列中的分量是同一类型的数据,来自同每一列中的分量是同一类型的数据,来自同一个域一个域 不同的列可出自同一个域不同的列可出自同一个域其中的每一列称为一个属性其中的每
28、一列称为一个属性不同的属性要给予不同的属性名不同的属性要给予不同的属性名(4 4)数据库中基本关系的性)数据库中基本关系的性质质 列的顺序无所谓列的顺序无所谓列的次序可以任意交换列的次序可以任意交换遵循这一性质的数据库产品遵循这一性质的数据库产品( (如如ORACLE)ORACLE),增加新属性时,永远是插至最后一列增加新属性时,永远是插至最后一列但也有许多关系数据库产品没有遵循这一但也有许多关系数据库产品没有遵循这一性质,例如性质,例如FoxProFoxPro仍然区分了属性顺序仍然区分了属性顺序(4 4)数据库中基本关系的性)数据库中基本关系的性质质 任意两个元组不能完全相同任意两个元组不能
29、完全相同由笛卡尔积的性质决定由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质。但许多关系数据库产品没有遵循这一性质。例如例如: :OracleOracle,FoxProFoxPro等都允许关系表中存在两个完全相同等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。的元组,除非用户特别定义了相应的约束条件。(4 4)数据库中基本关系的性)数据库中基本关系的性质质 行的顺序无所谓行的顺序无所谓行的次序可以任意交换行的次序可以任意交换遵循这一性质的数据库产品遵循这一性质的数据库产品( (如如ORACLE)ORACLE),插入一个元组时永远插至最后一行插入一个元组时永远插
30、至最后一行但也有许多关系数据库产品没有遵循这一性但也有许多关系数据库产品没有遵循这一性质,例如质,例如FoxProFoxPro仍然区分了元组的顺序仍然区分了元组的顺序(4 4)数据库中基本关系的性)数据库中基本关系的性质质 分量必须取原子值分量必须取原子值每一个分量都必须是不可分的数据项。每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条这是规范条件中最基本的一条表表2.3 非非 规规 范范 化化 关关 系系POSTGRADUATESUPERVISORSPECIALITYPG1PG2张张清清玫玫信信息息专专业业李李勇勇刘刘晨晨刘刘逸逸信信息息专专业业王王敏敏(5 5)关系模式()关系
31、模式(Relation SchemaRelation Schema)的定义)的定义 关系的描述称为关系模式。关系的描述称为关系模式。关系模式可以形式化地表示关系模式可以形式化地表示为:为: R R(U U,D D,DomDom,F F)l其中:其中:R R为关系名,为关系名,它是关系的形式化表示;它是关系的形式化表示;U U为组成为组成该关系的属性集合该关系的属性集合;D D为属性组为属性组U U中属性所来自的域;中属性所来自的域;DomDom为属性向域的映像的集合;为属性向域的映像的集合;F F为属性间数据的依赖为属性间数据的依赖关系集合。关系集合。l关系模式是关系的形式化描述。关系模式是关
32、系的形式化描述。(5 5)关系模式()关系模式(Relation SchemaRelation Schema)的定义)的定义 关系模式通常可以简单记为:关系模式通常可以简单记为:R(U)或或 R(A1,A2,An).l其中:其中:R为关系名,为关系名,A1,A2,An为为属性名,域名及属性向域的映像常常直属性名,域名及属性向域的映像常常直接说明为属性的类型、长度。接说明为属性的类型、长度。 (5 5)关系模式()关系模式(Relation SchemaRelation Schema)的定义)的定义 关系模式是关系的框架或结构。关系是按关系模关系模式是关系的框架或结构。关系是按关系模式组织的表格
33、,关系既包括结构也包括其数据(关系式组织的表格,关系既包括结构也包括其数据(关系的数据是元组,也称为关系的内容)。一般讲,关系的数据是元组,也称为关系的内容)。一般讲,关系模式是静态的,关系数据库一旦定义后其结构不能随模式是静态的,关系数据库一旦定义后其结构不能随意改动;而关系的数据是动态的,关系内容的更新属意改动;而关系的数据是动态的,关系内容的更新属于正常的数据操作,随时间的变化,关系数据库中的于正常的数据操作,随时间的变化,关系数据库中的数据需要不断增加、修改或删除。数据需要不断增加、修改或删除。 (5 5)关系模式()关系模式(Relation SchemaRelation Schem
34、a)的定义)的定义 v关系模式即是一个表的表头描述关系模式即是一个表的表头描述。v表头也称为关系的结构、关系的型表头也称为关系的结构、关系的型等。等。v除表头一行以外的所有行的集合除表头一行以外的所有行的集合( (即表内容即表内容), ), 称为关称为关系的值。系的值。v一个关系一个关系( (表表) ),由表头和表内容两部分组成,由表头和表内容两部分组成,表头是,表头是相对不变的,而表内容是经常改变的。如相对不变的,而表内容是经常改变的。如StudentStudent表中,表中,当有新学生入学时,就增加若干行,当学生毕业时,当有新学生入学时,就增加若干行,当学生毕业时,就要删除若干行,所以表是
35、动态的。就要删除若干行,所以表是动态的。(6 6)关系数据库()关系数据库(Relation databaseRelation database) v关系数据库是相互关联的表或者说关系的集合。关系数据库是相互关联的表或者说关系的集合。v因为一个表存放的是某一应用领域的一个实体或实体因为一个表存放的是某一应用领域的一个实体或实体间的联系,如间的联系,如StudentStudent表存放的是学生这个实体(集),表存放的是学生这个实体(集),CourseCourse表存放的是课程这个实体(集),表存放的是课程这个实体(集),SCSC表存放的表存放的学生实体与课程实体之间的联系,这里为选课联系。学生实
36、体与课程实体之间的联系,这里为选课联系。因此关系数据库中存放的是某一应用领域中的所有实因此关系数据库中存放的是某一应用领域中的所有实体和实体之间的联系。体和实体之间的联系。 v一个关系用一个关系模式表示,所有关系模式集合构一个关系用一个关系模式表示,所有关系模式集合构成数据库的模式,它是数据库整体逻辑结构的描述。成数据库的模式,它是数据库整体逻辑结构的描述。2.2.关系操作概述关系操作概述 关系模型与其他数据模型相比,最关系模型与其他数据模型相比,最具有特色的是关系数据操作语言。关系具有特色的是关系数据操作语言。关系操作语言灵活方便,表达能力和功能都操作语言灵活方便,表达能力和功能都非常强大。
37、非常强大。 (1 1)关系操作的基本内容)关系操作的基本内容 关系操作包括数据查询、数据维护和数据控制三关系操作包括数据查询、数据维护和数据控制三大功能。大功能。数据查询数据查询指数据检索、统计、排序、分组指数据检索、统计、排序、分组以及用户对信息的需求等功能;以及用户对信息的需求等功能;数据维护数据维护指数据增指数据增加、删除、修改等数据自身更新的功能;加、删除、修改等数据自身更新的功能;数据控制数据控制是为了保证数据的安全性和完整性而采用的数据存是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。取控制及并发控制等功能。 (1 1)关系操作的基本内容)关系操作的基本内容 关
38、系操作的数据查询和数据维护关系操作的数据查询和数据维护功能使用关系代功能使用关系代数中的选择(数中的选择(SelectSelect)、投影()、投影(ProjectProject)、连接)、连接(JoinJoin)、除()、除(DivideDivide)、并()、并(UnionUnion)、交)、交(IntersectionIntersection)、差()、差(DifferenceDifference)和广义笛卡)和广义笛卡儿积(儿积(Extended Cartesian ProductExtended Cartesian Product)8 8种操作表示,种操作表示,其中前其中前4 4种为
39、种为专门的关系运算专门的关系运算,而后,而后4 4种为种为传统的集传统的集合运算合运算。 (2 2)关系操作的特点)关系操作的特点 关系操作具有以下关系操作具有以下3 3个明显的特点。个明显的特点。l1) 1) 关系操作语言操作一体化关系操作语言操作一体化 关系语言具有数据定义、查询、更新和控制一体化的关系语言具有数据定义、查询、更新和控制一体化的特点。特点。 l2) 2) 关系操作的方式是一次一集合方式关系操作的方式是一次一集合方式 其他系统的操作是一次一记录(其他系统的操作是一次一记录(record-at-a-timerecord-at-a-time)方式,而关系操作的方式则是一次一集合(
40、方式,而关系操作的方式则是一次一集合(set-at-set-at-a-timea-time)方式,即关系操作的初始数据、中间数据)方式,即关系操作的初始数据、中间数据和结果数据都是集合。和结果数据都是集合。l3) 3) 关系操作语言是高度非过程化的语言关系操作语言是高度非过程化的语言 关系操作语言具有强大的表达能力。关系操作语言具有强大的表达能力。 (3 3)关系操作的种类)关系操作的种类 关系操作语言可以分为以下关系操作语言可以分为以下3 3类。类。l1) 1) 关系代数语言关系代数语言 关系代数语言是用对关系的运算来表达查询要求的语言。关系代数语言是用对关系的运算来表达查询要求的语言。IS
41、BLISBL(Information System Base LanguageInformation System Base Language)为关系)为关系代数语言的代表。代数语言的代表。 l2) 2) 关系演算语言关系演算语言 关系演算语言是用查询得到的元组应满足的谓词条件来关系演算语言是用查询得到的元组应满足的谓词条件来表达查询要求的语言。表达查询要求的语言。 l3) 3) 基于映像的语言基于映像的语言 基于映像的语言是具有关系代数和关系演算双重特点的基于映像的语言是具有关系代数和关系演算双重特点的语言。语言。SQLSQL(Structure Query LanguageStructur
42、e Query Language)是基于映像)是基于映像的语言的语言。SQLSQL包括数据定义、数据操作和数据控制三种包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学易用的特点,它是关系数功能,具有语言简洁,易学易用的特点,它是关系数据库的标准语言和主流语言。据库的标准语言和主流语言。 3. 3. 关系的完整性关系的完整性 关系模型的完整性规则是对关系的某种约关系模型的完整性规则是对关系的某种约束条件。束条件。关系模型中有三类完整性约束:关系模型中有三类完整性约束:实体实体完整性、参照完整性和用户定义的完整性。完整性、参照完整性和用户定义的完整性。其其中实体完整性和参照完整性是关系
43、模型必须满中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支足的完整性约束条件,应该由关系系统自动支持。持。 (1 1) 实体完整性实体完整性 (Entity Integrity) l关系的实体完整性规则为:关系的实体完整性规则为:若属性若属性A A是基本是基本关系关系R R的主属性,则属性的主属性,则属性A A的值不能为空值。的值不能为空值。l实体完整性规则规定基本关系的所有主属实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码不能取空性都不能取空值,而不仅是主码不能取空值。值。 (1 1) 实体完整性实体完整性(Entity Integrity)
44、 对于实体完整性规则,说明如下:对于实体完整性规则,说明如下:l1) 1) 实体完整性能够保证实体的惟一性实体完整性能够保证实体的惟一性l2) 2) 实体完整性能够保证实体的可区分性实体完整性能够保证实体的可区分性(2 2)参照完整性()参照完整性(Reference IntegrityReference Integrity) 参照完整性又称为引用完整性,是保证参参照完整性又称为引用完整性,是保证参照表与被参照表中数据的一致性。照表与被参照表中数据的一致性。 实体完整性是一个关系内的约束,而参照实体完整性是一个关系内的约束,而参照完整性则是在不同关系之间或同一关系的完整性则是在不同关系之间或同
45、一关系的不同元组之间的约束。不同元组之间的约束。1) 1) 关系间的引用关系间的引用 在关系模型中实体及实体间的联系都是用关系在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引来描述的,因此可能存在着关系与关系间的引用。用。 例例 学生实体、专业实体以及专业与学生学生实体、专业实体以及专业与学生 间的一对多联系间的一对多联系 学生(学生(学号学号,姓名,性别,姓名,性别,专业号专业号,年龄),年龄) 专业(专业(专业号专业号,专业名),专业名)学学 号号姓姓 名名性性 别别专专 业业 号号年年 龄龄8 0 1张张 三三女女0 11 98 0 2李李 四四男男0 1
46、2 08 0 3王王 五五男男0 12 08 0 4赵赵 六六女女0 22 08 0 5钱钱 七七男男0 21 9专专 业业 号号专专 业业 名名0 1信信 息息0 2数数 学学0 3计计 算算 机机学生(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)专业(专业(专业号专业号,专业名),专业名)1 1)关系间的引用)关系间的引用( (续续) )例例2 学生、课程、学生与课程之间的多对学生、课程、学生与课程之间的多对多联系多联系 学生(学生(学号学号,姓名,性别,专业号,年龄姓名,性别,专业号,年龄 课程(课程(课程号课程号,课程名,学分),课程名,学分) 选修(选修(学
47、号学号,课程号课程号,成绩),成绩) 课课程程号号课课程程名名学学分分01数数据据库库402数数据据结结构构403编编译译404PASCAL2学学 号号姓姓 名名性性 别别专专 业业 号号年年 龄龄8 0 1张张 三三女女0 11 98 0 2李李 四四男男0 12 08 0 3王王 五五男男0 12 08 0 4赵赵 六六女女0 22 08 0 5钱钱 七七男男0 21 9学学 号号课课 程程号号成成 绩绩801049280103788010285802038280204908030488学生学生学生选课学生选课课程课程1 1)关系间的引用)关系间的引用( (续续) )例例3 学生实体及其内
48、部的领导联系学生实体及其内部的领导联系(一对多一对多) 学生(学生(学号学号,姓名,性别,专业号,年龄,姓名,性别,专业号,年龄,班长班长)学学号号姓姓名名性性别别专专业业号号年年龄龄班班长长801张张三三女女0119802802李李四四男男0120803王王五五男男0120802804赵赵六六女女0220805805钱钱七七男男02192 2)外码()外码(Foreign KeyForeign Key) 设设F F是基本关系是基本关系R R的一个或一组属性,但的一个或一组属性,但不是关系不是关系R R的码。如果的码。如果F F与基本关系与基本关系S S的的主码主码K Ks s相对应,则称相对
49、应,则称F F是基本关系是基本关系R R的的外外码码 基本关系基本关系R R称称为为参照关系参照关系(ReferencingReferencing Relation Relation) 基本关系基本关系S S称称为为被参照关系被参照关系(ReferencedReferencedR e l a t i o nR e l a t i o n ) 或) 或 目 标 关 系目 标 关 系 ( T a r g e t T a r g e t RelationRelation)。)。2 2)外码()外码(Foreign KeyForeign Key)说明说明l关系关系R R和和S S不一定是不同的关系。不
50、一定是不同的关系。l目标关系目标关系S S的主码的主码K Ks s 和参照关系的外码和参照关系的外码F F必须定义在同一个(或一组)域上。必须定义在同一个(或一组)域上。l外码并不一定要与相应的主码同名;外码并不一定要与相应的主码同名; 当外码与相应的主码属于不同关系时,当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。往往取相同的名字,以便于识别。3 3) 参照完整性规则参照完整性规则若属性(或属性组)若属性(或属性组)F是基本关系是基本关系R的外码的外码它与基本关系它与基本关系S的主码的主码Ks相对应(基本关相对应(基本关系系R和和S不一定是不同的关系),则对不一定是不同的关