关系数据库的基本模型.ppt
《关系数据库的基本模型.ppt》由会员分享,可在线阅读,更多相关《关系数据库的基本模型.ppt(114页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章 关系数据库的基本理论关系数据库的基本理论 关系数据库应用数学方法来处理数据库中的数据。最早将这类方法用于数据处理的是1962年CODASYL发表的“信息代数”之后有1968年David Child在IBM7090机上实现的集合论数据结构,但系统地、严格地提出关系模型的是美国IBM公司的EFCodd。12/23/20221Institute of Computer Science&Technology,HeiLongJiang College of Technology,KongLeio主要内容:关系模型的基本概念 三类完整性条件 关系代数基本运算o重点难点:关系代数基本运算12/2
2、3/20222n3.1 关系模型的基本概念n3.2 关系模型的三类完整性n3.3 关系代数的基本运算n3.4 关系演算n3.5 本章小结12/23/202233.1关系模型的基本概念 数据模型一般包括数据结构、数据操作和数据完整性约束三个部分,数据模型中的数据结构主要描述数据类型、性质以及数据间的联系,数据结构是数据模型的基础;数据模型中的数据操作主要描述在相应数据结构上的操作类型与操作方式;数据模型中的数据完整性约束主要描述数据结构内数据间的语法、语义联系,它们间的制约和依存关系,以及数据动态变化的规则以保证数据的正确、有效与相容。12/23/20224 关系数据库系统是支持关系模型的数据库
3、系统。它由以下三个基本部分组成:o关系数据结构o关系操作o关系中的完整性约束规则12/23/20225 数据模型主要描述两类信息:一是实体;二是实体之间的联系。在层次、网状模型中,实体之间的联系是通过指针来实现的,而在关系模型中,实体之间的联系是通过二维表中公共属性值建立起来的联系来实现的。所以,在建立关系模型时,只要把的所有的实体及其属性用关系框架来表示,同时把实体之间的关系也用关系框架来表示,就可以得到一个关系模型。12/23/20226教师关系TTnoTnameSexAgeProfSalCommDept教师号教师姓名性别年龄职称工资岗位津贴系别课程关系C 授课关系SC CnoCnameC
4、t课程号课程名课时 TnoCno教师号课程号12/23/20227 从以上关系的框架中,可以很容易看出哪两个关系之间有联系。例如:1教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。2而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。3至于元组之间的联系,则与具体的数据有关。只有在公共属性上具有相同属性值的元组之间才有联系。12/23/20228 由上例可以看出,在一个关系中可以存放两类信息:1描述实体本身的信息2描述实体(关系)之间的联系的信息 关系数据库系统是支持关系数据模型的数据库系统,即以关系模型为基础而构建起来的数据库系统。12/23/202293
5、.1.1 关系数据结构 在关系模型中,数据的逻辑结构为满足一定条件的二维表,表具有固定的列数和任意的行数,在数学上称为“关系”。关系模型的数据结构可以描述现实世界的实体以及实体间的各种联系。在关系模型中,可以把现实世界中的实体以及实体间的各种联系均用单一的关系来表示。由于关系的概念来源于数学,关系模型是在集合代数的基础上建立起来的,所以有必要从数学的角度对关系的数据结构及其基本概念做一论述。12/23/202210关系o 域(Domain)o 2.笛卡尔积(Cartesian Product)o 3.关系(Relation)12/23/202211 定义3.1 域是一组具有相同数据类型的值的集
6、合。例如,自然数、整数、实数、0,5、大于0且小于50的自然数、长度小于20个字节的字符串集合等,都可以是域。1域(Domain)12/23/2022122、笛卡尔积(Cartesian Product)给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n 其中每一个元素()叫作一个元组(n-tuple)或简称元组(Tuple),元素中的每一个值 叫作一个分量(Component)。12/23/202213 这些域中可以存在相同的域。例如 和 可以是相同的域。若 为有限集,其基数(Cardinal number)
7、为 ,则 的基数 为:12/23/202214 笛卡尔积可以表示为一个二维表。表中的每行对应一个元组,表中的每一列的值来自一个域。例如给出如下三个域:=学生集合=李琳、王明、林丽 =课程集合=英语、高数、政治 =成绩集合=合格、不合格12/23/202215则 、的笛卡尔积为:(李琳,英语,合格),(李琳,英语,不合格),(李琳,高数,合格),(李琳,高数,不合格),(李琳,政治,合格),(李琳,政治,不合格),(王明,英语,合格),(王明,英语,不合格),(王明,高数,合格),(王明,高数,不合格),(王明,政治,合格),(王明,政治,不合格),(林丽,英语,合格),(林丽,英语,不合格),
8、(林丽,高数,合格),(林丽,高数,不合格),(林丽,政治,合格),(林丽,政治,不合格)的基数为 12/23/202216 一共有十八个,每个元素为一个元组,每个元组分别包含学生姓名、课程名称、成绩三个分量。这些元组构成了二维表的形式。如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。由于计算机存储系统的限制,一般不去处理无限关系,而只考虑有限关系。注意:笛卡儿积不满足交换率,即笛卡儿积的元组有序。12/23/2022173关系(Relation)定义3.3 的子集叫做在域 上的关系,可记做:,R为关系名,n是关系的目或度(degree)。关系中
9、的每个元素是关系中的元组,通常用t表示。当n=1时,称该关系为单元关系(Unary relation)。当n=2时,称该关系为二元关系(Binary relation)。12/23/202218 在关系模型中,关系可进一步定义为:定义在域D1,D2,Dn(不要求完全相异)上的关系由关系头(Heading)和关系体(Body)组成。关系头:由属性名A1,A2,An的集合组成,每个属性Ai正好对应一个域Di(i=1,2,n),关系头,也称关系框架,相对固定,是关系的数据结构的描述。关系体:是指关系结构中的内容或者数据,并非固定不变,它随元组的建立、删除或修改而变化。12/23/202219 在关系
10、模型中,对关系作了种种限制,关系有以下性质:1列是同质的(Homogeneous)即每一列中的分量是同一数据类型,来自同一个域,为元组的一个属性。2不同列的数据可以来自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。3列的顺序无所谓,即列的次序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。12/23/202220例如,有如下表3-2中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。表3-2 职业关系姓名职业兼职张伟教师辅导员王丽工人教师刘英教师辅导员12/23/202221例如:关系T1作如下交换时,无任何影响,如下表所示。关系
11、T1 交换后的关系T1 姓名性别李伟男王月女刘洋男性别姓名男李伟女王月男刘洋而做不交换属性名,只交换属性列中的值时,则得到的关系:姓名性别男李伟女王月男刘洋12/23/202222 4任意两个元组的候选键不能相同。也就是表中的任意两行不能相同,即一个关系不能有相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。5行的顺序无所谓,即行的次序可以任意交换。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。6每个分量必须取原子值,即一个分量都必须是
12、不可分的数据项。即是一个确定的值,而不是值的集合。即不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。12/23/202223例如,在表3-4中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表3-5所示。姓名籍贯省市/县王洪黑龙江齐齐哈尔李利吉林长春表3-4不规范的关系 表3-5 规范后的关系姓名省市/县王洪黑龙江齐齐哈尔李利吉林长春12/23/202224 定义 3.4若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选键(Candidate key)。如果一个关系中有多个候选键,可以从中选择一个
13、作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键(Primary Key),或简称为主键、关系键、关键字。每一个关系都有并且只有一个主键。包含在候选键中的各属性称为主属性(Prime attribute)。不包含在任何候选键中的属性称为非主属性(No primary attribute)或非键属性(Non-key attribute)。在最极端的情况下,关系模式的所有属性是这个关系模式的候选键,称为全键(All-key)。12/23/202225 下面是一个全键的例子:假设有教师授课关系TCS,分别有三个属性教师(T)、课程(C)和学生(S)。一个教师可以讲授多门课程,一门课程可
14、以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选键,称为全键,T,C,S都是主属性。12/23/2022263.1.2 关系模式o在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,一个关系应从以下几个方面描述。o关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它有那些属性构成,这些属性来自哪些域,以及属性与域之间
15、的映像关系。o其次,一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中的属性的个数)。凡是使n目谓词为真的笛卡尔积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。12/23/202227 定义3.5 关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为 R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。属性间的数据依赖将在第五章讨论,本章中关系模式仅涉及关系名、各属性名,关系模式通常可以简记为:R(U)
16、或 R(A1,A2,An)其中R为关系名,A1,A2,An为属性名。12/23/202228 在关系模型中,实体以及实体间的联系都是用关系来表示的。在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库的型也称为关系数据库模式,是对关系数据的描述。关系数据库模式包括:1若干域的定义。2在这些域上定义的若干关系模式。关系数据库的值这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。12/23/202229关系操作o关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。前面讲解了关系数据结构,这一节讲解关系操作的一般概念和分类。o关系模型给出了
17、关系操作的能力的说明,但不对RDBMS语言给出具体的语法要求,也就是说不同的RDBMS可以定义和开发不同的语言来实现这些操作。12/23/202230 1基本的关系操作 关系数据库中的核心内容是关系即二维表。而对这样一张表的使用主要包括按照某些条件获取相应行、列的内容,或者通过表之间的联系获取两张表或多张表相应的行、列内容。概括起来关系操作包括选择、投影、连接、除操作。关系操作的操作对象是关系,操作结果亦为关系。关系模型中常用的关系操作包括查询(Query)操作和更新操作(包括插入(Insert)、删除(Delete)、修改(Update)两大部分。12/23/202231 关系操作分为传统的
18、集合运算和专门的关系运算两部分。传统的集合运算包括并(Union)、差(Except)、交(Intersection)、笛卡尔积。专门的关系运算包括选择(Select)、投影(Project)、连接(Join)、除(Divide)。关系模式的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合(set-at-a-time)的方式。相应地,非关系数据模型的数据操作方式则为一次一记录(record-at-a-time)的方式。12/23/202232 2关系数据语言的分类 早期的关系操作能力通常用代数方式或逻辑方式来描述,分别称为关系代数和关系演算。关系代数是用集合论中的关
19、系运算来表达查询要求的方式。关系演算是以数理逻辑中的谓词演算来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。若在关系演算中,谓词变元的基本对象是元组变量,则称之为元组关系演算;若谓词变元的基本对象是域变量,则称之为域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。12/23/202233关系操作有三种不同的描述方式:关系代数、关系演算和结构化查询语言SQL。关系数据语言关系代数关系演算具有关系代数和关系演算双重特点的语言元组关系演算域关系演算例如 ISBL例如ALPHA,QUEL例如 QBE例如 SQL分类图
20、如下表示。12/23/202234o另外还有一种介于关系代数和关系演算之间的语言SQL(Structured Query Language)。oSQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL、DML和DCL于一体的关系数语言。它充分体现了关系数据语言的特点和优点,是关系数据的标准语言。12/23/2022353.2关系模型的三类完整性 o 为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件。数据的完整性约束是指在给定的数据模型中,数据及其联系所遵守的一组通用的完整性规则,以确保数据库中数据的一致性和正确性。12/23/
21、202236关系的三类完整性约束o 关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件被称作是关系的两个不变性,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。12/23/202237实体完整性(Entity Integrity)规则3.1 实体完整性规则 若属性(指一个或一组属性)是基本关系的主属性(或主键中的属性),则不能取空值。所谓空值就是“不知道”或“不存在”的值。这个规则很容易理解,因为主属性能唯一标识关系中的元组,若取空值,便失去唯一元组功能。例如关系模
22、式中的学生(学号,姓名,性别,年龄,籍贯,专业名称),其中学号是主键,而主键对应的属性只有学号,所以学号也是主属性。根据实体完整性约束规则,学号不能取空值。在学生选课关系模式中,选修(学号,课程编码,成绩)中,属性组“学号”和“课程编码”为主键,同时也是主属性,所以这两个属性均不能取空值。12/23/202238 对于实体完整性规则说明如下:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。例如每一个学生都是独立的个体,是不一样的。(3)相应地,关系模型中以主键作为唯一性标
23、识。(4)主键中的属性即主属性不能取空值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。注意:实体完整性规则规定基本关系的所有主键的各属性都不能取空值,而不仅是主键整体不能取空值。12/23/2022393.2.3 参照完整性(Referential Integrity)现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系之间的引用。【例3-1】学生实体和专业实体可以用下面的关系来表示,其中主键用下划线标识:学生(学号,姓名,性别,专业号,年龄)专业(专业号,
24、专业名)这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主键“专业号”。显然,学生关系中的“专业号”值必须是确实存在的专业的号,即专业关系中有该专业的纪录。也就是说学生关系中的某个属性的取值需要参照专业关系的属性取值。12/23/202240 学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)这三个关系之间也存在着属性的引用,即选修关系引用了学生关系的主键“学号”和课程关系的主键“课程号”。同样,选修关系中的“学号”值必须是确实存在的学生的学号,即学生关系中有该学生的记录;选修关系中的“课程号”值也必须是确定存在的课程的号,即课程关系中有该课
25、程的记录。换句话说,选修关系中某些属性的取值需要参照其他关系的属性取值。不仅两个或两个以上关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系。【例3-】学生、课程、学生与课程之间的多对多联系 可以如下3个关系表示:12/23/202241 【例3-3】在学生(学号,姓名,性别,专业号,年龄,班长)关系中,“学号”属性是主键,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系“学号”属性,即“班长”必须是确定存在的学生的学号。这三个例子说明关系与关系之间存在着相互引用,相互约束的情况。下面先引入外键的概念,然后给出表达关系之间相互引用约束的参照完整性的定义。12/23/2022
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 基本 模型
限制150内