关系数据库的基本模型.ppt

上传人:wuy****n92 文档编号:67145497 上传时间:2022-12-24 格式:PPT 页数:114 大小:347KB
返回 下载 相关 举报
关系数据库的基本模型.ppt_第1页
第1页 / 共114页
关系数据库的基本模型.ppt_第2页
第2页 / 共114页
点击查看更多>>
资源描述

《关系数据库的基本模型.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

26、42 定义 3.6 设F是基本关系R的一个或一组属性,但不是关系R的键,是基本关系S的主键。如果 F与基本关系S的主键 相对应,则称F是基本关系R的外键(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S不一定是不同的关系。12/23/202243学生关系专业关系选修关系 图c c 学生关系图a课程关系学生关系学号图3-3 关系的参照图图b12/23/202244 【例3-4】在职工关系中,某一个职工“所属部门编码”如果取空值,表

27、示该职工未被分配到指定部门。如果等于部门关系中某个元组的“部门编码”,表示该职工隶属于指定部门。若既不为空值,又不等于被参照关系部门中某个元组的“部门编码”分量,表示该职工被分配到一个不存在的部门,则违背参照完整性规则。所以,参照完整性规则就是定义外键与主键之间的引用规则,也是关系模式之间关联的规则。12/23/202245 规则3.2 参照完整性规则 若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键 相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:1.或者取空值(F的每个属性值均为空值)2.或者等于S中某个元组的主键值 12/23/2022463.

28、2.4 用户定义完整性 任何关系数据库系统都应该支持实体完整性和参照完整性。这是关系模型所要求的。用户定义的完整性就是针对某一具体关系数据库的唯一约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这一类完整性的机制,以便用统一的系统的方法处理它们,而不是由应用程序来承担这一功能。在早期的RDBMS中没有提供定义和检验这些完整性的机制,因此需要应用开发人员在应用系统的程序中进行检查。12/23/2022473.3 关系代数的基本运算o关系模型与其他模型相比,最有特色的是它的数据库语言。这种语言灵活方便、表达能力和功能都很强。o目前关系数据库所使用的语言一般都具有

29、定义、查询、更新和控制一体化的特点,而查询是最主要的部分。所以说,关系数据库的核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示。o因此,关系运算是设计关系数据语言的基础。按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。12/23/202248o关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。对有限个关系作有限运算所得的结果。o任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三大要素。o关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算

30、符、算术比较符和逻辑运算符,如表3-6。12/23/202249表3-6 关系代数运算符运算符含义运算符含义集 合运算符并差交笛卡尔积比 较运算符大于大于等于小于小于等于等于不等于专门的关 系运算符选择投影连接除逻 辑运算符非与或 12/23/2022503.3.1 传统的集合运算 传统集合运算是二目运算,包括并、交、差、笛卡儿积四种运算。设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,t是元组变量,表示t是R的一个元组。12/23/202251(1)并(Union)设R和S都是n目关系,而且两者各对应属性的数据类型相同,则R和S的并定义为:的结果仍为目关系

31、,由属于R或属于S的元组组成。12/23/202252(2)交(Intersection)设R和S都是n目关系,而且两者各对应属性的数据类型相同,则R和S的交定义为:的结果仍为n目关系,由既属于R又属于S的元组组成。12/23/202253(3)差(Except)设R和S都是n目关系,而且两者各对应属性的数据类型相同,则R和S的差定义为:的结果仍为n目关系,由属于R而不属于S的所有元组组成。12/23/202254(4)广义笛卡儿积(Extended Cartesian Product)设R是n目关系,S是m目关系,R和S的笛卡儿积定义为:12/23/202255ABCa1a1a2b1b2b2

32、c1c2c1【例3-9】设有关系R和S如图,求 关系RABCa1a1a2b2b3b2c2c2c1关系S12/23/202256RS ABCa1a1a2a1b1b2b2b3c1c2c1c2 RS ABCa1a2b2b2c2c112/23/202257 RS R.AR.BR.CS.AS.BS.Ca1a1a1a1a1a1a2a2a2b1b1b1b2b2b2b2b2b2c1c1c1c2c2c2c1c1c1a1a1a2a1a1a2a1a1a2b2b3b2b2b3b2b2b3b2c2c2c1c2c2c1c2c2c112/23/202258R-SABCa1 b1c112/23/2022593.3.2 专门的

33、关系运算 12/23/20226012/23/20226112/23/20226212/23/202263在连接运算中有两种最常见的连接,一种是等值连接(equi join),一种是自然连接(Natural join)。12/23/2022643自然连接与等值连接的区别是:自然连接要求两个关系中进行比较的属性或属性组必须同名和相同值域,而等值连接只要求比较属性有相同的值域。自然连接的结果中,同名的属性只保留一个。一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。12/23/20226512/23/20226612/23/20226712/23/2

34、02268 如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),那么这种连接就叫做外连接(outer join)。如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JION或LEFT JION),如果只把右边关系S中要舍弃的元组保留就叫右外连接(RIGHT OUTER JION或RIGHT JION)。在图3-7中,图(a)是图3-6中的关系R和关系S的外连接,图(b)是左外连接,图(c)是右外连接。12/23/20226912/23/20227012/23/20227112/23/20227212/23/202273n3.1 关系模型的基本概念n3.

