【教学课件】第2章数据模型.ppt

上传人:小飞机 文档编号:5658334 上传时间:2023-08-06 格式:PPT 页数:71 大小:222KB
返回 下载 相关 举报
【教学课件】第2章数据模型.ppt_第1页
第1页 / 共71页
【教学课件】第2章数据模型.ppt_第2页
第2页 / 共71页
【教学课件】第2章数据模型.ppt_第3页
第3页 / 共71页
【教学课件】第2章数据模型.ppt_第4页
第4页 / 共71页
【教学课件】第2章数据模型.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《【教学课件】第2章数据模型.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第2章数据模型.ppt(71页珍藏版)》请在三一办公上搜索。

1、第2章 数据模型,2.1 层次数据模型 2.2 网状数据模型 2.3 关系数据模型 2.4 E-R数据模型 2.5 面向对象数据模型*,2.1 层次数据模型,2.1.1 基本概念和结构记录(record)和字段(field)记录:描述事物或事物间关系的命名的数据单位,也是存储的数据单位。(图 2-1)字段:记录的构成部分。(图 2-2)双亲子女关系(PCR)层次数据模型的基本关系,表示两个记录型间的1:N关系。(图 2-3)双亲记录、子女记录PCR型与PCR实例(图 2-4)层次数据模式和实例由双亲子女关系(型)构成(树型)(图 2-5)层次数据库实例(图 2-6),2.1 层次数据模型,非层

2、次型数据的表示多对多(M:N)关系的表示 冗余记录法(图 2-7/2-8)一个记录型是两个以上PCR中的子女 图 2-9/2-10多元关系的表示(n-ary relationship)多元关系示意图(图 2-11)用PCR表示的三元关系(图2-12)虚拟记录(virtual record)用虚拟记录表示M:N关系(图 2-13)用虚拟记录表示一个记录型是两个以上PCR中的子女(图2-14)用虚拟记录表示三元关系(图2-15),2.1 层次数据模型,2.1.1 基本概念和结构层次数据的线形表示存储器是线性排列的树的先序遍历(proorder traversal)层次序列(hierarchical

3、 sequence)(图 2-16)2.1.2 约束除了根记录以外,任何其他记录不能离开其双亲而孤立地存在;任何记录,无论“虚实”,只允许有一个双亲记录,即层次数据模式及其实例总是树形;虚拟记录的指针必须指向一个实际存在的记录;有虚拟记录指向的记录不得删除;虚拟记录不得为根记录;,2.1 层次数据模型,2.1.3 操作Get Unique(GU)按给定条件,沿层次路径查找所需的记录。例:GU 系(系名=计算机),班(名称=计算机01班),学生Get Next Within Parent(GNP)在当前记录的双亲下,按层次序列查找下一个记录。例:GU 系(系名=计算机),班(名称=计算机01班)

4、,学生;while not fail do GNP 学生;,2.1 层次数据模型,2.1.3 操作Get Next(GN)按照层次序列,不受同一双亲的限制,查找当前记录的下一个记录。例:GU 系(系名=计算机),班(名称=计算机01班),学生;while not fail do GNP 学生;GN 学生;while not fail do GNP 学生;2.1.4 对层次数据模型的评价非层次型数据的处理数据独立性,2.2 网状数据模型,2.2.1 基本概念和结构记录和数据项(data items)记录:数据的存储单位,可包含若干数据项;数据项:相当于字段,但与层次模型不同,数据项可以是简单数据

5、类型,也可以是多值或复合的数据;简单多值数据项称为向量(vector),复合多值数据项称为重复组(repeating group).记录型/记录值:数据库码(database key,DBK):记录的逻辑地址;,2.2 网状数据模型,2.2.1 基本概念和结构系(set)两个记录型之间的1:N联系(首记录,属记录)系型和系值(图 2-17)单属记录系/多属记录系(图 2-18)联系记录(图2-19)M:N联系的表示(图2-21)奇异系(无首系/单值系)多元联系的表示(图2-22)系的链式(chain)实现:向前指针、向后指针、首记录指针(图2-23),2.2 网状数据模型,2.2.2 约束一个

