模型(model):对现实世界的抽象。
数据模型:描述数据库的结构和语义,对现实世界的数据进行抽象。
从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象过程。
根据数据抽象的级别定义了四种模型:概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。一般,在提及时省略“数据”两字。
概念模型:表达用户需求观点的数据全局逻辑结构的模型,称为“概念模型”。
逻辑模型:表达计算机实现观点的DB全局逻辑结构的模型,称为“逻辑模型”。
外部模型:表达用户使用观点的DB局部逻辑结构的模型,称为“外部模型”。
内部模型:表达DB物理结构的模型,称为“内部模型”。
四种模型之间的相互关系如图
数据抽象的过程,具体步骤如下:
第1步:根据用户需求,设计数据库的概念模型,这是一个“综合”的过程。
第2步:根据转换规则,把概念模型转换成数据库的逻辑模型,这是一个“转换”的过程。
第3步:根据用户的业务特点,设计不同的外部模型,给程序员使用。
第4步:数据库实现时,要根据逻辑模型设计其内部模型。
一般,上述第1步称为DB的概念设计,第2、3步称为DB的逻辑设计,第4步称为DB的物理设计。
概念模型
概念模型的特点如下所述:
(1)概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述。
(2)概念模型是从用户需求的观点出发,对数据建模。
(3)概念模型独立于硬件和软件。硬件独立意味着概念模型不依赖于硬件设备,软件独立意味着该模型不依赖于实现时的DBMS软件。
(4)概念模型是数据库设计人员与用户之间进行交流的工具。
ER模型是P.P.Chen于1976年提出的。这个模型直接从现实世界中抽象出实体类型及实体间联系,然后用实体联系图(ER图)表示数据模型。设计ER图的方法称为ER方法。
ER图有三个基本成分:
矩形框,用于表示实体类型(考虑问题的对象)。
菱形框,用于表示联系类型(实体间联系)。
椭圆形框,用于表示实体类型和联系类型的属性。
ER模型有两个明显的优点:一是简单,容易理解,真实地反映用户的需求;二是与计算机无关,用户容易接受。因此ER模型已成为软件工程的一个重要设计方法。
但是ER模型只能说明实体间语义的联系,还不能进一步说明详细的数据结构。在数据库设计时,遇到实际问题总是先设计一个ER模型,然后再把ER模型转换成计算机能实现的数据模型,譬如关系模型。
逻辑模型
在选定DBMS软件后,就要将概念模型按照选定的DBMS的特点转换成逻辑模型。
逻辑模型具有下列特点:
(1)逻辑模型表达了DB的整体逻辑结构,但它是设计人员对整个应用项目数据库的全面描述。
(2)逻辑模型是从数据库实现的观点出发,对数据建模。
(3)逻辑模型独立于硬件,但依赖于软件(DBMS)。
(4)逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。
层次模型
用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型( Hierarchical Model)。
层次模型的特点:
只有一个根结点,且此结点无双亲;
其他结点只有一个双亲且唯一;
只表示1:N联系;
操作复杂(层次关系);
查询效率较高(联系通过指针实现) ,程序的编写较复杂。
网状模型
用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(network model)。
网状模型的特点:
可以有一个以上的结点无双亲;
结点可以不只一个双亲;
可表示M:N联系,查询效率高(联系通过指针实现);
结构和编程复杂。
关系模型
关系模型(Relational Model)的主要特征是用二维表格表达实体集。
与前两种模型相比,数据结构简单,容易为初学者理解。
关系模型是由若干个关系模式组成的集合。
关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
对象模型
对象(object)是现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。
将属性集和方法集相同的所有对象组合在一起,构成了一个类(class)。
四种逻辑数据模型的比较
| 层次模型 | 网状模型 | 关系模型 | 面向对象模型 |
创始 | 1968年IBM公司的IMS系统 | 1969年CODASYL的DBTG报告(71年通过) | 1970年E.F.Cold提出关系模型 | 20世纪80年代 |
数据结构 | 复杂(树结构) | 复杂(有向图结构) | 简单(二维表) | 复杂(嵌套递归) |
数据联系 | 通过指针 | 通过指针 | 通过表间的公共属性 | 通过对象标识 |
查询语言 | 过程性语言 | 过程性语言 | 非过程性语言 | 面向对象语言 |
典型产品 | IMS | IDS/Ⅱ,IMAGE/3000, IDMS,TOTAL
| Oracle,Sybase,DB2, SQL Server,Informix | ONTOS DB |
盛行期 | 20世纪70年代 | 70年代至80年代中期 | 80年代至现在 | 90年代至现在 |
外部模型中的模式称为“视图”(View)
外部模型具有如下的特点:
(1)外部模型是逻辑模型的一个逻辑子集。
(2)外部模型独立于硬件,依赖于软件。
(3)外部模型反映了用户使用数据库的观点。
从整个系统考察,外部模型具有下列优点:
(1)简化了用户的观点。
(2)有助于数据库的安全性保护。
(3)外部模型是对概念模型的支持。
内部模型又称为物理模型,是数据库最低层的抽象,它描述数据在磁盘或磁带上的存储方式(文件的结构)、存取设备(外存的空间分配)和存取方法(主索引和辅助索引)。
内部模型是与硬件和软件紧密相连的。
在层次、网状模型设计时,要精心设计内部模型,以提高系统的效率。但随着计算机软、硬件性能的大幅度提高,并且目前占绝对优势的关系模型是以逻辑级为目标,因而可以不必考虑内部级的设计细节,由系统自动实现。