35、2 关系模型的三类完整性n3.3 关系代数的基本运算n3.4 关系演算n3.5 本章小结12/23/2022743.4 关系演算 o关系演算是以数理逻辑中的谓词演算为基础的,通过谓词形式来表示查询表达式。根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。其代表语言分别为Alpha和 QBE。元组关系演算语言的典型代表是提出的ALPHA语言,这种语言虽然没有实际实现,但较有名气,INGRES关系数据库上使用的QUEL语言,就是在ALPHA语言的基础上研制的。12/23/2022753.4.1 元组关系演算语言ALPHA 在关系运算中,用谓词公式来表达查询要求的方式称为关系演算。元组关

36、系演算是以元组变量作为谓词变元的基本对象。由于用到谓词公式,必然涉及到谓词变量和谓词合适公式(well-formed formila)的问题。ALPHA语言是以谓词公式来定义查询要求的。在谓词公式中存在客体变元,这里称为元组变量。元组变量是一个变量,其变化范围为某一个命名的关系。12/23/202276ALPHA语言的基本格式是:操作语句 工作空间名(表达式):操作条件 1.操作符有GET,PUT,HOLD,UPDATE,DELETE,DROP等多种。2.工作空间是指内存空间,可以用一个字母表示,通常用W表示,也可以用别的字母表示。工作空间是用户与系统的通信区。3.目标表用于指定操作(如查询、

37、更新等)出来的结果,它可以是关系名或属性名,一操作语句可以同时对多个关系或多个属性进行操作。4.操作条件是用谓词公式表示的逻辑表达式,只有满足此条件的元组才能进行操作,这是一个可选项,缺省时表示无条件执行操作符规定的操作。除此之外,还可以在基本格式上加上排序要求,定额要求等。12/23/202277下面以教学数据库为例,说明ALPHA语言的使用。1.数据查询(1)简单查询【例3-14】查询所有学生的数据。GET W(S)【例3-15】查询所有被选修的课程号码。GET W(SC.CNO)12/23/202278(2)条件查询 由冒号后面的逻辑表达式给出查询条件,在表达式中可以使用如下三类运算符:

38、比较运算符:,=等于,;逻辑运算符:(与),(或),(非)表示执行次序的括号:()其中,比较运算符的优先级高于逻辑运算符,可以使用()改变它们的优先级。【例3-16】查询计算机系工资低于1000元的教师的姓名和工资。GET W(T.TN,T.SAL):T.DEPT=计算机T.SAL1000 目标表为教师关系T中的两个属性SN和SAL组成的属性列表。12/23/202279(3)排序查询【例3-17】查询S3同学所选课程号及成绩,并按成绩降序排列。GET W(SC.CNO,SC.SCORE):SC.SNO=S3DOWN SC.SCORE DOWN表示降序,后面紧跟排序的属性名。升序排列时使用UP

