收藏 分销(赏)

2022年关系数据库(1).ppt

上传人:二*** 文档编号:5456282 上传时间:2024-11-06 格式:PPT 页数:90 大小:756.04KB
下载 相关 举报
2022年关系数据库(1).ppt_第1页
第1页 / 共90页
亲,该文档总共90页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、数据库原理与应用教程数据库原理与应用教程SQLServer第第2章章关系数据库关系数据库第第2 2章章 关系数据库关系数据库关系数据库系统是支持关系模型的数据库系统,关系数据库系统是支持关系模型的数据库系统,关系模型由关系数据结构、关系操作集合和关系关系模型由关系数据结构、关系操作集合和关系完整性约束三要素组成。完整性约束三要素组成。在关系数据库设计中,为使其数据模型合理可靠、在关系数据库设计中,为使其数据模型合理可靠、简单实用,需要使用关系数据库的规范化设计理简单实用,需要使用关系数据库的规范化设计理论。论。本章首先介绍关系数据库的基本概念,关系数据本章首先介绍关系数据库的基本概念,关系数据

2、结构、关系数据库操作及关系数据库完整性等内结构、关系数据库操作及关系数据库完整性等内容;然后讲述函数依赖的概念及分类、常见的几容;然后讲述函数依赖的概念及分类、常见的几种范式、关系规范化理论及方法。种范式、关系规范化理论及方法。第第2 2章章 关系数据库关系数据库 关系模型的数据结构非常简单。在关系关系模型的数据结构非常简单。在关系数据模型中,现实世界的实体以及实体间数据模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。关系模型中数据的逻辑结构是一张二维表。第第2 2章章 关系数据库关系数据库2.1

3、.1关系的定义和性质关系的定义和性质关系就是一张二维表格,但并不是任何二维表关系就是一张二维表格,但并不是任何二维表都叫关系,我们不能把日常生活中所用的任何表格都叫关系,我们不能把日常生活中所用的任何表格都当成一个关系直接存放到数据库里。都当成一个关系直接存放到数据库里。1.关系的数学定义关系的数学定义(1)域:一组具有相同数据类型的值的集合。域:一组具有相同数据类型的值的集合。(2)笛卡尔积:设笛卡尔积:设D1,D2,Dn为任意域,定义为任意域,定义D1,D2,Dn的笛卡尔积为:的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。第第2 2章章 关系数据库关系数据库例

4、例如如:有有两两个个域域,D1=动动物物集集合合=猫猫,狗狗,猪猪,D2=食食物物集集合合=鱼鱼,骨骨头头,白白菜菜,则则,D1与与D2的的笛笛卡卡尔尔积积为为:D1D2=(猫猫,鱼鱼)(狗狗,鱼鱼)(猪猪,鱼鱼)(猫猫,骨骨头头)(狗狗,骨骨头头)(猪猪,骨骨头头)(猫猫,白菜白菜)(狗狗,白菜白菜)(猪猪,白菜白菜)。(3)关系:关系:D1D2Dn的任意一个子集叫的任意一个子集叫做做D1D2Dn上的一个关系上的一个关系(Relation),用),用R(D1,D2,Dn)表示。表示。(其中,(其中,R表示关系名,表示关系名,n表示关系的目或度)表示关系的目或度)第第2 2章章 关系数据库关系

5、数据库 3.1.1关系的定义和性质关系的定义和性质关系数据库要求其中的关系必须是具有以下性关系数据库要求其中的关系必须是具有以下性质的。质的。(1 1)在同一个关系中,同一个列的数据必须)在同一个关系中,同一个列的数据必须是同一种数据类型,是同一种数据类型,(2 2)在同一个关系中,不同的列的数据可以)在同一个关系中,不同的列的数据可以是同一种数据类型,但各属性的名称都必须是是同一种数据类型,但各属性的名称都必须是互不相同。互不相同。(3 3)同一个关系中,任意两个元组都不能完)同一个关系中,任意两个元组都不能完全相同。全相同。第第2 2章章 关系数据库关系数据库(4 4)在一个关系中,列的次

6、序无关紧要。)在一个关系中,列的次序无关紧要。即列的排列顺序是不分先后的。即列的排列顺序是不分先后的。(5 5)在一个关系中,元组的位置无关紧要。)在一个关系中,元组的位置无关紧要。即排行不分先后,可以任意交换两行的位即排行不分先后,可以任意交换两行的位置。置。(6 6)关系中的每个属性必须是单值,即不)关系中的每个属性必须是单值,即不可再分,这就要求关系的结构不能嵌套。可再分,这就要求关系的结构不能嵌套。这是关系应满足的最基本的条件。这是关系应满足的最基本的条件。第第2 2章章 关系数据库关系数据库例如,有这样一个学生表如下:例如,有这样一个学生表如下:复合表示例复合表示例学号学号姓名姓名性

