第一章 数据库概述

上传人:fgh****35 文档编号:170019989 上传时间:2022-11-18 格式:DOC 页数:18 大小:416.50KB
返回 下载 相关 举报
第一章 数据库概述_第1页
第1页 / 共18页
第一章 数据库概述_第2页
第2页 / 共18页
第一章 数据库概述_第3页
第3页 / 共18页
点击查看更多>>
资源描述
第一章 数据库概述数据是企业最重要的资源之一。长期以来,企业一直在寻求更有效的数据管理技术和方法来处理和管理企业数据,以最大程度的发挥数据的价值。随着计算机技术的发展及应用的普及,数据处理在计算机应用中所占比例越来越大。所谓数据处理是指对各种形式的数据进行收集、组织、加工、储存、检索和传播的一系列活动的总和。数据管理是数据处理的中心环节,而数据库是数据管理的最新技术。因此,数据库技术成为企业应用的一门重要技术,数据库课程成为计算机、信息及管理类专业的核心课程。本章主要介绍以下内容: 数据库的产生与发展 数据库系统的组成 数据库系统结构 数据库设计概述第一节 数据库的产生与发展一、数据管理技术的发展数据管理是指对数据的组织、存储、检索和维护。组织和存储数据,即将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期地被保存。数据维护,即根据需要增加新数据、修改原数据和删除失效数据。数据检索即数据查询功能,指查询出需要的数据,满足各种使用要求。数据管理主要关注的是采用何种技术与手段来组织和管理数据,才能够尽可能提高数据独立性、降低数据的冗余度、提高数据共享性、提高数据的安全性和完整性、提高数据检索和维护的效率等等,使得使用者能有效地使用和管理数据资源。数据管理技术的水平是和计算机软、硬件的发展相适应的,是随着计算机技术的发展而发展的。数据管理技术经历了人工管理、文件系统、数据库系统三个阶段,每个阶段的发展都以不断降低数据存储冗余、提高数据独立性、数据操作更加方便为目标。1人工管理阶段20世纪50年代以前,计算机主要用于数值计算。从当时的硬件看,外存只有纸带、卡片、磁带,没有直接存取设备;从软件看(实际上,当时还未形成软件的整体概念),没有操作系统以及专门管理数据的软件。图1-1给出了数据的人工管理示意图。人工管理阶段数据管理的特点是: 数据不保存在计算机内,计算机主要用于计算,一般不长期保存数据。 没有专用的软件对数据进行管理,每个应用程序都要包括存储结构、存取方法和输入输出方式等内容。 只有程序的概念,没有文件的概念;数据的组织方式必须有由程序员自行设计与安排。 数据面向程序,即一组数据对应一个程序。即使两个程序用到相同的数据,也必须各自定义、各自组织,数据依赖于特定的应用程序,缺乏独立性,数据无法共享、无法相互利用和相互参照,从而导致程序和数据之间有大量重复的数据。学生处学生管理程序教务处教务管理程序人事处人事管理程序学生信息数据集课程信息数据集教师信息数据集图1-1 人工管理阶段应用程序和数据的关系2文件系统阶段在20世纪50年代后期到60年代中期,硬件方面已有了磁盘、磁鼓等直接存取存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统。 文件系统把数据组织成相互独立的数据文件,用户可以对文件进行增、删、改的操作。文件系统实现了记录内的结构性,但整体无结构。程序和数据之间由文件系统提供存取方法来转换,从而使应用程序与数据之间有了一定的独立性。数据面向特定的应用程序,不同程序使用的数据文件格式可能互不通用,因此数据共享性、独立性仍然较差,且数据冗余度大,管理和维护的代价也很大。图1-2给出了数据的文件系统管理示意图。学生处学生管理程序教务处教务管理程序人事处人事管理程序学生数据文件课程数据文件教师数据文件文件 系统图1-2 文件系统阶段应用程序和数据的关系3数据库系统阶段20世纪60年代后期,计算机性能得到提高,出现了大容量磁盘。在此基础上,出现了数据库这样的数据组织和存储的技术。利用数据库组织存放和管理数据,数据不再只针对某一特定应用,而是面向全组织,具有整体的结构性,共享性高,冗余度小,具有一定的程序与数据间的独立性,由数据库管理系统这一特定的数据管理软件实现了对数据的统一管理和控制。从文件系统到数据库系统,标志着数据管理技术质的飞跃。数据库系统阶段的数据管理方式如图1-3所示。数据库管理系统数据库学生处学生管理程序教务处教务管理程序人事处人事管理程序图1-3 数据库系统阶段应用程序和数据的关系上述三种数据管理技术的特点比较见表1-1。表1-1 三种数据管理技术的比较人工管理文件系统数据库系统背景应用背景科学计算科学计算、管理大规模管理硬件背景无直接存取存储设备磁盘、磁鼓大容量磁盘 软件背景没有操作系统有文件系统有数据库管理系统处理方式批处理联机实时处理、批处理联机实时处理、分布处理、批处理 特点数据的管理者人文件系统数据库管理系统数据面向的对象某一应用程序某一应用程序整个应用系统数据的共享程度无共享,冗余度极大共享性差,冗余度大共享性高,冗余度小数据的独立性不独立,完全依赖于程序独立性差具有高度的物理独立性和一定的逻辑独立性数据的结构化无结构记录内有结构,整体无结构整体结构化,用数据模型描述数据控制能力应用程序自己控制应用程序自己控制由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力二、数据库的特点数据库作为现代数据管理的主要方法,具有如下特点:1数据结构化数据库采用数据模型表示复杂的数据结构,整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。2数据的共享性高、冗余度低、易扩充数据库不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以减少数据冗余,节约存储空间,数据共享还能够避免数据之间的不相容性与不一致性,同时还易于扩充。3数据独立性高数据独立性是指数据独立于使用数据的程序。数据独立性包括物理独立性和逻辑独立性两个方面。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据的物理结构是相互独立的。数据在磁盘上的数据库中怎样存储是由数据库管理系统管理的,应用程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储结构改变时,应用程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,应用程序也可以不变。当然,目前数据的逻辑独立性是有限的,还难以实现完全的逻辑独立性。数据独立性是由数据库管理系统的二级映像功能来保证的。4数据由数据库管理系统统一管理和控制在数据库的数据管理方式下,应用程序不能直接存取数据,必须通过数据库管理系统这个中间接口才能访问数据,因此,数据库中的数据是由数据库管理系统统一管理和控制的。数据库管理系统必须提供以下几方面的数据控制功能:(1)数据的安全性(Security)保护:指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定,对某些数据以某些方式进行访问和处理。(2)数据的完整性(Integrity)检查:指数据的正确性、有效性和相容性。即将数据控制在有效的范围内,或要求数据之间满足一定的关系。 正确性:如输入成绩时,应该输入数值,而实际输入了字符,即不正确。 有效性:如输入年龄时,应该输入0-150之间的数据,而实际输入了-5,即无效。 相容性:如输入饲料配比百分比时,应该5种原料百分比之和加起来为100,而实际输入数据加起来大于100,即不相容。(3)并发(Concurrency)控制:指控制多个用户同时存取、修改数据库中的数据,以保证数据库的完整性。如:多个用户可以同时读,但同一时间只能允许一个用户写数据。(4)数据库恢复(Recovery):指将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能。计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏均会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。三、数据库技术的发展数据库技术最初产生于20世纪60年代中期,特别是到了20世纪60年代后期,随着计算机管理数据的规模越来越大,应用越来越广泛,数据库技术也在不断地发展和提高,先后经历了第一代的网状、层次数据库系统;第二代的关系数据库系统;第三代的以面向对象模型为主要特征的数据库系统。1第一代数据库系统:层次、网状数据库系统第一代数据库系统是20世纪70年代研制的层次和网状数据库系统。层次数据库系统采用层次数据模型组织数据,1969年,IBM公司研制了基于层次模型的数据库管理系统IMS(Information Management System),成为层次数据库系统的典型代表。美国数据系统语言协会CODASYL(Conference On Data System Language)下属的数据库任务组DBTG(DataBase Task Group)对网状数据库方法进行了系统的研究、探讨,于20世纪60年代末到70年代初提出了若干报告,称为DBTG报告。DBTG报告确定并建立了网状数据库系统的许多概念、方法和技术。DBTG所提供的方法是基于网状数据模型的,采用网状数据模型组织数据的数据库系统称为网状数据库系统。2第二代数据库系统:关系数据库系统第二代数据库系统是采用关系数据模型组织数据的关系数据库系统。1970年IBM公司San Jose研究员E.F.Codd发表了题为“大型共享数据库数据的关系模型”的论文,提出了关系数据模型,开创了关系数据库方法和关系数据库理论,为关系数据库技术奠定了理论基础。20世纪70年代是关系数据库理论研究和原型系统开发的时代。关系数据库系统的研究取得了一系列的成果,主要包括以下几个方面:(1)奠定了关系模型的理论基础,给出了被人们普遍接受的关系模型的规范说明。(2)提出了关系数据语言,如关系代数、关系演算、SQL(Structured Query Language)语言、QBE(Query By Example)等等。这些描述性语言一改以往程序设计语言和网状、层次数据库语言的面向过程的风格,以其易学易懂的优点得到了最终用户的欢迎,为20世纪80年代数据库语言标准化打下了基础。(3)研制了大量的关系数据库系统原型,攻克了系统实现中查询优化、并发控制、故障恢复等一系列关键技术。不仅大大丰富了数据库管理系统实现技术和数据库理论,更重要的是促进了关系数据库系统产品的蓬勃发展和广泛应用。由于关系数据库系统所管理的数据逻辑结构简单,数据本身以二维表的形式进行存储,使用方便、易于理解,因此得到广泛的应用。本书主要介绍关系数据库系统的原理及其应用。3. 第三代数据库系统:面向对象数据库及对象关系数据库系统第三代数据库产生于80年代,随着科学技术的不断进步,不同领域的数据库应用提出了更多新的数据管理的需求,关系型数据库已经不能完全满足需求,于是数据库技术的研究和发展进入了新时代。其主要特点是:在保持和继承了第二代关系数据库技术的同时,将面向对象的思想、方法、技术和面向对象数据模型引入数据库。在面向对象技术和数据库技术相结合的过程中,基本上是沿着两种途径发展的:一种实现途径是建立纯粹的面向对象数据库管理系统,这种途径往往是以一种面向对象语言为基础,增加数据库的功能,主要是支持持久对象和实现数据共享。面向对象的数据库不仅在处理多媒体等数据类型时可以做到游刃有余,而且在应用系统开发速度和维护等方面有着极大的优越性。但是,这种纯粹的面向对象数据库系统并不支持SQL语言,在通用性方面失去了优势,因而其应用领域受到了很大的局限。第二种实现途径是从传统的关系数据库加以扩展,增加面向对象的特性,把面向对象技术与关系数据库相结合,建立对象关系数据库管理系统。这种系统既支持传统关系数据库广泛使用的结构化查询语言SQL,具有良好的通用性,又具有面向对象特性,是对象技术和传统关系数据库技术的最佳融合。第二节 数据库系统的组成数据库系统(DataBase System,简称DBS),有时也称为数据库应用系统,通常是指带有数据库的计算机应用系统。本节首先介绍数据库与数据库管理系统,然后给出数据库系统的组成。一、数据库所谓数据库(DataBase,简称DB),通俗地讲就是存放数据的仓库。但对数据在“仓库”(实际上就是计算机的存储设备)中的组织方式、存储格式等都有一定的要求。因此,数据库可以定义如下:数据库是指长期储存在计算机内的、有组织的、可共享的相关数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为多个用户共享。二、数据库管理系统数据库管理系统(DataBase Management System,简称DBMS)是用于建立、使用和维护数据库的专用系统软件,对数据库实现统一管理和控制。数据库管理系统是用户或应用程序与数据库的中间接口,用户或用户应用程序不能直接存取数据库中的数据,而要通过数据库管理系统间接存取数据库中的数据,这样能够最大程度保证数据的独立性、安全性和可靠性。应用程序、数据库管理系统、数据库间的关系如图1-4所示。结果数据结果数据低层指令数据请求应用程序DBMS数据库图1-4 应用程序、数据库管理系统、数据库间的关系数据库管理系统的主要功能包括:1数据定义功能DBMS提供数据定义语言DDL(Data Definition Language),对数据库中的数据对象进行定义。包括数据库、表、视图、索引、触发器、存储过程等。当前,绝大多数关系数据库管理系统都支持的数据定义语言是结构化查询语言SQL中的DDL指令,如CREATE、ALTER、DROP等指令,这些指令用于创建、修改、删除数据库中的各种数据对象。2数据操纵功能DBMS提供数据操纵语言DML(Data Manipulation Language),实现对数据库的基本操作,如查询、插入、删除、修改等。当前,绝大多数关系数据库管理系统都支持的数据定义语言是SQL中的DML指令,如SELECT、UPDATE、INSERT、DELETE等指令,这些指令用于查询、修改、增加、删除数据库中的各种数据。3数据库运行管理这是DBMS的核心功能,它包括并发控制,安全性检查,完整性约束条件的检查和执行,数据库的内部维护(如索引、数据字典的自动维护)等。 4数据库的建立和维护功能数据库的建立包括数据库创建、初始数据的输入、转换等功能。数据库维护包括数据库的转储与恢复功能,数据库的重组织功能、性能监视、分析功能等。数据库管理系统根据其支持的数据模型的不同可以分为层次数据库管理系统、网状数据库管理系统、关系数据库管理系统、面向对象数据库管理系统等,当前主流的数据库管理系统是关系数据库管理系统。数据库管理系统可以分为大中型数据库管理系统(如:Oracle、SQL Server、Sybase、DB2等)和小型数据库管理系统(如:Access、Foxpro等)两大类。三、数据库系统的组成数据库系统主要由数据库、计算机硬件、软件、数据库系统相关人员四部分组成。其中计算机硬件包括计算机及其外围设备、网络硬件设备等;软件包括操作系统、DBMS、应用开发工具和数据库应用程序等;数据库系统相关人员包括数据库管理员、应用程序员、最终用户。其中,数据库管理员(DataBase Administrator,简称DBA)是负责数据库的建立、使用和维护的专门人员。应用程序员负责设计编写数据库应用程序模块。最终用户是使用数据库应用系统完成自己业务职能的用户,如会计、订单录入员、POS机操作员等。数据库系统的组成及各部分之间的关系如图1-5所示。数据库最终用户数据库应用程序DBMS数据库管理员DBA应用程序员硬 件应用开发工具操作系统图1-5 数据库系统的组成及各部分之间的关系第三节 数据库系统结构可以从内部和外部两个角度考察数据库系统的结构。从内部(即从数据库管理系统内部)角度看,数据库系统通常采用外模式、模式、内模式三级模式结构,三级模式结构是数据库系统的内部结构;从外部(即从数据库最终用户)角度看,数据库系统结构可分为单用户结构、主从式结构、分布式结构、客户/服务器结构,这是数据库系统的外部结构。一、数据库系统内部结构数据库系统的三级模式结构数据库系统的三级模式结构:外模式、模式与内模式,分别代表了三个数据抽象层次,各级模式通过数据库管理系统提供的模式映象功能进行转换。现有的大多数数据库管理系统在总体上都具有三级模式的特征,并提供两级映象功能,只有一些小型数据库管理系统由于资源的限制没有全面采用这种结构。数据库系统的三级模式结构如图1-6所示:图1-7给出了一个数据库系统的三级模式结构实例,可以看出,学生只能看到学生成绩单外模式、而教务处可以看到所有外模式。应用A应用B应用C应用D外模式1外模式2外模式3模式内模式数据库外模式/模式映象模式/内模式映象图1-6 数据库系统的三级模式结构学生成绩单学号字符10姓名字符10课号字符8成绩整型学生总平均成绩学号字符10姓名字符10总平均成绩整型课程平均成绩课号字符8课名字符10平均成绩整型学生学号字符10姓名字符10性别逻辑籍贯字符10课程课号字符8课名字符10学分整型学时整型 学生选课学号字符10课号字符8成绩整型学生数据文件索引文件课程数据文件索引文件学生选课数据文件索引文件外模式模式内模式学生外模式/模式映象模式/内模式映象学生教务处图1-7 数据库系统三级模式实例1模式(Schema)模式也称概念模式、逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。关于模式要理解以下几点:(1)一个数据库只有一个模式;(2)模式是数据库数据在概念级或逻辑级上的视图,模式统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体;(3)数据库模式以某一种数据模型为基础构造;(4)模式是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关;(5)定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。2外模式(External Schema)外模式也称子模式(Subschema)或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。关于外模式要理解以下几点:(1)一个数据库可以有多个外模式;(2) 外模式是模式的子集,是用户视图,一个用户可以使用多个外模式,一个外模式可供多个用户使用;(3) 外模式是保证数据安全性的一个有力措施,每个用户只能访问对应外模式的数据,数据库的其余数据是不可见的。3内模式(Internal Schema)内模式也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等)。一个数据库只有一个内模式,内模式对一般用户是透明的。4数据库的两级映像功能和数据独立性 数据库系统的三级模式是对数据的三级抽象,为了实现三个抽象层次的转换,数据库系统在三级模式中提供了两级映像:外模式/模式映像和模式/内模式映像。所谓映像就是存在某种对应关系。(1)外模式/模式映像。外模式/模式映像是指由模式生成外模式的规则,定义了外模式与模式之间的对应关系。 对每一个外模式,都要定义一个外模式/模式映像,这些映像的定义通常包括在各自外模式的描述中(例如,在关系数据库系统中利用SQL语言定义视图(即外模式)时,必须指明与模式中的表的对应关系)。(2)模式/内模式映像。模式/内模式映像说明了模式在物理设备中的存储结构,定义了数据的逻辑结构和物理结构之间的对应关系。由于数据库中只有一个模式和一个内模式,因此模式/内模式映像是唯一的。(3)三级模式两级映像和数据独立性。三级模式、两级映像的优点是使数据库管理中的数据具有两个层次的独立性:一个是数据物理独立性,模式和内模式之间的映像是数据的全局逻辑结构和数据的存储结构之间的映像,当数据库的存储结构(内模式)发生了改变,如存储数据库的硬件设备发生变化或存储方法变化,可以只修改模式和内模式之间的映像,而数据的逻辑结构(模式)可以保持不变,这就保证了数据的物理独立性。另一个是数据逻辑独立性,外模式和模式之间的映像是数据的局部逻辑结构和数据的全局逻辑结构之间的映像。如因某些原因需要修改模式,如增加模式中的数据项、数据项改名等,可以只修改外模式和模式之间的映像,保持外模式不变,从而应用程序不必修改,这就保证了数据的逻辑独立性(当然,目前还难以完全实现逻辑独立性,有时候,当模式变化后,还必须修改外模式)。数据的独立性是数据库系统最基本的特征之一,它大大减少了应用程序的维护工作量。二、数据库系统外部结构数据库系统的外部结构是从外部角度,即从数据库最终用户的角度观察到的数据库系统体系结构,数据库系统外部结构可分为单用户结构、主从式结构、分布式结构、客户/服务器结构、浏览器/服务器结构等。1单用户数据库系统在单用户结构的数据库系统中,整个数据库系统,包括应用程序、DBMS、数据库,都装在一台个人用计算机上,为一个用户独占,不同机器之间不能共享数据,如图1-8所示。主机数据库终端数据库图1-8 单用户结构数据库系统 图1-9 主从式结构的数据库系统 2主从式结构的数据库系统指一个主机带多个终端的多用户结构。在这种结构中,应用程序、DBMS、数据库,都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。主机通常是功能强大的大型机或小型机,而终端通常只起键盘和显示器的作用,用来为主机输入数据与显示主机的数据处理结果,本身没有数据处理能力,如图1-9所示。主从式结构的数据库系统具有以下特点:(1)方便了系统管理与维护工作。由于数据库和相应软件系统集中存放在主机上,终端上无需安装软件,因此可以实现整个系统的集中管理(在主机端),简化了系统管理与维护工作。(2)数据库可以被各个终端用户共享使用。(3)当终端用户过多时,主机的任务会过分繁重,可能成为瓶颈,从而使系统性能大幅度下降。 (4)当主机出现故障时,整个系统都不能使用,因此系统的可靠性不高。(5)主机的价格通常非常昂贵,一般企业难以承担。3客户/服务器(Client/Server,简称C/S)结构的数据库系统主从式数据库系统中的主机承担了所有计算功能,它既执行DBMS功能又执行应用程序。随着PC机功能的增强和广泛使用,人们开始把DBMS功能和应用分开。将DBMS和数据库安装在网络中的高性能计算机上,专门执行DBMS的功能,这种计算机称为数据库服务器,简称服务器。在网络中其它计算机上安装DBMS的客户端应用程序和开发工具,执行部分应用功能和数据处理,这种计算机称为客户机,由于此类客户机安装了特定的客户端程序,所以又称为“胖客户机”。这就形成了客户/服务器结构的数据库系统,其逻辑结构如图1-10所示。客户/服务器结构具有以下特点:(1)系统的性能、吞吐量和负载能力较高。在客户/服务器结构中,客户端的数据请求被传送到数据库服务器,数据库服务器进行处理后,只将客户端所需结果数据返回给客户端(而不是数据库中所有数据),从而显著减少了网络上的数据传输量,提高了系统的性能、吞吐量和负载能力。(2)客户/服务器结构的数据库系统往往更加开放。有多种不同的硬件和软件平台支持客户/服务器结构,应用开发工具有更多的选择,应用程序具有更强的可移植性,同时也可以减少软件维护开销。(3)当客户机请求过多时,数据库服务器可能形成性能瓶颈。(4)数据库服务器可能出现单点故障,导致整个系统不可用。可以通过双机热备份降低单点故障的概率。(5)需要在客户端安装特定的客户端程序,部署和维护成本高。 图1-10 客户/服务器结构的数据库系统 4. 浏览器/服务器结构的数据库系统随着Internet技术的普及,在传统的客户/服务器结构之外,又发展出一种新的系统架构,即浏览器/服务器(Browser/Server,简称B/S)结构的数据库系统,其最主要的特点是客户机无需安装特定的客户端软件,只需要浏览器就可以。所以,这种客户端被称为“瘦客户机”或“瘦客户端”。B/S结构的数据库系统的逻辑结构如图1-11所示,由客户机、Web服务器、数据库服务器三层构成。在这种结构中,用户开发的系统分成两部分,一部分是数据库,部署在数据库服务器上,另一部分是Web服务器端程序(其形式可能是ASP页、JSP页、PHP页、ASPX页等)或静态HTML页,部署在Web服务器上,置于Web服务器软件的管理之下。Web服务器(实际是Web服务器软件)的作用是接受客户端(这里是浏览器)的http请求,调用Web服务器端程序,这些程序可能会向数据库服务器发出数据请求,获得数据后,可能执行一些业务逻辑,然后将数据以一定的格式动态生成一个html格式的页面(这就是用户界面)返回Web服务器软件,Web服务器软件再将该页面返回给客户端浏览器,供用户查看(当然,如果浏览器客户端只是请求一个静态html页,Web服务器就简单找到该页返回给浏览器,而无需和数据库服务器交互)。图1-11 浏览器/服务器结构的数据库系统浏览器/服务器结构优点是:系统都安装在各种服务器上,客户端是零部署,无需安装客户端软件,系统升级更新也都发生在服务器端,因此,系统安装、升级和维护都集中发生在服务器端,非常方便。浏览器/服务器结构缺点是:首先,其用户界面的响应速度通常不如C/S架构的系统,因为应用程序的大部分逻辑和状态位于服务器上,所以瘦客户端会频繁地向服务器发送处理请求,然后必须等待响应到达,用户才能继续使用该应用程序,这使得应用程序的响应速度通常要比胖客户端应用程序(C/S架构)慢,因此,B/S架构不太适合用户交互很多的情况,不适合需要频繁输入大量数据的情况,也不适合需要在多个窗口频繁导航的情况。其次,B/S架构难以实现一些常用的应用程序功能如拖放、撤消-重复以及上下文相关帮助等,而C/S架构则很容易实现这些功能。 (注:在一些高级应用中,还发展出了多层客户/服务器结构或多层浏览器服务器结构,即在原有结构中,增加了一个应用服务器层,该层集中实现业务逻辑,这样,整个系统负载更加均衡、业务逻辑维护更加方便,读者可以参考相关材料以了解进一步信息。)5分布式结构的数据库系统分布式结构的数据库系统指数据库中的数据在逻辑上是一个整体,但物理上分布在计算机网络的不同结点上。这些结点既可以独立处理本地数据库中的数据,执行局部应用,也可以同时存取和处理多个异地数据库中的数据,执行全局应用,如图1-12所示。分布式结构的数据库系统是计算机网络发展的必然产物,它适应了地理上分散的公司、团体和组织对于数据库应用的需求。分布式结构的数据库系统中数据分布对用户是透明的,用户面对的是一个逻辑上完整的数据库。分布式结构数据库系统的优点:能够简化用户共享和使用远程数据资源(因为用户无需考虑数据的具体地理位置,而只需操作一个逻辑数据库)。分布式结构数据库系统的缺点是:分布式结构数据库系统技术实现复杂,对分布存放的数据进行数据处理、管理与维护非常困难,因此实际应用较少。当用户需要经常访问远程数据时,系统效率会明显地受到网络交通的制约。DB1服务器客户机(微机)DB2DB3一个逻辑DB服务器服务器客户机(微机)图1-12 分布式结构的数据库系统第四节 数据库设计概述 数据库是现代企业信息系统的基础和核心组成部件,数据库设计的好坏直接关系到企业信息系统的质量,关系到系统能否满足企业信息处理需求。科学、合理地设计数据库,能够降低数据冗余、提高数据处理效率、保证数据库结构的相对稳定性,满足企业不断变化的信息需求。而设计不良的数据库会出现不必要的数据冗余、降低数据处理效率、数据库结构不够灵活稳定,当企业信息需求发生变化时,往往需要对数据库结构做大的变化,导致巨大的修改费用。因此,在开发企业信息系统时,必须对系统的数据库设计给予足够的重视,按照科学、规范的方法执行数据库设计任务。一、数据库设计的任务数据库设计的任务是对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统(在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统),使之能够有效地存储数据,满足各种用户的应用需求(信息需求和处理需求)。具体到关系数据库来说,数据库设计任务的核心就是要设计出系统所需数据库表结构、表间联系等内容。二、数据库设计的特点大型数据库的设计和开发是一项庞大的工程,工作量大而且比较复杂,它既是一项数据库工程也是一项软件工程。数据库设计的很多阶段都可以和软件工程的各阶段对应起来, 软件工程的某些方法和工具同样也适合于数据库工程。但数据库设计有它自己的特点。1数据库设计者与应用部门人员的结合数据库设计涉及多学科的综合性技术,包含了计算机专业知识和业务系统的专业知识, 同时还要解决技术及非技术两方面的问题。非技术问题包括组织机构的调整,经营方针的改变,管理体制的变更等等。这就要求数据库设计者一方面需要具备计算机专业知识,另一方面还要熟悉业务系统的专业知识。这对数据库设计者来说是相当困难的,有时甚至无法完成。因此,对于大型数据库的设计,必须有业务人员的密切配合,尤其是要有应用部门领导的支持,才能成功完成数据库的设计任务。2. 数据库结构设计与行为设计的结合现实世界要处理的对象数据分析物理数据库设计概念模型设计逻辑模型设计加载数据库功能分析功能模型功能说明事务设计程序设计调试运行图1-13 结构设计和行为设计分离进行的模型数据库系统的设计包括结构设计与行为设计两方面。结构设计是指数据库的模式结构设计,包括概念结构、逻辑结构和物理结构设计。行为设计是指应用程序设计,包括功能组织、流程控制等方面的设计。在传统的软件工程设计中,比较注重处理过程的设计, 不太注重数据结构的设计。在早期的数据库设计中注重结构特性的设计而忽略了行为设计。应在数据库的整个设计过程中把结构设计与行为设计密切结合起来。图1-13表示了结构设计和行为设计分离进行的模型。三、数据库设计的方法概述为了使数据库设计更科学、更有效,学者们通过努力探索,提出了各种数据库设计方法,这些方法运用工程化的思想,提出了各自的设计准则和过程,在数据库设计领域,产生了广泛的影响。比较有影响的数据库设计方法有:基于3NF(第三范式:Third Normal Form)的数据库设计方法、新奥尔良(New Orleans)设计方法、基于E-R(Entity-Relationship)模型的数据库设计方法等。1. 基于3NF的数据库设计方法基于3NF的数据库设计方法是由SAtre提出的结构化设计方法。设计过程划分为以下几个阶段:(1)设计企业模式。主要包括以下内容: 研究应用环境,收集应用环境中所使用的各种资料。 明确每一种报表里各自包含的数据元素。 明确数据元素之间的关系(如确定主码数据元素和普通数据元素)。 对每一组数据元素推导出第三范式关系。 基于得到的第三范式关系画出数据库企业模式。(2)设计数据库的逻辑模式。根据上面得到的企业模式,选用某种数据模型(关系模型、层次模型、网状模型),得出适应某个DBMS的逻辑模式;根据逻辑模式导出各种报表与事务处理所使用的外模式。(3)设计数据库的物理模式。即根据逻辑模式设计物理模式。 (4)对物理模式进行评价。主要包括以下内容: 对物理模式进行空间估算,并推算输入输出的概率。 根据上述物理模式导出(重画或调整)各种报表与事务处理的外模式。 对外模式进行时间估算。2. 新奥尔良设计方法 新奥尔良设计方法是由30多个欧美国家的数据库专家在美国新奥尔良市专门开会讨论数据库设计问题时提出的,到会者比较一致地认为数据库设计生命期包括下面四个阶段:(1)机构需求分析(分析用户需求)。收集来自用户和不同级别管理者的有关设计数据库的信息或元数据(metadata),取得机构限制和目标方面的资料、信息需求与处理需求。(2)信息分析和定义(建立概念模型)。根据第一阶段取得的机构需求资料,用一般模型表示信息需求与处理需求,分析和综合使用者的视图,推导出一个折中的企业视图,并用高级概念模式(与DBMS无关)加以定义。(3)设计实现(逻辑设计)。选择一种最适宜的DBMS,将一般数据模型与处理模型作为输入,构造出DBMS能接受的模式(逻辑模式)、子模式和程序。实现数据库设计时,要认真考虑完整性、一致性、可恢复性、安全性等问题,选择一种最适合的折中方法。 (4)物理数据库设计(物理设计)。主要包括以下内容: 确定存储结构; 选择查找算法; 查询的优化处理; 系统实现方法(自由空间、存储管理、设备分配、安全性及完整性等)。3. 基于E-R模型的数据库设计方法 E-R方法的基本思想是:首先设计一个企业模式,它是现实世界的反映,而与存储组织、存取方法、效率无关。然后再将企业模式变换为某个DBMS上的数据模式。E-R方法的基本步骤是: 确定实体类型; 确定联系类型; 画出E-R图; 确定属性; 将E-R图转换成某个DBMS可接受的逻辑数据模型; 设计记录格式。 历史上,人们曾经大量通过手工方式执行上述设计方法,如手工画E-R图,当系统很大时,手工设计效率很低。随着计算机软硬件技术的发展,人们开发了各种计算机辅助软件工程(CASE:Computer Aided Software Engineering)工具,利用这些CASE工具能够大大提高数据库设计效率,比较著名的数据设计CASE工具有:ERWin,PowerDesigner等。四、数据库设计的基本步骤数据库设计的过程和基本步骤可以划分为六个阶段,即需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施阶段、数据库运行和维护阶段。各个阶段的关系和主要活动如图1-14所示。1. 需求分析阶段需求分析阶段的主要任务是准确了解与分析用户需求(包括数据需求与处理需求),弄清系统要达到的目标和实现的功能,需求分析的结果要按照一定格式形成需求说明书,供后续阶段使用。需求分析是整个数据库设计的基础,如果不能正确理解和获取用户需求,是不可能设计出满足用户需求的数据库结构的。了解与分析用户需求的主要手段是详细调查现实世界要处理的对象,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方法。进行用户调查的重点是“数据”和“处理”。需求调查的内容主要包括系统的业务现状、信息源流以及外部要求。调查的方法主要有检查用户文档、面谈、观察业务的运行、问卷调查等。通过调查,要从用户那里获得对数据库的下列要求: 信息需求。信息需求指用户需要从数据库中获得信息的内容与性质。即了解要在数据库中存储哪些数据以及数据之间的联系等。 处理需求。处理需求指用户需要系统完成哪些处理功能,对处理的执行频率、响应时间以及处理的方式(比如是联机处理还是批处理),有哪些要求等等。 安全性与完整性要求。安全性要求描述了系统中不同用户使用和操作数据库的情况 , 完整性要求描述了数据之间的关联以及数据的取值范围要求。需求分析阶段使用的主要分析工具包括数据流图、数据字典等,其具体分析方法可以参考软件工程方面的教材。2. 概念结构设计阶段概念结构设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。通常,采用实体联系图(Entity Relationship Diagram,简称E-R图)表达概念模型(详见第二章)。概念模型是独立于DBMS的,这样可以让设计人员集中精力建立概念模型,而不必考虑具体的DBMS的物理特性,降低设计负担。由于概念模型不含DBMS的物理特性,所以也比较易于为用户所理解,使之成为数据库设计人员和用户交流的好工具。需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行、维护不满意需求收集和分析设计概念结构设计逻辑结构数据模型优化设计物理结构评价设计,性能预测物理实现试验性运行使用、维护数据库不满意应用需求(数据需求、处理需求) 转换规则、DBMS要求和优化方法应用要求,DBMS详细特征和限制不满意图1-14 各个阶段的关系和主要活动3. 逻辑结构设计阶段逻辑结构设计是将概念结构转换为某个DBMS所支持的逻辑数据模型,如关系数据模型,并对其进行优化,形成数据库逻辑模式(详见第三章)。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式(详见第四章)。逻辑结构设计是依赖于具体的DBMS的。4. 物理结构设计阶段物理结构设计是为逻辑数据模型设计最适合应用环境的物理结构,包括设计存储结构和存取方法(详见第三章)。5. 数据库实施阶段数据库实施阶段的任务是运用DBMS提供的数据定义和数据操纵语言(如SQL,详见第四章)、各种工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序(详见第五章),组织数据入库,并进行试运行。6. 数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整、修改与完善。设计数据库大致按照上述六个阶段的顺序进行,但后续段的活动往往要回溯到前面的阶段,不断反复,以保证数据库设计的正确性。习 题1. 数据管理技术的发展经过了哪些阶段,各个阶段的特点是什么?2. 什么是数据库?数据库的特点是什么?3. 数据独立性包括哪两个方面,其涵义分别是什么?4. 试述数据库技术的发展历程。5. 什么是数据库系统?数据库系统通常由哪几部分组成?6. 什么是数据库管理系统?其功能有哪些?7. 数据库管理员的主要职责是什么?8. 试述数据库系统的三级模式结构,这种结构的优点是什么?9. 从用户角度看,数据库系统有哪些结构?10. 客户/服务器结构和浏览器/服务器结构的数据库系统优缺点各是什么?11. 数据库设计的任务是什么?12. 有哪几种常用数据库设计方法?13. 试述数据库设计的过程和基本步骤。18
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!