第2章 数据库核心原理和架构设计
2.1 数据库模型
第1章介绍了数据库的一些基本概念和发展阶段,下面主要介绍各种数据库的常规使用方法。这些数据库虽然各有特点,但是有一些共同的特质,本章主要介绍这些共同的特质,这也是设计数据库时需要优先考虑的要素。
如果要建造一个能容纳各类商品的超市,那么应该如何设计这个超市呢?具体包括哪些步骤呢?第一步是对商品进行分类,先分大类再细分小类,针对每个小类设计合适的货架摆放或陈列方案。做数据库设计时也需要先对数据进行抽象,提取出不同数据之间的共同点,再创建数据模型(Data Model)。数据模型分为两个层级:一是概念模型,二是逻辑模型和物理模型。
1.概念模型
概念模型是从肉眼可见的物体中归纳出来的一些特征,是从现实世界到信息世界的第一级抽象。以超市中的饮品为例,我们可以从中抽象出条码、厂家、品牌、容量、批号、生产日期和保质期等特征。有了这些特征,饮品就可以和衣服、电器进行区分。概念模型中要包含的内容及示例如表2-1所示。
表2-1 概念模型中要包含的内容及示例
2.逻辑模型和物理模型
概念模型是从现实世界中抽象出来的,是人可以直接看懂和理解的;而逻辑模型是信息世界对概念模型的描述方法,是让计算机可以读懂的模型。概念模型和逻辑模型的区别如表2-2所示。
表2-2 概念模型和逻辑模型的区别
概念模型的交付物是数据库设计文档,如一个电子表格,里面是每个实体的定义;逻辑模型的交付物就是一组数据定义语句,一个实体对应一条数据定义语句,实体之间的关联关系用外键约束定义。概念模型的一个实体对应逻辑模型的一个表(Table)。而物理模型就是概念模型实体在硬盘上的存储和组织方式。例如,MySQL或PostgreSQL中的一个表对应硬盘上的一个文件,而SQL Server中的一个数据库实例对应硬盘上的一个文件夹。
上述数据模型的3种分层方法描述的都是数据模型的结构。除了数据结构,数据模型还包括对数据的操作(增、删、查、改)和数据完整性约束,这几部分内容共同构成数据模型的概念。