数据库数据模型和系统结构

做~自己de王妃 提交于 2019-12-16 17:53:23

数据库中用数据模型来抽象、表示、和处理数据和信息。是现实世界的模拟。

要满足三方面的要求1能够比较真实的模拟现实世界 2 易于理解  3 便于计算机实现

1.1 两大类数据模型

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

(2) 逻辑模型和物理模型

 

1)逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现
2)物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

客观到抽象过程:现实世界客观对象抽象为概念模型,然后把概念模型转化为DBMS支持的数据模型。

1.2 数据模型的组成要素

1)数据结构:描述数据库的组成对象,以及对象之间的联系 。是对系统静态特性的描述 。

2)数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作及操作规则。是对系统动态特性的描述 。

3)完整性约束条件

  一组完整性规则的集合。
完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则 
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 
1.3 概念模型

信息世界中的基本概念
(1) 实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
(2) 属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
(3) 码(Key)
唯一标识实体的属性集称为码。
(4) 域(Domain)
属性的取值范围称为该属性的域。
(5) 实体型(Entity Type)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型
(6) 实体集(Entity Set)
同一类型实体的集合称为实体集
(7) 联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系

概念模型的一种表示方法

实体-联系方法(E-R方法) :用E-R图来描述现实世界的概念模型 ,E-R方法也称为E-R模型
E-R图
实体型:用矩形表示,矩形框内写明实体名。
属性 :用椭圆形表示,并用无向边将其与相应的实体连接起来。
联系 :用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、 1:n或m:n) 

联系的属性: 联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来 


1.4 最常用的数据模型

1)非关系模型
  层次模型(Hierarchical Model)
  网状模型(Network Model)
2)关系模型(Relational Model)
3)面向对象模型(Object Oriented Model)
4)对象关系模型(Object Relational Model)


1.5 层次模型

层次模型是数据库系统中最早出现的数据模型
层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
层次模型用树形结构来表示各类实体以及实体间的联系 
层次模型 :

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

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

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

层次数据模型的存储结构 

邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序 

链接法 用指引来反映数据之间的层次联系 

层次序列链接法按树的前序穿越顺序链接各记录值 

层次模型的优缺点

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

缺点
多对多联系表示不自然
对插入和删除操作的限制多,应用程序的编写比较复杂
查询子女结点必须通过双亲结点
由于结构严密,层次命令趋于程序化

1.6 网状模型

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

网状模型
满足下面两个条件的基本层次联系的集合:
1. 允许一个以上的结点无双亲
2. 一个结点可以有多于一个的双亲

网状模型与层次模型的区别

网状模型允许多个结点没有双亲结点
网状模型允许结点有多个双亲结点
网状模型允许两个结点之间有多种联系(复合联系)
网状模型可以更直接地去描述现实世界
层次模型实际上是网状模型的一个特例
网状数据模型的优缺点

优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲
具有良好的性能,存取效率较高
缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
DDL、 DML语言复杂,用户不容易使用

1.7 关系模型 

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

关系数据模型的数据结构

关系(Relation)
一个关系对应通常说的一张表
元组(Tuple)
表中的一行即为一个元组
属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key)
表中的某个属性组,它可以唯一确定一个元组。
域(Domain)
属性的取值范围。
分量
元组中的一个属性值。
关系模式
对关系的描述
关系名(属性1,属性2, …,属性n)
学生(学号,姓名,年龄,性别,系,年级)

关系数据模型的优缺点

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

缺点
存取路径对用户透明导致查询效率往往不如非关系数据模型
为提高性能,必须对用户的查询请求进行优化增加了开发DBMS的难度 

2 数据库系统结构

从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构 

2.1 数据库系统模式的概念

型(Type)对某一类数据的结构和属性的说明 

值(Value)是型的一个具体赋值 

模式(Schema)
数据库逻辑结构和特征的描述
是型的描述
反映的是数据的结构及其联系
模式是相对稳定的
实例(Instance)
模式的一个具体值
反映数据库某一时刻的状态
同一个模式可以有很多实例
实例随数据库中的数据的更新而变动

2.2 数据库系统的三级模式结构

模式(Schema)也称逻辑模式 ---程序员世界

数据库中全体数据的逻辑结构和特征的描述
所有用户的公共数据视图,综合了所有用户的需求
一个数据库只有一个模式
模式的地位:是数据库系统模式结构的中间层
与数据的物理存储细节和硬件环境无关
与具体的应用程序、开发工具及高级程序设计语言无关
模式的定义
数据的逻辑结构(数据项的名字、类型、取值范围等
数据之间的联系
数据有关的安全性、完整性要求

外模式(External Schema)也称子模式或用户模式 ----用户世界

数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述

数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

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

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

内模式(Internal Schema) 也称存储模式 ----机器世界

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

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

2.3 数据库的二级映像功能与数据独立性 

  • 三级模式是对数据的三个抽象级别
  • 二级映象在DBMS内部实现这三个抽象层次的联系和转换
  • 外模式/模式映像
  • 模式/内模式映像

外模式/模式映象

模式:描述的是数据的全局逻辑结构
外模式:描述的是数据的局部逻辑结构
同一个模式可以有任意多个外模式
每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
映象定义通常包含在各自外模式的描述中
保证数据的逻辑独立性

  • 当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
  • 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 

模式/内模式映象

模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。

数据库中模式/内模式映象是唯一的

 

该映象定义通常包含在模式描述中

 

保证数据的物理独立性 

  • 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变
  • 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!