第六讲(下)Web数据库 计算机网络安全与防护的PPT 互联网软件开发_第1页
第六讲(下)Web数据库 计算机网络安全与防护的PPT 互联网软件开发_第2页
第六讲(下)Web数据库 计算机网络安全与防护的PPT 互联网软件开发_第3页
第六讲(下)Web数据库 计算机网络安全与防护的PPT 互联网软件开发_第4页
第六讲(下)Web数据库 计算机网络安全与防护的PPT 互联网软件开发_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六讲下第六讲下WebWeb数据库数据库 计算机网络计算机网络平安与防护的平安与防护的PPT PPT 互联网软件开发互联网软件开发第六章:第六章:Web数据库介绍数据库介绍内容提纲内容提纲1、Web数据库根本概念数据库根本概念2、Web数据库产品的选择数据库产品的选择3、传统的数据库访问技术、传统的数据库访问技术4、ODBC5、本节结构本节结构、从、从ODBC到到、ADO.NET的数据模型的数据模型u数据访问的层次结构数据访问的层次结构u数据集与数据提供器数据集与数据提供器、数据源控件、数据源控件6.5.1 从ODBC到从从ODBCODBC到到数据库的通用接口数据库的通用接口问题:当前市场上存

2、在着数十种不同类型的数据库问题:当前市场上存在着数十种不同类型的数据库,由于数据库采用的数据格式和接口各不相同,由于数据库采用的数据格式和接口各不相同,因此当应用程序访问时,需要分别编写不同的接因此当应用程序访问时,需要分别编写不同的接口,给应用程序的设计带来了麻烦口,给应用程序的设计带来了麻烦解决方法解决方法: :由系统提供各种不同数据库的驱动程序,由系统提供各种不同数据库的驱动程序,放在应用程序与数据库之间作为中间环节。放在应用程序与数据库之间作为中间环节。微软公司提供的通用接口,多年来已经经历了几次微软公司提供的通用接口,多年来已经经历了几次大的改进:大的改进:ODBCODBCOLEDB

3、OLEDBADOADOADO.NET.ADO.NET.6.5.1 从ODBC到从从ODBCODBC到到ADO.NETODBCADO.NETODBC复习复习ODBCODBC是是Open Database ConnectivityOpen Database Connectivity的缩写,意为的缩写,意为“开放数据库互连。开放数据库互连。这是一种用这是一种用C C语言开发的由多种函数组成的应用程序语言开发的由多种函数组成的应用程序接口接口Application Program Interface, API)Application Program Interface, API)。接口将数据库底层的操

4、作隐藏在接口将数据库底层的操作隐藏在ODBCODBC的驱动程序之的驱动程序之中。应用程序只需要用统一的接口指向中。应用程序只需要用统一的接口指向ODBCODBC,然,然后再由后再由ODBCODBC调用系统提供的驱动程序就能驱动不调用系统提供的驱动程序就能驱动不同类型的数据库。同类型的数据库。6.5.1 从ODBC到从从ODBCODBC到到ADO.NETODBCADO.NETODBC复习复习图接口示意图图接口示意图6.5.1 从ODBC到从从ODBCODBC到到ADO.NETDAOADO.NETDAO、RDORDO尽管通过尽管通过ODBCODBC已经能够驱动大多数常用的数据库,已经能够驱动大多数

