资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第七讲网络数据库开发技术,*,数据库应用结构概述,数据库运行的软、硬件环境,通过该环境,用户可访问数据库中的数据,分类,集中结构,文件服务器结构,客户/服务器结构,互联网结构,发展过程,集中式,文件服务器式,客户/服务器两层结构,互联网三层或多层结构,数据访问接口,应用程序访问数据库的通道,分为专用接口和通用接口(介绍通用接口),第七讲网络数据库开发技术,2026/10/24,第七讲网络数据库开发技术,集中式结构,20世纪60-70年代,大型机环境,用户从终端输入命令传到主机,主机将结果返回终端,所有资源数据、处理程序都在主机上,集中管理,安全性好,但费用昂贵,不能从逻辑上划分应用程序,个人电脑的普及,客户端,终端命令,终端2,大型机,终端1,终端,n,执行结果,数据库,应用程序,2026/10/24,第七讲网络数据库开发技术,文件服务器结构,20世纪80年代,个人计算机进入商用,局域网问世,文件服务技术诞生,应用程序在工作站上运行,处理在客户端完成,文件服务器只提供资源数据的集中管理和访问途径,可共享数据资源、集中管理,而又分散应用程序,费用低廉、配置灵活,网络上数据流动大,客户端,文件请求,工作站2,网络文件服务器,工作站1,工作站,n,文件,数据库,应用程序,应用程序,应用程序,2026/10/24,第七讲网络数据库开发技术,客户/服务器结构,为解决性能和费用问题,按照需要将应用程序逻辑划分在工作站和服务器上运行,完成一项任务时,工作站和服务器上的应用程序可协同工作,目前支持该结构的数据库管理系统有:,SQL Server、Sybase,和,Oracle,在该结构中,客户端常称为前台或前端客户,把服务器称为后台或后端服务器,客户端,请求,工作站2,服务器,工作站1,工作站,n,结果,数据库,应用程序,应用程序,应用程序,应用程序,2026/10/24,第七讲网络数据库开发技术,数据访问接口,专用接口,:特定数据库管理系统专用,通用接口,:大多数数据库管理系统通用,目前流行的通用访问接口,ODBC(,Open DataBase Connectivity),开放数据库互连,OLE DB,对象链接与嵌入式数据库,2026/10/24,第七讲网络数据库开发技术,ODBC,提出背景,提出前,应用程序访问数据库使用数据库系统提供的专用接口,一个应用程序很难访问多个数据库管理系统,如,建立企业级管理信息系统时,因各部门根据自身业务特点使用不同,DBMS,,而使用专用接口无法实现,开发人员需学习多种接口技术而为其造成很大麻烦,概述,ODBC,为,Microsoft,开发的一套开放的数据库系统应用程序接口规范,一套高层调用接口的规范和基于,DDL,的运行支持环境,使应用程序使用标准的,ODBC,接口和,SQL,语句,而数据库的底层操作由各个数据库驱动程序来完成,提供在不同数据库环境下,C/S,结构的客户访问异构,DBMS,的接口,在数据库管理系统发生变化时,客户端应用程序不用作任何改变(很好的移植性),2026/10/24,第七讲网络数据库开发技术,体系结构,ODBC,应用程序,Word,、,Excel,、,VB,、,VC+,,调用,API,与,ODBC,驱动管理器进行动态或静态连接,ODBC,驱动程序管理器,Windows,下的应用程序,主要作用装载,ODBC,与动程序、管理数据源、检查,ODBC,参数的合法性,不能直接访问数据库,将访问操作提交给数据库驱动程序,通过驱动程序实现对数据库的各种操作,数据库操作结果通过驱动程序返回给应用程序,数据源,可通过,ODBC,连接的任何数据库管理系统,包括数据库、,DBMS,和运行,DBMS,的服务器,用户使用有意义的数据源名访问数据库,数据源名屏蔽了数据库服务器之间的差别,数据库驱动程序,动态链接库形式,建立与数据源的连接,向数据源提交用户请求,执行,SQL,语句,在数据库应用程序和数据源之间进行数据格式转换,向应用程序返回处理结果,应用程序,ODBC,驱动程序管理器,驱动程序,驱动程序,驱动程序,数据源,数据源,数据源,2026/10/24,第七讲网络数据库开发技术,ODBC,的3种数据源,用户数据源(用户,DSN),只有定义该数据源的机器上的该用户才能够使用,系统数据源(系统,DSN),定义该数据源的当前机器上的所有用户都可使用,文件数据源(文件,DSN),将用户定义的数据源信息保存到一个文件中,并可被不同机器上安装了相同驱动程序的用户共享,ODBC,数据源存储在注册表的各个不同注册键中,用户数据源信息存储在,HK_CURRENT_USER,,系统数据源信息存储在,HKEY_LOCAL_MACHINE,键中,2026/10/24,第七讲网络数据库开发技术,用户数据源对于每个用户是唯一的,系统数据源可以用于系统中所有用户,建立系统,DSN,选择“系统,DSN”,选项卡,单击“添加”按钮,在“创建新数据源”对话框中选择“,SQL Server”,,单击“完成”,在“建立新的数据源到,SQL Server”,对话框中,输入“数据源名”及“,SQL Server,服务器”,在后面出现的窗口中选择“,SQL Server,验证方式”等信息,在“,ODBC SQL Server,安装”对话框中单击“测试数据源”按钮,测试成功后,新建数据出现在“,ODBC,数据源管理器”窗口中,2026/10/24,第七讲网络数据库开发技术,建立新的数据源,2026/10/24,第七讲网络数据库开发技术,OLE DB,和,ADO,背景,信息管理系统的多样性,使用传统文件系统、数据库系统和,Internet,包含的信息,各种文件格式:文本文件、电子表格、电子邮件格式、,HTML,格式,Microsoft,提出了一致的数据访问(,Universal Data Access),策略,在不同应用结构下保证开放和集成,用标准方法访问不同数据类型(关系的、非关系的、非结构的),UDA,基于,OLE DB,来访问所有类型的数据,并通过,ADO,为开发者提供编程模型,OLE DB,与,ADO,的区别,ADO,和,OLE DB,是同一技术的两种表现形式,OLE DB,提供底层数据接口,是面向,API,的调用,ADO,提供了一个对象模型,简化了应用程序使用,OLE DB,获取数据的过程,2026/10/24,第七讲网络数据库开发技术,ADO,(,ActiveX Data Object,)概述,实现与,OLE-DB,兼容的数据源(如,SQL Server,)的连接,实现对数据库的连接、数据的查询、数据的修改、数据库的更新,面向对象的编程模型,ADO,对象中的3个重要对象,Connection,对象,包含与数据源连接的信息,Command,对象,包含与一个命令相关的信息,如:查询字符串、参数定义,Recordset,对象,包含了从数据源得到的记录集,2026/10/24,第七讲网络数据库开发技术,在,VB,中可通过两种方式使用,ADO,对象模型,使用,ADO,数据控件,将,ADO,对象模型封装在,ADO,数据控件中,通过使用该控件的属性、方法和事件来操作,ADO,对象模型,达到访问数据库的目的,其属性和方法的使用与直接使用,ADO,对象模型是一致的,直接使用,通过引用,ADO,对象模型所在的,ActiveX Data Objects,类库,可直接使用该对象模型中的所有对象,及其相关属性、方法和是事件,2026/10/24,第七讲网络数据库开发技术,ADO,数据控件,使用,ADO,对象模型快速建立数据绑定控件和数据库提供者之间的连接,数据绑定控件,任何具有“数据源”属性的控件,如,VB,中:文本框、标签、列表框,、,复选框、图像图片框等,ADO,控件将访问数据库的结果集通过数据绑定控件显示在用户界面上,添加,ADO,控件,单击,VB“,工程”菜单的“部件”菜单命令,打开“部件”对话框,在该对话框中选择“,Microsoft ADO Data Control 6.0(OLE DB)”,2026/10/24,第七讲网络数据库开发技术,将添加到标准工具箱中的“,Adodc”,控件添加到窗体,ADO,控件主要属性、方法和事件,主要属性,ConnectionString,建立与数据源的连接,双击“属性”窗口中的该属性,出现“属性页”对话框,或双击“属性”窗口中的“自定义”项,在出现的“属性页”对话框中选择“通用”选项卡,前移1条记录指针,移记录指针到最后1条,移记录指针第1条,后移1条记录指针,2026/10/24,第七讲网络数据库开发技术,主要属性,ConnectionString,建立与数据源的连接,双击“属性”窗口中的该属性,出现“属性页”对话框,或双击“属性”窗口中的“自定义”项,在出现的“属性页”对话框中选择“通用”选项卡,在该对话框中选择“使用,ODBC,源”或“使用连接字符串”,若选择“连接字符串”,单击“生成”按钮,出现“数据链接属性”对话框,在该对话框中选择“,SQL Server”,,单击“下一步”,2026/10/24,第七讲网络数据库开发技术,在“连接”选项卡中,设置服务器名、登陆方式、数据库名等信息,单击“测试连接”按钮,测试成功后,确定回到“属性页”中,确定完成,2026/10/24,第七讲网络数据库开发技术,RecordSource,设置数据来源,可以是一个表、查询语句执行的结果、存储过程的执行结果,在“属性”窗口中的“,RecordSource”,上双击,出现“属性页”的“记录源”选项卡,选择命令类型(,CommandType),及根据不同类型的命令,输入表、存储过程的名或命令文本,RecordSet,ADO,数据控件实现数据记录操作的最重要属性,为对象属性,有自己的属性和方法,称为记录集,存放数据提供者所提供的数据,存于客户端的内存中,VB,通过记录集对数据库汇总数据进行操作,每个记录集具有一个行指针,指向当前记录,2026/10/24,第七讲网络数据库开发技术,主要方法,Refresh,刷新,ADO,数据控件属性,使更改后的,ADO,控件属性生效,更改了,ConnectionString,属性后,使用,Refresh,重新建立与数据库的新连接,更改了,RecordSource,属性后,使用,Refresh,重新执行获取数据源的操作,语法格式:,ADO,控件名.,Refresh,主要事件,EndOfRecordset,在记录集中移动记录指针超过最后一条记录时激活,WillChangeField,和,FieldChangeComplete,对记录集中的一个或多个字段修改前和后激活,WillChangeRecord,和,RecordChangeComplete,对记录集中的一个或多个记录修改前和后激活,WillMove,和,MoveComplete,在记录集中移动当前记录指针前和后激活,2026/10/24,第七讲网络数据库开发技术,RecordSet,对象主要属性、方法,属性名,含义,BOF,记录集指针移到第1条记录的前面时,为真,EOF,记录集指针移到最后1条记录的后面时,为真,Recordcount,记录集中记录的个数,Sort,设置记录集中记录按照某个字段进行排序,AbsolutePosition,当前记录在记录集中的序号,从1开始,ActiveCommand,记录集中创建的命令,ActiveConnection,记录集中创建的连接,Bookmark,记录集中当前记录的标识号,Fields,记录集中字段集合,为数组形式,其每个元素为一个字段,访问某个字段的方法为:,Fields(”,字段名)或,Fields(,索引),2026/10/24,第七讲网络数据库开发技术,RecordSet,对象主要属性、方法,RecordSet,对象的方法是实现记录集操作的关键,方法名,含义,Move,方法组:,MoveFirst,MovePrevious,MoveNext,MoveLast,与,ADO,控件年、面板上的按钮等效,将记录集指针移到第1条记录,将记录集指针前移1条记录(不能自动检测移动超出范围),将记录集指针后移1条记录(不能自动检测移动超出范围),将记录集指针移到最后1条记录,AddNew,在记录集中添加1条记录,Update,将新记录缓冲区中的记录或当前记录的修改写库,保存修改,Delete,删除记录集中当前记录,删除后不可恢复,CancelUpdate,取消新添加的记录或取消对当前记录所做的修改,应在调用,Update,之前使用,否则不能取消。注:若未创建新记录或修改记录,使用该方法会出错,Find,在当前记录集中查找满足条件的记录,格式为:,ADO,控件名.,RecordSet.Find(“,查找条件”),其中:查找条件中可包含比较运算符、逻辑运算符和,Like,如:,Find(”,年龄20,And,年龄 MaxConnect Then ,无空闲控件,Exit Sub,End If,Load Server(i),Server(i).Accept requestID,RemoteIP(i)=Server(i).RemoteHostIP,TotalClient=TotalClient+1,Lbl_ClientNum=Trim(Str(TotalClient),End Sub,2026/10/24,第七讲网络数据库开发技术,Private Sub Server_Close(Index As Integer),Server(Index).Close,Unload Server(Index),InUsed(Index)=False,Connect_No(Index)=-1,TotalClient=TotalClient-1,Lbl_ClientNum=Trim(Str(TotalClient),End Sub,Private Sub Server_DataArrival(Index As Integer,ByVal bytesTotal As Long),Dim InString As String,Server(Index).GetData InString,Lbl_IpAddr=Server(Index).RemoteHostIP,Select Case InString,Case Insert,Lbl_Event=,插入数据,Case Update,Lbl_Event=,修改数据,Case Delete,Lbl_Event=“,删除数据”,Server(Index).SendData InString,End Select End Sub,2026/10/24,第七讲网络数据库开发技术,客户端代码,Public Connected As Boolean,Private Sub Client_Close(),Connected=False,MsgBox,服务器没有响应,End,End Sub,Private Sub Client_Connect()Connect,操作完成时发生,使用,Connect,事件确认已成功建立了连接,Connected=True,End Sub,Private Sub Client_DataArrival(ByVal bytesTotal As Long),新数据到达时发生,Dim BackStr As String,Client.GetData BackStr,Select Case BackStr,Case Insert,MsgBox,服务器接受命令:插入数据,Case Update,MsgBox,服务器接受命令:修改数据,Case Delete,MsgBox,服务器接受命令:删除数据,End Select,End Sub,2026/10/24,第七讲网络数据库开发技术,Private Sub Client_Error(ByVal Number As Integer,Description As String,ByVal Scode As Long,ByVal Source As String,ByVal Help String,ByVal HelpContext As Long,CancelDisplay As Boolean),Connected=False,MsgBox,服务器没有响应,End,End Sub,Private Sub Cmd_Delete_Click(),If Connected=True Then,Client.SendData Delete,Else,MsgBox,服务器没有响应,End If,End Sub,Private Sub Cmd_Exit_Click(),Unload Me,End Sub,Private Sub Cmd_Insert_Click(),If Connected=True Then,Client.SendData Insert,Else,MsgBox,服务器没有相应,End If,End Sub,Private Sub Cmd_Modify_Click(),If Connected=True Then,Client.SendData Update,Else,MsgBox,服务器没有相应,End If,End Sub,Private Sub Form_Load(),Connected=False,Client.Connect,End Sub,2026/10/24,第七讲网络数据库开发技术,系统设计,系统主要功能模块,学生信息管理,教师信息管理,课程信息管理,成绩管理,系统用户管理,系统管理员用户管理,系主管用户管理,普通用户管理,主要功能描述,实现各个模块的添加、修改、删除、查询记录的功能,画出功能模块的结构图,并用,DFD,图描述各个模块的功能,2026/10/24,第七讲网络数据库开发技术,系统流程分析(画出流程图),三种不同用户进入系统后的操作流程,如:普通用户管理者,进入系统,学生信息管理,教师信息管理,成绩管理,课程信息管理,系统用户管理,查询课程信息,查询本班的成绩信息,查询自己的成绩信息,查询教师列表,查询学生信息,拒绝,2026/10/24,第七讲网络数据库开发技术,数据库设计,创建数据库,数据库逻辑设计,创建表的脚本文件,工程框架的设计,创建工程,添加模块,创建数据源,系统主界面的设计,登录模块的设计,各个功能模块的设计,服务器程序的设计,主界面的设计,程序设计,2026/10/24,第七讲网络数据库开发技术,
展开阅读全文