第2章-数据模型-2_第1页
第2章-数据模型-2_第2页
第2章-数据模型-2_第3页
第2章-数据模型-2_第4页
第2章-数据模型-2_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章 导读导读第第2章章 数据模型数据模型2.3 层次层次(逻辑逻辑)数据模型数据模型 表示方法表示方法 结点:记录类型结点:记录类型 每个记录类型包含若干个字段每个记录类型包含若干个字段( (属性属性) ) 联系:用结点之间的有向线表示记录类联系:用结点之间的有向线表示记录类型之间的型之间的1:N1:N的联系,箭头表示从箭尾的记的联系,箭头表示从箭尾的记录类型到箭头的记录类型间联系是录类型到箭头的记录类型间联系是1:N1:N联系。联系。系系 名系 号系 主 任地 点 4 4个记录型组成的个记录型组成的层次数据库模型层次数据库模型 教员学生层次数据库的一个值教员学生层次数据库的一个值层次

2、数据模型的优点:层次数据模型的优点: 层次数据模型的数据结构比较简单清晰;层次数据模型的数据结构比较简单清晰; 记录之间的联系可通过指针来实现,查询记录之间的联系可通过指针来实现,查询效率较高。效率较高。层次数据模型的缺点:层次数据模型的缺点: 只能直接表示一对多的联系,不能直接表只能直接表示一对多的联系,不能直接表达多对多的联系;达多对多的联系; 查询子女结点必须通过父结点;查询子女结点必须通过父结点; 对插入、删除有完整性限制。对插入、删除有完整性限制。2.4 2.4 网状数据模型网状数据模型 网状数据模型是一种用有向图表示数网状数据模型是一种用有向图表示数据及数据之间联系的数据模型。满足

3、以下据及数据之间联系的数据模型。满足以下条件:条件: 允许一个以上的结点无双亲;允许一个以上的结点无双亲; 一个结点可以有多于一个的双亲。一个结点可以有多于一个的双亲。 表示方法表示方法( (与层次数据模型相同与层次数据模型相同) ) 结点:记录类型结点:记录类型 每个记录类型包含若干个字段每个记录类型包含若干个字段( (属性属性) ) 联系:用结点之间的有向线表示记录类型联系:用结点之间的有向线表示记录类型 之间的之间的1:N1:N联系联系( (系系) ),箭头表示从箭尾的记,箭头表示从箭尾的记录类型到箭头的记录类型间联系是录类型到箭头的记录类型间联系是1:N1:N。学生和课程间的学生和课程

4、间的M:NM:N联系,通过引入联系记联系,通过引入联系记录录“选课选课”,分解为两个,分解为两个1:N1:N联系。见下图联系。见下图 学生学生记录记录课程课程记录记录选课选课记录记录网状数据模型的优点:网状数据模型的优点: 不同记录之间的联系通过指针,查询效率较高;不同记录之间的联系通过指针,查询效率较高; 能够更为直接地描述现实世界,如一个结点可以能够更为直接地描述现实世界,如一个结点可以有多个双亲;有多个双亲;M:NM:N联系也容易实现(一个联系也容易实现(一个M:NM:N联系联系可拆成两个可拆成两个1:N1:N联系)。联系)。网状数据模型的缺点:网状数据模型的缺点: 结构比较复杂;结构比

5、较复杂; DDLDDL、DMLDML复杂,且要嵌入到某一高级语言中;复杂,且要嵌入到某一高级语言中; 应用程序在访问数据时必须选择适当的存取路径,应用程序在访问数据时必须选择适当的存取路径,加重了编程负担。加重了编程负担。2.5 2.5 关系数据模型关系数据模型 关系数据模型是目前使用最广泛关系数据模型是目前使用最广泛的一种数据模型。利用二维表表示数的一种数据模型。利用二维表表示数据和数据间的联系。据和数据间的联系。2.3.1 2.3.1 关系关系(a) (b)部门关系表部门关系表2.3.1 2.3.1 关系关系( (续续) )关系术语关系术语一般表格的术语一般表格的术语关系名关系名表名表名关

