|
|
数据管理是指对数据进行分类、组织、编码、存储、检索和维护。数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。数据库技术是应数据管理任务的需要而产生的。
|
|
|
数据、数据库、数据库管理系统和数据库系统是与数据库技术密切相关的四个基本概念。
|
|
|
|
数据是数据库中存储的基本对象。它不仅仅是指数字,广义地说,文字、图形、图像、声音、记录、语言等描述事物的符号都是数据,可以经过数字化后存入计算机。所以,可以如下定义数据:数据是描述事物的符号记录。
|
|
|
|
数据库是存在于计算机存储设备上的用来存放数据的仓库,人们可以运用数据库技术科学地保存并管理大量的复杂的数据,提高信息资源的利用率。可以如下定义数据库:数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库的特征是:数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
|
|
|
数据库管理系统(DataBase Management System, DBMS)
|
|
|
数据在数据库中是按照一定的格式存放的,为了更加高效地获取和维护数据,可以利用数据库管理系统来科学地组织和存储数据。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
|
|
|
数据库系统(DataBase System, DBS)
|
|
|
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成,如下图所示。在一般不引起混淆的情况下,通常把数据库系统简称为数据库。
|
|
|
|
|
与人工管理和文件系统相比,数据库系统的特点主要有以下四个方面。
|
|
|
①数据结构化:数据结构化是数据库与文件系统的根本区别。
|
|
|
②数据的共享高,冗余度低,易扩充:数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,数据可以被多个用户、多个应用共享使用。
|
|
|
③数据独立性高:数据独立性包括数据的物理独立性和数据的逻辑独立性。
|
|
|
|
|
模型是现实世界特征的模拟和抽象,而数据模型(Data Model)也是一种模型,是对现实世界数据特征的抽象。现有的数据库系统均是基于某种数据模型的。根据模型应用的不同目的,可以将模型划分为两类:第一类是概念模型(也称信息模型),它是按用户的观点来对数据和信息建模,主要用于数据库设计;另一类是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。数据模型是数据库系统的核心和基础,各种计算机上实现的DBMS软件都是基于某种数据模型的。
|
|
|
|
数据模型是严格定义的一组概念的集合,这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常有数据结构、数据操作和数据的约束条件三个组成要素。
|
|
|
(1)数据结构。数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,包括两类,一类是与数据类型、内容、性质有关的对象;一类是与数据之间联系有关的对象。数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。数据结构是对系统静态特性的描述。
|
|
|
(2)数据操作。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言。数据操作是对系统动态特性的描述。
|
|
|
(3)数据的约束条件。数据的约束条件是一组完整性规则的集合。而数据库的完整性是指数据的正确性和相容性,例如,学生学号必须唯一、性别只能是男或女、本科学生的年龄的取值范围为14~30的整数。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
|
|
|
|
|
.实体:客观存在并可相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系。
|
|
|
.属性(Attribute):实体所具有的某一特征。一个实体可以由若干个属性来刻画。
|
|
|
|
|
.实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
|
|
|
.实体集(Entity Set):同型实体的集合。
|
|
|
.联系(Relationship):分为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。两个实体型之间的联系可以分为:一对一联系(记为1:1)、一对多联系(1:n)和多对多联系(m:n)。
|
|
|
|
概念模型的表示方法很多,其中最为著名最为常用的是实体-联系方法(E-R方法,也称为E-R模型),该方法用E-R图来描述现实世界的概念模型。在E-R图中,实体用矩形表示,矩形框内写明实体名;属性用椭圆形表示,并用无向边将其与相应的实体连接起来;联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。同时,如果联系具有属性,则这些属性也要用无向边与该联系连接起来。
|
|
|
如下图所示就是用E-R图来表示某个工厂物资管理的概念模型。
|
|
|
|
|
仓库、零件、供应商、项目、职工是物资管理所涉及到的实体。每个实体都有若干属性,例如,仓库的属性是仓库号、面积和电话号码。实体之间具有联系,这些联系分别是:①仓库和零件的多对多联系,一个仓库可以存放多种零件,一种零件可以存放在多个仓库当中,库存量表示某种零件在某个仓库中的数量。②仓库和职工之间的一对多联系,一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作。③职工之间的一对多联系,即职工之间具有领导-被领导关系,例如仓库主任领导若干保管员,一个保管员被一个仓库主任领导。④供应商、项目和零件三者之间具有多对多联系,一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给。
|
|
|
可以看出,实体-联系方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,比数据模型更一般、更抽象、更接近现实世界。
|
|
|
|
目前,数据库领域中最常用的数据模型有四种:层次模型、网状模型、关系模型、面向对象模型。其中层次模型和网状模型统称为非关系模型。
|
|
|
|
层次模型是数据库系统中最早出现的数据模型,用树型结构来表示各类实体以及实体间的联系。在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:①有且只有一个结点没有双亲结点,这个结点成为根结点;②根以外的其他结点有且只有一个双亲结点。层次数据库系统只能直接处理一对多(包括一对一)的实体联系,但在现实世界中很多联系是非层次的(例如一个结点具有多个双亲时),层次模型在处理多对多联系时,必须首先将其分解成一对多联系,分解方法有冗余结点法和虚拟结点法,但这两种处理方法较笨拙。
|
|
|
|
在数据库中,把满足以下两个条件的基本层次联系集合成为网状模型:①允许一个以上的结点无双亲;②一个结点可以有多于一个的双亲。网状模型比层次模型更具普遍性,层次模型是网状模型的一个特例。可以看出,与层次模型不同,网状模型中子女结点与双亲结点的联系可以不唯一,因此,要为每个联系命名,并指出与该联系有关的双亲记录和子女记录。
|
|
|
此类模型的结构复杂,当应用环境扩大时,数据库将变得复杂,最终用户难以掌握。记录之间的联系通过存取路径实现,用户必须了解系统结构的细节,才能在应用程序的编写中选择到适当的路径,加重了编程的负担。
|
|
|
|
关系模型是目前最重要的一种数据模型,关系数据库系统(例如著名的DB2、Oracle、Ingres、 Sybase、 Informix等)采用关系模型为数据的组织方式。关系模型与层次模型和网状模型不同,它建立在严格的数学概念的基础之上,应用数学方法来处理数据库中的数据。在用户观点下,关系模型中数据的逻辑结构是一张二维表,由行和列组成。关系模型概念单一,无论实体还是实体间的联系都是用关系表示,数据结构简单清晰,用户易懂易用。存取路径对用户透明,数据独立性高、安全保密性好,且简化了数据库开发工作。如下图所示是关系模型数据结构的示例。
|
|
|
|
|
|
|
在关系模型中,实体间的联系都是用关系来表示。上图所示的学生、课程、选课的多对多联系在关系模型中可以表示为:
|
|
|
|
|
|
|
考查数据库系统结构可以从多种层次或角度来进行:从数据库管理系统角度来看,数据库系统通常采用三级模式结构,这是数据库管理系统内部的系统结构;从数据库最终用户角度来看,数据库系统的结构分为集中式结构、分布式结构、客户/服务器结构和并行结构,这是数据库系统外部的体系结构。
|
|
|
|
|
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,下图所示。
|
|
|
|
|
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式,它是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,也与具体的应用程序、具体的开发工具及程序设计语言无关,它是数据库数据在逻辑级上的视图。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式经常是模式的子集,当不同的用户在需求等方面要求不同的时候,其外模式描述是不同的。一个数据库可以有多个外模式,同一个外模式可以为某一用户的多个应用系统使用,但一个应用程序只能使用一个外模式。内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
|
|
|
|
为了在内部实现三级模式的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像、模式/内模式映像。对于每一个外模式,数据库系统都有一个外模式/模式映像,定义该外模式与模式之间的对应关系,该映像通常包含在各自外模式的描述中。当模式改变时,数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变。由于应用程序是依据数据的外模式编写的,所以应用程序不需要修改,这就保证了数据与程序的逻辑独立性。由于数据库中模式和内模式都是唯一的,所以模式/内模式映像也是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应联系,该映像定义通常包含在模式描述中。当数据库的存储结构改变了,数据库管理员对模式/内模式作相应改变,则模式可以不变,从而应用程序也不必改变,这就保证了数据与程序的物理独立性。
|
|
|
|
如前所述,从数据库最终用户角度来看,数据库系统的结构分为集中式结构、分布式结构、客户/服务器结构和并行结构,这是数据库系统外部的体系结构。
|
|
|
|
分时系统环境下的集中式数据库系统结构诞生于20世纪60年代中期,当时的硬件和操作系统的条件决定了这种体系结构成为当时的首选结构。这种系统中,不但数据是集中的,数据的管理也是集中的。数据库系统的所有功能都集中在DBMS所在的计算机上。目前,大多数关系DBMS产品都是从这种系统结构发展起来的,这种系统现在仍然有人使用。
|
|
|
|
客户/服务器结构的工作原理是,客户端的用户请求被传送到数据库服务器,数据库服务器进行处后,只将结果返回给用户(而不是整个数据)。客户/服务器结构显著减少了网络上的数据传输量,提高了系统的性能、吞吐量和负载能力,这种结构的数据库往往更加开放(多种不同的硬件和软件平台、数据库应用开发工具),应用程序具有更强的可移植性,同时也可以减少软件维护开销。
|
|
|
|
随着计算机网络通信的迅速发展,以及地理位置上分散的公司、团体和组织对数据库更广泛应用的需求,基于集中式数据库系统成熟的技术上,产生了发展了分布式数据库系统。对于分布式数据库系统,可以如下定义:分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地自治),可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用。分布式数据库系统分布在网络的不同计算机上,既具有高度的自治性,更要强调各场地系统间的协作性。从用户角度看,一个分布式数据库系统逻辑上如同一个集中式数据库系统,用户可以在任何一个场地执行全局应用和局部应用。
|
|
|