SQL Server 2012数据库技术及应用(微课版·第5版)
上QQ阅读APP看书,第一时间看更新

1.3 数据模型

数据模型(Data Model)是对现实世界数据特征的抽象,是数据库系统中用来提供信息表示和操作手段的形式构架。计算机不能直接处理现实世界的客观事物,所以人们只有将客观事物转成数字化的数据,才能让DBMS识别处理。如前所述,数据库是按照某种数据模型组织起来的、可以被各种用户或应用程序共享的数据集合。

1.3.1 数据模型的应用层次

众所周知,现实世界是由客观存在的事物及其联系构成的。

例如,学校里学生和课程均为客观事物,学生和课程之间存在着学生选课的联系,如图1-4中的①所示。

为了把现实世界中的具体事物抽象并组织为某种DBMS支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。也就是说,首先将现实世界中的事物及其联系抽象为概念数据模型,如图1-4中的②所示。然后再将概念数据模型数据化为某一个DBMS支持的逻辑数据模型,如图1-4中的③所示。再面向计算机进行物理存储设计,即建立物理数据模型。

图1-4 3个世界的转换

由此可见,在数据库设计过程中,数据模型按不同的应用层次可分为以下3种类型。

1.概念模型(信息世界)

概念数据模型(Conceptual Data Model)简称概念模型,是对现实世界的认识和抽象描述,按用户的观点对实体及其联系建立概念化结构,用于信息世界的建模。概念模型不考虑在计算机和DBMS上的具体实现,常用的有E-R概念模型和IDEF1X概念模型。

例如,在学校教务管理系统中,将学生、课程以及学生选课的客观事物抽象为“学生”实体(Entity,E)、“课程”实体(Entity,E)以及实体之间的“选课”联系(Relationship,R),并派生出“成绩”属性(Attribute,A),建立的E-R概念模型如图1-4中的②所示。

2.逻辑模型(机器世界)

逻辑数据模型(Logical Data Model)简称逻辑模型,是指按照计算机系统的观点,将概念模型转换为DBMS支持的某一种数据模型(如关系数据模型),用于机器世界的建模。

例如,在学校教务管理系统中,将概念模型转换为关系数据模型,其中的学生、课程及其学生选修课程可用Student、Course和SC关系来描述,如图1-4中的③所示。

3.物理模型(物理存储)

物理数据模型(Physical Data Model)简称物理模型,是面向计算机物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,而且与操作系统和硬件有关。每一种逻辑模型在实现时都有其对应的物理模型。DBMS为了保证其独立性与可移植性,大部分物理模型的实现工作都由系统自动完成,而设计者只设计索引、聚集等特殊结构。

1.3.2 数据模型的组成要素

数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常由数据结构、数据操作和数据完整性约束3个部分组成。

1.数据结构

数据结构是所研究的对象类型的集合。这些对象是数据模型的组成成分,它们包括两类,一类是与数据类型、内容、性质有关的对象,另一类是与数据之间的联系有关的对象。

数据结构用于描述系统的静态特征。DBMS的DDL可实现数据库的数据结构定义功能。例如,用SQL Server的T-SQL定义一个学生表的语句如下。

2.数据操作

数据操作是指对数据模型中各种数据对象允许执行的操作的集合,包括操作及有关的操作规则。数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言。

数据操作用于描述系统的动态特性。DBMS的DML可实现数据库的数据操作功能。例如,用SQL Server的T-SQL对以上学生表插入一行数据的语句如下。

3.数据完整性约束

数据完整性约束是一组完整性规则的集合,主要描述数据模型中数据及其联系所具有的制约和依存规则,以保证数据的精确性和可靠性,即保证数据模型的数据完整性。

DBMS的DDL和DCL提供多种约束保证数据完整性。例如,用SQL Server的T-SQL在创建学生表的同时进行完整性约束定义的语句如下。

对于这样定义的学生表,用户在输入学生的学号“SID”时,如果出现学号重复或者为空的情况,DBMS将给出错误提示信息并要求纠正错误。当用户输入性别“Sex”时,也将只能输入“男”或“女”。当用户输入出生日期“Birthdate”时,只能输入合法的日期数据,从而保证了数据的正确性。

1.3.3 逻辑模型的结构分类

按照数据结构分类,数据库领域中的逻辑模型一般有以下3种。

1.层次模型

层次模型(Hierarchical Model)用树形结构来表示各类实体以及实体之间的联系,如图1-5所示。现实世界中许多实体之间的联系本来就呈现出一种自然的层次关系,但由于这种数据结构常用链接指针来表示,因此在需要动态访问数据时效率不高。对于某些应用系统要求很高的情况,数据的插入与删除等操作也有许多限制,所以现在已经很少采用了。

2.网状模型

网状模型(Network Model)用图形结构来表示各类实体以及实体之间的联系,如图1-6所示。网状模型是对层次模型的扩展,是现实世界中许多实体之间的联系本来就呈现出的一种自然的图形关系。网状模型的缺点是结构复杂,用户不易掌握,扩充和维护都比较复杂。它与层次模型的数据结构相同,但数据的插入与删除等操作限制更多,因此现在也很少采用。

图1-5 某组织部门的层次模型示例

图1-6 某销售机构的网状模型示例

3.关系模型

关系模型(Relational Model)用二维表结构来表示各类实体以及实体之间的联系,如表1-1所示。关系模型建立在严格的关系代数的基础上,是目前最重要的一种逻辑模型。

表1-1 教务管理关系模型中的关系Student(学生表)

1970年,美国IBM公司Sun Jose研究室的研究员埃德加·弗兰克·科德(E.F.Codd)首次提出了数据库的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。埃德加·弗兰克·科德由于在这方面的杰出工作,于1981年获得ACM图灵奖。

20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也大多加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础的。

本书要介绍的SQL Server 2012就是一种支持关系模型的数据库管理系统。有关关系数据模型的数据结构、数据操作和数据完整性约束的具体内容将在第3章详细介绍。