6、系模式关系模式表头表头( (表格的描述表格的描述) )关系关系一张二维表一张二维表元组元组记录或行记录或行属性属性列列属性名属性名列名列名属性值属性值列值列值分量分量( (元组中的一个元组中的一个属性值属性值) )一条记录中的一个列值一条记录中的一个列值非规范关系非规范关系表中有表表中有表( (大表中嵌有小表大表中嵌有小表) )术语对比术语对比2.3.2 关系的键关系的键/码(码(KeyKey) 超键超键/ /超码超码(Super Key)(Super Key) 如果关系的某一个属性或属性组的值能够惟如果关系的某一个属性或属性组的值能够惟一地决定关系中其它所有属性的值,而其任何真一地决定关系中

7、其它所有属性的值,而其任何真子集也具有此性质,则这个属性或属性组称为该子集也具有此性质,则这个属性或属性组称为该关系的超键。关系的超键。 候选键候选键/ /候选码候选码(Candidate Key)(Candidate Key) 如果关系的某一个属性或属性组的值能够惟如果关系的某一个属性或属性组的值能够惟一地决定关系中其它所有属性的值,而其任何真一地决定关系中其它所有属性的值,而其任何真子集无此性质,则这个属性或属性组称为该关系子集无此性质,则这个属性或属性组称为该关系的候选键。的候选键。 主键主键(Prime Key)(Prime Key)和候补键和候补键(Candidate(Candida

8、te Key)Key) 一个关系的候选键可能有多个。选中一个作一个关系的候选键可能有多个。选中一个作为关系的键,也称主键,其它则称候补键。每个为关系的键,也称主键,其它则称候补键。每个元组的主键值是惟一的。元组的主键值是惟一的。 全键全键(All Key)(All Key) 一个关系的键如果由关系的所有属性组成,一个关系的键如果由关系的所有属性组成,则该键称为全键。则该键称为全键。 外键外键(Extern Key)(Extern Key) 如果一个关系中的属性如果一个关系中的属性( (组组) )是其它关系的键是其它关系的键或本关系的键,则该属性组称为外键。或本关系的键,则该属性组称为外键。 关

9、系数据模型中,表与表之间是通过外键关系数据模型中,表与表之间是通过外键发生联系的。发生联系的。 例如,部门表的主键是部门号,外键是负例如,部门表的主键是部门号,外键是负责人(来自于职工表的职工号)。职工表责人(来自于职工表的职工号)。职工表的主键是职工号,外键是部门号(来自于的主键是职工号,外键是部门号(来自于部门表的部门号)。部门表和职工表通过部门表的部门号)。部门表和职工表通过外键发生外键发生1:N1:N联系。联系。 2.4.3 关系的主属性和非主属性关系的主属性和非主属性 主属性主属性(Prime Attribute)(Prime Attribute) 包含在候选键中的属性,都称为主属性

10、。上包含在候选键中的属性,都称为主属性。上述部门表中部门号是候选键,职工表中职工号是述部门表中部门号是候选键,职工表中职工号是候选键,所以这两张表的主属性是部门号、职工候选键,所以这两张表的主属性是部门号、职工号。号。 非主属性非主属性(Nonprime Attribute)(Nonprime Attribute) 一个关系中,不含在候选键中的属性,称为一个关系中,不含在候选键中的属性,称为非主属性。上述部门表和职工表中,除了部门号非主属性。上述部门表和职工表中,除了部门号和职工号以外,其他属性都是非主属性。和职工号以外,其他属性都是非主属性。 2.5.4 2.5.4 关系的完整性约束关系的完

11、整性约束三个方面的完整性约束:三个方面的完整性约束:(1 1)实体完整性)实体完整性 每一个关系都有一个用来惟一识别一个元组每一个关系都有一个用来惟一识别一个元组的主键。因此,的主键。因此,主键的值不能为空主键的值不能为空,否则无法区,否则无法区分和识别元组,这就是实体完整性约束。分和识别元组,这就是实体完整性约束。(2 2)引用完整性)引用完整性( (参照完整性参照完整性) ) 如果一个表中存在外键,则如果一个表中存在外键,则外键的值必须外键的值必须是已存在的,或者为空。是已存在的,或者为空。(3 3)用户定义的完整性约束)用户定义的完整性约束 用户定义完整性约束是最简单、最基用户定义完整性

12、约束是最简单、最基本的约束,它本的约束,它表示关系中属性的取值应是表示关系中属性的取值应是给定域中的值。给定域中的值。 如,成绩在如,成绩在0 0100100内;性别只能取男内;性别只能取男或女;属性的值能否为空等,由数据的语或女;属性的值能否为空等,由数据的语义决定。义决定。2.5.5 2.5.5 关系数据模型的特点关系数据模型的特点关系数据模型的优点:关系数据模型的优点: 数据和数据间的联系都用关系来表示,使得数据数据和数据间的联系都用关系来表示,使得数据描述一致;描述一致; 数据结构单一,容易修改;数据结构单一,容易修改; 存取路径对用户透明,减轻了编程负担。存取路径对用户透明,减轻了编