6、记录(值)不能出现在同一系型的多个系值中;(图2-20)插入新记录的插入系籍(set membership)类别:AUTOMATIC(自动的):MANUAL(手工的):已插入到某个系值中的属记录的留置系籍类别:OPTIONAL(任意的):MANDATORY(强制的):FIXED(固定的):删除系的首记录时对相关属记录值的处理规则:如果留置系籍类别为OPTIONAL如果留置系籍类别为MANDATORY如果留置系籍类别为FIXED,2.2 网状数据模型,2.2.3 操作FIND(查找):按照指定的条件在数据库中查找一个记录,并设置适当的当前值;GET(读入):将指定的记录或数据项读入内存;STOR

7、E(保存):将一个记录插入到数据库中,并按照插入系籍约束加入到有关的系值中;MODIFY(修改):修改指定记录中的数据项;ERASE(删除):从数据库中删除指定的记录;CONNECT(加入):将一个属记录值加入指定的系值中;RECONNECT(转移):将一个属记录值转移到一个新的指定的系值中;DISCONNECT(撤离):将一个属记录值从所在的系值中撤离;2.2.4 对网状数据模型的评述,2.3 关系数据模型,2.3.1 基本概念和定义 关系模型是以集合论中的关系(relation)概念为基础发展起来的数据模型。关系的数学定义域(domain):域是一组具有相同数据类型的原子值的集合。记为D,

8、D1,D2,Dn。例:Integer,Real,char10,0,1,M,Fn-元组(n-tuple):设D1,D2,Dn为一组域(其中允许重复),则称(d1,d2,dn)(di Di,i=1,2,n)为一个n-元组,并称di为(d1,d2,dn)的第i个分量。笛卡儿乘积(Cartsian product):设D1,D2,Dn为一组域(其中允许重复),则称定义在D1,D2,Dn上的所有n-元组构成的集合为D1,D2,Dn的笛卡儿乘积,记为:D1D2Dn(d1,d2,dn)diDj,j1,2,n,2.3 关系数据模型,关系的数学定义(续)定义1(关系):设D1,D2,Dn为一组域(其中允许重复)

