数据库笔记(三)数据模型

发布于 / 笔迹 / 2 条评论

简单小结数据模型相关知识点:数据的三种范畴及相关概念、数据模型及概念模型的ER图表示、传统三大数据模型等。重点内容加粗欢迎大家补充,如有问题清指出

导图

数据描述

数据的三种范畴:

  • 现实世界
  • 信息世界
  • 机器世界

信息世界的基本术语

  • 实体(Entity):客观存在并可相互区别的客观事物或抽象事件。(指人:老师、程序员;指物:水杯;抽象事物:演出、羽毛球赛)
  • 属性(Attribute):指实体所具有的某一方面的特性。(程序员属性:姓名、年龄、性别、所用编程语言、是否会修电脑
  • (Domain):一个属性可能取的所有属性值的范围。(程序员“所用编程语言”的域为:C++、JAVA、Python、PHP等)
  • (Key):唯一标识实体的属性集。(学号为学生实体的码)
  • 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体。【学生(姓名,性别,年龄,学号)就是一个实体型】
  • 实体集(Entity Set):同一类型实体的集合。(某师范大学计算机系学生具有相同的属性,构成实体集“计算机系学生”

机器世界的基本术语

数据化后的信息称为数据,所以说数据是信息的符号表示。

  • 数据项(Filed):对应于信息世界中的属性。(如实体型“学生”中的各个属性:姓名、性别、年龄、学号为数据项)
  • 记录(Record):对应于每个实体所对应的数据。(如对应某一学生的各项属性值为太傅、男、18、2016026等就是一个记录。)
  • 记录型(Record Type):对应于信息世界中的实体型。
  • 文件(File):对应于信息世界中的实体集。
  • 关键字(Key):对应于能够唯一标识一个记录的字段集。

实体间的联系

  • 一对一联系(1:1)

如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。

例:班级与班长之间的联系,一个班级只有一个正班长,一个班长只在一个班中任职。

  • 一对多联系 (1:n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系。记为1:n。

例:班级与学生之间的联系,一个班级中有若干名学生,每个学生只在一个班级中学习。

  • 多对多联系 (m:n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联条,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系。记为m:n。

例:课程与学生之间的联系,一门课程同时有若干个学生选修,一个学生可以同时选修多门课程。


数据模型

  • 模型:对现实世界的特征的模拟和抽象。
  • 数据模型:对现实世界的数据特征的抽象

数据模型的三要素

  • 数据结构
  • 数据操作
  • 完整性约束

数据模型的作用

  • 比较真实的模拟现实世界
  • 容易为人所理解
  • 便于在计算机上实现

概念模型

  • 基本概念:实体、属性、域、码、实体型、实体集。
  • 基本关系:一对一、一对多、多对多。

E-R图表示方法

  • 实体型:用矩形表示,矩形框内写明实体名。

  • 属性:用椭圆表示,椭圆形框内写明属性名,并用无向边将其与相应的实体连接起来。

  • 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时标注联系类型(1:1,1:n,m:m)【联系也可具有属性,用无向边与该联系连接】

E-R模型优点

  • 接近人的思想,容易理解。
  • 与计算机无关,用户容易接受

传统三大数据模型

1️⃣ 层次模型
2️⃣ 网状模型
3️⃣ 关系模型

层次模型

树形结构来表示实体之间联系的模型。

条件:

① 有且只有一个结点没有双亲结点,这个结点称为根结点。
② 根以外的其它结点有且只有一个双亲结点。

特点:

  • 结点的双亲是唯一的
  • 只能直接处理一对多和一对一的实体联系,多对多联系不能直接表示。
  • 任何记录值只有按其路径查看时,才能显出它的全部意义
  • 没有一个子女记录值能够脱离双亲记录值而独立存在

网状模型

用有向图表示,与层次模型在本质上一样。

条件:

① 允许一个以上的结点无双亲。
② 一个结点可以有多于一个的双亲。

特点:

去掉了层次模型的两个限制,允许多个节点没有父节点,允许节点有多个父节点。

关系模型

关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型。

关系模型中数据的逻辑结构是一张二维表,它由行(属性)和列(元组)组成。

概念:

  • 关系(Relation):一个关系对应通常说的一张表。
  • 元组(Tuple):表中的一行即为一个元组。
  • 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称,即属性名。

优点:

  • 数据结构比较简单。
  • 具有很高的数据独立性。
  • 可以直接处理多对多联系。
  • 坚实的理论基础。

缺点:

  • 存取路径对用户透明。
  • 查询效率不如非关系数据模型

效率性能层次模型不低于网状模型,高于关系模型


数据独立与三层结构

数据独立性

定义:应用程序与数据的组织、存储数据分离开来,实现应用程序与数据的相互独立即为数据的独立性

  • 数据库为什么要有数据独立性

数据库是在文件系统上发展起来的。在数据结构或程序设计语言中编写文件管理的系统程序是很复杂的,如果把这样的程序用于实际数据文件的管理就会更复杂,这时候程序是为特定的文件而编写的。也许还是高效的,但它的最大缺点是与文件本身太过密切。如果发现文件组织不合适,则与之相关的应用程序都必须要进行彻底的修改。对于一个规模稍大的系统来说,是难而又难的事情,所需要的程序开发和维护工作量也是难以承受的。更重要的是,随着时间的退役,整个系统可能会混乱不堪。故希望数据库有独立性。

数据库三级模式结构

数据库系统由外模式模式内模式三级构成。

  • 外模式:外模式又称子模式用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。
  • 模式:模式又称概念模式逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)
  • 内模式:内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。

SQL支持关系数据库三级模式结构。其中视图对应于外模式基本表对应于模式存储文件对应于内模式

一个数据库中,外模式可以有多个,模式和内模式只能有一个。

两层映像

  • 外模式/模式映像
  • 模式/内模式映像

数据独立性包括:逻辑数据独立性(外模式/模式映像)和存储数据独立性(模式/内模式映像)。


整理

数据库系统的最大特点是数据的三级抽象二级独立性

描述数据库中全体数据的全局逻辑结构和特征的是模式

层次型、网状型和关系型数据库划分原则是数据之间的联系

在数据库的非关系模型中,基本层次联系是两个记录型以及它们之间的一对多关系

层次和网状模型通过指针链接来表示和实现实体之间联系。

数据库三级模式体系结构的划分,有利于数据库的数据独立性

数据库的概念模型独立于具体的机器和DBMS

数据的物理独立性是指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的

数据库的结构可被划分成:用户级物理级(存储级)概念级


参考资料

To be continued.
2018-01-10 星期三

转载原创文章请注明,转载自: 太傅 » 数据库笔记(三)数据模型
  1. CongTsang

    怎么没有范式啊,不合格!

    1. TaiFu_S
      @CongTsang

      范式不是这一节,学傻了吧?