第四章地图数据模型.doc
文本预览下载声明
从所有候选码中选定一个用来区别同一实体集中的不同实体,称作主码。
一个实体集中任意两个实体在主码上的取值不能相同。
联系(Relationship):
实体之间的相互关联。
联系的种类
实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目。
结构数据模型
结构数据模型的三要素:
数据结构
数据操作
数据的约束条件
1.数据结构 描述系统的静态特性,即组成数据库
的对象类型。包括:
数据本身:
数据之间的联系
在数据库系统中一般按数据结构的类型来命名数据模型。
2.数据操作
数据模型要定义操作含义、操作符号、操作规则,以及实现操作的语言。
.数据的约束条件
数据的约束条件是完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确、有效、相容。
三、结构数据模型示例
层次模型
网状模型
关系模型
1.层次模型
用树结构表示实体之间联系的模型叫层次模型。
树由节点和连线组成,节点代表实体型,连线表示两实体型间的一对多联系。
优点:
结构简单,易于实现。
缺点:
支持的联系种类太少,只支持二元一对多联系。
数据操纵不方便,子结点的存取只能通过父结点来进行。
IBM的IMS数据库,1969年研制成功
2.网状模型
是一个满足下列条件的有向图:
可以有一个以上的节点无父节点。
至少有一个节点有多于一个的父节点(排除树结构)。
表达的联系种类丰富。
结构复杂。
关系中数据项之间存在两种依赖关系:函数依赖和多值依赖。
范式
范式是对关系的不同数据依赖程度的要求。
通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化(概念的纯粹化)。
通常我们按属性间情况来区分关系规范化的程度为:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、修正的第三范式(BCNF)、第四范式(4NF)。
范式之间的关系如下图所示:
一、RDBMS的局限
表达能力有限
RDB的基本结构是二维表,是一种平面结构,无法表达嵌套的信息结构。
在CAD等系统中,嵌套大量存在,如机器由很多部件构成,每个部件又由多个零件构成。
嵌套的平面化可以通过模式分解和连接运算实现。
连接在关系数据库中是十分低效的运算。
类型有限
RDB的类型是系统内置的,用户只能使用固定的几种。
新的应用需要灵活的类型机制,DBMS应该能够支持用户定义适合自己应用的数据类型。
类型:数据抽象的一种方式,是一组值的集合以及在这组值上的操作。
提供一组内在的数据类型,如整数、字符等。
提供定义新的数据类型的手段。数组:聚合同类型数据;结构:聚合不同类型数据。
类型检查
结构与行为的分离
RDB中存储的只是实体的数据,而实体的行为则交由应用程序来编码实现。
现实世界中的实体除了数据结构之外,同时还有其自身的行为。如学生应该具有选课的行为。
实体的行为也是实体的属性,应当同实体紧密结合,由应用来维护是不适合的。
版本与长事务
多版本支持
要求DBMS能够支持数据的多个版本,并建立自然、方便的管理机制
长事务
当前的有些应用需要锁住某些数据一整天甚或几个星期,以便进行复杂的设计
只有版本问题解决得好,长事务的处理才有希望。
二、面向对象技术与数据库技术结合
1.面向对象方法
基本思想:从现实世界中客观存在的事物(对象)出发,以尽可能接近人类思维的方式建立模型,对客观事物进行结构模拟和行为模拟。
基本概念:对象、属性、方法、消息、封装、类、继承、多继承等。
应用的新需求:
模拟复杂对象
模拟对象的复杂行为
面向对象技术给数据库系统带来的好处:
复杂对象构造能力使得对于客观世界的模拟能力强,方式自然。
封装性向开发人员和最终用户屏蔽复杂性和实现细节。
继承性使得数据库设计和应用编程成为可重用的。
扩充关系数据库系统
持久化程序设计语言
面向对象的数据库系统
数据库系统工具包/部件
如何将面向对象概念与数据库系统结合起来?
两条途径:
将面向对象概念作为概念设计阶段工具
将面向对象概念结合到数据库操纵语言中
扩展SQL
在SQL中增加复杂类型和面向对象特征。
持久化程序设计语言
对某种现行的面向对象程序设计语言进行扩展。
3W----Who Will Win?
如何将面向对象概念与数据库系统结合起来?
两条途径:
将面向对象概念作为概念设计阶段工具
将面向对象概念结合到数据库操纵语言中
扩展SQL
在SQL中增加复杂类型和面向对象特征。
持久化程序设计语言
对某种现行的面向对象程序设计语言进行扩展。
三、DBMS分类矩阵
DBMS有哪些不足?
代价高
性能低
空间实体的空间位置、关系和度量
显示全部