9、,则称D1,D2,Dn的笛卡儿乘积的任意一个子集R为定义在D1,D2,Dn上的一个(n-元)关系。记为:R(D1,D2,Dn),这里R表示关系名,n是关系的目或度(Degree)。由于上述定义中的D1,D2,Dn允许出现重复,为避免二义性引入下列定义:定义2(关系模式):关系的描述称为关系模式(Relation Schema)。一个关系模式是一个五元组。它可以形式化地表示为:R(U,D,DOM,F)。其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映象集合,F为属性间数据的依赖关系集合。定义3(关系):给定一个(n-元)关系模式R(A1/Dom(A1

10、),A2/Dom(A2),An/Dom(An),则称Dom(A1),Dom(A2),Dom(An)的笛卡儿乘积上的任意一个子集r(R)为定义在关系模式R(A1,An)上的一个(n-元)具体关系。,2.3 关系数据模型,关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系,可以从上下文中加以区别。例:ifcustomer-name=Jones,Smith,Curry,Lindsaycustomer-street=Main

11、,North,Parkcustomer-city=Harrison,Rye,PittsfieldThen r=(Jones,Main,Harrison),(Smith,North,Rye),(Curry,North,Rye),(Lindsay,Park,Pittsfield)其中,r是基于上述三个域上的一个具体关系。,2.3 关系数据模型,关系的直观描述直观的看,关系是一个由若干“行”(row)和“列”(column)构成的“二维表”,例如:,JonesSmithCurryLindsay,customer-name,MainNorthNorthPark,customer-street,Harr

12、isonRyeRyePittsfield,customer-city,customer,属性attributes,元组tuples,3.关系的限制属性不可重复;元组不可重复;元组间无序;属性间无序;每一属性不可再分,2.3 关系数据模型,2.3 关系数据模型,4.键超键(super key,SK):如果一组属性K可以唯一标识R中的每一个元组,则称K是R的超键。候选键(candidate key,CK):如果一组属性K是最小的超键,则称K是R的候选键。主键(primary key,PK):若一个关系有多个候选键,则选定其中一个为主键。次键(alternate key):主键以外的其他候选键称为次

13、键全键(all key):在最简单的情况下,侯选键只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的侯选键,称为全键(All-key)。,2.3 关系数据模型,4.键(续)主属性(prime attribute):包含在主键中的诸属性称为主属性。非主属性(non-prime attribute):不包含在任何侯选键中的属性称为非主属性。外键(foreign key):设F是基本关系R的一个或一组属性,但不是关系R的键,如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键(Foreign key)。5.关系的类型基本关系(通常又称为基本表或基表):是实际存在的表,它是

14、实际存储数据的逻辑表示。查询表:是查询结果对应的表。视图表:是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。,2.3 关系数据模型,2.3.2 约束 域完整性约束(domain integrity constraint)规则2.1(域完整性约束规则):任何属性只能取其域中的值或者null。实体完整性约束(entity integrity constraint)规则2.2(实体完整性规则):若属性A是基本关系R的主属性,则属性A不能取空值。说明:一个基本关系通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系

15、模型中以主键作为唯一性标识。主键中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。,2.3 关系数据模型,参照(引用)完整性约束(referential integrity constraint)规则2.3(参照完整性规则):若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。用户定义的

16、完整性约束(user defined integrity constraint)用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。,2.3 关系数据模型,2.3.3 关系运算关系运算采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合的方式。关系模型中常用的关系操作包括二类:查询操作 增、删、改操作 表达(或描述)关系操作的关系数据语言可以分为三类:关系代数:是用对关系的运算来表达查询要求的方式。关系演算:是用谓词来

17、表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。介于关系代数和关系演算之间的语言SQL(Standard Query Language),2.3 关系数据模型,2.3.4 关系代数 关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符(,)专门的关系运算符(,)算术比较符(,)逻辑运算符(,)比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以

18、关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类。,2.3 关系数据模型,1.传统的集合运算 并(Union)设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS 差(Difference)设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS交(Intersection Referential integrity)设关系R和关系S具有相同的

19、目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS,2.3 关系数据模型,1.传统的集合运算4)广义笛卡尔积(Extended cartesian product)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1k2个元组。记作:RStrts|trRtsS,2.3 关系数据模型,(a)关系R,(b)关系S,(c)RS,2.3 关系数据模型,(d)RS,(e)R

20、-S,(f)RS,2.3 关系数据模型,2.专门的关系运算选择(Selection)选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:F(R)=t|tR F(t)=真 其中F表示选择条件,它是一个逻辑表达式,取逻辑值真或假。逻辑表达式F的基本形式为:X1 Y1 X2 Y2 表示比较运算符,它可以是、或。X1、Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。表示逻辑运算符,它可以是、或。表示任选项,即 中的部分可以要也可以不要,.表示上述格式可以重复下去。因此选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。,选

21、择操作示例,Relation r,A,B,C,D,151223,77310,A=B D 5(r),2.3 关系数据模型,2)投影记作:A1,A2,Ak(r)其中A是属性名,r是关系名。结果是包含K个列的关系,其它的列被删除了。由于关系是集合,故结果中消除了重复的行。例如,查询学生的姓名和所在系,即求Student关系在学生姓名和所在系两个属性上的投影。Sname,Sdept(Student)或2,5(Student)其中下角标“2”“5”为Sname,Sdept的属性序号。,2.3 关系数据模型,3)连接连接也称为连接。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:R S=tr

22、ts|trRtsStrA tsB AB其中A和B分别为R和S上度数相等且可比的属性组。是比较运算符。连接运算从R和S的广义笛卡儿积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。连接运算中有两种最为重要也最为常用的连接,一种是等值连接,另一种是自然连接。为“”的连接运算称为等值连接。它是从关系R与S的广义笛卡儿积中选取A,B属性值相等的那些元组,即等值连接为:R S=trts|trRtsStrA=tsB A=B,2.3 关系数据模型,自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若R和S具有相