7、性别别系系编编号号成成绩绩程序程序设计设计英英语语高数高数2003002张张三三男男017787862003025李四李四女女026989762005023刘明刘明男男037984822004033王王晓晓女女03669076第第2 2章章 关系数据库关系数据库2.1.1关系的定义和性质关系的定义和性质上述表格就不是关系,应对其进行结构上述表格就不是关系,应对其进行结构上的修改,才能成为数据库中的关系。对于上的修改,才能成为数据库中的关系。对于该复合表,只要把可以把它转化成一个关系,该复合表,只要把可以把它转化成一个关系,即学生成绩关系(学号,姓名,性别,系编即学生成绩关系(学号,姓名,性别,

8、系编号,程序设计,英语,高数);也可以转化号,程序设计,英语,高数);也可以转化成两个关系,即学生关系(学号,姓名,性成两个关系,即学生关系(学号,姓名,性别,系编号)和成绩关系(学号,程序设计,别,系编号)和成绩关系(学号,程序设计,英语,高数)。英语,高数)。第第2 2章章 关系数据库关系数据库学号学号姓名姓名性别性别系编号系编号2003002张三张三男男012003025李四李四女女022005023刘明刘明男男032004033王晓王晓女女03学生表学生表第第2 2章章 关系数据库关系数据库学号学号程序设计程序设计英语英语高数高数2003002778786200302569897620

9、050237984822004033669076成绩表成绩表第第2 2章章 关系数据库关系数据库2.1.1关系的定义和性质关系的定义和性质所以,关系是一种规范化了的二维表格;是一个所以,关系是一种规范化了的二维表格;是一个属性数目相同的元组的集合。集合中的元素是元属性数目相同的元组的集合。集合中的元素是元组,每个元组的属性数目应该相同。组,每个元组的属性数目应该相同。在关系数据模型中,实体以及实体之间的联系都在关系数据模型中,实体以及实体之间的联系都是用关系来表示的,它是通过关系当中的冗余属是用关系来表示的,它是通过关系当中的冗余属性(一般是主码和外码的关系)来实现实体之间性(一般是主码和外码

10、的关系)来实现实体之间的联系。上例中学生关系和成绩关系就是通过的联系。上例中学生关系和成绩关系就是通过“学号学号”属性实现的一对一联系,即一个学生只有属性实现的一对一联系,即一个学生只有一行成绩,而一行成绩也只属于一个学生。一行成绩,而一行成绩也只属于一个学生。第第2 2章章 关系数据库关系数据库2.1.2关系数据库关系数据库1、关系模式、关系模式关系数据库中,关系模式(关系数据库中,关系模式(RelationSchema)是型,关系是值;关系模式是对)是型,关系是值;关系模式是对关系的描述。因此关系模式必须指出这个元关系的描述。因此关系模式必须指出这个元组集合的结构,组集合的结构,即它由哪些

11、属性构成,即它由哪些属性构成,这这些属性来自哪些域,些属性来自哪些域,以及属性与域之间的映以及属性与域之间的映象关系。象关系。第第2 2章章 关系数据库关系数据库关系的描述称为关系模式(关系的描述称为关系模式(RelationSchema)。一个关系模式应当是一个五元)。一个关系模式应当是一个五元组。组。关系模式可以形式化地表示为:关系模式可以形式化地表示为:R(U,D,dom,F)其中:其中:R是关系名;是关系名;U是组成该关系的属性是组成该关系的属性名集合;名集合;D是属性组是属性组U中属性所来自的域;中属性所来自的域;dom是属性间域的映象集合;是属性间域的映象集合;F是属性间是属性间的

12、数据依赖关系集合的数据依赖关系集合第第2 2章章 关系数据库关系数据库关系模式通常可以简记为:关系模式通常可以简记为:R(U)或或R(A1,A2,An)其中:其中:R是关系名,是关系名,A1,A2,An为属性名,域名及属性间域的映象,常常直为属性名,域名及属性间域的映象,常常直接说明为属性的类型、长度。接说明为属性的类型、长度。第第2 2章章 关系数据库关系数据库学号学号姓名姓名性性别别年年龄龄所在系所在系000101000101王王萧萧男男1717计计算机系算机系000207000207李云虎李云虎男男1818物理系物理系010302010302郭敏郭敏女女1818数学系数学系0104080

