第四章  数据库设计基础
双击滚屏  关闭窗口

  

数据库技术是计算机领域的一个重要分支。在计算机应用的三大领域(科学计算、数据处理和过程控制)中,数据处理约占其中的 70%,而数据库技术就是作为一门数据处理技术发展起来的。随着计算机应用的普及和深入,数据库技术变的越来越重要了,而了解、掌握数据库系统的基本概念和基本技术是应用数据库技术的前提。本章首先介绍数据库系统的基础知识,然后对基本数据模型进行讨论,特别是其中的E—R 模型和关系模型;之后再介绍关系代数及其在关系数据库中的应用,并对关系的规范化理论作了简单的说明;最后,较为详细地讨论了数据库的设计过程。

4 . 1 数据库系统的基本概念

  4.1.1 数据、数据库、数据库管理系统
  4.1.2 数据库系统的发展
  4.1.3 数据库系统的基本特点
  4.1.4 数据库系统的内部结构体系

  计算机科学与技术的发展,计算机应用的深入与拓展,使得数据库在计算机应用中的地位与作用日益重要,它在商业中、事务处理中占有主导地位。近年来在统计领域、在多媒体领域以及智能化应用领域中的地位与作用也变的十分重要。随着网络应用的普及,它在网络中的应用也日渐重要。因此,数据库已成为构成一个计算机应用系统的重要的支持性软件。

  4.1.1 数据、数据库、数据库管理系统 

  1.数据
    数据( Data )实际上就是描述事物的符号记录。
    计算机中的数据一般分为两部分,其中一部分与程序仅有短时间的交互关系,随着程序的结束而消亡,它们称为临时性( Transient )数据,这类数据一般存放于计算机内存中;而另一部分数据则对系统起着长期持久的作用,它们称为持久性( Persistent )数据。数据库系统中处理的就是这种持久性数据。
   软件中的数据是有一定结构的。首先,数据有型( Type )与值 (Value) 之分,数据的型给出了数据表示的类型,如整型、实型、字符型等,而数据的值给出了符合给定型的值,如整型值 15 。随着应用需求的扩大,数据的型有了进一步的扩大,它包括了将多种相关数据以一定结构方式组合构成特定的数据框架,这样的数据框架称为数据结构( Data structure ),数据库中在特定条件下称之为数据模式( Data schema )。
   在过去的软件系统中是以程序为主体,而数据则以私有形式从属于程序,此时数据在系统中是分散、凌乱的,这也造成了数据管理的混乱,如数据冗余度高,数据一致性差以及数据的安全性差等多种弊病。近 10 多年来,数据在软件系统中的地位产生了变化,在数据库系统以及数据库应用系统中数据已占有主体地位,而程序已退居附属地位。在数据库系统中需要对数据进行集中、统一的管理,以达到数据被多个应用程序共享的目标。
  2 .数据库
   数据库( Database ,简称 DB )是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。
   数据库存放数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构以建立数据间内在联系与复杂的关系,从而构成数据的全局结构模式。
   数据库中的数据具有“集成”、“共享”之特点,亦即是数据库集中了各种应用的数据,进行统一的构造与存储,而是他们可以被不同的应用程序所使用。
   3. 数据库管理系统
   数据库管理系统( Database Management System, 简称 DBMS )是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库中的数据是具有海量级的数据,并且其结构复杂,因此需要提供管理工具。数据库管理系统是数据库系统的核心,它主要有以下几个方面的具体功能:
   (1) 数据模式定义。数据库管理系统负责为数据库构建模式,也就是为数据库构建其数据框架。
  (2) 数据存取的物理构建。数据库管理系统负责为数据模式的物理存储及构建提供有效的存取方法与手段。
  (3) 数据操纵。数据库管理系统为用户使用数据库中的数据提供方便,它一般提供查询、插入、修改、删除数据的功能。此外,它自身还具有做简单算术运算及统计的能力,而且还可以和某些过程性语言结合,使其具有强大的过程性操作能力。
  (4)数据的完整性、安全性定义与检查。数据库中的数据具有内在语义上的关联性与一致性,他们构成了数据的完整性,数据的完整性是保证数据库中的数据正确的必要条件,因此必须经常检查以维护数据的正确。
   数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,因此必须要对数据正确使用作出必要的规定,并在使用时做检查,这就是数据的安全性。
   数据完整性与安全性的维护是数据库管理系统的基本功能。
   (5)数据库的并发控制与故障恢复。数据库是一个集成、共享的数据集合体,它能为多个应用程序服务,所以就存在着多个应用程序对数据库的并发操作。在并发操作中如果不加以控制和管理,多个应用程序间就会相互干扰,从而对数据库中的数据造成破坏。因此,数据库管理系统必须对多个应用程序的并发执行做必要的控制一保证数据不受破坏,这就是数据库的并发控制。
   数据库中的数据一旦遭受破坏,数据库管理系统必须有能力及时进行恢复,这就是数据库的故障恢复。
  (6) 数据的服务。数据库管理系统提供对数据的多种服务功能,如数据拷贝、转存、重组、性能检测、分析等。
   为完成以上六个功能,数据库管理系统一般提供相应的数据语言( Data Language ) , 他们是:
   数据定义语言( Data Definition Language 简称 DDL )该语言负责数据的模式定义与数据的物理存取构建。
   数据操纵语言( Data Manipulation Language 简称 DML )该语言负责数据的操纵,包括查询及增、删、改等操作。
   数据控制语言( Data Control Language 简称 DCL )该语言负责数据完整性、安全性定义与检查以及并发控制、故障恢复等功能,包括系统初起程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序、数据库恢复程序等。
   上述数据语言按其使用方式具有两种结构形式:
   交互式命令语言。它的语言简单,能在终端上即时操作,它又称为自含型或自主型语言。
   宿主型语言。它一般可嵌入某些宿主语言( Host Language )中,如 C , C++ 和 COBOL 等高级过程性语言中。
   此外,数据库管理系统还为用户提供服务的服务性( Utility )程序,包括数据初始装入程序、数据转存程序、性能检测程序、数据库再组织程序、数据转换程序、通信程序等。
   目前流行的 DBMS 均为关系数据库系统,比如 ORACLE 、 Sybase 的 PowerBuilder 及 IBM 的 DB2 、微软的 SQL Server 等,他们均为严格意义上的 DBMS 系统。另外一些小型的数据库,如微软的 Visual Foxpro 和 Access 等,它们只具备数据库管理系统的一些简单功能。
   4. 数据库管理员
   由于数据库的共享性,因此对数据库的规划、设计、维护、监视等需要有专人管理,称他们为数据库管理员( Database Administrator 简称 DBA )。其主要工作如下:
  (1)数据库设计( Database Design ) DBA 的主要工作之一是做数据库设计,具体的说是进行数据模式的设计。由于数据库的集成和共享性,因此需要有专门人员(即 DBA )对多个应用的数据需求做全面的规划、设计与集成。
  (2) 数据库维护。 DBA 必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转存等进行实施与维护。
  (3) 改善系统性能,提高系统效率。 DBA 必须随时监视数据库运行状态,不断调整内部结构,使系统保持最佳状态与最高效率。当效率下降时, DBA 需采取适当的措施,如进行数据库的重组、重构等。

  5. 数据库系统
   数据库系统( Database System 简称 DBS )由如下几部分组成:数据库(数据)、数据库管理系统(软件)、数据库管理人员(人员)、系统平台之一 ----- 硬件平台(硬件)、系统平台之二 ----- 软件平台(软件)。这五个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。
   在数据库系统中,硬件平台包括:
   计算机:它是系统中硬件的基础平台,目前常用的有微型机,小型机,中型机,大型机及巨型机。
   网络:过去数据库系统一般建立在单机上,但是近年来它较多的建立在网络上,从目前形势看,数据库系统今后将以建立在网络上为主,而其结构形式又以客户 / 服务器( C/S )方式与浏览器 / 服务器( B/S )方式为主。
   在数据库系统中,软件平包括:
   操作系统:它是系统的基础软件平台,目前常用的有各种 UNIX (包括 LINUX )与 WINDOWS 两种。
   数据库系统开发工具:为开发数据库应用程序所提供的工具,它包括过程性程序设计语言如 C , C++ 等。也包括可视化开发工具 VB 、 PB 、 Delphi 等,它还包括近期与 INTERNET 有关的 HTML 及 XML 等一些专用开发工具。
   接口软件:在网络环境下数据库系统中数据库与应用程序,数据库与网络间存在着多种接口,他们需要用接口软件进行连接,否则数据库整体就无法运作,这些接口软件包括 ODBC 、 JDBC 、 OLEDB 、 CORBA 、 COM 、 DCOM 等。

  6.数据库应用系统( Database Application System 简称 DBAS )
   利用数据库系统进行应用开发可构成一个数据库应用系统,数据库应用系统是数据库系统再加上应用软件及应用界面三者所组成,具体包括:数据库、数据库管理系统,数据库管理员,硬件平台,软件平台,应用软件,应用界面。其中应用软件是由数据库系统所提供的数据库管理系统(软件)及数据库系统开发工具所书写而成的,而应用界面大多数由相关的可视化工具开发而成。
   数据库应用系统的 7 个部分以一定的逻辑层次结构方式组成一个有机的整体。如果不计数据库管理员(人员)并将应用软件与应用界面记成应用系统,则数据库系统的结构如图 4.1 所示。
                 
                       图4.1  数据库系统的软硬件层次结构

  下面以一个用户读取某数据记录为例,展开在数据库系统中访问数据的具体执行过程,该过程如图 4.2 所示,对其各个步骤简单说明如下:
             
                       图4.2 数据库系统访问数据的步骤 
  (1)用户程序中有一条读取数据库记录的 DML 语句,当计算机执行到此语句时,即向 DBMS 发出读取相应记录的命令。
  
