数据库开发技术标准教程
上QQ阅读APP看书,第一时间看更新

2.1 概述

数据库技术始于20世纪60年代,是为满足数据管理任务的需要而产生的。数据处理是对各种数据进行收集、存储、加工和传播的一系列活动的总和。数据管理是对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。

2.1.1 数据和数据模型

数据库按照数据间固有的逻辑关系组织存放。数据库管理系统(DataBase Management System, DBMS)是管理数据库并为用户提供服务的软件。传统数据库中的数据是存放在外存上的永久性数据。

1. 数据

为了了解世界、研究世界和交流信息,人们需要描述各种事物。用自然语言描述事物虽然很直接,但过于烦琐,不便于计算机处理。为此,需要抽取出感兴趣的事物特征或者属性来描述事物。例如,可以用如下信息描述一位客户:(001,张三,北京朝阳区亚运村,66000066,1001001)。这样的一行数据,在数据库领域称为一条记录。单看这一行数据很难知道其确切含义,它必须在一定的数据环境中才有意义。用某种形式来说明这组数据,就可以得到数据的确切含义:(编号,姓名,地址,电话,邮编)。这称为数据的型,上述的客户信息称为数据值。“型”是数据的描述,指明事物有什么属性,并规定取值类别和范围(类型)等。“值”是型的一个具体赋值。

2. 数据模型

模型是表示事物本质的方法,是对事物、对象、过程等客观现实中感兴趣内容的模拟和抽象,是理解系统的思维工具。数据模型也是一种模型,是对现实世界数据特征的抽象,用于描述数据、组织数据和对数据进行操作。

根据模型应用目的,可以将模型分为两大类。一类是面向用户的,称为概念模型,也称为信息模型;另一类是面向计算机系统的逻辑模型和物理模型。

1)概念模型

概念模型从数据的应用角度来抽取模型并按用户的观点对数据和信息进行建模。这类模型主要用于数据库设计阶段,它与具体的数据库管理系统无关。

常用的概念模型有实体-联系(Entity-Relationship, E-R)模型、语义对象模型等。E-R模型是1976年由P. P. S. Chen提出的,它拥有大量的支持者,是目前描述信息结构最常用的方法。E-R模型中的关键信息包括实体、属性和联系。

实体是具有公共性质的可相互区别的现实世界对象的集合。实体可以是具体的事物,也可以是抽象的概念或联系。例如,商品、客户、销售员都是具体的实体,而销售员销售商品,客户购买商品也可以看成实体,但它们是抽象的实体。

在E-R图中用矩形框表示实体,把实体名写在框内。例如,图2.1(a)中“部门经理”和“部门”就是具体的实体。实体中的每个具体的记录值,比如员工实体中的每个具体的销售员,称为实体的一个实例。

每个实体都具有一定的特征或性质,根据实体的特征来区分一个个实例。属性就是描述实体或者联系的数据项,是一个实体的所有实例都具有的共同性质。例如,商品的编号、名称、型号、价格等都是商品实体的特征,这些特征构成了商品实体的属性。属性在E-R图中用椭圆表示,并用连线将属性与实体联系起来,如图2.1(b)所示。

图2.1 E-R图

现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界反映为实体内部的联系和实体之间的联系。实体内部的联系通常指实体的各属性之间的联系;实体之间的联系通常指不同实体之间的联系。例如,在职工实体中,假设有职工号、部门经理号等属性,其中,部门经理号和职工号采用的是一套编码方式。部门经理也是职工,因此部门经理号和职工号之间有一种关联约束关系,即部门经理号的取值受限于职工号,这就是实体内部的联系。销售员和商品之间也有联系,这种联系就是实体之间的联系。

两实体之间的联系可以分为以下三类。

一对一联系(1∶1):如果实体A中的每个实例在实体B中至多有一个(也可以没有)实例与之关联,反之亦然,则称实体A与实体B具有一对一联系,记为1∶1。例如,部门和经理(假设一个部门只有一个经理)就是一对一联系。

一对多联系(1∶n:如果实体A中的每个实例在实体B中有n个实例(n≥0)与之关联,而实体B中的每个实例在实体A中最多有一个实例与之关联,则称实体A与实体B具有一对多联系,记为1∶n。假设一个部门有若干个职工,而一个职工只在一个部门工作,则部门和职工之间就是一对多联系。

多对多联系(mn):如果实体A中的每个实例在实体B中有n个实例(n≥0)与之关联,而实体B中的每个实例在实体A中也有m个实例(m≥0)与之关联,则称实体A与实体B具有多对多联系,记为nm。例如,一个销售员可以销售多种商品,一种商品也可以被多个销售员销售,因此销售员与商品之间就是多对多联系。

2)逻辑模型

数据库的逻辑模型有:层次模型、网状模型、关系模型、对象-关系模型等。本章重点讨论关系模型。