5、常用的数据库,但编程接口过于复杂,没有进行优化。但编程接口过于复杂,没有进行优化。微软在微软在ODBCODBC的根底上进行优化:的根底上进行优化:针对针对AccessAccess库库( (* *.mdb).mdb)创立了优化编程接创立了优化编程接DAO(Data DAO(Data Access ObjectAccess Object,数据访问对象,数据访问对象针对针对SQL ServerSQL Server数据库,创立了优化编程接口数据库,创立了优化编程接口RDO(Remote Data ObjectRDO(Remote Data Object,远程数据对象,这,远程数据对象,这种接口还能应用

6、于种接口还能应用于OracleOracle数据库。数据库。6.5.1 从ODBC到从从ODBCODBC到到ADO.NETOLE DBADO.NETOLE DBOLE DBOLE DBObject Link and Embed DatabaseObject Link and Embed Database是在是在ODBCODBC的根底上,用面向对象的思想对的根底上,用面向对象的思想对ODBCODBC的函数的函数重新进行了分类和包装,形成了一种新的标准。重新进行了分类和包装,形成了一种新的标准。可以说可以说ODBCODBC是是OLE DBOLE DB的子类,而的子类,而OLE DBOLE DB是是O

7、DBCODBC的基的基类。类。利用利用OLE DBOLE DB不仅能访问关系型数据库,还能访问非不仅能访问关系型数据库,还能访问非关系型数据如文件等。关系型数据如文件等。6.5.1 从ODBC到从从ODBCODBC到到ADO.NETADOADO.NETADO1 1ADO(ActiveX Data Objects)ADO(ActiveX Data Objects)又对又对OLE DBOLE DB的接口进的接口进行了优化,是一个用于存取数据源的行了优化,是一个用于存取数据源的COMCOM组件。组件。ADOADO是是ODBCODBC和和OLE DBOLE DB的上层接口技术。它比的上层接口技术。它比

8、RDO, RDO, DAODAO等接口具有更高的性能、更小的容量及更简便等接口具有更高的性能、更小的容量及更简便的操作。的操作。使用使用ADOADO接口几乎能够访问全部常用的数据库,如接口几乎能够访问全部常用的数据库,如AccessAccess、SQL ServerSQL Server、OracleOracle、 Informix Informix等,等,还能访问非关系型文件。还能访问非关系型文件。从从ODBCODBC到到ADO.NETADOADO.NETADO1 16.5.1 从ODBC到图图.5.2.ADO, OLE DBADO, OLE DB和和ODBCODBC三者之间的关

9、系三者之间的关系6.5.1 从ODBC到从从ODBCODBC到到1 1该模型从该模型从ADOADO开展而来,不只是对开展而来,不只是对ADOADO的改进,而是的改进,而是采用了一种全新的技术。主要表现为:采用了一种全新的技术。主要表现为:不是采用不是采用ActiveXActiveX技术,而是与技术,而是与NETNET框架紧密结合框架紧密结合的产物。的产物。包含对包含对XMLXML标准的完全支持,这对于跨平台交换数据标准的完全支持,这对于跨平台交换数据具有十分重要的意义。具有十分重要的意义。6.5.1 从ODBC到从从ODBCODBC到到2 2既能在与数据源连接的环境下工作,又能在断开与既能在与

10、数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。特别是后者,非常适合数据源连接的条件下工作。特别是后者,非常适合于网络应用的需要。于网络应用的需要。网络环境下,保持与数据源连接,不仅效率低,付网络环境下,保持与数据源连接,不仅效率低,付出的代价高,而且常常会引发由于多个用户同时访出的代价高,而且常常会引发由于多个用户同时访问时带来的冲突。因此系统集中主要精力用于解决问时带来的冲突。因此系统集中主要精力用于解决在断开与数据源连接的条件下数据处理的问题。在断开与数据源连接的条件下数据处理的问题。的数据模型数据访问的层次结构数据访问的层次结构图的层次结构图的层次结构四层结构顶层:Web应

11、用层数据层Data Layer数据提供器Provider) ,在这个层次结构中,数据提供器起到了关键的作用。底层:代表各种不同类型的数据源,包括不同类型的数据库、XML文档等。的数据模型数据集与数据提供器数据集与数据提供器u数据集:实现断开式连接的核心,从数据源读取的数据先缓存到数据集中,然后被程序或控件调用。数据源可以是数据库或者XML数据。u数据提供器:用于建立数据源与数据集之间的联系,它能连接各种类型的数据,并能按要求将数据源中的数据提供给数据集,或者从数据集向数据源返回编辑后的数据。图图6.5.4.数据集与数据提供器数据集与数据提供器的数据模型数据集数据集DataSetDataSet数

12、据集相当于内存中暂存的数据库数据集相当于内存中暂存的数据库不仅可以包括多张数据表,还可以包括数据表之间不仅可以包括多张数据表,还可以包括数据表之间的关系和约束。的关系和约束。允许将不同类型的数据表复制到同一个数据集中允许将不同类型的数据表复制到同一个数据集中其中某些数据表的数据类型可能需要做一些调整其中某些数据表的数据类型可能需要做一些调整,甚至还允许将数据表与,甚至还允许将数据表与XMLXML文档组合到一起协文档组合到一起协同操作。同操作。的数据模型数据集数据集2 2数据集从数据源中获取数据,然后断开与数据源之数据集从数据源中获取数据,然后断开与数据源之间的连接。间的连接。允许在数据集中定义

13、数据约束和表关系,增添、删允许在数据集中定义数据约束和表关系,增添、删除和编辑记录,还可以对数据集中的数据进行查除和编辑记录,还可以对数据集中的数据进行查询、统计等询、统计等当完成了各项数据操作以后,将数据集中的数据送当完成了各项数据操作以后,将数据集中的数据送回数据源。回数据源。断开连接条件下处理数据的特点为满足多层分布式断开连接条件下处理数据的特点为满足多层分布式应用的需要跨进了一大步。因为编辑和检索数据应用的需要跨进了一大步。因为编辑和检索数据都是一些比较繁重的工作,如果在连接数据源的都是一些比较繁重的工作,如果在连接数据源的条件下完成这些工作,不仅会使总体性能下降,条件下完成这些工作,

14、不仅会使总体性能下降,还会影响到可扩展性的问题。还会影响到可扩展性的问题。的数据模型创立数据集创立数据集创立数据集对象的语句是:创立数据集对象的语句是:DataSet dsDataSet dsnew DataSet();new DataSet();或者或者DataSet ds = new DataSet(DataSet ds = new DataSet(表名表名 语句中语句中dsds代表数据集对象。前一条语句是先建立一代表数据集对象。前一条语句是先建立一个空数据集,以后再将已经建立的数据表包括进个空数据集,以后再将已经建立的数据表包括进来;后一条语句是先建立数据表,然后建立包括来;后一条语句是

15、先建立数据表,然后建立包括该数据表的数据集。该数据表的数据集。的数据模型数据集的子类数据集的子类1 1数据集包括以下几种子类数据集包括以下几种子类数据表数据表DataTable)DataTable),用来存储数据。,用来存储数据。数据行数据行(DataRow)(DataRow),给定表中的一行数据。,给定表中的一行数据。数据列数据列(DataColumn)(DataColumn),定义表的数据结构。,定义表的数据结构。关系关系DataRelation)DataRelation),表之间的关系。,表之间的关系。的数据模型数据集的子类数据集的子类2 2(1) (1) 数据表数据表DataTable

16、)DataTable)数据表用来存储数据。一个数据集可以包含多张表数据表用来存储数据。一个数据集可以包含多张表,每张表又可包含多个行和列。,每张表又可包含多个行和列。数据表的创立有两种方式:数据表的创立有两种方式:1.1.当将数据加载到数据集当将数据加载到数据集DataSetDataSet时,会自动时,会自动创立一些表创立一些表(DataTable)(DataTable);2.2.以编程方式创立以编程方式创立DataTableDataTable的对象,然后将这个的对象,然后将这个对象添加到对象添加到DataSetDataSet的的TablesTables集合中。集合中。提取数据集中的数据表的语