39、。(4)定额查询【例3-18】查询一名男教师的教师号和姓名。GET W(1)(T.TNO,T.TN):T.SEX=男【例3-19】查询一名男教师的教师号和姓名,并使他的年龄最小。GET W(1)(T.TNO,T.TN):T.SEX=男 UP T.AGE12/23/202280(5)带元组变量的查询 所谓的元组关系演算就是以元组变量作为谓词变元的基本对象,在关系演算的查询操作时,可以在相应的关系上定义元组变量。元组变量代表关系中的元组,其取值是在所定义的关系范围内变化,所以也称作范围变量Range Variable,一个关系可以设多个元组变量。【例3-20】查询S3同学所选课程号。RANGE S

40、C X GET W(X.CNO):X.SNO=S312/23/202281(6)带存在量词的查询【例3-21】查询S5同学所选课程名。RANGE SC XGET W(C.CN):X(C.CNO=X.CNOX.SNO=S5)注意:操作条件中使用量词时必须用元组变量。【例3-22】查询至少选修一门其课时数为85的课程的学生的姓名。RANGE C CX SC SCXGET W(S.SN):SCX(SCX.SNO=S.SNOCX(CX.CNO=SCX.CNOCX.CT=85)【例3-23】查询选修全部课程的学生姓名。RANGE C CX SC SCXGETW(S.SN):CXSCX(SCX.SNO=S

41、.SNOCX.CNO=SCX.CNO)12/23/202282(7)库函数查询 库函数也称集函数。用户在使用查询语言时,经常要作一些简单的运算。如要统计某个关系中符合某一条件的元组数,或某些元组在某个属性上分量的和、平均值等等。在关系数据库语言中提供了有关这类运算的标准函数,增强了基本检索能力。【例3-24】求学号为S1学生的平均分。GET W(AVG(SC.SCORE):S.SNO=S1【例3-25】求学校共有多少个系 GET W(COUNT(S.DEPT)COUNT函数自动消去重复行,可计算字段“DEPT”不同值的数目。12/23/202283表3-8 常用库函数表函数名称功能AVG按列计

42、算平均值TOTAL按列计算值的总和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值计算元组个数12/23/2022842.数据更新 更新操作包括修改、插入和删除。(1)修改 修改操作使用UPDATE语句实现,具体操作分为以下三步:读数据:使用HOLD语句将要修改的元组从数据库中读到工作空间中;修改:利用宿主语言修改工作空间中元组的属性;送回:使用UPDATE语句将修改后的元组送回数据库中。这里HOLD语句是带上并发控制的GET语句。【例3-26】把刘伟教师转到信息系。HOLD W(T.DEPT):T.TN=刘伟 MOVE 信息 TO W.DEPT UPDATE W12/23/202

43、285(2)插入插入操作使用PUT语句实现,具体操作分为以下两步:建立新元组:利用宿主语言在工作空间中建立新元组;写数据:使用PUT语句将元组写入到指定的关系中。【例3-27】在SC表中插入一条选课记录(S2,C3,85)。MOVE S2 TO W.SNO MOVE C3 TO W.CNO MOVE 85 TO W.SCORE PUT W(SC)PUT语句的作用是把工作空间W中的数据写到数据库中,此例即把已经在工作空间建立的一条选课记录写入到选课关系SC中。注意:PUT语句只能对一个关系进行操作,在插入操作时,拒绝接受主键相同的元组。12/23/202286(3)删除 ALPHA语言中的删除操

44、作不但可以删除关系中的一些元组,还可以删除一个关系。删除操作使用DELETE语句实现,具体操作分为以下两步:读数据:使用HOLD语句将要删除的元组从数据库中读到工作空间中;删除:使用DELETE语句删除该元组。【例3-28】删除学号为S6的学生的信息。HOLD W(S):S.SNO=S6DELETE W【例3-29】删除全部学生的信息。HOLD W(S)DELETE W12/23/20228712/23/20228812/23/20228912/23/202290关系代数运算都可以用等价的元组关系演算表达式表示。现以五种基本关系代数运算表达式为例,说明关系代数表达式与元组关系演算表达式的等价关

45、系。(1)并(2)差(3)笛卡儿积 12/23/202291关系运算的安全性是指对有限关系运算时要求不导致无限关系和无穷验证。关系代数具有这种性质,但关系演算却有一些反例。12/23/20229212/23/2022933.4.2 域关系演算 域关系演算是关系演算的另一种形式。域关系演算是以元组变量的分量即域变量作为谓词变元的基本对象。域关系演算语言的典型代表是1975年由IBM公司约克城高级研究试验室的提出的QBE语言,该语言于1978年在IBM370上实现。12/23/202294 QBE是Query By Example的缩写,也称为示例查询,它是一种很有特色的屏幕编辑语言,其特点如下:

46、(1)以表格形式进行操作 每一个操作都由一个或几个表格组成,每一个表格都显示在终端的屏幕上,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,查询结果也以表格的形式显示出来,所以它具有直观和可对话的特点。(2)通过例子进行查询 通过使用一些实例,使该语言更易于为用户接受和掌握。(3)查询顺序自由 当有多个查询条件时,不要求使用者按照固定的思路和方式进行查询,使用更加方便。12/23/202295使用QBE语言的步骤:1)用户根据要求向系统申请一张或几张表格,显示在终端上;2)用户在空白表格的左上角的一栏内输入关系名;3)系统根据用户输入的关系名,将在第一行从左至右自动填写各个属性名;4)用

