书城教材教辅管理信息系统原理
11685300000019

第19章 数据库与数据仓库(2)

②数据库的恢复。在数据库被破坏或数据不正确时,系统有能力把数据恢复到最近某个正确的状态。

③数据完整性控制。保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。

④数据的安全性控制。防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。

(4)数据库的维护功能

这一部分包括数据库的建立、数据的转换、数据的转存、数据库的重组及性能监测功能。这些功能都是由数据库管理系统相应的程序模块来实现的,因此DBMS是一个庞大的系统软件。

(5)数据的存储管理

DBMS要分类组织、存储和管理各种数据,如用户数据、存储路径、数据字典,要确定以何种文件结构和存取方式在存储器上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是:提高存储空间的利用率、方便存取,提供多种存取方法(如索引查找),提高存取效率。

4.3数据模型

模型是对现实世界的抽象。在数据库技术中,用模型的概念描述数据库的结构与语义,对现实世界进行抽象。数据模型是数据库系统中用于提供信息表示和操作手段的形式构架。

。,

以将模型分为两类或者说两个层次:一类是概念模型(也称信息模型);另一类是数据模型。

前者是按用户的观点来对数据和信息建模,后者是按计算机系统的观点对数据建模。概念模型用于信息世界的建模,强调语义的表达能力,要能够较方便、直接地表达应用各种语义知识。这类模型应当概念简单、清晰,易于用户理解,因为它是现实世界到信息世界的第一层抽象,是用户和数据库设计人员之间进行交流的语言。数据模型用于机器世界,它通常需要有严格的形式化定义,而且常常会加上一些限制或规定,以便于机器上的实现。这类模型通常有一组严格定义了语法和语义的语言,可以使用它来定义、操纵数据库中的数据。

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

为了把现实世界中的具体事物抽象组织为DBMS支持的数据模型,常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。也就是说,首先把现实世界中的客观世界抽象为某一种信息结构。这种信息结构并不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型,而是概念级的模型。然后再把概念模型转换为计算机上某一DBMS支持的数据模型。因此,概念模型是现实世界到机器世界的中间层次。

1)信息模型的要素

①实体(Entity)。客观存在,可以相互区别的事物称为实体。实体可以是具体的对象,如一个学生、一辆汽车,也可以是抽象的事件,如一次足球比赛、一次借书等。实体分为两个层次:个体和实体(总体)。个体是指能相互区分的,特定的单个实体。

②实体集(Entityset)。性质相同的同类实体的集合,称为实体集,如所有男生、全国足球锦标赛的所有比赛等。

③属性(Attribute)。实体有很多特性,每一个特性称为属性。每个属性有一个值域,其类型可以是整数型、实数型或字符串型。例如,学生实体可以由学号、姓名、年龄、性别等属性表示,相应值域为字符串、字符串、整数和字符串型。

④联系(Relationship)。联系是指客观存在的事物之间的相互关系,通常是指实体集与实体集之间的关系。

⑤键(Key)。能唯一标识每个实体的属性或属性集,称为实体的键(关键字或码),有时也称为实体标识符。例如,学生的学号可以作为学生实体的键。

⑥域(Domain)。域是某个(些)属性的取值范围。例如,学号的域为8位整数,姓名的域为字符串集合。

2)两个实体集之间联系的分类

两个实体集之间的联系是信息模型中最基本的联系,可以将这种联系分为以下几种方式。

(1)一对一联系

如果实体集E1中每个实体至多和实体集E2中一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1∶1”。例如,飞机的座位和乘客之间,学校与校长之间都是1∶1联系。

(2)一对多联系

如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而实体集E2中每个实体至多与E1中一个实体有联系,则称实体集E1与E2是“一对多联系”,记为“1∶n”。例如,车间对职工,产品对零件,学校对老师都是1∶n联系。

(3)

如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1与E2的联系是“多对多联系”,记为“m∶n”。例如,零件与加工车间、商店与顾客、学生与课程等都是m∶n联系。

