关系模型数据库.ppt
信息管理系 吴保国BEILIN 吴保国第第2章章 关系数据库基础关系数据库基础n关系数据库采用关系数据模型,已经历了40多年的发展,从理论到技术都已经非常成熟,是目前广泛使用的主流数据库系统,也是数据库课程要讲授的主要内容。n本章主要包括关系的基本概念、关系数据模型、关系完整性约束和关系代数等内容。信息管理系 吴保国本章内容本章内容n2.1 关系模型的基本概念n2.2 关系的定义n2.3 关系操作与代数 n2.4 关系的完整性约束n2.5 关系数据库系统结构 信息管理系 吴保国本章问题本章问题n什么是关系数据模型?什么是关系数据模型?n关系数据模型有哪关系数据模型有哪3 3个要素?并说明这些要素所包含的内个要素?并说明这些要素所包含的内容。容。n实体完整性规则,它涉及哪些概念?约束是如何实现的?实体完整性规则,它涉及哪些概念?约束是如何实现的?n参照完整性规则,它涉及哪些概念?约束是如何实现的?参照完整性规则,它涉及哪些概念?约束是如何实现的?n用户定义完整性可以完成哪些方面的约束?用户定义完整性可以完成哪些方面的约束?n关系完整性约束在保证数据正确性方面是如何发生作用的关系完整性约束在保证数据正确性方面是如何发生作用的?n数据库管理系统的抽象层次?数据库管理系统的抽象层次?信息管理系 吴保国2.1 2.1 关系模型的基本概念关系模型的基本概念n关系模型n用关系(二维表)表示实体以及实体之间联系的模型称为关系数据模型。n关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。1.1.关系数据结构关系数据结构2.2.关系操作集合关系操作集合3.3.关系完整性约束关系完整性约束关系关系模型模型实体完整性实体完整性参照完整性参照完整性用户定义完整性用户定义完整性信息管理系 吴保国2.1.1 2.1.1 关系的数据结构关系的数据结构n在关系模型中,所有的数据都用关系(也称二维表)来作为逻辑结构。n关系模型将信息世界中每一个实体集抽象为数据库中的一个关系,不同实体集之间多对多联系也抽象为关系。n一个关系有固定数量的命名的列(也称属性或字段)和可变数量的行(也称元组或记录)n关系中的每行代表实体集的一个实例,即实体集中的一个实体对应表中的一行;而每个属性包含特定实例的一些性质的一个值,即实体的一个属性对应于表中的一列。n实体集的所有成员有相同的属性。n这些关系的集合构成了关系数据库。其中数据库、表等又是以文件形式存储在计算机的外存储器上。信息管理系 吴保国2.1.2 2.1.2 关系操作集合和关系操作语言关系操作集合和关系操作语言n表达(或描述)关系操作的关系操作语言可以分为三类:1关系代数语言ISBL2关系演算语言元组关系演算语言APLHA、QUEL域关系演算语言QBE3具关系代数与关系演算双重特点的语言SQL信息管理系 吴保国2.1.2 2.1.2 关系操作集合和关系操作语言关系操作集合和关系操作语言n关系模型中常用的关系操作集合包括查询和更新操作二类:n查询操作选择(Select)投影(Project)连接(Join)除(Divide)并(Union)交(Intersection)差(Difference)等查询(Query)操作n更新操作插入(Insert)删除(Delete)修改(Update)操作。信息管理系 吴保国2.1.3 2.1.3 关系的完整性约束关系的完整性约束 n关系的完整性约束是对关系操作时必须满足的约束条件,确保数据库中数据的正确性、一致性和有效性,防止错误的数据进入数据库造成无效操作。n关系的完整性约束条件包括三大类:n实体完整性n参照完整性n用户定义完整性信息管理系 吴保国2.2 2.2 关系的概念关系的概念n2.1.1 域n2.2.2 笛卡儿积n2.2.3 关系的形式化定义信息管理系 吴保国2.2.1 2.2.1 域域n定义:n域是一组具有相同数据类型的值的集合。如整数的集合、字符串的集合、全体学生的集合等。n域通常用名字、数据类型格式以及值的约束范围来指定。n域中所包含的值的个数称域的基数,用m表示。n例如:nD1=S1,S2,S3 m1=3nD2=王家平,张晓红,刘大钢 m2=3nD3=男,女 m3=2 信息管理系 吴保国2.2.2 2.2.2 笛卡儿积笛卡儿积n定义:l给定一组任意域D1,D2,Dn(它们可以包括相同的元素),这n个域的笛卡儿积为:D1D2Dn=(d1,d2,dn)|di Di,i=1,2,n。n其中:lDi称为域l每一个元素(d1,d2,dn)叫做一个n元组,简称元组。l元素中每一个值di叫做一个分量,它来自相应的域(diDi)lDi(i=1,2,n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,n)表示。l笛卡儿积D1D2Dn中元组的个数为m1m2.mn,所有域的基数的累乘乘积。信息管理系 吴保国2.2.2 2.2.2 笛卡儿积笛卡儿积笛卡尔积可表示为一个二维表,表中的每行对应一个元组,表中的每列对应一个域。D D1 1D D2 2D Dn nd d1111d d2121d dn1n1d d1 1m md d2 2m md dn nm mD D1 1D D2 2D Dn n=信息管理系 吴保国2.2.2 2.2.2 笛卡儿积笛卡儿积n实例实例,设有学号设有学号SNOSNO、姓名姓名NAMENAME和性别和性别SEXSEX三个域:三个域:SNO =S1,S2,S3 SNO =S1,S2,S3 SN=SN=王家平王家平,张晓红张晓红,刘大钢刘大钢 SEX =SEX =男男,女女 笛卡儿积笛卡儿积 SNOSNSEX=SNOSNSEX=(S1,(S1,王家平王家平,男男),(S1,(S1,王家平王家平,女女),(S1,(S1,张晓红张晓红,男男),(S1,(S1,张晓红张晓红,女女),(S1,(S1,刘大钢刘大钢,男男),(S1,(S1,刘大钢刘大钢,女女),(S2,(S2,王家平王家平,男男),(S2,(S2,王家平王家平,女女),(S2,(S2,张晓红张晓红,男男),(S2,(S2,张晓红张晓红,女女),(S2,(S2,刘大钢刘大钢,男男),(S2,(S2,刘大钢刘大钢,女女),(S3,(S3,王家平王家平,男男),(S3,(S3,王家平王家平,女女),(S3,(S3,张晓红张晓红,男男),(S3,(S3,张晓红张晓红,女女),(S3,(S3,刘大钢刘大钢,男男),(S3,(S3,刘大钢刘大钢,女女)该笛卡儿积的基数为该笛卡儿积的基数为3*3*2=18,即有,即有18个元组。个元组。信息管理系 吴保国2.2.2 2.2.2 笛卡儿积笛卡儿积n笛卡儿积笛卡儿积 SNOSNSEX SNOSNSEX的积用二维表表示的积用二维表表示如左图所示:如左图所示:SNOSNOSNSNSEXSEXS1S1王家平王家平男男S1S1王家平王家平女女S1S1张晓红张晓红男男S1S1张晓红张晓红女女S1S1刘大钢刘大钢男男S1S1刘大钢刘大钢女女S2S2王家平王家平男男S2S2王家平王家平女女S2S2张晓红张晓红男男S2S2张晓红张晓红女女S2S2刘大钢刘大钢男男S2S2刘大钢刘大钢女女S3S3王家平王家平男男S3S3王家平王家平女女S3S3张晓红张晓红男男S3S3张晓红张晓红女女S3S3刘大钢刘大钢男男S3S3刘大钢刘大钢女女l从图中可以看出,笛卡儿积实际上从图中可以看出,笛卡儿积实际上就是一个二维表,二维表的框架由就是一个二维表,二维表的框架由域构成。域构成。l二维表的任意一行就是一个元组二维表的任意一行就是一个元组l每一列的数据来自同一个域,它的每一列的数据来自同一个域,它的第一个分量来自第一个分量来自SNSN,第二个分量来第二个分量来自自NAMENAME,第三个分量来自第三个分量来自SEXSEX。l由于笛卡儿积是一个集合,表中的由于笛卡儿积是一个集合,表中的元组是非排序的,没有重复的元组元组是非排序的,没有重复的元组。信息管理系 吴保国2.2.3 2.2.3 关系的形式化定义关系的形式化定义n定义:笛卡尔积的有限子集称作在域D1,D2,.Dn上的关系。表示为:R(D1,D2,.Dn)。其中:nR表示关系的名字nDi表示第i个属性。D1,D2,Dn表示不同的属性。nn是关系的目或度。n=1表示该关系只有一个属性,称为单元关系;n=2表示该关系有两个属性,称为二元关系,以此类推。n目关系必有 n个属性。信息管理系 吴保国2.2.3 2.2.3 关系的形式化定义关系的形式化定义学号学号姓名姓名年龄年龄性别性别院系院系S1张海燕 19女01S2杨刚19男02S3赵芳20女01S4李成战 18男01关系关系关系名:学生关系名:学生元组集合元组集合(记录记录)关系模式关系模式(表结构表结构)属性属性(列列)和属性名和属性名年龄属性值域:年龄属性值域:12-60性别的值域:男性别的值域:男,女女n关系也可以看作是一个二维表关系也可以看作是一个二维表n表的框架由表的框架由Di(i=1,2,n)构成构成n表的每一行对应一个元组表的每一行对应一个元组n表表的的每每列列对对应应一一个个域域。由由于于域域可可以以是是相相同同的的,为为了了加加以以区区别别,给给每每列列起起一一个个名名字字,称称为为属属性性。因因此此,n目目的的关关系系必必有有n个个属属性性。属属性性的的取取值值范范围称为值域。围称为值域。信息管理系 吴保国2.2.3 2.2.3 关系的形式化定义关系的形式化定义SNOSNONAMENAMESEXSEXS1S1王家平王家平男男S1S1王家平王家平女女S1S1张晓红张晓红男男S1S1张晓红张晓红女女S1S1刘大钢刘大钢男男S1S1刘大钢刘大钢女女S2S2王家平王家平男男S2S2王家平王家平女女S2S2张晓红张晓红男男S2S2张晓红张晓红女女S2S2刘大钢刘大钢男男S2S2刘大钢刘大钢女女s3s3王家平王家平男男s3s3王家平王家平女女s3s3张晓红张晓红男男s3s3张晓红张晓红女女s3s3刘大钢刘大钢男男s3s3刘大钢刘大钢女女n任意取两个子集构成两个关系,分别称为关系RS1和关系RS2。nRS1和RS2有相同的关系框架。我们把具有相同关系框架的关系称为同类关系,因此,RS1和RS2是同类关系。SNOSNONAMENAMESEXSEXS1S1王家平王家平男男S2S2张晓红张晓红女女S3S3刘大钢刘大钢男男RS1RS1SNOSNONAMENAMESEXSEXS3S3王家平王家平男男S2S2张晓红张晓红女女S1S1刘大钢刘大钢男男RS2RS2信息管理系 吴保国2.2.3 2.2.3 关系的形式化定义关系的形式化定义n关系的定义l关系是一个规范的二维表,由关系(二维表)的框架(型)和若干元组(值)构成。l关系是笛卡儿积D1D2Dn的一个有意义的子集。l定义在域D1,D2,Dn(不要求完全相异)上的关系由关系头(Heading)和关系体(Body)组成。关系头由属性名A1,A2,An的集合组成,每个属性Ai正好对应一个域Di(i=1,2,n);关系体由随时间变化的n个元组的集合构成,每个元组依次由一组属性值的集合构成。信息管理系 吴保国2.2.3 2.2.3 关系的形式化定义关系的形式化定义SNOSNONAMENAMESEXSEXS1S1王家平王家平男男S1S1王家平王家平女女S1S1张晓红张晓红男男S1S1张晓红张晓红女女S1S1刘大钢刘大钢男男S1S1刘大钢刘大钢女女S2S2王家平王家平男男S2S2王家平王家平女女S2S2张晓红张晓红男男S2S2张晓红张晓红女女S2S2刘大钢刘大钢男男S2S2刘大钢刘大钢女女s3s3王家平王家平男男s3s3王家平王家平女女s3s3张晓红张晓红男男s3s3张晓红张晓红女女s3s3刘大钢刘大钢男男s3s3刘大钢刘大钢女女n任意取两个子集构成两个关系,分别称为关系RS1和关系RS2。nRS1和RS2有相同的关系框架。我们把具有相同关系框架的关系称为同类关系,因此,RS1和RS2是同类关系。SNOSNONAMENAMESEXSEXS1S1王家平王家平男男S2S2张晓红张晓红女女S3S3刘大钢刘大钢男男RS1RS1SNOSNONAMENAMESEXSEXS3S3王家平王家平男男S2S2张晓红张晓红女女S1S1刘大钢刘大钢男男RS2RS2信息管理系 吴保国1.1.关系的三种类型关系的三种类型基本关系通常称为基表,它是实际存储数据的逻辑表示。查询表查询结果对应的表。视图表由基本表和其它视图表导出的表,是虚表,不对应实际存储的数据。视图访问的数据不作为独特的对象存储在数据库内。当用户访问视图数据时,系统通过视图中的查询获取数据。用户访问关系时所使用的一种方法。信息管理系 吴保国2.2.基本关系具有六条性质基本关系具有六条性质1.元组(通常称记录)不可以重复,即在一个关系中任意两个元组不能完全一样(候选键不能相同)。2.元组的顺序是无关紧要的,各行的顺序可以交换。3.每一列为一个属性(通常称字段),不同的属性要给予不同的属性名,属性名必须唯一。4.各属性的排列次序无关紧要,即属性的次序可以任意交换,但一定是整体交换,属性名和属性值必须作为整列同时交换。5.列是同质的,即每一列的分量是同类型的数据。列的个数和每列的数据类型是固定的,即每一列中的分量是同类型的数据,来自同一个值域。6.任一属性值必须是原子的,不可再分的。(注:满足这个性质的关系称为规范化的关系,简称范式)信息管理系 吴保国2.2.基本关系具有六条性质基本关系具有六条性质学号学号姓名姓名性别性别年龄年龄曾用名曾用名s1s1徐啸徐啸男男2020徐升徐升s2s2辛国年辛国年女女1818辛招弟辛招弟s3s3徐玮徐玮男男1919徐小妹徐小妹s4s4邓一欧邓一欧女女2020邓小欧邓小欧s1s1徐啸徐啸男男2020徐升徐升重复的元组重复的元组重复的元组重复的元组!学号学号 姓名姓名性别性别 年龄年龄 曾用名曾用名s1s1徐啸徐啸男男2020徐升徐升s2s2辛国年辛国年女女1818辛招弟辛招弟s3s3徐玮徐玮男男1919徐小妹徐小妹s4s4邓一欧邓一欧女女2020邓小欧邓小欧学号学号 姓名姓名性别性别 年龄年龄 曾用名曾用名s4s4邓一欧邓一欧 女女2020邓小欧邓小欧s2s2辛国年辛国年女女1818辛招弟辛招弟s3s3徐玮徐玮男男1919徐小妹徐小妹s1s1徐啸徐啸男男2020徐升徐升 1.1.任意两个元组候选键不能相同(不允许有重复的记录)任意两个元组候选键不能相同(不允许有重复的记录)2.2.行行(记录记录)的顺序可以任意交换的顺序可以任意交换信息管理系 吴保国2.2.基本关系具有六条性质基本关系具有六条性质 3.3.表中列表中列(字段字段)的顺序可以任意交换的顺序可以任意交换学号学号姓名姓名性别性别 年龄年龄 曾用名曾用名s1s1徐啸徐啸男男2020徐升徐升s2s2辛国年辛国年 女女1818辛招弟辛招弟s3s3徐玮徐玮男男1919徐小妹徐小妹s4s4邓一欧邓一欧 女女2020邓小欧邓小欧学号学号姓名姓名曾用名曾用名性别性别年龄年龄S1S1徐啸徐啸徐升徐升男男2020S2S2辛国年辛国年 辛招弟辛招弟女女1818S3S3徐玮徐玮徐小妹徐小妹男男1919S4S4邓一欧邓一欧 邓小欧邓小欧女女2020学号姓名姓名性别年龄姓名姓名s1s1徐啸徐啸男男2020张高升张高升s2s2辛国年辛国年女女1818李招弟李招弟s3s3徐玮徐玮男男1919王小小王小小s4s4邓一欧邓一欧女女2020赵小娟赵小娟此处的属性名不能使用姓此处的属性名不能使用姓名,属性名重复!可改用名,属性名重复!可改用为为“曾用名曾用名”4.4.关系中的属性名关系中的属性名(字段名字段名)必须唯一必须唯一信息管理系 吴保国2.2.基本关系具有六条性质基本关系具有六条性质学号学号姓名姓名性别性别年龄年龄曾用名曾用名s1s1徐啸徐啸男20徐升徐升s2s2辛国年辛国年女18辛招弟辛招弟s3s3徐玮徐玮119徐小妹徐小妹s4s4邓一欧邓一欧21981/2/28邓小欧邓小欧 5/5/属性属性(字段字段)名下的诸属性值名下的诸属性值(同列同列)是同类型数据是同类型数据,来自同一个域,来自同一个域此处的属性值类型不!此处的属性值类型不!6.6.每一个分量都是不可分的数据项每一个分量都是不可分的数据项客户号客户号 客户姓名客户姓名 单位名称单位名称邮编邮编 地址地址 电话电话 客户号客户号 客户姓名客户姓名 单位名称单位名称通信地址通信地址电话电话 邮编邮编 地址地址 非规范化关系非规范化关系规范化关系规范化关系信息管理系 吴保国3.3.关系模式关系模式n关系结构的描述称为关系模式(Relation Schema)。n一个关系模式可以形式化地表示为:R(U,D,DOM,F)其中:lR为关系名lU为组成该关系的属性名集合lD为属性组U中属性所来自的域lDOM为属性向域的映象集合。例如,dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON lF为属性间数据的依赖关系集合。信息管理系 吴保国2.2.关系模式关系模式n关系模式通常可以简记为:R(U)或 R(A1,A2,An)其中:lR为关系名,A1,A2,An为属性名,l其它直接说明为属性的数据类型、长度、取值范围等。n例如,学生S关系的关系模式可表示为:S(SNO,SN,SEX,AGE,DNO)n在具体的RDBMS中,通常使用SQL语言的(DDL)来定义关系模式。每一个被定义的关系模式包括关系名,属性名、类型、长度和值域,关系的主键等内容。n例如定义课程表C的SQL语句:CREATE TABLE C(CNO Char(2)PRIMARY KEY,CN VarChar(20)信息管理系 吴保国4.4.关系数据库模式与关系数据库关系数据库模式与关系数据库n关系数据库模式 l关系数据库模式是对关系数据库结构的描述,由一组关系模式的集合构成。n关系数据库l关系数据库是在一个给定的应用领域中,对应于所有实体及实体之间的联系的一组关系的集合。信息管理系 吴保国2.3 2.3 关系模型的完整性规则关系模型的完整性规则 n2.2.3.13.1 关系的键关系的键n2.2.3.23.2 关系模型的完整性约束关系模型的完整性约束信息管理系 吴保国2.2.3.13.1 关系的键关系的键 n一个关系中记录的识别总是有一个唯一的标识,它是一个字段或者是一组字段(属性),其值在关系的全部记录中自始至终是唯一的,即在每个记录中都是不同的。将这个起标识的一个字段或者一组字段称为键。键总是提供唯一性质的最小的属性列构成。n关系的键分为下面5种:n超键n关系键n候选键n主键n外键信息管理系 吴保国1.1.超键超键 n定义n超键是一个属性或多个属性集合,它唯一地标识一个关系中的记录。n实例nEMP(顾员号,雇员名,性别,联系电话,技术职称)n其中,顾员号就是一个超键,顾员号+雇员名也是一个超键,因为它们的值在关系中只有一条记录与其相同。n事实上,关系中所有的属性组合在一起也是一个超键。信息管理系 吴保国2.2.关系键关系键 n定义1l在关系中能唯一标识记录、不包括多余属性的属性集合称为关系键。(不含多余属性的超键)n定义2l设关系R有属性A1,A2,An,其属性集K=(Ai,Aj,Ak),当且仅当满足下列条件时,K被称为关系键。唯一性:在任一给定时间,关系R的任意两个不同记录,其属性集K的值是不同的(在关系中对于每个记录有唯一值的属性集合);最小性:组成关系键的属性集(Ai,Aj,Ak)中任意一个属性都不能从属性集K中删除掉,否则将破坏唯一性的性质(如果从属性集合中删除了任意一个属性,则剩余的属性将不再拥有唯一的特性)。有效性:组成关系键的属性集中没有任何属性的值是空的。n在最简单情况下,关系键只包括一个属性;在最极端情况下,关系模式中所有属性构成一个关系键,此时称该关系为全键关系。信息管理系 吴保国2.2.关系键关系键 n关系键下面三个性质是在任何关系实例中都必须遵守的:关系键下面三个性质是在任何关系实例中都必须遵守的:n唯一性:在关系中对于每个记录有唯一值的属性集合。唯一性:在关系中对于每个记录有唯一值的属性集合。n没没有有冗冗余余:如如果果从从属属性性集集合合中中删删除除了了任任意意一一个个属属性性,则则剩剩余余的的属属性性将将不不再拥有唯一的特性。再拥有唯一的特性。n有效性:组成关系键的属性集中没有任何属性的值是空的。有效性:组成关系键的属性集中没有任何属性的值是空的。学号课程号 成绩s1s1s2s3C1C2C2C390807080学号姓名 年龄性别院系s1s2s3s4张三李四王五赵六20181920男女女男计算机计算机信息信息计算机计算机信息信息n实例实例nS(S(学号学号,姓名姓名,年龄年龄,性别性别,院系院系),该关系的关系键由学号构成。,该关系的关系键由学号构成。nSC(SC(学学号号,课课程程号号,成成绩绩),该该关关系系的的关关系系键键由由学学号号和和课课程程号号两两个个属属性性构构成成。学学号号,课课程程号号 的的组组合合值值唯唯一一标标识识了了选选课课成成绩绩关关系系SCSC中中的的记记录录。缺缺任任何何一个属性都不行,任何属性的值都不能为空。一个属性都不行,任何属性的值都不能为空。信息管理系 吴保国3.3.候选键、主属性、非主属性候选键、主属性、非主属性n定义l在关系中,当有多个属性或属性组可以作为唯一标识符时,他们就被称为候选键。l关系中的关系键就是候选键。一个关系中可以有多个候选键。n实例lP-USE(项目,项目经理,机器名,机器数量),假设每个项目只有一个项目经理,并且每个项目经理仅管理一个项目。l该关系中具有2个候选键(具有唯一标识符时的属性组有2个):n项目,项目经理 是一个关系键n项目,机器名 是一个关系键n主属性候选键中的诸属性称为主属性。n非主属性不包含在任何候选键中的属性称为非主属性信息管理系 吴保国4.4.主键主键 n定义n主键是一个候选键。它是从候选键中挑选出来用于唯一标识记录的关系键。n实例n关系P-USE(项目,项目经理,机器名,机器数量)的2个候选键:n项目,项目经理 是一个关系键n项目,机器名 是一个关系键n其中:n项目是一个稳定的标识符,而项目经理在项目执行期可以更换,机器名不会变化,因此选择项目,机器名关系键作为关系P-USE的主键。信息管理系 吴保国5.5.外键外键 n定义n如果关系 R的一个或一组属性 X不是 R的关系键,而是另一关系 S的关系键,则该属性或属性组 X称为关系 R的外键FK。n外键与其相符的另一个表的主键起着两个表的连接和参照作用。n实例n学生关系S(学号,姓名,性别)n课程关系C(课程号,课程名)n学生选课成绩SC(学号学号,课程号课程号,成绩)学号姓名性别s1s1s2s2s3s3s4s4张三李四王五赵六男男女男课程号课程号课程名学时数C1C1C2C2C3C3C4C4高等数学数据结构操作系统数据库100708060学号学号课程号成绩s1s1s1s1s2s2s4s4s4s4C1C1C2C2C4C4C4C4C3C39080908570SCSC外键外键外键外键主键主键主键主键信息管理系 吴保国2.2.3.23.2 关系模型的完整性约束关系模型的完整性约束n关系的完整性是对关系的某种约束条件。是指保证数据正确的特性。n数据完整性是一种语义概念,它包括两方面的内容:n与现实世界中应用需求的数据的相容性和正确性;n数据库内数据之间的相容性和正确性。n关系模型的 3种完整性约束n实体完整性约束n参照完整性约束n用户定义完整性约束n其中:前2种完整性约束是关系模型必须满足的约束条件,被称为关系的两个不变性,由关系系统自动支持。信息管理系 吴保国1.实体完整性约束规则n问题的提出l如果表中出现了重复记录,允许吗?如何避免?n实体完整性规则l若 K是基本关系R的主属性(关系键中包括的属性),则主属性 K值不能取空值或部分空值。即:基本关系的所有主属性都不能取空值。n目的l保证关系中的每个记录都是可识别和唯一的。lDBMS利用主键值来标识记录,避免记录重复。信息管理系 吴保国1.实体完整性约束规则SNOSNOSNSNSEXSEXAGEAGEDNODNOS1S1徐啸徐啸男男17172 2S2S2幸国年幸国年男男18186 6S3S3徐玮徐玮女女20201 1S4S4邓一鸥邓一鸥男男21216 6S5S5张激扬张激扬男男19196 6S6S6张辉张辉女女22223 3S7S7王克非王克非男男18186 6邓一鸥邓一鸥男男19196 6S9S9张霞张霞女女18182 2SNOSNOCNOCNOGRADEGRADES1S1C1C18080S1S18585S1S1C6C67575C1C14747S2S2C3C38080S2S2C4C47575不允许不允许不允许不允许不允许不允许n实例:信息管理系 吴保国1.实体完整性约束规则n实体完整性是关系模型必须满足的完整性约束条件,也称作是关系的不变性。nDBMS中,可以用主关键字实现实体完整性。nDBMS中,非主关键字的属性也可以说明为唯一和非空值的。信息管理系 吴保国2.参照完整性约束规则n下面的表中出现了什么问题,允许吗?下面的表中出现了什么问题,允许吗?SNOSNSEXAGEDNOS1徐啸男1702S2幸国年男1801S3徐玮女2001S4邓一鸥男2103S5张激扬男1906S7王克非男1802CNOCNC1数学C2英语C3C+C4JAVACSSCSNOCNO GRADES1S1C1C18080S1S1C2C28585S1S1C6C67575S1S1C4C45656S1S1C5C59090S2S2C6C64747S2S2C3C38080S2S2C4C47575S2S2C5C57070S6S6C1C19595S6S6C2C28080S6S6C3C38787S3S3C1C17575S3S3C2C27070S3S3C3C38585S3S3C4C48686S3S3C5C59090S3S3C6C69999S4S4C1C18383S4S4C2C28585S4S4C3C38383S5S5C2C29999DNOCN01信息学院02外语学院03林学院DEPT如何如何 避免避免?信息管理系 吴保国2.参照完整性约束规则n参照完整性规则l如果关系R2的外键FK与关系R1的主键PK相对应,那么外键FK的每个值必须为:n关系R2中某个记录的主键的值n或者取空值n目的l定义了外键与主键的引用规则,外键的值要根据参照的主键的值进行检查,参照该主键的列值以确定其合法性,保持数据的一致性,不引用不存在的实体;l外键与主键对应可实现两个表的连接。信息管理系 吴保国2.参照完整性约束规则n参照关系与被参照关系n被参照关系,该关系主键被另一个关系的外键所参照n参照关系:该关系的外键需要参照另一个关系的主键学号姓名性别s1s1s2s2s3s3s4s4张三李四王五赵六男男女男课程号课程号课程名学时数C1C1C2C2C3C3C4C4高等数学数据结构操作系统数据库100708060学号学号课程号成绩s1s1s1s1s2s2s4s4s4s4C1C1C2C2C4C4C4C4C3C39080908570SCSC外键外键外键外键主键主键主键主键n实例n学生关系S:被参照关系n课程关系C:被参照关系n学生选课成绩SC:参照关系信息管理系 吴保国3.用户定义完整性 n针对某一具体的实际数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。n例如:n属性的取值范围n数据的输入格式n某属性非空值n属性之间必须满足某种关系nnDBMS提供定义和检验的机制信息管理系 吴保国4.什么时候进行完整性约束的检查n执行插入操作时检查完整性规则n执行插入操作时,需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。n执行删除操作时检查完整性规则n执行删除操作时,一般只需要检查参照完整性约束规则。n执行更新操作时检查完整性规则n执行更新操作时,分别进行上述两种情况。信息管理系 吴保国关系模型的特点l描述的一致性l可直接表示多对多联系l关系必须是规范化的l关系模型是建立在数学概念基础上的,有较强的理论基础信息管理系 吴保国2.2.4 4 关系代数关系代数 n关系代数(Relation algebra)是施加于关系上的一组集合代数运算,每个运算都以一个或多个关系作为运算对象,并生成另外一个关系作为该关系运算的结果。n关系代数是实现关系操作的一种方法,是理解关系操作的基础。n传统的集合运算l并运算l交运算l差运算l广义笛卡尔积n专门的关系运算l选择运算l投影运算l连接运算l除运算n扩展的关系运算信息管理系 吴保国2.2.4 4 关系代数关系代数n关系代数用到的运算符n 集合运算符 (并)、一(差)、(交)、(广义笛卡积)n 专门的关系运算符 选择、(投影)、(连接)、*(自然连接)、(除);n 算术比较符:,;n 逻辑运算符 (AND与)、(OR或)、(NOT非)信息管理系 吴保国2.4.1 传统的集合运算n传统的集合运算是二目运算,包含如下运算:传统的集合运算是二目运算,包含如下运算:n关系并运算关系并运算n关系差运算关系差运算n关系交运算关系交运算n广义笛卡儿积广义笛卡儿积信息管理系 吴保国1.1.关系并运算关系并运算关系关系R R和关系和关系S S的并是属于的并是属于R R或属于或属于S S或同时属于或同时属于R R和和S S的元组组成的集合,的元组组成的集合,记为记为RSRS。(R UNION S)(R UNION S)形式定义如下:形式定义如下:实例:实例:其中:其中:t t是元组变量是元组变量 R R与与S S是同类关系(对应的属性与类型必须相同)是同类关系(对应的属性与类型必须相同)学号学号姓名姓名年龄年龄s1徐啸徐啸17s4邓一欧邓一欧18学号学号姓名姓名年龄年龄s1徐啸徐啸17s2辛国年辛国年22学号学号姓名姓名年龄年龄s1徐啸徐啸17s2辛国年辛国年22s4邓一欧邓一欧18 R RS SR SRS信息管理系 吴保国2.2.关系差运算关系差运算关系关系R R和关系和关系S S的差是由属于的差是由属于R R而不属于而不属于S S的所有记录组成的集合,即在关系的所有记录组成的集合,即在关系R R中删去与中删去与S S关系中相同的记录,组成一个新关系,记为关系中相同的记录,组成一个新关系,记为R-SR-S。形式定义如下:形式定义如下:实例:实例:学号学号姓名姓名年龄年龄s1徐啸徐啸17s4邓一欧邓一欧18学号学号姓名姓名年龄年龄s1徐啸徐啸17s2辛国年辛国年22学号学号姓名姓名年龄年龄s4邓一欧邓一欧21R RS S其中:其中:t t是记录变量是记录变量 R R与与S S是同类关系(对应属性与类型必须相同)是同类关系(对应属性与类型必须相同)RSRS信息管理系 吴保国3.3.关系交运算关系交运算关系关系R R和关系和关系S S的交是由既属于的交是由既属于R R又属于又属于S S的记录组成的集合,即在两个关系的记录组成的集合,即在两个关系R R与与S S中取相同的记录,组成一个新关系,记为中取相同的记录,组成一个新关系,记为RSRS。如果两个关系没有相同如果两个关系没有相同的记录,那么它们的交为空。的记录,那么它们的交为空。R R与与S S的交运算如图的交运算如图2.5(2.5(e)e)所示。所示。(R INTERSECT S)(R INTERSECT S)形式定义如下:形式定义如下:实例:实例:其中:其中:t t是记录变量是记录变量 R R与与S S是同类关系是同类关系(对应属性与类型必须相同对应属性与类型必须相同)学号学号姓名姓名年龄年龄s1s1徐啸徐啸1717s4邓一欧邓一欧18学号学号姓名姓名年龄年龄s1s1徐啸徐啸1717s2辛国年辛国年22学号学号姓名姓名年龄年龄s1徐啸徐啸17R RS SRSRSRS信息管理系 吴保国3.3.广义笛卡尔积运算广义笛卡尔积运算n广义笛卡尔积广义笛卡尔积 设R R和S S是两个关系,如果R R是m m元关系、有k k个元组,S S是n n元关系、有n个元组,则广义笛卡尔积R RS S是一个m m+n n元关系、有k knn个元组。广义笛卡儿积可以记作:元组的连串元组的连串 设R为m元关系,S为n元关系,并且 r=(r1,r2,rm)R s=(s1,s2,sn)S 则 t=(r1,r2,rm,s1,s2,sn)称为元组的连串。这是一个(m+n)元组,前m个分量为 R中的一个m元组,后n个分量为 S中的一个n元组。RS信息管理系 吴保国4.4.广义笛卡尔积广义笛卡尔积A B Ca a 2 2 c ca a 4 4 d db b 4 4 c cA B Ca 4 4 da 6 6 db 4 4 cRSRS实例实例1 1:R.AR.A R.BR.B R.CR.C S.AS.A S.BS.B S.CS.Ca a2 2c ca a4 4d da a2 2c ca a6 6d da a2 2c cb b4 4c ca a4 4d da a4 4d da a4 4d da a6 6d da a4 4d db b4 4c cb b4 4c ca a4 4d db b4 4c ca a6 6d db b4 4c cb b4 4c c信息管理系 吴保国4.4.广义笛卡尔积广义笛卡尔积学号学号姓名姓名年龄年龄s1徐啸徐啸17s4邓一欧邓一欧18学号学号姓名姓名年龄年龄s1徐啸徐啸17s2辛国年辛国年22RSR.R.学号学号R.R.姓名姓名R.R.年龄年龄S.S.学号学号S.S.姓名姓名S.S.年龄年龄s1s1徐啸徐啸1717s1徐啸徐啸17s1s1徐啸徐啸1717s2辛国年辛国年22s4s4邓一欧邓一欧1818s1徐啸徐啸17s4s4邓一欧邓一欧1818s2辛国年辛国年22RS的记录数的记录数 R的记录数的记录数*S的记录数的记录数RS的度的度 R的度的度S的度的度当当结结果果中中出出现现属属性性同同名名时时,以以“关关系系名名.属性属性”表示表示实例实例2 2:信息管理系 吴保国2.2.4.2 4.2 专门的关系运算专门的关系运算n选取运算选取运算n投影运算投影运算n连接运算连接运算n除法运算除法运算信息管理系 吴保国1.1.选取运算选取运算在在指指定定的的关关系系中中,按按给给定定的的条条件件选选取取其其中中的的若若干干个个记记录录,组组成一个新的关系的运算。成一个新的关系的运算。形式定义:形式定义:n其中其中R R是关系名,是关系名,t t是元组,是元组,是选择运算符,是选择运算符,F(t)F(t)是结果为是结果为“真真”的逻辑表达式。的逻辑表达式。n选择运算是从行的角度进行的运算。选取通常称为查询。选择运算是从行的角度进行的运算。选取通常称为查询。SQL SQL 语句表示为:语句表示为:SELECT SELECT FROM FROM 查询所涉及的表查询所涉及的表 WHERE WHERE 信息管理系 吴保国1.1.选取运算选取运算学号学号姓名姓名年龄年龄002Rose22004Mary22R学号学号姓名姓名年龄年龄001John20002Rose22004Mary22实例实例1 1:从关系从关系S中中查询计算机系查询计算机系(CS)CS)的学生基本情况的学生基本情况SNOSNOSNSNAGEAGESEXSEXDEPTDEPTS1S1A A2020M MCSCSS2S2B B2121F FCSCSS3S3C C1919M MMAMAS4S4D D1919F FCICIS5S5E E2020F FMAMAS6S6F F2222M MCSCSSNOSNOSNSNAGEAGESEXSEXDEPTDEPTS1S1A A2020M MCSCSS2S2B B2121F FCSCSS6S6F F2222M MCSCSS实例实例2 2:从关系:从关系R R中中查询年龄大于查询年龄大于2020的的学生基本情况的的学生基本情况 DEPT=CS(S)或或 5=CS(S)年龄年龄20(R)信息管理系 吴保国2.2.投影运算投影运算n对指定的关系选择列产生一个新关系。