您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 91第2章 关系数据库理论基础
第2章关系数据库理论基础要点回顾、知识点:1、关系:元组的集合。2、关系模式:关系名(属性1,属性2,属性3,….,属性n)3、元组:属性值的集合。(一行)4、主码/主关键字。5、E-R模型的画法6、E-R模型与关系模式的转换2.1关系模型概述1、关系模型组成:关系数据结构关系操作集合关系完整性约束2、关系模型的数据结构:一张二维表特点:单一性实体及实体间的联系都用关系来表示。3、关系模型中常用的关系操作包括两大部分:(1)集合的操作方式:并(union)、交(intersection)、差(difference)、选择(select)、投影(project)、连接(join);(2)查询(query)、增加(insert)、删除(delete)、修改(update)。4、关系语言关系代数语言如:ISBL元组关系演算语言如:QUEL关系数据语言关系演算语言域关系演算语言如:QBE具有关系代数和关系演算双重特的语言如:SQL(StructuredQueryLanguage)关系数据语言共同特点:1)完备的表达能力,功能强。2)高度非过程化的集合操作语言。3)可嵌入高级语言中。5、关系的三类完整性约束1)实体完整性2)参照完整性3)用户定义完整性关系的两个不变性2.2关系的基本概念2.2.1关系的数学定义1.域(Domain)域:是一组具有相同数据类型的值集合。例如:{自然数},{男,女},{0,1}等都可以是域。基数:域中数据的个数称为域的基数。如:{0,1}基数为2。域被命名后用如下方法表示:如:D1={白亚春,陈韬,王雪莲},表示姓名的集合,基数是3;D2={计算机系,电子系},表示系的集合,基数是2;返回2.笛卡尔积(CartesianProduct)※给定一组域D1,D2,…,Di,…,Dn(可以有相同的域),则笛卡尔积定义为:D1×D2×…×Di×…×Dn={(d1,d2,…,di,…,dn)|di∈Di,i=1,2,…,n}例如:D1×D2={(陈韬,计算机系),(陈韬,电子系),(王雪莲,计算机系),(王雪莲,电子系),(白亚春,计算机系),(白亚春,电子系)}每个(d1,d2,…,di,…,dn)称为元组,di称为分量。笛卡尔积的基数:所有域的基数累乘积,即:令Di(i=1,2,…,n)为有限集合,其基数为mi(i=1,2,…,n),则D1×D2×…×Di×…×Dn笛卡尔积的基数M为:M=m1×m2×m3…×mn。mMin1i实例:该笛卡尔积的基数是M=m1m2,即该笛卡尔积共有6个元组,它可组成一张二维表如下:姓名系名陈韬计算机系陈韬电子系王雪莲计算机王雪莲电子系白亚春计算机白亚春电子系参见=3*2=6返回3.关系(Relation)※关系定义:笛卡尔积D1D2…Di…Dn的子集R称作在域D1,D2,…,Dn上的关系,记作:R(D1,D2,…,Di,…,Dn)其中:R为关系名,n为关系的度或目(Degree)Di:第i个域名(以取消有序性).当n=1时,称该关系为单元关系;当n=2时,称该关系为二元关系;以此类推,关系中有n个域,称该关系为n元关系。关系做为关系数据模型的数据结构的限定与扩允:(1)无限关系:无意义。(2)每个域附加一个属性名,以取消关系元组的有序性。(3)一个取自笛卡尔积的子集才有意义。姓名系陈韬计算机系王雪莲电子系白亚春计算机系参见关系的三种类型:基本关系(又称基本表):是实际存在的表,它是实际存储数据的逻辑表示;查询表:是对基本表进行查询后得到的结果表;视图表:是由基本表或其它视图导出的表,是一个虚表,不对应实际存储的数据。2.2.2关系的性质1.列是同质的。2.关系中行的顺序、列的顺序可以任意互换,不会改变关系的意义。即行、列无序学号姓名性别出生日期所在系0022102王雪莲女1980-9-15电子系计算机系白亚春男1981-1-2500513090052201陈韬男计算机系1981-5-60052217袁更旭男1980-12-8计算机系3.关系中的任意两个元组不能相同。4.关系中的元组分量具有原子性,即每一个分量都必须是不可分的数据项。学号姓名性别出生日期所在系0022102王雪莲女1980-9-15电子系0051309白亚春男1981-1-25计算机系0051309白亚春男1981-1-25计算机系0052217袁更旭男1980-12-8计算机系5.不同的列可出自同一个域其中的每一列称为一个属性同一关系中:不同的属性要给予不同的属性名如:EMPLOYEE(SSN,NAME,BDATE,SEX,ADDRESS,SALARY,SUPERSSN,DNO)其中:SSN(雇员号)、NAME(雇员姓名)、BDATE(出生日期)、SEX(性别)、ADDRESS(家庭住址)、SALARY(工资)、SUPERSSN(经理号)、DNO(部门号)注:许多RDBMS并不完全满足以上性质。如:Foxpro:可有序插入属性及元组。Oracle、Foxpro、Sqlserver等:允许关系表中存在完全相同的元组(针对查询表)2.2.3键1.候选键(Candidatekey)/候选码(可以一个或多个):若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选键。如:教师(工号,姓名,性别,出生年月,身份证号,职称,家庭地址,系号)2.主键(Primarykey)/主码(只有一个)若一个关系中有多个候选键,则选定一个为主键如:选定“工号”3.主属性(PrimaryAttribute)候选码所包含的各属性称为主属性。如主属性:工号、身份证号4.非主属性(Non-keyattribute):不包含在任何候选码中的属性。如:姓名、性别、出生年月、职称、家庭地址、系号5.外键(Foreignkey)设F是基本关系R的一个或一组属性,但不是R的主码,但F是基本关系S的主码,则称F是R的外键。R:为参照关系(referencingrelation);S:为被参照关系(referencedrelation)(或目标关系(TargetRelation))。如:教师(工号,姓名,性别,出生年月,身份证号,职称,家庭地址,系号)系(系号,系名)注:不仅两个或两个以上关系间可以存在引用关系,同一关系内部属性间也可。例如:课程号学号成绩C20100221075C50500513095C50800522092C50600522180学号姓名性别出生日期所在系班长号002210王雪莲女1980-9-15电子系002210005130白亚春男1981-1-25计算机系002210005220陈韬男1981-5-6计算机系002210005221袁更旭男1980-12-8计算机系002210注:候选码特性1)唯一性(uniqueness)2)最小性(minimally)6.全码(All-Key)关系模式中所有属性的组合是这个关系模式的候选码.课程号教师号C2010022102C5050051309C5050052201C50600522012.2.4关系模式(RelationSchema)1)关系模式是型,关系是值。2)关系实质是一张二维表,关系是元组的集合。3)关系模式的定义:关系的描述。完整的形式化表示如下:R(U,D,dom,F)简记R(U)或R(A1,A2,…,An)R:关系名;U:属性名集合,D:属性所来自的域;dom:属性向域的映象集合,F:属性间数据的依赖关系集合。属性向域的映象集合:说明每个属性所对应的域。即直接说明属性的类型、长度等。如性别:{男、女}2.2.5关系数据库1)在关系模型中,实体及实体间的联系都是用关系来表示的。2)关系数据库:由实体及实体间联系的关系的集合构成。3)关系数据库模式:对数据库的描述。(如包含若干域的定义及在这些域上定义的若干关系模式)2.2.6完整性约束:对关系的某种约束条件。1)实体完整性(EntityIntegrity)规则1:实体完整性规则若属性A是基本关系R的主码所包含的属性,则属性A不能取空值。注:主码:不能为空,且主码整体取值也不为空。例:选修(学号,课程号,成绩)实体完整性规则:(1)针对基本表而言(2)实体可区分,且有某种唯一性标识。(3)关系模型中以主码为唯一标识。(4)空值:“不知道”或“无意义”。2)参照完整性(ReferentialIntegrity):定义实体与实体之间的联系。定义:同外键的定义。例:学生(学号,姓名,性别,专业号,出生年月)课程(课程号,课程名,学分)选修(学号,课程号,成绩)注:✾同一关系内部属性间也可以存在引用关系,外码与所参照的属性必须定义在同一个(或一组)域上。思考:参照关系?被参照关系?✾外码与相应的主码名可以取不同的名字(常同)规则2:参照完整性规则若属性(或属性组)F是基本关系R的外码,它是基本关系S的主码(R和S可以为同一关系),则对于R中每个元组在F上的值必须为:(1)取空值(F中的每个属性均为空);针对F不是主码中的属性。(2)非空值,须为所参考主属性所包含的值。如:选课关系中,“学号”须为学生表中已存在的。实例3)用户定义完整性(User-definedIntegrity)商品编号商品名称价格T01照相机3200T02游戏光碟8T05mp3500T07手机2349会员编号姓名商品编号H001杨林T01H006祝小兰H002陈洪T05H005关羽T45(错)商品会员商品编号为主码,不允许为空,且不重复允许为空值返回RDML的基础是关系运算。关系运算分为两类:1、关系代数(Relationalgebra)关系代数的运算可分为:(1)传统的集合运算:并、差、交和笛卡尔积。(2)专门的关系运算:投影、选择、联接。2、关系演算:用谓词来表达查询要求的方式。关系演算按谓词变元来分:(1)元组关系演算(2)域关系演算2.3关系运算2.3.1关系代数※一种抽象的查询语言,用关系的运算来表达查询。※关系代数运算的三个要素:运算对象:关系运算结果:关系运算符:四类(1)集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行(2)专门的关系运算符不仅涉及行而且涉及列(3)算术比较符辅助专门的关系运算符进行操作(4)逻辑运算符辅助专门的关系运算符进行操作集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义关系代数运算符(待续)专门的关系运算符σπ÷选择投影连接除逻辑运算符∧∨非与或运算符含义运算符含义关系代数运算符(续)2.3.1传统的集合运算要求参与运算的两个关系必须是相容的:参与操作的两个元组必须限定为同类型的,即含有相同的属性,且对应属性的值域相同。传统的集合运算是二目运算。设:t为元组。1.并并:是将两个关系中的所有元组构成新的关系,并运算的结果中必须消除重复值。关系R与S的并运算记作:R∪S。条件:R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S仍为n目关系,由属于R或属于S的元组组成R∪S={t|tR∨tS}并ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S实例A:某学生成绩管理系统使用的数据表部分数据如下:学号课程号成绩050101800502027005040165G1学号课程号成绩0501018005070290G2G1UG2学号课程号成绩050101800502027005040165050702902.交交:将两个关系中的公共元组构成新的关系。关系R与S的交运算记作:R∩S。条件:R和S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成R∩S={t|tR∧tS}交ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S参见实例A:学号课程号成绩050
本文标题:91第2章 关系数据库理论基础
链接地址:https://www.777doc.com/doc-3419866 .html