




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库设计与应用开发实践数据库设计与应用开发实践(第一版) 陆慧娟 主编 陆慧娟 高波涌 刘丽娟 翁文勇 关伟 编著中国计量学院信息工程学院China Jiliang University2014 清华大学出版社数 据 库 概述概述 数据库应用系统是在数据库管理系统(Database Management System ,DBMS)支持下建立的计算机软件系统。例如,以数据库为基础的财务管理系统、人事管理系统、图书管理系统等等。 概述概述 本章将介绍数据库应用系统的一般开发过程,以此引出后续章节内容:数据库逻辑结构设计(数据建模)数据库物理结构设计(以提高系统性能为目的,进行数据库优化设计)数据
2、库业务逻辑设计(将部分应用程序的功能移植到数据库中,进行业务层数据库设计优化)数据库应用程序设计开发语言和架构;并简单介绍数据库系统的组成,帮助读者理解数据库系统的基本组成以及DBMS在应用系统中的地位;最后以图书管理系统为例,分析其功能实现形式,帮助读者建立数据库应用系统基本概念、掌握数据库设计与应用开发实践的基本技巧,从而能开发实际的数据库应用系统。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程1.1.1 需求分析在软件工程中,需求分析指在建立一个新的或改变一个现存的计算机系统时描写新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中的一个关键过程。在这个过
3、程中,系统分析员和软件工程师要确定用户的需求,这样才能够分析和寻求新系统的解决方法。假如在需求分析时未能正确地认识到用户需要,那么最后的软件实际上不可能满足用户的需要,或者软件无法在规定的时间里完工。 1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程 以图书管理系统开发为例,假设在需求分析阶段没有考虑读者需要按类别进行管理,那么,在数据库设计阶段就不会设计读者类别这种实体;在程序设计阶段,编写读者管理模块时,也不会涉及读者类别这种对象。如果在编码完成后,发现需要设计读者类别这种对象,那么不仅要修改数据库的结构,编写独立的读者类别管理模块,还需要修改读者管理等模块的代码。1.1 1.
4、1 数据库应用系统开发过程数据库应用系统开发过程l通过具体的需求分析,图书管理系统应具备的功能如下:l 合理的用户权限管理。用户总体分为三类:读者用户、图书管理员和系统管理员,不同用户具有各自相应的操作权限。l 批量增加用户功能。l 批量图书上架,下架功能。l 书籍借阅和归还登记。l 高效的图书搜索功能。l 书籍与用户信息分类管理。l 数据备份及恢复功能。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程对于大型的开发项目,需求分析的结果应当以需求说明书的形式保存下来,作为接下来系统开发的基础和依据。需求说明书除了必要的文字说明,还应当有直观的流程图表。以下是数据库系统开发过程中常见
5、的流程图表:l业务流程图分析用户活动时产生。l系统范围图用于确定系统范围。l数据流图用于分析用户活动涉及的数据。l数据字典详细描述系统中的全部数据。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程1.1.业务流程图业务流程图业务流程图是一种描述系统内各用户、单位之间业务关系、作业顺序和管理信息流向的图表,它的作用是帮助了解用户当前的业务活动和职能,理清其处理流程,把用户业务分成若干个子处理过程,使每个处理功能明确、界面清楚。业务流程图描述的是完整的业务流程,以业务处理过程为中心,一般没有数据的概念。以图书管理系统中的借阅过程为例,在画业务流程图之前,要对现行系统进行详细调查,并写出
6、现行系统业务流程总结:借阅审核:读取读者借书证信息,验证借书证是否可用。图书查询:查询图书表中当前要借阅的图书信息,验证当前图书是否可借。借阅登记:如图书可借,则管理员登记读者资料及借阅图书,完成借阅过程。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程图1-1 借阅业务流程图1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程实际情况中,一个业务流程中往往包含了更多的处理过程,流程图更复杂。前期一个完整的业务流程图对数据库系统设计具有重要的意义:l制作流程图的过程是全面了解业务处理的过程,是进行系统分析的依据。l流程图是系统分析员、管理人员、业务操作人员相互交流思想的工具
7、。l系统分析员可直接在业务流程图上画出可以实现计算机处理的部分。l用它可分析出业务流程的合理性。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程2.2.系统范围图系统范围图 在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程3.3.数据流图数据流图深入分析用户的业务处理,以数据流图(Data Flow Diagram,简称DFD)的形式表示出数据的流向和对数据所进行的加工。数据流图有四个基本成分:数据流、加工或处理、文件、外部实体。数据流图可以
8、形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段。数据流是一组数据。在数据流图中数据流用带箭头的线表示,在旁边标注着数据流名称。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。加工或处理在数据流图中用圆圈表示,圆圈内写有加工或处理名称。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程(1)分层数据流图分层数据流图根据层级数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图从零开始编号。 顶层数据流图只含有一个加工表示整个系统;输出数据流和输入
9、数据流为系统的输入数据和输出数据,表明系统的范围,以及与外部环境的数据交换关系。 中层数据流图是对顶层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图;中间层次的多少,一般视系统的复杂程度而定。 底层数据流图是指其加工不能再分解的数据流图,其加工成为“原子加工”。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程(2)数据流图的一般画法: 确定系统的输入输出 由于系统究竟包括哪些功能可能一时难以弄清楚,可以使其范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流
10、图的外围。 由外向里画顶层数据流图 首先,将系统的输入数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工;接着,给各个加工命名;然后,给加工之间的数据命名;最后,给文件命名。 自顶向下逐层分解,绘出分层数据流图1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。以图书管理系统为例,说明画数据流图的过程。首先根据系统的输入输出,先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据
11、流。顶层数据流图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。图书管理系统顶层数据流图见图1-2所示,包含了一个名为“图书管理系统”的加工,“读者”与“图书管理员”作为数据的源点和终点,并且包含了多条数据流。图1-2 顶层数据流图1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程 然后根据系统内部功能,画下层数据流图。不再分解的加工称为基本加工。一般采用自顶向下,由外向内的原则将层号从0开始编号。画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。 图书管理系统0层数据流图见图1-3所示,它包含4个子系统和两个数据存储。1.1 1.
12、1 数据库应用系统开发过程数据库应用系统开发过程图1-3 0层数据流图1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程 0层数据流图画好以后,继续对0层的加工进行分解,得到1层数据流图。1层数据流图加工的编号用1.1、1.2、1.3、2.1、2.2来分别表示各个0层加工的子加工。 图书管理系统1层数据流图中的查询系统和借阅系统见图1-4和图1-5所示。 图1-4 查询系统1层数据流图1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程 图1-5 借阅系统1层数据流图1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程l 查询系统可以分解为“查询信息识别”、“分类查询
13、”、“图书信息查询”和“关键字查询”。l 借阅系统分解为“读者验证”、“欠费结算”和“图书确认”三个加工。接着再进行第2、3层的分解,层数的多少视系统复杂程度而定。实际的系统功能会更加复杂,数据流图的加工数量会比较多,以上只举了一些典型功能来讲解数据流图的画法及过程。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程l命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。l画数据流而不是控制流。数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。l一般不画物质流。数据流反映能用计算机处理的数据,并不是实物
14、,因此对目标系统的数据流图一般不要画物质流。l每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。l如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父层数据流图,直接下层图为子数据流图,子数据流图及其所有的加工都应编号。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程l父层数据流图与子数据流图的平衡。子图的输入输出数据流同父层数据流图相应加工的输入输出数据流必须一致。l局部数据存储。当某层数据流图中的数据存储不是父层数据流图中相应加工的外部接口,而只是该图中某些加工之间的数据接口时,称这些数据存储为局部数据存储。l提高数据流图的易懂性。注
15、意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。1.1 1.1 数据库应用系统开发过程数据库应用系统开发过程4. 4. 数据字典数据字典 仅仅有数据流图并不能构成需求说明书,数据流图只表示出系统由哪几部分组成和各个部分之间的关系,并没有说明各个成分的含义。数据字典(Data Dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录,是对系统中数据的详尽描述,是各类数据属性的清单,它的功能是存储和检索各种数据描述(元数据Metadata),数据字典是数据收集和数据分析的主要成果,在数据库设计中占有很重要
16、地位。数据字典有主动和被动之分:主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典;被动数据字典是指修改时必须手工更新其内容的数据字典。数据词典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。(1)数据项:数据项是最基本的数据元素,是有意义的最小数据单元,在数据字典中,定义数据项的描述包括:数据项的名称、编号、别名、说明、长度、取值范围、与其他数据项的逻辑关系等。表1-1用以表示读者数据项。(2) 数据结构:数据项是不能分解的数据,而数据结构是可以进一步分解的数据包,是若干数据项有意义的集合。一个数据结构可以由若干个数据元素组成,也可以由若
17、干个数据结构组成,还可以由若干个数据元素和数据结构组成。数据结构的描述一般有: 数据结构名,编号、说明、组成等。表1-2用以表示读者信息数据结构。(3)数据流:数据流由一个或一组固定的数据项(即数据结构)组成。定义数据流时,不仅要说明数据流的名称、编号、说明、组成等,还应指明它的来源、去向和数据流量等,其中“来源”是说明该数据流来自哪个过程,“去向”是说明该数据流将到那个过程去。“流量”是指在单位时间(每天、每周、每月等)里的传输次数,如果需要,还可以有“高峰期流量”,指明在高峰时期的数据流量。表1-3表示读者注册申请的数据流。 ( 4 )数据存储:数据存储在数据字典中只描述数据的逻辑存储结构
18、,而不涉及它的物理组织,处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件。数据存储描述除了基本的数据存储名称、编号、说明、组成、来源和去向外,还应该有存储方式和关键字。表1-4用以表示图书采购订单的数据存储。(5)处理过程:处理逻辑的定义是对数据流程图中最底层逻辑加以说明。处理过程除了基本的描述,还包括输入、输出、处理(简要说明)、优先级、执行频率、出错处理方式等。表1-5表示读者超期欠费计算处理过程。 可见数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。1.1.2 总体设计 完成需求分析后,开发者需
19、要对软件系统进行总体设计。总体设计需要对软件系统的设计进行考虑,包括系统的总体结构,数据库选型,开发环境和运行环境的选择。也包括基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计和出错处理设计等,为软件的数据库设计和详细设计提供基础。图书管理系统总体结构如下。(1)系统管理模块:该模块主要完成各类读者用户信息和管理员信息的管理和各种系统的设置等。(2)图书借阅模块:该模块主要实现图书的借出和归还等相关功能。(3)读者查询模块:该模块主要实现图书馆藏的查询功能及其他相关信息的搜索查询功能。(4)查询统计模块:该模块统计读者历史借阅以及书籍借阅等相关信息。 在确定了系统的功能需求
20、后,需要确定采用B/S或C/S的软件架构;需要选择数据库管理系统和开发环境;确定系统的菜单结构及各种用户的功能权限;确定应用程序和数据库交互的方法等等。 通常,在进行数据库总体设计时应将注意力重点放在以下方面。1.1.数据结构的合理性数据结构的合理性数据结构的合理性要求指数据文件组织合理,数据元素归类和划分合理,以及对数据项进行合理描述。2.2.数据存储的安全性数据存储的安全性 数据存储的安全性要求从存储总体结构上保证数据的安全性、一致性和完整性。一般来说,提高安全性的最有效措施是增加数据冗余,而大量数据冗余往往为维护数据一致性带来困难,这是不可调和的矛盾。对此应进行合理取舍,在尽量降低冗余的
21、前提下,确保数据的安全性与可靠性。3.3.维护和管理方便维护和管理方便无论设计什么样的存储结构,首先应保证对数据进行管理和维护上的方便,它是提高系统运行效率的基础。1.1.3 数据库设计数据库设计(Database Design)是指在事先确定的系统结构及其功能等条件下,构造合理、高效的数据库模式,并建立完整的数据库,使之能够有效地存储数据,实现用户所期望的应用需求。 数据库设计也是项目成败的关键点之一,直接影响后续的详细设计和编码。一般情况下,把数据库设计过程细分为:数据库逻辑结构设计、数据库物理结构设计、数据库实施。后续将详细介绍这个过程。下面是图书管理系统比较重要的几个数据库表。1.1.
22、图书管理员表图书管理员表用来保存图书管理员的基本信息。2.2.读者表读者表因为读者用户数量远远大于管理员用户并且权限的区别比较大,所以一般会用单独的表来保存读者个人信息以及借阅信息等。3.3.读者类别表读者类别表记录的类别信息,包括读者类别代码,读者类别名称,可借数量。4.4.图书表图书表详细记录图书相关信息,包括图书编号,书名,作者,分类,出版时间及出版社等等。5.5.借阅表借阅表用于记录图书借阅的信息,包括读者,书籍,借出时间,归还时间等。6.6.出版社表出版社表用于记录出版社的基本信息,包括出版社编号,出版社名称,联系电话等。 当然一个系统的数据表不是固定的,需要根据具体的功能要求与设计
23、来选择合适的数据表。以上只给出了一种比较常见的数据库表设计方案,如果必要,还可以将任意数据表细分,比如“读者表”可以细分为“读者个人信息表”与“读者基本表”,这样可以减少数据冗余,但会增加查询的复杂程度,应根据具体需要选择。1.1.4 详细设计 在总体设计和数据库设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。1.1.5 编码 在软件
24、编码阶段,开发者根据软件系统详细设计报告中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。1.1.6 测试 测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能1.1.7 软件交付准备在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、用户安装手册、用户使用指南、需求报告、设计报告、测试报告等双方合同约定的产物。 数据库系统(Database System,DBS)是采用了数据库技术的计算机系统,通常由数据库、硬件、软件和用户四部分组成。 数据
25、库是指存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,可为各种用户共享,具有冗余度较小、数据独立性较高、易扩展等特点。数据库系统的硬件包括中央处理器、内存、外存、输入/输出设备等,其具体要求如下: l 有足够大的内存,存放操作系统(Operating System,OS)、数据库管理系统的核心模块、数据缓冲区和应用程序。l有足够大的外存,如用磁盘或磁盘阵列存放数据库,用光盘、磁带做数据备份。l有较高的通道能力,以提高数据传送率。 数据库系统的软件主要包括DBMS、操作系统、各种宿主语言、应用开发工具和为特定应用环境开发的数据库应用系统。DBMS是在
26、操作系统的文件系统基础上发展起来的,在操作系统支持下工作,是数据库系统的核心软件。为了开发数据库应用系统,需要各种宿主语言(如C#、Java)和应用开发工具。管理、开发和使用数据库系统的用户主要有数据库管理员、应用程序员和普通用户。 一般认为,软件是指程序、程序运行所需要的数据以及开发、使用和维护这些程序所需要的文档集合。例如,图书管理系统=图书管理系统相关的数据+图书管理系统应用程序+相关文档。 因此,通过DBMS统一进行数据的管理,而应用程序的目的就是为用户提供操作界面,从DBMS中提取数据,将处理后的数据存储到DBMS中。当然,为实现这些功能,还需要在一定的应用开发环境中完成相关的程序设
27、计。1.2.1 数据库系统开发涉及的知识体系 数据库系统开发涉及的知识体系主要包括三方面的内容: 数据库原理、应用程序开发和数据库设计,如图1-6所示。 “数据库原理”其侧重点是掌握数据库内部的逻辑结构以及如何通过DBMS进行数据定义、管理,这是建设数据库系统的基础。事实上,几乎所有的应用功能最终都体现为对数据库的操作,即利用SQL语句完成数据库记录的增加、删除、修改和查询等操作。 “数据库设计”其核心目的是设计数据库的逻辑结构。只有在设计了合理的数据库逻辑结构的基础上,才能通过SQL语句实现各种业务逻辑。 “数据库应用程序开发”是实现数据库系统的一个重要步骤。通常情况下,数据库应用程序通过一
28、定的界面采集用户的输入信息,根据这些信息以及业务特点,组装成SQL语句,并递交DBMS执行后实现业务逻辑。1.2.2 数据库管理系统 数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立、查询和修改数据库。DBMS提供数据定义语言DDL与数据操作语言DML,供用户定义数据库的模式结构与权限约束,实现对数据的增加、删除等操作。目前,典型的数据库管理系统有甲骨文的Oracl
29、e系列、微软的SQL Server系列、IBM公司的DB2系列、开源的MySQL等。1. Oracle1. Oracle数据库数据库 Oracle(甲骨文)公司是全球最大的信息管理软件及服务供应商之一,成立于1977年,总部位于美国加州。Oracle Database,又名Oracle RDBMS,或简称Oracle,是Oracle公司的一款关系数据库管理系统。现在,Oracle关系数据库产品被广泛应用于各种操作环境: Windows,基于Linux、UNIX系统的小型机,IBM大型机以及一些专用硬件操作系统平台。目前,Oracle的最新版本为Oracle 12c。 Oracle数据库管理系统
30、是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,它在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。因它在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得到目前在数据库市场上占有主要份额。Oracle数据库是基于“客户端/服务器”模式结构。客户端应用程序与用户进行交互活动,接收用户信息,并向“服务器端”发送请求,服务器系统负责管理数据信息和各种操作数据的活动。2. SQL Server2. SQL Server数据库数据库 SQL Server是一个关系数据库管理系统。它最初是由Microsoft、Sybase和Ash
31、ton-Tate三家公司共同开发的。在Windows NT推出后,Microsoft将SQL Server移植到该系统上,专注开发SQL Server的Windows NT版本;Sybase则较专注于SQL Server在UNIX操作系统上的应用。现在SQL Server具有使用方便、可伸缩性好和与相关软件集成程度高等优点,可以在Windows 98到Windows Server 2008等多种系统平台中运行和使用。目前SQL Server的最高版本是SQL Server 2014。3. DB23. DB2数据库数据库 IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较
32、好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性以及从小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到局域网(LAN)数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。4. MySQL4. MySQL数据库数据库 MySQL是一种开放源代码的关系型数据库管理系统,任何人都可以在GPL(General Public License,GNU通用公共授权)的许可下下载并根
33、据个性化的需要对其进行修改。MySQL因其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。MySQL虽然功能未必很强大,但因为它的开源、广泛传播,很多人都了解并在使用这个数据库。5. Access5. Access数据库数据库 Microsoft Office Access是由微软发布的关系式数据库管理系统,是Microsoft Office的成员之一。因它结合了Microsoft Jet Database Engine,在Windows中使用这个数据库时,不需要安装专门的数据库管理软件。对于用户而言,数据库就是一个mdb文件,系统发布
34、时也只要复制文件即可。正是因为具有简单性,它已被广泛应用于桌面数据库系统中。1.2.3 数据库应用系统的基本架构 开发一个数据库应用系统首先要确定系统的总体结构。目前主要有两种基本架构: 一是基于操作系统平台的客户机/服务器(Client/Server,C/S)结构,二是基于浏览器的浏览器/服务器(Browser/Server,B/S)结构。1. 1. 客户机服务器结构客户机服务器结构C/S模式是20世纪80年代逐渐发展起来的系统模式,该系统模式将与DBMS相关的工作量分为两部分: 服务器和客户机。客户机和服务器典型地运行在不同的系统中。在客户机和服务器之间如何划分DBMS功能有不同的方案。大
35、多数关系型DBMS产品采用的方案是在服务器中包含集中式DBMS功能,为客户机提供一个SQL服务器,负责管理数据并进行事务管理;每一个客户机必须配置合适的SQL查询,并为用户提供用户接口和编程语言接口功能。客户机可以引用存在各种SQL服务器中的包含数据分布信息的数据字典,还可以访问一些功能模块,将一个全局查询分解为若干可以在不同站点上执行的局部查询。 由于系统扩展性、维护成本、安全性等问题,两层客户机/服务器技术正逐步被三层体系结构所取代,尤其在Web应用中。如图1-7所示,在三层客户机/服务器体系结构中,有以下三个层次。1.2 1.2 数据库系统的组成数据库系统的组成图1-7三层客户机/服务器
36、体系结构l 表示层(客户层): 该层提供了用户界面并同用户进行交互。l 应用层(业务逻辑层): 该层对应用逻辑进行编程,也是表示层和数据库服务器层的桥梁。它响应表示层的用户请求,从数据库服务器层抓取数据,执行业务处理,并将必要的数据传送给表示层以展示给用户。在这一层还可以处理附加的应用功能,例如安全检查、身份验证以及其他功能。需要时,应用层可以与一个或多个数据库或数据源进行交互。l 数据库服务器层: 该层负责数据存储、事务管理、数据完整性控制、故障恢复等,处理来自应用层的查询与更新请求,并发送结果。2. 2. 浏览器服务器结构浏览器服务器结构 随着Internet和Web的流行,以往的体系结构
37、已无法满足当前的全球网络开放、互联、信息随处可见和信息共享的新要求,于是出现了浏览器服务器体系结构的数据库系统,如图18所示。该模式由客户机、Web服务器和数据库服务器三部分组成。只是客户机应用程序被浏览器所替代,用户通过浏览器访问服务器,服务器接受相关浏览器的访问,对数据库进行操作,并将结果翻译成页面描述语言返回访问的浏览器。图1-8浏览器服务器体系结构浏览器/服务器结构具有如下优点: l 在该结构中,客户端的任何计算机只要安装了浏览器就可以访问应用程序。浏览器的界面是统一的,广大用户容易掌握,大大减少了培训时间和费用。l 客户端的硬件与操作系统具有更长的使用寿命,因为它们只要能够支持浏览器
38、软件即可。l 由于应用系统的维护与升级工作都是在服务器上执行,因此不必安装、维护或升级客户端应用代码,极大地减少了系统开发和维护代价。这种结构能够支持数万甚至更多的用户。1.2.4 应用程序和开发环境 应用程序的目标是完成和DBMS的交互以及和用户的交互,实现用户角度的业务数据和数据库存储的数据之间的转换。对于程序员而言,只要掌握和DBMS进行交互的方法、程序设计语言实现数据库的逻辑处理、用户交互界面的设计方法即可完成应用程序开发。应用程序开发环境为程序员提供源代码撰写工具,完成源代码的编译链接工作。通常情况下,一个开发环境对应一种编程语言,而一种编程语言会有多种开发环境(如Visual C+
39、和Borland C+的编程语言都为C+)。同时,为简化编程,开发环境还会提供一系列类库(如Visual C+的MFC库、Delphi的VCL等),实现一些常用的功能。通过这些类库,程序员仅需编写少量代码就可获取相应的功能。因此,在学习了编程语言的基础上,应用程序开发环境的学习还包括: 源代码编辑工具的学习; 相关类库的学习。 目前,Java和.NET是两大主流的开发平台。本教材将在后续章节分别以这两个开发平台为例介绍数据库应用系统的开发。1. Java1. Java平台及平台及EclipseEclipse Java最初被命名为Oak,Sun将目标设定为家用电器等小型系统的编程语言,用来解决诸
40、如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。Java 编程语言的风格十分接近C、C+ 语言,是一个纯面向对象的程序设计语言。它继承了 C+ 语言面向对象技术的核心,舍弃了C+语言中容易引起错误的指针、运算符重载、多重继承等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编
41、程、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java 不同于一般编译执行和解释执行的计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次编译的执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术,全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一
42、个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括 Java 开发工具。目前大多数Java开发者使用Eclipse 作为开发环境。2001年11月,IBM公司捐出价值4000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。Eclipse允许在同一IDE(Integrated Development Environment,集成开发环境)中集成来自不同供应商的工具,并实现了工具之间的互操作,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入目标上。利用Eclipse,可以将高级设计(如采用统一建模语言Unified Mod
43、eling Language,UML)与低级开发工具(如应用调试器等)结合在一起。Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件。Eclipse为工具开发商提供了更大的灵活性,从而使其能更好地控制自己的软件技术。2. .NET2. .NET平台及平台及Visual Studio .NETVisual Studio .NET .NET Framework 是一个集成在 Windows 中的组件,包括公共语言运行时和.NET Framework类库。公共语言运行时是 .NET Framework 的基础。可以将运行时看作一个在执行时管理代码的代理。它提供内存管理、线程管
44、理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,包括传统的命令行或图形用户界面(GUI) 应用程序,也包括基于ASP.NET 所提供的B/S结构应用程序。 Visual Studio.NET是一套完整的开发工具,用于生成ASP Web应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic.NET、Visual C+.NET、Visual C#.NET和Visual J#.NET都
45、使用相同的集成开发环境,该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了.NET Framework的功能,此框架提供对简化ASP Web应用程序和XML Web Services开发的关键技术的访问。 作为本书的第一个实例,旨在向读者介绍数据库系统的一般组成以及开发数据库系统的一般过程。为此,作者选择了读者耳熟能详的图书管理系统。该系统能完成图书的上架、借阅、归还、下架等基本功能,并实现读者信息的管理功能。系统的用户包括图书馆工作人员、系统管理员和读者,其中,工作人员和系统管理员统称为系统用户,其功能如图1-9所示。图1-9图书管理系统的功能 用户必须登录后才能使用相
46、关功能。系统管理员可以使用“系统管理模块”和“查询统计模块”,图书馆工作人员可以使用“图书借阅模块”和“查询统计模块”,读者可以使用“读者查询模块”。1.3.1 系统管理模块1. 1. 系统用户管理系统用户管理 功能概述: 实现对系统管理员和图书馆工作人员的管理功能。包括用户的添加、密码重置、用户信息修改、用户注销、用户查询等。系统用户管理主界面如图1-10所示。系统管理员可通过上方的工具栏进行相关操作。 功能剖析: 该模块是一个典型的增、删、改模块,完成系统用户信息的增加(用户的添加)、删除(注销用户)和修改(密码重置和用户信息修改)。该功能反映到数据库中,就是完成系统用户表记录的增加、删除
47、、修改。2. 2. 读者类别管理读者类别管理 功能概述: 按类别对读者进行管理,如图1-11所示。如某图书馆将读者分为本科生、研究生、教师等,可以为不同类别的读者设定默认的可借图书数量。 功能剖析: 该模块也是一个典型的增、删、改模块,其操作也直接反映为对应数据库表的增、删、改操作。同时,这里还体现了数据之间的关联。删除某读者类别时,如果已经存在该类别的读者,系统应如何进行响应?这是典型的外键违例处理模式,请读者思考。3. 3. 读者信息管理读者信息管理 功能概述: 实现读者的注册、读者信息的修改、读者的注销、密码重置、暂停读者的使用权限等功能,如图1-12所示。 功能剖析: 该模块和系统用户管理模块功能非常类似,也是完成读者信息表记录的增、删、改。需要注意的是,录入读者信息时,读者类别需要用户选择,而读者类别信息来自读
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国讲师培训课件
- 七年级道德与法治上册第四单元生命的思考第八课探问生命第二框敬畏生命教案新人教版
- 成都酒店英语培训课件
- 2021幼儿园园长证培训测试题库含答案
- 团队规划培训课件
- 《细胞周期的调控》课件
- 培训课件选择思路
- 微笑礼仪培训课件
- 《病例讨论伤寒》课件
- 《致我所有的朋友》课件
- 2024年道路运输安全生产管理制度样本(5篇)
- 2024年度股权转让合同标的及受让方条件
- 起重机司机-特种设备操作Q2证考试练习题(含答案)
- 2024年《疟疾防治知识》课件
- 矿业数字化转型研究
- 新版浙教版2024-2025学年度八年级数学上册几何复习专题卷含答案
- 2025届陕西省咸阳市礼泉县数学高一上期末考试试题含解析
- 2024春季中铁三局集团校园招聘高频难、易错点500题模拟试题附带答案详解
- 出版社图书编辑出版流程规范
- 查理和巧克力工厂微课公开课获奖课件省赛课一等奖课件
- 地貌与第四纪地质学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论