23、同的属性组B,则自然连接可记作:R S=trts|trRtsStrB=tsB 一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。例 如图(a)和(b)分别是关系R和关系S,图(c)为R S CE的结果,图(d)为等值连接R S的结果,图(e)为自然连接RS的 R.B=S.B结果。,2.3 关系数据模型,(a),(b),(c),2.3 关系数据模型,(d),(e),2.3 关系数据模型,可以证明:关系代数操作集,是完备的操作集。由于笛卡儿积可以看成连接的特例,关系完备操作集也可表示为,,任何其他关系代数操作都可以用这五种操作来表示。一个DBMS所支

24、持的关系是否完备,只要看它能否表达这些操作。大部分关系DBMS都直接或间接地支持操作集,,则称这种DBMS是关系完备的。,2.3 关系数据模型,4)除给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R和S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X分量值x的象集Yx包含S在Y上投影的集合。记作:RS=trX|trRy(S)Yx其中Yx为x在R中的象集,x=trX。除操作是同时从行和列角度进行运算。例如图(a)和(b)分别是关系R和关系S,RS的结果为图(c)。,2.3 关系数据模

25、型,在关系R中,A可以取四个值a1,a2,a3,a4。其中:a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c3),(b2,c1)显然只有a1的象集(B,C)a1包含了S在(B,C)属性组上 的投影,所以RS=a1,(a)关系R,(b)关系S,(c)RS,2.3 关系数据模型,普遍地讲,设有关系R(X,Y),S(Y),X、Y为属性组,S(Y),则RS=x(R)-x(x(R)S)-R)设有关系R(X,Y),S(Y,Z),X、Y、Z为属性组,Y(S

26、),则RS=x(R)-x(x(R)Y(S)-R)参照图224(P29)的例子,不难理解“除操作”的定义。5)外连接外连接与连接的区别在于保留非匹配元组。由于非匹配元组无元组与之匹配,在其空缺部分填以NULL。共有三种外连接。左外连接:以符号表示,在连接结果中,只保留左关系的所有元组;右外连接:以符号表示,在连接结果中,只保留右关系的所有元组;全外连接:以符号表示,在连接结果中,保留左右关系的所有元组;,2.3 关系数据模型,例如图(a)和(b)分别是关系R和关系S,图(c)为R和S的自然连接操作R S的结果,图(d)为全外连接操作RS的结果,图(e)为左外连接RS的结果,图(f)为右外连接RS

27、的结果。,(a)关系R,(b)关系S,(c)RS,2.3 关系数据模型,(d)RS,(e)RS,(f)RS,2.3 关系数据模型,6)外并操作外并操作是并操作的扩展,可以对非并兼容的两关系进行并操作。外并操作的结果属性集等于两关系属性集的并。在进行外并操作时,对于那些元组中没有的属性,可以填以NULL。例 如图(a)和(b)分别是关系R和关系S,图(c)为R和S做外并操作后的结果,2.3 关系数据模型,(a)关系R,(b)关系S,(c)RS,2.3 关系数据模型,2.3.5 关系演算把数理逻辑的谓词演算应用到关系运算中,就可得到关系演算运算。关系演算可分为元组关系演算和域关系演算,前者以元组为

28、变量,后者以域为变量,分别简称为元组演算和域演算。1.元组关系演算元组关系演算(tuple relational calculus)表达式(简称为元组表达式)的一般形式为t|P(t),其中t是元组变量,表示一个定长的元组;P是公式,公式由原子公式组成。原子公式有下列三种形式:(1)R(s),其中R是关系名,s是元组变量。(2)si uj,其中s和u是元组变量,是算术比较运算符,si 和uj分别是s的第i个分量和u的第j个分量。(3)si a或a si,这里a是常量。,2.3 关系数据模型,在定义关系演算操作时,要用到“自由”和“约束”元组变量概念。在一个公式中,如果元组变量的前面没有存在量词或

