资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2004-9-10,第4章 数据库系统设计,*,第,4,章 网络数据库应用系统设计,4.1,网络数据库应用系统设计概述,4.2,数据库应用系统的开发方法和一般方法,4.3,教务管理数据库系统的设计概述,4.4,教务管理系统的基本需求,4.5,数据库的逻辑设计,4.6,逻辑设计的物理实现,4.7,设计数据完整性,4.8,数据库服务器编程,4.9,设计完成后的表及表中的列,返回目录,1,4.1,网络数据库应用系统设计概述,4.1.1,网络数据库应用的特点,4.1.2,网络数据库应用系统体系结构,4.1.3 B/S,、,C/S,体系数据库应用系统的比较,2,4.1.1,网络数据库应用的特点,网络数据库与传统的数据库相比,有以下几个特点:,1),扩大了数据资源共享范围。,2),易于进行分布式处理。,3),数据资源使用形式灵活,既可以采用,C,S,方式,也可以采用,B/S,方式。,4),便于数据传输交流。,5),降低了系统的使用费用,提高了计算机的可用性。,6),数据的保密性、安全性降低。,3,4.1.2,网络数据库应用系统体系结构,1.C/S,(,Client/Server,)模式,C/S,模式是客户服务器模式的简称,客户端应用软件主要是用户界面。当用户调用服务器资源时,客户机将请求传送给服务器,并根据服务器回送的处理结果进行分析,然后显示给用户。,C/S,模式结构如图,4-1,所示。,服务器,客户机,图,4-1 C,S,模式结构图,4,基于,C/S,结构,的开发系统具有以下,技术特点,:,1,)按,功能划分,,服务器是服务的提供者,客户机是服务的消费者。,C/S,根据服务的观点对功能进行了明确的划分。,2,),共享资源,。一个服务器可以在同一时刻为多个客户机提供服务,并且服务器具有并发控制、封锁等能力,从而协调多用户对于共享资源的访问。,3,),不对称协议,。在客户机与服务器之间存在着多对一的主从关系。即客户通过请求与服务器主动对话,而服务器则是被动地等待客户请求。,4,),定位透明性,。,C/S,系统应该向客户提供服务器位置透明性服务。所谓透明性是指某一种实际存在的事物具有看来好像不存在的性质。定位透明性是指用户不必知道服务器的位置,就可以请求服务器的服务。,5,),基于消息的交换,。客户机和服务器是一对耦合的系统,它们通过消息传递机制互相协作。消息是服务请求与服务响应的媒介。,6,),可扩展性,。,C/S,系统可以水平地或垂直地扩展。水平扩展是指添加客户工作站对系统性能影响很小,垂直扩展是指移植到更大的或者更快的服务器或多服务器系统中将提高系统的整体性能。,5,2.B/S(Brower/Server),模式,B/S,模式由浏览器、,Web,服务器、数据库服务器,3,个部分组成。在这种模式下,客户端使用一个通用的浏览器,用户的所有操作都是通过浏览器进行的。该结构的核心部分是,Web,服务器,它负责接受远程,(,或本地,),的,HTTP,查询请求,然后根据查询的条件到数据库服务器中获取相关数据,再将结果翻译成,HTML,和各种页面描述语言,回传至提出查询请求的浏览器。,Web,服务器,Web,浏览器,数据库服务器,图,4-2 B/S,模式结构图,4.1.2,网络数据库应用系统体系结构,6,基于,B/S,结构,开发应用系统的的,特点,如下:,1),由于,Web,支持底层的,TCP/IP,协议,使,Web,网与局域网都可以做到连接,从而彻底,解决了异构系统的连接问题,。,2),由于,Web,采用了“瘦客户端”,使,系统的开放性得到很大的改善,,系统对将要访问系统的用户数的限制有所放松。,3),系统的相对集中性使得系统的维护和扩展变得更加容易,。比如数据库存储空间不够,可再加一个数据库服务器;系统要增加功能,可以新增一个应用服务器来运行新功能。,4,),界面统一,(,全部为浏览器方式,),,操作相对简单,。,5,),业务规则和数据捕获的程序容易分发,。,7,3.B/S,与,C/S,的混合模式,将上述两种模式的优势结合起来,即形成,B/S,和,C/S,的混合模式。对于面向大量用户的模块采用三层,B/S,模式,在用户端计算机上安装运行浏览器软件,基础数据集中放在较高性能的数据库服务器上,中间建立一个,Web,服务器作为数据库服务器与客户机浏览器交互通道。而对于系统模块安全性要求高,交互性强,处理数据量大,数据查询灵活时,则使用,C/S,模式,这样就能充分发挥各自的长处,开发出安全可靠,灵活方便,效率高的数据库应用系统。,4.1.2,网络数据库应用系统体系结构,8,4.1.3 B/S,、,C/S,体系数据库应用系统的比较,1.B/S,体系数据库应用系统的优、缺点,优点,1),简化了客户端。,2),简化了系统的开发和维护。,3),使用户的操作变得更简单。,4)B/S,结构特别适合于网上信息发布,使得传统的信息管理系统的功能有所扩展,这是,C/S,结构无法实现的。,9,(2),缺点,1),企事业单位或部门是一个有结构、有管理、有确定任务的有序实体,而,Intemet,面向的却是一个无序的集合,,B,S,必须适应并迎合长期,C,S,下的有序需求方式。,2),传统的工作中已经积累了或多或少的各种基于非,Internet,技术上的应用,与这些应用连接是,Intranet,一项极其重要而繁重的任务。缺乏对动态页面的支持能力,没有集成有效的数据库处理功能,安全性难以控制,好集成工具不足等,也是,B,S,目前存在的问题。,10,2.C/S,体系数据库应用系统的优、缺点,优点,1,)交互性强。,2,),C/S,模式提供了更安全的存取模式。,3,)采用,C/S,模式降低网络的通信量。,4,)由于,C/S,在逻辑结构上比,B/S,结构少一层,对于相同的任务,,C/S,结构完成的速度总比,B/S,快。使得,C/S,结构更利于处理大量数据。,11,(2),缺点,1),开发成本较高。,C,S,结构对客户端软硬件要求较高,尤其是软件的不断升级,对硬件要求不断提高,增加了整个系统的成本,客户端越来越臃肿。,2),移植困难。不同开发工具开发的应用程序,一般来说互不兼容,不能在其他平台上运行。,3),用户界面风格不一,使用繁杂,不利于推广使用。,4),维护复杂,升级麻烦。如果应用程序要升级,必须到现场为每个客户机上的应用程序维护、升级。,12,3.B/S,、,C/S,体系数据库应用系统的选择,(1),适合采用,C,S,结构的应用系统一般应具备以下特点:,1),安全性要求高。,2),要求具有较强的交互性。,3),使用范围小,地点相对固定。,4),要求处理大量数据。,(2),适合采用,B,S,结构的应用系统应具备以下特点:,1),使用范围广,地点灵活。,2),功能变动频繁。,3,)安全性、交互性要求不同,。,13,4.2,数据库应用程序的开发设计和一般步骤,4.2.1,数据库应用系统开发开发方法,1.,网络数据库应用系统的开发方法,常用的几种软件开发方法。,结构化方法,1),结构化分析,。就是面向数据流自顶向下逐步求精进行分析。结构化分析的步骤为:,按照可行性研究后画好的数据流图,根据输出要求沿数据流图回溯,检验输出及运算所得到的信息是否能满足输出要求。,请用户复查数据流图,是否能满足用户要求。,细化数据流图,把比较复杂的处理过程分解细化。,编写文档,并进行复查和复审。,14,2),结构化设计,。分为总体设计和详细设计两部分。,总体设计要确定系统的具体实现方法和软件的具体结构。其步骤为:,根据结构化分析的结果选择最佳实现方案。,功能分解,以确定系统由哪些模块组成,以及这些模块之间的关系。,设计软件结构,根据数据流图的类型,(,处理型、事务型,),采用相应的映射方法,映射成相应的模块层次结构,并对其优化。,进行数据库设计,根据数据字典进行数据库的逻辑设计。,详细设计是借助程序流程图、,N-S,图或,PAD,图等详细设计工具,描述实现具体功能的算法。,3),结构化编程,。采用结构化语言对详细设计所得到的算法进行编码。这一方法开发步骤明确,,SA,、,SD,、,SP,相辅相成,使软件开发的成功率大大提高,深受软件开发人员的青睐。,15,原型化方法,产生原型化方法的原因很多,主要是随着系统开发经验的增多,软件开发人员也发现并非所有的需求都能够预先定义,而反复修改是不可避免的。当然,采用原型化方法还是因为开发工具的快速发展,可以让用户得知系统框架。实现原型法有两种途径,分别是:抛弃原型法和演化原型法。原型化开发适合于用户业务不确定,需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。,(3),面向对象的开发方法,随着面向对象编程,(OOP),向面向对象设计,(OOD),和面向对象分析,(OOA),的发展,形成了面向对象的软件开发方法,(Object Modeling Technique,,,OMT),。这是一种自底向上和自顶向下相结合的方法,它以对象建模为基础,不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。,16,4.2.2,数据库应用系统开发的一般步骤,认真收集、分析用户需要,分析用户需要,编写用户需求说明书,设计和建立数据库,设计系统功能,编写程序,调试、编写使用手册,交给用户使用,维护,17,4.2.2,收集、分析用户需求,用户需要分析是非常重要的,它将关系到一个应用程序的成功和失败。因此,要使每一位参于新系统开发的人员都清楚用户的需求。,在收集用户需求时要注意几点:,注意与用户的交流;,在用户纷繁复杂的意见中把握系统本质的需求;,关注系统开发过程中需求的改变;,在一个应用系统中,开发者需要收集以下三种不同的需求:,功能需求,数据需求,性能需求,18,4.2.3,设计和建立应用系统,设计和建立应用系统时,主要进行以下几个方面的工作,:,建立逻辑数据模型,;,选择数据库管理系统并完成逻辑设计的物理实现,;,实现用户所需求的功能,;,制作能重复使用的构件,;,使用开发管理工具,;,指定用户角色和权限,;,提供一致的用户界面,;,在应用程序中要加入诊断功能,;,19,4.2.4,测试应用系统,在应用程序开发的各个阶段都要进行测试。测试人员和测试内容的选择是很重要的。测试内容的选择可考虑以下几点:,检验所建立的逻辑模型是否完整、准确;,系统的用户界面、菜单结构和流程控制是否得到用户的认可;,装载数据库的数据要有代表性,既要有继承性数据也要有新数据,用以验证数据模型、约束和容量假设;,容错性测试,验证应用系统能否接受输入、拒绝无效输入和选择,在输入规则的和不规则的测试数据后得到的结果是否和预期的一样;,校验,T-SQL,程序单元、如视图、存储过程等数据库对象的预期性能;,模拟不同的应用负载,以测试系统在不同负载下的性能。,20,4.2.5,安装和实施应用程序,在应用系统安装和实施间应考虑以下几个问题:,安装应用系统;,对应用系统进行验收;,用户培训;,提供系统使用说明书及联机帮助;,4.2.6,维护应用系统,本章首页,21,4.3,教务管理数据库系统的设计概述,教务管理数据库系统分为两个部分:一部分是提供原始数据信息的服务器的数据库系统的分析和设计;另一部分是进行数据处理的客户端应用程序的分析和设计。本课程主要讨论数据库系统的分析和设计。,与数据库分析、设计相关的,工作步骤,是:,进行教务管理系统的需求分析;,进行数据库的逻辑设计,即将用户需求转化为数据库的逻辑模型;,逻辑模型的物理实现,在,SQL,上创建数据库、创建表及其他数据库对象;,设计和实现数据库的完整性,即实现域完整性、实体完整性、参照完整性;,对数据库服务器进行编程和管理;,本章首页,22,4.4,教务管理系统的基本要求,存储、检索、维护有关学生的信息;,存储、检索、维护有关教师的信息;,存储、检索、维护有关每个系的信息;,存储、检索、维护有关每个班的信息;,存储、检索、维护有关课程及使用教材的信息;,存储、检索、维护有关课程安排的信息;,打印每个学期每个班的课程表。,本章首页,23,4.5,数据库的逻辑设计,数据库的逻辑设计是描述数据库的组织结构、生成数据库模式。数据库模式定义如下内容:存储什么信息、数据的组织、需要什么表、列的定义。推荐的方法是采用,ERA,模型。,4.5.1,教务管理系统的,ERA,模型,ERA,模型是实体(,Entity,),-,关系(,Relation,),-,属性(,Attribute,)模型,。其作用是描述其组织的概念模型,,ERA,模型主要由实体、关系、属性,3,个组件组成。,在,ERA,模型中,,实体一般用长方形表示,,它在,DB,的逻辑设计中补转化为表。,关系一般用菱形表示,,在,DB,的逻辑设计中,关系是通过主键和外键来描述的,用于维护参照完整性,它也被转化为表。,属性一般用椭圆形表示。,在,DB,的逻辑设计中,属性被转化为表中的列或字段。,经分析本系统存在如下实体:学生、教师、系、班级、课程、教材。,各实体的相关属性分析见,P73,。,24,关系是实体和实体之间存在的某种联系。关系除了具有实体本身的某些属性外,还有一些自己的附加属性。如“学生”和“课程”是学习关系,本门课程的学习时间,考试成绩,是否取得学分等就是“学生”和“课程”的附加属性。,“学生”、“课程”的,ERA,模型见,P74,图,4-5,。,4.5.2,从,ERA,模型到逻辑数据库的转化,将,ERA,模型转化为逻辑数据库有两种方法:一种是采用,ERWin,、,Power Design,这样的工具进行转化,另一种是手工的方法进行转化,这两种转化方法的原理是一样的。,假设存在实体,a,和实体,b,,现将他们转化为表,A,和表,B,,它们的主键分别是,Pa,和,Pb,。,实体,a,和实体,b,是一对一关系(,1,:,1,),:既可以将表,A,的主键,Pa,添加到表,B,中充当外键,也可以将表,B,中的主键,Pb,添加到表,A,中充当外键。,实体,a,和实体,b,是一对多的关系(,1,:,N,),:必须把表,A,中的主键,Pa,添加到表,B,充当外键。,25,实体,a,和实体,b,是多对多的关系(,M,:,N,),:除了生成表,A,和表,B,外,还应该生成一张关系表。这个关系表的列是:由表,A,的主键,Pa+,表,B,的主键,Pb+,关系自己的属性。,4.5.3,逻辑设计的其他考虑,在设计数据库时,应该首先考虑创建规范化的数据库。一般要求满足第三范式(,3NF,),即实体中所有一列必须完整依赖于整个主关键字而不是关键字的一部分。然后,再根据实际的编程难易程度,考虑降低规范化程度,确定数据库的结构。在实际的数据库管理系统设计过程中,有时会给某个表增加一个冗余列,其实,这个冗余列的值可以通过连接查询来获得。之所以增加这个冗余列是为了减少应用程序中两个表的连接,方便编程和加快整个程序的执行速度。规范化程度降低了,但系统的其他性能提高了。例如,可以在表,student_course,中增加一列“学生姓名”,这一列是冗余的,但查询简单、方便了。,本章首页,26,4.6,逻辑设计的物理实现,数据库最终是要存储在物理设备上的。对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,你为数据库物理设计。或叫数据库的物理实现。这一步首先是根据数据库的结构、系统的大小、系统需要完成的功能及对系统的性能要求,决定选用哪个数据库管理系统。目前,数据库产品市场上比较好的产品有:,Microsoft SQL Server,、,Oracle,、,IBM DB/2,,,Sybase,等。假定选择了,Microsoft SQL Server 2005,,在,DBMS,确定以后,应根据,SQL Server 2005,的数据库实现方法完成数据库的物理实现。,本章首页,27,4.7,设计数据完整性,正确创建数据库后,需要考虑数据的完整性、数据的安全性等要求。数据的完整性主要指数据的正确性、有效性、相容性,强制实施数据完整性以确保数据库中的数据的质量。,创建表时,应注意:,表名惟一;,列名惟一;,数据行惟一;,而且应该考虑列限制:,列值非空;,惟一性,列值不允许改变,SQL,中,系统没有实现列限制,需要用户自己进行设计、实施。可以通过缺省、规则,编写触发器、存储过程来实现数据完整性的要求。在后面第,6,单中详细介绍。,本章首页,28,4.8,数据库服务器编程,在实现了数据完整性要求后,还应采用批、脚本、触发器、存储过程等方式来进行数据库服务器编程,实现自动管理,通过远程存储过程实现本地客户同远程服务器的通信。,本章首页,29,4.9,设计完成后的表及表中的列,教务管理系统经分析,需要,P76-P77,页的若干张数据表。,1.student,表,2.department,表,3.teacher,表,4.class,表,5.course,表,6.book,表,7.class_coursr,表,8.student_course,表,9.teacher_course_class,表,本章首页,30,
展开阅读全文