




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章章 关系数据库关系数据库2.1 关系数据库概述关系数据库概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数2.5 关系演算关系演算2.6 关系数据库管理系统关系数据库管理系统2.7 小结小结关系数据库简介关系数据库简介l系统而严格地提出关系模型的是美国系统而严格地提出关系模型的是美国IBM公司的公司的E.F.Codd 1970年提出关系数据模型年提出关系数据模型 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM
2、,1970 之后,提出了关系代数和关系演算的概念之后,提出了关系代数和关系演算的概念 1972年提出了关系的第一、第二、第三范式年提出了关系的第一、第二、第三范式 1974年提出了关系的年提出了关系的BC范式范式关系数据库简介关系数据库简介l关系数据库应用数学方法来处理数据库关系数据库应用数学方法来处理数据库中的数据中的数据l80年代后,关系数据库系统成为最重要、年代后,关系数据库系统成为最重要、最流行的数据库系统最流行的数据库系统关系数据库简介关系数据库简介l典型实验系统典型实验系统 System R University INGRESl典型商用系统典型商用系统 ORACLE SYBASE
3、DB2 SQL Server INFORMIX INGRES第第2章章 关系数据库关系数据库2.1 关系数据库概述关系数据库概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数2.5 关系演算关系演算2.6 关系数据库管理系统关系数据库管理系统2.7 小结小结2.1 关系数据库概述关系数据库概述l关系数据库系统是支持关系模型的数据关系数据库系统是支持关系模型的数据库系统库系统l关系模型的组成关系模型的组成 关系数据结构关系数据结构 关系操作集合关系操作集合 关系完整性约束关系完整性约束1. 关系数据结构关系数据结构l单一的数据结构单一的数据结构-关系关系
4、 现实世界的实体以及实体间的各种联系均用现实世界的实体以及实体间的各种联系均用关系来表示关系来表示l数据的逻辑结构数据的逻辑结构-二维表二维表 从用户角度,关系模型中数据的逻辑结构是从用户角度,关系模型中数据的逻辑结构是一张二维表。一张二维表。 2. 关系操作关系操作l1) 常用的关系操作常用的关系操作l2) 关系操作的特点关系操作的特点l3) 关系数据语言的种类关系数据语言的种类l4) 关系数据语言的特点关系数据语言的特点关系操作关系操作 (续)续)l1) 常用的关系操作常用的关系操作 查询查询 选择、投影、连接选择、投影、连接、除、并、交、差、除、并、交、差 数据更新数据更新 插入、删除、
5、修改插入、删除、修改 查询的表达能力是其中最主要的部分查询的表达能力是其中最主要的部分关系操作(续)关系操作(续)l2) 关系操作的特点关系操作的特点 集合操作方式,即操作的对象和结果都是集集合操作方式,即操作的对象和结果都是集合。合。 非关系数据模型的数据操作方式:一次一记录非关系数据模型的数据操作方式:一次一记录 文件系统的数据操作方式文件系统的数据操作方式关系操作(续)关系操作(续)l3) 关系数据语言的种类关系数据语言的种类 关系代数语言关系代数语言 用用对关系的运算对关系的运算来表达查询要求来表达查询要求 典型代表:典型代表:ISBL关系操作(续)关系操作(续)l关系数据语言的种类(
6、续)关系数据语言的种类(续) 关系演算语言:用关系演算语言:用谓词谓词来表达查询要求来表达查询要求 元组关系演算语言元组关系演算语言 谓词变元的基本对象是元组变量谓词变元的基本对象是元组变量 典型代表:典型代表:APLHA, QUEL 域关系演算语言域关系演算语言 谓词变元的基本对象是域变量谓词变元的基本对象是域变量 典型代表:典型代表:QBE 具有关系代数和关系演算双重特点的语言具有关系代数和关系演算双重特点的语言 典型代表:典型代表:SQL关系操作(续)关系操作(续)l4) 关系数据语言的特点关系数据语言的特点 关系语言是一种高度非过程化的语言关系语言是一种高度非过程化的语言 存取路径的选
7、择由存取路径的选择由DBMS的优化机制来完成的优化机制来完成 用户不必用循环结构就可以完成数据操作用户不必用循环结构就可以完成数据操作 能够嵌入高级语言中使用能够嵌入高级语言中使用 关系代数、元组关系演算和域关系演算三种关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价语言在表达能力上完全等价3. 3. 关系的三类完整性约束关系的三类完整性约束l实体完整性实体完整性 通常由关系系统自动支持通常由关系系统自动支持l参照完整性参照完整性 早期系统不支持,目前大型系统能自动支持早期系统不支持,目前大型系统能自动支持l用户定义的完整性用户定义的完整性 反映应用领域需要遵循的约束条件,体现了
8、反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束具体领域中的语义约束 用户定义后由系统支持用户定义后由系统支持第第2章章 关系数据库关系数据库2.1 关系数据库概述关系数据库概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数2.5 关系演算关系演算2.6 关系数据库管理系统关系数据库管理系统2.7 小结小结2.2 关系数据结构关系数据结构l关系模型建立在集合代数的基础上关系模型建立在集合代数的基础上l关系数据结构的基本概念关系数据结构的基本概念 关系关系 关系模式关系模式 关系数据库关系数据库2.2 关系数据结构关系数据结构l1.1.关系关系
9、l2.2.关系模式关系模式l3.3.关系数据库关系数据库一、一、 关系关系l 域(域(Domain)l 2. 笛卡尔积(笛卡尔积(Cartesian Product)l 3. 关系(关系(Relation) 域(域(Domain)l域域是一组具有相同数据类型的值的集合。是一组具有相同数据类型的值的集合。 例例 整数整数 实数实数 指定长度的字符串集合指定长度的字符串集合 介于某个取值范围的整数介于某个取值范围的整数 男男,女女 介于某个取值范围的日期介于某个取值范围的日期2. 笛卡尔积(笛卡尔积(Cartesian Product)l1) 笛卡尔积笛卡尔积 给定一组域给定一组域D1,D2, ,
10、Dn,这些域中可,这些域中可以有相同的。以有相同的。D1,D2, ,Dn的的笛卡尔积笛卡尔积为:为: D1D2 Dn (d1, d2, , dn)di Di, i1, 2, , n 所有域的所有取值的一个组合所有域的所有取值的一个组合 不能重复不能重复笛卡尔积(续笛卡尔积(续)例例 给出三个域:给出三个域: D1=SUPERVISOR = 张清玫,刘逸张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏李勇,刘晨,王敏则则D1,D2,D3的笛卡尔积为:的笛卡尔积为:D1D2D3 (张清玫,计算机专业,李勇张清玫,计
11、算机专业,李勇),(张清玫,计算机专业,刘晨张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏张清玫,计算机专业,王敏),(张清玫,信息专业,李勇张清玫,信息专业,李勇), (张清玫,信息专业,刘晨张清玫,信息专业,刘晨),(张清玫,信息专业,王敏张清玫,信息专业,王敏), (刘逸,计算机专业,李勇刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏刘逸,计算机专业,王敏),(刘逸,信息专业,李勇刘逸,信息专业,李勇), (刘逸,信息专业,刘晨刘逸,信息专业,刘晨),(刘逸,信息专业,王敏刘逸,信息专业,王敏) 笛卡尔积(续笛卡尔积(续)
12、l2) 元组元组(Tuple) 笛卡尔积中每一个元素(笛卡尔积中每一个元素(d1,d2, ,dn)叫作一)叫作一个个n元组元组(n-tuple)或简称)或简称元组元组。 例例l3) 分量(分量(Component) 笛卡尔积元素(笛卡尔积元素(d1,d2, ,dn)中的每一个值)中的每一个值di叫作一个叫作一个分量分量。 例例笛卡尔积(续笛卡尔积(续)l4) 基数(基数(Cardinal number) 若若Di(i1,2, ,n)为有限集,其基数)为有限集,其基数为为mi(i1,2, ,n),则),则D1D2 Dn的基数的基数M为:为:在上例中,基数:在上例中,基数:22312,即,即D1D
13、2D3共有共有22312个元组个元组mMin1i笛卡尔积(续笛卡尔积(续)l5)笛卡尔积的表示方法笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。表中的每行笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。对应一个元组,表中的每列对应一个域。在上例中,在上例中,12个元组可列成一张二维表个元组可列成一张二维表 表表 2.1 D1, D2, D3的的 笛笛 卡卡 尔尔 积积SUPE R VISO RSPE CIAL IT YPO ST G R A DU AT E张张 清清 玫玫计计 算算 机机 专专 业业李李 勇勇张张 清清 玫玫计计 算算 机机 专专 业业刘刘 晨晨张张
14、 清清 玫玫计计 算算 机机 专专 业业王王 敏敏张张 清清 玫玫信信 息息 专专 业业李李 勇勇张张 清清 玫玫信信 息息 专专 业业刘刘 晨晨张张 清清 玫玫信信 息息 专专 业业王王 敏敏刘刘 逸逸计计 算算 机机 专专 业业李李 勇勇刘刘 逸逸计计 算算 机机 专专 业业刘刘 晨晨刘刘 逸逸计计 算算 机机 专专 业业王王 敏敏刘刘 逸逸信信 息息 专专 业业李李 勇勇刘刘 逸逸信信 息息 专专 业业刘刘 晨晨刘刘 逸逸信信 息息 专专 业业王王 敏敏笛卡尔积(续笛卡尔积(续)表表 2.1 D1, D2, D3的的 笛笛 卡卡 尔尔 积积SU P E R V ISO RSP E C I
15、A L IT YP O ST G R A D U A T E张张 清清 玫玫计计 算算 机机 专专 业业李李 勇勇张张 清清 玫玫计计 算算 机机 专专 业业刘刘 晨晨张张 清清 玫玫计计 算算 机机 专专 业业王王 敏敏张张 清清 玫玫信信 息息 专专 业业李李 勇勇张张 清清 玫玫信信 息息 专专 业业刘刘 晨晨张张 清清 玫玫信信 息息 专专 业业王王 敏敏刘刘 逸逸计计 算算 机机 专专 业业李李 勇勇刘刘 逸逸计计 算算 机机 专专 业业刘刘 晨晨刘刘 逸逸计计 算算 机机 专专 业业王王 敏敏刘刘 逸逸信信 息息 专专 业业李李 勇勇刘刘 逸逸信信 息息 专专 业业刘刘 晨晨刘刘
16、逸逸信信 息息 专专 业业王王 敏敏3. 关系关系(Relation)l1) 关系关系 D1D2 Dn的子集叫作在域的子集叫作在域D1, D2, , Dn上的上的关系关系,表示为,表示为 R(D1,D2, ,Dn) R:关系名关系名 n:关系的关系的目目或或度度(Degree)关系(续)关系(续)l1) 关系关系(续续) 注意注意 关系是笛卡尔积的有限子集。无限关系在数据库关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。系统中是无意义的。 由于笛卡尔积不满足交换律,即由于笛卡尔积不满足交换律,即 (d1,d2, ,dn )(d2,d1, ,dn ) 但关系满足交换律,即但关系满足交
17、换律,即 (d1,d2 , ,di ,dj , ,dn)=(d1,d2 , , dj , di, ,dn) (i,j = 1,2,n) 解决方法:为关系的每个列附加一个属性名以取解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性消关系元组的有序性关系(续)关系(续)例例 在表在表2.1 的笛卡尔积中取出有实际意义的元组的笛卡尔积中取出有实际意义的元组 来构造关系来构造关系关系:关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE) 关系名,属性名关系名,属性名假设:假设:导师与专业:导师与专业:1:1,导师与研究生:,导师与研究生:1:n于是:于是:SA
18、P关系可以包含三个元组关系可以包含三个元组 (张清玫,信息专业,李勇张清玫,信息专业,李勇), (张清玫,信息专业,刘晨张清玫,信息专业,刘晨), (刘逸,信息专业,王敏刘逸,信息专业,王敏) 关系(续)关系(续)l2) 元组元组 关系中的每个元素是关系中的关系中的每个元素是关系中的元组元组,通常用,通常用 t 表示。表示。l3) 单元关系与二元关系单元关系与二元关系 当当n=1时,称该关系为时,称该关系为单元单元关系关系(Unary relation)。)。 当当n=2时,称该关系为时,称该关系为二元二元关系关系(Binary relation)。)。关系(续)关系(续)l4) 关系的表示关
19、系的表示 关系也是一个二维表,表的每行对应一个元关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。组,表的每列对应一个域。表表2.2 SAP关关 系系SUPERVISORSPECIALITYPOSTGRADUATE张张清清玫玫信信息息专专业业李李勇勇张张清清玫玫信信息息专专业业刘刘晨晨刘刘逸逸信信息息专专业业王王敏敏关系(续)关系(续)l5) 属性属性 关系中不同列可以对应相同的域,为了加以关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为区分,必须对每列起一个名字,称为属性属性(Attribute)。)。 n目关系必有目关系必有n个属性。个属性。关系(续)关系
20、(续)l6) 码码 候选码候选码 若关系中的某一属性组的值能唯一地标识一个元若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为组,则称该属性组为候选码候选码(Candidate key)。)。 候选码的诸属性称为候选码的诸属性称为主属性主属性(Prime attribute)。)。 不包含在任何侯选码中的属性称为非码属性不包含在任何侯选码中的属性称为非码属性(Non-key attribute)。)。 在最简单的情况下,候选码只包含一个属性。在在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个最极端的情况下,关系模式的所有属性组是这个关系模式的候选码
21、,称为关系模式的候选码,称为全码全码(All-key)。)。关系(续)关系(续)l码码(续续) 主码主码 若一个关系有多个候选码,则选定其中一个为若一个关系有多个候选码,则选定其中一个为主主码码(Primary key)。)。关系(续)关系(续)l7) 三类关系三类关系 基本关系(基本表或基表)基本关系(基本表或基表) 实际存在的表,是实际存储数据的逻辑表示实际存在的表,是实际存储数据的逻辑表示 查询表查询表 查询结果对应的表查询结果对应的表 视图表视图表 由基本表或其他视图表导出的表,是虚表,不对由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据应实际存储的数据关系(续)关系(续)l
22、8) 基本关系的性质基本关系的性质 列是同质的(列是同质的(Homogeneous) 每一列中的分量是同一类型的数据,来自同一个每一列中的分量是同一类型的数据,来自同一个域。域。 不同的列可出自同一个域不同的列可出自同一个域 其中的每一列称为一个属性其中的每一列称为一个属性 不同的属性要给予不同的属性名不同的属性要给予不同的属性名关系(续)关系(续)例例:上例中也可以只给出两个域:上例中也可以只给出两个域:人(人(PERSON)=张清玫,刘逸,李勇,刘晨,王敏张清玫,刘逸,李勇,刘晨,王敏专业(专业(SPECIALITY)=计算机专业,信息专业计算机专业,信息专业SAP关系的导师属性和研究生属
23、性都从关系的导师属性和研究生属性都从PERSON域中取值。域中取值。为了避免混淆,必须给这两个属性取不同的属性名,而不能为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。直接使用域名。例如定义导师属性名为例如定义导师属性名为SUPERVISOR-PERSON(或(或SUPERVISOR) 研究生属性名为研究生属性名为POSTGRADUATE-PERSON(或(或POSTGRADUATE)SAP(SUPERVISOR-PERSON, SPECIALITY , POSTGRADUATE-PERSON)关系(续)关系(续)l基本关系的性质基本关系的性质(续续) 列的顺序无所谓列的顺序
24、无所谓 列的次序可以任意交换列的次序可以任意交换 遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE),增加,增加新属性时,永远是插至最后一列新属性时,永远是插至最后一列 但也有许多关系数据库产品没有遵循这一性质,但也有许多关系数据库产品没有遵循这一性质,例如例如FoxPro仍然区分了属性顺序仍然区分了属性顺序关系(续)关系(续)l基本关系的性质基本关系的性质(续续) 任意两个元组不能完全相同任意两个元组不能完全相同 由笛卡尔积的性质决定由笛卡尔积的性质决定 但许多关系数据库产品没有遵循这一性质。例如但许多关系数据库产品没有遵循这一性质。例如Oracle,FoxPro等都允许关
25、系表中存在两个完全等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条相同的元组,除非用户特别定义了相应的约束条件。件。关系(续)关系(续)l基本关系的性质基本关系的性质(续续) 行的顺序无所谓行的顺序无所谓 行的次序可以任意交换行的次序可以任意交换 遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE),插入,插入一个元组时永远插至最后一行一个元组时永远插至最后一行 但也有许多关系数据库产品没有遵循这一性质,但也有许多关系数据库产品没有遵循这一性质,例如例如FoxPro仍然区分了元组的顺序仍然区分了元组的顺序关系(续)关系(续)l基本关系的性质基本关系的性质(
26、续续) 分量必须取原子值分量必须取原子值 每一个分量都必须是不可分的数据项。这是规每一个分量都必须是不可分的数据项。这是规 范条件中最基本的一条范条件中最基本的一条表表2.3 非非 规规 范范 化化 关关 系系POSTGRADUATESUPERVISORSPECIALITYPG1PG2张张清清玫玫信信息息专专业业李李勇勇刘刘晨晨刘刘逸逸信信息息专专业业王王敏敏二、二、 关系模式关系模式l1什么是关系模式什么是关系模式l2定义关系模式定义关系模式l3. 关系模式与关系关系模式与关系1什么是关系模式什么是关系模式l关系模式(关系模式(Relation Schema)是型,关系是值)是型,关系是值l
27、关系模式是对关系的描述关系模式是对关系的描述 元组集合的结构元组集合的结构 属性构成属性构成 属性来自的域属性来自的域 属性与域之间的映象关系属性与域之间的映象关系 元组语义元组语义 完整性约束条件完整性约束条件 属性间的数据依赖关系集合属性间的数据依赖关系集合2定义关系模式定义关系模式l关系模式可以形式化地表示为:关系模式可以形式化地表示为: R(U,D,dom,F) R 关系名关系名U 组成该关系的属性名集合组成该关系的属性名集合D 属性组属性组U中属性所来自的域中属性所来自的域dom 属性向域的映象集合属性向域的映象集合F 属性间的数据依赖关系集合。属性间的数据依赖关系集合。定义关系模式
28、定义关系模式 (续续)例例 在上面例子中,由于导师和研究生出自同一在上面例子中,由于导师和研究生出自同一个域个域人,所以要取不同的属性名,并在人,所以要取不同的属性名,并在模式中定义属性向域的映象,即说明它们分模式中定义属性向域的映象,即说明它们分别出自哪个域,如:别出自哪个域,如: dom(SUPERVISOR-PERSON)= dom(POSTGRADUATE-PERSON)=PERSON定义关系模式定义关系模式 (续续)l关系模式通常可以简记为关系模式通常可以简记为 R (U) 或或 R (A1,A2,An)R 关系名关系名A1,A2,An 属性名属性名注:域名及属性向域的映象常常直接说
29、明为属注:域名及属性向域的映象常常直接说明为属 性的类型、长度。性的类型、长度。3. 关系模式与关系关系模式与关系l关系模式关系模式 对关系的描述对关系的描述 静态的、稳定的静态的、稳定的l关系关系 关系模式在某一时刻的状态或内容关系模式在某一时刻的状态或内容 动态的、随时间不断变化的动态的、随时间不断变化的l关系模式和关系往往统称为关系,通过关系模式和关系往往统称为关系,通过上下文加以区别。上下文加以区别。三、关系数据库三、关系数据库l1. 关系数据库关系数据库l2. 关系数据库的型与值关系数据库的型与值1. 关系数据库关系数据库l在一个给定的应用领域中,所有实体及在一个给定的应用领域中,所
30、有实体及实体之间联系的关系的集合构成一个关实体之间联系的关系的集合构成一个关系数据库。系数据库。2. 关系数据库的型与值关系数据库的型与值l关系数据库也有型和值之分关系数据库也有型和值之分l关系数据库的型称为关系数据库模式,关系数据库的型称为关系数据库模式,是对关系数据库的描述是对关系数据库的描述 若干域的定义若干域的定义 在这些域上定义的若干关系模式在这些域上定义的若干关系模式l关系数据库的值是这些关系模式在某一关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关时刻对应的关系的集合,通常简称为关系数据库系数据库第第2章章 关系数据库关系数据库2.1 关系数据库概述关系数据库
31、概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数2.5 关系演算关系演算2.6 关系数据库管理系统关系数据库管理系统2.7 小结小结2.3 关系的完整性关系的完整性l关系模型的完整性规则是对关系的某种约束条关系模型的完整性规则是对关系的某种约束条件。件。l关系模型中三类完整性约束:关系模型中三类完整性约束: 实体完整性实体完整性 参照完整性参照完整性 用户定义的完整性用户定义的完整性l实体完整性和参照完整性是关系模型必须满足实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个的完整性约束条件,被称作是关系的两个不变不变性性,应
32、该由关系系统自动支持。,应该由关系系统自动支持。关系的完整性关系的完整性(续续)l1. 实体完整性实体完整性l2. 参照完整性参照完整性l3. 用户定义的完整性用户定义的完整性一、一、 实体完整性实体完整性l实体完整性规则(实体完整性规则(Entity Integrity) 若属性若属性A是基本关系是基本关系R的主属性,则属性的主属性,则属性A不不能取空值。能取空值。例例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE属性为主码(假设研究生不会重属性为主码(假设研究生不会重名),则其不能取空值。名),则其不能取空值。实体完整性实体完整性(续
33、续)l关系模型必须遵守实体完整性规则的原因关系模型必须遵守实体完整性规则的原因 (1) 实体完整性规则是针对基本关系而言的。实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集一个基本表通常对应现实世界的一个实体集或多对多联系。或多对多联系。 (2) 现实世界中的实体和实体间的联系都是现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。可区分的,即它们具有某种唯一性标识。 (3) 相应地,关系模型中以候选码作为唯一相应地,关系模型中以候选码作为唯一性标识。性标识。实体完整性实体完整性(续续)l关系模型必须遵守实体完整性规则的原因关系模型必须遵守实体完整性
34、规则的原因(续续) (4) 候选码中的属性即主属性不能取空值。候选码中的属性即主属性不能取空值。所谓空值就是所谓空值就是“不知道不知道”或或“无意义无意义”的值。的值。如果主属性取空值,就说明存在某个不可标如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整点相矛盾,因此这个规则称为实体完整性。性。实体完整性实体完整性(续续)l注意注意 实体完整性规则规定基本关系的所有主属性实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空都不能取空值,而不仅是主码整体不能取空值。值
35、。例:例: 选修(学号,课程号,成绩)选修(学号,课程号,成绩) “学号、课程号学号、课程号”为主码,为主码, 则学号和课程号两个属性都不能取空值则学号和课程号两个属性都不能取空值二、二、 参照完整性参照完整性l1. 关系间的引用关系间的引用l2. 外码外码l3. 参照完整性规则参照完整性规则1. 关系间的引用关系间的引用l在关系模型中实体及实体间的联系都是在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系用关系来描述的,因此可能存在着关系与关系间的引用。与关系间的引用。例例1 学生实体、专业实体以及专业与学生间学生实体、专业实体以及专业与学生间的一对多联系的一对多联系 学生
36、(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄) 专业(专业(专业号专业号,专业名),专业名)学学 号号姓姓 名名性性 别别专专 业业 号号年年 龄龄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专专 业业 号号专专 业业 名名0 1信信 息息0 2数数 学学0 3计计 算算 机机学生(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄) 专业(专业(专业号专业号,专业名),专业名)关系间的引用关系间的引用(续续)例例2
37、 学生、课程、学生与课程之间的多对多联系学生、课程、学生与课程之间的多对多联系 学生(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄) 课程(课程(课程号课程号,课程名,学分),课程名,学分) 选修(选修(学号学号,课程号课程号,成绩),成绩) 课课程程号号课课程程名名学学分分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
38、21 9学学 号号课课 程程号号成成 绩绩801049280103788010285802038280204908030488学生学生学生选课学生选课课程课程关系间的引用关系间的引用(续续)例例3 学生实体及其内部的领导联系学生实体及其内部的领导联系(一对多一对多) 学生(学生(学号学号,姓名,性别,专业号,年龄,班长),姓名,性别,专业号,年龄,班长)学学号号姓姓名名性性别别专专业业号号年年龄龄班班长长801张张三三女女0119802802李李四四男男0120803王王五五男男0120802804赵赵六六女女0220805805钱钱七七男男02192外码外码l外码外码 设设F是基本关系是基本
39、关系R的一个或一组属性,的一个或一组属性, 但不但不是关系是关系R的码。如果的码。如果F与基本关系与基本关系S的主码的主码Ks相 对 应 , 则 称相 对 应 , 则 称 F 是 基 本 关 系是 基 本 关 系 R 的的 外 码外 码(Foreign Key) 基本关系基本关系R称称为为参照关系参照关系(Referencing Relation) 基本关系基本关系S称称为为被参照关系被参照关系(Referenced Relation)或)或目标关系目标关系(Target Relation)。)。外码外码(续续)l说明说明 关系关系R和和S不一定是不同的关系。不一定是不同的关系。 目标关系目标
40、关系S的主码的主码Ks和参照关系的外码和参照关系的外码F必必须定义在同一个(或一组)域上。须定义在同一个(或一组)域上。 外码并不一定要与相应的主码同名。外码并不一定要与相应的主码同名。 当外码与相应的主码属于不同关系时,往往当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。取相同的名字,以便于识别。l例例3. 参照完整性规则参照完整性规则l参照完整性规则就是定义外码与主码之参照完整性规则就是定义外码与主码之间的引用规则。间的引用规则。l参照完整性规则参照完整性规则 若属性(或属性组)若属性(或属性组)F是基本关系是基本关系R的外码,它与基的外码,它与基本关系本关系S的主码的主码
41、Ks相对应(基本关系相对应(基本关系R和和S不一定是不一定是不同的关系),则对于不同的关系),则对于R中每个元组在中每个元组在F上的值必须上的值必须为:为: 或者取空值(或者取空值(F的每个属性值均为空值)的每个属性值均为空值) 或者等于或者等于S中某个元组的主码值。中某个元组的主码值。参照完整性规则参照完整性规则(续续)l例例例例1学生关系中每个元组的学生关系中每个元组的“专业号专业号”属性只能属性只能取下面两类值:取下面两类值:(1)空值,表示尚未给该学生分配专业;)空值,表示尚未给该学生分配专业;(2)非空值,这时该值必须是专业关系中某)非空值,这时该值必须是专业关系中某个元组的个元组的
42、“专业号专业号”值,表示该学生不可能值,表示该学生不可能分配到一个不存在的专业中。分配到一个不存在的专业中。参照完整性规则参照完整性规则(续续)例例2 由于由于“学号学号”和和“课程号课程号”是选修关系中的是选修关系中的主属性,按照实体完整性和参照完整性规则,主属性,按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主它们只能取相应被参照关系中已经存在的主码值。码值。参照完整性规则参照完整性规则(续续)例例3 “班长班长”属性值可以取两类值:属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班)空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;长,或该学生本
43、人即是班长;(2)非空值,这时该值必须是本关系中某个)非空值,这时该值必须是本关系中某个元组的学号值。元组的学号值。三、三、 用户定义的完整性用户定义的完整性l用户定义的完整性是针对某一具体关系用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。所涉及的数据必须满足的语义要求。l关系模型应提供定义和检验这类完整性关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。它们,而不要由应用程序承担这一功能。用户定义的完整性用户定义的完整
44、性(续续)例例 课程课程(课程号课程号,课程名,学分,课程名,学分) “课程名课程名”属性必须取唯一值属性必须取唯一值 非主属性非主属性“课程名课程名”也不能取空值也不能取空值 “学分学分”属性只能取值属性只能取值1,2,3,4第第2章章 关系数据库关系数据库2.1 关系数据库概述关系数据库概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数2.5 关系演算关系演算2.6 关系数据库管理系统关系数据库管理系统2.7 小结小结关系代数(续)关系代数(续)l1. 关系代数关系代数l2. 运算的三要素运算的三要素l3. 关系代数运算的三个要素关系代数运算的三个
45、要素l4. 关系代数运算的分类关系代数运算的分类l5. 表示记号表示记号关系代数(续)关系代数(续)l1.关系代数关系代数 一种抽象的查询语言一种抽象的查询语言 用对关系的运算来表达查询用对关系的运算来表达查询关系代数(续)关系代数(续)l2运算的三要素运算的三要素 运算对象运算对象 运算符运算符 运算结果运算结果关系代数(续)关系代数(续)l3关系代数运算的三个要素关系代数运算的三个要素 运算对象:关系运算对象:关系 运算结果:关系运算结果:关系 运算符:四类运算符:四类关系代数(续)关系代数(续) 运算符(续)运算符(续) 集合运算符集合运算符 将关系看成元组的集合将关系看成元组的集合 从
46、关系的从关系的“水平水平”方向即行的角度来进行运方向即行的角度来进行运算算 专门的关系运算符专门的关系运算符 不仅涉及行而且涉及列不仅涉及行而且涉及列 算术比较符算术比较符 辅助专门的关系运算符进行操作辅助专门的关系运算符进行操作 逻辑运算符逻辑运算符 辅助专门的关系运算符进行操作辅助专门的关系运算符进行操作集集合合运运算算符符-并并差差交交广义笛广义笛卡尔积卡尔积比比较较运运算算符符 大于大于大于等于大于等于小于小于小于等于小于等于等于等于不等于不等于运算符运算符含义含义运算符运算符含义含义表表2.4 关系代数运算符关系代数运算符 关系代数(续)关系代数(续)专 门 的专 门 的关系关系运
47、算 符运 算 符 选择选择投影投影连接连接除除逻 辑 运逻 辑 运算符算符 非非与与或或运算符运算符含义含义运算符运算符含义含义表表2.4 关系代数运算符(续)关系代数运算符(续) 关系代数(续)关系代数(续)关系代数(续)关系代数(续)l4关系代数运算的分类关系代数运算的分类 传统的集合运算传统的集合运算 并、差、交、广义笛卡尔积并、差、交、广义笛卡尔积 专门的关系运算专门的关系运算 选择、投影、连接、除选择、投影、连接、除关系代数(续)关系代数(续)l5表示记号表示记号 (1) R,t R,tAi 设关系模式为设关系模式为R(A1,A2, ,An)。它的一。它的一个关系设为个关系设为R。t
48、 R表示表示t是是R的一个元组。的一个元组。tAi则表示元组则表示元组t中相应于属性中相应于属性Ai的一个分量。的一个分量。 关系代数(续)关系代数(续) (2)A,tA,A 若若A=Ai1,Ai2,Aik,其中,其中Ai1,Ai2,Aik是是A1,A2,An中的一部分,则中的一部分,则A称为称为属性列或域列。属性列或域列。tA=(tAi1,tAi2,tAik)表示元组表示元组t在属性列在属性列A上诸分量的集合。上诸分量的集合。A则表示则表示A1,A2,An中去掉中去掉Ai1,Ai2,Aik后剩余的属性组。后剩余的属性组。 关系代数(续)关系代数(续) (3) tr ts R为为n目关系,目关
49、系,S为为m目关系。目关系。tr R,ts S, tr ts称为元组的连接。它是一个称为元组的连接。它是一个n + m列的元列的元组,前组,前n个分量为个分量为R中的一个中的一个n元组,后元组,后m个个分量为分量为S中的一个中的一个m元组。元组。 关系代数(续)关系代数(续) 4)象集)象集Zx 给定一个关系给定一个关系R(X,Z),),X和和Z为属性组。为属性组。当当tX=x时,时,x在在R中的中的象集象集(Images Set)为:为: Zx=tZ|t R,tX=x 它表示它表示R中属性组中属性组X上值为上值为x的诸元组在的诸元组在Z上上分量的集合。分量的集合。 2.4 关系代数关系代数l
50、 2.4.1 传统的集合运算传统的集合运算l 2.4.2 专门的关系运算专门的关系运算2.4 关系代数关系代数l 2.4.1 传统的集合运算传统的集合运算l 2.4.2 专门的关系运算专门的关系运算2.4.1 传统的集合运算传统的集合运算l并并l差差l交交l广义笛卡尔积广义笛卡尔积1. 并(并(Union)lR和和S 具有相同的目具有相同的目n(即两个关系都有(即两个关系都有n个属性)个属性) 相应的属性取自同一个域相应的属性取自同一个域lRS 仍为仍为n目关系,由属于目关系,由属于R或属于或属于S的元组组成的元组组成 RS = t|t Rt S 并并(续续)ABCa1b1c1a1b2c2a2
51、b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS 2. 差(差(Difference)lR和和S 具有相同的目具有相同的目n 相应的属性取自同一个域相应的属性取自同一个域lR - S 仍为仍为n目关系,由属于目关系,由属于R而不属于而不属于S的所有元的所有元组组成组组成 R -S = t|t Rt S 差差(续续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S 3. 交(交(Intersection)lR和和S 具有相同的目具有相同的目n 相应的属性取自同一个域相应
52、的属性取自同一个域lRS 仍为仍为n目关系,由既属于目关系,由既属于R又属于又属于S的元组组的元组组成成 RS = t|t Rt S RS = R (R-S)交交 (续续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S 4. 广义笛卡尔积(广义笛卡尔积(Extended Cartesian Product)lR n目关系,目关系,k1个元组个元组lS m目关系,目关系,k2个元组个元组lRS 列:(列:(n+m)列的元组的集合)列的元组的集合 元组的前元组的前n列是关系列是关系R的一个元组的一个元组 后后m列是关系列
53、是关系S的一个元组的一个元组 行:行:k1k2个元组个元组 RS = tr ts |tr R ts S 广义笛卡尔积广义笛卡尔积 (续续)ABCa1 b1 c1a1 b2 c2a2 b2 c1ABCa1 b2 c2a1 b3 c2a2 b2 c1RSR S ABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c12.4 关系代数关系代数l2.4.1 传统的集合运算传统的集合运算l2.4.2 专门的关系运算专门的关系运算2.4
54、.2 专门的关系运算专门的关系运算l选择选择l投影投影l连接连接l除除1. 选择(选择(Selection) l1) 选择又称为限制(选择又称为限制(Restriction)l2) 选择运算符的含义选择运算符的含义 在关系在关系R中选择满足给定条件的诸元组中选择满足给定条件的诸元组 F(R) = t|t RF(t)= 真真 F:选择条件,是一个逻辑表达式,基本形式为:选择条件,是一个逻辑表达式,基本形式为: ( X1Y1 ) ( X2Y2 ) :比较运算符(,:比较运算符(,或,或) X1,Y1等:属性名、常量、简单函数;属性名也可以用它等:属性名、常量、简单函数;属性名也可以用它的序号来代替
55、;的序号来代替; :逻辑运算符(:逻辑运算符(或或) :表示任选项:表示任选项 :表示上述格式可以重复下去:表示上述格式可以重复下去选择(续)选择(续)l3) 选择运算是从行的角度进行的运算选择运算是从行的角度进行的运算 l4) 举例举例设有一个学生设有一个学生-课程数据库,包括学生关系课程数据库,包括学生关系Student、课程关系、课程关系Course和选修关系和选修关系SC。选择(续)选择(续)学学 号号Sno姓姓 名名Sname性性 别别Ssex年年 龄龄Sage所所 在在 系系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA9500
56、4张立张立男男19IS(a) Student例1例2例4例3例9选择(续)选择(续)(b)Course课程号课程号课程名课程名先行课先行课学分学分CnoCnameCpnoCcredit1数据库数据库542数学数学 23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理 27PASCAL语言语言64例9选择(续)选择(续) (c)SC学学 号号课课 程程 号号成成 绩绩SnoCnoGrade9500119295001285950013889500229095002380例7例9选择(续)选择(续)例例1 查询信息系(查询信息系(IS系)全体学生系)全体学生 Sde
57、pt = IS (Student)或或 5 =IS (Student)结果:结果: SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95004张立张立男男19IS选择(续)选择(续)例例2 查询年龄小于查询年龄小于20岁的学生岁的学生 Sage 20(Student) 或或 4 20(Student)结果:结果: SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS 2. 投影(投影(Projection) l1)投影运算符的含义)投影运算符的含义 从从R中选择出若干属性列组成新的关系中选择
58、出若干属性列组成新的关系 A(R) = tA | t R A:R中的属性列中的属性列 2. 投影(投影(Projection) l2)投影操作主要是从列的角度进行运算)投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)而且还可能取消某些元组(避免重复行)投影(续)投影(续)l3) 举例举例例例3 查询学生的姓名和所在系查询学生的姓名和所在系即求即求Student关系上学生姓名和所在系两个关系上学生姓名和所在系两个属性上的投影属性上的投影 Sname,Sdept(Student)或或 2,5(Stud
59、ent)结果:结果:投影(续)投影(续)SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张立IS投影(续)投影(续)例例4 查询学生关系查询学生关系Student中都有哪些系中都有哪些系 Sdept(Student)结果:结果:SdeptCSISMA3. 连接(连接(Join) l1)连接也称为)连接也称为连接连接l2)连接运算的含义)连接运算的含义 从两个关系的笛卡尔积中选取属性间满足从两个关系的笛卡尔积中选取属性间满足一定条件的元组一定条件的元组 R S = | tr Rts StrAtsB A和和B:分别为分别为R和和S上度数相等且可比的属性组上度数相等且可比的属性组 :比较
60、运算符:比较运算符 连接运算从连接运算从R和和S的广义笛卡尔积的广义笛卡尔积RS中选中选取(取(R关系)在关系)在A属性组上的值与(属性组上的值与(S关系)关系)在在B属性组上值满足比较关系的元组。属性组上值满足比较关系的元组。 ABtr ts 连接连接(续续) l3)两类常用连接运算)两类常用连接运算 等值连接(等值连接(equijoin) 什么是等值连接什么是等值连接 为为“”的连接运算称为等值连接的连接运算称为等值连接 等值连接的含义等值连接的含义 从关系从关系R与与S的广义笛卡尔积中选取的广义笛卡尔积中选取A、B属性属性值相等的那些元组,即等值连接为:值相等的那些元组,即等值连接为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省济宁鱼台县联考2024-2025学年初三下学期中考模拟考试语文试题(文史类)试卷含解析
- 山东省惠民县联考2025年初三中考仿真模拟卷(一)化学试题含解析
- 湖南省益阳市桃江第一中学2024-2025学年高中毕业班历史试题学科备考关键问题指导系列历史试题适应性练习(一)含解析
- 四川省成都市实验中学2024-2025学年高三第二次模拟考试试卷物理试题含解析
- 扬州大学《食品试验设计与统计分析实验》2023-2024学年第一学期期末试卷
- 徐州幼儿师范高等专科学校《医疗健康商务沟通》2023-2024学年第二学期期末试卷
- 内蒙古化工职业学院《视频内容传达》2023-2024学年第二学期期末试卷
- 湖北省学业考:专题二匀变速直线运动的研究复习试卷2025届高考原创押题卷(2)生物试题试卷含解析
- 内蒙古工业职业学院《统计计算与软件实验》2023-2024学年第一学期期末试卷
- 浙江省绍兴市诸暨市2025届数学四下期末统考模拟试题含解析
- 人工智能与人力资源融合-深度研究
- 口腔材料学-课程教学大纲
- 2025年徐州市专业技术人员公需课程 - 心理调适
- 《地理课堂教学技能训练与应用》课件
- 2025国网甘肃省电力公司建设分公司招聘劳务外包制30人易考易错模拟试题(共500题)试卷后附参考答案
- 2022年安徽省普通高校分类考试招生和对口招生文化素质测试英语试题
- 煤矿生产调度培训课件
- 2025年金刚石工具项目可行性研究报告
- 2024-2025学年七年级地理下册 7.3 撒哈拉以南的非洲说课稿 (新版)新人教版
- 医疗器械年度培训计划
- 10kv变压器安装施工方案
评论
0/150
提交评论