29、全称量词等符号,那么称之为自由元组变量,否则称之为约束元组变量。公式、公式中的自由元组变量、约束元组变量递归定义如下:每个原子是一个公式。原子中的元组变量在公式中是自由变量。如果P1和P2是公式,那么P1,P1P2,P1P2,P1P2也是公式。如果P1是公式,那么(s)(P1)也是公式。如果P1是公式,那么(s)(P1)也是公式。在公式中各种运算符的优先级从高到低依次为:、和、和、。公式只能由上述五种形式组成,除此之外构成的都不是公式。,2.3 关系数据模型,在元组关系演算表达式t|P(t)中,t必须是P(t)中惟一的自由元组变量。例 如图(a),(b)是两个已知关系R和S,(c),(d),(

30、e),(f)分别表示下面四个元组演算表达式的值:R1t|R(t)S(t)R2t|(u)(S(t)R(u)t3 u1)R4=t|(u)(v)(R(u)S(v)u1 v2 t1=u2 t2=v3 t3=u1),2.3 关系数据模型,(a)关系R,(b)关系S,(c)R1,(d)R2,(e)R3,(f)R4,2.3 关系数据模型,关系代数表达式可用元组表达式表示。由于所有关系代数表达式都能用五种基本操作的组合表示,因此我们只要能把五种基本操作表示成元组演算表达式就行。例如:RS可用t|R(t)S(t)表示;RS可用t|R(t)S(t)表示;RS可用t|(u)(v)(R(u)S(v)t1=u1tr=u

31、rtr+1=v1 tr+s=vs)表示,此处设R是r元,S是s元;i1,ik(R)可用t|(u)(R(u)t1=ui1tk=uik)表示;F(R)可用t|R(t)F表示,F是F在元组演算中的等价表示形式。,2.3 关系数据模型,例 设关系R和S都是二元关系,把关系代数表达式1,4(2=3(RS)转换成元组演算表达式的过程如下:RS可用t|(u)(v)(R(u)S(v)t1=u1t2=u2t3=v1 t4=v2)表示;对于2=3(RS)只要在公式中加入“t2=t3”即可;对于1,4(2=3(RS)可以得到下面的元组表达式:w|(t)(u)(v)(R(u)S(v)t1=u1t2=u2t3=v1 t

32、4=v2 t2=t3 w1=t1 w2=t4)再对上式化简,去掉元组变量t可得下面表达式:w|(u)(v)(R(u)S(v)u2=v1 w1=u1 w2=v2),2.3 关系数据模型,例数据库中有三个关系:S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE)试用关系代数表达式和元组关系演算表达式表达每个查询语句。检索学习课程号为C2的学生学号与成绩s#,GRADE(C#=C2(SC),也可以写成:1,3(2=C2(SC)t|(u)(SC(u)u2=C2 t1=u1 t2=u3)检索学习课程号为C2的学生学号与姓名S#,SNAME(C#=C2

33、(SSC)t|(u)(v)(S(u)SC(v)v2=C2 u1=v1 t1=u1 t2=u2)这里u1=v1 是S和SC进行自然联接操作的条件,在表达式中不可缺少。,2.3 关系数据模型,检索选修课程名为Maths的学生学号与姓名s#,SNAME(CNAME=Maths(SSCC)t|(u)(v)(w)(S(u)SC(v)C(w)u1=v1 v2=w1 w2=Maths t1=u1 t2=u2)检索选修课程号为C2或C4的学生学号s#(C#=C2 C#=C4(SC)t|(u)(SC(u)(u2=C2u2=C4)t1=u1)检索至少选修课程号为C2和C4的学生学号s#(1=42=C2 5=C4(

34、SCSC)这里(SCSC)表示关系SC自身相乘的笛卡儿积操作。t|(u)(v)(SC(u)SC(v)u2=C2 v2=C4 u1=v1 t1=u1),2.3 关系数据模型,检索不学C2课的学生姓名与年龄 SNAME,AGE(S)-SNAME,AGE(C#=C2(SSC)t|(u)(v)(S(u)SC(v)(u1=v1 v2 C2)t1=u2 t2=u3)检索学习了全部课程的学生姓名SNAME(S(S#,C#(SC)C#(C)t|(u)(v)(w)(S(u)C(v)SC(w)u1=w1w2=v1 t1=u2),2.3 关系数据模型,2.域关系演算域关系演算(domain relational c

35、alculus)和元组关系演算是类似的,不同之处是用域变量代替元组变量的每一个分量,域变量的变化范围是某个值域而不是一个关系。可以像元组演算一样定义域演算的原子公式和公式。原子公式有下列两种形式:R(x1xk),R是一个k元关系,每个xi是常量或域变量;xy,其中x,y是常量或域变量,一般至少有一个是域变量,是算术比较运算符。域关系演算的公式中也可使用,等逻辑运算符,用它们与(x)和(x)形成新的公式,但变量x是域变量,不是元组变量。自由域变量、约束域变量等概念和元组演算中一样,这里不再重复。域演算表达式是形为t1tk|P(t1,tk)的表达式,其中P(t1,tk)是关于自由域变量t1tk的公

