一、数据模型(Data Model)
是一种模型,它是对现实世界数据特征的抽象。数据模型就是现实世界的模拟。
概念模型是现实世界到机器世界的一个中间层次,表现为:
①概念模型用于信息世界的建模;
②现实世界到信息世界的第一层抽象;
③数据库设计人员进行数据库设计的有力工具;
④数据库设计人员和用户之间进行交流的语言。
概念模型要求:
①具有较强的语义表达能力;
②能够方便、直接地表达应用中的各种语义知识;
③简单、清晰、易于用户理解。
!note
数据模型应满足三个方面:
1、能比较真实的模拟现实世界:比如不能把"学生"和"课程"的关系画反(不能写成课程选学生),要符合实际情况;
2、容易被人理解:非专业的人(比如学校的行政老师)看了这个模型,也能明白里面说的是学生、课程这些东西的关系,不用懂复杂的计算机知识;
3、便于在计算机上实现:画出来的这个"地图",最终能转化成计算机能存储、处理的形式(比如我们平时用的表格、数据库里的数据)。
根据模型应用的不同目的,可分为两类:
第一类:概念模型(Conceptual Model)
- 概念模型也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
!note
通俗理解:概念模型是"给用户看的模型 "。按用户的需求和视角设计 。贴合用户的需求和视角,使用用户能看懂的语言(甚至使用大白话)来叙述,能清晰理解模型所涵盖的信息和关系,进而确认需求是否准确。
第二类:逻辑模型和物理模型
- 逻辑模型 主要包括层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object Oriented Model)、对象关系模型(Object Relational Model)等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现。
!note
通俗理解:逻辑模型是"给计算机看的、标准化的模型"。程序员把概念模型转换成计算机能识别的标准化格式 。可以理解为这是程序员建立数据库过程中的核心关键步骤,但不是建立数据库的全部过程。程序员就把用户能看懂的 "大白话需求模型",变成数据库软件(如 MySQL)能处理的技术方案。
- 物理模型 是对数据最低层的抽象,他描述数据在计算机内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
!note
通俗理解:物理模型是"数据在电脑里具体怎么放的模型",是最底层的细节。描述数据在计算机硬件里的真实存储细节。简单说,物理模型的基础实现靠硬件和数据库软件,但高级优化需要程序员参与,并非和程序员完全无关。
二、数据模型的组成要素
数据模型通常由数据结构、数据操作和完整性约束三部分组成。
1、数据结构
数据结构描述数据库的组成对象以及对象之间的联系。数据结构使所描述的数据对象类型的集合,是对系统静态特征的描述。
!note
数据结构就像"数据库的骨架",规定了数据库里要装哪些东西、这些东西之间是什么关系。比如学校数据库里,"骨架"就是学生、课程、老师这些"对象",以及"学生选课程""老师教课程"这些"联系"。说它是"静态特征",因为它描述的是"有什么""是什么关系",不涉及"对这些东西做什么操作"。
2、数据操作
数据库主要由查询 和更新(包括插入、删除、修改)两大类操作。数据操作是对系统动态特征的描述。
!note
通俗理解:数据操作就是"对数据库里的数据能做的动作",是让数据库"动起来"的方式。比如"查某个学生的成绩"(查询)、"新增一个学生信息"(插入)、"删除已毕业学生的记录"(删除)、"修改学生的联系电话"(修改),这些都是数据操作。"动态特征"就是指这些"动作"本身,描述的是"能做什么"。
3、数据的完整性约束条件
数据的完整性约束条件是一组完整性规则。
!note
例:若已经规定成绩是0~100,那么就不能出现100以上与0以下的成绩,要遵守规定的规则。
通俗理解:完整性约束就是数据库的"数据规矩",用来保证数据是准确、合理、有效的。除了例子里的"成绩范围限制",常见的还有"学号不能重复"(每个学生的学号是唯一的)、"必填字段不能空"(学生的姓名必须填写,不能留空)等。有了这些规矩,才能避免出现错误或无效的数据,比如不会出现"学号重复的学生""成绩150分"这种不合理的情况。