13、10408高高红红女女2020数学系数学系020309020309王睿王睿男男1919美美术术系系020506020506路旭青路旭青女女2121美美术术系系【例【例2-1】已知学生情况表,写出其对应的关系】已知学生情况表,写出其对应的关系模式。模式。学生情况表学生情况表学生情况表的关系模式可以描述为:学生情况表的关系模式可以描述为:学生情况表(学号,姓名,性别,年龄,所在系)学生情况表(学号,姓名,性别,年龄,所在系)第第2 2章章 关系数据库关系数据库关系实际上就是关系模式在某一时刻的关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关状态或内容。也就是说,关系模式是型

14、,关系是它的值。系是它的值。关系模式是静态的、稳定的,而关系是关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。在不断地更新着数据库中的数据。但在实际中,人们常常把关系模式和关但在实际中,人们常常把关系模式和关系统称为关系。系统称为关系。第第2 2章章 关系数据库关系数据库2、关系数据库、关系数据库关系数据库就是采用关系模型的数据库。在一个给关系数据库就是采用关系模型的数据库。在一个给定的应用领域中,所有实体及实体之间联系的关系定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据

15、库的型也称的集合构成一个关系数据库。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。应的关系的集合,通常称为关系数据库。第第2 2章章 关系数据库关系数据库1、实体完整性规则、实体完整性规则(EntityIntegrityRule)实体完整性规则要求关系的主码中属性不能取空值。实体完整性规则要求关系的主码中属性不能取空值。例如,

16、例如,“学生情况表学生情况表”中的中的“学号学号”属性不能为空。属性不能为空。关系模型必须遵守实体完整性规则的原因:关系模型必须遵守实体完整性规则的原因:(1)现实世界中的实体和实体之间都是可区分的,即现实世界中的实体和实体之间都是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。码作为唯一性标识。(2)空值就是空值就是“不知道不知道”或或“无意义无意义”的值。主码中的值。主码中属性取空值,就说明存在某个不可标识的实体,这与属性取空值,就说明存在某个不可标识的实体,这与第第(1)条矛盾。条矛盾。第第2 2章章 关系数据库关

17、系数据库2、参照完整性规则、参照完整性规则(ReferenceIntegrityRule)设设F是基本关系是基本关系R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R的码,如果的码,如果F与基本关系与基本关系S的主码的主码Ks相对应,则相对应,则称称F是基本关系是基本关系R的外码(的外码(Foreignkey),并称),并称基本关系基本关系R为参照关系(为参照关系(Referencingrelation),),基本关系基本关系S为被参照关系(为被参照关系(Referencedrelation)或目标关系()或目标关系(Targetrelation)。)。关系关系R和和S也可以是相同的

18、关系,即自身参照。也可以是相同的关系,即自身参照。第第2 2章章 关系数据库关系数据库目标关系目标关系S的主码的主码Ks和参照关系的外码和参照关系的外码F必须定必须定义在同一个(或一组)域上。参照完整性规则就义在同一个(或一组)域上。参照完整性规则就是定义外码与主码之间的引用规则。是定义外码与主码之间的引用规则。参照完整性规则:若属性(或属性组)参照完整性规则:若属性(或属性组)F是基本是基本关系关系R的外码,它与基本关系的外码,它与基本关系S的主码的主码Ks相对应相对应(基本关系(基本关系R和和S可能是相同的关系),则对于可能是相同的关系),则对于R中每个元组在中每个元组在F上的值必须为:或

19、者取空值(上的值必须为:或者取空值(F的的每个属性值均为空值);或者等于每个属性值均为空值);或者等于S中某个元组中某个元组的主码值。的主码值。第第2 2章章 关系数据库关系数据库【例【例2-2】“学生学生”实体和实体和“系系”实体可以用下面实体可以用下面的关系表示,其中主码用下划线标识。的关系表示,其中主码用下划线标识。学生(学生(学号学号,姓名,性别,年龄,系号),姓名,性别,年龄,系号)系(系(系号系号,系名,系主任),系名,系主任)学生关系的学生关系的“系号系号”与系关系的主码与系关系的主码“系号系号”相相对应,因此,对应,因此,“系号系号”属性是学生关系的外码,属性是学生关系的外码,

