首页 百科知识 常用的数据模型概述

常用的数据模型概述

时间:2022-10-22 百科知识 版权反馈
【摘要】:数据库系统中用于提供信息表示和操作手段的形式构架称为数据模型。不难看出概念数据模型是按用户的观点来对数据和信息建模的,用于组织信息世界的概念,表现从现实世界中抽象出来的事物以及它们之间的联系。结构数据模型是在概念数据模型的基础上建立的一种适合于计算机表示的数据库层的模型,是对信息世界作进一步抽象描述所得到的模型。关系模型是目前最重要的结构数据模型。

5.1.3 常用的数据模型概述

数据库系统是面向计算机的,而应用是面向现实世界的,两个世界存在着很大差异,要直接将现实世界中的语义映射到计算机世界是十分困难的,因此需引入一个信息世界作为现实世界通向计算机实现的桥梁。一方面,信息世界是对现实世界的抽象,可从纷繁的现实世界中抽取出能反映现实本质的概念和基本关系;另一方面,信息世界中的概念和关系,要以一定的方式映射到计算机世界中去,并在计算机系统上最终实现。信息世界起到了承上启下的作用,其数据抽象示意图如图5-6所示。

img470

图5-6 三个世界抽象示意图

在信息世界中客观存在并可相互区分的事物叫实体(entity),例如,学生张三、工人李四、计算机系、数据库概论。对于抽象的概念或联系也可以叫实体,例如,学生选课、图书馆借书、部门订货等。实体所具有的某一特性称属性(attribute),一个实体可以由若干个属性来刻画,例如,学生可由学号、姓名、年龄、系、年级等组成。能唯一标识实体的属性或属性集称为候选码(key),由一个或几个属性组成。从所有候选码中选定一个用来区别同一实体集中的不同实体,称为主码。学号是学生实体的主码。值得注意的是,同一实体集中任意两个实体在主码上的取值不能相同。例如,通讯录(姓名,邮编,地址,电话,E-mail,Telephone)其主码为姓名,但条件是要求没有相同姓名的人。属性的取值范围称为域(domain)。例如,性别的域为(男、女),月份的域为1到12的整数。实体名与其属性名集合共同构成实体型(entity type)。例如,学生(学号、姓名、年龄、性别、系、年级)。实体型与实体(值)之间的区别为后者是前者的一个特例。例如,(9808100,王平,21,男,计算机系,2)是一个实体。同型实体的集合称为实体集(entity set)。例如,全体学生。实体之间的相互关联称为联系(relationship)。例如,学生与老师间的授课联系,学生与学生间有班长联系。同类联系的集合称为联系集。联系也可以有属性,如学生与课程之间有选课联系,每种选课联系都有一门成绩作为其属性。实体之间的联系可分为一对一联系,一对多联系和多对多联系等三种,如图5-7所示。

数据库系统中用于提供信息表示和操作手段的形式构架称为数据模型。在数据库技术中有概念数据模型和结构数据模型两类数据模型。现实世界的事物反映到人的大脑中来,人们再把这些事物首先抽象为一种既不依赖于具体的计算机系统又不受某一DBMS所左右的概念数据模型,然后再把概念数据模型转换为计算机上某一DBMS所支持的结构数据模型,如图5-8所示。

概念数据模型用于信息世界的建模,是现实世界到数据世界的第一层抽象,是设计人员进行数据库设计的有力工具。

概念数据模型的表示方法有很多种,其中最常用的一种是实体-联系(entity-relationship,E-R)方法,该方法用E-R图来描述现实世界的模型,也称为实体-联系模型。在E-R图中用长方形表示实体,用椭圆形表示属性,用菱形表示联系,如图5-9所示。联系分类有一对一联系、一对多联系和多对多联系等三种。

img471

图5-7 实体之间的联系

img472

图5-8 数据库系统中的数据模型

img473

图5-9 E-R图描述现实世界的构件

例如,对学生(姓名、学号、系别)实体和课程(课程名,选修课,主讲老师)实体描述的概念数据模型——E-R模型如图5-10所示。

img474

图5-10 E-R模型范例

不难看出概念数据模型是按用户的观点来对数据和信息建模的,用于组织信息世界的概念,表现从现实世界中抽象出来的事物以及它们之间的联系。这类模型强调其语义表达能力,概念简单、清晰,易于用户理解。它是现实世界到信息世界的抽象,是用户与数据库设计人员之间进行交流的语言。

结构数据模型是在概念数据模型的基础上建立的一种适合于计算机表示的数据库层的模型,是对信息世界作进一步抽象描述所得到的模型。结构数据模型是一组严格定义的概念的集合,它通常由数据结构、数据操作和完整性约束等三部分组成。

数据结构是指数据对象的集合。它是对数据库静态特征的描述,描述数据对象的数据类型、性质、内容及数据对象之间的联系。例如,某学校的学生管理系统中,学生有学号、姓名、性别、出生日期等多种属性,每种属性在计算机中表示为不同类型的数据。

数据操作是对数据库动态特征的描述。它是指允许对数据库中多种数据值进行的操作集合,包括操作语言及有关操作规则。数据库主要有检索和更新(插入、删除和修改)两大类操作。

完整性约束是指保证数据正确性的一组规则的集合。它是对数据以及数据之间关系的制约和依存规则,如人的性别只能取“男”或“女”两个值中的一个,将学生成绩限定在0~100之间等。

