首页 理论教育 信息系统的数据管理

信息系统的数据管理

时间:2022-11-04 理论教育 版权反馈
【摘要】:信息系统作为提供信息,辅助人们对环境进行控制的工具,是建立在大量数据的有效管理的基础上的。文件系统中数据管理的方法是利用文件进行管理。有数据库管理系统的统一管理,实现了数据与程序的真正独立,并且最大限度地降低了数据冗余,充分做到数据为多个用户共享,提高了数据的一致性,并且支持多用户、多任务的访问。通过数据库管理系统进行数据的访问,对数据安全的保密性和完整性要求提供了保证。

导入语

信息系统作为提供信息,辅助人们对环境进行控制的工具,是建立在大量数据的有效管理的基础上的。数据库技术作为计算机信息系统与应用系统的核心技术和重要基础,把信息系统中大量的数据按照一定的模型组织起来,并提供存储、维护和检索数据的功能,帮助用户及时准确地从系统中获取相应的信息。

学习本章,应掌握以下主要内容:

●了解传统的文件组织和管理技术;

●了解数据库系统的数据组织方式;

●掌握四种数据模型的特点;

●掌握关系型数据库的数据结构及完整性约束;

●了解数据库的新发展。

4.1 数据结构与数据处理

作为国内葡萄酒产业的领军企业,自有葡萄种植仅能满足张裕制酒生产对葡萄需求的一部分,除此之外,张裕在山东半岛和全国各地还拥有几万家葡萄供应农户和若干家初榨葡萄原酒供应商,而对这些葡萄供应商的管理,已成为张裕葡萄酒品质的重要保障。

葡萄酒品质高低,是各种因素综合作用的结果。葡萄的品种、产区、年份、树龄以及橡木桶窖藏等等,都会对葡萄酒的品质产生影响。事实上,在葡萄制酒行业,原材料采购对于产成品品质关系十分重大。