20、是系关系的主码。这里系关系是被参照关系,学是系关系的主码。这里系关系是被参照关系,学生关系为参照关系。学生关系中的每个元组的生关系为参照关系。学生关系中的每个元组的“系号系号”属性只能取下面两类值:空值或系关系中属性只能取下面两类值:空值或系关系中“系号系号”已经存在的值。已经存在的值。第第2 2章章 关系数据库关系数据库3、用户定义的完整性规则、用户定义的完整性规则用户定义的完整性规则由用户根据实际情况对数用户定义的完整性规则由用户根据实际情况对数据库中数据的内容进行的规定,也称为域完整性据库中数据的内容进行的规定,也称为域完整性规则。规则。通过这些规则限制数据库只接受符合完整性约束通过这些

21、规则限制数据库只接受符合完整性约束条件的数据值,不接受违反约束条件的数据,从条件的数据值,不接受违反约束条件的数据,从而保证数据库的中数据的有效性和可靠性。而保证数据库的中数据的有效性和可靠性。例如,学生表中的性别数据只能是男和女,选课例如,学生表中的性别数据只能是男和女,选课表中的成绩数据为表中的成绩数据为1到到100之间等。之间等。第第2 2章章 关系数据库关系数据库数据完整性的作用就是要保证数据库中的数据完整性的作用就是要保证数据库中的数据是正确的。通过在数据模型中定义实数据是正确的。通过在数据模型中定义实体完整性规则、参照完整性规则和用户定体完整性规则、参照完整性规则和用户定义完整性规

22、则,数据库管理系统将检查和义完整性规则,数据库管理系统将检查和维护数据库中数据的完整性。维护数据库中数据的完整性。第第2 2章章 关系数据库关系数据库关系代数是以关系为运算对象的一组高级关系代数是以关系为运算对象的一组高级运算的集合;关系代数是一种抽象的查询运算的集合;关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表语言,是关系数据操纵语言的一种传统表达方式。达方式。关系代数的运算对象是关系,运算结果关系代数的运算对象是关系,运算结果也是关系。也是关系。第第2 2章章 关系数据库关系数据库关系代数中的操作可以分为两类:关系代数中的操作可以分为两类:传统的集合操作:并、差、交、笛卡儿