(2)DBMS 接到该命令后,首先访问该用户对应的子模式。检查该操作是否在合法授权范围内及预读记录的正确性、有效性,若不合法则拒绝执行,并向应用程序状态返回区发出回答状态信息:发之执行下一步。
  (3)DBMS 读取模式描述并从子模式映像到全局模式,从而确定所需的逻辑记录类型。
  (4)DBMS 从逻辑模式映像到存储模式,从而确定读入哪些物理记录以及具体的地址信息。
  (5)DBMS 想操作系统发出从指定地址读取记录的命令。
  (6)操作系统执行读命令,按指定地址从数据库中把记录读入系统缓冲区,并在操作结束后向 DBMS 作出应答。
  (7)DBMS 按照模式将读入系统缓冲区的内容映像成用户要求读取的逻辑记录。
  (8)DBMS 将导出的逻辑记录送入用户工作区,并将操作执行情况的状态信息返回给用户。
   (9)DBMS 将已执行的操作载入运行日志。
  (10)应用程序根据返回的状态信息决定是否利用该数据进行操作等。
  
如果用户是更新一个记录内容,则执行过程类似。首先读出目标记录,并在用户工作区中进行修改,然后向 DBMS 发出“写回修改数据”的数据库指令即可。

  4.1.2数据库系统的发展

  数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。人工管理阶段是在 20 世纪 50 年代中期以前,主要用于科学计算,硬件无磁盘,直接存取,软件没有操作系统。 20 世纪 50 年代后期到 20 世纪 60 年代中期,进入文件系统阶段。 20 世纪 60 年代之后,数据管理进入了数据库系统阶段。随着计算机领域不断扩大,数据库系统的功能和应用领域也愈来愈广,到目前已成为计算机系统的基本及主要的支撑软件。
   1.文件系统阶段
   文件系统是数据库发展的初级阶段,它提供了简单的数据共享与数据管理能力。但是它无法提供完整的、统一的、管理和数据共享的能力。由于它的功能简单,因此它附属于操作系统而不成为独立的软件,目前一般将其看成是数据库系统的雏形,而不是真正的数据库系统。
   2.层次数据库与网状数据库阶段
   从 20 世纪 60 年代末期起,真正的数据库系统 ------ 层次数据库与网状数据库开始发展,它们为统一管理与数据共享提供了有力支持,这个时期数据库系统蓬勃发展形成了有名的“数据库时代”。但是这两种系统也存在着不足,主要是它们脱胎于文件系统,受文件的物理影响较大,对数据库使用带来诸多不便,同时,此类系统的数据模式构造烦琐不宜于推广使用。
   3.关系数据库系统阶段
   关系数据库系统出现于 20 世纪 70 年代,在 80 年代得到蓬勃发展,并逐渐取代前两种系统,关系数据库系统结构简单,使用方便,逻辑性强物理性少,因此在 80 年代以后一直占据着数据库系统的主导地位。但是由于此系统来源于商业应用,适合于事务处理领域而对非事务处理领域应用受到限制,因此在 80 年代末期兴起与应用技术相结合的各种专用数据库系统。
   工程数据库系统:是数据库与工程领域的结合
   图形数据库系统:是数据库与图形应用的结合
   图像数据库系统:是数据库与图像应用的结合
   统计数据库系统:是数据库与工程应用的结合
   知识库系统:是数据库与人工智能应用领域的结合
   分布式数据库系统:是数据库与网络应用的结合
   并行数据库系统:是数据库与多机并行应用的结合
   面向对象数据库系统:是数据库与面向对象方法的结合
  关于数据库管理三个阶段中的软硬件背景及处理特点,简单概括在表 4.1 中 

 