关系模型是目前最重要的一种数据模型,由IBM公司的研究员E. F. Codd在1970年首次提出,为数据库技术奠定了理论基础。20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型。关系模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中就称为“关系”;关系数据库就是“关系”的集合。

在关系系统中,表是逻辑结构而不是物理结构。实际上,系统在物理层可以使用任何有效的存储结构来存储数据。表2.1是商品信息的关系模型。

表2.1 商品信息表

“商品”是一个关系,由品名、价格、产地、生产商这些相关属性描述。用关系表示实体以及实体之间联系的模型称为关系模型。

2.1.2 三级模式结构体系

考察数据库系统的结构可以有不同的层次和不同的角度。从数据库管理系统角度看,数据库系统通常采用三级模式结构,这是数据库管理系统内部的数据结构。

在数据模型中有“型”(Type)和“值”(Value)的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如,客户记录定义为(客户号,姓名,单位)这样的记录型,而(2007040612,张三,北京科技公司)则是该记录型的一个记录值。

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的,因此数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。虽然实际的数据库管理系统产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构。

美国国家标准委员会(ANSI)所属标准计划和要求委员会在1975年公布了一个关于数据库标准的报告,提出了数据库的三级模式结构,这就是著名的SPACE分级结构。三级结构对数据库的组织从内到外分为三个层次,分别为内模式、概念模式和外模式,如图2.2所示。

图2.2 数据库系统的三级模式结构

1. 内模式

内模式又称存储模式,描述数据在存储介质上的组织存储。内模式是系统程序员用一定的文件形式组织起来的一个个存储文件和联系手段,实现数据存取。一个数据库只有一个内模式。

2. 概念模式

概念模式简称模式,是对数据库的整体逻辑结构和特征的描述,也是所有用户的公共数据视图。模式是数据的逻辑结构,一个数据库只有一个模式。模式不涉及数据的物理存储细节和硬件环境,与具体的应用程序及使用的开发工具无关。定义模式时不仅要定义数据的逻辑结构,也要定义数据之间的联系,定义与数据有关的安全性、完整性要求等。

3. 外模式

外模式通常是模式的一个子集,故又称外模式为子模式。外模式面向用户,它是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,与应用有关的数据的逻辑表示。一个数据库可以有多个外模式,每一个外模式都是为了不同的应用建立的数据视图。外模式是保证数据库安全的一个有力措施,每个用户只能看到和访问到所对应的外模式中的数据。

综上所述,模式是内模式的逻辑表示,内模式是模式的物理实现,外模式则是模式的部分抽取。三个模式反映出数据库的三种不同观点:内模式表示物理级数据库,体现了对数据库的存储观;模式表示了概念级的数据库,体现了对数据库的总体观;外模式表示了用户级数据库,体现了对数据库的用户观。总体观和存储观只有一个,而用户观可能有多个。

数据库系统的三级模式是对数据的三级抽象,数据的具体组织由数据库管理系统负责,使用户能够逻辑地处理数据,而不必关心数据在计算机内部的具体表示与存储方式。为了在内部实现这三个抽象层次的转换,数据库管理系统在这三级模式中提供了两级映像:外模式/模式映像和模式/内模式映像。

1. 外模式/模式映像

外模式/模式映像就是存在外模式与模式之间的某种对应关系,这些映像定义通常包含在外模式的描述中。

当模式改变时,例如,增加了一个新表或对表进行了修改,数据库管理员对各个外模式/模式的映像做相应的修改,而使外模式保持不变,这样应用程序就不用修改。因为应用程序是基于外模式的处理,所以保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

2. 模式/内模式映像

模式/内模式映像是数据库全局逻辑结构与存储结构之间的对应关系。当数据库的内模式发生改变时,例如,存储数据库的硬件设备或存储方式发生改变,由于存在模式/内模式映像,使得数据的逻辑结构保持不变,即模式不变。保证了数据与应用程序的物理独立性,简称数据的物理独立性。

2.1.3 数据库管理系统

数据库管理系统(DataBase Management System, DBMS)是处理数据库访问的系统软件,主要有以下功能。

1. 数据定义

数据库管理系统能够接受数据库定义的源形式,并把它们转换成相应的目标形式,支持各种数据定义语言(DDL)的处理器或编译器。

2. 数据组织、存储和管理

数据库管理系统要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何体现数据之间的联系等。

3. 数据操纵

数据库管理系统提供数据操纵语言(Data Manipulation Language, MDL),用户可以使用它操纵数据,实现对数据库的插入、删除、修改、查询等操作。

4. 数据库的事务管理和运行管理

数据库在建立、运行和维护时由数据库管理系统统一管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

5. 数据库的建立和维护

数据库的建立和维护功能包括数据库初始数据的输入、转换、恢复功能,数据库的重组织功能、性能监视、分析等功能。