23、积传统的集合操作:并、差、交、笛卡儿积。专门的关系操作:投影(对关系进行垂直分割)、专门的关系操作:投影(对关系进行垂直分割)、选择(水平分割)、连接(关系的结合)、除法选择(水平分割)、连接(关系的结合)、除法(笛卡儿积的逆运算)等(笛卡儿积的逆运算)等。在两类集合运算中,还将用到两类辅助操作符:在两类集合运算中,还将用到两类辅助操作符:(1)比较运算符:、比较运算符:、。(2)逻辑运算符:逻辑运算符:(或)、(或)、(与)、(与)、(非)。(非)。第第2 2章章 关系数据库关系数据库1、笛卡儿积(、笛卡儿积(CartesianProduct)设关系设关系R和和S的元数(属性个数)分别为的元

24、数(属性个数)分别为r和和s,定义,定义R和和S的笛卡儿积是一个(的笛卡儿积是一个(r+s)元)元的元组集合,每个元组的前的元组集合,每个元组的前r个分量(属性个分量(属性值)来自值)来自R的一个元组,后的一个元组,后s个分量来自个分量来自S的一个元组,记为的一个元组,记为RS。形式化定义如下:。形式化定义如下:RS=t|ttrRtsS(2)在同一个关系中,不同的列的数据可以是同一种数据类型,但各属性的名称都必须是互不相同。在任何一个关系数据库系统中,关系至少应该是第一范式,不满足第一范式的数据库模式不能称为关系数据库。学生(学号,姓名,性别,年龄,系号)学生情况表(学号,姓名,性别,年龄,所

25、在系)例如,“学生情况表”中的“学号”属性不能为空。R-S=t|tRtS,F中的所有函数依赖的左边都没有冗余属性。1 关系的定义和性质SN,AGE(S)-SN,AGE(CNO=C2(S SC)如果XY,且Y不是X的子集,则称XY为非平凡的函数依赖。若设计一个描述学校的数据库:一个系有若干学生,一个学生只属于一个系;冗余度大,不仅浪费存储空间,重要的是在对数据进行修改时,又易造成数据的不一致性。但是,如果R3NF,R未必属于BCNF。学生情况(学号,姓名,专业名,性别,出生日期,总学分)关系数据库就是采用关系模型的数据库。第第2 2章章 关系数据库关系数据库其中其中tr、ts中中r,s为上标。若

26、为上标。若R有有m个元组,个元组,S有有n个元组,则个元组,则RS有有mn个元组。个元组。实际操作时,可从实际操作时,可从R的第一个元组开始的第一个元组开始,依依次与次与S的每一个元组组合,然后对的每一个元组组合,然后对R的下一的下一个元组进行同样的操作,直至个元组进行同样的操作,直至R的最后一个的最后一个元组也进行完同样的操作为止,即可得到元组也进行完同样的操作为止,即可得到RS的全部元组。的全部元组。第第2 2章章 关系数据库关系数据库【例【例2-3】已知关系】已知关系R和关系和关系S,如下图:,如下图:A AB BC Ca1a1b2b2c1c1a2a2b1b1c3c3a3a3b3b3c2

27、c2关系关系REFDe1f2d2e2f3d1e3f1d3关系关系S第第2 2章章 关系数据库关系数据库ABCEFDa1b2c1e1f2d2a1b2c1e2f3d1a1b2c1e3f1d3a2b1c3e1f2d2a2b1c3e2f3d1a2b1c3e3f1d3a3b3c2e1f2d2a3b3c2e2f3d1a3b3c2e3f1d3则则R和和S的迪卡尔积如图:的迪卡尔积如图:关系关系RS第第2 2章章 关系数据库关系数据库2、并(、并(Union)设关系设关系R和和S具有相同的关系模式,具有相同的关系模式,R和和S是是n元关系,元关系,R和和S的并是由属于的并是由属于R或属于或属于S的的元组构成的

28、集合,记为元组构成的集合,记为RS。形式定义如。形式定义如下:下:RSttRtS,其含义为:其含义为:任取元组任取元组t,当且仅当,当且仅当t属于属于R或或t属于属于S时,时,t属于属于RS。RS是一个是一个n元关系。元关系。第第2 2章章 关系数据库关系数据库【例【例2-42-4】已知关系】已知关系R R和和S S如下表,求如下表,求R R和和S S的并。的并。abc123456789101112 RSR Sabc123456789abc123101112789注意:并运算会取消某些元组(避免重复行)。注意:并运算会取消某些元组(避免重复行)。第第2 2章章 关系数据库关系数据库3、差(、差

29、(Difference)关系关系R和和S具有相同的关系模式,具有相同的关系模式,R和和S是是n元关系,元关系,R和和S的差是由属于的差是由属于R但不属于但不属于S是元组构成的集合,记为是元组构成的集合,记为R-S。形式定义如。形式定义如下:下:R-S=t|tRtS,其含义为:其含义为:当且仅当当且仅当t属于属于R并且不属于并且不属于S时时,t属于属于R-S。R-S也是一个也是一个n目关系。目关系。第第2 2章章 关系数据库关系数据库【例【例2-5】已知关系】已知关系R和和S,则,则R和和S的差为:的差为:R-Sabc456第第2 2章章 关系数据库关系数据库4、交(、交(Intersectio

30、n)关系关系R和和S具有相同的关系模式,具有相同的关系模式,R和和S是是n元关系,元关系,R和和S的交是由属于的交是由属于R且属于且属于S是是元组构成的集合,记为元组构成的集合,记为RS。形式定义如。形式定义如下:下:RS=t|tRtS其含义为:其含义为:任取元组任取元组t,当且仅当当且仅当t既属既属于于R又属于又属于S时,时,t属于属于RS。RS也是也是一个一个n目关系。目关系。第第2 2章章 关系数据库关系数据库【例【例2-6】已知关系】已知关系R和和S,则,则R和和S的交为:的交为:RSabc123789第第2 2章章 关系数据库关系数据库专门的关系运算包括选择、投影、连接、除等。专门的

31、关系运算包括选择、投影、连接、除等。1.选择(选择(Selection)选择运算是在关系选择运算是在关系R中选择满足给定条件的诸元中选择满足给定条件的诸元组,记作:组,记作:F(R)t|tRF(t)真真其中,其中,F表示选择条件,它是一个逻辑表达式,表示选择条件,它是一个逻辑表达式,取逻辑值取逻辑值“真真”或或“假假”。第第2 2章章 关系数据库关系数据库选择运算实际上是从关系选择运算实际上是从关系R中选取使逻辑表达中选取使逻辑表达式式F为真的元组。这是从行的角度进行的运算。为真的元组。这是从行的角度进行的运算。选择运算是从行的角度进行的运算。如下图所选择运算是从行的角度进行的运算。如下图所示

32、:示:第第2 2章章 关系数据库关系数据库设有一个学生设有一个学生-课程数据库,包括学生关系课程数据库,包括学生关系student、课程关系、课程关系course和成绩表和成绩表score。学生情况表(学生情况表(student)学学 号号no姓姓 名名name性性 别别sex年年 龄龄age所所 在在 系系dep12001张超张超男男18CS12002李岚李岚女女17IS12003王芳王芳女女19MA12004刘娟刘娟女女18IS12005赵强赵强男男18CS第第2 2章章 关系数据库关系数据库 成绩表成绩表(score)学号学号(no)课程号课程号(cno)成绩成绩(grade)12001

33、278120013881200158112002190120024681200347012003557120031891200529312005579第第2 2章章 关系数据库关系数据库例例2-7:查询数学系(:查询数学系(MA)学生的信息。)学生的信息。dep=MA(student)或或5=MA(student),结果表如下所示。,结果表如下所示。学号学号(no)姓名姓名(nam)性别性别(sex)年龄年龄(age)所在系所在系(dep)12003王芳王芳女女19MA第第2 2章章 关系数据库关系数据库例例2-8:查询年龄大于:查询年龄大于17的女同学的信息。的女同学的信息。age17sex

34、=女女(student)或或4173=女女(student),结果表如下所示。,结果表如下所示。学号学号(no)姓名姓名(nam)性别性别(sex)年龄年龄(age)所在系所在系(dep)12003王芳王芳女女19MA12004刘娟刘娟女女18IS第第2 2章章 关系数据库关系数据库2、投影(、投影(Projection)关系关系R上的投影是从上的投影是从R中选择出若干属性列中选择出若干属性列组成新的关系。记作组成新的关系。记作A(R)tA|tR其中,其中,A为为R中的属性列。中的属性列。投影之后不仅取消了原关系中的某些列,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了

35、某而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消些属性列后,就可能出现重复行,应取消这些完全相同的行。这些完全相同的行。第第2 2章章 关系数据库关系数据库这个操作是对一个关系进行垂直分割,投这个操作是对一个关系进行垂直分割,投影运算的直观意义如图影运算的直观意义如图所示。所示。第第2 2章章 关系数据库关系数据库例例2-9:查询学生的学号和姓名。:查询学生的学号和姓名。no,name(student)或或1,2(student)结结果表如表果表如表所示。所示。学学 号号no姓姓 名名name12001张超张超12002李岚李岚12003 王芳王芳12004刘娟刘娟1

36、2005赵强赵强第第2 2章章 关系数据库关系数据库课程名课程名(cname)课程号课程号(cno)数据库数据库1高等数学高等数学2信息系统信息系统3操作系统操作系统4数据结构数据结构5C程序设计程序设计6查询课程名和课程号查询课程名和课程号例例2-10:查询课程表中:查询课程表中的课程名和课程号。的课程名和课程号。cname,cno(course)或或 2,1(course)第第2 2章章 关系数据库关系数据库3、连接(、连接(Join)(1)连接运算的含义:)连接运算的含义:连接也称连接也称连接连接,是从两个关系的笛卡尔积是从两个关系的笛卡尔积中选取满足某规定条件的全体元组中选取满足某规定

37、条件的全体元组,形成一形成一个新的关系个新的关系,记为:记为:=trts|tr Rts StrAtsB第第2 2章章 关系数据库关系数据库连接操作是从行和列的角度进行运算,连连接操作是从行和列的角度进行运算,连接运算的直观意义如图所示。接运算的直观意义如图所示。第第2 2章章 关系数据库关系数据库两类常用连接运算两类常用连接运算等值连接(等值连接(equi-join)为为“”的连接运算称为等值连接,它是的连接运算称为等值连接,它是从关系从关系R与与S的笛卡尔积中选取的笛卡尔积中选取A、B属性属性值相等的那些元组。值相等的那些元组。等值连接为:等值连接为:A=B R S=tr ts|tr Rts

38、 StrA=tsB 第第2 2章章 关系数据库关系数据库自然连接(自然连接(Naturaljoin)若若A、B是相同的属性组,就可以在结果中是相同的属性组,就可以在结果中把重复的属性去掉。这种去掉了重复属性把重复的属性去掉。这种去掉了重复属性的等值连接称为自然连接。的等值连接称为自然连接。自然连接可记作:自然连接可记作:R S=tr ts|tr Rts StrB=tsB 第第2 2章章 关系数据库关系数据库例题:例题:已知关系已知关系R和关系和关系S如下表所示:如下表所示:ABCa1b26a2b17a1b39a3b212EDB5e2b27e1b110e3b36e2b2RS第第2 2章章 关系数

39、据库关系数据库求:求:第第2 2章章 关系数据库关系数据库AR.BCEDS.B a1b267e1b1 a1b2610e3b3a2b1710e3b3a1b3910e3b3小于连接结果表小于连接结果表第第2 2章章 关系数据库关系数据库等值连接结果表等值连接结果表AR.BCEDS.Ba1b266e2b2a2b177e1b1第第2 2章章 关系数据库关系数据库自然连接结果表自然连接结果表ABCEDa1b265e2a1b266e2a2b177e1a3b2125e2a3b2126e2a1b3910e3第第2 2章章 关系数据库关系数据库4.关系代数操作表达式举例关系代数操作表达式举例设教学数据库中有三个

40、关系,学生关系:设教学数据库中有三个关系,学生关系:S(SNO,SN,AGE,SEX)、学习关系:、学习关系:SC(SNO,CNO,SCORE)、课程关系:、课程关系:C(CNO,CN,TEACHER)(1)检索学习课程号为检索学习课程号为C3的学生学号和成绩的学生学号和成绩SNO,SCORE(CNO=C3(SC)(2)检索学习课程号为检索学习课程号为C4的学生学号和姓名的学生学号和姓名SNO,SN(CNO=C4(SSC)第第2 2章章 关系数据库关系数据库(3)检索学习课程名为检索学习课程名为MATHS的学生学号和姓名的学生学号和姓名SNO,SN(CN=MATHS(SSCC)(4)检索学习课

41、程号为检索学习课程号为C1或或C3的学生学号的学生学号SNO(CNO=C1VCNO=C3(SC)(5)检索不学习课程号为检索不学习课程号为C2的学生的姓名和年龄的学生的姓名和年龄SN,AGE(S)-SN,AGE(CNO=C2(SSC)客观世界的实体间有着错综复杂的联系。实体的客观世界的实体间有着错综复杂的联系。实体的联系有两类,一类是实体与实体之间的联系;另一联系有两类,一类是实体与实体之间的联系;另一类是实体内部各属性间的联系。定义属性值间的相类是实体内部各属性间的联系。定义属性值间的相互关联(主要体现在值的相等与否),这就是数据互关联(主要体现在值的相等与否),这就是数据依赖,它是数据库模

42、式设计的关键。依赖,它是数据库模式设计的关键。为使数据库模式设计合理可靠、简单实用,长期为使数据库模式设计合理可靠、简单实用,长期以来,形成了关系数据库设计理论,即规范化理论。以来,形成了关系数据库设计理论,即规范化理论。它是根据现实世界存在的数据依赖而进行的关系模它是根据现实世界存在的数据依赖而进行的关系模式的规范化处理,从而得到一个合理的数据库模式式的规范化处理,从而得到一个合理的数据库模式设计效果。设计效果。第第2 2章章 关系数据库关系数据库2.4.1数据依赖数据依赖数据依赖共有三种:数据依赖共有三种:函数依赖函数依赖(FunctionalDependency,简称简称FD)、)、多值

43、依赖(多值依赖(MultivaluedDependency,简简称称MVD)和连接依赖()和连接依赖(JoinDependency,简称简称JD),其中最重要的是函其中最重要的是函数依赖。数依赖。第第2 2章章 关系数据库关系数据库1.函数依赖函数依赖函数依赖是关系模式中各个属性之间的一种依赖函数依赖是关系模式中各个属性之间的一种依赖关系,是规范化理论中一个最重要、最基本的概念。关系,是规范化理论中一个最重要、最基本的概念。所谓函数依赖是指在关系所谓函数依赖是指在关系R中,中,X、Y为为R的两个属的两个属性或属性组,如果关系性或属性组,如果关系R存在:对于存在:对于X的每一个具体值,的每一个具

44、体值,Y都只有一个具体值与之对应,则称属性都只有一个具体值与之对应,则称属性Y函数依赖于函数依赖于属性属性X。记作。记作XY。当。当Y不函数依赖于不函数依赖于X时,记作:时,记作:XY。当。当XY且且YX时,则记作:时,则记作:XY。简单表述:如果属性简单表述:如果属性X的值决定属性的值决定属性Y的值,那么属的值,那么属性性Y函数依赖于属性函数依赖于属性X;或者,如果知道;或者,如果知道X的值,就可的值,就可以获得以获得Y的值。的值。第第2 2章章 关系数据库关系数据库例例2-12学生情况表学生情况表第第2 2章章 关系数据库关系数据库学学 号号姓姓 名名专业名专业名性别性别出生日期出生日期总

45、学分总学分121101王林王林计算机计算机男男1990-02-1050121102程明程明计算机计算机男男1991-02-0150121103王燕王燕计算机计算机女女1992-10-0650121104韦严平韦严平网络网络男男1993-08-2650121106李方方李方方网络网络女女1993-11-20502.几种特定的函数依赖几种特定的函数依赖(1)非平凡函数依赖和平凡函数依赖非平凡函数依赖和平凡函数依赖设设关关系系模模式式R(U),U是是R上上的的属属性性集集,X、YU;如如果果XY,且且YX,则则称称XY为为平平凡凡的的函函数数依依赖赖;如如果果XY,且且Y不不是是X的的子子集集,则则

46、称称XY为非平凡的函数依赖。为非平凡的函数依赖。【例【例2-13】在学生课程(学号,课程号,成绩)】在学生课程(学号,课程号,成绩)关系中,若存在函数依赖为:关系中,若存在函数依赖为:(学号,课程号)(学号,课程号)成绩;该函数依赖是非平凡成绩;该函数依赖是非平凡函数依赖。函数依赖。第第2 2章章 关系数据库关系数据库(2)完全函数依赖和部分函数依赖完全函数依赖和部分函数依赖设关系模式设关系模式R(U),X,YU;如果如果XY,并且对于并且对于X的任何一个真子集的任何一个真子集Z,ZY都不成立,都不成立,则称则称Y完全函数依赖完全函数依赖于于X。若若XY,但对于但对于X的某一个真子集的某一个真

47、子集Z,有有ZY成立,成立,则称则称Y部分函数依赖于部分函数依赖于X。第第2 2章章 关系数据库关系数据库【例例2-14】在在学学生生课课程程(学学号号,课课程程号号,成成绩绩)关关系系中中,“学学号号,课课程程号号”是是主主码码,由由于于“学学号号成成绩绩”不不成成立立,“课课程程号号成成绩绩”也也不不成成立立,因因此此,“成成绩绩”完完全全函函数依赖于数依赖于(学号,课程号学号,课程号)。第第2 2章章 关系数据库关系数据库3、传递函数依赖、传递函数依赖设关系模式设关系模式R(U),XU,YU,ZU。如果如果XY,YZ成立,成立,但但YX不成立,不成立,且且Z-X、Z-Y和和Y-X均不空,

48、均不空,则则称称XZ为传递函数依赖。为传递函数依赖。【例【例2-15】学生关系(学号,姓名,性别,】学生关系(学号,姓名,性别,年龄,所在系,系主任),其上的函数依赖年龄,所在系,系主任),其上的函数依赖集集F=学号学号姓名,学号姓名,学号性别,学号性别,学号年年龄,学号龄,学号所在系,所在系所在系,所在系系主任,学号系主任,学号系主任系主任,则学号,则学号系主任为传递函数依系主任为传递函数依赖。赖。第第2 2章章 关系数据库关系数据库3.码的函数依赖表示码的函数依赖表示使用函数依赖的概念可以给出关系模式中使用函数依赖的概念可以给出关系模式中码的更严格定义。码的更严格定义。候选码:设候选码:设

49、K为关系模式为关系模式R(U)中的属性)中的属性或属性集合。若或属性集合。若KU,则,则K称为称为R的一个的一个候选码(候选码(CandidateKey)。)。主码:若关系模式主码:若关系模式R有多个候选码,则选定有多个候选码,则选定其中一个作为主码(其中一个作为主码(PrimaryKey)。)。第第2 2章章 关系数据库关系数据库2.4.2关系模式的规范化过程关系模式的规范化过程若设计一个描述学校的数据库:一个系有若干学生,若设计一个描述学校的数据库:一个系有若干学生,一个学生只属于一个系;一个系只有一名主任;一一个学生只属于一个系;一个系只有一名主任;一个学生可以选修多门课程,每门课程有若

50、干学生选个学生可以选修多门课程,每门课程有若干学生选修;每个学生所学的每门课程都有一个成绩。修;每个学生所学的每门课程都有一个成绩。学生信息表(学生信息表(SNO,SNAME,AGE,DEPT,CNO,XN,SCORE),(),(SNO,CNO)为主键。)为主键。其中其中SNO表示学生学号,表示学生学号,SNAME表示学生姓名,表示学生姓名,AGE表示学生年龄,表示学生年龄,DEPT表示学生所在的系别,表示学生所在的系别,XN表示系主任,表示系主任,CNO表示课程号,表示课程号,SCORE表示成表示成绩。绩。第第2 2章章 关系数据库关系数据库上述关系模式中存在以下问题:上述关系模式中存在以下

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服