人工管理

文件系统

数据库系统

 

 

应用背景

科学计算

科学计算、管理

大规模管理

硬件背景

无直接存取设备

磁盘、磁鼓

大容量磁盘

软件背景

没有操作系统

有文件系统

有数据库管理系统

处理方式

批处理

联机实时处理批处理

联机实时处理分布处理 批处理

 

 

 

 

数据管理者

文件系统

数据库管理系统

数据面向对象

某个应用程序

某个应用程序

现实世界

数据共享程度

无共享 冗余度大

共享性差 冗余度大

共享性大冗余度小

数据独立性

不独立 完全依赖于程序

独立性差

具有高度的物理独立性和一定的逻辑独立性

数据结构化

无结构

记录内有结构整体无结构

整体结构化,用数据模型描述

数据控制能力

应用程序自己控制

应用程序自己控制

由 DBMS 提供数据安全性、完整性、并发控制和恢复


                   表 4.1 数据管理三个阶段的比较

  目前,数据库技术也与其它信息技术一样在迅速发展中,计算机处理能力的增强和越来越广泛的应用是促进数据库技术发展的主要动力。一般认为,未来的数据库系统应支持数据库管理,对象管理和知识管理,应该具有面向对象的基本特征。在关于数据库的诸多新技术中,下面三种是比较重要的:
   面向对象数据库系统:用面向对象方法构筑面向对象数据模型使其具有比关系数据库系统更为通用的能力;
   知识库系统:用人工智能中的方法特别是用谓词逻辑知识表示方法构筑数据模型,使其模型具有特别通用的能力;
   关系数据库系统的扩充:利用关系数据库作进一步扩展,使其在模型的表达能力与功能上有进一步的加强,如与网络技术相结合的 Web 数据库、数据仓库及嵌入式数据库等

  4.1.3 数据库系统的基本特点

  数据库技术是在文件系统基础上发展产生的,两者都以数据文件的形式组织数据,但由于数据库系统在文件系统之上加入了 DBMS 对数据进行管理,从而使得数据库系统具有以下特点:
  1. 数据的集成性
   数据库系统的数据集成性主要表现在如下几个方面:
   (1)在数据库系统中采用统一的数据结构方式,如在关系数据库中采用二维表作为统一结构方式。
  (2) 在数据库系统中按照多个应用的需要组织全局的统一的数据结构(即数据模式),数据模式不仅可以建立全局的数据结构,还可以建立数据间的语义关系从而构成一个内在紧密联系的数据整体。
  (3) 数据库系统中的数据模式是多个应用共同的、全局的数据结构,而没个应用的数据则是全局数据结构中的一部分,称为局部结构(即视图),这种全局与局部的结构模式构成了数据库系统数据集成性的主要特征。
  2. 数据的高共享性与低冗余性
   由于数据的集成性使得数据可以为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大的减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中的同一数据的不同出现应保持相同的值,而数据不一致性是指同一数据在系统中不同拷贝处有不同的值。因此,减少冗余性以避免数据的不同出现是保证系统一致性的基础。
    3.数据独立性
   数据独立性是数据与程序间的互不依赖性,即数据库中的数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构和存取方式的改变不会影响应用程序。
  数据独立性一般分为物理独立性与逻辑独立性两级。
   (1)物理独立性:物理独立性即是数据的物理结构(包括存储结构、存取方式等)的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不至引起应用程序的变化。
  (2) 逻辑独立性:数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间的关系等,不需要相应修改应用程序,这就是数据的逻辑独立性。
   4.数据统一管理与控制
   数据库系统不仅为数据提供高度集成环境,同时它还为数据提供统一管理的手段,这主要包含以下三个方面:
  (1) 数据的完整性检查:检查数据库中的数据的正确性以保证数据的正确。
   (2) 数据的安全性保护:检查数据访问者以防止非法访问。
  (3) 并发控制:控制多个应用的并发访问所产生的相互干扰以保证其正确性。


  4.1.4 数据库系统的内部结构体系 

  数据库系统在其内部具有三级模式及二级映射,三级模式分别是感念模式,内部级模式与外部级模式,二级映射分别是感念级到内部级的映射以及外部级到感念级的映射。这种三级模式与二级映射构成了数据库系统内部的抽象结构体系,如图 4.3 所示。
           

                       图4.3 三级模式、两级映像关系图
  1.
