1. 定义
数据模型是对现实世界数据的抽象,是用来描述数据,组织数据和对数据进行操作的模型。
2. 分类
根据模型应用的不同目的,数据模型分为两类:一类是概念模型;一类是逻辑模型和物理模型
- 概念模型也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
- 逻辑模型主要包括层次模型,网状模型,关系模型,面向对象数据模型和对象关系数据模型,半结构化数据模型等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现;物理模型是对数据最底层的抽象,它描述数据在系统内部的表达方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机的。
3. 概念模型特点
- 较强的语义表达能力。
- 简单,清晰,易于用户理解。
4. 基本概念
- 实体:客观存在并可相互区别的事物称为实体。
- 属性:实体所具有的某一特性称为属性。
- 码:唯一标识实体的属性集称为码。
- 实体形:具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体形。
- 实体集:同一类型实体的集合称为实体集。
- 联系:事物内部和事物之间都是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。
- 概念模型的表示方法有很多,最常用的方法是用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。(考点)
- 一对一的联系(1:1)一对多的联系(1:n)多对多的联系(n:n)(考点)
5. 组成要素
(1)数据结构
描述数据库的组成对象,以及对象之间的联系,它是对系统静态特性的描述。
(2)数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则,它是对系统动态特性的描述。
数据操作的类型:查询,更新(包括插入,删除,修改)
(3)数据的完整性约束条件
数据的完整性约束条件是一组完整的规则,完整性规则是给定的数据模型中数据及其联系所具有的的制约和依赖规则,用以限制符合数据模型的数据库状态以及状态的变化,以保证数据的正确,有效和相容。
6. 常用的数据模型
(1)层次模型
1.概述
层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。层次模型用树形结构来表示各类实以及实体间的联系。
2.数据结构
在数据库中定义满足下面两个条件的基本层次联系的集合称为层次模型
a. 有且只有一个结点没有双亲结点,这个结点称为根节点。
b. 除根节点以外的其他结点有且只有一个双亲结点。(考点)
3.数据操纵与完整性约束
层次模型的数据操纵主要有查询,插入,删除和更新。进行插入,删除,更新操作时要满足层次模型的完整性约束条件。
4.优缺点
优点:数据结构比较简单清晰;层次数据库的查询效率高;提供了良好的完整性支持。
缺点:多对多联系不适合用层次模型表示;对插入和删除的限制比较多,应用程序 的编写较复杂;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。
(2)网状模型
1.概述
网状数据库系统采用网状模型作为数据的组织方式。典型代表:DBTG系统
2.数据结构
网状模型满足以下两个条件:
a.允许一个以上的结点无双亲;
b.一个结点可以有多余一个的双亲。(考点)
3.数据操纵与完整性约束
a.支持记录码的概念,码即唯一的表示记录的数据项的集合;
b.保证一个联系中双亲记录和子女记录之间是一对多的联系;
c.可以支持双亲记录和子女记录之间的某些约束条件。
4.优缺点
优点:能够更为直接的描述现实世界;具有良好的性能,存取率较高。
缺点:结构比较复杂,而且随着应用环境的扩大,数据库的结构会变得越来越复杂,不利于最终用户掌握;其DDL,DML语言复杂,用户不容易使用;加重了编写应用程序的负担。
(3)关系模型
1.数据结构
关系建立在严格的数学概念的基础上。关系数据库系统采用关系模型作为数据的组织方式,关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。
2.常见术语
关系(Relation):一个关系对应通常说的一张表。
元组(Tuple):表中的一行即为一个元组。
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
主码(Key):也称码键,表中的某个属性组,它可以唯一确定一个元组。
域(Domain):是一组具有相同数据类型的值的集合,属性的取值范围来自某个域。
分量:元组中的一个属性值。
关系模式:对关系的描述。
3.数据操纵与完整性约束
关系模型的数据操纵主要包括查询,插入,删除和更新数据。
关系的完整性约束条件包括三大类:实体的完整性,参照物的完整性和用户定义的完整性。
4.优缺点
优点:建立在严格的数学基础上;关系模型的概念单一;具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
缺点:查询效率不如格式化数据模型;增加了开发数据库管理系统的难度。