1.两类模型
数据模型的定义:数据模型是在数据库中来抽象、表示和处理现实世界中的数据和信息的模型,通俗来说就是对现实世界的模拟。
数据模型的要求:数据模型需要能比较真实地模拟现实世界,要尽可能容易理解,同时要容易在计算机上实现。
数据模型的分类:数据模型可以分为两大类,第一类是概念模型,第二类是逻辑模型和物理模型。
客观对象的抽象过程:客观对象的抽象过程可以分为两步,分别将现实世界抽象为信息世界,再将信息世界转换为机器世界。第一步为将现实世界中的客观对象抽象为概念模型(由数据库设计人员完成),第二步将概念模型转换为计算机上DBMS所支持的的逻辑模型和物理模型(概念模型到逻辑模型由数据库设计人员完成,而从逻辑模型到物理模型由DBMS自动完成)。
概念模型的定义:概念模型也称为信息模型,是按照用户的观点来对数据和信息进行建模,用于数据库设计。
逻辑模型的定义:逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,其按照计算机系统的观点对数据进行建模,用于DBMS实现。
物理模型的定义:物理模型是对数据最底层的抽象,描述数据在计算机系统内部的表示和存取方法,或在磁盘或磁带上的存储方式和存取方法。
2.概念模型
概念模型的作用:概念模型用于信息世界建模,是现实世界到机器世界的一个中间层次。概念模型是数据库设计的有力工具,同时也是数据库设计人员和用户之间进行交流的语言。
概念模型的要求:概念模型要有较强的语义表达能力,能够方便、直接地表大应用中的各种语义知识,从而简单清晰方便用户理解。
2.1.信息世界中的基本概念
①实体:实体是客观存在并且可以相互区别的事物。实体可以是人、事、物也可以是抽象的概念。
②属性:实体所具有的某一特性成为属性。一个实体可以由若干个属性来进行刻画。
③码:唯一标识实体的属性组称为码。
④域:属性的取值范围称为该属性的域。
⑤实体型:实体型是用实体名及其属性名集合来抽象和刻画同类实体的模型。
⑥实体集:同一类型实体的集合称为实体集。
⑦联系:现实世界中事物内部的联系以及事物之间的联系在信息世界中反应为实体内部的联系和实体之间的联系。实体内部的联系通常指组成实体的各属性之间的联系,实体之间的联系通常指不同实体集之间的联系。
2.2.实体型之间的联系
两个实体型之间的联系的分类:两个实体型之间的联系可以分为一对一联系、一对多联系和多对多联系。
一对一联系定义:如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。
一对多联系定义:如果对于实体集A中的每一个实体,实体集B中至多有n个实体与之联系,反之对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A和实体集B具有一对多联系。
多对多联系定义:如果对于实体集A中的每一个实体,实体集B中都有多个实体与之联系,反之,如果对于实体集B中的每一个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B具有多对多联系。
两个以上实体型之间的联系:如果两个以上的实体型之间存在一个相同的联系,则称这些实体型之间存在联系。
2.3.单个实体型内的联系
单个实体型内部可以存在一对多联系(职工内部的领导与被领导关系)和多对多联系(学生和多个学生的同班同学关系)。
2.4.概念模型表示的E-R方法
E-R方法定义:E-R方法即为实体-联系方法,其用E-R图来描述现实世界的概念模型。E-R方法也称为E-R模型。
E-R方法内容:
①实体型的表示:用矩形表示实体型,在矩形框内写明实体名;
②属性的表示:用椭圆形表示属性,并将其用无向边与相应的实体连接起来;
③联系的表示:用菱形表示联系,在菱形内写出联系名,并用无向边分别与有关实体连接起来,同时在无向边旁边标注联系的类型。
④联系的属性表示:联系本身也可以视为一种实体型,因此也可以具有属性。如果一个联系具有属性,则这些属性也需要用无向边与联系进行连接。
3.数据模型的组成要素
数据模型中的三大组成要素是数据结构、数据操作和完整性约束条件。
3.1.数据结构
数据结构的定义:数据结构是描述数据库的组成对象以及对象之间的联系、
数据结构是对系统静态特征的描述。
3.2.数据操作
数据操作的定义:数据操作是对数据库中各种对象(型)的实例(值)允许执行的操作和有关的操作规则。
数据操作的类型:数据操作包括查询和更新,其中更新可以进一步分为插入、删除和修改。
数据操作是对系统动态特征的描述。
3.3.完整性约束条件
完整性约束条件定义:完整性约束条件是一组完整性规则的集合,是指在给定的数据模型中,数据及其联系所具有的制约和存储规则,用于限定符合数据类型的数据库状态以及控制状态的变化,从而保证数据的正确、有效和相容。
关系模型中完整约束性条件的分类:关系模型中的完整约束性条件可以分为实体完整性和参照完整性。
4.最常用的数据模型
最常用的的数据模型包括层次模型、网状模型、关系模型、面向对象模型、对象关系模型、半结构化模型和无结构化模型等。
4.1.层次模型
层次模型定义:层次模型是数据库系统中最早出现的模型,层次模型采用树形结构来表示各类实体以及实体之间的联系。
层次模型的数据结构:满足下面两个条件的基本层次联系的集合为层次模型:
①有且只有一个没有双亲的结点,这个结点称为根节点;
②根节点之外的其他结点有且只有一个双亲结点。
层次模型的特点:
①结点的双亲唯一;
②只能直接处理一对多的实体联系;
③每个记录类型可以定义一个排序字段(码字段);
④任何记录值都只能按照其路径进行查看才能显示其全部意义;
⑤任何一个子女记录值都不能脱离双亲记录值而独立存在。
层次模型的完整性约束条件:
①无相应的双亲结点就不能插入子女结点值;
②如果删除双亲结点值则必须删除相应的子女结点值;
③更新操作时应该更新所有的相应记录以保持数据的一致性。
层次模型的存储结构(物理模型):
邻接法:按照树的前序遍历顺序把所有记录值依次邻接存放,也就是通过物理空间的位置相邻来实现层次顺序。
链接法:用指引来反映数据之间的层次联系。可以分为子女-兄弟链接法和层次序列链接法。
层次模型的优点:
①层次模型的数据结构比较简单清晰;
②层次模型的查询效率高,性能高于关系模型,不低于网状模型;
③层次模型提供了良好的完整性支持。
层次模型的缺点:
①层次模型不方便表示多对多联系;
②层次模型对插入和删除的限制较多,不方便编写程序;
③查询子女结点必须经过双亲结点。
4.2.网状模型
网状模型的定义:网状模型是满足下面两个条件的基本层次联系的集合:
①允许一个以上的结点无双亲;
②允许任何一个结点可以有多一个的双亲。
网状模型的表示:网状模型中实体型使用记录类型描述,每个结点表示一个记录类型;属性使用字段进行描述,每个记录类型可以包含若干个字段;联系用结点之间的连线进行表示:网状模型中的连线表示一对多的父子关系。
网状模型和层次模型的区别:
①网状模型允许多个结点没有双亲结点;
②网状模型允许一个结点有多个双亲结点;
③网状模型允许两个结点之间有多种联系(复合联系);
④网状模型可以更加直接地描述现实世界;
⑤层次模型实际上是网状模型的一个特例。
注意事项:由于网状模型中子女结点与双亲结点的联系可以不唯一,因此需要为每一个联系命名,并指出与该联系有关的双亲记录和子女记录。
网状模型的存储结构:网状模型常用的存储结构包括:单向链接、双向链接、环状链接、向首链接。
网状模型的优点:
①网状模型可以更加直接地描述现实世界;
②网状模型具有良好的性能,存取效率较高。
网状模型的缺点:
①网状模型的结构比较复杂,不利于用户掌握;
②网状语言的数据定义和数据实现语言复杂,不方便用户使用。
4.3.关系模型
关系模型的概念:关系模型是关系数据库采用的数据组织方式,几乎新推出的数据库管理系统都支持关系模型。
关系模型的数据结构:在用户看来,关系模型的数据结构是一张二维表。
关系模型的相关概念:
①关系:一个关系就是一张二维表;
②元组:二维表中的一行就称为一个元组;
③属性:二维表中的一列称为一个属性,每一个属性都需要一个属性名。
④主码:二维表中可以唯一确定一个元组的某个属性组。
⑤域:用于表示属性的取值范围;
⑥分量:二维表中某元组的一个属性值称为分量;
⑦关系模式:关系模式是对关系的描述,关系模式和关系是“型”和“值”的联系。
关系的基本规范:关系中的每一个分量必须是不可再分的数据项,也就是说不允许二维表中还有表。
关系模型的操作:关系模型中的操作都是关系操作,也就是操作对象和操作结果都是关系。关系模型中若干元组的存取路径对用户屏蔽,用户只需要指出“干什么”而无需说明“怎么干”。
关系模型的完整约束性条件:包括实体完整性、参照完整性和用户定义的完整性。
关系模型的存储结构:关系模型中实体以及实体之间的联系都通过二维表来表示,二维表通过文件形式存储。
关系模型的优点:
①关系模型建立在严格的数学概念的基础上;
②关系模型中概念单一,实体和各类联系都通过关系进行表示,数据的检索结果也是关系。
③关系模型的存取路径对用户透明,使得数据的独立性和安全保密性更好,同时简化了程序员和数据库开发的工作。
关系模型的缺点:
①存取路径对用户透明,因此查询效率一般不如非关系数据模型;
②为了提高性能必须对用户的查询请求进行优化,从而增大了DBMS的开发难度。