文章目录

雪月书韵茶香

昨夜西风凋碧树,独上高楼,望尽天涯路


X

数据模型

数据模型

image.png

模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。

数据模型应满足三方面的要求:

  • 能比较真实地模拟现实世界
  • 容易被人理解
  • 便于在计算机上实现

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

数据模型的组成要素

数据结构

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

这里要注意区别 数据结构不是指二叉树、图之类的,这里的数据结构指层次、网、关系等。

描述的内容:

  • 1.与对象的类型、内容、性质有关
  • 2.与数据之间的联系有关

数据结构是对系统静态特性的描述。

数据操作

  • 对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作以及有关的操作规则。
  • 数据操作的类型 --增删改查

数据模型对操作的定义

  • 数据操作的确切含义
  • 操作符号
  • 操作规则(如优先级)
  • 实现操作的语言

数据操作是对系统动态特性的描述

数据的完整性约束条件

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

数据模型对完整性约束条件的定义

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

enter description here

概念模型

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

概念模型的用途

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

信息世界中的基本概念

实体(Entity)

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

实体可以是具体的人、事、物或抽象的概念,在此我们可联想到Java中的面向对象中实体。

属性(Attribute)

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

码 (Key)

★★★

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

我对码的理解就是,码就是主键或者复合主键(复合主键--一张表只能有一个主键,但我们可以选多个属性值为主键)。通过码我们可以唯一的确定一个实体,比如我们的身份号,在中国通过一个人的身份证号可以确定一个人,这个身份号就是主键。再举一个复合主键的例子:

一位母亲去学校找自己儿子张三,传达室人就问你找谁。这位母亲说我儿子在高三六班名字叫张三,不巧的是,这个班级里面有两个叫张三的,还是不知道这位母亲具体要找的是哪个张三。这位母亲又说,我儿子生日是99年八月十五。传达室通知了高三五班的班主任,让这个99年八月十五出生的张三到校门口传达室与其母亲相见。

通过这个故事我们分析一下,这位母亲是通过什么信息来找到自己儿子的呢?

没错 ,就是姓名,班级,还有生日。那么在这里姓名、班级、生日就是码(数据库建立对应的表的话 我称它为复合主键),通过多个属性值 来确定唯一个实体。

实体型 (Entity Type)

用实体名及其属性名来抽象和刻画同类实体称为实体型。

实体集 (Entity Set)

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

联系 (Relationship)

现实世界中事物内部以及事物之间的联系在信息世界中反应为实体(型)内部的联系和实体(型)之间的联系

  • 实体内部的联系通常是指组成实体的各属性之间的联系
  • 实体之间的联系通常是指不同实体集之间的联系
  • 实体之间的联系有一对一、一对多和多对多等多种类型

实体-联系方法(Entity-Relationship Approach)

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

逻辑模型

逻辑模型主要包括

  • 网状模型
  • 层次模型
  • 关系模型
  • 面向对象数据模型
  • 对象数据关系模型
  • 半结构化数据模型

层次模型

层次模型是数据库系统中最早出现的数据模型,其典型的代表是IBM公司的IMS(Information Management System)数据库。

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

满足下列两个条件的基本层次联系的集合为层次模型

  • 1.有且只有一个结点没有双亲结点,(也即是根节点)
  • 2.根以外的其它结点有且只有一个双亲结点

一个层次模型实例如下图:
enter description here

层次模型的特点

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

教员学生层次数据库模型

enter description here
教员层次数据库的一个值
enter description here

上面两张图就很好的解释了什么是层次模型。以及层次模型的特点。

层次模型的完整性约束条件

  • 没有相应的双亲节点值就不能插入子女节点值
  • 如果删除双亲节点值,则该双亲的子女节点也一并删除
  • 更新操作时候,应该更新所有相应记录,以保证数据的一致性

层次模型的优缺点

优点

  • 层次模型的数据结构简单明了
  • 查询效率高,性能比关系模型要好
  • 层次模型提供了良好的完整性支持

缺点

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

网状模型

网状数据库采用网状模型作为数据的组织方式,典型代表是DBTG系统,20世纪70年代的提出的方案。

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

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

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

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

我们都学过数据结构这门课,结合树形结构和网状结构的特点,不难理解网状模型和层次模型的区别。

在网状模型中表示多对多联系是通过将多对多联系直接分解成一对多联系。

聊到多对多不得不提到这个经典的选课问题:

大学中,一个学生可以选修若干们课程,其一门课程可以被多个学生选修,学号是呢过与课程之间是多对多联系。

引进一个学生选课的联结记录,由三个数据项组成(在数据库中就是建立一张选课表,用来联结课程表和学生表的)

  • 学号
  • 课程号
  • 成绩

这样就可以表示某个学生选修某一门课程以及该学生的成绩了。

enter description here

网状模型的完整性约束

  • 码:唯一标识记录的数据项的集合
  • 一个联系中双亲记录与子女记录之间是一对多联系
  • 支持双亲记录和子女记录之间某些约束条件

网状模型 的优缺点

优点

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

缺点

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

关系模型

关系数据库系统采用关系模型作为数据的组织方式,关系模型是1970年提出的。
现在的计算机厂商推出的书库管理系统几乎都支持关系模型,也是我们以后学习的重点。

关系模型的数据结构、

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

enter description here
|术语|解释|
| --- | --- |
|- 关系(Relation) |对应通常说的一张表|
|- 元组(Tuple) |表中的一行就是一个元组|
|- 属性(Attribute) |表中的一列就是一个属性,给每一个属性起一个名称即属性名|
|- 主码(Key) |也成码键。表中的某个属性组,它可以是唯一确定一个元组。|
|- 域(Domain) |是一组具有相同数据类型的值的集合。属性的取值范围来自某个域|
|-分量 |元组中的一个属性值|
|- 关系模式 |对关系的描述|

最基本的规范条件:

关系的每一个分量必须是一个不可分的数据项,不允许表中还有表

enter description here

术语对比

enter description here

在使用基于关系模型的数据库时候,数据的存取路径是对用户隐蔽的,用户只需要支出“干什么”,不必详细说明“怎么干”。

关系完整性约束条件

  • 实体完整性
  • 参照完整性
  • 用户定义的完整性

关系模型的优缺点

优点

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

缺点

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

物理模型

物理模型是对数据最底层的抽象,描述数据在系统内部的表示和存取方法,在磁盘或磁带上的存储方式和存取方法。


大纲生成思维导图敬上

数据模型


标题:数据模型
作者:shuaibing90
版权声明:本站所有文章除特别声明外,均采用 CC BY-SA 4.0转载请于文章明显位置附上原文出处链接和本声明
地址:https://xysycx.cn/articles/2020/03/04/1583335163588.html
欢迎加入博主QQ群点击加入群聊:验证www.xysycx.cn