以下概念在一些教科书中都会有讲到,比如:《数据库原理与应用》。这
里作了一下总结。
1.1、概念
模型,是对现实世界的抽象,数据模型,就是描述数据结构(静态特征)、
数据操作(动态特征)、数据完整性(动静交互的约束)的概念的集合。而数据模
型也是数据库管理系统(DBMS)的核心和基础,各种DBMS软件的实现都是基于数
据模型的。
1.2、分类
数据模型可分为两种:概念数据模型、结构数据模型。
(1)概念数据模型,是面向现象世界的数据模型,它独立于计算机系统和
DBMS;
常用的概念模型有:E-R模型、面向对象模型等。但DBMS发展至今,主流
的仍然是关系型数据库,所以目前对于概念模型的设计依旧是使用E-R模型为
主。
也许哪天面向对象型数据库成为主流,那我们的概念模型设计就也可以采
用面向对象的方法了。其实ER模型就是面向对象模型的雏形,面向对象模型一
定程度上是从ER模型演变过来的。
(2)结构数据模型,是面向数据库的数据模型,又可分为逻辑数据模型(逻
辑结构)、物理数据模型(物理结构);
逻辑数据模型:这是用户在DBMS中看到的模型。DBMS的逻辑模型先后经
历了层状模型(树状模型)、网状模型、关系模型,以及现在发展中的面向对象
模型,之所以关系型经久不衰,就是因为它简单的逻辑结构:表,无论是设计、
维护都比较容易,尽管在处理效率上略次于前两者。面向对象模型虽然结构清
晰、设计方便,但查询功能太弱,因此在DBMS中暂还没有取代关系模型的地位;
物理数据模型:是指数据在存储介质上的组织结构,它与相应的DBMS及
由DBMS自动完成在相应OS上的存储结构。
上面数据模型的三种分类,也正是数据从现实世界到计算机世界的具体表
示所要经历的过程,无论DBMS的发展如何,这个过程是不会改变的。
相应的,数据库设计可分为以下三步:
(1)概念结构设计:利用概念模型对现实世界进行抽象;
(2)逻辑结构设计:将概念模型转化为逻辑模型,也就是将对现实世界的抽
象转化为计算机上DBMS的数据结构;
(3)物理结构设计:定制逻辑模型中实现的数据结构在物理介质的存储结构;
至于数据库设计在整个软件工程生命周期中所处的位置,详见《软件工程-
5、数据库设计与开发》。
二、概念结构设计
概念结构设计的过程,就是建立E-R模型的过程。
2.1、E-R图
E-R图的组件有很多,但概括起来说,可分为以下四种:
矩形:表示实体
菱形:表示实体间的关系
椭圆:表示实体的属性
线段:用于将实体、关系相连接
对于双矩形、双菱形、双椭圆、双线段等等一些组件,可以不用去管,通
常用以上四种组件就可以表达清楚实体及实体间的关系。
2.2、建立E-R模型
以下过程为建立E-R模型的一般步骤,这里以权限管理模块为例:
2.2.1、标识实体
这是权限管理中常用的基于角色的访问控制(
RBAC),通常有用户、角色这两个实体。
2.2.2、标识关系
用户与角色间为多对多的互相拥有关系。
2.2.3、标识实体、关系的属性
不仅仅是实体有属性,关系同样也有属性,这些属性在实体间建立关系时
才会存在。
有时属性太多,无法在图上一一列出,可以用表格,在后面的步骤中这个
表格同样会用到,如下:
实体属性描述…
用户性别
年龄
…男/女
多大了
联系方式
…
2.2.4、确定属性域
属性域就是属性的取值范围。
这时,可以用表格将属性的数据类型、数据长度、取值范围及是否可为空、
简单/复合、单值/多值、是否为派生属性等域信息定义出来。
这个过程,事实上包含了逻辑结构设计中的数据类型、NULL、CHECK、