第3章 关系数据模型精选PPT.ppt
《第3章 关系数据模型精选PPT.ppt》由会员分享,可在线阅读,更多相关《第3章 关系数据模型精选PPT.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 关系数据模型第1页,本讲稿共52页3.1 3.1 关系模型的基本概念关系模型的基本概念3.1.1 3.1.1 关系的通俗解释关系的通俗解释 在关系模型中,信息被组织成若干张二维表的结在关系模型中,信息被组织成若干张二维表的结构,每一张二维表称为一个关系构,每一张二维表称为一个关系(relation)(relation)或表或表(table)(table),每个表中的信息只用来描述客观世界中的一,每个表中的信息只用来描述客观世界中的一件事情。例如,在学校中,为了表达学生与专业的件事情。例如,在学校中,为了表达学生与专业的“所所属属”关系,学生与课程的关系,学生与课程的“选修选修”关系,教
2、师与课程的关系,教师与课程的“任教任教”关系,可以制成如下表格:关系,可以制成如下表格:表表3.1 3.1 学生选课登记表学生选课登记表第2页,本讲稿共52页 下面结合该表介绍关系模型中的基本概念。下面结合该表介绍关系模型中的基本概念。1 1表表(Table)(Table),也称关系,由表名、列名及若干,也称关系,由表名、列名及若干行组成。表的结构或框架有时也称关系模式,如表行组成。表的结构或框架有时也称关系模式,如表3.l3.l的关系模式为:学生选课登记表的关系模式为:学生选课登记表(学号,姓名,专业,学号,姓名,专业,选修课程,任课教师选修课程,任课教师)。2 2列列(Field)(Fie
3、ld),也称字段或属性。表中的每个列都,也称字段或属性。表中的每个列都包含同一类的信息。表中列的顺序与要表达的信息无必包含同一类的信息。表中列的顺序与要表达的信息无必要的联系,因此列是无序的。要的联系,因此列是无序的。3 3行行(Row)(Row),也称元组,也称元组(Tuple)(Tuple)。表中每个行由若。表中每个行由若干个字段值组成,用来描述一个对象的信息。每个字段干个字段值组成,用来描述一个对象的信息。每个字段值描述该对象的某种性质或属性。值描述该对象的某种性质或属性。行的次序也是不重要行的次序也是不重要的,一般可以互换,但在一张表中,一般不能出现完全的,一般可以互换,但在一张表中,
4、一般不能出现完全相同的两个行。相同的两个行。第3页,本讲稿共52页 4 4键码键码(Key)(Key),也称关键字。对表中的某个属性或属性组,也称关键字。对表中的某个属性或属性组,若它们的值唯一地标识一个元组,则它就是键码。如表若它们的值唯一地标识一个元组,则它就是键码。如表3.l3.l中,属中,属性组性组(学号,选修课程学号,选修课程)就是键码,它可决定整个元组的性质。换就是键码,它可决定整个元组的性质。换言之,如果有两个元组它们的学号和选修课程字段的值完全相同,言之,如果有两个元组它们的学号和选修课程字段的值完全相同,那么,它们的姓名、专业和任课教师字段的值肯定相同,即它们那么,它们的姓名
5、、专业和任课教师字段的值肯定相同,即它们只能是一个元组。只能是一个元组。5 5值域值域(Domain)(Domain),属性的取值范围。在表中每个列都,属性的取值范围。在表中每个列都以某个值域为基础从某个域中取得数据。例如,学号的值域以某个值域为基础从某个域中取得数据。例如,学号的值域是六位整数等,在关系模型中允许多个列从同一值域中取值。是六位整数等,在关系模型中允许多个列从同一值域中取值。6 6表名和列名的命名规定:表名在整个数据库中必须唯一;列表名和列名的命名规定:表名在整个数据库中必须唯一;列名在一个表中必须唯一,但在不同的表中可以出现相同的名字;表名名在一个表中必须唯一,但在不同的表中
6、可以出现相同的名字;表名和列名应尽可能带有一定的意义并尽量简单。和列名应尽可能带有一定的意义并尽量简单。第4页,本讲稿共52页 3.1.2 3.1.2 关系的数学定义关系的数学定义定义定义3.1 3.1 域域(Domain)(Domain)是值的集合。是值的集合。定义定义3.2 3.2 给定一组域给定一组域 D1 D1,D2D2,.,DnDn,这些域中可以,这些域中可以有相同的域,有相同的域,D1D1,D2,.D2,.,DnDn的笛卡儿积为:的笛卡儿积为:D1D2.DnD1D2.Dn(d1(d1,d2d2,dn)|diDi,i=1dn)|diDi,i=1,2 2,nn,其中每一个元素,其中每一
7、个元素(d1(d1,d2,.d2,.,dn)dn)叫作一个叫作一个n n元组元组(n-tuple)(n-tuple),或简称为元组;元素中每一个值,或简称为元组;元素中每一个值didi叫叫做一个分量做一个分量(Component)(Component)。若。若 Di(i=1 Di(i=1,2 2,n)n)为有限为有限集,其基数为集,其基数为 mi(i mi(i1,.1,.,n)n),则,则 D1D2Dn D1D2Dn的的基数为基数为:第5页,本讲稿共52页定义定义3.3 3.3 若若D1D2DnD1D2Dn为笛卡儿积,则它的子集叫为笛卡儿积,则它的子集叫做在域做在域D1D2DnD1D2Dn上的
8、关系上的关系(Relation)(Relation),可以用,可以用R(D1R(D1,D2D2,Dn)Dn)表示。这里表示。这里R R表示关系的名字,表示关系的名字,n n是关是关系的目或度。系的目或度。关系是一个二维表,表的每行对应一个元组,表的关系是一个二维表,表的每行对应一个元组,表的每列对应一个域由于域可以相同,所以为了加以区每列对应一个域由于域可以相同,所以为了加以区分。对每列起一个名字,称为属性。分。对每列起一个名字,称为属性。n n目关系必有目关系必有n n个属个属性。总之,数据库中的关系有以下性质:性。总之,数据库中的关系有以下性质:1 1每列中的分量是同类型的数据,来自同一个
9、域;每列中的分量是同类型的数据,来自同一个域;2 2不同列可出自同一个域,每一列称为属性,要给不同列可出自同一个域,每一列称为属性,要给予不同的属性名;予不同的属性名;3 3列的顺序可任意交换,行的顺序也可任意交换;列的顺序可任意交换,行的顺序也可任意交换;4 4关系中的任意两个元组不能完全相同;关系中的任意两个元组不能完全相同;5 5每一分量必须是不可分的数据项。每一分量必须是不可分的数据项。第6页,本讲稿共52页3.1.3 3.1.3 关系模型关系模型1 1数据结构数据结构 在关系模型中,无论是实体还是实体之间的联系均在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示
10、。也就是说,任何一个由单一的结构类型即关系来表示。也就是说,任何一个关系数据库都是由若干张互相关联的表组成。关系数据库都是由若干张互相关联的表组成。关系模式与关系是彼此密切相关但又有所区别的两关系模式与关系是彼此密切相关但又有所区别的两个概念,它们之间的关系是一种个概念,它们之间的关系是一种“型与值型与值”的关联关的关联关系。关系模式是静态的,而关系则是动态的系。关系模式是静态的,而关系则是动态的。2 2关系操作关系操作 关系操作方式的特点是集合操作,即操作的对象和结关系操作方式的特点是集合操作,即操作的对象和结果是集合,也称为一次一集合的方式。非关系型的数据果是集合,也称为一次一集合的方式。
11、非关系型的数据操作方式则为一次一记录的方式。操作方式则为一次一记录的方式。3.3.关系模型的三类完整性关系模型的三类完整性 关系模型的三类完整性包括实体完整性、参照完整关系模型的三类完整性包括实体完整性、参照完整性和用户定义的完整性。性和用户定义的完整性。第7页,本讲稿共52页 实体完整性和参照完整性是关系模型必须满足的实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。完整性约束条件,应该由关系系统自动支持。(l)(l)实体完整性:在任何关系的任何一个元组中,主实体完整性:在任何关系的任何一个元组中,主键码值的任一分量都不允许为空值。键码值的任一分量都不允许为空
12、值。(2)(2)参照完整性(引用完整性):若某个属性或属性参照完整性(引用完整性):若某个属性或属性组不是组不是A A表的主键码,但它是另一张表的主键码,但它是另一张B B表的主键码,则表的主键码,则该属性或属性组称为该属性或属性组称为 A A表的外键码。在关系模型中,表的外键码。在关系模型中,外键码或者取空值或者等于外键码或者取空值或者等于B B中某个元组的主键码中某个元组的主键码值。值。(3)(3)用户定义完整性:由用户针对某一具体数据库的用户定义完整性:由用户针对某一具体数据库的约束条件来定义完整性。它由应用环境决定,反映了约束条件来定义完整性。它由应用环境决定,反映了某一具体应用所涉及
13、的数据必须满足的语义要求。某一具体应用所涉及的数据必须满足的语义要求。关系模型的优点和缺点。关系模型的优点和缺点。第8页,本讲稿共52页3.1.4 3.1.4 关系数据库管理系统关系数据库管理系统按照按照 RDBMS RDBMS产品对关系模型的支持程度的不同,产品对关系模型的支持程度的不同,DBMSDBMS大致可分成三种等级:大致可分成三种等级:1 1半关系型半关系型DBMS(DBMS(最小关系型最小关系型)采用关系作为基本数据结构类型,但不能提供具有采用关系作为基本数据结构类型,但不能提供具有关系完备性的数据子语言,或不支持数据独立性,因而关系完备性的数据子语言,或不支持数据独立性,因而功能
14、有相当的局限性。功能有相当的局限性。2 2基本关系型基本关系型DBMS(DBMS(关系完备型关系完备型)采用关系作为唯一基本数据结构类型,具有关系完采用关系作为唯一基本数据结构类型,具有关系完备的数据子语言,在一定程度上实现了数据的独立性,备的数据子语言,在一定程度上实现了数据的独立性,确保用户能够依靠关系名、关键字值和属性名的结合用确保用户能够依靠关系名、关键字值和属性名的结合用逻辑方式访问数据库中的每一个数据。目前大多数关系逻辑方式访问数据库中的每一个数据。目前大多数关系型型DBMSDBMS都属于这种类型。都属于这种类型。3 3完全关系型完全关系型(全关系型全关系型)这类系统支持关系模型的
15、所有特征,特别是数据结这类系统支持关系模型的所有特征,特别是数据结构中域的概念、实体完整性和参照完整性。构中域的概念、实体完整性和参照完整性。第9页,本讲稿共52页3.2 3.2 关系代数关系代数 关系的数据操纵语言按照表达查询的方式可分为两关系的数据操纵语言按照表达查询的方式可分为两大类:大类:1 1用对关系的运算来表达查询的方式,称为关系用对关系的运算来表达查询的方式,称为关系代数;代数;2 2用谓词来表达查询要求的方式,称为关系演用谓词来表达查询要求的方式,称为关系演算。关系演算又可按谓词变元的基本对象是元组变量还算。关系演算又可按谓词变元的基本对象是元组变量还是域变量而分为元组关系演算
16、和城关系演算两种。是域变量而分为元组关系演算和城关系演算两种。这三种语言在表达能力上是彼此等价的,它们可以这三种语言在表达能力上是彼此等价的,它们可以作为评估实际系统中操纵语言能力的标准或基础。作为评估实际系统中操纵语言能力的标准或基础。关系代数是以关系为运算对象的一组高级运算的集关系代数是以关系为运算对象的一组高级运算的集合,它的运算可分为以下两类。合,它的运算可分为以下两类。第10页,本讲稿共52页 3.2.1 3.2.1 传统的集合运算传统的集合运算 传统的集合运算是二目运算。设关系传统的集合运算是二目运算。设关系R R和关系和关系S S具有具有相同的度,且相应的属性值取自同一个域,则称
17、它们是相同的度,且相应的属性值取自同一个域,则称它们是并相容的。对于并相容的两个关系可以定义如下三种运并相容的。对于并相容的两个关系可以定义如下三种运算:算:1 1并运算并运算(Union)(Union)两个关系两个关系R R和和S S的并记为的并记为 RS RS,它是一个新的关,它是一个新的关系,由属于系,由属于R R或属于或属于S S的元组组成,可形式地定义成:的元组组成,可形式地定义成:RS RSttRtS ttRtS 其中其中t t是元组变量,表示关系中的元组。是元组变量,表示关系中的元组。2 2交运算交运算(Intersection)(Intersection)两个并相容的关系两个并
18、相容的关系R R和和S S,它们的交记为,它们的交记为RSRS,由属,由属于于R R且属于且属于S S的元组组成,可形式地定义为:的元组组成,可形式地定义为:RS=ttRtS RS=ttRtS其中其中t t是元组变量,表示关系中的元组。是元组变量,表示关系中的元组。第11页,本讲稿共52页3 3差运算差运算(Difference)(Difference)两个并相容关系两个并相容关系 R R和和S S的差是由属于的差是由属于R R但不属于但不属于S S的的元组组成,它可形式地定义为:元组组成,它可形式地定义为:R-S=ttRt R-S=ttRt SS其中其中t t是元组变量,表示关系中的元组。是
19、元组变量,表示关系中的元组。4 4笛卡儿积笛卡儿积(Cartesian Product)(Cartesian Product)设设R R为为m m元关系,元关系,S S为为n n元关系,它们的笛卡儿积表示元关系,它们的笛卡儿积表示为为 RS RS,这个新关系具有,这个新关系具有m+nm+n元,元组的前元,元组的前m m个分量是个分量是R R中的一个元组,后中的一个元组,后n n个分量是个分量是S S中的一个元组,它可以中的一个元组,它可以用下列形式表示:用下列形式表示:RS=(a1,a2,am,b1,b2,bn)|(a1,a2,am)RRS=(a1,a2,am,b1,b2,bn)|(a1,a2
20、,am)R (b1,b2,bn)S (b1,b2,bn)S 具体参见书上图具体参见书上图3.l3.l中并、交、差运算的一个实例和中并、交、差运算的一个实例和图图3.23.2中笛卡儿积的一个实例。中笛卡儿积的一个实例。第12页,本讲稿共52页3.2.2 3.2.2 专门的关系运算专门的关系运算1 1选择运算选择运算(Selection)(Selection)选择运算是从某个给定的关系中筛选出满足限定条选择运算是从某个给定的关系中筛选出满足限定条件的元组子集,它是一元关系运算。定义为:件的元组子集,它是一元关系运算。定义为:F F(R)(R)t|tR F(t)t|tR F(t)”真真”其中其中F
21、F是筛选关系是筛选关系R R中元组的限定条件的布尔表达式,它中元组的限定条件的布尔表达式,它由逻辑运算符由逻辑运算符(或)、(或)、(与)、(非)连接各算(与)、(非)连接各算术表达式组成。术表达式组成。2 2投影运算投影运算(Projection)(Projection)投影运算是从给定的关系中保留指定的属性子集而投影运算是从给定的关系中保留指定的属性子集而删去其余属性的操作。设定某关系删去其余属性的操作。设定某关系 R(X)R(X),X X是是R R的属性的属性集,集,A A是是X X的一个子集,则的一个子集,则R R在在A A上的投影可表示成:上的投影可表示成:A A(R)R)tA|tR
22、tA|tR其中其中tAtA表示只取元组表示只取元组t t中相应中相应A A属性中的分量。属性中的分量。第13页,本讲稿共52页3 3联接运算联接运算(Join)(Join)联接运算是从两个关系的笛卡儿积中选取属性间满足一定条联接运算是从两个关系的笛卡儿积中选取属性间满足一定条件的元组,可记作:件的元组,可记作:其中其中A A是关系是关系R R中的属性组,中的属性组,B B是关系是关系S S中的属性组,它们的度中的属性组,它们的度数相同且可比较,数相同且可比较,为算术比较运算符为算术比较运算符(即,即,=,)。4 4自然联接运算自然联接运算(Natural join)(Natural join)
23、联接运算中最有实用价值的一类运算称为自然联接运算。联接运算中最有实用价值的一类运算称为自然联接运算。它只要求参与运算的两个关系在同名属性上具有相同的值,由它只要求参与运算的两个关系在同名属性上具有相同的值,由于同名属性上的值相同,所以在产生的结果关系中同名属性也于同名属性上的值相同,所以在产生的结果关系中同名属性也只出现一次,它可定义为:只出现一次,它可定义为:第14页,本讲稿共52页5.5.除法运算除法运算(Division)(Division)一个一个 m m元关系元关系R R除以一个除以一个n n元关系元关系S(S(其中其中 m mn n,S S非非空关系并且空关系并且R R中存在中存在
24、n n个属性与个属性与S S的的n n个属性定义在相同的个属性定义在相同的域域)所得到的结果是一个所得到的结果是一个(m-n)(m-n)元的新关系,它表示满足元的新关系,它表示满足以下条件的元组集合:以下条件的元组集合:RS=t RS=t(m-n(m-n对任一对任一t tnnSS都有都有t t(mn).(mn).t t(n)(n)RR其中其中t t(mn).(mn).t t(n)(n)表示将一个表示将一个(mn)(mn)元的元组和一个元的元组和一个 n n元元的元组拼合成为一个的元组拼合成为一个m m元的新元组。元的新元组。具体参见书上图具体参见书上图3.33.3中选择、投影、联接和自然联接中
25、选择、投影、联接和自然联接的一个实例和图的一个实例和图3.43.4中三个除法运算的实例。中三个除法运算的实例。第15页,本讲稿共52页 3.2.3 3.2.3 关系代数表达式关系代数表达式 在关系代数中在关系代数中,把由上述关系代数运算经过有限次复把由上述关系代数运算经过有限次复合而成的式子称作关系代数表达式合而成的式子称作关系代数表达式,它的运算结果仍是一它的运算结果仍是一个关系。设有学生个关系。设有学生-课程关系数据库实例,其中课程关系数据库实例,其中S S、C C和和SCSC分别代表学生关系、课程关系和学生选课关系。分别代表学生关系、课程关系和学生选课关系。第16页,本讲稿共52页 例例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 关系数据模型精选PPT 关系 数据模型 精选 PPT
限制150内