结构数据模型是数据库系统的核心,它规范了数据库中数据的组织形式,表示了数据之间的联系。数据库领域中常用的结构数据模型有层次模型、网状模型和关系模型。

1.层次模型

层次模型是数据库系统中最早出现的数据模型。层次模型用树结构表示各类实体集及实体集间的联系。若用图来表示,层次结构是一种树结构,而且是一棵有序树。图5-11所示为一个教师学生层次数据库模型。

img475

图5-11 教师学生层次数据库模型

层次模型的实际存储数据由链接指针来体现联系。该模型的特点是有且仅有一个节点无父节点,此节点即为根节点,其他节点有且仅有一个父节点。层次模型适合用于表示一对多的联系。

2.网状模型

现实世界中广泛存在的事物及其联系大都具有非层次的特点,于是人们提出了网状数据模型。网状模型是一种图结构,是由字段、记录类型和联系等对象组成的网状结构的模型。从图论的观点看,它是一个不加任何条件的有向图。例如,三种原材料可以做成两种不同的产品,这两种产品可以提供给两个不同的用户。原材料、产品和用户之间的网状模型如图5-12所示。

img476

图5-12 原材料、产品和用户的网状模型

网状模型允许节点有多于一个的父节点,可以有一个以上的节点无父节点。网状模型适合用于表示多对多的联系。

层次模型和网状模型从本质上都是一样的。其缺点是难以实现系统扩充,插入或删除数据时,涉及大量链接指针的调整。

3.关系模型

关系模型是目前最重要的结构数据模型。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型。关系模型建立在严格的数学概念基础上,具有单一的数据结构、坚实的理论基础、高度的数据独立性和安全保密性,以及易于对数据库进行重组和控制的优点。

关系模型中的数据的逻辑结构是二维表,由行和列组成。即数据按行、列有规律地进行排列、组织。数据库中的每一张表都有一张唯一的表名,如表5-1所示的学生表。

表5-1 学生表

img477

下面介绍关系模型中的一些常用术语。

关系:一个关系对应一张按行、列排列的二维表,如表5-1所示的学生表。

属性和值域:表中的一列即为一个属性(字段)值的集合,每一列都有一个名称即属性名(字段名)。每一列中的数据属于同一类型。在一个关系中不允许有相同的属性名。属性值的取值范围称为值域。例如,表5-1中学生表关系的属性有学号、姓名、性别、出生日期、籍贯和系别。性别属性的取值范围是“男”或“女”。

元组:表中的一行(记录)称为一个元组。表中的第一行描述所有的属性名,它构成一张二维表的框架,其他的每一行表示一个具体的实体。例如,在学生表关系中的元组有(201001,张姗,女,1989-2-3,湖北,计算机)。在一个关系中不能存在两个完全相同的元组,元组的顺序可以任意排列。

分量:关系中的每一个数据都可以看成是独立的分量。关系中的每一个分量必须是不可再分的数据项。一个关系中的全部分量构成该关系的全部内容。

关系模式:在二维表中的行定义即是对关系的描述。一般表示为

关系名(属性1,属性2,…,属性n)

例如,表5-1中关系模式表示为:学生(学号,姓名,性别,出生日期,籍贯,系别)。

候选关键字(候选码):一个关系中的某些属性或属性组能用来唯一确定一个元组,那么这些属性或属性组称为该关系的候选关键字。例如,在学生表关系中,当姓名不允许重复时,学号和姓名都是候选关键字。

主关键字(主码):在一个关系的若干个候选关键字中,指定一个用来唯一标识该关系的元组,这个被指定的候选关键字称为该关系的主关键字。例如,在学生表关系中,若指定学号作为唯一标识该关系的元组,那么,学号就是主关键字。

主属性和非主属性:包含在任何一个候选关键字中的属性称为主属性,不包含在任何一个候选关键字中的属性称为非主属性。例如,在学生表关系中,学号和姓名是主属性,其他属性是非主属性。

关系数据库的重要特征之一是数据的完整性约束。数据的完整性是指数据的正确性和一致性。数据库管理系统提供定义数据完整性约束条件的机制,能够检查数据是否满足完整性条件约束,防止数据库中存在不合语义的数据,防止由于错误输入而造成的错误结果。关系模型的完整性约束包括实体完整性、参照完整性和用户自定义完整性,其中实体完整性和参照完整性是关系模型必须支持的完整性约束条件。

(1)实体完整性:一个关系的主关键字不能取空值。例如,在关系“学生(学号,姓名,性别,出生日期,籍贯,系别)”中,若主关键字为“学号”,则“学号”不能取空值。

(2)参照完整性:表与表之间常常存在某种联系,如果现在另外建一张成绩表,包括学号、课程和成绩三个属性,则成绩表中“学号”应与学生表中的“学号”相对应;若学生表中的“学号”是该表的主码,则称“学号”是成绩表的外码,成绩表称为参照关系,学生表称为被参照关系。关系模型的参照完整性是指一个表的外码要么取空值,要么和被参照关系中对应字段的某个值相同。

(3)用户自定义完整性:针对某一具体数据库的约束条件,它反映某一具体应用涉及的数据必须满足的语义要求,即用户根据数据库系统应用环境的不同来自己设定约束条件。

不难看出,结构数据模型从计算机实现的观点来对数据进行建模,是信息世界中的概念和联系在计算机世界中的表示方法,一般有严格的形式化定义,以便在计算机上实现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