为了与葡萄供应商建立稳固的供应关系,最大限度地保证葡萄供应的质量,张裕十分重视对自己的葡萄种植农户提供葡萄种植技术指导,并根据葡萄质量进行优质优价地收购,并且,张裕还特别设定了最低保护收购价,以真正保证葡萄供应农户的利益(企业移动三步曲:实现海尔供应链管理最大化,美国讯宝科技公司,http://symbol-china.com/pdf/Logistics_1.pdf。)。

张裕构建信息化供应商管理系统的实践始于上世纪90年代,当时的做法是首先建立供应商数据库,然后对每家供应商的葡萄供货进行种类、糖度、水分等指标的详细检测,这些葡萄指标数据经录入人员手工录入计算机后,系统会自动给出每一家供应商每一次供货的综合指标分析。通过这一分析,一方面,决策层可以根据供货商和产出地准确分析葡萄供货质量,控制采购进度,及时发现并有效阻止不良供货进入生产环节;另一方面,可以为技术部门进行产品工艺改进提供可靠依据,从而有效保证了葡萄酒产品的生产进度和质量。

一个有效的信息系统能给用户提供及时、准确和相关的信息。数据库作为系统的核心,就必须很好地组织和维护数据文件,帮助用户方便地实现对数据的访问和检索。

4.1.1 数据结构与数据存储

数据结构是数据组织和存储的框架,由若干个文件或表组成,文件和表中存放的是需要与系统交互的实体,包括人、地点、事情或事件。数据资源的组织经历了文件系统管理和数据库管理。

(一)文件系统阶段

20世纪50年代后期至60年代中期,计算机不仅用于科学计算,还用于信息管理。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取存储设备。软件领域中出现了专门管理外存的数据的文件系统。数据处理的方式由单纯的批处理,发展到批处理和联机实时处理共用。

文件系统中数据管理的方法是利用文件进行管理。一个文件是相关记录的集合,与某特定应用相关的所有记录都可以收集在一个特定的应用文件中,数据管理就是对应用文件的管理。多数组织都拥有大量的特定应用数据文件,每个文件与企业所完成的具体处理有关,要为每个应用程序分别创建和存储数据文件。

在文件管理阶段,组织往往是没有数据总体规划的,只是在应用过程中,各部门根据需要不断地开发自己的应用程序,以及与其对应的数据文件。随着时间的推移,文件和应用程序会变得越来越多。由于文件数量增多,需要有一系列的文档来管理其中的项目。而且,一些数据项会重复出现在不同部门的文件和文档中,整个文件系统会变得越来越复杂,需要专门的程序员分别维护各自的文件和程序。这造成了传统文件环境下,数据冗余严重、程序与数据独立性差、缺乏灵活性、安全性差等问题。

数据冗余是指相同的数据在两个或多个数据文件中重复出现。例如在企业,当不同部门对销售信息进行收集时,都会涉及到产品的名称、规格、数量、单价等细节信息,但是不同部门对这些信息的定义和应用都不同,即使不同应用程序所需数据有部分相同时,仍需建立各自的数据文件,不能共享,这造成了数据维护困难,各数据文件的一致性难以保证。

数据与程序独立性仍不高,文件基本上面向应用。数据文件和维护它的相关应用程序之间过分依赖,每个应用程序都得对它所处理的数据位置和性质进行描述,有时这种描述可能比实际的数据处理部分更长。数据的任何改变都需要对使用它的应用程序作相应的修改。为了满足新应用程序的数据需求,程序员要编写复杂的程序从已有的文件记录中抽取数据建立新的文件以满足需要。

这种依赖性也使得系统不易扩充,无论数据逻辑结构改变,还是应用程序的变化都将导致文件的修改。

另外,由于传统文件管理是借助操作系统的文件管理功能进行数据文件的管理,对数据几乎没有特定的控制手段,任何人都可以方便地进行数据文件的拷贝,在数据的存取安全上难以控制。

(二)数据库系统阶段

60年代后期,计算机在管理中的应用更加广泛,数据量急剧增大,对数据共享的要求越来越迫切;为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用程序服务,逐渐出现了数据库系统。

数据库将逻辑相关的记录和文件整合在一起进行统一管理。通过对数据的集中管理和最小化的数据冗余,以有效地服务于多个应用程序。在数据库中,数据不再仅仅服务于某个应用程序或用户,而成为一个组织甚至组织之间的共享资源。有数据库管理系统的统一管理,实现了数据与程序的真正独立,并且最大限度地降低了数据冗余,充分做到数据为多个用户共享,提高了数据的一致性,并且支持多用户、多任务的访问。通过数据库管理系统进行数据的访问,对数据安全的保密性和完整性要求提供了保证。

数据库系统解决了传统文件系统的不足,满足日益发展的数据处理的需要,是在文件系统的基础上发展起来的一种理想的数据管理技术。

数据库系统(Database System,简记为DBS)是由计算机硬件、软件和DB、DBMS、应用程序、数据库管理员和用户等数据资源组成,实现有组织地、动态地存储大量关联数据,方便多用户访问的系统。

(三)数据管理的进展

数据管理历经两个阶段,数据库系统是在文件系统的基础上发展而成的,同时又解决了文件系统中,用户必须自己处理其所用的全部文件的物理组织和存储细节的缺陷。数据库将这些工作交给DBMS来做,使信息系统从以加工数据为主转向了数据共享管理的新阶段。

4.1.2 数据存储方式

在系统中,数据是按一定层次组织数据的。首先是位组成字节,字节组成字段,向上依次组成记录、文件和数据库。

位是计算机中最小的数据单位,其值为0或1;多个位组成字节,一个字节代表一个字符,字符可以是字母、数字或其他符号;多个字符组成一个词或一个完整的数字,称为字段;若干个相关的字段,如学生姓名、性别、专业组成一个记录;若干个相同类型记录组成一个文件;若干相关文件的集合组成一个数据库。

比特、字符、字段、记录、文件和数据库就构成了数据层次。数据库中不仅包括所有这些数据层次,还包括了它们之间的关系。

4.1.3 数据库管理模式

数据库管理系统(Database Management System,简记为DBMS)是位于用户与操作系统(OS)之间的一层数据管理软件。它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。

(一)数据库管理的特点

数据冗余度小,易于扩充。由于数据库从组织的整体来看待数据,数据不再是面向某一特定的应用,而是面向整个系统,减少了数据冗余和数据之间不一致现象。在数据库系统下,可以根据不同的应用需求选择相应的数据加以使用,使系统易于扩充。

数据与程序独立。数据库系统提供了数据的存储结构与逻辑结构之间的映射功能及总体逻辑结构与局部逻辑结构之间的映射功能,从而使得当数据的存储结构改变时,逻辑结构保持不变,或者当总体逻辑结构改变时,局部逻辑结构可以保持不变,从而实现数据的物理独立性和逻辑独立性,把数据的定义和描述与应用程序完全分离。

统一的数据控制功能。数据库系统提供了数据的安全性控制 (Security)和完整性控制 (Integrity),允许多个用户同时使用数据库资源。数据库的上述特点,使得信息系统的研制从围绕加工数据的以程序为中心转移到围绕共享的数据库来进行,实现了数据的集中管理,提高了数据的利用率和一致性,从而能更好地为决策服务。因此,数据库技术在信息系统应用中正起着越来越重要的作用。

(二)数据库管理系统功能

定义数据库的功能。包括定义数据的整体逻辑功能(模式)、局部逻辑结构(外模式)、存储结构(内模式),还包括保密定义及信息格式定义等,并把数据库所描述的对象、属性及其联系的自然语言含义与计算机内描述形式的对照各种模式、外模式的宣言及说明存放在数据库内以备查阅(称为数据词典)。

管理数据库的功能。包括控制数据库系统的运行,控制用户的并行性访问(即同时有两个或多个用户访问一个对象);执行对数据库的安全性、保密性、完整性检验,实施对数据的检索、插入、删除、修改等操作。

维护数据库的功能。此功能包括初始时装入数据库、运行时记录工作日志、监视数据库性能、在性能变坏时重新组织数据库。在用户要求或系统设备发生变化时修改和更新数据库,在系统软硬件发生变化时修改和更新数据库。在软、硬件系统出现故障时恢复数据库。

数据通信的功能。负责数据传输这一部分工作,通常与操作系统协同完成。此外,实现分时系统和远程作业输入的接口

4.2 数据库系统(DBS)

4.2.1 数据库系统的构成

数据库系统是实现有组织、动态的存储尤其是关联数据、方便多用户访问的计算机软硬件和数据资源组成的系统。简单地说,就是采用了数据库技术的计算机应用系统。

(一)硬件

带有数据库的计算机系统对其硬件的性能要求更高,要有足够大的内存以存放操作系统、数据库管理系统的例行程序、应用软件、系统缓冲区中的数据库的各种表格等内容。需要有大容量的直接存取的外存储设备,此外,还应有较强的通道能力。

(二)软件

操作系统:在数据库系统中,一般管理数据库的软件(DBMS)是借助于操作系统实现数据处理过程中的内外存数据交换的,所以这里的操作系统应能支持数据库管理系统的工作。

数据库管理系统(DBMS):数据库管理系统是对计算机的再一次扩充,它完成对数据的定义、管理、维护及各个层次之间的映像等。具体功能后面还将专门介绍。

应用软件包和应用程序:与一般计算机系统类似,为了适应应用的需要,可以在数据库管理系统的基础上建立应用软件包,提供给数据库的应用程序员和数据库管理人员使用。同时,用户则通过其应用程序来使用数据库,完成数据处理工作,获得所需信息。

(三)人员

数据库系统中的人员主要有四类。

系统分析员:他们负责系统的需求分析、规范说明。他们必须与业务部门即各个用户和其他工作人员,特别是数据库管理人员密切配合,以决定数据库系统的具体构成。

系统程序员:负责设计、实现和维护系统程序,特别是DBMS,实现数据组织与存取的各种功能。

应用程序员:负责编制和维护应用程序。应用程序员也是系统的用户。

数据库管理员(DBA):负责全面的管理数据库的工作。

4.2.2 数据库的逻辑结构

DBMS允许用户逻辑地、抽象地处理数据而不必关心数据在计算机中的存放方式,主要依靠其建立在三层模式结构上的二级映射,数据库的三级模式结构主要包括外模式、模式和内模式。

(一)数据库的三级模式结构

1.模式

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

2.外模式

外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

3.内模式

内模式也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储还是随机存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定。一个数据库只有一个内模式,它物理存在于各种存储设备上。

(二)三个模式间的映射

1.外模式/模式映射

这层映射定义了该外模式与模式之间的对应关系。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构,外模式是模式的部分抽取,因此对应同一个模式可以有任意多个外模式,当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。

2.模式/内模式映射

模式/内模式映射定义了数据全局逻辑结构与存储结构之间的对应关系,内模式是模式的物理实现,模式则是内模式的逻辑表示。当数据库的存储结构发生改变,例如采用了更先进的存储结构,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。

3.三模式间的关系

三个模式反映了数据库三种不同的层面:模式表示概念级数据库,是数据库连接用户和存储设备的接口层;内模式表示物理数据库,是数据库的存储层;外模式表示用户数据库,是实现数据库操作的用户层。接口层和存储层只有一个,而用户层可有多个,一个应用对应一个用户层。

4.2.3 数据模型

为了使数据库中的数据客观真实地反映事物及事物之间的关系,人们往往要借助数据模型来抽象表示现实世界中的内容,再按照计算机系统的观点对数据建模。数据模型通常由数据结构、数据操作和完整性约束三部分组成。由于数据结构是刻画一个数据模型性质最重要的方面,所以通常根据数据结构特征来命名数据类型。这种定义的数据模型是表示实体类型及实体间联系的模型。

(一)层次模型

用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(hierarchical model)。这种结构可以非常直观地描述现实世界中存在的各种层次关系,譬如上级与下级、总厂与分厂等。

层次模型主要包括结点和连线,每个结点表示一个实体集,连线表示上下层实体之间的联系。位于层次模型最上层的起始结点“院系”,称为根结点,它是惟一没有上层结点的结点;下层的专业和研究所是院系的子结点,院系是它们的父结点;由于二者共有一个父结点,它们是兄弟结点的关系;没有子结点的称为叶结点,研究所、教师和学生都是叶结点。

层次模型的特点是:(1)根结点唯一;(2)除了根结点以外的结点有唯一的父结点。按照层次模型存储的实体值,只有按照一定的路径找寻才能显示出其全部意义,既包括结点的记录值,也包括与上层结点之间的内在联系。在硬盘上,记录之间的联系通过指针来实现。与文件系统的数据管理方式相比,层次模型的查询效率较高,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由DBMS完成。

层次模型有个缺点:除根节点以外,所有节点都只有唯一的父节点,所以只能表示1∶N联系,面临M∶N联系时,必须设法将其分解为多个1∶N联系,才能用层次模型来表示。但是这种辅助手段实现较复杂。

(二)网状模型

由于现实世界中事物之间的联系更多的是纵横交错的非层次关系,取消层次模型中父结点和根结点惟一的限制,就得到了一个网络结构的模型。这种用网络结构表示实体间联系的数据模型称为网状模型(network model)。

没有层次模型中结点限制的网状模型可以直接表示M∶N联系。由于M∶N联系包含了1∶N联系,所以层次模型可以看作是网状模型的特殊形式,网络模型也是用连线来表示实体间的关系,结点表示实体集。由于网状模型中父结点与子结点之间的关系不惟一,所以在模型中应指明每一个联系并为其命名。为了清晰地表达实体间的M∶N联系,可以引入一个相关实体(Gray B.Shelly,Thomas J.Cashman,harry J.Rosenblatt.System Analysis and Design (Fifth Edition).2003。),为了说明学生和课程之间的M∶N联系,引进了一个学生选课的联结记录,将原来的M∶N联系转变为学生—选课和课程—选课的两个1∶N联系进行说明,即一个学生可以选择多门课程,同时一门课也可以同时被多个学生选择。

网状模型的记录之间联系也是通过指针实现,但模型中的连线或指针的连接更加复杂。比如对于学生(学号,姓名,年龄,性别)和课程(课程号,课程名)之间的M∶N联系,通过引入相关实体——选课(学号,课程号,成绩),分拆成两个1∶N联系后,建立了学生—选课和课程—选课之间的指针连接。

网状模型的缺点是数据结构复杂和编程复杂。

(三)关系模型

关系模型(relational model)的主要特征是用二维表格表达实体集。与前两种模型相比,关系模型的数据结构简单,容易为初学者理解。

关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系。在层次模型和网状模型中,数据存储在文件中,实体之间的联系是通过指针来连接的。在关系模型中,实体本身的数据和实体之间的联系均用二维表来表示,并存储于文件中。例如前面所示学生和课程的M∶N联系可学生登记表和课程登记表用来存储学生和课程两个实体集的数据,实体之间的关系则用学习登记表来表示。学习登记表中的学号和课程号是两个实体集的关键字,关键字可惟一确定某个具体的学生或某门课程,从而说明学生选择了哪些课程以及每门课程的选修情况。

(四)面向对象模型

面向对象数据库OODB(Object Oriented Data Base),是面向对象技术与数据库技术的有机结合。OODB既需要具备传统数据库的必备功能,也需要具有面向对象方法的基本特征。

面向对象数据模型使用面向对象观点来描述现实世界实体、实体间联系等内容的模型。对象是以对象名封装的数据结构和可施加在这些数据上的私有操作。与前面的数据模型相比,面向对象模型不仅描述实体的一系列静态值,而且包含了对这些静态值上的操作的集合,即每一个对象是其状态与行为的封装。

该模型是用对象和类来表示实体类型和实体间联系的数据模型。关于对象和类将在第8章详述。

“学生”类具有属性“姓名”、“性别”和“年龄”,其中“大学生”类属性在继承“学生”类属性的基础上,还有“系别”和“专业”两个属性。“中学生”类的属性在继承“学生”类属性的基础上,还有“班级”和“特长”两个属性。

4.3 关系数据库概述

4.3.1 关系型数据库特点

(一)关系模型重要组成部分

1.数据结构

关系数据库是支持关系模型的数据库系统。它的数据结构非常简单,不论是实体还是实体间的联系,在关系型数据库中一律用二维表,即关系来表达。关系模型基本的数据结构是关系。

2.数据操作

在关系型数据库中,数据的操作是以集合为单位进行的,关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。

3.数据完整性规则

数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。

(二)关系模型特点

与其他数据模型相比,关系模型突出的优点如下:

1.关系模型提供单一的数据结构形式,具有高度的简明性和精确性。各类用户都能很容易地掌握和运用基于关系模型的数据库系统,使得数据库应用开发的生产率显著提高。

2.关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。用户完全不必关心物理存储细节。

3.关系模型使数据库的研究建立在比较坚实的数学基础上。关系运算的完备性和设计规范化理论为数据库技术的成熟奠定了基础。

4.关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便,并成为新一代数据库技术不可缺少的基础。

4.3.2 关系模型的术语

对现实世界的内容,我们主要用实体及其属性来描述。

实体(Entity):客观存在,可以相互区别的事物。任何事或物都可以定义为一个实体。

属性(Attribute):实体有很多特性,每一个特性称为属性。对于实体的描述是通过定义其属性值来实现的。例如,描述一个学生可以用学号、姓名、专业、年龄等属性。

实体集:性质相似的同类实体的集合,称为实体集。这类实体通常使用相同的属性来描述。例如,所有学生的识别都可以用上例中的四个属性来说明。

将实体、属性以及属性上的取值用关系模型进行定义。

从结构上看,二维表主要包含型和值两部分,其中型定义了用来描述实体的基本属性,对于雇员这个实体,可以用雇员编号、姓名、性别、生日、婚否、雇用日期,职务等七个属性来描述。二维表的值则是每一个雇员在七个属性上的具体定义。例如,清风这个雇员的信息就可以用(003,青风,女,11/13/70,F,06/01/93,雇员)来说明。

字段(Field):标记实体属性的命名单位称为字段,或数据项。在此例中定义了七个字段——

记录(Record):字段的有序集合称为记录。

关系(Relation):一个属性数目相同的元组的集合。这里的元组,指关系模型表中的一行。这个定义把关系看成一个集合,集合中的元素是元组,每个元组的属性数目应该相同。

关系中每一个属性都有一个取值范围,称为属性的值域。每一个属性对应一个值域,不同的属性可对应于同一值域。

在二维表中,常用关键字或关键码(Key)进行未知数据的查找。关键字由一个或多个属性组成。在实际使用中,有下列几种关键字。

候选关键字(candidate Key):在关系中,如果一个属性集的值能惟一标识一个元组而又不含有多余的属性值,则称该属性集为候选关键字。

主关键字(primary Key):有时一个关系有多个候选关键字,选择一个作为插入、删除或检索元组时的操作变量,被选用的候选关键字称为主键。一般如不加说明,关键字即指主键。

组合关键字(Composite key):当某一候选关键字包含一个以上的属性时,则称该候选关键字为组合关键字。

外部关键字(foreign Key):如果关系的某一些属性虽不是该关系的候选关键字,而是另一关系的候选关键字,则称为此关系的外部关键字。

学号为学生登记表的候选关键字,但不是关系——学习登记表的候选关键字,则此时学号为学习登记表的外部关键字。

候选关键字和外部关键字提供了一种表示两个关系之间联系的方法,即只有公共属性上具有相同属性值的元组之间才有联系。

尽管关系与二维表格、传统的数据文件有类似之处,但它们又有区别。严格地讲,关系是一种规范化了的二维表格。在关系模型中,对关系作了下列规范性限制:

●关系中每一个属性值都是不可分解的;

●关系中不允许出现重复元组(即不允许出现相同的元组);

●由于关系是一个集合,因此不考虑元组间的顺序,即没有行序;

●元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。

4.3.3 关系模型的完整性约束

为了维护数据库中数据与现实的一致性,关系数据库的数据与更新操作必须遵循下列三类完整性规则。

(一)实体完整性规则(entity integrity rule)

实体完整性规则是通过主键实现的,即:若属性A是基本关系R的主属性,则属性A不能取空值,即主属性非空。

主属性用于惟一标识实体集中每一个实体的概念,若主属性取空值,说明存在着某个不可标识的实体,这与关系型数据库以主码作为关系模型的惟一型标识相矛盾。

这条规则要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标识元组的作用。

(二)参照完整性规则(reference integrity rule)

参照完整性是对关系间引用数据的一种限制。关系模型中,实体间的联系是用关系来描述的,因而存在关系与关系间的引用。这种引用可通过外键来实现。

参照完整性规则是对关系外键的规定,要求外键取值必须是客观存在的,不允许在一个关系中引用另一个关系中不存在的元组。

其具体定义为:如果属性F是基本关系R的外键,它与基本关系S的主键Ks相对应,则对于R中每个元组在F上的值必须为空值或者等于S中某个元组的主键值。

在上述形式定义中,关系模式R是参照表,关系模式S是被的关系称为参照关系。这条规则的实质是不允许引用不存在的实体。在学生登记表、课程登记表、选课登记表的参照关系中,选课登记表是参照表,其中的学号和课程号只能取相应被参照关系中已经存在的主关键字值。

(三)用户定义的完整性规则

在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。换句话说,用户定义的完整性,就是由用户自己根据实际情况,对数据库中的数据所做的规定。通过这些规则来限制数据库中只能接受符合用户定义完整性约束条件的数据值,从而保证了数据的正确性和有效性。例如在学生登记表中,可以对性别字段的取值范围进行限定,只能在“男”或“女”中选择,以保证取值有意义。也可以对表约束进行定义,如学生毕业后,将从学生登记表中删除这部分学生信息,同时存在于选课登记表中的相关记录也应随之删除,以符合参照完整性规则,通常用触发器来完成表的相关操作。

4.4 数据库设计

数据库是信息系统的核心组成部分,数据库设计的质量将直接影响到信息系统的运行效率及用户对数据使用的满意度。[1]如何根据企业对信息系统的实际需求,抽象出对于数据管理的要求,并根据数据库管理系统的类型建立数据模型,最终建成企业数据库,是管理信息系统开发的重点。

4.4.1 信息的转换

信息帮助人们认识现实世界客观存在事物,数据则是用来表示这种客观存在的一种符号。若要将反映客观事物状态的数据,经过一定的组织,成为计算机内的数据,将经历从现实世界到信息世界再到机器世界的转换。

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

由于概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是用户与数据库设计人员之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰,易于用户理解。

4.4.2 概念模型与E-R方法

概念模型是从用户的角度看到的数据库,即将现实世界的客观对象抽象为某一种不依赖于计算机系统和某个DBMS的信息模型。

概念模型最常用的表示方法是实体联系法,简称E-R法(Entity-Relationship Approach)。实体—联系方法(即E-R方法)是p.p.S.Chen于1976年提出的,这种方法由于简单、实用,所以得到了非常普遍的应用,也是目前描述概念模型最常用的方法。它使用的工具称作E-R图,它所描述的现实世界的信息结构称为企业模式,也把这种描述结果称为E-R模型。

(一)E-R图的基本成分

E-R图中三种基本成分是实体、联系与属性,其基本符号。

1.实体(Entity)。任何客观存在的事物均可以是实体,这个事物可以是人,也可以是物;可以指实际的东西,也可以指概念性的东西,例如学生、学校、工厂、工作过程、操作步骤等均可以是实体。实体分为两个层次:个体和实体集(总体)。个体是指能相互区分的、特定的单个实体。实体集(总体)是同类个体的集合。图中以长方形表示实体,在长方框内写实体名。

2.属性(Attribute)。属性是实体(事物)的某一方面的性质或特性。如学生的学号、学校的名称、工厂的性质等均可以是有关实体的属性。在一个实体中,能够唯一标识实体的属性或属性集称为“实体标识符”。实体标识符有时也称为实体的主键。图中以椭圆形表示实体或联系的有关属性,框内写属性名,加下划线的属性为标识符。

3.联系(Relationship)。联系是指客观存在的事物之间的相互关系,通常是指实体集与实体集之间的关系。实体之间的联系实际上反映了实体之间的语义关系。例如“学生”和“课程”两个实体存在着内在联系,学生可以选择课程,于是通过“选课”自然就将“学生”和“课程”两实体联系起来:表示某学生选修了什么课程和某门课程的选课名单。这里的“选课”起联系作用,联系也可以有属性,用于描述联系的特征,比如学生的选修课程的信息可以通过“成绩”描述。图中以菱形表示实体间的联系,在菱形框内写联系名。

实体间联系情况比较复杂,但就其联系方式而言,可分为三种:

(1)一对一联系(简记为1∶1):实体集A中任一实体最多对应实体集B中的一个实体,反之亦然;

(2)一对多联系(简记为1∶n):实体集A中至少有一个实体对应实体集B中一个以上的个体,实体集B中任一实体最多对应实体集A中的一个实体;

(3)多对多联系(简记为m∶n):实体集A中至少有一个实体对应于实体集B中一个以上个体;反之,B中也至少有一个实体对应于A中一个以上的实体。

(二)E-R图实例

E-R图是抽象描述现实世界的有力工具,它与计算机所支持的数据模型相独立,它更接近于现实世界。虽然现实世界丰富多彩,各种信息十分繁杂,但用E-R图可以很清晰地表示出其中的错综复杂关系。下面用E-R图来表示某个学校的教务管理的概念模型。

教务管理涉及的实体有:

班级 属性有班级编号,班级名称,专业,班主任;

教师 属性有教师号,姓名,性别,年龄,职称,专业;

学生 属性有学生号,姓名,性别,班级编号;

课程 属性有课程号,课程名,课时,学分,教材。

这些实体之间的联系如下:

一个班有多名学生,但一个学生只能在一个班注册,因此班级与学生是一对多联系;

一位教师可指导多个学生,每个学生只能被一位教师所指导,因此教师与学生是一对多联系,教师指导学生有固定的时间和地点;

一位教师可讲授多门课程,一门课程可由多位教师讲授,每位教师讲授某门课程都有一个评价,教师与课程之间是多对多联系;

一个学生可选修多门课程,一门课程允许多个学生选修,每个学生选修某门课程都有一个分数(成绩),因此学生与课程之间是多对多联系。

4.4.3 数据库的逻辑结构设计

逻辑结构设计建立起来的是DBMS支持的数据模型。目前,数据库大多支持关系型数据模型。本部分介绍由E-R图转换为关系模型的一些基本规则,参考如下。

(一)实体(集)

把每一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的标识符就是关系的键。

(二)联系

对于两个实体间的联系有以下不同的情况:

●若联系为1∶1,可以在两个实体转换成的两个关系模式中任意一个的属性中加入另一个关系模式的键和联系的属性。

●若联系为1∶n,则在n端实体转换成的关系模式中加入1端实体的键和联系的属性。

●若联系为n∶m,则将联系也转换成关系模式,其属性为两端实体的键加上联系的属性,而键为两端实体键的组合。

●若是三个或三个以上实体间的一个多元联系,可将其转换为一个关系模式。与该多元联系相连的各实体的键以及联系本身的属性均转换为关系的属性,而关系的键为各实体键的组合。

例:教务管理系统的关系型数据模型

其键用下划线标识,转换为4个关系模式:

班级(班级编号,班级名称,专业,班主任)

教师(教师号,姓名,性别,年龄,职称,专业)

学生(学生号,姓名,性别)

课程(课程号,课程名,课时,学分,教材)

有2个多对多联系,转换为2个关系模式:

授课(教师号,课程号,评价)

选修(学生号,课程号,成绩)

有2个一对多联系,在n端关系模式中加入1端的键和联系的属性:

学生(学生号,姓名,性别,时间,地点,教师号,班级编号)

最终可得到如下所示6个关系模式:

班级(班级编号,班级名称,专业,班主任)

教师(教师号,姓名,性别,年龄,职称,专业)

学生(学生号,姓名,性别,时间,地点,教师号,班级编号)

课程(课程号,课程名,课时,学分,教材)

授课(教师号,课程号,评价)

选修(学生号,课程号,成绩)

4.4.4 数据库表的规范化

数据库设计的主要工作就是根据信息系统的要求,通过合理的分配字段完成表的设计。通过上述数据模型的建立,已经完成了数据库的基本设计方案。但这个方案是否一个简单灵活或而且没有数据冗余的方案,还需要通过一系列规则的验证,即数据库表的规范化过程。

(一)范式说明

数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之,冗余数据会浪费磁盘空间并带来维护问题。

在数据库设计中,冗余数据常以重复组的形式出现。重复组就是在一条记录中可以出现任意多次,且每一次出现都有不同的值的这样一个或一组字段。

在借阅表中,每个人的借阅记录中都包含了多本书的信息,即关于借阅明细部分就构成了一个重复组。包含有重复组的表称为非规范化的表。用标准化表示法表示有重复组的表为:

借阅表(读者号,姓名,部门,部门电话,书号,书名,借阅日期,应还日期)

(二)第一范式

第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。符合第一范式的表不含有重复组,为了使非标准化的表符合第一范式,必须扩展表的主键,让它包含重复组的主键。重复组包含字段:书号,书名,借阅日期,应还日期。其中书号能够唯一标识重复组中的每一个实例,可以作为重复组的主键;而读者号只能标识读者的信息,不能惟一标识一条借书记录,因为一个读者可以同时借阅多本图书。

用标准化表示法表示为:

借阅表(读者号,姓名,部门,部门电话,书号,书名,借阅日期,应还日期)

消除了重复组以后,该表增加了一些额外的内容,即每一个读者和所借书籍都有一条记录。在简化表的结构的同时,增加了记录的数据量。如果一个读者借阅十本书,也就表示在表中必然有十条记录与之对应,对应的读者个人的信息在表中要重复十次。而这种冗余直接带来数据库使用中的问题:

1.数据冗余:同一读者借阅多本图书时,读者个人信息就重复多次;

2.更新异常:若更改读者个人信息,如调整了工作部门,数据表中和读者相关的行的“部门”值都要更新,否则会出现一人分属多个部门的情况;

3.插入异常:假设要增加读者记录,如果这个人暂时还没有借书,由于还没有“书号”关键字,其他数据就无法插入;

4.删除异常:假设一位读者归还了所有借阅书籍,这些借阅记录就应该从数据库表中删除。但是,与此同时,读者个人信息也被删除了。

造成以上问题的主要原因是在借阅表(读者号,姓名,部门,部门电话,书号,书名,借阅日期,应还日期)中,同时存储了借阅信息和读者信息,由于定义了共同的主键,使得两类信息必须同生共存。没有借阅记录就不能插入读者信息,删除借阅记录同时也删除了读者信息。通过分析各字段间的依赖关系,可以发现除了借阅日期和应还日期依赖于读者号和书号共同确定外,姓名和部门是可以由读者号惟一确定的,而书名可以由书号惟一确定。即读者信息和书籍信息并不依赖于整个主键。而当前的定义方式则使得读者信息和书籍信息必须依赖于借阅记录来保存。

(三)第二范式

第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖。函数依赖是指在某数据库表中,对任意记录而言,如果字段X的值确定,则字段Y的值也随之确定,即Y函数依赖于X(或者X函数决定Y)。

对于符合第一范式的表,如果所有非主键的字段都函数依赖于整个主键,那么该表就符合第二范式;如果任何一个字段只依赖于复合主键中的部分字段,那么该表就不符合第二范式。在借阅表中,

借阅表(读者号,姓名,部门,部门电话,书号,书名,借阅日期,应还日期)

主键是(读者号,书号)组成的复合键,除了借阅日期和应还日期依赖于完整的主键,姓名、部门和部门电话是可以由读者号唯一确定的,而书名可以由书号唯一确定,它们都只依赖于主键的一部分,所以该表不符合第二范式。

要将符合第一范式的表转化为符合第二范式的表,标准的做法是:把原始的表分割成两个或多个新表,为每一个新表分配字段,使得在新表中非键字段能够依赖于完整的主键。具体步骤如下:

1.将原表主键中每一个能够函数决定非主字段的部分都分离出来,为它创建一个独立表并命名。以借阅表为例,除了主键(读者号,书号)能够函数决定非主字段,读者号和书号也能够分别函数决定其他非主字段,所以可以创建以下数据库表。

借阅明细(读者号,书号,……)

读者(读者号,……)

书籍(书号,……)

其中“……”表示其他非主字段。

2.将原表中的非主字段根据其依赖的最小主键进行分配,得到如下三张表。

借阅明细(读者号,书号,借阅日期,应还日期)

读者(读者号,姓名,部门,部门电话)

书籍(书号,书名)

这三张表就是符合2NF的表,这个过程就是将满足1NF的表转化为满足2NF表的步骤。

通过转化,我们发现原来放在一张表中的数据现在分在三张表里存放,读者信息、书籍信息和借阅信息分开,这样不会因为读者没有借书就不能插入信息,也不会因为删除借阅记录而删除读者和书籍信息;同时,一个读者借阅再多书籍,个人信息在读者表中存放一次就可以了,不必因为放在同一张表中而重复记录,也避免了更新的工作量。可见,符合2NF的表解决了数据管理中的异常问题,具有更好的性能。

(四)第三范式

第三范式(3NF):在第二范式的基础上,数据表中如果所有的非键字段依赖而且仅仅依赖于完整的主键,而与主键之外的字段无关,则符合第三范式。

在符合2NF的三张表中,借阅明细和书籍两张表中非主字段间没有函数依赖关系,但是在读者表中非主字段部门和部门电话间有函数依赖关系,即部门可以函数决定部门电话。由于存在非主字段间的依赖关系,使得读者表在使用中存在下列问题:当更改部门电话时,需要将所有该部门读者记录中的字段值做修改;为了记录新成立部门的电话和名称,必须虚拟改部门读者记录;当部门读者信息全部删除时,部门信息也会同时删除。

这些问题都是由于该表不符合3NF,即非主字段部门和部门电话间存在的函数依赖关系造成的。如果消除这种依赖,必须从表中删除所有依赖于非主字段的函数关系,并把它们放置到新表中,其把这个非主字段作为新表主键。即将表

读者(读者号,姓名,部门,部门电话)

拆分为新的表

读者(读者号,姓名,部门)

部门(部门,部门电话)

部门信息从读者信息中独立出来,就解决了上述问题。最终得到满足3NF的表为

借阅明细(读者号,书号,借阅日期,应还日期)

书籍(书号,书名)

读者(读者号,姓名,部门)

部门(部门,部门电话)

在关系化数据库中,对关系模式的基本要求是满足第一范式。但是由于关系模式中可能存在各种数据依赖关系,并带来插入、删除、更新等方面的问题,而范式检验提供了解决方案。通过发现及消除数据依赖中的不合适部分,得到一个系统的、合理的关系模型。

4.5 典型的关系数据库简介

随着数据库技术成为计算机信息处理系统的基础,社会对数据库技术的需要越来越迫切,各种DBMS商品软件竞相上市,如何根据需要和可能找到一个适合的数据库软件作为开发工具,是一个不可忽视的问题。DBMS选择是否适当,将直接影响今后整个开发工作。

Access、Oracle、Visual Foxpro、DB2、Sybase、Informix、SQL Server等,都是目前流行的DBMS。这些DBMS各具特色,适用面很广,而且都在不断推出新版本以满足广大用户的需求。根据应用范围,主要可以分为桌面数据库和服务器端数据库两类。

(一)桌面数据库产品Access和Visual Foxpro

Access是微软公司推出的桌面数据库系统。基本操作基于VBA(Visual Basic for Apptications),使它除了数据库功能外,还具有强大的开发功能。Access与Office应用程序的高度集成,是开发小型管理信息系统的首选数据库系统之一。另外,Access有全中文的界面、提示和帮助,是一个新手学习数据库的上选。

Access作为桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。Microsoft Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。

Visual Foxpro可以作为单机或者小型网络应用的数据库。VFp除了拥有数据库功能以外,也是一个专业数据库应用开发工具,可以用来开发任何一种类型、规模的数据库应用。

MySQL适用于小型应用。大多在Linux下作为Web数据库服务器。和Access、VFp等桌面数据库不同的是,MySQL提供类似SQL Server的连接方式,提供账号管理,而且在非商业应用上是免费的。

(二)服务器端数据库产品

1.Microsoft SQL Server

微软的SQL Server是一个为分布式C/S计算环境而设计的关系型数据库管理系统,具备高性能、可靠性。是一个综合的分布式管理框架结构,允许集中地管理数据库服务器;通过基于Windows的安全性和伸缩性等方面的优势,能够满足企业今后业务发展的需要。SQL server可以适合大容量数据的应用,提供了高性能Web页信息访问机制,在功能上管理上也要比Microsoft Access强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。

SQL Server for NT支持数据的分布存储。提供了相同服务器的不同数据库和不同服务器间的数据库复制,为整个组织机构内分发准确的信息提供一个强大且可靠的工作方式。对OLAp的完美支持,使得SQL Server成为数据仓库及增强性应用较好的平台。中小型企业应用一般使用MS SQL Server作为数据库服务器,最近几年MS SQL Server也在大力向大型应用渗透。

2.Oracle

Oracle是当今数据库大公司之一。Oracle公司的数据库产品,早在1986年就进入中国市场,我国许多行业和部门的管理信息系统的数据库都选用Oracle开发。Oracle是世界上第一个商品化的关系型数据库管理系统,也是第一个推出与数据库结合的第四代语言开发工具的数据库产品,它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象存储的数据支持。特别是并行处理能力强,即可以充分利用服务器硬件的性能,同时处理较多的用户请求。另外,它还提供较好的数据库安全性控制,具有多种级别的用户权限控制和数据库备份恢复等功能。大型企业的应用一般使用Oracle作为数据库服务器。目前,Oracle正变得越来越易用,并向中小企业的应用渗透。

3.DB2

DB2是IBM公司的产品。DB2在金融、工业、铁路、航空、制造业、医院、旅游等领域应用广泛,尤其在金融系统最受青睐。DB2早期的发展重点是针对大型主机平台的。20世纪90年代初,已发展到中型机、小型机及微机平台上。现在DB2已经能运用于各种硬件平台和软件平台。各种平台上的DB2有共同的应用程序接口,运行在一种平台上的程序可以方便地移植到其他平台。最近IBM购并了Informix,客户群更加庞大了。在银行、民航等大型企业中,可以经常看到DB2的影子。DB2书籍不多见,学习难度相对较大。

4.Sybase

Sybase也是市场上较受欢迎的数据库产品之一,由较早采用客户/服务器技术的Sybase公司推出。Sybase同样具有支持多操作平台、支持标准关系数据库语言SQL的能力。Sybase采用客户/服务器模式和开放的体系结构,能够实现网络环境下各节点上的数据库的互访操作。此外,Sybase还与十分著名的数据库应用开发工具powerBuilder 相结合,能够快速开发基于客户/服务器的图形化数据库应用程序。Sybase在功能和SQL语法上有些类似于MS SQL Server。Sybase和微软研发数据库服务器的合作破裂以后就产生了MS SQL Server和Sybase SQL server。目前,电信的一些业务正在使用Sybase。

5.Informix

Informix是最先推出对象关系型数据库系统的厂商。Informix公司的产品在性能上非常优秀:很高的处理速度,数据吞吐量巨大,支持极大数量的用户,并具有极好的稳定性。广泛支持并行的SQL功能,使得所有的数据操作都能并行处理,从而消除了潜在的瓶颈。不仅能够以关系数据库能够存取的结构存放复杂数据,还能对复杂数据直接索引、比较和操作,以灵活易于实现的方式既保持了关系数据库的高性能又提供了丰富多彩的对象特征。

对于DBMS的选择。数据库技术并不是要考虑的唯一因素,硬件环境、厂商信誉、技术支持、产品价格、产品用户群等都是应慎重考虑的问题。只有适应具体的应用情况,满足自己的需要才是最合适的。

4.6 数据库发展

20世纪80年代以来,数据库研究领域得到了极大的拓展,形成不同的数据库系列。数据库技术将向着实时性更强、可扩展性更强、更加智能化的方向发展。以下对一些当前正在流行的、重要的技术做简单介绍。

4.6.1 数据模型发展——面向对象数据库

关系数据库技术出现在20世纪70年代,经过80年代的发展,到90年代已经比较成熟,在90年代初期曾一度受到面向对象数据库的巨大挑战,但是市场最后还是选择了关系数据库。2000年RDBMS的市场份额占整个数据库市场的80%,这个比例比1999年增长了15%。这组数据充分说明RDBMS仍然是当今最为流行的数据库软件。

当前在数据库技术发展中最有前途和生命力发展方向之一的就是面向对象数据库(Object Oriented Data Base,简称OODB),它是面向对象技术与数据库技术的有机结合。

OODB既具备传统数据库的必备功能,也具有面向对象方法的基本特征。例如,采用面向对象的数据模型,把对象作为存储与检索单位,支持继承与封装,提供面向对象的数据定义语言和数据操纵语言等等。

目前,OODB的研究与开发有3种途径:(1)开发全新的、自成体系的面向对象的数据库管理系统,即OODBMS;(2)在传统的数据库管理系统中增加面向对象的功能,建立对象关系数据库管理系统(ORDBMS)是对象技术和传统关系数据库技术的最佳融合,在这一研究和发展领域的杰出代表即是Oracle9i;(3)在面向对象的编程语言中增加数据库的功能。

OODB同传统的关系数据库系统相比具有处理多媒体数据、复杂对象的能力,因而更适用于涉及多媒体数据、时态数据、空间数据、复杂对象的数据库等新的应用领域。但由于关系数据库在传统数据库应用领域仍占据主导地位,因而将二者结合,发展一种分布式对象关系数据库是未来的趋势。

4.6.2 数据库技术发展

(一)分布式数据库

分布式数据库DDB(Distributed Data Base)是一组数据集,逻辑上它们属于同一系统,而物理上分散在用计算机网络连接的多个场地上,并统一由一个分布式数据库管理系统管理。

分布式数据库系统可以看成是数据库技术和计算机网络结合的产物。70年代中期美国计算机公司(CCA)设计并实现了第一个分布式数据库原型系统SDD-1,我国目前也建立和实现了一些各具特色的分布式数据库原型。随着面向对象技术研究的深入,人工智能、专家系统的进一步成熟,迫切需要数据库管理系统具有新的数据管理功能,因此产生了两个新的研究领域:分布式知识库系统和分布式面向对象数据库系统。分布式数据库系统具有潜在的大市场,如银行系统、电力管理系统、各种集团公司的管理等。

分布式数据库是在数据库系统应用过程中逐步发展起来的,仍存在许多不足之处。比如将各种孤立的数据库转向分布式处理时,面临的异构数据库的集成问题。此外,分布式数据库系统虽然有利于改善性能,但如果数据库设计不周密,数据分布不合理,造成远距离访问过多,特别是分布连接操作过多时都会降低系统性能。

(二)并行数据库

并行数据库(parallel Data Base)是将一个数据库任务分割成多个子任务,交由多台处理机协同完成,从而极大地提高系统的事务处理能力。数据库的并行处理是提高数据库系统对事物快速响应能力的有效手段。并行数据库技术包括对数据库的分区管理和并行查询,它采用的重要技术是多线程技术和虚拟服务器技术。一个理想的并行数据库系统应能充分利用硬件平台的并行性,提供不同事物间的并行性、同一事物内不同查询间的并行性、同一查询内不同操作间的并行性和同一操作内的并行性。

(三)多媒体数据库

多媒体数据库MDB(MultimediaDataBase)是以数字化和数据压缩为基础的计算机多媒体技术与数据库技术的结合,是研究并实现对多媒体数据的综合管理,即对多媒体对象的建模,对各种媒体数据的获取、存储、管理和查询。它是当前最有吸引力的一种技术,主要应用于图书馆、博物馆、展览馆、电子商务、艺术创作以及虚拟现实演示等,可以极大地提高现有的服务水平,产生直接的经济效益和社会效益。

近年来,大容量光盘、高速CpU、高速宽带网络等硬件技术的发展为多媒体数据库的应用奠定了基础。多媒体数据库的实现方式主要有三种:(1)基于关系模型,加以扩充使之支持多媒体数据类型;(2)基于面向对象模型来实现对多媒体信息的描述及操纵;(3)基于超文本模型(陈敏:“数据库技术的现状及发展趋势[J]”,《现代图书情报技术》,1999(5):10-13。)。数据可视化是指在计算机屏幕上以图形或图像的方式形象地向用户显示各种数据,使用户快速理解和吸收数据所表示的信息,以提高人类大脑二次处理信息的速度和能力。可以把数据可视化方法视为一个从数据库的多维数据空间到计算机屏幕二维空间的映射。数据可视化是一个新的研究领域,也是未来数据库重要的研究领域之一,目前已经提出了很多数据可视化的技术。

(四)WEB数据库

数据库技术为计算机收集、存储、加工和利用数据提供了全面的支持,已成为当今计算机管理信息系统的核心技术,其应用无处不在。但是,随着Internet的发展和普及,加之关系数据库自身的局限性,传统数据库技术越来越不能适应市场的需求,而新一代基于Internet应用的Web数据库则融合了网络技术、存储技术和检索技术,并结合了传统数据库技术的优点,在数据库模型、存储机制和检索技术等诸多方面进行了创新。这种正在迅猛发展的Web数据库为我们开辟了一个崭新的Internet数据库时代。

Web数据库即网络数据库,又称网站数据库、网页数据库。简单地说,就是用户利用浏览器作为输入界面,输入必要的数据,浏览器将这些数据传送至网站,网站再对输入数据实施处理,并将其执行的结果返还给浏览器。

电子商务网站是构架在数据库技术和网络技术基础之上的,它的核心是数据库技术。从数据的管理到查询,从用户的访问到生成动态的网页以及数据挖掘等,都离不开Web数据库。用一个简单的公式来描述Web数据库:

Web数据库=因特网+数据库(周林勇:“电子商务网站与Web数据库[J]”,《商场现代化》,2006(5):75-76。)

一个典型的Web数据库应用系统,包括一个作为用户界面的Web浏览器,一个作为信息存储和数据采集的数据库服务器,以及连结两者的Web服务器和应用程序。这是一种三层结构。它仅依靠运行在客户端的浏览器来提供用户界面服务,而真正的应用层服务程序已移至服务器端执行。用户可以在浏览器端通过Web页上显示的信息,如表单,输入信息;浏览器则将用户的信息发送到Web服务器端,通过应用程序访问数据库,将索取结果以表格、图像或文本等不同形式返还给浏览器端的用户。

Web数据库可以采用字表多维处理、变长存储以及面向对象等新的网络技术和数据库技术,使当今的数据库应用转为全面基于以Internet为基础的应用,能够支持包括结构化数据以及大量非结构化的多媒体数据等多种类型的数据,使组成用户业务的各种类型数据能够存储在同一个数据库中,使执行复杂处理的时间大大缩短。另一方面,Web数据库支持新的编程技术,如ActiveX、XML等,还支持并能够快速开发复杂的事务处理系统应用程序,大大简化了系统开发和管理的难度。

在数据库结构上,Web数据库支持一些复杂的数据类型,如图像、视频、声频对象,时间序列等,及相应的数据操纵语言。Web数据库采用子字段、多值字段以及变长字段的机制,允许创建多种不同类型的非结构化的或任意格式的字段。这种多维处理方式突破了关系型数据库非常严格的二维表结构,并具有独特的变长存储方式。

4.6.3 数据仓库

随着数据库和计算机网络的广泛应用,加上先进的数据自动生成和采集工具的使用,人们拥有的数据量急剧增大。然而数据的高速增长与数据分析方法的改进并不成正比,一方面人们希望在已有的大量数据的基础上进行科学研究、商业决策、企业管理,另一方面传统的数据工具很难令人满意地对数据进行深层次的处理,这样两者之间的矛盾日益突出,正是在这种状况下,数据仓库和数据挖掘应运而生。

数据仓库概念始于20世纪80年代中期,首次出现是在号称“数据仓库之父”William h.Inmon的《建立数据仓库》一书中。随着人们对大型数据系统研究、管理、维护等方面的深刻认识和不断完善,在总结、丰富、集中多行企业信息的经验之后,为数据仓库给出了更为精确的定义,即“数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合”。(张澜,康增培:《数据仓库白皮书—概念篇[EB/OL]》,http://searchdatabase.techtarget.com.cntips392/1892892.shtml,2004-12-24。)

数据仓库技术的出现是基于决策支持系统发展的需要。它的提出是以关系数据库、并行处理、分布式技术以及Internet的飞速发展为基础,它是解决如何利用分散的异构环境数据源,及时得到准确的信息,解决大量数据分析的问题。

数据库和数据仓库仅一字之差,但二者不论是从应用范围、处理方式,还是从数据处理反映出的结果来讲,都是不同的。

简单来讲,数据库主要完成数据的存储以及在此基础上进行简单的联机事务处理(OLTp),而数据仓库则是建立在海量数据分析基础上面向特定主题的应用,即联机分析处理(OLAp)。举例来讲,银行的储蓄系统日常事务的处理是建立在数据库基础上的,数据库的主要功能是存储账户数据并提供相关的查询和修改等业务,主要关注当前数据,如每日的存、取、贷、转数据,并且这些数据经常更新。联机事务处理的计算机系统帮助银行提高了工作效率,从而获得强大的市场竞争力。80年代末,北京工商银行率先推出了全市个人储蓄通存通兑业务,广大市民便将先前就近存于不同银行的存款一并取出而存入了工商银行。

当联机事务处理系统应用到一定阶段的时候,所有的竞争对手都已拥有相似的服务,单纯的联机事务处理系统也就不足以吸引消费者的青睐。银行必须更深入发掘消费者的需求来制定新的发展策略。例如,在业务密集地区增设自助网点、推出有针对性(如:某类职业圈、某年龄段)的储蓄服务计划。这些决策需要对大量的业务数据包括历史业务数据进行分析才能得到,而这种基于业务数据的决策分析,称为联机分析处理。

传统联机事务处理强调的是更新数据库——向数据库中添加信息,联机分析处理则是要从数据库中获取信息、利用信息。因此,著名的数据仓库专家Ralph Kimball写道:“我们花了20多年的时间将数据放入数据库,如今是该将它们拿出来的时候了。”数据仓库正是在挖掘历史业务数据中的价值。

数据仓库不是数据库的替代品,它是建立在一个比较全面和完善的信息应用基础之上,将分析决策所需要的大量数据从传统的操作环境中分离出来,使分散、不一致的操作数据转成集成、统一的信息,进而支持高层决策系统的应用。

4.6.4 数据挖掘

啤酒、尿布风牛马不相及的两件物品,能有什么样的联系呢?又和数据挖掘有什么样的关系呢?这是一则相关业界津津乐道的故事,故事的主角是沃尔玛这个世界上最大的零售商,在其遍布美国数千家超级市场中,小孩尿布与啤酒居然并排摆放在邻近的货架上一起销售,而且两者销量都还不错。原来沃尔玛通过建立的数据仓库,分析了原始交易数据,按周期统计产品的销售信息,然后利用数据挖掘工具进行分析和挖掘,结果发现,每逢周末沃尔玛连锁超市啤酒和尿布的销量很大。进一步调查表明,在美国有孩子的家庭中,太太经常嘱咐她们的丈夫下班后要为孩子买尿布,而丈夫们在买完尿布后又顺手带回了自己爱喝的啤酒,因此啤酒和尿布一起购买的机会是最多的。之后该店打破常规,将啤酒和尿布的货架放在了一起,使得啤酒和尿布的销量进一步增长(张红梅,夏南强:“数据挖掘技术在零售业中的应用”,《经济师》,2006(1):48-49。)。

啤酒和尿布这两者看似毫无关联,但在特定的条件下,它们之间却有密切的关系,这一发现引发了一门全新的信息技术——数据挖掘。

数据挖掘又称数据开采(Data Mining),就是从大量的、不全的、有噪声的、模糊的、随机的数据中提取隐含在其中的人们事先不知道的,但又是潜在有用的信息和知识的过程。数据挖掘要发现的是:数据总结、分类、聚类、关联规则。它综合利用了人工智能、数据库、机器学习等多个领域的理论和技术。

数据挖掘最突出的特点便是善于从海量数据中挖掘出更有价值的信息。这一特点正好迎合零售业数据量大的现状。零售企业每天都会产生大量看似庞杂的信息,而在这些信息背后却蕴藏了丰富的经营技巧和市场规律,如何通过数据挖掘的手段找出这些规律和知识,来指导企业的经营活动是每个零售企业都十分关注的问题。

例如,英国第三大连锁超市Safeway公司通过数据挖掘发现了一些对公司决策相当有用的信息。他们发现某一种奶酪产品虽然销售额排名第209,可是消费额最高的客户中有25 %常常买这种奶酪,这些客户可是英国Safeway 最不能得罪的客户。如果使用传统的分析方法的话,这种产品可能很快就会撤下货柜,可是事实上这种产品相当重要。他们还发现,在28 种品牌的橘子汁中,有8种特别受到欢迎。因此该公司得以重新安排货架的摆设,使得橘子汁的销量能够增加到最大。除此以外,公司在了解了客户每次消费会购买哪些产品以后,还可以利用数据挖掘中的序列发现功能,以侦测出长期的经常购买行为。再将这些数据与主数据库的人口统计数据结合在一起,Safeway的行销部门就可以根据每个家庭的特点,例如在哪些季节会购买哪些产品的趋势等,发出邮件。根据这些信息,公司在某一年发出了1200万封完全客制化的邮件,这在销量增长方面起到了重要作用。

数据仓库技术主要研究和解决如何从各种分散的外部数据源、脱机的历史业务数据中获取数据的问题,数据挖掘则是在此基础上进行数据分析并为管理决策提供应用服务。数据仓库和数据挖掘互相促动,协同发展。一方面,数据仓库技术可以迎合和简化数据挖掘过程中的重要步骤,提高数据挖掘的效率和能力,确保数据挖掘中数据来源的广泛性和完整性。另一方面,数据挖掘技术已经成为数据仓库应用中极为重要和相对独立的方面和工具。

【本章小结】

本章主要介绍了数据库技术发展历史和在不同时期内的特点,深刻理解数据库、数据库管理系统、数据库系统之间的联系与区别。在文件系统基础上发展起来的数据库在结构和功能上都有了很大的进步。数据模型是数据库系统的核心和基础,在此介绍了四类数据模型的重要特征,从早期的层次模型和网状模型,到目前广泛应用的关系模型,以及正在发展的面向对象模型。

数据库是把大量的数据按照一定的关系模型组织起来,并提供存储、维护和检索数据的功能,帮助用户及时准确地从系统中获取相应的信息。关系模式是最常见的数据结构。数据结构的好与坏,直接影响到数据存储的冗余度、数据一致性等问题。

随着数据库技术的发展,出现了并行数据库、分布式数据库、多媒体数据库和Web数据库,借助不同的方法提高传统数据库系统的性能,满足新环境下的应用。新一代基于Internet应用的Web数据库则融合网络技术、存储技术和检索技术,并结合传统数据库技术的优点,开辟了一个崭新的Internet数据库时代。人们拥有的数据量急剧增大,希望在已有的大量数据的基础上进行科学研究、商业决策、企业管理,数据仓库和数据挖掘应运而生,并显示了广泛的应用前景。

【相关链接】

数据采集对海尔现代物流的支持(企业移动三步曲:实现海尔供应链管理最大化,美国讯宝科技公司,http://symbol-china.com/pdf/Logistics_1.pdf。)

海尔实施物流战略以来,共投建了两座立体化仓库。最新启用的海尔国际物流中心因采用了以激光导引无人运输车系统为代表的一系列先进技术,从而全部实现了物流的自动化和智能化。该物流中心高22米,拥有原材料、成品标准托盘位共18056个,不仅所有货物从入库到出库中间的一切活动均实现无人操作,而且这些出入库信息经由条码和红外线扫描信息终端还同步传送到了海尔物流的计算机管理系统。由于软硬件等领先技术的运用,该物流中心7200平方米的货区,完成的吞吐量相当于普通平面仓库的30万平米的效用,而整个物流中心的操作人员仅有10名。

海尔集团在全国各地建有42个配送中心,这42个配送中心构成了海尔集团服务市场和客户需求的重要物流网络。为确保配送中心实现高效运转,并为管理系统提供及时、准确的物流数据,配送中心必须改变传统手工作业的方式,建设一套高效和准确的数据采集系统。

在海尔,42个配送中心都配备了Symbol的LS1902 条码扫描器、SpT1800系列便携式数据终端。讯宝公司的工业级条码扫描器和便携式数据终端都具有坚固耐用的特点,符合人体工学,便于操作和携带,可摆脱线缆的束缚。它在物流作业和数据采集方面具有独特的优势,目前已在海尔各地的配送中心取得了良好的应用效果。

在配送中心的入库作业环节,数据终端从主机系统下载有关的入库数据后,操作人员通过在数据终端上输入相应的入库单据编号,便可获得详细的入库数据,具体包括入库产品条码、单位、数量等。操作人员通过对实际入库产品条码的扫描,并将实收数据与应收数据核对,实现了对入库数据的高效采集和流程控制功能。最后,数据终端上采集的数据被上载到主机系统中,供物流管理系统作进一步的处理和分析。

在配送中心的出库作业环节,在数据终端下载主机系统的出库数据之后,操作人员在数据终端上输入相应的出库单据号,便可获得当前批次出库的产品条码和数量。依据数据终端中的出库数据,操作人员可实现对出库产品的扫描、核对和确认,从而实现了对出库作业的严密管理。最后,数据终端的实际出库数据被上载到主机系统中。

在仓库盘点作业中,在数据终端下载由主机系统生成的盘点数据之后,操作人员便可在数据终端的操作提示下,对库存商品进行逐项扫描、清点和确认,待盘点数据上载到主机系统之后,便可获得库存的盘点差异数据。

在库位移动作业中,待数据终端从主机系统下载移库指令后,操作人员便可在数据终端的操作指示下,将某个库位的商品转移到目的库位,待所有移库操作完成后,再将数据终端上载至主机系统,实现移库作业的确认。

通过在作业现场搭建无线局域网络,海尔又实现了数据终端与主机SAp系统的实时连接,大大强化了集团在产品装车、退货和换货过程中的作业管理和数据采集。以具体的装车作业为例,操作人员通过扫描或手工输入装车单据号,通过无线数据终端实时提交到后台主机的SAp系统,SAp系统便实时将装车单据的明细数据发送给无线数据终端,具体包括产品编码、产品描述、送达方、应发数量、单位等。然后,操作人员根据这些详细的装车数据,开始扫描待装车产品的条码,并通过无线网络与SAp系统进行实时通讯,以对装车产品进行核对。当操作人员将扫描完毕的一批产品装车后,便可通过无线数据终端向后台主机的SAp系统进行实时提交,从而使SAp系统及时、准确地记录装车产品的实发数量、扫描开始时间和扫描结束时间,并进行进一步的统计和处理。基于无线数据终端的作业管理系统,还便于后台主机系统根据实际作业进度,合理安排工作任务,实现对物流资源的统一调度,实现了物流管理和运作的最优化。

讨论题:

1.数据采集在海尔物流信息系统建设过程中的重要作用是什么?

2.信息系统如何通过系统基础数据和业务基础数据的应用来开展有效管理?

3.海尔借助无线局域网络实现了数据终端与主机SAp系统的实时连接,对数据在系统中应用带来了哪些影响?

4.参考海尔物流信息系统的应用,考察身边企业信息化过程中的常见问题。

【练习与思考】

1.传统文件系统中是如何进行数据管理的?

2.传统文件系统进行数据管理存在哪些问题?

3.什么是数据库,数据库系统,数据库管理系统?

4.数据库系统中的数据存储方式是怎样的?

5.数据库系统中数据管理的特点是什么?

6.数据库管理系统主要功能有哪些?

7.数据库系统由哪些部分构成的,各部分的功能是什么?

8.数据库系统的逻辑结构中,模式、内模式和外模式的定义分别是什么,它们之间是什么样的映射关系?

9.数据库管理主要有哪些不同的数据模型,它们的特点如何?

10.描述数据模型的三要素是什么,关系模型有哪些特点?

11.关系模型的完整性约束主要包含哪些方面?

12.什么是结构化查询语言,它主要包含那些功能语言?

13.关系数据库产品中,典型的桌面产品和服务器端产品有哪些,特点如何?

14.并行数据库、分布式数据库、多媒体数据库和WEB数据库的定义和特征是什么?

15.什么是数据仓库,它和数据库有哪些不同之处?

16.什么是数据挖掘,它在企业有哪些应用?

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

我要反馈