【教学课件】第2章数据模型.ppt
《【教学课件】第2章数据模型.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第2章数据模型.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 数据模型 2.1 层次数据模型 2.2 网状数据模型 2.3 关系数据模型 2.4 E-R数据模型 2.5 面向对象数据模型*2.1 层次数据模型2.1.1 基本概念和结构1.记录(record)和字段(field)记录:描述事物或事物间关系的命名的数据单位,也是存储的数据单位。(图 2-1)字段:记录的构成部分。(图 2-2)2.双亲子女关系(PCR)层次数据模型的基本关系,表示两个记录型间的1:N关系。(图 2-3)双亲记录、子女记录PCR型与PCR实例(图 2-4)3.层次数据模式和实例由双亲子女关系(型)构成(树型)(图 2-5)层次数据库实例(图 2-6)2.1 层次数据模型
2、4.非层次型数据的表示1)多对多(M:N)关系的表示1)冗余记录法(图 2-7/2-8)2)一个记录型是两个以上PCR中的子女 图 2-9/2-103)多元关系的表示(n-ary relationship)多元关系示意图(图 2-11)用PCR表示的三元关系(图2-12)虚拟记录(virtual record)用虚拟记录表示M:N关系(图 2-13)用虚拟记录表示一个记录型是两个以上PCR中的子女(图2-14)用虚拟记录表示三元关系(图2-15)2.1 层次数据模型2.1.1 基本概念和结构5.层次数据的线形表示存储器是线性排列的树的先序遍历(proorder traversal)层次序列(h
3、ierarchical sequence)(图 2-16)2.1.2 约束1)除了根记录以外,任何其他记录不能离开其双亲而孤立地存在;2)任何记录,无论“虚实”,只允许有一个双亲记录,即层次数据模式及其实例总是树形;3)虚拟记录的指针必须指向一个实际存在的记录;有虚拟记录指向的记录不得删除;4)虚拟记录不得为根记录;2.1 层次数据模型2.1.3 操作1.Get Unique(GU)1.按给定条件,沿层次路径查找所需的记录。2.例:GU 系(系名=计算机),班(名称=计算机01班),学生2.Get Next Within Parent(GNP)在当前记录的双亲下,按层次序列查找下一个记录。例:
4、GU 系(系名=计算机),班(名称=计算机01班),学生;while not fail do GNP 学生;2.1 层次数据模型2.1.3 操作3.Get Next(GN)按照层次序列,不受同一双亲的限制,查找当前记录的下一个记录。例:GU 系(系名=计算机),班(名称=计算机01班),学生;while not fail do GNP 学生;GN 学生;while not fail do GNP 学生;2.1.4 对层次数据模型的评价1.非层次型数据的处理2.数据独立性2.2 网状数据模型2.2.1 基本概念和结构1.记录和数据项(data items)记录:数据的存储单位,可包含若干数据项;
5、数据项:相当于字段,但与层次模型不同,数据项可以是简单数据类型,也可以是多值或复合的数据;简单多值数据项称为向量(vector),复合多值数据项称为重复组(repeating group).记录型/记录值:数据库码(database key,DBK):记录的逻辑地址;2.2 网状数据模型2.2.1 基本概念和结构2.系(set)两个记录型之间的1:N联系(首记录,属记录)系型和系值(图 2-17)单属记录系/多属记录系(图 2-18)联系记录(图2-19)M:N联系的表示(图2-21)奇异系(无首系/单值系)多元联系的表示(图2-22)系的链式(chain)实现:向前指针、向后指针、首记录指针
6、(图2-23)2.2 网状数据模型2.2.2 约束1)一个记录(值)不能出现在同一系型的多个系值中;(图2-20)2)插入新记录的插入系籍(set membership)类别:AUTOMATIC(自动的):MANUAL(手工的):3)已插入到某个系值中的属记录的留置系籍类别:OPTIONAL(任意的):MANDATORY(强制的):FIXED(固定的):4)删除系的首记录时对相关属记录值的处理规则:如果留置系籍类别为OPTIONAL如果留置系籍类别为MANDATORY如果留置系籍类别为FIXED2.2 网状数据模型2.2.3 操作FIND(查找):按照指定的条件在数据库中查找一个记录,并设置适
7、当的当前值;GET(读入):将指定的记录或数据项读入内存;STORE(保存):将一个记录插入到数据库中,并按照插入系籍约束加入到有关的系值中;MODIFY(修改):修改指定记录中的数据项;ERASE(删除):从数据库中删除指定的记录;CONNECT(加入):将一个属记录值加入指定的系值中;RECONNECT(转移):将一个属记录值转移到一个新的指定的系值中;DISCONNECT(撤离):将一个属记录值从所在的系值中撤离;2.2.4 对网状数据模型的评述2.3 关系数据模型2.3.1 基本概念和定义 关系模型是以集合论中的关系(relation)概念为基础发展起来的数据模型。1.关系的数学定义2
8、.域域(domain):域是一组具有相同数据类型的原子值的集合。记为D,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,n2.3 关系数据
9、模型1.关系的数学定义(续)定义定义1(关系关系):设D1,D2,Dn为一组域(其中允许重复),则称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为属性向域
10、的映象集合,F为属性间数据的依赖关系集合。定义定义3(关系关系):给定一个(n-元)关系模式R(A1/Dom(A1),A2/Dom(A2),An/Dom(An),则称Dom(A1),Dom(A2),Dom(An)的笛卡儿乘积上的任意一个子集r(R)为定义在关系模式R(A1,An)上的一个(n-元)具体关系。2.3 关系数据模型关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系,可以从上下文中加以区别。例:ifcust
11、omer-name=Jones,Smith,Curry,Lindsaycustomer-street=Main,North,Parkcustomer-city =Harrison,Rye,PittsfieldThen r=(Jones,Main,Harrison),(Smith,North,Rye),(Curry,North,Rye),(Lindsay,Park,Pittsfield)其中,r是基于上述三个域上的一个具体关系。2.3 关系数据模型2.关系的直观描述直观的看,关系是一个由若干“行”(row)和“列”(column)构成的“二维表”,例如:JonesSmithCurryLindsa
12、ycustomer-nameMainNorthNorthParkcustomer-streetHarrisonRyeRyePittsfieldcustomer-citycustomer属性attributes元组tuples3.关系的限制属性不可重复;元组不可重复;元组间无序;属性间无序;每一属性不可再分2.3 关系数据模型2.3 关系数据模型4.键超键(super key,SK):如果一组属性K可以唯一标识R中的每一个元组,则称K是R的超键。候选键(candidate key,CK):如果一组属性K是最小的超键,则称K是R的候选键。主键(primary key,PK):若一个关系有多个候选键
13、,则选定其中一个为主键。次键(alternate key):主键以外的其他候选键称为次键全键(all key):在最简单的情况下,侯选键只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的侯选键,称为全键(All-key)。2.3 关系数据模型4.键(续)主属性(prime attribute):包含在主键中的诸属性称为主属性。非主属性(non-prime attribute):不包含在任何侯选键中的属性称为非主属性。外键(foreign key):设F是基本关系R的一个或一组属性,但不是关系R的键,如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键(Foreign
14、 key)。5.关系的类型基本关系(通常又称为基本表或基表):是实际存在的表,它是实际存储数据的逻辑表示。查询表:是查询结果对应的表。视图表:是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。2.3 关系数据模型2.3.2 约束1.域完整性约束(domain integrity constraint)规则2.1(域完整性约束规则):任何属性只能取其域中的值或者null。2.实体完整性约束(entity integrity constraint)3.规则2.2(实体完整性规则):若属性A是基本关系R的主属性,则属性A不能取空值。说明:一个基本关系通常对应现实世界的一个实体集。例如学生
15、关系对应于学生的集合。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主键作为唯一性标识。主键中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。2.3 关系数据模型3.参照(引用)完整性约束(referential integrity constraint)规则2.3(参照完整性规则):若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上
16、的值必须:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。4.用户定义的完整性约束(user defined integrity constraint)用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。2.3 关系数据模型2.3.3 关系运算关系运算采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合的方式。关系模型中常用的关系操作包括二类:查询操作 增、删、改操作 表达(或描述)关系操作的关系数
17、据语言可以分为三类:关系代数:是用对关系的运算来表达查询要求的方式。关系演算:是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。介于关系代数和关系演算之间的语言SQL(Standard Query Language)2.3 关系数据模型2.3.4 关系代数 关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符(,)专门的关系运算符(,)算术比较符(
18、,)逻辑运算符(,)比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类。2.3 关系数据模型1.传统的集合运算1)并(Union)设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS 2)差(Difference)设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS3)交(Int
19、ersection Referential integrity)设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS2.3 关系数据模型1.传统的集合运算4)广义笛卡尔积(Extended cartesian product)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1k2个元组。记作:RStrts|trRtsS2.3 关系数据模型
20、A B Ca1 b1 c1a1 b2 c2a2 b2 c1A B Ca1 b2 c2a1 b3 c2 a2 b2 c1A B Ca1 b1 c1 a1 b2 c2a2 b2 c1 a1 b3 c2(a)关系R(b)关系S(c)RS2.3 关系数据模型A B Ca1 b2 c2a2 b2 c1A B Ca1 b1 c1 A B C A B C a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b3 c2 a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2
21、 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1 (d)RS(e)R-S(f)RS2.3 关系数据模型2.专门的关系运算1)选择(Selection)选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:F(R)=t|tR F(t)=真 其中F表示选择条件,它是一个逻辑表达式,取逻辑值真或假。逻辑表达式F的基本形式为:X1 Y1 X2 Y2 表示比较运算符,它可以是、或。X1、Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。表示逻辑运算符,它可以是、或。表示任选项,即 中的部分可以要也可以不要,.表示上述格式可以重复下去。因此选
22、择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。选择操作示例Relation rABCD15122377310A=B D 5(r)ABCD1237102.3 关系数据模型2)投影记作:A1,A2,Ak(r)其中A是属性名,r是关系名。结果是包含K个列的关系,其它的列被删除了。由于关系是集合,故结果中消除了重复的行。例如,查询学生的姓名和所在系,即求Student关系在学生姓名和所在系两个属性上的投影。Sname,Sdept(Student)或2,5(Student)其中下角标“2”“5”为Sname,Sdept的属性序号。2.3 关系数据模型3)连接连接也称为连
23、接。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:R S=trts|trRtsStrA tsB AB其中A和B分别为R和S上度数相等且可比的属性组。是比较运算符。连接运算从R和S的广义笛卡儿积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。连接运算中有两种最为重要也最为常用的连接,一种是等值连接,另一种是自然连接。为“”的连接运算称为等值连接。它是从关系R与S的广义笛卡儿积中选取A,B属性值相等的那些元组,即等值连接为:R S=trts|trRtsStrA=tsB A=B2.3 关系数据模型自然连接是一种特殊的等值连接,它要求两个关系中进行比较
24、的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若R和S具有相同的属性组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 Ca1 b1 5a1 b2 6a2 b3 8a2 b4 12 B Eb1 3b2 7b3 10b3 2b5 2 A R.B C S.B E a1 b1 5 b2 7 a1
25、 b1 5 b3 10 a1 b2 6 b2 7 a1 b2 6 b3 10 a2 b3 8 b3 10(a)(b)(c)2.3 关系数据模型 A R.B C S.B E a1 b1 5 b1 3 a1 b2 6 b2 7 a2 b3 8 b3 10 a2 b3 8 b3 2(d)A B C E a1 b1 5 3 a1 b2 6 7 a2 b3 8 10 a2 b3 8 2(e)2.3 关系数据模型可以证明:关系代数操作集,是完备的操作集。由于笛卡儿积可以看成连接的特例,关系完备操作集也可表示为,,任何其他关系代数操作都可以用这五种操作来表示。一个DBMS所支持的关系是否完备,只要看它能否表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 数据模型
限制150内