17、句是:提取数据集中的数据表的语句是:DataTable dt = ds.DataTable dt = ds.数据表名数据表名; ;的数据模型数据集的子类数据集的子类3 3(2) (2) 数据行数据行(DataRow)(DataRow)数据行是给定数据表中的一行数据,或者说是数据数据行是给定数据表中的一行数据,或者说是数据表中的一条记录。它可能代表一个学生、一位用表中的一条记录。它可能代表一个学生、一位用户、一张订单或者一件货物的相关数据。户、一张订单或者一件货物的相关数据。DataRowDataRow对象的方法提供了对表中数据的插入、删对象的方法提供了对表中数据的插入、删除、更新和查看等功能。

18、除、更新和查看等功能。提取数据表中的行的语句如下:提取数据表中的行的语句如下:DataRow drDataRow drdt .Rows n;dt .Rows n;其中:其中:DataRowDataRow代表数据行类;代表数据行类;drdr是数据行对象;是数据行对象;dtdt代表数据表对象;代表数据表对象;n n代表行的序号序号从代表行的序号序号从0 0开开始。始。的数据模型数据集的子类数据集的子类4 4(3) (3) 数据列数据列(DataColumn)(DataColumn)数据表中的数据列又称字段定义了表的数据结数据表中的数据列又称字段定义了表的数据结构,例如,可以用它确定列中的数据类型和

19、大小构,例如,可以用它确定列中的数据类型和大小,还可以对其他属性进行设置。例如,确定列中,还可以对其他属性进行设置。例如,确定列中的数据是否是只读的、是否是主键、是否允许空的数据是否是只读的、是否是主键、是否允许空值等;值等;获取某列的值需要在数据行的根底上进行。语句如获取某列的值需要在数据行的根底上进行。语句如下:下:string dostring do字段名字段名.ToString();.ToString();其中其中drdr代表引用的数据行,代表引用的数据行,dodo是该行某列的值用是该行某列的值用字符串表示字符串表示的数据模型数据集的子类数据集的子类5 5(4) (4) 关系关系Dat

