您好,欢迎访问三七文档
第3章关系数据库●3.1关系模型及其定义●3.1.1关系数据结构●3.1.2关系操作概述●3.1.3关系的完整性●3.2关系数据库的三级模式●3.3关系代数●3.3.1传统的集合运算●3.3.2专门的关系运算3.1关系模型3.1.1关系数据结构3.1.2关系操作3.1.3关系的完整性约束一、关系的数学定义关系模型建立在集合代数的基础上。•域的定义:域是一组具有相同数据类型的值的集合例:{0,1}、{张三、李斯}、{数学、外语、计算机}2)笛卡儿积的定义:给定一组域D1,D2,…,Dn,这些域中可以有相同的部分,则笛卡儿积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}.3.1.1关系数据结构•其中每一个元素(d1,d2,…,dn)称为一个元组。元素中的每一个值di称作一个分量。•一个元组中所包含的分量的个数称为元数。若D1×D2×…×Dn为有限集,其元组的个数称为基数。基数=m1×m2×mi…×mn(mi各域的基数,既值的个数)理解:笛卡儿积就是各域中元素所有的组合。例:D1=姓名={王五,李四,张三};D2=性别={男,女};D1×D2={(王五,男),(王五,女),(李四,男),(李四,女)(张三,男),(张三,女)}理解:笛卡儿积就是各域中元素所有的组合。姓名王五李四张三性别男女姓名性别王五男王五女李四男李四女张三男张三女D1D2D1×D2元数=2基数=3×2=62)关系的定义:D1×D2×…×Dn的子集称作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn).这里:R表示关系的名字,n是关系的目或度,也就是关系的元数。姓名性别王五男李四女张三男关系:从笛卡儿积中抽取有意义的元组所形成的有限子集。二、关系中的基本术语3.1.1关系数据结构1)元组:关系表中的每一横行称作一个元组,组成元组的元素为分量。2)属性:关系中的每一列称为一个属性。3)元数:关系中属性的个数。4)基数:关系中元组的个数。5)属性的值域:属性的取值范围。6)码(也称“键”或“关键字”):能唯一标识元组的属性或属性组。候选键:(不含有多余属性)主属性包含在任何一个候选键中的属性非主属性不包含在任何候选键中的属性主键:从候选键中确定一个作为主键(主码)每个关系都必定有且只有一个主键对于一个关系,主键一经确定,通常是不能随意改变的。全码:若关系中只有一个候选码,且这个候选码中包含全部属性,则称这种候选码为全码。如:学生选课(学号,课程)例:职工(职工编号,姓名,部门编号,性别,年龄,身份证号)部门(部门编号,部门名称,部门经理)注:在关系数据库中,表与表之间的联系是通过公共属性实现的。这个公共属性是一个表的主键和另一个表的外键,这是关系数据库的特点。对于职工关系:候选键——(职工编号),(身份证号)主键——(职工编号)外键——(部门编号)外部关键字(外键):若关系R中的一个或一组属性不是R的主键,但却是另一关系S的主键,则称该属性或属性组为关系R的外键(ForeignKey)。(外键是R和S的公共属性)三、数据库中关系的类型3.1.1关系数据结构1.基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。2.视图表:视图表是由基本表或其他视图表导出的表。(虚表,数据根据需要从一个或多个基本表抽取组成,并不实际存储)四、数据库中关系的基本性质3.1.1关系数据结构•每一分量必须是不可分的最小数据项,即每个属性都是不可再分解的,这是关系数据库对关系的最基本的限定。P71•列的个数和每列的数据类型是固定的,即每一列中的分量是同类型的数据,来自同一个值域(同质性)。•不同的列可以出自同一个值域,关系中的属性名不能重复。四、数据库中关系的基本性质3.1.1关系数据结构•列的顺序是无关紧要的,即列的次序可以任意交换,但一定是整体交换,属性名和属性值必须作为整列同时交换。•行的顺序是无关紧要的,即行的次序可以任意交换。•元组不可以重复,即在一个关系中任意两个元组不能完全一样。五、关系模式的定义3.1.1关系数据结构关系模式通常可以简单记为:R(U)或R(A1,A2,…,An).其中:R为关系名,A1,A2,…,An为属性名。关系模式是关系的“型”,是关系的框架或结构。关系是按关系模式组织的表格,即包括结构也包括具体的数据(即元组)。六、关系数据库3.1.1关系数据结构•关系的集合就构成了一个关系数据库。•关系数据库的“型”称为关系数据库模式,它是对关系数据库的描述,包括若干域的定义以及在这些域上定义的若干关系模式。3.1主要理解两个特点:3.1.2关系操作•关系中数据的操作是集合操作。操作的原始数据、中间数据或结果数据都是若干元组的集合,而不是单记录的操作方式。•关系操作语言是高度非过程化的语言用户使用关系语言时,只需要指出“做什么”,而不需要指出“怎么做”,数据存取路径的选择、数据操作方法的选择和优化都由DBMS自动完成。关系操作包括数据查询、数据维护和数据控制三大功能。基于关系代数3.13.1.3关系模型的完整性约束•实体完整性规则•参照完整性规则•用户定义完整性是必须满足的完整性约束条件,由DBMS自动支持一、实体完整性规则•实体完整性规则的具体内容是:若属性A是关系R的主属性,则属性A不可以为空值。空值:是跳过或不输的属性值,用“NULL”表示,空值说明“不知道”或“无意义”或“不可确定”的值。•说明:–实体完整性能够保持实体的惟一性–实体完整性能够保持实体的可区分性所有主属性,不仅是主键在关系数据库系统中通过说明主关键字来实现实体完整性,关系数据库系统DBMS可以自动支持关系的实体完整性。二、参照完整性规则参照关系和被参照关系:在关系数据库中可以通过外部关键字使两个关系关联,这种联系通常是一对多(1:n)的,其中主(父)关系(1方)称为被参照关系,从(子)关系(n方)被称为参照关系。两个相关关系(两者之间存在属性引用),外部关键字所在的关系为参照关系,而其作为主键所在的关系为被参照关系。例2:学生管理数据库中有关系:学生(学号,姓名,性别,年龄,班级号):参照关系班级(班级号,班级名,人数,专业号):被参照关系•学生关系与班级关系之间存在属性引用,学生关系中的某个属性的取值需要参照班级关系的属性取值。•“班级号”属性只能取:空值“NULL”或非空值。•“班级号”属性是学生关系的外部关键字。例3:学生管理数据库中有关系:学生(学号,姓名,性别,年龄,班级号):被参照关系课程(课程号,课程名,学分,周学时):被参照关系选修(学号,课程号,成绩):参照关系•学生、课程与考试三个关系之间存在属性的引用。•“学号”和“课程号”属性是选修关系的外部关键字。参照完整性规则•如果属性(或属性组)F是关系R的外部关键字,它与关系S的主关键字K相对应,则对于关系R中每个元组在属性(或属性组)F上的值必须为:(1)或者取空值(F的每个属性均为空值);(2)或者等于S中某个元组的主关键字的值。在关系数据库系统中通过说明外部关键字来实现参照完整性,而说明外部关键字是通过说明引用的主关键字来实现的,也即通过说明外部关键字,关系数据库系统的DBMS则可以自动支持关系的参照完整性。三、用户定义完整性•一种与具体应用密切相关的数据完整性约束,反映该应用所涉及的数据必须满足的语义要求。如–某个属性的值必须唯一–某个属性的取值必须在某个范围内–某些属性值之间应该满足一定的函数关系等•DBMS提供定义和检验这类完整性的机制。四、完整性约束的作用•执行插入操作时检查完整性–执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。•执行删除操作时检查完整性–执行删除操作时一般只需要检查参照完整性规则。•执行更新操作时检查完整性–执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。3.33.2关系数据库的三级模式关系数据库系统也是三层模式的数据库系统,同样可以划分为存储模式、概念模式和外部模式三个层次。SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外模式模式内模式用户关系数据库的概念模式(模式)•在DBMS中,一个关系就是一个基本表,基本表的集合组成数据库。全体基本表构成数据库的全局概念模式。•关系概念模式主要包括对出现在关系数据库中的每个基本表的说明及其基本表之间联系的说明,它包括对关系名、属性名、属性的类型的说明,以及主关键字的说明、外部关键字的说明和属性的取值范围与约束条件的说明等。•在SQL语句中定义基本表的命令是CREATETABLE,它可以完成定义概念模式需要的所有功能,修改基本表定义的命令是ALTERTABLE命令。供应表SPJ(SNO,PNO,JNO,PRICE,CITY)数据库设计说明字段名中文名称类型长度说明SNO供应商号C4FKPNO零件号C4FKJNO工程项目号C4FKPRICE价格N7,2QTY数量N4(0,1000)供应商SPJ(SNO,PNO,JNO,PRICE,CITY)CREATETABLESPJ(SNOCHAR(4)NOTNULL,PNOCHAR(4)NOTNULL,JNOCHAR(4)NOTNULL,PRICENUMERIC(7,2),QTYSMALLINT,PRIMARYKEY(SNO,PNO,JNO)FOREIGNKEY(SNO)REFERENCES(SNO),FOREIGNKEY(PNO)REFERENCEP(PNO),FOREIGNKEY(JNO)REFERENCEJ(JNO),CHECK(QTYBETWEEN0AND1000));关系数据库的存储模式(内模式)•每个基本表逻辑上都对应于存储文件(磁盘上的物理文件),存储文件的逻辑结构组成了关系数据库的存储模式,但是用户无需了解存储文件的物理结构,它对用户是透明的。即关系数据库的存储模式几乎不需要用户说明,关系数据库管理系统可以自动完成对基本表的存储。•对用户来说,在关系数据库中与存储模式有关的说明只有索引的说明,索引是为基本表建立,一个表可以带若干个索引,索引也放在存储文件中。关系数据库的外模式•视图和部分基本表构成关系数据库的外模式。•视图(View)是指从一个或几个基本表导出的表。视图是一个虚拟的表,它本身并不真正包含数据,在数据库中存储的是视图的定义,其数据仍存放在与视图相关的基本表中。•用户看到的可以是视图,也可以是基本表。基本表和视图都是关系、都是表,它们在概念上是等同的,用户可以在其上进行查询等各种操作、可以在视图上再定义视图。•视图的定义由SQL语言中的CREATEVIEW完成。CREATEVIEWtitleviewASselecttitle,au_ord,au_lname,price,ytd_sales,pub_idfromauthors,titles,titleauthorwhereauthors.au_id=titleauthor.au_idANDtitles.title_id=titleauthor.title_id3.3关系代数3.3.1传统的集合运算3.3.2专门的关系运算关系代数的运算对象是关系,关系代数的运算结果也是关系。与一般的运算一样,运算对象、运算符和运算结果也是关系代数的三个要素。3.3.1传统的集合运算1.并运算2.交运算3.差运算4.笛卡尔积运算•传统的集合运算是二元运算,它将关系看作是元组的集合,参与运算的关系具有相同的目(度),且相应的属性值取自同一个值域,则可以定义:并运算、交运算、差运算、笛卡尔积运算关系R与关系S1.并运算•是指将一个关系的元组加到另一个关系中,生成新的关系。•关系R和S的并运算记为R∪S={t|tR∨tS}。•元组在新的关系中出现的顺序是无关紧要的,但必须消除重复元组。R与S的并集及结果2.交运算•取两关系的共有元组。•关系R和S的交运算记为R∩S={t|tR∧tS}。3.差运算•R和S差运算的结果关系仍为n目关
本文标题:第3章 关系数据库
链接地址:https://www.777doc.com/doc-3878898 .html