47、户在关系名或属性名下方的一格内填写相应的操作命令,操作命令包括:P.(打印或显示)、U.(修改)、I.(插入)、D.(删除)。如果要打印或显示整个元组时,应将“P”填在关系名的下方,如果只需打印或显示某一属性,应将“P”填在相应属性名的下方。12/23/202296表格形式如表3-9所示:表3-9 表格形式关系名属性1属性2属性n操作命令属性值或查询条件属性值或查询条件属性值或查询条件12/23/202297QBE功能分为以下四类:o数据定义o数据查询o数据维护o视图定义12/23/202298关系名属性名属性名属性名操作命令1元组属性操作命令2或操作命令3查询要求信息表3-10 关系框架的一

48、般格式1.数据定义关系框架的一般格式如表3-10所示:12/23/202299【例3-31】建立关系DEPARTMENT对首行各纵栏,从左到右填:(命令)I.department I.(第一属性名称)DNAME(第二属性名称)DNUMBER(第三属性名称)MGRSSN(第四属性名称)STARTDT然后按首列提示定义各属性:KEY I.(是否主属性)TYPE I.(数据类型)DOMAIN I.(值域名称)INVERSION I.(是否索引)12/23/2022100I.DEPARTMENTI.DNAMEDNUMBERMGRSSNSTARTDTKEYI.NYNNTYPEI.CHARINTEGER

49、INTEGER INTEGERDOMAINI.NAMESNUMBERSSSNDATEINVERSIONI.NYNN12/23/20221012.数据查询 查询条件中可以使用比较运算符,和。其中可以省略。示例元素是这个域中可能的一个值,它不必是查询结果中的元素。比如要求信息系的学生,只要给出任意的一个学生名即可,而不必真是信息系的某个学生名。12/23/202210212/23/202210312/23/202210412/23/202210512/23/2022106聚集函数:为了方便用户,QBE提供了一些聚集函数,主要包括CNT,SUM,AVG,MAX,MIN等,其含义如表3-11所示。函数

50、名功能CNTSUMAVGMAXMIN对元组计数求总和求平均值求最大值求最小值表3-11 QBE中的聚集函数12/23/202210712/23/20221083.数据维护 QBE有三个数据维护操作:插入元组 I.删除元组 D.修改元组 U.插入操作 插入操作符为“I.”。新插入的元组必须具有键值,其他属性值可以为空。12/23/202210912/23/202211012/23/20221114.视图定义o建立视图的方法类似于建立关系。12/23/20221123.5本章小结o关系数据库系统是本书的重点。这是因为关系数据库系统是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com