20、aRelation)DataRelation)表之间的关系由相关的列定义。表之间的关系由相关的列定义。在关系型数据库中,关系是指两个表之间外键约束在关系型数据库中,关系是指两个表之间外键约束的组合。的组合。为了将一张表与另一张表联系起来,可以简单地创为了将一张表与另一张表联系起来,可以简单地创立一个立一个DataRelationDataRelation,它将指出一张表中的哪一,它将指出一张表中的哪一列与另一张表中的哪一列相联系。列与另一张表中的哪一列相联系。的数据模型数据提供器数据提供器ProviderProviderProviderProvider作为数据集与数据源之间的桥梁,主要任作为数据

21、集与数据源之间的桥梁,主要任务是建立两者之间的联系。务是建立两者之间的联系。ProviderProvider相当于一个容器,包括相当于一个容器,包括4 4种核心类:种核心类:ConnectionConnection连接类:用于建立与数据源的连接连接类:用于建立与数据源的连接。Command(Command(命令类:用于设置适合于数据源的操作命令类:用于设置适合于数据源的操作命令,以便执行检索、编辑或输出参数等数据操命令,以便执行检索、编辑或输出参数等数据操作。作。DataAdapter(DataAdapter(数据适配器类:每张表对应一个数数据适配器类:每张表对应一个数据适配器,用来向数据集中

22、填入数据,或者从数据适配器,用来向数据集中填入数据,或者从数据集中读出数据。据集中读出数据。DataReaderDataReader数据读取类:用于从数据源向应用数据读取类:用于从数据源向应用程序读取只向前的、只读的、无缓冲的字符流。程序读取只向前的、只读的、无缓冲的字符流。的数据模型数据提供器核心类数据提供器核心类1 1(1) Connection(1) Connection类类ConnectionConnection类提供了对数据源连接的封装。类中包类提供了对数据源连接的封装。类中包含连接方法,以及描述当前连接状态的属性。含连接方法,以及描述当前连接状态的属性。最重要的属性是最重要的属性是

23、ConnectionStringConnectionString,该属性用来指,该属性用来指定效劳器名称、数据源信息以及其他登录信息。定效劳器名称、数据源信息以及其他登录信息。的数据模型数据提供器核心类数据提供器核心类2 21 1ConnectionConnection类类以数据库的连接对象为例,类名为以数据库的连接对象为例,类名为SglConnectionSglConnection,其创立连接的语句是:,其创立连接的语句是:SqlConnection sqlConnectionlSqlConnection sqlConnectionlnew new SqlConnectionSqlConne

24、ction;/设置设置ConnectionStringConnectionString属性属性This.sqlConnectionl.set ConnectionStringThis.sqlConnectionl.set ConnectionStringworkstation id=CHJ-IQDTYJ8FHYC;workstation id=CHJ-IQDTYJ8FHYC;/效效劳器名劳器名user id=cheng;password=cheng;user id=cheng;password=cheng;/平安信平安信息息initial catalog=Northwind;persist s

25、ecurity initial catalog=Northwind;persist security info=Falseinfo=False; ;/数据库名以其他参数数据库名以其他参数的数据模型数据提供器核心类数据提供器核心类3 3(2)Command(2)Command类类CommandCommand类是对数据源操作命令的封装。对数据库来类是对数据源操作命令的封装。对数据库来说,这些命令既可以是内联的说,这些命令既可以是内联的SQLSQL语句,也可以是语句,也可以是数据库的存储过程。数据库的存储过程。由由CommandCommand类生成的对象只能在连接的根底上,对连类生成的对象只能在连接

26、的根底上,对连接的数据源指定相应的操作。例如:接的数据源指定相应的操作。例如:SqlCommand commandl = SqlCommand commandl = new SqlCommandnew SqlCommandSELECT SELECT * * FROM Employees , FROM Employees , sqlConnectionlsqlConnectionl; ;语句将生成一命令对象语句将生成一命令对象commandlcommandl,对由,对由sqlConnection1sqlConnection1连接的数据源指定检索连接的数据源指定检索(SELECT)(SELECT)

27、操作。操作。的数据模型数据提供器核心类数据提供器核心类4 4(3) DataAdapter(3) DataAdapter类类数据适配器数据适配器(DataAdapter)(DataAdapter)利用连接对象利用连接对象(Connection(Connection连接的数据源,使用命令对象连接的数据源,使用命令对象(Command)(Command)规定的操作从数据源中检索出数据送往规定的操作从数据源中检索出数据送往数据集,或者将数据集中经过编辑后的数据送回数据集,或者将数据集中经过编辑后的数据送回数据源。数据源。数据适配器将数据填入数据集时调用方法数据适配器将数据填入数据集时调用方法Fill

28、()Fill(),语句如下:语句如下:; ;或者或者dataAdapterl.Fill(dataSet2, ProductsdataAdapterl.Fill(dataSet2, Products; ;其中,其中,dataAdapter 1dataAdapter 1代表数据适配器名;代表数据适配器名;dataSet1dataSet1代表数据集名;代表数据集名;ProductsProducts代表数据表名代表数据表名。的数据模型数据提供器核心类数据提供器核心类5 5(4) DataReader(4) DataReader类类使用使用DataReaderDataReader类可以实现对特定数据源中

29、的数据类可以实现对特定数据源中的数据进行高速、只读、只向前的数据访问。进行高速、只读、只向前的数据访问。与数据集与数据集dataSetdataSet不同,不同,DataReaderDataReader是一个依是一个依赖于连接的对象。只能在与数据源保持连接的状赖于连接的对象。只能在与数据源保持连接的状态下工作。因此执行的过程往往是:态下工作。因此执行的过程往往是:1.1.翻开与数据源的连接;翻开与数据源的连接;2.2.调用调用DataReaderDataReader类的类的Read(Read(方法;方法;3. 3. 关闭与数据源的连接。关闭与数据源的连接。6.5.3 数据源控件数据源控件数据源控

30、件新版本在的数据模型的根底上进行了进一步的封装新版本在的数据模型的根底上进行了进一步的封装和抽象,提供了一个新的控件:和抽象,提供了一个新的控件:“数据源控件数据源控件(DataSource Control) (DataSource Control) 。数据源控件既代表数据源,又代表与数据源相连接数据源控件既代表数据源,又代表与数据源相连接的数据提供器和数据集。在数据源控件中还隐含的数据提供器和数据集。在数据源控件中还隐含有大量的、常用的基层代码。有大量的、常用的基层代码。在程序运行时,数据源控件虽然不会显示在界面上在程序运行时,数据源控件虽然不会显示在界面上,但是在幕后它却能完成很多有用的工

31、作。,但是在幕后它却能完成很多有用的工作。6.5.3 数据源控件数据源控件的使用数据源控件的使用l在智能向导(Wizard)的指引下,数据源控件的配置很容易完成。当配置完成以后,系统内部已经根据确定的数据源自动生成了连接对象、命令对象、数据适配器对象以及数据集,并且已经调用了数据适配器的Fill()方法,将检索出来的数据放入数据集中。l通常情况下,只要设计人员对数据源控件的属性进行适当的设置,即可以完成对数据表的分页、排序、更新、删除、增添数据等项工作,而不需要手工增添其他代码6.5.3 数据源控件数据源控件的类型数据源控件的类型1 1数据源控件有数据源控件有5 5种类型,分别可以用于访问数据

32、库种类型,分别可以用于访问数据库database)database)、平面文件、平面文件flat fileflat file、各种对象、各种对象(Object)(Object)以及以及XMLXML文件等。它们是:文件等。它们是:AccessDataSourceAccessDataSource数据源控件;数据源控件;SqlDataSourceSqlDataSource数据源控件;数据源控件;ObjectDataSourceObjectDataSource数据源控件;数据源控件;XMLDataSourceXMLDataSource数据源控件;数据源控件;SiteMapDataSourceSiteMapDataSource数据源控件。数据源控件。6.5.3 数据源控件数据源控件的类型数据源控件的类型2 2数据源控件数据源控件如果使用如果使用Microsoft Access Microsoft Access 数据库,可使用此控数据库,可使用此控件。件。Microsoft AccessMicrosoft Access数据库是微软提供的小型数据库数据库是微软提供的小型数据库。这种数据库的特点是功能比较简单,使用比较。这种数据库的特点是功能比较简单,使用比较容易。此数据源控件可对容易。此数据源控件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论