数据(data)模型

一、数据模型(data model)也是一种模型,它是对现实世界数据特征的抽象。也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。通俗地讲,数据模型就是现实世界的模拟。

数据模型是数据库系统的核心和基础。

二、两类数据模型

数据模型应满足三方面要求:一是能比较真实地模拟现实世界,二是容易为人所理解,三是便于在计算机上实现。

根据模型应用的不同目的,可以将这些模型划分为两大类,它们分别属于两个不同的层次。第一类是概念模型,第二类是逻辑模型和物理模型

第一类概念模型(comceptual model),也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。

第二类中的逻辑模型主要包括层次模型(hierarchical model)、网状模型(network model)、关系模型(relational model)、面向对象数据模型(object oriented data model)和对象关系数据模型(object relational data model)、半结构化数据模型(semistrctured data model)等。它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。

三、概念模型

概念模型实际上是现实世界到机器世界的一个中间层次。

概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中各种语义知识,另一方面它还应该简单、清晰、易于用户理解。

1.信息世界中的基本概念

信息世界主要涉及以下一些概念。

(1)实体(entity)

客观存在并相互区别的事物称为实体

(2)属性(attribute)

实体所具有的某一特性称为属性

(3)码(key)

唯一标识实体的属性集称为

(4)实体型(entity type)

具有相同属性的实体必然具有共同的特性和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型

(5)实体集(entity set)

同一类型实体的集合称为实体集

(6)联系(relationship)

实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系

实体之间的联系有一对一、一对多和多对多等多种类型。

如果对于实体集A中的每一个实体,实体集B中至少有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系

如果对于实体集A中的每一个实体,实体集B中有N个实体(N>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B有一对多联系

如果对于实体集A中的每一个实体,实体集B中有N个实体(N>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有M个实体(M>=0)与之联系,则称实体集A与实体集B具有多对多联系

2.概念模型的一种表示方法:实体-----联系方法

概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体-----联系方法(Entity-Relationship approach)。该方法用E-R图(E-R diagram)来描述现实世界的概念模型,E-R方法也称为E-R模型

四、数据模型的组成要素

数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。

1.数据结构

数据结构描述数据库的组成对象以及对象之间的联系。

2.数据操作

数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。

3.数据的完整性约束条件

数据的完整性约束条件是一组完整性规则。

五、常用的数据模型

数据库领域中主要的逻辑数据模型有:

  • 层次模型(hierarchical model)
  • 网状模型(network model)
  • 关系模型(relational model)
  • 面向对象数据模型(object oriented data model)
  •  对象关系数据模型(object relational data model)
  • 半结构化数据模型(semistructure data model)

其中层次模型和网状模型统称为格式化模型。

 在格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系。

1.层次模型

层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。

层次模型用树形结构来表示各类实体以及实体间的联系。

1.1层次模型的数据结构

在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:

  1. 有且只有一个结点没有双亲结点,这个结点称为根节点;
  2. 根以外的其他结点有且只有一个双亲结点。

1.2层次模型的数据操纵与完整性约束

层次模型的数据操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作时要满足层次模型的完整性约束条件。

1.3层次模型的优缺点

层次模型的优点:

  1. 层次模型的数据结构比较简单清晰。
  2. 层次数据库的查询效率高。
  3. 层次数据模型提供了良好的完整性支持。

层次模型的缺点:

  1. 现实世界中很多联系是非层次性的,如结点之间具有多对多联系,不适合用层次模型表示。
  2. 如果一个结点具有多个双亲结点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据或创建非自然的数据结构对插入和删除操作的限制比较多,因此应用程序的编写比较复杂。
  3. 查询子女结点必须通过双亲结点。
  4. 由于结构严密,层次命令趋于程序化。

2.网状模型

网状数据库系统采用网状模型作为数据的组织方式。

网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。

2.1网状模型的数据结构

在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:

  1. 允许一个以上的结点无双亲。
  2. 一个结点可以有多于一个的双亲。

层次模型中子女结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。

2.2网状模型的数据操纵与完整性约束

  1. 支持记录码的概念,码即唯一标识记录的数据项的集合。
  2. 保证一个联系中双亲记录和子女记录之间是一对多的联系。
  3. 可以支持双亲记录和子女记录之间的某些约束条件。

2.3网状模型的优缺点

网状模型的优点:

  1. 能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系。
  2. 具有良好的性能,存取效率较高。

网状模型的缺点:

  1. 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户的掌握。
  2. 网状模型的DDL、DML复杂,并且要嵌入某一种高级语言中,用户不容易掌握,不容易使用。
  3. 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。

3.关系模型

关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。

3.1关系模型的数据结构

  • 关系(relation):一个关系对应通常说的一张表。
  • 元组(tuple):表中的一行即为一个元组。
  • 属性(attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
  • 码(key):也称为码键。
  • 域(domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
  • 分量:元组中的一个属性值。
  • 关系模式:对关系的描述,一般表示为

关系名(属性1,属性2,...,属性N)

关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项。

3.2关系模型的数据操纵与完整性约束

关系模型的数据操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用定义完整性。

3.3关系模型的优缺点

关系模型的优点:

  1. 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
  2. 关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。
  3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

关系模型的缺点:

  1. 由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值