第二讲 关系模型
- 格式:pdf
- 大小:660.79 KB
- 文档页数:55
第二讲关系模型第二讲关系模型主要内容¾关系模型的数据结构¾关系的定义与性质¾关系数据库的基本概念¾关系代数¾关系演算第二讲关系模型关系模型的数据结构关系数据结构非常简单,在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系来表示。
关系模型的本质是用二维表来表示实体与实体之间联系。
每个关系有一个关系模式,由一个关系名和其所有属性名构成,如:R(A1,A2,…,An),称为关系的内涵。
具体关系是关系模式的值和实例。
第二讲关系模型关系的形式化定义•关系的非形式化定义:在关系模型中,数据是以二维表的形式存在的,该二维表称为关系。
z关系理论以集合代数理论为基础,可以用集合代数给出关系的形式化定义。
第二讲关系模型关系的形式化定义基础•域:一组具有相同数据类型的值的集合,又称为值域(用D表示)。
域中包含的值的个数称为域的基数。
关系中用域表示属性的取值范围。
例如:D1={李力,王平,刘伟} m1=3D2={男,女} m2=2D3={47,28,30} m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。
第二讲关系模型关系的形式化定义基础笛卡尔积(Cartesian Product)•给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。
D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。
•笛卡尔积也是一个集合。
z分量:元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)z元组:每一个元素(d1,d2,d3,…,dn)叫做一个n 元组(n-tuple),简称元组(Tuple)。
但元组不是di的集合,元组的每个分量(di)是按序排列的。
第二讲关系模型第二讲关系模型z 基数:若Di (i=1,2,……n )为有限集,Di 中的集合元素个数称为Di 的基数,用mi (i=1,2,……n )表示,则笛卡尔积D1×D2×……×Dn 的基数M (即元素(d1,d2,……dn )的个数)为所有域的基数的累乘之积,即––M= ∏=ni im 1关系的形式化定义基础关系的形式化定义基础笛卡尔积可用二维表的形式表示。
关系模型的概念和定义关系模型是数据库系统的基础,它采用二维表格的形式来表示和存储数据。
在关系模型中,数据被组织成一系列的关系,每个关系由一组属性、键、域和关系模式组成。
下面将详细介绍这些概念的定义。
1.关系关系是关系模型中的基本单元,它是一个二维表格,由行和列组成。
每一行表示一个记录,每一列表示一个属性。
在关系中,每个属性都有一个名称和相应的数据类型。
例如,一个学生的关系可能包括学号、姓名、性别、年龄等属性。
2.属性属性是关系中的列,它定义了表格中的每个列的名称和数据类型。
每个属性都有一个唯一的名称和一个对应的数据类型,例如整数、字符串、日期等。
属性用于描述表格中每个记录的具体信息。
3.键键是关系中的一个或多个属性的组合,用于唯一标识每个记录。
键的值在表中必须是唯一的,否则会导致数据冲突。
常见的键包括主键和外键。
主键是表中每个记录的唯一标识符,而外键则是引用其他表的主键。
4.域域是属性的取值范围,它定义了属性可能的所有值。
域可以是离散的或连续的,离散域是一组互斥的可能值,连续域则是一个数值范围。
域可以用于约束数据的输入和保证数据的完整性。
5.关系模式关系模式是关系的结构,它由属性、键和域组成。
关系模式定义了关系的结构,包括属性的名称、数据类型和约束条件等。
关系模式可以用来描述和存储大量的数据。
6.关系代数关系代数是用于操作关系的数学模型,它包括各种运算符和操作符,例如选择、投影、连接、并、交、差等。
关系代数可以用来对关系进行各种操作和计算,例如查询、更新、聚合等。
7.视图视图是关系模型中的一个虚拟表,它是基于一个或多个关系的查询结果生成的。
视图并不实际存储数据,而是通过查询定义生成结果集。
视图可以用来隐藏底层数据的细节、简化复杂查询和提供安全控制等。
8.外键外键是引用其他表的主键的属性,它用于建立两个表之间的关联关系。
外键约束确保引用的主键值必须是存在的,从而保证数据的一致性和完整性。
外键在数据库中起着重要的关联作用,可以有效地将相关的数据联系起来。
第二讲关系模型第二讲关系模型主要内容¾关系模型的数据结构¾关系的定义与性质¾关系数据库的基本概念¾关系代数¾关系演算第二讲关系模型关系模型的数据结构关系数据结构非常简单,在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系来表示。
关系模型的本质是用二维表来表示实体与实体之间联系。
每个关系有一个关系模式,由一个关系名和其所有属性名构成,如:R(A1,A2,…,An),称为关系的内涵。
具体关系是关系模式的值和实例。
第二讲关系模型关系的形式化定义•关系的非形式化定义:在关系模型中,数据是以二维表的形式存在的,该二维表称为关系。
z关系理论以集合代数理论为基础,可以用集合代数给出关系的形式化定义。
第二讲关系模型关系的形式化定义基础•域:一组具有相同数据类型的值的集合,又称为值域(用D表示)。
域中包含的值的个数称为域的基数。
关系中用域表示属性的取值范围。
例如:D1={李力,王平,刘伟} m1=3D2={男,女} m2=2D3={47,28,30} m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。
第二讲关系模型关系的形式化定义基础笛卡尔积(Cartesian Product)•给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。
D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。
•笛卡尔积也是一个集合。
z分量:元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)z元组:每一个元素(d1,d2,d3,…,dn)叫做一个n 元组(n-tuple),简称元组(Tuple)。
但元组不是di的集合,元组的每个分量(di)是按序排列的。
第二讲关系模型第二讲关系模型z 基数:若Di (i=1,2,……n )为有限集,Di 中的集合元素个数称为Di 的基数,用mi (i=1,2,……n )表示,则笛卡尔积D1×D2×……×Dn 的基数M (即元素(d1,d2,……dn )的个数)为所有域的基数的累乘之积,即––M= ∏=ni im 1关系的形式化定义基础关系的形式化定义基础笛卡尔积可用二维表的形式表示。
笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2第二讲关系模型关系的性质•关系是一个属性数目相同的元组的集合。
•在关系模型中,对关系作了下列规范性限制:(1)关系中不允许出现相同的元组;(2)关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序;(3)关系中属性的顺序是无关紧要的,即列的顺序可以任意交换;(4)同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。
(5)关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域;(6)关系中每一分量必须是不可分的数据项。
第二讲关系模型关系的键候选键与关系键•能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选键(Candidate Key),也称候选关键字或候选码如:“学生关系”中的学号能唯一标识每一个学生,是学生关系的候选键。
在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。
第二讲关系模型关系的键候选键的形式化定义:•设关系R有属性A1,A2,……An,其属性集K=(Ai,Aj,……Ak),当且仅当满足下列条件时,K被称为候选键1. 唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。
2.最小性(Minimally):组成关系键的属性集(Ai,Aj,……Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质第二讲关系模型关系的键•如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键(Primary Key),或简称为主键、主码、关系键、关键字。
每个关系必定有且仅有一个主关系键,因为关系的元组无重复,至少关系的所有属性的组合可作为主关系键,通常用较小的属性组合作为主关系键。
第二讲关系模型关系的键•主属性(Prime Attribute):包含在主码中的的各属性称为主属性。
•非码属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非码属性。
在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。
在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。
第二讲关系模型关系的键外部关系键•如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码(Foreign key)。
并称关系R2为参照关系(referencing relation),关系R1为被参照关系(referenced relation)。
由外部关系键的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。
第二讲关系模型关系模型的完整性•为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:–实体完整性–参照完整性–用户定义的完整性第二讲关系模型关系模型的完整性–例如,学生关系中的主关系键“学号”不能为空;选课关系中的主关系键“学号+课程号”不能部分为空,即“学号”和“课程号”两个属性都不能为空。
–学生关系中某个学生(如s1或s2)“系别”的取值,必须在参照的系别关系中主关系键“系别”的值中能够找到,否则表示把该学生分配到一个不存在的部门中,显然不符合语义。
第二讲关系模型第二讲关系模型关系(Relation )•笛卡尔积D1×D2×…×Dn 的任一子集称为定义在域D1,D2,…Dn 上的n 元关系(Relation ),可用R (D1,D2……Dn )表示。
R 为关系名,n 称为关系的目或度(Degree )。
–当n=1时,称为单元关系。
–当n=2时,称为二元关系。
–…–当n=n 时,称为n 元关系。
关系的形式化定义关系的形式化定义如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。
关系是一个二维表(1)表的框架由域Di(i=1,2,……n)构成;(2)表的任意一行对应一个元组;(3)表的每一列来自同一域;(4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,…,n)称为值域(5)具有相同关系框架的关系成为同类关系第二讲关系模型第二讲关系模型在实际应用中关系是笛卡尔积中所取的有意义的子集。
在关系模型中,关系可进一步定义为:定义在域D1,D2,……Dn (不要求完全相异)上的关系由关系头(Heading )和关系体(Body )组成。
关系头:由属性名A1,A2,…,An 的集合组成,每个属性Ai 正好对应一个域Di (i=1,2,…,n ),关系头,也称关系框架,相对固定,是关系的数据结构的描述。
关系体:是指关系结构中的内容或者数据,并非固定不变,它随元组的建立、删除或修改而变化。
关系的形式化定义关系数据库模式与关系数据库•一个关系的属性名的集合R(A1,A2,……An)叫做关系模式。
其中:–R为关系名,A1,A2,…,An为属性名(i=1,2,……n)。
一组关系模式的集合叫做关系数据库模式。
第二讲关系模型关系数据库模式与关系数据库•关系数据库模式是对关系数据库结构的描述,即关系头,可以看作是关系的型。
•与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的实例,即关系体,可以看作是关系的值。
第二讲关系模型关系代数•关系模型与其他模型相比,最有特色的是它的数据库语言。
关系数据库的核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示。
按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。
第二讲关系模型关系代数•关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数。
关系代数的运算对象是关系,运算结果也是关系,关系代数用到的运算符主要包括四类:集合运算符;专门的关系运算符;算术比较运算符;逻辑运算符第二讲关系模型•传统的集合运算–并(Union)–交(Intersection)–差(Difference)–广义笛卡尔积(Extended Cartesian Product)•专门的关系运算–选择(Select)–投影(Project)–连接(Join)–除(Divide)•有关的数据操作–查询(Query)–插入(Insert)–删除(Delete)–修改(Update)关系代数的运算分类第二讲关系模型关系代数•对两个关系的集合运算传统的集合运算是二目运算,是在两个关系中进行的。
•给定两个关系R、S,若满足:(1)具有相同的度n;(2)R中第i个属性和S中第i个属性必须来自同一个域。
则说关系R、S是相容的。
除笛卡尔积外,要求参加运算的关系必须满足上述的相容性定义。
第二讲关系模型传统的集合运算•集合的并运算•集合的交运算•集合的差运算•集合的广义笛卡尔积运算第二讲关系模型集合的并、交、差运算示意第二讲关系模型集合的广义笛卡尔积运算设R和S是两个关系,如果R是m元关系、有k个元组,S是n元关系、有l个元组,则广义笛卡尔积R×S是一个m+n元关系、有k×l个元组。
广义笛卡儿积可以记作:R×S={tr⌒ts| tr∈R,∧ts∈S}第二讲关系模型专门的关系运算•选择运算(Select)•投影运算(Project)•连接运算(Join)•除运算(Division)第二讲关系模型选择运算选择运算是从指定的关系中选择某些元组形成一个新的关系,被选择的元组是用满足某个逻辑条件来指定的。
选择运算表示为:σF(R)={t|t∈R∧F(t)为真}其中R是关系名,σ是选择运算符,F是逻辑表达式。
第二讲关系模型选择运算举例:订购单关系从订购单关系中选择职工 号为“E3”的元组构成新的关系σ职工号=‘E3’(订购单)第二讲 关系模型投影运算投影运算对指定的关系进行投影操 作,根据该关系分两步产生一个新关 系:1)选择指定的属性,形成一个可能含 有重复行的表格;2)删除重复行,形成新的关系。