13、程负担。关系数据模型的缺点:关系数据模型的缺点: 查询效率不如非关系数据模型,但可以通过查询查询效率不如非关系数据模型,但可以通过查询的优化来提高查询效率;的优化来提高查询效率; 表与表之间的联系不是很直观表与表之间的联系不是很直观 。2.6 2.6 面向对象数据模型面向对象数据模型 OODM(Object-oriented Data Model)OODM(Object-oriented Data Model)是继是继RDMRDM之后重要的之后重要的DMDM。 支持支持OODMOODM的数据库管理系统就是的数据库管理系统就是OODBMS(OODBMS(是一个持久的、可共享的对象库的存储者是一个

14、持久的、可共享的对象库的存储者) )。对象数据库是由一个对象数据库是由一个OOOO模型所定义的对象的集合体。模型所定义的对象的集合体。 2.6.1 OO2.6.1 OO模型的核心概念模型的核心概念 OOOO核心概念构成了核心概念构成了OOOO模型的基础,核心概念模型的基础,核心概念有如下有如下4 4个:个: 1.1.对象对象(Object )(Object ) 对象是由一组属性和施加于这组属性的一组操对象是由一组属性和施加于这组属性的一组操作封装起来的基本单位。是对客观事物的描述和表示。作封装起来的基本单位。是对客观事物的描述和表示。 属性是用来描述对象静态特征的一个数据项。属性是用来描述对象

15、静态特征的一个数据项。2.6 2.6 面向对象数据模型面向对象数据模型( (续续) ) 操作是用来描述对象动态特征的一个动作序操作是用来描述对象动态特征的一个动作序列。列。 2.2.对象标识对象标识(Object Identifier,OID)(Object Identifier,OID) OODB OODB中的每个对象都有一个唯一的不变的标中的每个对象都有一个唯一的不变的标识称为对象标识。识称为对象标识。 3.3.封装封装(Encapsulation)(Encapsulation) 封装就是把对象的属性和操作结合成一个独封装就是把对象的属性和操作结合成一个独立的系统单位;并尽可能隐蔽对象的内

16、部细节立的系统单位;并尽可能隐蔽对象的内部细节( (对对象的外部不能直接存取对象的属性象的外部不能直接存取对象的属性) )。2.6 面向对象数据模型面向对象数据模型(续续) 4. 4.类类(Class)(Class) 类是具有相同属性和操作的一组对象的类是具有相同属性和操作的一组对象的抽象抽象( (描述描述) )。 对象和类是具体与抽象的关系,一个对对象和类是具体与抽象的关系,一个对象又称为类的一个实例。象又称为类的一个实例。 面向对象数据库模式面向对象数据库模式是类的集合。是类的集合。2.6 面向对象数据模型面向对象数据模型(续续)2.6.2 2.6.2 继承继承(Inheritance)(

17、Inheritance) 在在OODMOODM中,用类中,用类层次结构描述客观事层次结构描述客观事物及其联系。右图给物及其联系。右图给出了学校数据库的一出了学校数据库的一个类层次。个类层次。2.6 2.6 面向对象数据模型面向对象数据模型( (续续) )2.6.3 2.6.3 继承继承 的形式的形式 在在OODMOODM中,支中,支持两种继承:持两种继承:单继承和多继单继承和多继承。右图是一承。右图是一个多继承结构。个多继承结构。人人教职员工教职员工学生学生教员教员行政人员行政人员在职研究生在职研究生多继承结构多继承结构2.6.4 2.6.4 对象的嵌套对象的嵌套 OODMOODM允许对象的嵌套,即一个对象由允许对象的嵌套,即一个对象由一个或多个子对象组成,形成复杂对象的一个或多个子对象组成,形成复杂对象的嵌套层次结构。嵌套层次结构。2.6 2.6 面向对象数据模型面向对象数据模型( (续续) )2.6 2.6 面向对象数据模型面向对象数据模型( (续续) )汽车汽车发动机型号、马力发动机型号、马力型号、名称、型号、名称、发动机发动机、车体车体、车轮、车轮钢板厚度、钢板型号、车体形状钢板厚度、钢板型号、车体形状汽车的嵌套结构汽车的嵌套结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论