考试吧

计算机等级

考试吧>等级考试>复习资料>正文
2016年全国计算机四级数据库考试重点(5)
考试吧 2016-02-19 10:04:50 评论(0)条

  九、数据库管理系统的设计与实现

  1.DBMS的目标

  (1)用户界面友好 对一个实用DBMS来说,用户界面的质量直接影响其生命力。DBMS的用户接口应面向应用,采用适合最终用户的交互式、表格式、菜单式、窗口式等界面形式,以方便使用和保持灵活性。一般地说,用户界面应具有可靠性、简单性、灵活性和立即反馈等特性。

  (2)功能完备 DBMS功能随系统的规模的大小而异。大型DBMS功能齐全,小型DBMS功能弱一些。DBMS主要功能包括数据定义、数据库数据存取、事务控制、数据库组织和存储管理、数据库安全保护等等。我们在下面讨论这些功能的内容。

  (3)效率高 系统效率包括三个方面:一是计算机系统内部资源的使用效率。能充分利用资源(包括存储空间、设备、CPU等),并注意使各种资源负载均衡以提高整个系统的效率,二是DBMS本身的运行效率。三是用户的生产率。这是指用户学习、使用DBMS和在DBMS基础上开发的应用系统的效率。

  2.DBMS的基本功能

  (1)数据库定义 对数据库的结构进行描述,包括外模式、模式、内模式的定义;数据库完整性的定义;安全保密定义(如用户口令、级别、存取权限);存取路径(如索引)的定义。这些定义存储在数据字典(亦称为系统目录)中,是DBMS运行的基本依据。为此,提供数据定义语言DDL。

  (2)数据存取 提供用户对数据的操纵功能,实现对数据库数据的检索、插入、修改和删除。一个好的DBMS应该提供功能强易学易用的数据操纵语言(DML)、方便的操作方式和较高的数据存取效率。DML有两类:一类是宿主型语言,一类是自含型语言。前者的语句不能独立使用而必须嵌入某种主语言,如C语言、COBOL语言中使用。而后者可以独立使用,通常以供终端用户交互使用和批处理方式两种形式使用。

  (3)数据库运行管理 这是指DBMS运行控制、管理功能。包括多用户环境下的并发控制、安全性检查和存取权限控制、完整性检查和执行、数据加密、运行日志的组织管理、事务的管理和自动恢复(保证事务的正确性),这些功能保证了数据库系统的正常运行。

  (4)数据组织、存储和管理 DBMS要分门别类地组织、存储各类数据,包括数据字典(亦称系统目录)、用户数据、存取路径等等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法确保较高存取(如随机查找、顺序查找、增、删、改)效率。

  (5)数据库的建立和维护 包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及有性能监测分析等功能。

  (6)其它功能 包括DBMS与网络中其它软件系统的通信功能;一个DBMS与另一个DBMS或文件系统的数据转换功能等。

  3.DBMS与操作系统

  通常DBMS是建立在操作系统环境之上的。根据具体操作系统的特点,DBMS可以用不同的方法利用操作系统的基本功能来实现DBMS。一般有下面3类方法:

  (1)共享模块法

  (2)分离进程法

  (3)和操作系统融合

  4.DBMS程序模块的组成

  作为一个庞大的系统软件,DBMS由众多程序模块组成,它们分别实现DBMS复杂而繁多的功能。数据库定义方面 有DDL翻译处理程序(包括外模式、模式、存储模式处理程序)、保密定义处理程序(如授权定义处理程序)、完整性约束定义处理程序等。这些程序接收相应的定义,进行语法、语义检查,把它们翻译为内部格式存储在数据字典中。DDL翻译程序还根据模式定义负责建立数据库的框架(即形式一个空库),等待装入数据。数据库操纵方面 有DML处理程序、终端查询语言解释程序、数据存取程序、数据更新程序等。DML处理程序或终端查询语言解释程序对用户数据操纵请求进行语法、语义检查、由数据存取或更新程序完成对数据库的存取操作。数据库运行管理方面 有系统初启程序,负责初始化DBMS、建立DBMS的系统缓冲区、系统工作区 打开数据字典等等。还有安全性控制、完整性检查、并发控制、事务管理、运行日志管理等程序模块,在数据库运行过程中监视着对数据库的所有操作,控制管理数据库资源,处理多用户的并发操作等。它们一方面保证用户事务的正常运行,一方面保证数据库的安全性和完整性。数据库组织、存储和管理方面 有文件读写与维护程序、存取路径(如索引)管理程序、缓冲区管理程序(包括缓冲区读、写、淘汰等模块),这些程序负责维护数据库的数据和存取路径,提供有效的存取的方法。数据库建立、维护和其它。有数据库初始数据装入程序、转储程序、恢复程序、数据库重构造程序、数据转换程序、通信程序等。DBMS的这些组成模块互相联系,互相依赖,共同完成DBMS复杂的功能。这些模块之间的联系有一定的层次关系。

  5.DBMS的层次结构

  和操作系统一样,可以也应该将DBMS划分成若干层次。许多DBMS实际上就是分层实现的。最上层是应用层,位于DBMS核心之处。它处理的对象包括各种各样的数据库应用,如用宿主语言编写的应用程序、终端用户通过应用接口(如FORMS)发出的事务请求等。该层是DBMS的最终用户和应用程序的界面层。第二层是语言翻译处理层。它处理的对象是数据库语言,如SQL。提供的数据接口是关系、视图,即元组的集合。其功能是对数据库语言的各类语句进行语法分析、视图转换、授权检查、完整性检查、查询优化等。通过对下层基本模块的调用,生成可执行代码。这些代码的运行,即可完成数据库语句的功能要求。第三层是数据存取层。该层处理的对象是单个元组。它把上层的集合操作转化为单记录操作。执行扫描、排序、元组的查找、插入、修改、删除、封锁等基本操作。完成数据记录的存取、存取路径维护、并发控制、事务管理等工作。第四层是数据存储层。该层处理的对象是数据页和系统缓冲区,执行文件的逻辑打开、关闭、读页、写页、缓冲区读和写、页面淘汰等操作,完成缓冲区管理、内外存交换、外存管理等功能。操作系统是DBMS的基础,它处理的对象是数据文件的物理块。执行物理文件的读写操作,保证DBMS对数据逻辑上的读写真实地映射到物理文件上。操作系统提供的存取原语和基本的存取方法通常作为和DBMS存储层的接口。

  6.语言处理

  语言翻译处理层的任务就是把用户在这两种方式下提交给DBMS的数据库语句转换成对DBMS内层可执行的基本存取模块的调用序列。数据库语言通常包括DDL,DML,DCL三部分语句。DDL语句处理相对独立和简单。DML和DCL则较为复杂。具体来说,对DDL语句,语言翻译处理层首先把它翻译成内部表示,然后把它存储在系统的数据字典中。对DCL语句的定义部分,如安全保密定义、存取权限定义、完整性约束条件定义等处理与DDL相同。在RDBMS中数据字典通常采用和普通数据同样的表示方式。数据字典包括关系定义表、属性表、视图表、视图属性表、视图表达式表、用户表、存取权限表、……。

  (1)解释方法一些数据库系统(如dBASEⅢ)对上述方法进行了改进,通过尽量推迟聚束过程来赢得数据独立性。具体做法是:直到执行前,数据库DML语句都以原始字符串的形式保存。随着数据库系统的发展,这种方法已逐步为预编译技术所取代。

  (2)预编译方法已经看到,将聚束过程提前,固然可达到系统的高效率,但失去了数据库的一个主要优点———数据独立性;将聚束时间推迟,赢得了数据性,却增加了执行高效率的代价。预编译方法就是为了克服它们的缺点,保持两者的优点而提出的。其基本思想是,在用户提供了DML语句后,在运行前对它进行翻译处理,保存产生好的执行代码,运行时加以执行。但是,使用这种方法会遇到这样的问题:在聚束过程中进行优化所依据的条件可能在运行前已不存在,或者数据结构被修改,因而导致已作出的规划在执行时不再有效。例如,假设在聚束过程中决定使用某一索引来加快存取速度,而在程序编译完成之后,运行之前,该索引被删除了。那么,运行时就会出现不可预测的现象。为了解决这类问题,采用了重编译方法。即当数据库中某些成分的改变而使一些程序的编译结果无效时,再对它们执行一次编译。重编译可在不同时刻进行。为了提高整个系统的效率,不应在数据库某一成分改变后就马上对受影响的那些源程序重编译,较好的方法是将受影响的编译结果置“无效”标志,在其被执行时才进行自动重编译。自动重编译技术使得编译方法既拥有了编译时进行束缚所带来的高效率,又具备了执行时束缚所带来的数据独立性。实践证明,预编译方法的效率比其它方法高两倍以上。

  7.数据存取层

  数据存取层介于语言处理层和数据存储之间。它向上提供单元组接口,即导航式的一次一个元组的存取操作。向下则以系统缓冲区的存储器接口作为实现基础。

  (1)提供一次一个元组的查找、插入、删除、修改等基本操作。

  (2)提供元组查找所循的存取路径以及对存取路径的维护操作。如对索引记录的查找、插入、删除、修改。

  (3)对记录和存取路径的封锁、解锁操作。

  (4)日志文件的登记和读取操作。

  (5)辅助操作。如扫描、合并/排序,其操作对象有关系、有序表、索引等。为了完成上述功能,通常把存取层又划分为若干功能子系统加以实现。

  8.缓冲区管理

  数据存取层的下面是数据存储层(简称存储层)。存储层的主要功能是存储管理。包括缓冲区管理、内外存交换、外存管理等。其中缓冲管理是最主要的。存储层向存取层提供的接口是由定长页面组成的系统缓冲区。系统缓冲区的设立是出于两方面的原因:一是它把存储层以上各系统成分和实在的外存设备隔离。外存设备的变更不会影响其它系统成分,使DBMS具有设备独立性。二是提高存取效率。DBMS利用系统缓冲区滞留数据。当存取层需要读取数据时存储子系统首先到系统缓冲区中查找。只有当缓冲区不存在该数据时才真正从外存读入该数据所在的页面。当存取层写回一元组到数据库中时,存储子系统并不把它立即写回外存,仅把该元组所在的缓冲区页面作一标志,表示可以释放。只有当该用户事务结束或结束缓冲区已满需要调入新页时才按一定的淘汰策略把缓冲区中已有释放标志的页面写回外存。这样可以减少内外存交换的次数,提高存取效率。系统缓冲区可由内存或虚存组成。由于内存空间紧张,缓冲区的大小、缓冲区内存和虚存部分的比例要精心设计。针对不同的应用和环境按一定的模型进行调整。既不能让缓冲区占据太大内存空间,也不能因空间太小而频频缺页调页,造成“抖动”,影响效率。缓冲区由控制信息和若干定长页面组成。缓冲区管理模块向上层提供的操作是缓冲区的读(READBUF)、写(WRITEBUF)。缓冲区内部的管理操作有:查找页、申请页、淘汰页。缓冲区管理调用OS的操作有:读(READ)、写(WEITE)。

  9.数据库的物理组织

  数据库是大量数据的有结构的综合性的集合,如何将这样一个庞大的数据集合以最优的形式组织起来存放在外存上是一个非常重要的问题。所谓“优”应包括两方面:一是存储效率高,节省存储空间;二是读取效率高,速度快、代价小。数据库实现的基础是文件,对数据库的任何操作最终要转化为对文件的操作。所以在数据库物理组织中,基本的问题是如何设计文件组织或者利用操作系统提供的基本的文件组织方法。但是,在数据库中表和文件不必具有一一对应关系。这和操作系统中不一样。DBMS可以建立只能自己读写的文件,在其中存储多个表的数据。数据系统是文件系统的发展。文件系统中每个文件存储同质实体的数据,各文件是孤立的,没有体现实体之间的联系。数据库系统中数据的物理组织必须体现实体之间的联系,支持数据库的逻辑结构———各种数据模型。因此数据库中要存储4个方面的数据:数据描述。即数据外模式、模式、内模式。数据本身。数据之间的联系。存取路径。这4个方面的数据内容都要采用一定的文件组织方式组织、存储起来。

  (1)数据字典(DD)的组织 有关数据的描述存储在数据库的数据字典中。数据字典的特点是数据量比较小(与数据本身比)、使用频繁,因为任何数据库操作都要参照数据字典的内容。数据字典在网状、层次数据中常常用一个特殊的文件来组织。所有关于数据的描述信息存放在一个文件中。

  (2)数据及数据联系的组织 关于数据自身的组织,DBMS可以根据处理的要求自己设计文件结构,也可以从操作系统提供的文件结构中选择合适的加以实现。目前,操作系统提供的常用文件结构有:顺序文件、索引文件、索引顺序文件、HASH文件(杂凑文件)和B树类文件等等。数据库中数据组织与数据之间联系是紧密结合的。在数据的组织和存储中必须直接或间接、显式或隐含地体现数据之间的联系,这是数据库物理组织中主要考虑和设计的内容。关系数据库中实现了数据表示的单一性。实体及实体之间的联系都用一种数据结构———“表”来表示。在数据库的物理组织中,每一个表通常可以对应一种文件结构。因此数据和数据之间的联系两者组织方式相同。

  (3)存取路径的组织 关系数据库中,存取路径和数据是分离的,对用户是隐蔽的。存取路径可以动态建立、删除。存取路径的物理组织通常采用B树类文件结构和HASH文件结构。在一个关系上可以建立若干个索引。有的系统支持组合属性索引,即在两个或两个以上的属性上建立索引。索引可以由用户用CRETR INDEX语句建立,用DROP INDEX语句删除。在执行查询时,DBMS查询优化模块也会根据优化策略自动地建立索引,以提高查询效率。由此可见,关系数据库中存取路径的建立是十分灵活的。

  十、FoxPro 数据库管理系统介绍

  1.FoxPro简介

  FoxPro2.5是Microsoft公司1993年推出的产品。1993年1月发布了FoxPro2.5for DOS和FoxPro2.5for windows两个版本,成为目前微机上最快、使用最广泛的数据库管理系统。FoxPro2.5的新特点:增强32位产品的特性;跨平台的开发;新增或增强的命令与函数;新的生成器命令;新的系统内存变量。由于FoxPro for DOS与FoxPro for windows相互兼容。下面就只简单地介绍一下FoxProˉfor windows的一些功能。FoxPro for windows的常用工具集(菜单生成器,屏幕生成器,报表生成器)充分发挥Winˉdows的图形能力。这些能力包括图象显示、字模使用以及Windows元素与控制的应用,还可以用Bitmaps作为屏幕的背景。FoxPro的附属工具传递器(Transporter)支持FoxPro2.5for DOS和它的DOS环境下的姐妹产品之间的交叉平台上的开发。FoxPro for DOS程序在大多数情况下可以不必修改而直接在FoxPro for windows环境下运行。独特的Rushmore查询优化技术支持复杂的检索并大幅度提高了运行速度,图形环境并不影响FoxPro底层的速度。FoxPro加入了Windows的一些动态功能,如OLE(对象连接与嵌入)、DDE(动态数据交换)、DLL(动态链接库)和Windows打印驱动程序等。FoxPro for windows包括字型字体控制、拖放式编辑和块功能。Windows的全范围的各种字模(Font)在FoxPro2.5中都是有效的,包括True Type字模,这些字模对所有的FoxPro的工具和程序语言都是支持的。FoxPro提供联机帮助文件。发行工具箱(Distribution kit)提供流水过程,提供安装和启动例程。FoxPro适用于多用户及网络环境。

  2.FoxPro的基本原理

  FoxPro数据库是表的集合,这些表协同工作,一起来完成某项任务。这里的表是一种列表,在该表中的每项叫做一个记录,而每个记录又由许多字段组成,字段是数据库的最小数据单位。在FoxPro中支持八种数据类型的字段。

  (1)FoxPro的数据类型①字符型字段。②数字型字段。③日期型字段。④逻辑型字段。⑤备注字段。⑥通用字段。⑦图形类型字段。⑧浮点数值字段。

  (2)工作区在FoxPro中,组成某个数据库的各种表可以打开在多达255个工作区中,可以用编号1到255引用工作区,也可按A~J和11~255引用工作区。在某一时刻每个工作区只能容纳一张表。在工作区中打开表后,工作区和表实际上成了同义语,可以通过表的别名(有时就是该表的名),来引用或选择工作区。别名可在打开表时指定。通常选择一个工作区为当前工作区,该工作区中打开的表,即为FoxPro操作的缺省表。FoxPro的缺省操作都是针对该表的。

  (3)View窗口该窗口是用来查看数据库,而且可以显示在各个工作区打开的表的别名,也可通过Browse按钮查看这个表的内容。此外,View窗口也允许用户输入数据,仔细观察表内容,创建和修改单个的表;在主菜单中选Windows/View后即可进入View窗口。Setup按钮可修改表的结构。Browse按钮可浏览当前工作区(Workareas中以亮条标出)中的表内容。Open按钮可在当前工作区中打开一已存在的表或创建一新表。Close按钮则关闭当前工作区中的表。Relation按钮可使当前工作区的表与其它表相关联。用户常常需要同时打开两个或更多的表,按照某种特殊的顺序来显示表的内容。利用View文件可以保存用户在各工作区打开的表的信息。用户想打开所有这些表时只须打开用户存的View文件,再进入View窗口即可。方法如下:保持View窗口活动,在各工作区内打开所需的表,然后选择File/Save as…菜单选项,Save as菜单即会出现,在Save View as栏中添入文件名,之后确认Save,即可产生用户的View文件。

  (4)表的互斥和共享打开的表要么互斥(Exclusive)使用,要么共享(Shared)使用。如果互斥使用,那么在关闭该表之前任何其他人都不得再重新打开该表。缺省状态下。FoxPro打开的表是互斥使用的。要命名打开的表能共享使用,必须加载DOS SHARE程序。工作在不需SHARE的网络上则不用加载。同时要在Command窗口中敲入SET EXCLUSIVE OFF,那么后续打开的所有表都能共享使用,已经打开的表依然互斥使用。在USE命令后加入SHARED,使用户能够替换对指定文件的EXCLUSIVE设置。也可从View窗口中打开表用于共享使用,这可以取消File/open对话框中Exclusive复选框的标记而实现。某些FoxPro命令需要互斥使用表,如DELETE TAG,INDEX ON…TAG,INSERT [BLANK],MODIFY STRUCTURE,PACK,REINDEX,ZAP等。在表被打开用于共享之后,必须处理记录争用的问题。但目前读者还只需要知道在交互地增加和修改的据时,FoxPro为用户处理大多数这种问题。注意:如果用户保证EXCLUSIVE已关闭(SET OFF),但状态栏仍旧显示表是EXCLUˉSIVE的话,那么或许SHARE程序没有加载,或许表是在EXCLUSIVE打开(SET ON)状态时打开的,也可能所使用的表刚刚创建。用户创建表打开时是互斥使用的,直到关闭该表;但下一次打开该表时,可使表用于共享。

  (5)Browse窗口Browse窗口是FoxPro功能最强、最富生机的特征之一。在Browse窗口中不仅可以浏览表的内容,还可以向表中增加记录、删除记录、修改字段等。进入Browse窗口有多种方法,既可从主菜单中Database/Browse进入,也可从View窗口中的Browse按钮进入,还可以在查询时进入。View窗口在FoxPro中是最有用的窗口之一。用户应在进入FoxPro后,就打开View窗口,这样会给用户带来许多方便。事实上,FoxPro的所有表,都是以单独的文件存放在磁盘中的,数据库实质上只是一个目录名而已。FoxPro对文件的保护比较弱,有时拷贝表时,会丢失某些信息,以至于到另外一台机器上不能打开,这时就应重新拷贝,把所有相关的文件,如FPT、IDX等文件一并拷走。这样数据库才能在另外一台机器上安全地运行。

  3.使用FoxPro数据库

  (1)建立数据库建立数据库要决定需存储在数据库中的信息的结构,即数据库的结构。

  (2)RQBE窗口尽管使用Browse可以浏览表,但毕竟只能做一些简单的检索,为此FoxPro提供了RQBE(Relational Query By Example)。RQBE是一种交互式工具,避免了写复杂检索程序的麻烦,可以很方便地检索数据。RQBE的功能很强,RQBE是用户和SQL SELECT命令间的接口,FoxˉPro支持SQL。另外,RQBE可以把语句保存在.QPR文件中。

  (3)报表的设计与制作使用RQBE可制作出报表,还可以利用FoxPro功能强大的Report Writer来制作一张符合需要的报表。

  4.创建应用程序

  (1)建立数据库编写数据库应用程序的第一步是确定该系统必须使用的数据库文件和索引。

  (2)菜单生成器FoxPro为用户提供了很简洁的丰富的菜单编程命令,但这些繁杂的命令很容易令人厌烦。如果使用菜单生成器,将会使构造菜单系统变得容易许多。菜单生成器的启动有两种方式:

  (1)通过在Command窗口键入Create menu[〈文件名〉],键入回车即可。

  (2)通过系统菜单启动。

  (3)屏幕生成器大多的应用程序都是围绕着用户界面屏幕来建立的。有些屏幕用来录入或编辑数据,有些屏幕用以显示信息,有些屏幕用于表的维护等等。FoxPro的屏幕生成器就是用来创建大多数上述屏幕的工具。在各类界面设计中,输入屏幕算是比较繁而且又很常用的界面屏幕了。

  (4)项目管理器项目管理器主要有以下两个作用:

  ①维护项目使用的所有文件。

  ②建立应用程序项目管理器具有优秀编程工具的特点,它为用户做了许多工作,并且易于使用。可以通过选择File New Project、New或在命令窗口键入Creat project命令来创建一个新的项目。然后使用Add按钮开始创建该项目中的新文件或将已有的文件添加到该项目中。首先,将主文件添加到项目中。由此,项目管理器就可以沿着程序的执行步骤(即嵌入在文件中的函数和过程调用)来一步步跟踪,直到找到当前项目所需的所有文件为止。生成项目文件非常容易,在项目管理器窗口中按下Build按钮,选择Re-build project,Build Application或Build Executable选项。另外,项目管理器能方便的发现和修改编译错误。应该指出,一个项目并不一定要生成应用程序;而一个完整的“应用程序”可以包含若干个项目和若干个生成类。因此,逻辑上的解决办法是将应用程序拆成许多的项目,这就是应用程序的分级设计方法。

展开全文
评论(0条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心