在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息,通俗地讲数据模型就是现实世界的模拟
数据模型应满足三方面要求:能比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现
Flash课件浏览为:
http://www.njmars.net/UploadFile/DB/二)数据模型_.swf
课件下载链接为:点击下载(SWF文档)
数据模型分成两个不同的层次
概念模型:也称信息模型,它是按用户的观点来对数据和信息建模
数据模型:主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模
客观对象的抽象过程——两步抽象
现实世界中的客观对象抽象为概念模型
把概念模型转换为DBMS支持的数据模型
概念模型是现实世界到机器世界的中间层次
1.1 数据模型的组成要素
数据结构
数据操作
数据的约束条件
1.1.1 数据结构
数据结构是对象类型的集合,具体包括两类对象:
与数据类型、内容、性质有关的对象
与数据之间联系有关的对象
数据结构是对系统静态特性的描述
1.1.2 数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则
数据操作的类型
检索
更新(包括插入、删除、修改)
数据模型对操作的定义
操作的确切含义
操作符号
操作规则(如优先级)
实现操作的语言
数据操作是对系统动态特性的描述
1.1.3 数据的约束条件
一组完整性规则的集合
完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容
数据模型对约束条件的定义
反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件
提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件
1.2 常用数据模型
非关系模型
层次模型(Hierarchical Model)
网状模型(Network Model)
数据结构:以基本层次联系为基本单位,所谓基本层次联系,即两个记录以及它们之间的一对多(包括一对一)的联系
常用数据模型
关系模型(Relational Model)
数据结构:表
面向对象模型(Object Oriented Model)
数据结构:对象
2 层次模型(Hierarchical Data Model)
基本概念:
记录record
字段field
双亲子女关系Parent-Child Relationship
层次数据模型的两个特点:
有且只有一个结点没有双亲结点,即根结点
根结点以外的其他结点有且只有一个双亲结点
2.1 层次数据模型的数据结构
层次数据模型中的结点类型:
根结点
双亲结点
兄弟结点
叶结点
层次数据模型的数据结构表示方法:
实体型:用记录类型描述,每结点表示一个记录类型
属性:用字段描述,每个记录类型可包含若干个字段
联系:用结点之间的连线表示记录(类)型之间的一对多的联系
层次数据模型的数据结构特点
结点的双亲是唯一的
只能直接处理一对多的实体联系
每个记录类型定义一个排序字段,也称为码字段
任何记录值只有按其路径查看时,才能显出它的全部意义
没有一个子女记录值能够脱离双亲记录值而独立存在
多对多联系在层次模型中的表示主要是利用层次模型间接表示多对多联系,方法是将多对多联系分解成多个一对多联系,具体分解方法为:冗余结点法和虚拟结点法
2.2 层次模型的数据操纵
查询
插入
删除
更新
2.3 层次模型的完整性约束
无相应的双亲结点值就不能插入子女结点值
如果删除双亲结点值,则相应的子女结点值也被同时删除
更新操作时,应更新所有相应记录,以保证数据的一致性
2.4 层次数据模型的存储结构
邻接法:
按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序
链接法:
用指引元来反映数据之间的层次联系
子女-兄弟链接法:
层次序列链接法
2.5 层次模型的优缺点
优点
层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解
性能优于关系模型,不低于网状模型
层次数据模型提供了良好的完整性支持
缺点
多对多联系表示不自然
对插入和删除操作的限制多
查询子女结点必须通过双亲结点
层次命令趋于程序化
2.6 典型的层次数据库系统
IMS数据库管理系统,第一个大型商用DBMS,1968年推出,IBM公司研制
3 网状模型(Network Data Model)
基本概念
记录record
数据项data item
系set
3.1 网状数据模型的数据结构
满足下面两个条件的基本层次联系的集合为网状模型:
允许一个以上的结点无双亲
一个结点可以有多于一个的双亲
表示方法(与层次数据模型相同)
实体型:用记录类型描述,每结点表示一个记录类型
属性:用字段描述,每个记录类型可包含若干个字段
联系:用结点之间的连线表示记录之间的一对多的父子联系
网状数据模型的数据结构特点:
只能直接处理一对多的实体联系
每记录类型定义一个排序字段,称为码字段
任何记录值只有按其路径查看时,才能显出它的全部意义
网状模型与层次模型的区别
网状模型允许多个结点没有双亲结点
网状模型允许结点有多个双亲结点
网状模型允许两个结点之间有多种联系(复合联系)
网状模型可以更直接地去描述现实世界
层次模型实际上是网状模型的一个特例
多对多联系在网状模型中的表示
用网状模型间接表示多对多联系
方法是将多对多联系直接分解成一对多联系
3.2 网状模型的数据操纵
查询
插入
删除
更新
3.3 网状数据模型的完整性约束
完整性约束条件
允许插入尚未确定双亲结点值的子女结点值
允许只删除双亲结点值
3.4 网状数据模型的存储结构
关键:实现记录之间的联系
常用方法
单向链接
双向链接
环状链接
向首链接
网状数据模型的存储结构
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲
具有良好的性能,存取效率较高
缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
DDL、DML语言复杂,用户不容易使用
3.6 典型的网状数据库系统
DBTG系统,亦称CODASYL系统,由DBTG提出的一个系统方案,奠定了数据库系统的基本概念、方法和技术,70年代推出,实际系统为
Cullinet Software Inc.公司的IDMS
Univac公司的 DMS1100
Honeywell公司的IDS/2
HP公司的IMAGE
4 关系模型
最重要的一种数据模型,也是目前主要采用的数据模型
1970年由美国IBM公司San Jose研究室的研究员E.F.Codd提出
关系模型的基本概念
关系(Relation):一个关系对应通常说的一张表
元组(Tuple):表中的一行即为一个元组
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key):表中的某个属性组,它可以唯一确定一个元组
域(Domain):属性的取值范围
分量:元组中的一个属性值
关系模式:对关系的描述,即“关系名(属性1,属性2,…,属性n)”,如“学生(学号,姓名,年龄,性别,系,年级)”
4.1 关系数据模型的数据结构
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成
实体及实体间的联系的表示方法
实体型:直接用关系(表)表示
属性:用属性名表示
一对一联系:隐含在实体对应的关系中
一对多联系:隐含在实体对应的关系中
多对多联系:直接用关系表示
关系必须是规范化的,满足规范条件
最基本的规范条件是关系的每一个分量必须是一个不可分的数据项
4.2 关系模型的数据操纵
查询、插入、删除、更新
数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合
存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
4.3 关系模型的完整性约束
实体完整性
通常由关系系统自动支持
早期系统不支持参照完整性,目前大型系统能自动支持
对于用户定义的完整性,反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束,用户定义后由系统支持
4.4 关系数据模型的存储结构
表以文件形式存储
有的DBMS一个表对应一个文件
有的DBMS自己设计文件结构
4.5 关系模型的优缺点
优点
建立在严格的数学概念的基础上
概念单一,数据结构简单、清晰,用户易懂易用
实体和各类联系都用关系来表示
对数据的检索结果也是关系
关系模型的存取路径对用户透明
具有更高的数据独立性,更好的安全保密性
简化了程序员的工作和数据库开发建立的工作
缺点
存取路径对用户透明导致查询效率往往不如非关系数据模型
为提高性能,须对用户的查询请求进行优化,增加开发数据库管理系统的难度
4.6 典型的关系数据库系统
典型实验系统
System R
University INGRES
典型商用系统
ORACLE
SYBASE
INFORMIX
VISUAL FOXPRO
SQL SERVER
ACCESS
DB/2
[此贴子已经被作者于2006-9-20 9:54:29编辑过]