数据模型
模型是现实世界特征的模拟和抽象。在数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。
数据库技术中研究的数据模型分为两个层面:
一层是面向用户的, 称为概念模型;
另一层面是面向计算机系统的,称为结构模型。
1. 概念数据模型
概念数据模型是独立于计算机系统的数据模型,用来描述某个特定组织关心的信息结构,属于信息世界的建模,所以概念模型应该能够方便、准确地表示客观世界中常用的概念。另外概念数据模型也是用户和应用系统设计员互相交流的桥梁,以保证数据模型能够正确地描述客观世界。
概念模型的表示方法最常用的是P.P.Chen于1976年提出的"实体-联系图方法(Entity-Relationship Approach),简称E-R模型"。E-R实体联系图是直观表示概念模型的工具,其中包含了实体、联系、属性三个成分,联系的方法为一对一(1:1)、一对多(1:N)、多对多(M:N)三种方式,联系属于哪种方式取决于客观实际本身。
E-R模型图,既表示实体,也表示实体之间的联系,是现实世界的抽象,与计算机系统没有关系,是可以被用户理解的数据描述方式。通过E-R模型图可以使用户了解系统设计者对现实世界的抽象是否符合实际情况,从某种程度上说E-R模型图也是用户与系统设计者进行交流的工具,E-R模型图已成为概念模型设计的一个重要设计方法。
E-R图具体范例
实体和实体之间的联系用无向线段连接,在线段上标注联系的类型,实体和联系都由各自的属性。例如,在学生选课管理系统中涉及学生和课程两个实体,同时这两个实体之间有联系的(学生选学课程,课程为学生开设,这种联系是多对多的)。
E-R图在Powerdesigner的表现形式
2. 结构数据模型
概念数据模型是对现实世界的数据描述,这种数据模型最终要转换成计算机能够实现的数据模型。现实世界的第二层抽象是直接面向数据库的逻辑结构,称为结构数据模型,这类数据模型涉及到计算机系统和数据库管理系统。结构数据模型的三个组成部分是:
数据结构:实体和实体间联系的表示和实现。
数据操作:数据库的查询和更新操作的实现。
数据完整性约束:数据及其联系应具有的制约和依赖规则。
关系模型
常用的结构数据模型是关系模型和面向对象模型,关系模型的理论基础是数学理论,数据的操作通过关系运算实现。在关系模型中用二维表表示实体及实体之间的联系,关系模型的实例称为关系。从数学的观点上看,关系是集合,其元素是元组(记录)。遵循一定的规则后,可以将E-R模型图转换成关系模型。
将E-R模型图转换成关系模型的规则:E-R模型图中的主要成分是实体及实体之间的联系,对于实体的转换方式是:
1) 将一个实体转换成一个关系模型。实体的属性为关系模型的属性,实体的标识符为关系模型的关键字,如上图所示的E-R模式中有两个实体:学生、课程,可以分别转换学生模型和课程模型:
学生模型(学号,姓名,性别,年龄),学号是学生模型的关键字
课程模型(课程号,课程名,学时数),课程号是课程模型的关键字
2) 联系转换为关系模型。联系转换成关系模型时,要根据联系方式的不同采用不同的转换方式:
- 若联系的方式是一对一的(1:1),可以在两个实体关系模型中的任意一个关系模型中加入另一个关系模型的关键字和联系类型的属性。
- 若联系方式是一对多的(1:N),则在N端(为多的一端)实体的关系模型中加入1端实体关系模型的关键字和联系类型的属性
- 若联系方式是多对多的(M:N),则将联系也转换成关系模型,其属性是互为联系的两个实体的关键字和联系的属性
关系模型是用关键字作向导来操作数据,数据的操纵是通过关系的运算来完成的,关系的数据模型是二维表,简单、易懂、编写应用程序时不涉及数据的存储结构、访问技术等细节。