1第8章数据库应用系统设计2主要内容主要内容•数据库应用系统体系结构•数据库应用系统分析与设计•数据访问编程——以VB为例3一、数据库应用系统体系结构一、数据库应用系统体系结构•分布式数据处理过程•数据库应用系统体系结构411、分布式数据处理、分布式数据处理•操作界面服务–数据的输入与显示(报表显示、图形显示)•商业服务–数据运算与检查(商业规则的检查,如对金额的检查)•数据服务–数据储存与维护(完整性检查)522、数据库应用系统体系结构、数据库应用系统体系结构•根据商业服务层的工作位置不同–以前端为主的两层式结构–以后端为主的两层式结构–三层式处理结构–三层Internet处理结构–多层Internet处理结构Client/Server结构Browser/Server结构N-Tier结构6((11)以前端为主的两层式结构)以前端为主的两层式结构•传统的开发方法•后端服务器只提供数据服务•商业服务由前端工作站完成•开发和调试容易•当用户数增加时,网络数据传送负担加重数据库数据服务数据服务商业服务操作界面服务商业服务操作界面服务服务器端客户端7((11)以前端为主的两层式结构)以前端为主的两层式结构DatabaseLAN界面和程序数据8((22)以后端为主的两层式结构)以后端为主的两层式结构•后端服务器提供数据服务和商业服务•借助存储过程和触发器来完成商业服务•开发和调试受限制•减少了网络数据传送数据库服务器端客户端操作界面服务操作界面服务数据服务商业服务数据服务商业服务9((22)以后端为主的两层式结构)以后端为主的两层式结构DatabaseLAN界面和程序数据和程序10((33)三层式处理结构)三层式处理结构•商业服务独立运行(ActiveX服务器)•可以位于不同服务器,也可以和数据库服务器同一主机•可以分别减轻前后端的工作负荷•开发和调试相对复杂数据库操作界面服务操作界面服务数据服务数据服务商业服务商业服务1112((33)三层式处理结构)三层式处理结构Login_serverActiveX服务Database数据(和程序)界面和程序ActiveXDLL或EXE13((44)三层)三层InternetInternet处理结构处理结构•三层式设计结构•将操作界面服务分割到浏览器和WEB服务器上•商业服务仍然可有多种安排方式•系统可以跨平台运行•客户端管理容易数据库数据服务数据服务商业服务商业服务操作界面服务操作界面服务浏览器浏览器WEB服务器客户端14((44)三层)三层InternetInternet处理结构处理结构Internet/IntranetLANWeb服务器(asp/jsp等文件容器)数据(和程序)html15((55)多层)多层InternetInternet处理结构处理结构•多层式设计结构•将商业服务放到应用服务器•WEB服务器负责操作界面服务•开发维护容易(与三层Internet结构相比)•系统可以跨平台运行•客户端管理容易数据库数据服务数据服务商业服务商业服务操作界面服务操作界面服务浏览器浏览器WEB服务器客户端应用服务器(中间件)16((55)多层)多层InternetInternet处理结构处理结构Internet/IntranetLANWeb服务器(界面文件)数据(和程序)html应用服务器(程序,其它服务)LAN17二、数据库应用系统分析与设计二、数据库应用系统分析与设计系统实施系统评价系统交付使用、运行、维护项目提出需求分析系统分析系统设计制定目标、现行系统分析、确定目标、可行性分析、绘制系统的数据流程图,形成逻辑设计方案模块设计、数据库设计……,形成物理设计方案程序实现根据系统目标、各种设计方案进行检测、评价18三、数据访问编程三、数据访问编程•VB简介•VB访问SQLServer20051911、、VBVB简介简介•MicrosoftVisualStudio标准工具之一•Windows标准程序开发最容易的工具•一个VB工程的基本构成(.vbp)–窗体(包括控件)–窗体文件(.frm文件)//一个窗体一个–模块文件(.bas文件)//所有窗体公用的程序20((11))VBVB工程的开发过程工程的开发过程分析问题设计窗体,确定控件设计窗体及控件的属性编写事件过程的代码根据程序需要确定是否需要模块21((22)窗体、控件和事件)窗体、控件和事件窗体Form1控件Label1,Command1,Command21、窗体和控件是具有自己的属性、方法和事件的对象。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。2、可以对对象(窗体或控件)进行编程。作为程序员,决定更改哪些属性、调用哪些方法、对哪些事件作出响应,从而得到希望的外观和行为。22((22)窗体、控件和事件)窗体、控件和事件单击Command1后单击Command2后23((22)窗体、控件和事件)窗体、控件和事件•窗体文件Form1.frm•控件–Label1–Command1–Command2•模块文件module1.basPrivateSubCommand1_Click()‘Click事件Label1.Caption=欢迎使用VisualBasic!EndSubPrivateSubCommand2_Click()Label1.Caption=GetTime()EndSubFunctionGetTime()AsStringGetTime=Format(Now,yyyy-mm-ddhh:nn:ss)EndFunctionForm1.frm文件module1.bas文件2425262728293031323334353637383940414243444546474849505122、、VBVB访问访问SQLServer2005SQLServer2005SQLServerNetSQLServerNetVB应用程序1)启动服务2)建立ODBC数据源52VBVB访问访问SQLServer2005SQLServer2005的主要方法的主要方法①数据访问对象/Jet②为ODBCAPI编程③使用SQLServer的VisualBasic库(VBSQL)为DB库的API编程④RDO远程数据对象(RemoteDataObjects)⑤ADO数据对象(ActiveDataObjects)53VBVB访问访问SQLServer2005SQLServer2005的主的主要方法要方法•DAO/Jet是为了实现从VB访问Access数据库而开发的程序接口对象。使用DAOs访问SQLServer的过程如下:应用程序准备好语句并送至Jet,Jet引擎(MASJT200.DLL)优化查询,载入驱动程序管理器并与之通讯,驱动程序管理器(ODBC.DLL)通过调用驱动器(SQLSRVR.DLL)的函数,实现连接到数据源,翻译并向SQLServer提交SQL语句且返回结果。下面是一个用DAOs访问SQLServer的VB实例。•FormDeclarationsDimmydbAsDatabaseDimmydynasetAsDynaset•PrivateSubForm_Load() •Setmydb=OpenDatabase(,False,False,ODBC;DSN=Myserver;WSID=LCL;DATABASE=sales) •Setmydynaset=mydbCreateDynaset(Select*fromCustomers)•EndSub54VBVB访问访问SQLServer2005SQLServer2005的主的主要方法要方法•使用VBSQL对DB库API编程DB库是SQLServer的本地API,SQLServer的VisualBasic库(VBSQL)为VisualBasic程序员提供API。从一定意义上说,VBSQL是连接VisualBasic程序到SQLServer的性能最好最直接的方式。VBSQL包含以下三个文件:VBSQL.VBX:包含库函数,具有访问重要的消息和处理错误的能力VBSQL.BI:包括所有的常量和变量说明VBSQL.HLP:Windows帮助文件,使用VBSQL的指南使用VBSQL时,必须将VBSQL.BI加入到VisualBasic工程文件中,并确保VB程序运行时有VBSQL.VBX文件。 一般的DB库API编程的过程是这样的:先通过调用SqlInit对DB库进行初始化,再调用SqlConnection打开一个连接,然后就可做一些工作。55VBVB访问访问SQLServer2005SQLServer2005的主的主要方法要方法•RDO则是访问ODBC的接口。可见,RDO是综合了DAO/Jet、VBSQL/DBLib以及ODBC的优点的对象(Object)。需要强调的是,RDO是包裹着ODBCAPI的一层薄薄的外壳,被设计成在后台(服务器端)有数据库存在的前提下运行,同时也是针对SQLServer和Oracle而特别设计的。RDO的优势在于它完全被集成在VB之中。此外,直接访问SQLServer存储过程、完全支持T-SQL、T-SQL调试集成在开发环境中、VisualDatabaseTools的集成化等,也是RDO的长处。5611)启动)启动SQLServer2005SQLServer2005的所有服务的所有服务•控制面板/管理工具5711)启动)启动SQLServer2005SQLServer2005的所有服务的所有服务•控制面板/管理工具5822)建立)建立ODBCODBC数据源数据源•控制面板/管理工具5922)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6022)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6122)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6222)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6322)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6422)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6522)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6622)建立)建立ODBCODBC数据源数据源•控制面板/管理工具6733)添加)添加ADODataADOData控件控件•ADODataContonl控件–连接属性和记录源•数据绑定控件:DataGrid控件–显示ADOData控件所连接的数据–属性•DatasourceADOData控件Datagrid控件datasource6833)添加)添加ADODataADOData控件控件6933)添加)添加ADODataADOData控件控件7033)添加)添加ADODataADOData控件控件7133)添加)添加ADODataADOData控件控件7233)添加)添加ADODataADOData控件控件7333)添加)添加ADODataADOData控件控件7433)添加)添加ADODataADOData控件控件7533)添加)添加ADODataADOData控件控件7633)添加)添加ADODataADOData控件控件7733)添加)添加ADODataADOData控件控件Step1:添加2个部件Step2:画新控件,并将DataGrid控件和ADODataContonl控件绑定Step3:设置ADODataConton控件的连接属性和记录源Step4:运行可以快速建立数据库应用程序适合于数据查询与显示但有许多缺陷,比如不能调用存储过程7844)利用)利用ADOADO对象对象•ADO通过对象和集合来实现数据库操作79要实现的功能要实现的功能•统计学生的数目•在学生表中增加一条记录•在学生表中删除一条记录•在学生表中修改一条记录•查询学生表的信息80如何实现?如何实现?•画界面•利用Connection对象创建到数据源的连接•利用Command对象执行某个存储过程或SQL语句•利用RecordSet对象控