数据库系统概论(超详解!!!) 第二节 数据模型

时间:2024-03-05 20:13:28

1.数据模型分为两类(两个不同的层次)

(1) 概念模型  ,也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。

(2) 逻辑模型 ,逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。

2.概念模型

概念模型的用途 :

概念模型用于信息世界的建模 ,是现实世界到机器世界的一个中间层次 ,是数据库设计的有力工具 ,数据库设计人员和用户之间进行交流的语言.

对概念模型的基本要求 :较强的语义表达能力 ,简单、清晰、易于用户理解.

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

(1)实体(Entity) 客观存在并可相互区别的事物称为实体。 可以是具体的人、事、物或抽象的概念。

(2)属性(Attribute) 实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画。  

(3)码(Key) 唯一标识实体的属性集称为码。

(4)实体型(Entity Type) 用实体名及其属性名集合来抽象和刻画同类实体 称为实体型

(5)实体集(Entity Set) 同一类型实体的集合称为实体集

(6)联系(Relationship)   现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。 实体内部的联系通常是指组成实体的各属性之间的联系 ,实体之间的联系通常是指不同实体集之间的联系 ,实体之间的联系有一对一、一对多和多对多等多种类型

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

用E-R图来描述现实世界的概念模型 ,E-R方法也称为E-R模型

3.逻辑模型

1.数据模型的组成要素

1.数据结构 ---描述系统的静态特性

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

描述的内容:

1. 与对象的类型、内容、性质有关

2. 与数据之间联系有关

2.数据操作 ---描述系统的动态特性

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

数据操作的类型 :查询 ,更新(包括插入、删除、修改)。

数据模型对操作的定义 :操作的确切含义, 操作符号 ,操作规则(如优先级) 实现操作的语言。

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

数据的完整性约束条件 :

一组完整性规则的集合。

完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则。

用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

数据模型对完整性约束条件的定义: 反映和规定必须遵守的基本的通用的完整性约束条件。 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。

4.常用的数据模型(数据的逻辑模型)

层次模型(Hierarchical Model)

网状模型(Network Model)

关系模型(Relational Model))

面向对象数据模型(Object Oriented Data Model)

对象关系数据模型(Object Relational Data Model)

半结构化数据模型(Semistruture Data Model)

1.格式化模型

格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系。 在格式化模型中数据结构的单位是基本层次联系。 所谓基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系。

2.层次结构

层次模型是数据库系统中最早出现的数据模型。

1968年,IBM公司的IMS系统,是基于层次模型的DBMS,也是最早的DBMS。

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

层次模型的表示方法:

实体型:用记录类型描述,每个结点表示一个记录类型(实体)

属性:用字段描述,每个记录类型可包含多个字段。

联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系。

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

1. 有且只有一个结点没有双亲结点,这个结点称为根结点

2. 根以外的其它结点有且只有一个双亲结点

层次模型中的几个术语: 根结点,双亲结点,兄弟结点,叶结点。

层次模型的特点:

结点的双亲是唯一的 ,只能直接处理一对多的实体联系 ,每个记录类型可以定义一个排序字段,也称为码字段 ,任何记录值只有按其路径查看时,才能显出它的全部意义 ,没有一个子女记录值能够脱离双亲记录值而独立存在。

冗余结点特点:结构清晰,浪费空间

虚拟结点特点:用指引元代替冗余结点。

层次模型的数据操纵 :查询, 插入, 删除 ,更新。

层次模型的完整性约束条件 :无相应的双亲结点值就不能插入子女结点值 ,如果删除双亲结点值,则相应的子女结点值也被同时删除 ,更新操作时,应更新所有相应记录,以保证数据的一致性。

优点 :层次模型的数据结构比较简单清晰, 查询效率高,性能优于关系模型,不低于网状模型。 层次数据模型提供了良好的完整性支持 。

缺点: 结点之间的多对多联系表示不自然。 对插入和删除操作的限制多,应用程序的编写比较复杂 。查询子女结点必须通过双亲结点。

3.网状结构

网状模型的表示方法(与层次数据模型相同)

实体型:用记录类型描述,每个结点表示一个记录类型(实体)

属性:用字段描述,每个记录类型可包含多个字段。

联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系。

网状模型的定义: 满足下面两个条件的基本层次联系的集合:

1. 允许一个以上的结点无双亲;

2. 一个结点可以有多于一个的双亲。