许多实体集之间的复杂联系,可由上述联系组合而成。

实体联系模型(EntityRelationshipModel,ER模型)是P.S.Chen于1976年提出的。这个模型直接从现实世界中抽象出实体类型及实体间联系,然后用实体联系图(ER图)表示数据模型。设计ER图的方法称为ER方法。

ER图是直观表示概念模型的有力工具。在ER图中有下面4个基本成分:矩形框,表示实体类型(考虑问题的对象);菱形框,表示联系类型(实体之间的联系);椭圆形框,表示实体类型和联系类型的属性;直线,联系类型与其涉及的实体类型之间以直线连接,用来表示它们之间的联系,并在直线端部标注联系的种类(1∶1、1∶n或m∶n)。

通常给某个特定的实体集命名,其名称有可能选用某个或某几个能代表此实体集的属性名,也可以另取名称。例如,车间这一实体可以包括车间代号、名称、人数、设备台数、工时定额等属性名,车间主任这一实体集包含编号、姓名、性别、出生年月、技术职称、基本工资等属性名。如前所述,ER模型主要描述实体集(以实体型为代表)之间的联系。图47中(a)、(b)、(c)分别表示了两实体集1∶1、1∶n、m∶n联系的ER图。为简便起见,各实体型的属性未在图中表示。

图47两实体集联系的ER图

在图48(a)中,一门课程可以由若干教师讲授,用若干本参考书,而某个教师或某一本参考书只对应一门课,不能和其他课程联系。在图48(b)中,供应商、项目和零件之间就没什么限制。一个供应商可以供应若干项目零件;而每个项目零件可以使用不同供应商供应的零件;每种零件可以由不同供应商供给。因此,供应商、项目和零件这三者之间是多对多的联系。

信息模型是建立数据库的数据模型的基础。在管理信息处理中,必须根据管理问题的性质,对复杂事物的表现、性质及内、外部联系进行深入分析,合理地定义实体、属性及实体间的联系。所建立的ER模型必须各部分意义明确、联系清楚,能准确、清晰地表达所研究的事物的复杂信息结构。

2.数据模型

1)数据模型的三要素

数据模型是严格定义了的概念集合。数据库的数据模型应包含数据结构、数据操作和完整性约束3部分。其中:数据结构是指对实体类型和实体间联系的表达和现实;数据操作是指对数据库检索和更新(包括插入、删除、修改)两大类操作;数据完整性约束给出数据及其联系所具有的制约和依赖规则。这些规则用于限定数据库的状态及状态的变化,以保证数据库中数据的正确、有效和安全。

数据模型应该反映和规定符合这种数据模型所必须遵守的基本的通用的完整性约束条件。例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。此外,数据模型还应该提供定义完整性约束条件的机制,以反映某一部门的应用所涉及的数据必须遵守的特定的语义约束条件。

2)数据模型与信息模型的关系

数据是信息的具体表现形式,是信息载体上反映的信息内容,是接收者可以识别的符号。信息与数据有一一对应的关系,计算机中的数据组织必须与客观世界中的信息结构相适应。数据模型就是数据组织中各层次内部、外部之间的联系的描述。因此,数据模型也必须以相应的信息模型为基础。信息模型和数据模型术语的对应关系如图49所示。

信息模型数据模型

实体┈┈┈┈记录

属性┈┈┈┈字段(或数据项)

实体集┈┈┈┈文件

实体键┈┈┈┈记录键

图49信息模型和数据模型术语的对应关系

每个记录型为数据项型的组合。数据项型是指数据项的名称和数据类型、所占存储空间。数据项值的组合构成记录值,记录值确定一个特定记录,文件则是记录类型和记录值的总和。这里记录型是文件的一个框架,记录值是文件的内容。由于记录型确定了文件的框架,所以常常用一个记录型代表一个文件。