36、式。,2.3 关系数据模型,例如图(a),(b),(c)是三个关系R,S和W,(d)(e)(f)分别表示下面三个域表达式的值:R1=xyz|R(xyz)x3R2=xyz|R(xyz)(S(xyz)y=4)R3=xyz|(uv)(R(zxu)W(yv)uv)这里(uv)是(u)(v)的简写形式。,2.3 关系数据模型,(a)关系R,(b)关系S,(c)关系W,(d)R1,(e)R2,(f)R3,2.3 关系数据模型,我们可以很容易地把元组表达式转换成域表达式:设元组表达式是t|P(t),t是k元的元组变量,那么引进k个域变量t1tk,在公式中t用t1tk替换,ti用ti替换。对于每个量词(u)或

37、(u),若u是m元的元组变量,那么引入每个新的域变量u1um。在量词的辖域内,u用u1um替换,ui用ui替换,(u)用(u1)(um)替换(简写为(u1um),(u)用(u1)(um)替换(简写为(u1um)。例如前面例子转换成的元组表达式为:w|(u)(v)(R(u)S(v)u2=v1 w1=u1 w2=v2),2.3 关系数据模型,可用上述转换方式转换成的下列域表达式:w1w2|(u1u2)(v1v2)(R(u1u2)S(v1v2)u2=v1w1=u1w2=v2)再进一步简化,得到下式:w1w2|(u2)(R(w1u2)S(u2w2)例 对于前面例子的查询,可转换成域演算表达式。检索学习

38、课程号为C2的学生学号与成绩t1t2|(u1u2u3)(SC(u1u2u3)u2=C2 t1=u1 t2=u3)可简化为t1t2|SC(t1 C2t2)检索学习课程号为C2的学生学号与姓名t1t2|(u1u2u3u4)(v1v2v3)(S(u1u2u3u4)SC(v1v2v3)v2=C2 u1=v1 t1=u1t2=u2)可简化为t1t2|(u3u4)(v3)(S(t1t2u3u4)SC(t1C2v3),2.3 关系数据模型,3.关系运算的安全约束在关系演算中,可能会出现无限关系和无穷验证的问题。例如元组表达式t|R(t)表示所有不在关系R中的元组的集合,这是一个无限关系。验证公式(u)(P1

39、(u)为假时,必须对所有可能的元组u进行验证,当所有的u都使P1(u)为假时,才能断言公式(u)(P1(u)为假。验证公式(u)(P1(u)也是这样,当所有可能的u都使P1(u)为真时,才能断言公式(u)(P1(u)为真。这在实际上是行不通的。因为,一方面计算机的存储空间是有限的,不可能存储无限关系;另一方面,在计算机上进行无穷验证是永远得不到结果的。我们必须采取措施,防止无限关系和无穷验证的出现。在数据库技术中,不产生无限关系和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。在关系代数中,五种基本操作没有集合的“补”操作,因而关系代数运算总是安全的。在关系演

40、算中必须有安全约束的措施,关系演算表达式才是安全的。,2.3 关系数据模型,对于元组表达式t|P(t),将公式P(t)的“域”定义为出现在公式P(t)中的常量和在P(t)中出现的关系的所有属性值组成的集合,记为DOM(P(t)。由于所有关系都是有限的,因此DOM(P)也是有限的。安全的元组表达式t|P(t)应满足下列三个条件:如果t满足公式P(t),那么t的每个分量必定是DOM(P)的元素。对于P(t)中每个形如(u)(P1(u)的子公式,如果元组u使P1(u)为真,那么u的每个分量必是DOM(P1)的元素。换言之,如果u有某个分量不属于DOM(P1),那么P1(u)必为假。对于P(t)中每个

41、形如(u)(P1(u)的子公式,如果元组u使P1(u)为假,那么u的每个分量必是DOM(P1)的元素。换言之,如果u有某个分量不属于DOM(P1),那么P1(u)必为真。上述两点能够保证:只要考虑DOM(P1)中的元素组成的元组u时,就能决定公式(u)(P1(u)或(u)(P1(u)的真值。,2.3 关系数据模型,类似地,也可以定义安全的域演算表达式。安全的域演算表达式t1tk|P(t1,tk)应满足下列三个条件:如果元组t1tk满足公式P,那么每个ti在DOM(P)中。对于P的每个形如(x)(P1(x)的子公式,如果x使P1(x)为真,那么x必是DOM(P1)的元素。对于P的每个形如(x)(

42、P1(x)的子公式,如果x使P1(x)为假,那么x必是DOM(P1)的元素。4.三种关系运算形式的等价性并、差、笛卡儿积、选择和投影是关系代数中最基本的操作,并且它们构成了关系代数运算的最小完备集。已经证明,在这个基础上,关系代数、安全的元组关系演算、安全的域关系演算在关系的表达能力上完全是等级的。,2.4 E-R数据模型,概述E-R数据模型(Entity-Relationship data model),即实体联系数据模型,1976年由P.Chen首先提出。提出的目标:建立一个“统一”的数据模型,以概括3种经典的逻辑数据模型;作为3种经典逻辑数据模型之间相互转换的中间模型;作为超脱于特定DB

43、MS的概念数据模型,以比较自然的方式模拟现实世界。特点:直接面向现实世界,而不是实现或DBMS;直观、自然;,2.4 E-R数据模型,基本概念(语义范畴)1.实体(entity)实体:现实世界中任何可以相互区分的事物;实体集(entity set):具有共同属性的所有实体的集合;实体实例(entity instance):实体集中的单个实体;例:学生,职工,部门,课程,都是实体集 而“王英”,“张凡”都是“学生”实体集中的实体实例实体型(type)与值(value)的区别:实体表示:,2.4 E-R数据模型,2.属性(attribute)属性:实体(或联系)所具有的某方面特征值集:属性的取值范

44、围简单属性与复合属性:单值(single-valued)属性与多值(multi-valued)属性:标识性属性与描述性属性:固有属性与导出性属性:实体键(entity key):能够唯一标识实体的属性或属性组实体主键(entity primay key):属性的数学表示:一般属性:A:E(V1)(V2)(Vn)简单属性:A:E(V),2.4 E-R数据模型,联系(relationship)联系:发生在实体之间具有特定含义的对应关系联系值与联系集:二元联系与多元联系:作用(role):基数比约束(cardinality ratio constraint):二元联系:一对一(1:1),一对多(1:

45、M),多对多(M:N)三元联系:1:1:1,1:1:P,1:N:P,M:N:P实体的参与度:(min,max),0=1部分参与(min=0)和全参与(min0):联系的语义约束:联系的属性:实体之间的所有(ownership)关系:,2.4 E-R数据模型,E-R图E-R图的画法E-R图示例(图2-28 图2-29)E-R图的用途对E-R方法的评价,2.4 E-R数据模型,扩充的E-R模型特殊化(specialization)和普遍化(generalization)将一个实体集按照某些特征区分为若干子实体集是一个从普遍到特殊的过程,称为特殊化;与此相反的过程称为普遍化,即将若干具有共性的实体集

46、概括成为一个更普遍的实体集。设有实体集,如果是的某些真子集的集合,即F=Si|SiE,i=1,n,则称是的一个特殊化,E 是S1,Sn的超实体集,S1,Sn为E的子实体集。全(total)特殊化与部分(partial)特殊化:不相交(disjoint)的特殊化与重叠(overlapping)的特殊化:子实体集与超实体集之间的关系:IS-A:继承(inherit):子实体可以有其特殊的属性和联系;特殊化和普遍化的E-R图表示:(图2-30),2.4 E-R数据模型,聚集(aggregation)聚集的定义:表达:“部分”与“整体”的关系(Has-A)聚集的例子(图2-31)范畴(category

47、)范畴的定义:用途:处理不同类型实体组成的实体集合选择性继承:范畴的例子(图2-32),2.5 面向对象数据模型,面向对象数据模型(Object-Oriented data model,简称O-O data model)就是一种可扩充的数据模型。它又称对象数据模型,以面向对象数据模型为基础的DBMS称为O-O DBMS或对象数据库管理系统(ODBMS)。面向对象数据模型提出于20世纪70年代末,80年代初。它吸收了语义数据模型和知识表示模型的一些基本概念,同时又借鉴了面向对象程序设计语言和抽象数据类型的一些思想。2.6.1 对象所有现实世界中的实体都模拟为对象。一个对象包含若干属性,用以描述对

48、象的状态、组成和特性。除了属性外,对象还包含若干方法,用以描述对象的行为特征。对象是封装的,外界与对象的通信一般只能借助于消息。,2.5 面向对象数据模型,2.6.2 类和实例把类似的对象归并为类。类中每个对象称为实例。同一类的对象具有共同的属性和方法,但这些属性所取的值会因各个实例而不同。因此,属性又称为实例变量。有些变量的值在全类中是共同的,这些变量又称为类变量。2.6.2 类层次结构和继承类的子集也可以定义为类,称为这个类的子类,而该类称为子类的超类。子类还可以再分为子类,如此可以形成一个类层次结构。这种关系也称为IS-A联系,或称为类属联系。从概念上说,自下而上是一个普遍化、抽象化的过

49、程,这个过程叫普遍化。反之,由上而下是一个特殊化、具体化的过程,这个过程叫特殊化。子类可用继承所有超类中的属性和方法。还可用增加和取代的方法,定义子类中的特殊的属性和方法。所谓增加就是定义新的属性和方法;所谓取代就是重新定义超类的属性和方法。如果子类有多个直接超类,则子类要从多个直接超类继承属性的方法,这叫多继承。,2.5 面向对象数据模型,在继承时,可能发生同名冲突问题,一种冲突发生在超类之间,另一种冲突发生在子类和超类之间。一般按下列规则解决冲突问题。1.超类之间的冲突解决这种同名冲突的方法,一般是在子类中规定超类的优先次序。2.子类和超类之间的冲突在此情况下,都以子类 定义的为准,也就是

50、子类的定义取代其超类中的同名定义。一名多义的做法叫多态。在此情况下,同一方法名代表不同的功能,也就是一名多用,这叫重载。2.6.4 对象的标识在O-O数据模型中,每个对象都有一个在系统内惟一的和不变的标识符,称为对象标识符。系统如何产生对象的标识符?不同的DBMS有不同的方法,一般可分为下列2种。1.逻辑对象标识符:不依赖于对象的存储位置。2.物理对象标识符:依赖于对象的位置,或直接含有对象的地址。,2.5 对象关系数据模型,对象关系数据模型是对关系数据模型进行扩充,从而提供更加丰富的面向对象的类型系统,并在关系查询语言中增加处理新增数据类型的成分。扩充的类型系统中允许元组的属性值为复杂类型。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号