第四章 数据库设计基础Word格式.docx
《第四章 数据库设计基础Word格式.docx》由会员分享,可在线阅读,更多相关《第四章 数据库设计基础Word格式.docx(39页珍藏版)》请在冰豆网上搜索。
在过去的软件系统中是以程序为主体,而数据则以私有形式从属于程序,此时数据在系统中是分散、凌乱的,这也造成了数据管理的混乱,如数据冗余度高,数据一致性差以及数据的安全性差等多种弊病。
近10多年来,数据在软件系统中的地位产生了变化,在数据库系统以及数据库应用系统中数据已占有主体地位,而程序已退居附属地位。
在数据库系统中需要对数据进行集中、统一的管理,以达到数据被多个应用程序共享的目标。
2.数据库
数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。
数据库存放数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构以建立数据间内在联系与复杂的关系,从而构成数据的全局结构模式。
数据库中的数据具有“集成”、“共享”之特点,亦即是数据库集中了各种应用的数据,进行统一的构造与存储,而是他们可以被不同的应用程序所使用。
3.数据库管理系统
数据库管理系统(DatabaseManagementSystem,简称DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
数据库中的数据是具有海量级的数据,并且其结构复杂,因此需要提供管理工具。
数据库管理系统是数据库系统的核心,它主要有以下几个方面的具体功能:
(1)
数据模式定义。
数据库管理系统负责为数据库构建模式,也就是为数据库构建其数据框架。
(2)数据存取的物理构建。
数据库管理系统负责为数据模式的物理存储及构建提供有效的存取方法与手段。
(3)数据操纵。
数据库管理系统为用户使用数据库中的数据提供方便,它一般提供查询、插入、修改、删除数据的功能。
此外,它自身还具有做简单算术运算及统计的能力,而且还可以和某些过程性语言结合,使其具有强大的过程性操作能力。
(4)数据的完整性、安全性定义与检查。
数据库中的数据具有内在语义上的关联性与一致性,他们构成了数据的完整性,数据的完整性是保证数据库中的数据正确的必要条件,因此必须经常检查以维护数据的正确。
数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,因此必须要对数据正确使用作出必要的规定,并在使用时做检查,这就是数据的安全性。
数据完整性与安全性的维护是数据库管理系统的基本功能。
(5)数据库的并发控制与故障恢复。
数据库是一个集成、共享的数据集合体,它能为多个应用程序服务,所以就存在着多个应用程序对数据库的并发操作。
在并发操作中如果不加以控制和管理,多个应用程序间就会相互干扰,从而对数据库中的数据造成破坏。
因此,数据库管理系统必须对多个应用程序的并发执行做必要的控制一保证数据不受破坏,这就是数据库的并发控制。
数据库中的数据一旦遭受破坏,数据库管理系统必须有能力及时进行恢复,这就是数据库的故障恢复。
(6)数据的服务。
数据库管理系统提供对数据的多种服务功能,如数据拷贝、转存、重组、性能检测、分析等。
为完成以上六个功能,数据库管理系统一般提供相应的数据语言(DataLanguage),他们是:
数据定义语言(DataDefinitionLanguage简称DDL)该语言负责数据的模式定义与数据的物理存取构建。
数据操纵语言(DataManipulationLanguage简称DML)该语言负责数据的操纵,包括查询及增、删、改等操作。
数据控制语言(DataControlLanguage简称DCL)该语言负责数据完整性、安全性定义与检查以及并发控制、故障恢复等功能,包括系统初起程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序、数据库恢复程序等。
上述数据语言按其使用方式具有两种结构形式:
交互式命令语言。
它的语言简单,能在终端上即时操作,它又称为自含型或自主型语言。
宿主型语言。
它一般可嵌入某些宿主语言(HostLanguage)中,如C,C++和COBOL等高级过程性语言中。
此外,数据库管理系统还为用户提供服务的服务性(Utility)程序,包括数据初始装入程序、数据转存程序、性能检测程序、数据库再组织程序、数据转换程序、通信程序等。
目前流行的DBMS均为关系数据库系统,比如ORACLE、Sybase的PowerBuilder及IBM的DB2、微软的SQLServer等,他们均为严格意义上的DBMS系统。
另外一些小型的数据库,如微软的VisualFoxpro和Access等,它们只具备数据库管理系统的一些简单功能。
4.数据库管理员
由于数据库的共享性,因此对数据库的规划、设计、维护、监视等需要有专人管理,称他们为数据库管理员(DatabaseAdministrator简称DBA)。
其主要工作如下:
(1)数据库设计(DatabaseDesign)DBA的主要工作之一是做数据库设计,具体的说是进行数据模式的设计。
由于数据库的集成和共享性,因此需要有专门人员(即DBA)对多个应用的数据需求做全面的规划、设计与集成。
(2)数据库维护。
DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转存等进行实施与维护。
(3)改善系统性能,提高系统效率。
DBA必须随时监视数据库运行状态,不断调整内部结构,使系统保持最佳状态与最高效率。
当效率下降时,DBA需采取适当的措施,如进行数据库的重组、重构等。
5.数据库系统
数据库系统(DatabaseSystem简称DBS)由如下几部分组成:
数据库(数据)、数据库管理系统(软件)、数据库管理人员(人员)、系统平台之一-----硬件平台(硬件)、系统平台之二-----软件平台(软件)。
这五个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。
在数据库系统中,硬件平台包括:
计算机:
它是系统中硬件的基础平台,目前常用的有微型机,小型机,中型机,大型机及巨型机。
网络:
过去数据库系统一般建立在单机上,但是近年来它较多的建立在网络上,从目前形势看,数据库系统今后将以建立在网络上为主,而其结构形式又以客户/服务器(C/S)方式与浏览器/服务器(B/S)方式为主。
在数据库系统中,软件平包括:
操作系统:
它是系统的基础软件平台,目前常用的有各种UNIX(包括LINUX)与WINDOWS两种。
数据库系统开发工具:
为开发数据库应用程序所提供的工具,它包括过程性程序设计语言如C,C++等。
也包括可视化开发工具VB、PB、Delphi等,它还包括近期与INTERNET有关的HTML及XML等一些专用开发工具。
接口软件:
在网络环境下数据库系统中数据库与应用程序,数据库与网络间存在着多种接口,他们需要用接口软件进行连接,否则数据库整体就无法运作,这些接口软件包括ODBC、JDBC、OLEDB、CORBA、COM、DCOM等。
6.数据库应用系统(DatabaseApplicationSystem简称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)概念模式。
概念模式(ConceptualSchema)是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。
此种描述是一种抽象的描述,它不设计具体的硬件环境与平台,也与具体的软件环境无关。
概念模式主要描述数据的概念记录类型以及它们间的关系,它还包括一些数据间的语义约束,对它的描述可用DBMS中的DDL语言定义。
(2)外模式。
外模式(ExternalSchema)或用户模式(User`sschema)。
它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。
概念模式给出了系统全局的数据描述而外模式则给出每个用户的局部数据描述。
一个概念模式可以有若干个外模式,每个用户只关心与它有关的模式,这样不仅可以屏蔽大量无关信息而且有利于数据保护。
在一般的DBMS中都提供有相关的外模式描述语言(外模式DDL)。
(3)内模式。
内模式(Internalschema)又称物理模式(PhysicalSchema),它给出了数据库物理存储结构与物理存取方法,如数据存储文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。
内模式对一般用户是透明的,但它的设计直接影响数据库的性能。
DBMS一般提供相关的内模式描述语言(内模式DDL)。
数据模式给出了数据苦的数据框架结构,数据是数据苦中的真正的实体。
但这些数据必须按框架所描述的结构组织,以概念模式为框架所组成的数据库叫做概念数据库(ConceptualDatabase)以外模式为框架所组成的数据库叫做用户数据库(User`sDatabase),以内模式为框架所组成的数据库叫做物理数据库(PhysicalDatabase)。
这三种数据库中只有物理数据库是真实存在于计算机外存中的,其它两种数据库并不存在于计算机中,而是通过两种映射由物理数据库映射而成。
模式的三个级别层次反映了模式的三个不同环境以及它们的不同要求,其中内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它反映了拥护对数据的要求。
2.数据库系统的两级映射
数据库系统的三级模式是数据的三个级别抽象,它把数据的具体物理时间留给物理模式,使用户与全局设计者不必关心数据库的具体实现与物理背景;
同时,它通过两级映射建立了模式间的联系与转换,使得概念模式与外模式虽然并不具备物理存在,但是也能通过映射而获得其实体。
此外,两级映射也保证了数据库系统中数据的独立性,亦即数据的物理组织改变与逻辑概念级改变相互独立,使得只要调整映射方式而不必改变用户模式。
(1)概念模式到内模式的映射。
该映射给出了概念模式中数据的全局逻辑结构到数据的物理存储机构间的对应关系,此种映射一般由DBMS实现。
(2)外模式到概念模式的映射。
概念模式是一个全局模式而外模式是用户的局部模式。
一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图。
外模式到概念模式的映射给出了外模式与概念模式的对应关系,这种映射一般也是由DBMS来实现的。
4.2数据模型
4.2.1数据模型的基本概念
4.2.2E-R模型
4.2.3层次模型
4.2.4网状模型
4.2.5关系模型
4.2.1 数据模型的基本概念
数据库中的数据模型可以将复杂的现实世界要求反映到计算机数据库中的物理世界,这种反映