网状模型与层次模型的区别 :网状模型允许多个结点没有双亲结点。 网状模型允许结点有多个双亲结点 。网状模型允许两个结点之间有多种联系(复合联系)。 要为每个联系命名。 网状模型可以更直接地描述现实世界 。层次模型实际上是网状模型的一个特例。

网状模型中子女结点与双亲结点的联系可以不唯一 。要为每个联系命名,并指出与该联系有关的双亲记录和子女记录。

多对多联系在网状模型中的表示 :用网状模型间接表示多对多联系

方法: 将多对多联系直接分解成一对多联系

网状模型的操纵与完整性约束:

网状数据库系统(如DBTG)对数据操纵加 了一些限制,提供了一定的完整性约束 。

码:唯一标识记录的数据项的集合

一个联系中双亲记录与子女记录之间是一对多联系

支持双亲记录和子女记录之间某些约束条件

优点 :能够更为直接地描述现实世界,如一个结点可以有多个双亲 。具有良好的性能,存取效率较高。

缺点 :结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。 DDL、DML语言复杂,用户不容易使用 。记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节。

4.关系模型

数据结构:在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。

基本概念:

关系(Relation) 一个关系对应通常说的一张表

元组(Tuple) 表中的一行即为一个元组

属性(Attribute) 表中的一列即为一个属性,给每一个属性起一个名称即属性名

主码(Key) 也称码键。表中的某个属性组,它可以唯一确定一个元组

域(Domain) 是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。

分量 :元组中的一个属性值。

关系模式: 对关系的描述

关系必须是规范化的,满足一定的规范条件

最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表。

数据操作是集合操作,操作对象和操作结果都是关系 :查询, 插入, 删除, 更新。

关系的完整性约束条件 :实体完整性 ,参照完整性 ,用户定义的完整性。

优点: 建立在严格的数学概念的基础上。 概念单一, 实体和各类联系都用关系来表示 。对数据的检索结果也是关系 。关系模型的存取路径对用户透明 。具有更高的数据独立性,更好的安全保密性 。简化了程序员的工作和数据库开发建立的工作。

缺点 :存取路径对用户透明,查询效率往往不如格式化数据模型 。为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

5.数据库系统的结构

从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构

从数据库最终用户角度看,数据库系统的结构分为: 单用户结构 ,主从式结构 ,分布式结构 ,客户-服务器 ,浏览器-应用服务器/数据库服务器多层结构等。

1.客户机/服务器模式   Client/Server,简称C/S

2.浏览器/服务器模式   Browser/Server,简称B/S

两种模式比较 ,B/S模式可以认为是C/S模式的一种特例。

C/S模式:        

缺点:C/S模式维护、升级烦琐        

优点:响应速度快,功能完善

B/S模式:        

缺点:响应速度慢,功能不是很完善。        

优点:维护、升级简单      

3.三级模式结构

1.模式

模式(也称逻辑模式) 数据库中全体数据的逻辑结构和特征的描述 。所有用户的公共数据视图 。

一个数据库只有一个模式。

模式的地位:是数据库系统模式结构的中间层 。与数据的物理存储细节和硬件环境无关。 与具体的应用程序、开发工具及高级程序设计语言无关 。全局逻辑结构是数据库的中心与关键。 独立于数据库的其他层次。 设计数据库模式结构时应首先确定数据库的逻辑模式。

模式的定义: 数据的逻辑结构(数据项的名字、类型、取值范围等)。 数据之间的联系。 数据有关的安全性、完整性要求。

2.外模式

外模式(也称子模式或用户模式) 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述 .数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 。独立于存储模式和存储设备。

外模式的地位:介于模式与应用之间

模式与外模式的关系:一对多 。外模式通常是模式的子集。 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求。 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同 。

外模式与应用的关系:一对多。 同一外模式也可以为某一用户的多个应用系统所使用。 但一个应用程序只能使用一个外模式。

外模式的用途:保证数据库安全性的一个有力措施 。每个用户只能看见和访问所对应的外模式中的数据。 当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动 。设计外模式时应充分考虑到应用的扩充性。

3.内模式

内模式(也称存储模式) 是数据物理结构和存储方式的描述。 是数据在数据库内部的表示方式。 记录的存储方式(例如,顺序存储,按照B树结构存储,按hash方法存储等) 。索引的组织方式 数据是否压缩存储。 数据是否加密 。数据存储记录结构的规定。

一个数据库只有一个内模式

数据库的内模式 ,依赖于它的全局逻辑结构 。独立于数据库的用户视图,即外模式。 独立于具体的存储设备   。将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。