数据库系统的三级模式
  数据模式是数据库系统中数据结构的一种表示形式,它具有不同的层次与结构方式。
  (1) 概念模式。概念模式( Conceptual Schema )是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。此种描述是一种抽象的描述,它不设计具体的硬件环境与平台,也与具体的软件环境无关。
   概念模式主要描述数据的概念记录类型以及它们间的关系,它还包括一些数据间的语义约束,对它的描述可用 DBMS 中的 DDL 语言定义。
  (2) 外模式。外模式( External Schema )或用户模式( User`s schema )。它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。概念模式给出了系统全局的数据描述而外模式则给出每个用户的局部数据描述。一个概念模式可以有若干个外模式,每个用户只关心与它有关的模式,这样不仅可以屏蔽大量无关信息而且有利于数据保护。在一般的 DBMS 中都提供有相关的外模式描述语言(外模式 DDL )。
  (3) 内模式。内模式( Internal schema )又称物理模式( Physical Schema ) , 它给出了数据库物理存储结构与物理存取方法,如数据存储文件结构、索引、集簇及 hash 等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。内模式对一般用户是透明的,但它的设计直接影响数据库的性能。 DBMS 一般提供相关的内模式描述语言(内模式 DDL )。
   数据模式给出了数据苦的数据框架结构,数据是数据苦中的真正的实体。但这些数据必须按框架所描述的结构组织,以概念模式为框架所组成的数据库叫做概念数据库( Conceptual Database )以外模式为框架所组成的数据库叫做用户数据库( User`s Database ),以内模式为框架所组成的数据库叫做物理数据库( Physical Database )。这三种数据库中只有物理数据库是真实存在于计算机外存中的,其它两种数据库并不存在于计算机中,而是通过两种映射由物理数据库映射而成。
  模式的三个级别层次反映了模式的三个不同环境以及它们的不同要求,其中内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它反映了拥护对数据的要求。

  2.数据库系统的两级映射
   数据库系统的三级模式是数据的三个级别抽象,它把数据的具体物理时间留给物理模式,使用户与全局设计者不必关心数据库的具体实现与物理背景;同时,它通过两级映射建立了模式间的联系与转换,使得概念模式与外模式虽然并不具备物理存在,但是也能通过映射而获得其实体。此外,两级映射也保证了数据库系统中数据的独立性,亦即数据的物理组织改变与逻辑概念级改变相互独立,使得只要调整映射方式而不必改变用户模式。
  (1) 概念模式到内模式的映射。该映射给出了概念模式中数据的全局逻辑结构到数据的物理存储机构间的对应关系,此种映射一般由 DBMS 实现。
   (2) 外模式到概念模式的映射。概念模式是一个全局模式而外模式是用户的局部模式。一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图。外模式到概念模式的映射给出了外模式与概念模式的对应关系,这种映射一般也是由 DBMS 来实现的。

 
                             返回首页                     双击滚屏  关闭窗口
数学与信息科学学院 版权所有