第2章 关系数据库《数据库原理及应用教程(MySQL)》主要内容2.1 关系的形式化定义及性质1. 关系的形式化定义(1)域(Domain )定义2.1 域是一组具有相同数据类型的值的集合,又称为值域(用D表示)。例如,整数、实数和字符串的集合都是域。域中所包含的值的 个数称为域的基数(用m表示),例如,以1.4.3节中的表1-1所示的教师关系 t 为例D1={刘杨,石丽,顾伟,赵礼,赵希希,张刚 },m1=6;D2={男,女},m2=2;D3={26,30,32,36,40,50},m3=6。其中,D1、D2、D3 分别表示 教师关系中的姓名域、性别域和年龄域的集合。2.1 关系的形式化定义及性质1. 关系的形式化定义(2)笛卡尔积(Cartesian Product)定义2.2 给定一组域D1,D2,…,Dn(它们包含的元素可以完全不同,也可以部分或全部相同),其笛卡尔积为: D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n} 每一 个元素(d1,d2,…,dn)中的每一个值di叫做一个分量(Component),分量来自相应的域(di∈Di)每一个元素(d1, d2,…,dn)叫做一个n元组(n-Tuple),简称元组(Tuple)。但元组是有序的,相同分量di的不同排序所构成的元组不同。 如,以下三个元组是不同的,(1,2,3)≠(2,3,1)≠(1,3,2)2.1 关系的形式化定义及性质1. 关系的形式化定义(2 )笛卡尔积(Cartesian Product)若Di(i=1,2,…,n)为有限集,Di中的集合元素个数称为Di的基数,用mi( i=1,2,…,n)表示,则笛卡尔积D1×D2×…×Dn的基数M(即元组(d1,d2,…,dn)的个数)为所有域的基数的累乘之积例 如,教师关系中的姓名域D1和性别域D2的笛卡尔积为:D1×D2={(刘杨,男),(刘杨,女),(石丽,男),(石丽,女),(顾伟, 男),(顾伟,女),(赵礼,男),(赵礼,女),(赵希希,男),(赵希希,女),(张刚,男),(张刚,女)}其中,刘杨、石丽、顾伟 、赵礼、赵希希、张刚、男、女都是分量,(刘杨,男),(刘杨,女)等是元组,D1×D2的基数M=m1×m2=6×2=12,即集合中元 组的个数为12。2.1 关系的形式化定义及性质1. 关系的形式化定义(2)笛卡尔积(Cartesian Product)笛卡尔积 可用二维表的形式表示,例如,笛卡尔积D1×D2的二维表形式为2.1 关系的形式化定义及性质1. 关系的形式化定义(3)关系(Re lation)定义2.3 笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…,Dn上的n元关系(Relation) ,可用R(D1,D2,…,Dn)表示。其中,R表示关系的名字,n是关系的目或度(Degree)。例如,笛卡尔积D1×D2的某个子集 可以构成如下所示的教师关系T1属性属性的名字唯一 元组域2.1 关系的形式化定义及性质1. 关系的形式化定义(3)关系(Rela tion)关系的几点说明:(1)在关系R中,当n=1时,称为单元关系。当n=2时,称为二元关系,以此类推。(2)关系中的元组通常用 t表示,关系中元组个数是关系的基数。(3)关系中的不同域(列)的取值可以相同,为了加以区别,必须对每个域(列)起一个名字,称为属性 (Attribute),n元关系必有n个属性,属性的名字唯一;属性的取值范围称为值域,等价于对应域Di(i=1,2,…,n)的取值 范围。具有相同关系框架的关系称为同类关系。(4)在数学上,关系是笛卡尔积的任意子集,但在实际应用中,关系是笛卡尔积中所取的有意义的 子集。2.1 关系的形式化定义及性质1. 关系的形式化定义(3)关系(Relation)在关系模型中,关系可进一步定义为: 关系头(Heading)+关系体(Body) 由属性名的集合组成关系结构中的内容或者数据 不变可变定义2.4 定义在域D1,D 2,…,Dn(不要求完全相异)上的关系由关系头(Heading)和关系体(Body)组成。2.1 关系的形式化定义及性质2. 关 系的性质列是同质的,即每一列中的分量必须来自同一个域,必须是同一类型的数据。不同的属性可来自同一个域,但不同的属性必须有不同的名字 。例如,假设某关系中的两个属性“职业”和“兼职”,它们可以来自同一个域{教师,工人,辅导员}。列的顺序可以任意交换。但交换时,应连 同属性名一起交换,否则将得到不同的关系。关系中元组的顺序(即行序)可任意,在一个关系中可以任意交换两行的次序。因为关系是以元组为元 素的集合,而集合中的元素是无序的,所以作为集合元素的元组也是无序的。关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而 关系是元组的集合,所以作为集合元素的元组应该是唯一的。2.1 关系的形式化定义及性质2. 关系的性质关系中每一分量必须是不可分的 数据项,也就是说,不能出现“表中有表”的现象。满足此条件的关系称为规范化关系,否则称为非规范化关系。例如,以下左表是非规范化关系, 可以把其中的属性“籍贯” 分成两个新的属性,即“省(区市)” 、“市/县” ,将其规范化,如右表所示。非规范化的关系规范化的关系主 要内容2.2 关系模式与关系数据库模式1. 关系模式定义2.5 关系的描述称为关系模式(Relation Schema)。它可 以形式化地表示为:R(U,D,DOM,F)关系模式通常简记为:R(U)或R(A1,A2,…,An)R--关系名 U--属性名集合 D--属性所来自的域 DOM--属性向域的映像集合 F--属性间数据的依赖关系集合属性名 2.2 关系模式与关系数据库模式1. 关系模式关系模式关系关系头关系体静态、稳定,固定不变随数据更新不断变化 2.2 关系模式与关系数据库模式1. 关系模式例如,在第 1章的表1-1~表1~5所示的教学数据库teaching中,共有五个关系,其关系模式可分别表示为:教师(教师号,姓名,性别,年龄, 职称,工资,专业,院系)学生(学号,姓名,性别,年龄,专业,院系)课程(课程号,课程名,课时)选课(学号,课程号,成绩)授课(教师 号,课程号)2.2 关系模式与关系数据库模式1. 关系模式对于上述每个关系模式,又有其相应的实例例如,在第1章的表1-1中,与教 师关系模式对应的数据库中的实例如下表所示。2.2 关系模式与关系数据库模式2. 关系数据库模式关系数据库模式关系数据库型值静态、 稳定,固定不变随数据更新不断变化 主要内容2.3 关系的码和关系的完整性1. 候选码和主码(1)候选码定义2.6 设关系R有属 性A1,A2,…,An,其属性集K=(Ai,Aj,…,Ak),当且仅当满足下列条件时,K被称为候选码。唯一性(Uniqueness ),关系R的任意两个不同元组,其属性集K的值是不同的。最小性(Minimum),组成关系键的属性集(Ai,Aj,…,Ak)中,任一 属性都不能从属性集K中删掉,否则将破坏唯一性的性质。“课程关系”中的课程号能唯一标识每一门课程,则属性“课程号”是课程关系的候选码 “授课关系”中,只有属性的组合“教师号+课程号”才能唯一地区分每一条授课记录,则属性集“教师号+课程号”是授课关系的候选码“选课关 系”中“学号+课程号”的组合是唯一的,同时,“学号+课程号”满足最小性,从中去掉任一属性,都无法唯一标识选课记录2.3 关系的码 和关系的完整性1. 候选码和主码(2)主码如果一个关系中有多个候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的 候选码称为主码主码也称为主关系键、主键、关系键、关键字等,后续章节中,统一称为主码例如,假设在学生关系中增加了一个属性“身份证号” ,则“学号”和“身份证号”都可作为学生关系的候选码。如果选定“学号”作为数据操作的依据,则“学号”为主码。如果选定“身份证号”作为 数据操作的依据,则“身份证号”为主码。主码是关系模型中的一个重要概念,每个关系有且只有一个主码,选定以后,不能随意改变。2.3 关系的码和关系的完整性1. 候选码和主码(3)主属性和非主属性主属性(Prime Attribute)是指包含在主码中的各个属性非 主属性(Non-Prime Attribute)是指不包含在任何候选码中的属性,也称为非码属性在最简单的情况下,一个候选码只包含一 个属性,如学生关系中的“学号”,教师关系中的“教师号”在最极端的情况下,例如,在第1章的表1-5所示的授课关系中,所有属性的组合, 即“教师号+课程号”是关系的候选码,这时称为全码(All-key)。2.3 关系的码和关系的完整性2. 外码定义2.7 如果关 系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码(Foreign key)或外 部关系键(在后续章节中统一称为外码),并称关系R2为参照关系(Referencing Relation),关系R1为被参照关系(R eferenced Relation)。关系R1关系R2属性X属性Y…属性X属性Z…主码 主码 外码或外部关系键参照关系 被参照关 系 被参照关系的主码和参照关系的外码必须定义在同一个域上 2.3 关系的码和关系的完整性3. 关系的完整性完整性约束 实体完整性 参照完整性 用户自定义完整性 必须满足体现具体领域中的语义约束 2.3 关系的码和关系的完整性3. 关系的完整性(1)实体完整 性实体完整性是指主码的值不能为空或部分为空课程关系中的主码“课程号”不能为空授课关系中的主码“教师号+课程号”不能部分为空,即“教 师号”和“课程号”两个字段的取值都不能为空。2.3 关系的码和关系的完整性3. 关系的完整性(2)参照完整性如果关系的外码X与关 系R1的主码相符,则R2 中X的每个值或者等于R1中主码的某一个值或者取空值表示未分配院系2.3 关系的码和关系的完整性3. 关系的完整性(3)用户自定义完整性用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求属性值根据实际需要,要具备一些约束条件。如规定选课关系中成绩属性的取值范围在0和100之间;某些数据的输入格式要有一些限制等。关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。 |
|