版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章
数据库应用程序开发9.1数据库应用程序设计方法9.2数据库应用程序的体系结构9.3数据库与应用程序的接口9.4数据库应用程序开发9.1数据库应用程序设计方法1.结构特性设计结构特性的设计是指数据库结构的设计。其结果是得到一个合理的数据模型,以反映现实世界中事物间的联系,它包括各级数据库模式(模式、外模式和内模式)的设计。返回首页2.行为特性设计行为特性的设计是应用程序设计,包括功能组织、流程控制等方面的设计。其结果是根据行为特性设计出数据库的外模式,然后用应用程序将数据库的行为和动作(如数据查询和统计、事物处理及报表处理)表达出来。返回本节9.2数据库应用程序的体系结构9.2.1主机集中型结构9.2.2文件型服务器结构9.2.3二层客户/服务器(C/S)结构9.2.4三层客户/服务器结构返回首页9.2.1主机集中型结构主机集中型结构的数据库应用系统一般在一台主机(大型计算机或小型计算机)带多台终端的环境下运行,这种结构在20世纪60~70年代比较盛行。在这种结构的数据库应用程序中,数据库的存储、计算、读取与应用程序的执行,全部集中在后端的主机上执行。用户通过前端的终端输入信息传至主机处理,主机处理完成后将处理的结果返回到前端的终端显示给用户。其结构如图9-2所示。返回本节9.2.2文件型服务器结构到了20世纪80年代,随着苹果计算机、IBM个人计算机的诞生,其开放性的结构、日渐平易近人的价格,以及愈来愈强的执行性能,已为一般企业所能负担,而文件型数据库应用程序也就在此时趁势崛起。在文件型数据库应用程序中,数据存放在文件型数据库中,如早期的dBaseIII,到今天的Access,就是一些拥有高知名度的文件型数据库。存放数据库文件的服务器作为文件服务器使用,应用程序的数据运算和处理逻辑则存放在前端的工作站中。其体系结构如图9-3所示。例如:在数据库中有一客户表,共有10,000条客户资料。现假设想找出客户编号为00001的客户信息,则文件型数据库应用程序处理这个请求的方法是:(1)先把这10,000条客户数据从文件服务器通过局域网传至前端工作站。(2)前端工作站再从这10,000条客户数据中查找客户编号为00001客户信息。(3)查询作业结束后,再把这10,000条记录返回到文件服务器。返回本节9.2.3二层客户/服务器(C/S)结构为了解决费用和性能的矛盾,客户/服务器(C/S)结构就应运而生了。该结构是由一组性能良好且稳定的主机来做数据库服务器,然后连上一群充当客户机的工作站而成。在这种结构中,数据库的管理由数据库服务器完成,应用程序的数据处理,如数据访问规则、业务规则、数据合法性校验等则可能有两种情况:一是全部由客户机来完成,客户机向服务器传送的是结构化查询语言SQL;二是由客户机和服务器共同来承担,程序处理一部分在客户端以程序代码来实现,一部分在服务器端以数据库中的触发器或存储过程实现,客户机向服务器传送的是SQL或要进行处理的参数。其系统结构如图9-4所示图9-4客户/服务器结构以同样要从10,000条客户数据记录中,找出客户编号为00001的客户信息,客户/服务器结构对这种请求的处理方式是:(1)前端客户机向后端数据库服务器发出请求。(2)数据库服务器在收到前端客户机的请求后,自客户表中找出编号为00001的客户信息。(3)数据库服务器再把查询到的结果传至前端客户机。由于这种通信方式简单,软件开发起来容易,现在很多的应用软件都是基于这种二层的客户/服务器模式的,但这种结构模式的软件存在以下问题:伸缩性差。性能较差。重用性差。移植性差。返回本节9.2.4三层客户/服务器结构分离的目的是使客户机上的所有处理过程不直接涉及到数据库管理系统,分离的结果将应用程序在逻辑上分为三层:用户服务层:提供信息浏览和服务定位。主要是实现用户界面,并保证用户界面的友好性、统一性。业务处理层:实现数据库的存取及应用程序的商业逻辑计算。数据服务层:实现数据定义、存储、备份和检索等功能,主要由数据库系统实现。图9-5三层客户/服务器结构三层结构的系统具有如下特点:(1)业务逻辑放置在中间层可以提高系统的性能,使中间层业务逻辑处理与数据层的业务数据紧密结合在一起,而无需考虑客户的具体位置。(2)添加新的中间层服务器,能够满足新增客户机的需求,大大地提高了系统的可伸缩性。(3)将业务逻辑置于中间层,从而使业务逻辑集中到一处,便于整个系统的维护和管理及代码的复用。一个基于Web的应用程序在逻辑上可能包含如下几层:1层,由Web浏览器实现的一个客户层的界面。2层,由Web服务器实现的一个中间层的任务分配机制。3层,由一些服务器端脚本实现的中间层服务。4层,由关系数据库实现的数据层存储机制。图9-6互联网应用程序结构返回本节9.3数据库与应用程序的接口9.3.1ODBC9.3.2一致数据访问技术UDA(UniversalDataAccess)9.3.3JDBC返回首页9.3.1ODBC1.ODBC的体系结构2.管理数据源1.ODBC的体系结构ODBC的体系结构如图9-7所示,它由数据库应用程序、驱动程序管理器、数据库驱动程序和数据源四部分组成。(1)数据库应用程序。(2)驱动程序管理器(3)数据库驱动程序。(4)ODBC数据源。2.管理数据源ODBC驱动程序管理器可以建立、配置或删除命名的数据源,下面以配置OracleODBC数据源为例讲解配置数据源的方法。其步骤如下:(1)启动ODBC驱动程序管理器。选择“我的电脑”→“控制面板”→“管理工具”,双击“数据源(ODBC)”图标打开ODBC数据源(驱动程序)管理器,如图所示。使用ODBC连接数据库时,提供了3种DSN:用户DSN、系统DSN和文件DSN.这里选择系统DSN。图9-8“系统DSN”选项卡(2)选择ODBC驱动程序。单击“添加(D)…”按钮,将弹出如下图所示的对话框,选择数据源驱动程序“OracleinOraClient10g_home01”(不同的安装可能有不同的名称),单击“完成”按钮。(3)输入ODBC数据源名称,选择数据源的SQL服务器。如下图所示,将数据源命名为SelBook,TNS服务名选择为ORCL(第二章中客户端安装中的NET服务配置),用户名输入BookSys,单击OK按钮,完成OracleODBC的配置工作。9.3.2一致数据访问技术UDA(UniversalDataAccess)1.OLEDB2.ADO(ActiveXDataObject)3.一致性访问技术的体系结构1.OLEDB继ODBC之后,微软又推出了OLEDB。简单地说,OLEDB是一种技术标准,目的是提供一种统一的数据访问接口。这里所说的“数据”,除了标准的关系型数据库中的数据之外,还包括邮件数据、Web上的文本或图形、目录服务,以及主机系统中的IMS和VSAM数据。OLEDB标准的核心内容就是要求为以上这些各种各样的数据存储(DataStore)都提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。OLEDB将传统的数据库系统划分为多个逻辑组件,这些组件之间相对独立又相互通信。这种组件模型中的各个部分被冠以不同的名称。数据提供者:包含数据并将数据输出到其他组件中去。提供者大致分为两类:数据提供者和服务提供者。业务组件:利用数据服务提供者、专门完成某种特定业务信息处理、可以重用的功能组件。消费者:是使用OLEDB对存储在数据提供者中的数据进行控制的应用程序。2.ADO(ActiveXDataObject)ADO是OLEDB的消费者,与OLEDB提供者一起协同工作。它利用低层OLEDB为应用程序提供简单高效的数据库访问接口,ADO封装了OLEDB中使用的大量COM接口,对数据库的操作更加方便简单。ADO实际上是OLEDB的应用层接口,这种结构也为一致的数据访问接口提供了很好的扩展性,而不再局限于特定的数据源,因此,ADO可以处理各种OLEDB支持的数据源。3.一致性访问技术的体系结构一致性访问技术的体系结构即使用ADO和OLEDB获取数据的体系,结构如图9-16所示。从图中可以看出,应用程序既可以通过ADO访问数据也可以直接通过OLEDB访问数据,而ADO则通过OLEDB访问底层数据。返回本节9.3.3JDBC1.JDBC的工作原理用JDBC开发Java数据库应用程序的工作原理如图9-17所示。2.JDBCAPI组成部分JDBCAPI共分为两个不同的层:应用程序层是前端开发人员用来编写应用程序的;驱动程序层是由数据库厂商或专门的驱动程序生产厂商开发的。前端开发人员可以不必了解其细节信息,但是在运行使用应用程序层JDBC的程序之前,必须保证巳经正确地安装了这些驱动程序。具体来说,JDBCAPI包括5个组成部分,如图9-18所示。JDBCAPI包括5个组成部分(1)驱动程序管理器(DriverManager)。(2)驱动程序(Driver)。(3)连接(Connection)。(4)语句(Statement)。(5)结果(ResultSet)。返回本节9.4数据库应用程序开发下面就以此表为例,讲解数据库应用程序开发的过程。字段代码字段名称字段类型长度小数是否为空BOOKID书号char20
NOTNULLBOOKNAME书名varchar20
NOTNULLEDITER作者varchar8
NULLPRICE价格money
NULLPUBLISHER出版社varchar20
NULLQTY库存数量int
NOTNULL假设在数据库设计的实施阶段,已在Oracle数据库中创建账户BOOKSYS,并在此账户中建立了所有的表。其中BOOK表的结构为:返回首页1.用C#访问数据库(1)启动VisualStudio.NET2005,新建一个C#语言的Windows应用项目,如图9-15所示。然后单击“确定”按钮。(2)建立数据源。在VisualStudio.NET2005中的“数据”菜单下选择“添加新数据源”菜单项,将弹出数据源配置向导对话框,选择“数据库”项,单击“下一步”按钮,将弹出数据连接选择对话框,如图9-16所示单击“新建连接”按钮,将弹出添加连接对话框,如图9-17所示通过“更改”按钮选择Oracle数据库提供程序,然后填入数据库实例名(如果只安装Oracle客户端则是Net服务名数据库实例)按“确定”按钮,回到图9-16所示的数据连接选择对话框。选择刚才建立的数据连接,并选择在连接串中包含敏感数据单选钮,然后单击“下一步”按钮,将弹出连接串保存提示对话框,如图9-18所示。选中“是,将连接保存为”复选框。单击“下一步”按钮,将弹出选择数据库对象对话框.选择表BOOK,注意屏幕下方可以输入创建的数据集名,本例中为DataSet1。按“完成”按钮,就完成了数据源的建立工作。(3)新建一个窗口,通过属性窗口将标题改为“图书查询”,并在其上放置一个DataView-Grid。将DataViewGrid的DataSource设置为上面创建的数据源的数据集DataSet1的表BOOK,如图9-20所示。(4)运行该程序,运行结果如图9-21所示2.用Java访问数据库下面同样以books表的查询操作为例,讲解Java通过JDBCAPI操作数据库的方法和步骤。程序代码(SelBook.java)如下:
importjava.sql.*;publicclassSelBook1{publicstaticvoidmain(String[]args){try{//加载数据库驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库Connectionconn=DriverManager.getConnection("jdbc:odbc:SelBook","","");//创建一个SQL语句Statementstmt=conn.createStatement();//查询books表,并将结果集放在结果集对象中ResultSetrs=stmt.executeQuery("select*frombook");//下面的语句为输出查询结果
System.out.println("图书查询结果:");System.out.println("\t图书号\t\t图书名\t\t\t作者\t价格\t出版社\t\t\t数量");while(rs.next()){System.out.print("\t"+rs.getString(1));System.out.print("\t"+rs.getString(2));System.out.print("\t"+rs.ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度独一无二:股权激励合同标的的激励方案与执行步骤
- 2024年度物流服务合同的服务内容和执行标准
- 2024年度物流仓储服务合同标的与服务细节
- 2024年度云计算平台技术支持及维护合同
- 2024年度工程项目合作与技术转让合同
- 2024年度品牌授权合同授权产品范围及授权期限
- 2024年度技术转让合同:电动窗帘核心算法
- 疫情房屋租合同模板
- 法律合同范例库
- 商事合同模板
- 半条被子(红军长征时期故事) PPT
- 第15课《故乡》说课课件(共19张ppt) 部编版语文九年级上册
- 外国器乐作品欣赏2解析课件
- 婚姻财富管理及家庭财富传承课件
- 六年级美术下册第6课《扇面画》优秀课件3人教版
- 公共空间设计餐饮课件
- 食材配送服务方案
- 单身申明具结书
- 2023年7月贵州省普通高中学业水平考试-数学
- 《旅游线路设计与开发》课程教学大纲
- 基于PLC的工业控制系统设计 -自动药片装瓶控制
评论
0/150
提交评论