资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章 数据库系统的体系结构,本章主要内容,本章主要讨论数据库系统的三级模式结构、,DBMS、,客户服务器结构、基于,Web,的数据库系统等内容。,(1),DB,的体系结构,三级结构,两级映像,两级数据独立性,体系结构各个层次中记录的联系。,(2),DBMS,DBMS,的工作模式、主要功能和模块组成。,(3),DBS,DBS,的组成,,DBA,DBS,的全局结构,,DBS,结构的分类。,数据库系统的体系结构,3.1 数据库的体系结构,3.2 数据库系统(,DBS),3.3,数据库管理系统(,DBMS),3.4 DBMS,的系统结构,3.5 几种典型结构的,DBMS,本章小结,3.1,数据库的体系结构,3.1.1 三级模式结构,3.1.2 两级映像和两级数据独立性,3.1.3 数据库的抽象层次,3.1.4 数据模式与数据模型的关系,3.1.,1,三级模式结构,用户,A,1,用户,A,2,用户,B,1,用户,B,2,用户,N,1,用户,N,i,外部模式,A,外部模式,B,外部模式,N,概念模式,内部模式,数据库,用户的局部逻辑结构,数据库的整体逻辑结构,数据库的物理结构,外部级,(单个用户的视图),概念级,(全局视图),内部级,(存储视图),1,)概念模式(,Conceptual Schema),定义:概念模式(简称模式,也称逻辑模式)是对数据库全局逻辑结构的描述,是数据库所有用户的公共数据视图。,概念模式描述:,所有实体、实体的属性和实体间的联系。,数据的约束。,数据的语义信息。,安全性和完整性信息。,2),外部模式(,External Schema),定义:外部模式(也称子模式或用户模式)是用户观念下局部数据结构的逻辑描述,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。,设置外部模式有如下优点:,方便用户使用,简化了用户接口。,保证数据的独立性。,有利于数据共享。,有利于数据安全和保密。,3),内部模式(,Internal Schema),定义:内部模式(也称存储模式)是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。,定义了所有内部记录类型、索引和文件的组织方式,以及所有数据控制方面的细节。,内部模式与下面的工作相关:,数据和索引的存储空间分配。,用于存储的记录描述(数据项的存储大小)。,记录放置。,数据压缩和数据加密技术。,数据的三级抽象术语,数据模型,用数据定义语言,描述的称呼,DBTG,报告,中的称呼,外部级,外模型,外模式,子模式,概念级,概念模型,概念模式,模式,内部级,内模型,内模式,物理模式,分层抽象的数据库结构,(1)一个数据库的整体逻辑结构和特征的描述(概念结构)是独立于数据库其他层次结构(内外模式)的描述。,(2)一个数据库的内部存储模式依赖于概念模式。存储模式独立于外部模式,也独立于具体的存储设备。,(3)用户逻辑结构(外部模式)是在全局逻辑结构描述的基础上定义的,它独立于内部模式和存储设备。,(4)特定的应用程序是在外模式描述的逻辑结构上编写的,它依赖于特定的外模式。,(5)关系数据库系统中的视图与三模式结构的外模式相对应。,视图增加了用户界面的友好性。用户通过视图看到的只是他所关心的数据,可以减轻用户负担,提高数据独立性和安全性,。,3.1.2,两级映像和两级数据独立性,为了提高数据库系统中的数据独立性,数据库系统在这三级模式间提供了两层映像:外部模式概念模式映像和概念模式内部模式映像。,所谓映像是一种对应规则,它指出了映像双方是如何进行转换的。,外部模式,A,外部模式,B,外部模式,N,概念模式,内部模式,逻辑数据独立性,物理数据独立性,外部模式/概念模式映像,概念模式/内部模式映像,1),两级映像,(1)外部模式概念模式映像,外部模式概念模式映像定义了各个外部模式与概念模式间的映像关系。,这些映像定义通常在各自的外部模式中加以描述。,(2)概念模式内部模式映像,概念模式内部模式映像定义了数据库全局逻辑结构与存储结构之间的对应关系。,这个映像定义通常内部模式中加以描述。,2),两级数据独立性,定义:数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。,数据独立性又分为:,(,1,)逻辑数据独立性,逻辑数据独立性指的是外部模式不受概念模式变化的影响。,(,2,)物理数据独立性,物理数据独立性指的是概念模式不受内部模式变化的影响。,数据逻辑独立性与数据物理独立性统称为数据独立性。,数据库的三级体系结构,3.1.3,数据库的抽象层次,1)物理数据库,以内部模式为框架的数据库称为物理数据库。,它是数据库中最里面的一个层次,是物理存储设备上实际存储着的数据集合。,2)概念数据库,以概念模式为框架的数据库称为概念数据库。,它是数据库结构中的一个中间层次,是数据库的整体逻辑表示,它描述了每一个数据的逻辑定义及数据间的逻辑联系。,3)逻辑数据库,以外部模式为框架的数据库称为逻辑数据库。,它是数据库结构的最外一层,是用户所看到和使用的数据库,因而也称为用户数据库或用户视图。,3.1.4,数据模式与数据模型的关系,数据模式与数据模型有着密切联系,通常概念模式和子模式是建立在一定的逻辑数据模型(如层次模型、网状模型、关系模型等)上。,另一方面数据模式与数据模型在概念上是有区别的,数据模式是一个数据库的基于特定数据模型的结构定义,它是数据模型中有关数据结构及其相互关系的描述,所以仅是数据模型的一部分。,由于数据模式在数据库设计中的重要性,因此将它作为一个专门术语提出。,3.2,数据库系统,(,DBS),3.2.1,DBS,的组成,3.2.2,DBS,的全局结构,3.2.3,DBS,结构的分类,3.2.1,DBS,的组成,DBS,由数据库、数据库管理系统、应用开发工具软件和应用程序、数据库的软硬件支撑环境、数据库管理员等部分构成。,1)数据库(,DB),一是应用数据的集合,称为物理数据库,它是数据库的主体。,二是各级数据结构的描述,称为描述数据库。它们是存放在数据字典(,Data Dictionary),中各级模式的描述信息。,关系数据库的数据字典主要包括对基表、视图的定义以及存取路径(索引、散列等)、访问权限和用于查询优化的统计数据等的描述。,数据字典,(1)表示数据库文件的文件,每条记录对应一个数据库文件定义,记录了文件的名字、键属性名、文件类型等。,(2)表示数据库中属性的文件,每条记录对应一个属性定义,指出该属性所在文件的文件名、数据类型、长度及取值范围、是否可为空值等。,(3)视图定义文件,每条记录对应一个视图定义,有视图名、定义语句等元属性。,(4)同义词文件,每条记录对应一个同义词定义,指出所代表的一个数据库文件。,(5)授权关系文件,每条记录对应一个数据库文件的一次授权关系定义,含有授权种类(读、写等)、授权人和被授权人等元属性。,(6)索引关系文件,每条记录对应一个索引定义,记录索引对象、性质等。,2)硬件,这一部分主要包括,CPU、,内存、外存、输入输出设备等硬件设备。,3)软件系统,(1)数据库管理系统(,DBMS),(2),支持,DBMS,运行的操作系统(,OS),(3),具有与数据库接口的高级语言及其编译系统,(4)以,DBMS,为核心的应用开发工具软件,(5)为某种应用环境开发的数据库应用程序,4,)数据库管理员(简称,DBA),DBA,是一个组织中负责整个数据库系统的建立、管理、维护、协调工作的专门人员,。,一个高水平的,DBA,小组通常由操作专家、系统分析和设计专家、应用专家、数据库管理专家、查询语言专家和数据库审计专家等组成。,DBA,的主要职责有:,参与数据库系统的设计与建立。,对系统的运行实行监控。,定义数据的安全性要求和完整性约束条件。,负责数据库性能的改进和数据库的重组及重构工作。,3.2.2,DBS,的全局结构,终端用户 应用程序员 专业用户,DBA,应用界面,应用程序,查询,数据库模式,数据库管理系统(,DBMS),用户,界面,磁盘存储器,查询处理器存储管理器,索引,统计数据,数据文件,日志,数据字典,程序目标,代码,嵌入式,DML,预编译器,DML,编译器,DDL,编译器,查询运行,核心程序,缓冲区,管理器,事务,管理器,权限和完整性,管理器,文件,管理器,3.2.3,DBS,结构的分类,1),集中式,DBS,2),客户机服务器式,DBS,3),分布式,DBS,4),并行式,DBS(Parallel DBS),1,)集中式,DBS,如果,DBS,运行在单个计算机系统中,并与其他的计算机系统没有联系,这种,DBS,称为集中式,DBS。,磁盘控制器,CPU,打印机控制器,磁带机控制器,磁盘(,DB),磁带机,打印机,内存控制器,内存,系统总线,2,)客户机服务器式,DBS,C/S,结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。,3,)分布式,DBS,分布式,DBS(Distributed DBS,,简记为,DDBS),是一个用通信网络连接起来的场地(,Site,也称为节点)的集合,每个场地都可以拥有集中式,DBS,的计算机系统。,DDBS,的数据具有“分布性”特点,数据在物理上分布在各个场地。这是,DDBS,与集中式,DBS,的最大区别。,DDBS,的数据具有“逻辑整体性”特点,分布在各地的数据逻辑上是一个整体,用户使用起来如同一个集中式,DBS。,这是,DDBS,与非分布式,DBS,的主要区别。,物理上分布,逻辑上集中,4,)并行式,DBS(Parallel DBS),现在数据库的数据量急剧提高,巨型数据库的容量已达到“太拉”级(1太拉为10,12,,记作,T),,此时要求事务处理速度极快,每秒达数千个事务才能胜任系统运行。集中式和,C/S,式,DBS,都不能应付这种环境。并行计算机系统能解决这个问题。,并行系统使用多个,CPU,和多个磁盘进行并行操作,提高数据处理和,I/O,速度。,并行处理时,许多操作同时进行,而不是采用分时的方法。,在大规模并行系统中,,CPU,不是几个,而是数千个。即使在商用并行系统中,,CPU,也可达数百个。,3.3,数据库管理系统,(,DBMS),3.3.1,DBMS,的工作模式,应用程序,DBMS,DB,数据请求,数据(处理结果),低层指令,数据(查询结果),DBMS,的工作模式如下:,(1)接受应用程序的数据请求和处理请求。,(2)将用户的数据请求转换成复杂的机器代码。,(3)实现对数据库的操作。,(4)从对数据库的操作中接受查询结果。,(5)对查询结果进行处理(格式转换)。,(6)将处理结果返回给用户。,用户访问数据库的示意图,用户对数据库进行操作,是由,DBMS,把操作从应用程序带到外部级、概念级,再导向内部级,进而通过,OS,操纵存储器中的数据。同时,,DBMS,为应用程序在内存开辟一个,DB,的系统缓冲区,用于数据的传输和格式的转换。而三级结构定义存放在数据字典中。,应用程序,DBMS,DB,DB,的系统缓冲区,OS,外模式,模式,内模式,数据字典,3.3.2,DBMS,的主要功能,1)数据库定义,外部模式、概念模式、内部模式及模式间映像的定义,数据库完整性定义,安全性定义,存取路径等的定义。,2)数据库管理功能,实现数据库的控制功能,控制数据库的操作,3)数据库的建立和维护功能,数据库的建立功能,数据库的维护功能,数据库的恢复功能,4)数据组织、存储和管理功能,5)通信功能,3.4,DBMS,的系统结构,3.4.1,DBMS,的进程结构和多线索结构,1)一个应用进程对应一个,DBMS,核心进程,当每个应用进程访问数据库时需要创建一个,DBMS,核心进程,并在完成应用进程所委托的访问数据库任务后撤销该核心进程。,应用程序代码,DBMS,核心(函数),SQL,语句,运行结果,多个,DBMS,核心进程在操作系统调度下并发地执行,从而实现多个事务的并发执行。,这种方式实现较容易,但存在如下缺点:,进程的创建、撤销、通信和切换的开销较大;,随着并发执行事务的增加,进程数目也相应增加,当需求的内存等资源受到限制时,其性能会下降。,不利于事务共享内存空间。,2,)多线索单进程,DBMS,结构,在基于单进程多线索结构的,DBMS,中,系统只创建一个,DBMS,进程。在,DBMS,进程中,有常驻的公共服务线索和根据用户的需求而创建的非常驻用户线索。,DBMS,的各个线索能在逻辑上并行执行,它们共存于一个进程中,共享,DBMS,的资源。,这种多线索机制可以减少每个用户需要的系统资源,从而可以增加并发执行的用户数,提高系统的运行效率。,采用多线索单进程结构的,DBMS,具有占用资源少,线索调度灵活,线索切换开销小、线索间通信简便等特点。因而这种,DBMS,具有运行效率高、消耗系统资源少等优点。,数据目录,锁表,缓冲,Daemon,DBMS,进程,应用进程1,DBMS,核心线程1,pipe/socket,SQL,语句,查询结果,pipe/socket,应用进程2,DBMS,核心线程2,SQL,语句,查询结果,pipe/socket,应用进程,n,DBMS,核心线程,n,SQL,语句,查询结果,3.4.2,DBMS,的组成,系统控制程序,授权检查程序,并发控制程序,数据存取控制程序,数据存储管理程序,完整性控制程序,通信控制程序,DML,翻译程序,DML,处理程序,终端查询语言解释程序,DB,控制语言解释程序,定义公用程序,维护公用程序,系统运行,控制程序,数据库管理系统(,DBMS),语言翻译,处理程序,公用程序,模式定义公用程序,子模式定义公用程序,保密定义公用程序,信息格式定义公用程序,装入程序,DB,重构公用程序,DB,恢复公用程序,统计分析公用程序,信息格式维护公用程序,工作日志公用程序,转储、编辑、打印公用程序,3.4.3,DBMS,的层次结构,DBMS,应用层,语言翻译处理层,数据存取层,数据存储层,操作系统(,OS),数据库(,DB),几种典型结构的,DBMS,3.5.1 Client/Server,结构的,DBMS,1),Client/Server,结构的,DBMS,的功能划分,(1)方案一:,基本的,C/S,体系结构。,该方案的应用处理(包括实现用户界面等)由,Client,完成,数据访问和事务管理由,Server,完成。,(2)方案二:,是在,Server,上主要执行一些底层的操作,如封锁、页面读写,而由,Client,来完成查询优化和查询处理。,(3)方案三:,是每个,Client,通过对查询数据进行缓存建立其局部数据库,且在,Client,端都有一个功能完善的,DBMS,,它与,Server,上,DBMS,协同工作完成对数据库的访问。,2)数据存取的工作过程,1),Client,端,在,Client,端包括:应用处理逻辑、显示和数据表示及用户交互界面等部分。,2),Server,端,在,Server,端包括:数据存取管理、完整性控制及并发控制等部分。,服务器提供查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等服务。,用户,数据库,客户应用,API,连接软件,网络协议,数据库服务器软件,连接软件,网络协议,操作系统,网络,客户机,服务器,数据存取的工作过程,3),Client/Server,结构中数据库服务器的优点,与网络文件服务器相比,数据库服务器的优点如下:,(1)提高了应用开发生产率,由于数据库服务器具有数据管理任务,客户机上的应用程序无须编写这些数据管理程序,减少了软件开发量,提高了应用开发效率,。,(2)数据库服务器提供可靠的数据安全性,用户在授权范围内使用数据库服务器和数据库中的数据。,(3)数据库服务器提供了有效的方法保证数据库的可靠性,(4)数据库服务器能充分利用计算机资源,降低网络开销、提供查询优化机制和并发控制功能,从而提高了整个系统的性能。,(5)数据库服务器把分布处理和集中控制结合在一起,便于系统扩充。,4,),三层,Client/Server,结构,客户端,数据库,数据服务器,(服务器层),实施企业规则的,中间层,用户使用的,前台应用程序(客户层),3.5.2 基于,Web,的数据库系统,1)基于,Web,的数据库系统的体系结构,(1)在,Web,服务器端提供中间件来连接,Web,服务器和数据库服务器,客户端,浏览器,Internet,Web,服务器,中间件,数据库,服务器,(2)将应用程序下载到客户端,并在客户端直接访问数据库,Internet,数据库,服务器,客户浏览器,客户端应用,Java Applet,ActiveX,Java Applet,Java Applet,可嵌入在,WWW,的页面中,作为页面的组成部分被下载,并能在,Web,浏览器中运行。,ActiveX,ActiveX,是,Microsoft,提出的一种标准,主要包括控件、文档、脚本以及与集成数据库有关的,ASP,技术和嵌入,ASP,的,ADO,组件。,2),CGI,和,API,技术,(1)公共网关接口,CGI,CGI,是,Web,技术中最重要的技术之一。,它是外部应用程序(,CGI,程序)与,Web,服务器之间的接口标准和信息传递的规范,利用,CGI,程序可以从数据库中检索数据,实时地产生动态,HTML,文件,并能根据用户的需求输出动态信息。,CGI,的主要优点:,简单和语言无关性,但它也存在一些局限性:,由于客户机和数据库服务器之间的通信是通过,Web,服务器实现的,当有大量的用户同时访问时,Web,服务器会产生瓶颈问题。,CGI,应用程序不能由多个用户同时请求共享,运行效率较低。,CGI,应用程序缺乏持久性,服务器必须为每次访问,CGI,程序建立新的进程或线程,且数据库连接也必须重新建立,增加了系统的开销。,(2)应用编程接口,API,API,是驻留在,Web,服务器中的程序代码,每次调用时在内存中运行相应的程序段,而不是像,CGI,那样需要重新启动新的进程,因而其运行效率高于,CGI,。,目前主要的,Web API:,Microsoft,公司的,ISAPI(Internet Server API),Netscape,公司的,NSAPI(Netscape Server API),Microsoft,公司的,ISAPI,ISAPI,是微软提供的一套面向,Internet,服务的,API,接口,它能实现,CGI,提供的全部功能,并进行了功能扩展。,同时微软还提供一个,Internet,数据库连接器的,IDC(Internet Database Connector),,可用来实现对数据库的查询和更新。,Web,浏览器,Web,服务器,IIS,HttpODBC,.,dll,ODBC,SQL Server,Other,Driver,Driver,DB,SQL Server,Other DBMS,DB,Netscape,公司的,NSAPI,为便于开发,Netscape,提供了基于,API,的编程接口,Livewire。Livewire,是一个软件包,主要包括以下几个软件:,浏览器,Netscape,Navagator,Gold;,网点管理器,LiveWire,Site Manager;,Java Script,编译器,Java Script Compiler;,数据库访问函数库,LiveWire,Database Connectivity Library;,数据库服务器(,Informix,等);,报表制作工具等。,3),ODBC,技术,采用,API,的应用编程技术,ODBC,的体系结构,网络环境下基于单层驱动程序的,ODBC,结构,基于多层驱动程序的,ODBC,结构(二层),基于网关机制的多层驱动程序的,ODBC,结构(三层结构),4),JDBC,技术,JDBC,是执行,SQL,语句的,Java API。JDBC,是“,Java,DataBase,Connectivity”(JDBC,数据库连接)的缩写。,JDBC,原来是,Java Soft,公司设计的,Java,语言的数据库访问,API。,最初的,Java,语言本身并没有访问,DB,的能力,,JDBC,是第一个支持,Java,语言的标准的数据库,API。1996,年夏天,,Sun,公司推出了,JDBC,工具。现在,JDBC,驱动程序已经被大多数主流数据库所用。,JDBC,由一组用,Java,语言编写的类与接口组成。,JDBC,扩充了,Java,的应用范围,用,Java,与,JDBC API,可以发布一种包含远程数据库信息的,Applet(,小应用程序)的,WWW,页面。,JDBC,的基本功能,建立与数据库的连接,发送,SQL,语句,处理结果,JDBC,与,CGI,的比较,JDBC,数据库设计方法,本章小结,数据库的体系结构是对数据的三个抽象级别。它把数据的具体组织留给,DBMS,去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。由于三级结构之间往往差别很大,存在着两级映象,因此使,DBS,具有较高的数据独立性:物理数据独立性和逻辑数据独立性。,数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。,DBS,的全局结构体现了,DBS,的模块功能结构。,数据库系统的体系结构,用户,A,1,用户,A,2,用户,B,1,用户,B,2,用户,N,1,用户,N,i,外部模式,A,外部模式,B,外部模式,N,概念模式,内部模式,数据库,用户的局部逻辑结构,数据库的整体逻辑结构,数据库的物理结构,外部级,(单个用户的视图),概念级,(全局视图),内部级,(存储视图),逻辑数据独立性,物理数据独立性,外部模式/概念模式映像,概念模式/内部模式映像,
展开阅读全文