在文件这个组织层次中,记录型与记录型之间是没有联系的。数据从整体上来看是无结构的,只在一个文件内部记录之间、一个记录数据之间的关系是结构化的。数据库不但要描述数据项、记录之间的联系,而且要描述记录型之间,也就是各个文件之间的联系,要反映客观世界复杂的信息结构。一个实用的数据库即使很小,也含十几个至几十个记录型。

一个记录型包含一组数据项型,其中必有一个或几个关键字。由于关键字是能唯一标识一条记录的数据项的最小集合,所以往往用关键字来代表一个记录型。例如职工记录型和部门记录型的关系,实际上反映了以职工姓名和部门名称为代表的两个实体集之间的联系,在数据模型中职工姓名数据项和部门名称数据项就可以为两个记录型的关键字。当一个关键字,。

数据模型主要描述记录型之间的联系。

3)关系模型(RelationalModel)

实际数据库系统中所支持的主要数据模型是:层次模型(HierarchicalModel)、网状模型(NetworkModel)、关系模型(RelationalModel)。层次模型和网状模型统称为非关系模型。在非关系模型中,实体型用记录型来表达,实体之间的联系被转换成记录型之间的两两联系。

关系模型的主要特征是用表格结构表达实体集,用外键(或外码即是和其他表中的主键相关的列)表示实体间联系。与前两种模型相比,关系模型比较简单,容易为初学者接受。

关系模型是三种数据模型中最重要的模型。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张表格。下面以学生登记表为例,介绍关系模型中的主要术语,如图410所示。

图410学生登记表

①关系。一个关系对应于平常讲的一张表。

②元组。表中的一行称为一个元组。

③属性。表中的一列称为属性,给每一列起的一个名称即属性名。

④主码。表中的某个属性组,它们的值唯一地标识一个元组。

⑤域。属性的取值范围。

⑥分量。元组中的一个属性值。

⑦关系模式。对关系的描述,用关系名(属性1,属性2,…,属性n)来表示,其中主码下面加上下划线。

3.概念模型向关系模型的转换

由ER图向关系模型转换可按下述的3条规则进行。

①一个实体型转换为一个关系,实体的属性就是该关系的属性,实体的码就是该关系的码。

②一个联系也可以转换为一个关系,与该联系相连的各实体的码及联系的属性可转换为关系的属性:若联系为1∶1,则所连接的各实体的码均是该关系的码;若联系为1∶n,关系的码为n端实体的码;若联系为m∶n,则关系的码为所连接的各实体码的组合。

③码相同的关系可以合并。例如,零件与供应商之间的联系是“多对多”的,其ER图如图411所示。

对应的关系模型如下。

零件表(零件号,零件名称,单价)

供应商表(供应商编号,供应商名称,供应商地址,邮编)零件供应表(零件号,供应商编号,数量,金额)

上述的关系模型中零件供应商表的码是组合码。

4.4关系的规范化

关系模型中的关系就是一张二维表,但严格地说,它应该是一种规范化的二维表。为了使计算机方便地进行数据操作,对关系有基本的要求。

(1)第一范式(1NF)

①关系中每个数据项(元组中每个分量)必须是一个不可分的数据项,即此项所表达的实体属性必须是原子属性,且要求数据项没有重复组。

②列是同质的,即每一列中所有数据项类型相同。各列指定一个相异的名字,列的次序任意。

③各行相异,不允许有重复的行,行的次序任意。

满足上述要求的关系,称为关系的第一范式(1NF),否则称为非规范形式。在建立关系数据模式时,必须将非规范形式规范化。表42为非规范形式,表43为第一范式。

表42非规范形式

学院系人数

经济管理

会计学500

金融学400

工商管理600

石油化工

石化700

应化600

环保500

信息

计算机600

自动化660

仪表500

表43第一范式

学院系人数

经济管理会计学500

经济管理金融学400

经济管理工商管理600

石油化工石化700

石油化工应化600

石油化工环保500

信息计算机600

信息自动化660

信息仪表500