1. 数据模型的基本概念:
a. 即Data Model,对现实世界中数据特征的抽象;
b. 具体来说,其主要功能就是描述数据、对数据进行合理的组织、定义对数据的各种操作;
c. 使用数据模型对数据进行描述的目的:让计算机能处理现实世界中的种种问题(计算机只能处理数字量,必须将现实世界中的数据抽象成数据模型,才能让计算机进行处理);
d. 所有数据库系统都是基于某种数据模型的;
e. 数据模型必须满足的三方面要求:
i. 能比较真实地模拟现实世界;
ii. 容易被人理解;
iii. 便于在计算机上实现;
2. 数据模型的类别:
a. 就像在施工的不同阶段需要不同图纸一样,在开发实施数据库的过程中也需要不同的数据模型;
b. 分成两类三种,第一类是概念模型(Conceptual Model),第二类是逻辑模型和物理模型;
c. 概念模型:
i. 也称为信息模型,即指从现实世界到信息世界的第一层入口;
ii. 是按照用户的(世界观)观点对数据和信息进行建模;
iii. 该模型可以作为最上层应用程序的通用接口,这样,对于用户来说可以隐藏逻辑结构以及物理结构的具体实现;
d. 逻辑模型:
i. 在数据的逻辑结构层面对数据进行建模,因此其是按照计算机系统结构的观点对数据进行建模(关于系统结构和组成的概念在组成原理中已经讲过),该层次的建模不需要关心数据存储的物理结构(即硬件层面的东西);
ii. 主要由程序员以及DBMS提供的应用开发工具实现(DBMS中包含的一些建模语言等);
iii. 主要包括五大模型:
*1. 层次模型(Hierarchical Model);
*2. 网状模型(Network Model);
*3. 关系模型(Relational Model);
*4. 面向对象模型(Object Oriented Model);
*5. 对象关系模型(Object Relational Model);
e. 物理模型:
i. 对数据最底层的抽象,是从计算机组成的观点对数据进行建模;
ii. 具体到数据在磁盘或磁带上的存储方式和存取方法等;
iii. 是DBMS最为底层的基本实现;
3. 从顶层到底层的抽象过程(其实也是三级级映射):
a. 从现实世界到概念模型的抽象:通过一些DBMS最上层的应用软件以及一些数学软件工具协助用户完成该过程,该级映射需要用户自己实现;
b. 从概念模型到逻辑模型的抽象:通过一些DBMS提供的一些应用工具(一些建模编程语言,即虚拟机)协助数据库管理员实现,该级映射不需要最上层的用户关心;
c. 从逻辑模型到物理模型的抽象:是DBMS最底层的实现,该级映射由DBMS的开发商实现,管理人员不用关心;
4. 数据模型的组成要素:
a. 这是所有数据模型的共性;
b. 由三部分组成:
i. 数据结构:
*1. 描述了数据模型的静态特性;
*2. 主要用来描述数据库中的数据以及数据之间的联系;
数据对象主要是指数据的类型、内容性质等信息;
联系也是一种对象,和数据对象的区别是此种对象是数据之间的特定的关系(离散数学中的概念);
*3. 数据结构主要有三种:层次结构、网状结构、关系结构;
*4. 由于数据结构是数据模型的最重要的一个性质,所以很多数据模型的名字以其数据结构的类型命名,比如层次模型、网状模型、关系模型;
ii. 数据操作:
*1. 即对数据进行的操作以及操作规则的集合;
*2. 最主要有两类操作:查询和更新;
*3. 需要实现操作的语言作为定义操作的开发工具;
iii. 数据的完整性约束条件:
*1. 数据的完整性规则:即必须规定数据对象以及关系所具有的制约和依赖条件,通俗点讲就是指这些数据的合理取值范围等,以保证数据的正确、完整和相容(前面讲过);
*2. 数据的完整性约束条件就是这样一组完整性规则;
*3. 例如一个教工数据库中在职教师的年龄不得超过65岁,或者一个学生系统中获得学位证必须过的学科数不小于6门等;