当前位置:文档之家› 数据库访问方法

数据库访问方法

数据库访问方法
数据库访问方法

第9章 VB数据库编程技术

9.1数据库设计基础

9.1.1 VB中的数据访问

VB提供的数据库引擎叫Jet。VB提供了两种与Jet数据库引擎接口的方法:Data控件(Data Control)和数据访问对象(DAO)。Data控件只提供了有限的不需编程就能访问现存数据库的功能,而DAO模型则是全面控制数据库的完整编程接口。这两种方法不是互斥的,实际上,它们可以同时使用。

VB中的数据库编程就是创建数据访问对象,这些数据访问对象对应于被访问的物理数据库的不同部分,如Database(数据库)、Table(表)、Field(字段)和Index(索引)对象。用这些对象的属性和方法来实现对数据库的操作。VB通过DAO和Jet引擎可以识别三类数据库:

1. VB数据库:也称为本地数据库,这类数据库文件使用与Microsoft Access相同的格式。Jet引擎直接创建和操作这些数据库并且提供了最大程度的灵活性和速度。

2. 外部数据库:VB可以使用几种比较流行的“索引顺序访问文件方法(ISAM)”数据库,包括:dDase III、dBase IV、FoxPro 2.0和2.5以及Paradox

3.x和

4.x。在VB中可以创建和操作所有这些格式的数据库,也可以访问文本文件数据库和Excel或Lotus l-2-3电子表格文件。

3. ODBC数据库:包括符合ODBC标准的客户机/服务器数据库,如Microsoft SQL Server。如果要在VB中创建真正的客户机/服务器应用程序,可以使用ODBC Direct直接把命令传递给服务器处理。

9.1.2 VB数据库体系结构

VB提供了基于Microsoft Jet数据库引擎的数据访问能力,Jet引擎负责处理存储、检索、更新数据的结构,并提供了功能强大的面向对象的DAO编程接口。

1.VB数据库应用程序的组成

VB数据库应用程序包含三部分,如图9.1所示。

图9.1 VB数据库应用程序的组成

185

186 数据库引擎位于程序和物理数据库文件之间。这把用户与正在访问的特定数据库隔离开来,实现“透明”访问。不管这个数据库是本地的VB 数据库,还是所支持的其他任何格式的数据库,所使用的数据访问对象和编程技术都是相同的。

(1)用户界面和应用程序代码

用户界面是用户所看见的用于交互的界面,它包括显示数据并允许用户查看或更新数据的窗体。驱动这些窗体的是应用程序的VB 代码,包括用来请求数据库服务的数据访问对象和方法,比如添加或删除记录,或执行查询等。

(2)Jet 引擎

Jet 引擎被包含在一组动态链接库(DLL)文件中。在运行时,这些文件被链接到VB 程序。它把应用程序的请求翻译成对.mdb(Access 文件后缀)文件或其他数据库的物理操作。它真正读取、写入和修改数据库,并处理所有内部事务,如索引、锁定、安全性和引用完整性。它还包含一个查询处理器,接收并执行SQL 查询,实现所需的数据操作。另外,它还包含一个结果处理器,用来管理查询所返回的结果。

(3)数据库

数据库是包含数据库表的一个或多个文件。对于本地VB 或Access 数据库来说,就是.mdb 文件。对于ISAM 数据库,它可能是包含.dbf(dBASE 文件后缀)文件或其他扩展名的文件。或者,应用程序可能会访问保存在几个不同的数据库文件或格式中的数据。但无论在什么情况下,数据库本质上都是被动的,它包含数据但不对数据作任何操作。数据操作是数据库引擎的任务。

2.数据库应用程序的存放

数据库应用程序的这三个部分可以被分别放置在不同的位置上。可以把它们都放在一台计算机上,供单用户应用程序使用,也可以放置在通过网络连接起来的不同计算机上。例如,数据库可以驻留在中央服务器上,而用户界面(即应用程序)则驻留在几个客户机上,让许多用户访问相同的数据。

脱离开应用程序本身,将数据存放在另一台机器上的数据库应用程序,有远程数据库和客户机/服务器数据库两种结构。它们的不同点如图9.2所示。

客户机/服务器 远程

服务器

客户机

图9.2 客户机/服务器数据库与远程数据库的存放 在客户机/服务器系统中,数据库引擎和数据库一起被放置在服务器上。数据库引擎可以同时对多个客户机的应用程序提供服务、操作数据库并对每个本地应用程序返回所请求的

记录。在远程系统中,数据库引擎与用户应用程序在相同的计算机上,只有数据库驻留在远程计算机上。

Jet数据库引擎不是客户机/服务器引擎,它是驻留在DLL文件中的本地数据库引擎,在运行时被动态地链接到VB应用程序中。如果程序在不同的工作站上有许多备份,那么每个备份都将有它自己的Jet数据库引擎在本地的备份。在VB中,通过连接到ODBC数据源,如Microsoft SQL Server等,可直接把查询传递给服务器数据库引擎,就可以创建客户机/服务器应用程序。

9.2本地数据库设计(ACCESS)

VB中创建数据库的途径主要有:

(1)可视化数据管理器:使用可视化数据管理器,不需要编程就可以创建Jet数据库。(2)DAO:使用VB的DAO部件可以通过编程的方法创建数据库。

(3)Microsoft Access:因为Microsoft Access使用了与VB相同的数据库引擎和格式,所以,用Microsoft Access创建的数据库和直接在VB中创建的数据库是一样的。

(4)数据库应用程序:像FoxPro、dBase或ODBC客户机/服务器应用程序这样的产品,可以作为外部数据库,VB可通过ISAM或ODBC驱动程序来访问这些数据库。

9.2.1可视化数据管理器

数据管理器(Data Manager)是VB的一个传统成员,它可以用于快速地建立数据库结构及数据库内容。VB的数据管理器实际上是一个独立的可单独运行的应用程序Visdata.exe。它随安装过程放置在VB目录中,可以单独运行,也可以在VB开发环境中启动。凡是VB有关数据库的操作,比如数据库结构的建立、记录的添加及修改以及用ODBC 连接到服务器端的数据库如SQL Server,都可以利用此工具来完成。

1.启动数据管理器

选择“外接程序”菜单下的“可视化数据管理器”项就可以启动数据管理器,打开“VisData”窗口。

2.工具栏按钮

V isData 窗口的工具栏提供了三组共9个按钮,为了说明这些按钮所提供的功能,我们利用VB提供的一个例子——数据库Biblio.mdb来介绍。

Biblio.mdb存放在VB98目录中,单击“文件”菜单中的“打开数据库”级联菜单的“Microsoft Access”项,即可在出现的对话框中看到Biblio.mdb,选中并打开它,打开后的VisData窗口如图9.3所示。

我们可以看到,在这个MDI窗口内包含两个子窗口:数据库窗口和SQL语句窗口。数据库窗口显示了数据库的结构,包括表名、列名、索引。SQL语句窗口可用于输入一些SQL

187

命令,针对数据库中的表进行查询操作。

图9.3 V isData窗口

下面我们对工具栏上的按钮进行简单的说明。

(1)类型群组按钮

工具栏的第一组按钮,它可以设置记录集的访问方式,具体为:

①表类型记录集按钮(最左边的按钮):当以这种方式打开数据库中的数据时,所进行的增、删、改、查等操作都是直接更新数据库中的数据。

②动态集类型记录集按钮(中间的按钮):使用这种方式是先将指定的数据打开并读入到内存中,当用户进行数据编辑操作时,不直接影响数据库中的数据。使用这种方式可以加快运行速度。

③快照类型记录集(最右边的拉钮):以这种类型显示的数据只能读不能修改,适用于只查询的情况。

(2)数据群组按钮

工具栏的中间一组按钮。用于指定数据表中数据的显示方式。先用鼠标在要显示风格的按钮上单击一下,然后选中某个要显示数据的数据表,单击鼠标右键,在弹出的菜单上选择“打开”,则此表中的数据就以所要求的形式显示出来。

(3)事务方式群组按钮

工具栏的最后一组按钮用于进行事务处理。

9.2.2具体实现

1.建立数据库

对数据管理器的基本功能有了初步的认识后,我们看一下如何利用它来建立数据库。我188

189 们这里所建立的数据库student.mdb(学生数据库)中各表如下:

(1)建立数据库结构

单击“文件”菜单中的“新建”命令,在“新建”级联菜单中选择“Microsoft Access”,再选择“版本7.0 MDB”项,在“选择要创建的Microsoft Access 数据库”窗口中选定新建数据库的路径并输入数据库名,这里为student.mdb 。

这样一个新的数据库就建立好了,下面就要在此数据库中添加数据表了。

(2)添加数据表

将鼠标移到数据库窗口区域内,单击鼠标右键,在弹出的菜单中选择“新建表”命令,出现“表结构”对话框,利用对话框我们可以建立数据表的结构。

我们首先建立基本情况表。在“表名称”中输入“基本情况”,然后添加基本情况表的字段,单击“添加字段”按钮,出现“添加字段”对话框,在此对话框中填入“学号”字段的信息。 按顺序输入“姓名”、“性别”、“专业”、“出生年月”、“照片”、“备注”字段,然后按“关闭”按钮返回到“表结构”对话框中。

(3)建立索引

建立了表的结构后就可以建立此表的索引了,这样可以加快检索速度。单击“添加索引”按钮,会出现如图9.4所示的对话框,通过此对话框可以将数据表的某些字段设置为索引。在“名称”字段中输入索引的名称,然后从下边的“索引的字段”列表中选择作为索引的字段,我们这里选择的是“学号”。

图9.4 设置索引对话框

如果需要建立多个索引,则每完成一项索引后,单击“确定”

按钮,然后继续下一个索引

的设置。设置完毕后,单击“关闭”按钮返回到“表结构”对话框。

2.录入数据

数据表结构建立好之后,就可以向表中输入数据了,数据管理器提供了简单的数据录入功能。

首先在工具栏上选定DBGrid显示风格的按钮,然后在要录入数据的数据表上单击鼠标右键,选择“打开”选项,则出现以网格风格显示数据的窗口,如果此表中已有数据,则此时会显示出此表中的全部数据;若此表中无数据,则会显示出一个空表。如图9.5所示。我们这里是以“基本情况”表为例,并且输入了部分数据后的情况。

图9.5 录入数据

3.建立查询

数据表建立好之后,如果数据表中已经有数据,就可以对表中的数据进行有条件或无条件的查询。VB的数据管理器提供了一个图形化的设置查询条件的窗口——查询生成器。选择“实用程序”菜单下的“查询生成器”,或在数据库窗口区域单击鼠标右健,然后在弹出的菜单中选择“新查询”,即可出现“查询生成器”对话框,如图9.6所示。

假设我们要查询学号为110002的学生基本情况,可按下述步骤进行:

(1)首先选择要进行查询的数据表,单击表列表框中的“基本情况”表。

(2)在“字段名称”字段中选定“基本情况.学号”。

(3)单击“运算符”列表,选择“=”。

(4)单击“列出可能的值”按钮,在“值”字段中输入110002。

(5)单击“将And加入条件”按钮,将条件加入“条件”列表框中。

(6)在“要显示的字段”列表框中,选定所需显示的字段。注意,这里所选的字段就是我们在查询结果中要看的字段。

(7)单击“运行”按钮,在随后出现的V isData对话框中,选择“否”,并进一步选择“运行”,即可看到查询结果。

(8)单击“显示“按钮,在随后出现的“SQL Query”窗口中,显示刚建立的查询所对应的SQL 语句。

190

191

图9.6 “查询生成器”对话框

9.3 数据控件

Data 控件是Visual Basic 访问数据库的一种利器,它能够利用三种Recordset 对象来访问数据库中的数据,数据控件提供有限的不需编程而能访问现存数据库的功能,允许将Visual Basic 的窗体与数据库方便地进行连接。要利用数据控件返回数据库中记录的集合,应先在窗体上画出控件,再通过它的三个基本属性Connect 、DatabaseName 和RecordSource 设置要访问的数据资源。

9.3.1 数据控件属性

1.Connect 属性

Connect 属性指定数据控件所要连接的数据库类型,Visual Basic 默认的数据库是Access 的MDB 文件,此外,也可连接DBF 、XLS 、ODBC 等类型的数据库。

2.DatabaseName 属性

DatabaseName 属性指定具体使用的数据库文件名,包括所有的路径名。如果连接的是单表数据库,则DatabaseName 属性应设置为数据库文件所在的子目录名,而具体文件名放在RecordSource 属性中。

例如,要连接一个Microsoft Access 的数据库C:\Student.mdb ,则设置DatabaseName=”C:\Student.mdb",Access 数据库的所有表都包含在一个MDB 文件中。如果连接一个FoxPro 数据库如C:\VB6\stu_fox.dbf,则DatabaseName=”C:\VB6”,RecordSource=”stu_fox.dbf”,

stu_fox数据库只含有一个表。

3.RecordSource属性

RecordSource确定具体可访问的数据,这些数据构成记录集对象Recordset。该属性值可以是数据库中的单个表名,—个存储查询,也可以是使用SQL查询语言的一个查询字符串。

例如,要指定Student.mdb数据库中的基本情况表,则RecordSource=”基本情况”。而RecordSource=”Select From 基本情况Where专业=’物理’ ”,则表示要访问基本情况表中所有物理系学生的数据。

4.RecordType属性

RecordType属性确定记录集类型。

5.EofAction和BofAction属性

当记录指针指向Recordset对象的开始(第一个记录前)或结束(最后一个记录后)时,数据控件的EofAction和BofAction属性的设置或返回值决定了数据控件要采取的操作。属性的取值如表9.1所示。

表9.1 EofAction和BofAction属性

在Visual Basic中,数据控件本身不能直接显示记录集中的数据,必须通过能与它绑定的控件来实现。可与数据控件绑定的控件对象有文本框、标签、图像框、图形框、列表框、组合框、复选框、网格、DB列表框、DB组合框、DB网格和OLE容器等控件。要使绑定控件能被数据库约束,必需在设计或运行时对这些控件的两个属性进行设置:

(1)DataSource属性

DataSource属性通过指定—个有效的数据控件连接到一个数据库上。

(2)DataField属性

DataField属性设置数据库有效的字段与绑定控件建立联系。

绑定控件、数据控件和数据库三者的关系如图9.7所示。

192

图9.7 绑定控件、数据控件和数据库三者的关系

当上述控件与数据控件绑定后,V isual Basic将当前记录的字段值赋给控件。如果修改了绑定控件内的数据,只要移动记录指针,修改后的数据会自动写入数据库。数据控件在装入数据库时,它把记录集的第一个记录作为当前记录。当数据控件的BofAction属性值设置为2时,当记录指针移过记录集结束位,数据控件会自动向记录集加入新的空记录。

例9.1 建立student.mdb数据库,它包含两个表:“基本情况”表和“学生成绩表”。参见表9.2和表9.3。

表9.2 学生基本情况表结构

表9.3 学生成绩表结构

用可视化数据管理器建立以上设计的数据库及其表,表中数据可自行录入。

例9.2 设计一个窗体用以显示建立的student.mdb数据库中基本情况表的内容。

基本情况表包含了6个字段,故需要用6个绑定控件与之对应。这里用一个图形框显示照片和5个文本框显示学号、姓名等数据。本例中不需要编写任何代码,具体操作步骤如下:

(1)参考如图9.8所示窗体,在窗体上放置1个数据控件,一个图形框、5个文本框和5个标签控件。5个标签控件分别给出相关的提示说明。

图9.8 显示Student.mdb基本情况表的数据

193

(2)将数据控件Data1的Connect属性指定为Access类型,DatabaseName属性连接数据库Student.mdb,RecordSource属性设置为“基本情况”表。

(3)图形框和5个文本框控件Text1~Text5的DataSource属性都设置成Data1。通过单击这些绑定控件的DataField属性上的“…”按钮,将下拉出基本情况表所含的全部字段,分别选择与其对应的字段照片、学号、姓名、性别、专业和出生年月,使之建立约束关系。

运行该工程即可出现图9.8所示效果。5个文本框分别显示基本情况表内的字段:学号、姓名、性别、专业和出生年月的内容,图形框显示每个学生的照片。

使用数据控件对象的4个箭头按钮可遍历整个记录集中的记录。单击最左边的按钮显示第l条记录;单击其旁边的按钮显示上一条记录;单击最右边的按钮显示最后一条记录;单击其旁边的按钮显示下—条记录。数据控件除了可以浏览Recordset对象中的记录外,同时还可以编辑数据。如果改变了某个字段的值,只要移动记录,这时所作的改变存入数据库中。

V isual Basic 6.0提供了几个比较复杂的网格控件,几乎不用编写代码就可以实现多条记录数据显示。当把数据网格控件的DataSource属性设置为一个Data控件时,网格控件会被自动地填充,并且其列标题会用Data控件的记录集里的数据自动地设置。

例9.3 用数据网格控件MsFlexGrid显示Student.mdb数据库中基本情况表的内容。

MsFlexGrid控件不是Visual Basic工具箱内的默认控件,需要在开发环境中选择“工程|部件”菜单命令,并在随即出现的对话框中选择“MicroSoft FlexGrid Control 6.0”选项,将其添加到工具箱中。本例所用控件的属性设置如表9.4所示。请读者自行比较不可卷动列属性FixedCols=0与FixedCols=1的区别。Form启动后自动显示如图9.9所示窗口。

表9.4 控件属性

图9.9使用数据网格控件

194

9.3.2数据控件的事件

1.Reposition事件

Reposition事件发生在一条记录成为当前记录后,只要改变记录集的指针使其从一条记录移到另一条记录,会产生Reposition事件。通常,可以在这个事件中显示当前指针的位置。例如,在例9.2的Data1_Reposition事件中加入如下代码:

Private Sub Data1_Reposition()

Data1.Caption = Data1.Recordset.AbsolutePosition + 1

End Sub

这里,Recordset为记录集对象,AbsolutePosition属性指示当前指针值(从0开始)。当单击数据控件对象上的箭头按钮时,数据控件的标题区会显示记录的序号。

2.Validate事件

当要移动记录指针、修改与删除记录前或卸载含有数据控件的窗体时都触发V alidate事件。V alidate事件检查被数据控件绑定的控件内的数据是否发生变化。它通过Save参数(True 或False)判断是否有数据发生变化,Action参数判断哪—种操作触发了V alidate事件。参数可为表9.5中的值。

表9.5 V alidate事件的Action参数

一般可用V alidate事件来检查数据的有效性。例如,在例9.2中,如果不允许用户在数据浏览时清空性别数据,可使用下列代码:

Private Sub Data1_V alidate(Action As Integer, Save As Integer)

If Save And Len(Trim(Text3)) = 0 Then

Action = 0

MsgBox " 性别不能为空!"

End If

End Sub

此代码检查被数据控件绑定的控件Text3内的数据是否被清空。如果Text3内的数据发生变化,则Save参数返回True,若性别对应的文本框Text3被置空,则通过Action=0取消对数据控件的操作。

195

9.3.3 数据控件的常用方法

数据控件的内置功能很多,可以在代码中用数据控件的方法访问这些属性。

1.Refresh方法

如果在设计状态没有为打开数据库控件的有关属性全部赋值,或当RecordSource在运行时被改变后,必须使用数据控件的Refresh方法激活这些变化。在多用户环境下,当其他用户同时访问同一数据库和表时,Refresh方法将使各用户对数据库的操作有效。

例如:将例9.2的设计参数改用代码实现,使所连接数据库所在的文件夹可随程序而变化:

Private Sub Form_Load( )

Dim mpath As String

Mpath=App.Path ’获取当前路径

If Right(mpath,1)<>”/” Then mpath=mpath+”/”

Data1.DatabaseName=mpath+”Student.mdb” ’连接数据库

Data1.RecordSource=”基本情况” ’构成记录集对象

Data1.Refresh ’激活数据控件

End Sub

2.UpdateControls方法

UpdateControls方法可以将数据从数据库中重新读到被数据控件绑定的控件内。因而我们可使用UpdateControls方法终止用户对绑定控件内数据的修改。

例如:将代码Data1.UpdateControts放在一个命令按钮的Click事件中,就可以实现对记录修改的功能。

3. UpdateRecord方法

当对绑定控件内的数据修改后,数据控件需要移动记录集的指针才能保存修改。如果使用UpdateRecord方法,可强制数据控件将绑定控件内的数据写入到数据库中,而不再触发V alidate事件。在代码中可以用该方法来确认修改。

9.3.4 记录集的属性与方法

由RecordSource确定的具体可访问的数据构成的记录集Recordset也是一个对象,因而,它和其他对象一样具有属性和方法。下面列出记录集常用的属性和方法。

1.AbsolutePosition属性

AbsolutePosition返回当前指针值,如果是第1条记录,其值为0,该属性为只读属性。

2.Bof和Eof的属性

Bof判定记录指针是否在首记录之前,若Bof为True,则当前位置位于记录集的第1条记录之前。与此类似,Eof判定记录指针是否在末记录之后。

3.Bookmark属性

196

Bookmark属性的值采用字符串类型,用于设置或返回当前指针的标签。在程序中可以使用Bookmark属性重定位记录集的指针,但不能使用AbsolutePostion属性。

4.Nomatch属性

在记录集中进行查找时,如果找到相匹配的记录,则Recordset的NoMatch属性为False,否则为True。该属性常与Bookmark属性一起使用。

5.RecordCount属性

RecordCount属性对Recordset对象中的记录计数,该属性为只读属性。在多用户环境下,RecordCount属性值可能不准确,为了获得准确值,在读取RecordCount属性值之前,可使用MoveLast方法将记录指针移至最后一条记录上。

6.Move方法

使用Move方法可代替对数据控件对象的4个箭头按钮的操作遍历整个记录集。5种Move方法是:

(1)MoveFirst方法:移至第1条记录。

(2)MoveLast方法:移至最后一条记录。

(3)MoveNext方法:移至下一条记录。

(4)MovePrevious方法:移至上一条记录。

(5)Move [n] 方法:向前或向后移n条记录,n为指定的数值。

例9.4 在窗体上用4个命令按钮代替例9.2数据控件对象的4个箭头按钮的操作。

在例9.2的基础上,窗体上增加4个命令按钮,将数据控件的V isible属性设置为False,如图9.10所示。通过对4个命令按钮的编程代替对数据控件对象的4个箭头按钮的操作。

图9.10 用按钮代替数据控件对象的箭头按钮

命令按钮Command1_Click事件移至第1条记录,代码如下:

Private Sub Command1_Click()

Data1.Recordset.MoveFirst

End Sub

命令按钮Command4_Click事件移至最后一条记录,代码如下:

Private Sub Command4_Click()

Data1.Recordset.MoveLast

End Sub

197

另外两个按钮的代码需要考虑Recordset对象的边界的首尾,如果越界,则用MoveFirst 方法定位到第1条记录或用MoveLast方法定位到最后一条记录。程序代码如下:

Private Sub Command2_Click()

Data1.Recordset.MovePrevious

If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst

End Sub

Private Sub Command3_Click()

Data1.Recordset.MoveNext

If Data1.Recordset.EOF Then Data1.Recordset.MoveLast

End Sub

7.Find方法

使用Find方法可在指定的Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录。4种Find方法是:

(1)FindFirst方法:从记录集的开始查找满足条件的第1条记录。

(2)FindLast方法:从记录集的尾部向前查找满足条件的第l条记录。

(3)FindNext方法:从当前记录开始查找满足条件的下一条记录。

(4)FindPrevious方法:从当前记录开始查找满足条件的上一条记录。

4种Find方法的语法格式相同:

数据集合.Find方法条件

搜索条件是一个指定字段与常量关系的字符串表达式。在构造表达式时,除了用普通的关系运算外,还可以用Like运算符。

例如:语句“Data1.Recordset.FindFirst 专业=’物理’”表示在由Data1数据控件所连接的数据库Student.mdb的记录集内查找专业为“物理”的第l条记录。这里,“专业”为数据库Student记录集中的字段名,在该字段中存放专业名称信息。要想查找下一条符合条件的记录,可继续使用语句:”Data1.Recordset.FindNext 专业=’物理’”。

又例如:要在记录集内查找专业名称中带有“建”字的专业:

Data1.Recordset.FindFirst 专业Like ”*建*”

字符串“*建*”匹配字段专业中带有“建”字字样的所有专业名称字符串。

需要指出的是Find方法在找不到相匹配的记录时,当前记录保持在查找的始发处,NoMatch属性为True。如果Find方法找到相匹配的记录,则记录定位到该记录,Recordset 的NoMatch属性为False。

8.Seek方法

使用Seek方法必须打开表的索引,它在Table表中查找与指定索引规则相符的第1条记录,并使之成为当前记录。其语法格式为:

数据表对象.seek comparison,keyl,key2…

Seek允许接受多个参数,第1个是比较运算符comparison,Seek方法中可用的比较运算符有=、>=、>、<>、<、<=等。

在使用Seek方法定位记录时,必须通过Index属性设置索引。若在记录集中多次使用198

同样的Seek方法(参数相同),那么找到的总是同一条记录。

例如:假设数据库Student内基本情况表的索引字段为学号,满足学号字段值大于等于110001的第1条记录可使用以下程序代码:

Data1.RecordsetType = 0 ’设置记录集类型为Table

Data1.RecordSource = "基本情况" ’打开基本情况表单

Data1.Refresh

Data1.Recordset.Index = "jbqk_no" ’打开名称为jbqk_no的索引

Data1.Recordset.Seek ">=", "110001"

9.3.5 数据库记录的增、删、改操作

Data控件是浏览表格并编辑表格的好工具,但怎么输入新信息或删除现有记录呢?这需要编写几行代码,否则无法在Data控件上完成数据输入。数据库记录的增、删、改操作需要使用AddNew、Delete、Edit、Update和Refresh方法。它们的语法格式为:数据控件.记录集.方法名

1.增加记录

AddNew方法在记录集中增加新记录。增加记录的步骤为:

(1)调用AddNew方法。

(2)给各字段赋值。给字段赋值格式为:Recordset.Fields(”字段名”)=值。

(3)调用Update方法,确定所做的添加,将缓冲区内的数据写入数据库。

注意:如果使用AddNew方法添加新的记录,但是没有使用Update方法而移动到其他记录,或者关闭记录集,那么所做的输入将全部丢失,而且没有任何警告。当调用Update 方法写入记录后,记录指针自动返回到添加新记录前的位置上,而不显示新记录。为此,可在调用Update方法后,使用MoveLast方法将记录指针再次移到新记录上。

2.删除记录

要从记录集中删除记录的操作分为三步:

(1)定位被删除的记录使之成为当前记录。

(2)调用Delete方法。

(3)移动记录指针。

注意:在使用Delete方法时,当前记录立即删除,不加任何的警告或者提示。删除一条记录后,被数据库所约束的绑定控件仍旧显示该记录的内容。因此,你必须移动记录指针刷新绑定控件,—般采用移至下一记录的处理方法。在移动记录指针后,应该检查Eof属性。

3.编辑记录

数据控件自动提供了修改现有记录的能力,当直接改变被数据库所约束的绑定控件的内容后,需单击数据控件对象的任一箭头按钮来改变当前记录,确定所做的修改。也可通过程序代码来修改记录,使用程序代码修改当前记录的步骤为:

(1)调用Edit方法。

(2)给各字段赋值。

199

(3)调用Update方法,确定所做的修改。

注意:如果要放弃对数据的所有修改,可用Refresh方法,重读数据库,没有调用Update 方法,数据的修改没有写入数据库,所以这样的记录会在刷新记录集时丢失。

例9.5 在例9.2的基础上加入“新增”、“删除”、“修改”、“放弃”和“查找”钮,通过对5个按纽的编程建立增、删、改、查功能,如图9.11所示。

图9.11 编程建立增、删、改、查功能

Command1_Click事件的功能根据按钮提示文字调用AddNew方法或Update方法,并且控制具他4个按钮的可用性。当按钮提示为“新增”时调用AddNew方法,并将提示文字改为“确认”,同时使“删除”按钮Command2、“修改”按钮Command3和“查找”按钮Command5不可用,而使“放弃”按钮Command4可用。新增记录后,需再次单击Command1调用Update 方法确认添加的记录,再将提示文字再改为“新增”,并使“删除”、“修改”和“查找”按钮可用,而使“放弃”按钮不可用。程序中出现的On Error Resume Next语句是V isual Basic提供的错误捕获语句。该语句表示在程序运行时发生错误,忽略错误行,继续执行下一语句。Private Sub Command1_Click()

On Error Resume Next

Command2.Enabled = Not Command2.Enabled

Command3.Enabled = Not Command3.Enabled

Command4.Enabled = Not Command4.Enabled

Command5.Enabled = Not Command5.Enabled

If Command1.Caption = "新增" Then

Command1.Caption = "确认"

Data1.Recordset.AddNew

Text1.SetFocus

Else

Command1.Caption = "新增"

Data1.Recordset.Update

Data1.Recordset.MoveLast

200

End If

End Sub

命令按钮Command2_Click事件调用方法删除当前记录。当记录集中的记录全部被删除后,再执行Move语句将发生错误,这时由On Error Resume Next语句处理错误。

Private Sub Command2_Click()

On Error Resume Next

Data1.Recordset.Delete

Data1.Recordset.MoveNext

If Data1.Recordset.EOF Then Data1.Recordset.MoveLast

End Sub

命令按钮Command3_Click事件的编程思路与Command1_Click事件类似,根据按钮提示文字调用Edit方法进入编辑状态或调用Update方法将修改后的数据写入到数据库,并控制其他3个按钮的可用性,代码如下:

Private Sub Command3_Click()

On Error Resume Next

Command1.Enabled = Not Command1.Enabled

Command2.Enabled = Not Command2.Enabled

Command4.Enabled = Not Command4.Enabled

Command5.Enabled = Not Command5.Enabled

If Command3.Caption = "修改" Then

Command3.Caption = "确认"

Data1.Recordset.Edit

Text1.SetFocus

Else

Command3.Caption = "修改"

Data1.Recordset.Update

End If

End Sub

命令按钮Command4_Click事件使用UpdateControls方法放弃操作,代码如下:Private Sub Command4_Click()

On Error Resume Next

Command1.Caption = "新增"

Command3.Caption = "修改"

Command1.Enabled = True

Command2.Enabled = True

Command3.Enabled = True

Command4.Enabled = False

Command5.Enabled = True

Data1.UpdateControls

201

Dala1.Recordset.MoveLast

End Sub

命令按钮Command5_Click事件根据输入专业使用SQL语句查找记录,代码如下:Private Sub Command5_Click()

Dim mzy As String

mzy = InputBox$("请输入专业", "查找窗")

Data1.RecordSource = "Select * From 基本情况Where 专业= '" & mzy & "'"

Data1.Refresh

If Data1.Recordset.EOF Then

MsgBox "无此专业!", , "提示"

Data1.RecordSource = "基本情况"

Data1.Refresh

End If

End Sub

上面的代码给出了数据表内数据处理的基本方法。需要注意的是:对于一条新记录或编辑过的记录必须要保证数据的完整性,这可通过Data1_V alidate事件过滤无效记录。例如,下面的代码对学号字段进行测试,如果学号为空则输入无效。在本例中被学号字段所约束的绑定控件是Text1,可用Text1.DataChanged属性检测Text1控件所对应的当前记录中的字段值的内容是否发生了变化,Action=6表示Update操作(参见表9.5)。此外,使用数据控件对象的任一箭头按钮来改变当前记录,也可确定所做添加的新记录或对已有记录的修改,Action取值1~4分别对应单击其中一个箭头按钮的操作,当单击数据控件的箭头按钮时也触发V alidate事件。

Private Sub Data1_V alidate(Action As Integer, Save As Integer)

If Text1.Text = "" And (Action = 6 Or Text1.DataChanged) Then

MsgBox "数据不完整,必须要有学号!"

Data1.UpdateControls

End If

If Action >= 1 And Action <= 4 Then

Command1.Caption = "新增"

Command3.Caption = "修改"

Command1.Enabled = True

Command2.Enabled = True

Command3.Enabled = True

Command4.Enabled = False

End If

End Sub

关于照片的输入,较简单的方法是通过剪贴板将照片图片复制到Picture1控件。在输入照片时,事先需要用扫描仪将照片扫描到内存或形成图形文件,通过一个图片编辑程序将照

202

片装入剪贴板,然后再从剪贴板复制到Picture1控件。本例通过Picture1_DblClick事件来完成剪贴板到Picture1控件的复制,当移动记录指针时,Picture1控件内的照片存入数据库,此外,也可以使用OLE拖放技术将照片图形文件拖放到Picture1控件或其他图形容器内。Private Sub Picture1_DblClick()

Picture1.Picture = Clipboard.GetData

End Sub

9.4 ODBC

9.4.1 ODBC概述

在传统的数据库管理系统中,每个数据库管理系统都有自己的应用程序开发接口(API),应用程序使用数据库系统所提供的专用开发工具(如嵌入式SQL语言)进行开发,这样的应用程序只能运行在特定的数据库系统环境下,适应性和可移植性比较差。在用户硬件平台或操作系统发生变化时,应用程序需要重新编写。嵌入式SQL语言的另一个缺点是它只能存取某种特定的数据库系统,因此一个应用程序只能连接同类的DBMS,而无法同时访问多个不同的DBMS,而在实际应用中通常是需要同时访问多个不同的DBMS的。例如,在一个单位中,财务、生产和技术等部门常根据自身专业的特点选择不同的DBMS,而建立企业级管理信息系统时,需要同时访问各个部门的数据库。这种情况下传统的数据库应用程序开发方法就难以实现。为了解决这些问题,微软公司开发了ODBC(Open DataBase Connectivity,即开放数据库互连)。

ODBC 是Microsoft公司开发的一套开放数据库系统应用程序接口规范,目前它已成为一种工业标准,它提供了统一的数据库应用编程接口(API),为应用程序提供了一套高层调用接口规范和基于动态连接库的运行支持环境。使用ODBC开发数据库应用时,应用程序调用的是标准的ODBC函数和SQL语句,数据库底层操作由各个数据库的驱动程序完成。因此应用程序有很好的适应性和可移植性,并且具备了同时访问多种数据库管理系统的能力,从而彻底克服了传统数据库应用程序的缺陷。

9.4.2 ODBC体系结构

ODBC驱动程序类似于Windows下的打印驱动程序,对用户来说,驱动程序屏蔽了不同对象(数据库系统或打印机)间的差异。同样地,ODBC屏蔽了DBMS之间的差异。ODBC 的体系结构如图9.12所示。

1.ODBC数据库应用程序

应用程序的主要任务包括:建立与数据源的连接;向数据源发送SQL请求;接收并处理请求的结果;断开与数据源的连接等。

203

图9.12 ODBC的体系结构

2.驱动程序管理器

驱动程序管理器是一个Windows下的应用程序,在Windows 95和Windows NT环境下的控制面板上分别显示为“32位ODBC”图标和“ODBC”图标。如果在Windows 95和Windows NT环境下没有这个图标,说明没有安装ODBC驱动程序管理器。此软件可从Windows 95操作系统、Microsoft VC++、Microsoft VB等软件中获得。此管理器的主要作用是用来装载ODBC驱动程序、管理数据源、检查ODBC参数的合法性等。

3.DBMS驱动程序

ODBC应用程序不能直接存取数据库,它将所要执行的操作提交给数据库驱动程序,通过驱动程序实现对数据源的各种操作,数据库操作结果也通过驱动程序返回给应用程序。

4.数据源

数据源是指任一种可以通过ODBC连接的数据库管理系统,它包括要访问的数据库和数据库的运行平台。数据源名掩盖了数据库服务器或数据库文件间的差别,通过定义多个数据源,每个数据源指向一个服务器名,就可在应用程序中实现同时访问多个DBMS的目的。

数据源(Data Source Name,简称DSN)是驱动程序与DBS连接的桥梁,数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名。在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名等,可以将数据源名看成是与一个具体数据库建立的连接。

数据源分为以下三类:

(1)用户数据源:用户创建的数据源,称为“用户数据源”。此时只有创建者才能使用,并且只能在所定义的机器上运行。任何用户都不能使用其他用户创建的用户数据源。

(2)系统数据源:所有用户和在Windows NT下以服务方式运行的应用程序均可使用系统数据源。

204

数据库实时同步技术解决方案

数据库实时同步技术解决方案 一、前言 随着企业的不断发展,企业信息化的不断深入,企业内部存在着各种各样的异构软、硬件平台,形成了分布式异构数据源。当企业各应用系统间需要进行数据交流时,其效率及准确性、及时性必然受到影响。为了便于信息资源的统一管理及综合利用,保障各业务部门的业务需求及协调工作,常常涉及到相关数据库数据实时同步处理。基于数据库的各类应用系统层出不穷,可能涉及到包括ACCESS、SQLSERVER、ORACLE、DB2、MYSQL等数据库。目前国内外几家大型的数据库厂商提出的异构数据库复制方案主要有:Oracle的透明网关技术,IBM的CCD表(一致变化数据表)方案,微软公司的出版者/订阅等方案。但由于上述系统致力于解决异构数据库间复杂的交互操作,过于大而全而且费用较高,并不符合一些中小企业的实际需求。 本文结合企业的实际应用实践经验,根据不同的应用类型,给出了相应的数据库实时同步应用的具体解决方案,主要包括: (1) SQLSERVER 到SQLSERVER 同步方案 (2) ORACLE 到SQLSERVER 同步方案 (3) ACCESS 到SQLSERVER/ORACLE 同步方案

二、异构数据库 异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库的异构性主要体现在以下几个方面: 1、计算机体系结构的异构 各数据库可以分别运行在大型机、小型机、工作站、PC嵌入式系统中。 2、基础操作系统的异构 各个数据库系统的基础操作系统可以是Unix、Windows NT、Linux等。 3、DMBS本身的异构 可以是同为关系型数据库系统的Oracle、SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。 三、数据库同步技术

网络数据库Mysql介绍

网络数据库 网络数据库(network database) ●在网络环境中,为了提高系统的性能和可靠性,一般都采用具有“客户/服务器数据库引擎” 的大型关系数据库系统。 ●通常指跨越电脑在网络上创建、运行的数据库。 ●目前使用较为广泛的网络数据库平台有SQL Server、MySQL、Oracle等。 一、MySQL基础知识 ●作为开源软件的代表,MySQL数据库随着其功能的日益完善和可靠性的不断提高,已经成为互 联网平台上应用广泛的数据库软件。 ●特别是与Apache和PHP/PERL结合,为建立基于数据库的动态提供了强大动力。 主要容 1.MySQL数据库管理系统概述 2.MySQL安装与配置 3.MySQL图形化工具的使用 1、M Y SQL数据库管理系统概述 ●最近几年,随着it技术的发展,开源数据库逐渐流行; ●和传统的商业数据库相比,开源数据库具有完全免费、源码公开、随意下载等特点,并可以 用于各种商业目的。这使得开源软件被广泛应用在各个行业中,大大降低了企业的开发运营成本。 ●MySQL正是这些开源数据库中的杰出代表。 1)MySQL历史与发展 ●最早源于开源软件mSQL,由David Axmark等三个瑞典人于20世纪90年代开发的一个关系 型数据库; ●2000年开始使用GPL许可协议,成为开源软件的一分子; ●2001年开始引入InnoDB存储引擎,于2002年正式宣布MySQL全面支持事务,满足ACID属 性。 ●2003年,MySQL 4.0发布,开始支持集合操作; ●2004年, MySQL 4.1发布,增加对子查询的支持; ●2005年, MySQL 5.0发布,增加对视图(View)、存储过程(Procedure)、触发器(Trigger)、 服务器游标(Cursor)及分布式事务协议等高级特性的支持,至此,MySQL从功能上已经具备了支持企业级应用的主要特性。 ●在实际应用方面,LAMP(Linux + Apache + MySQL + Perl/PHP/Python)也逐渐成了IT业 广泛使用的Web应用架构。

7种方法连接数据库

连接数据库的方法小结 1.ODBC API ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API 进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。 2.MFC ODBC 由于直接使用ODBC API编写应用程序要编制大量代码,开发者往往需要花费很多的精力在非核心代码的维护上,而Visual C++提供了MFC ODBC类,封装了ODBC API,这使得利用MFC ODBC来创建ODBC应用程序非常简便。 3.DAO(Data Access Object) DAO提供了一种通过程序代码创建和操纵数据库的机制,多个DAO构成一个体系结构,在这个体系结构中,各个DAO对象协同工作。MFC DAO是Microsoft提供的用于访问Microsoft jet数据库文件的强有力的数据库开发工具,它通过封装DAO,向程序员提供了DAO操作数据库的手段。 4.OLE DB OLE DB(Object Linking and Embedding, Database, 又称为OLE DB或OLE-DB),一个基于COM的数据存储对象,能提供对所有类型的数据的操作,甚至能在离线的情况下存取数据(比方说,你使用的是你的便携机,你可以毫不费力地看到最后一次数据同步时的数据映像). OLEDB位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的应用程序. 你的ADO调用先被送到OLEDB,然后再交由ODBC 处理. 你可以直接连接到OLEDB层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升.

网络连接数据库

package day01; import java.sql.Connection; import java.sql.DriverManager; public class JDBCConnection { public static void main(String[] args) throws Exception { //注册驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //连接 Connection conn=DriverManager.getConnection( "jdbc:oracle:thin:@192.168.7.134:1521:orcl", "system","tarena"); System.out.println(conn); } } NetCTOSS 电信运营支撑系统 资费管理模块资费: cost/fee 主要功能: 针对资费信息的CURD(增删改查)操作. 常见的企业级应用 OSS : 运营支撑系统 CRM: 客户关系管理 ERP: 企业资源规划 技术: JavaEE开发、JavaWeb开发 JavaSE JavaEE Web技术数据库 常见的软件架构体系: (1) C/S client/server客户端/服务架构 client 需要单独安装客户端软件QQ serve 服务器端软件 优点: 客户端可以单独开发,功能和界面可以非常丰富 缺点: 软件的升级成本高 (2)B/S browser/server浏览器/服务架构 是一种特殊的c/s结构 client: 浏览器Browser IE/Firefox/chrome server: 服务器Web服务器 http协议超文本传输协议简单、无状态的协议请求request和应答response

数据库访问技术简介

数据库访问技术简介 数据库中的数据存放在数据库文件中,我们要从数据库文件中获取数据,先要连接并登陆到存放数据库的服务器。一般来说,访问数据库中的数据有两种方式:一是通过DBMS (Data Base Management System,数据库管理系统)提供的数据库操作工具来访问,如通过SQL Server 2000的查询设计器来提交查询,或者通过SQL Server 2000的企业管理工具来访问。这种方式比较适合DBA对数据库进行管理;二是通过API(Application Programming Interface, 应用编程接口)来访问数据库,这种方式适合在应用程序中访问数据库。 在数据库发展的初期,各个开发商为自己的数据库设计了各自不同的DBMS,因此不同类型的数据库之间数据交换非常困难。为了解决这个问题,Microsoft提出了ODBC(Open Data Base Connectivity,开放数据库互连)技术,试图建立一种统一的应用程序访问数据库接口,使开发人员无需了解程序内部结构就可以访问数据库。 1、Microsoft提出的系列数据库访问技术 1.1、ODBC ODBC是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。应用程序可以使用所提供的API来访问任何提供了ODBC驱动程序的数据库。ODBC规范为应用程序提供了一套高层调用接口规范和基于动态链接的运行支持环境。ODBC已经成为一种标准,目前所有的关系数据库都提供了ODBC 驱动程序,使用ODBC开发的应用程序具有很好的适应性和可移植性,并且具有同时访问多种数据库系统的能力。这使得ODBC的应用非常广泛,基本可用于所有的关系数据库。 要使用ODBC,先要了解以下概念:ODBC驱动管理器、ODBC驱动程序、数据源。它们都是ODBC的组件。ODBC组件之间的关系如图1所示。

数据库系统的访问

第7章数据库系统的访问 对于那些相对独立的软件供应商而言,经常要为每一个DBMS编写一个版本的应用程序,或者为每个要访问的DBMS编写针对DBMS的代码。这就意味着,大量的资源都耗在了编写和维护DB的访问上,更不用说应用程序了。此时应用程序的评价标准不再是质量,而是它能否在给定的DBMS中访问数据库。 这就需要开放的数据库连接,就是人们需要用一种新的方法来访问不同的数据库。为此,在C/S,B/S系统中必须广泛使用访问接口技术,以隐藏各种复杂性,屏蔽各种系统之间的差异。常见的数据库访问接口的技术有固有调用、ODBC、JDBC、OLE DB、DAO、ADO、https://www.doczj.com/doc/e214243910.html, 以及基于XML的数据库访问等几种流行的方式。这其中以ODBC技术和JDBC技术应用最广泛,也是目前最为优秀的访问接口方式。 本章主要对几种常见的数据库访问技术(如固有调用、ODBC、JDBC、OLE DB、DAO、ADO、https://www.doczj.com/doc/e214243910.html,以及基于XML的数据库访问等)进行介绍。 7.1 数据库的访问接口 所谓访问接口是指分布式环境中保证操作系统、通信协议、数据库等之间进行对话、互操作的软件系统。 访问接口的作用是保证网络中各部件(软件和硬件)之间透明地连接,即隐藏网络部件的异构性,尤其保证不同网络、不同DBMS和某些访问语言的透明性,即下面三个透明性。 ⑴网络透明性:能支持所有类型的网络。 ⑵服务器透明性:不管服务器上的DBMS是何种型号(ORACLE、SYBASE、DB2等),一个好的访问接口都能通过标准的SQL语言与不同DBMS上的SQL语言连接起来。 ⑶语言透明性:客户机可用任何开发语言进行发送请求和接受回答,被调用的功能应该像语言那样也是独立的。 应用系统访问数据库的接口方式有多种,本节介绍固有调用、ODBC和JDBC。 7.1.1 固有调用 每个数据库引擎都带有自己的包含用于访问数据库的APl函数的动态链接库DLL,应用程序可利用它存取和操纵数据库中的数据。如果应用程序直接调用这些动态链接库,就说它执行的是“固有调用”,因为该调用对于特定的数据库产品来说是“固有” (专用)的。 固有调用接口的优点是执行效率高,由于是“固有”,编程实现较简单。但它的缺点也是很严重的:不具通用性。对于不同的数据库引擎,应用程序必须连接和调用不同的专用的动态链接库,这对于网络数据库系统的应用是极不方便的。 7.1.2 ODBC ODBC是“开放数据库互连”(Open Database Connectivity)的简称。ODBC是Microsoft 公司提出的、当前被业界广泛接受的应用程序通用编程接口(API)标准,它以X/Open和ISO/IEC的调用级接口(CLI)规范为基础,用于对数据库的访问。我们可以用如下图示来说明ODBC概念。

数据库访问技术

7.2 数据库访问技术 访问数据库中的数据对象时,一般可采用两种访问方式:一是登录用户直接借助DBMS 的数据操纵工具,通过图形或SQL命令接口联机访问;另外一种为程序代码通过应用程序编程接口(Application Programming Interface,API)进行数据库连接验证以及数据操作。两种数据库访问方式,可以抽象为图7.5的层次结构,从中可见中间的接口组件是数据库访问的桥梁与核心,本节主要就该部分的通用接口技术(即API访问方式)部分进行介绍。 图7.5 数据库访问结构示意 根据底层数据操作模式的差异,数据库接口可简单分为:本地(Local)数据库接口和客户机/服务器(Client/Server)数据库接口。 1.本地数据库接口 通过DBMS将用户数据请求转换成为简单的磁盘访问命令,并交由操作系统的文件管理系统执行;然后DBMS从文件管理系统得到数据响应并加以处理。由于DBMS数据文件组织结构的差异,本地型DBMS只能够读取特定的数据源。 2.客户机/服务器数据库接口 数据处理工作分散到工作站和服务器上处理。工作站通过特定的数据库通信API,把数据访问请求传给相应的服务器的后端数据驱动程序。由于不同客户机/服务器数据库管理系统通信机制的差异,异构数据库之间也难以实现透明通信互访。 因此,仅依靠特定DBMS提供的数据库访问接口难以支撑透明的、通用的异构数据库访问。后台数据库管理系统的变更或升级,需要程序员对特定API的重新学习,以及对应用程序代码的改写;而市场上DBMS产品众多,必将进一步加大系统开发人员的学习和维护压力,应用程序与数据源间的独立性难以真正实现。为此,建立更为通用的数据访问技术规范,为程序用户提供一套完整、统一的数据库访问接口,得到了数据库业界广泛认同与支持,并由此产生了众多成熟的数据库访问接口应用技术规范。 到目前为止,主流的数据库访问技术包括ODBC、MFC ADO、RDO、OLE DB、ADO、https://www.doczj.com/doc/e214243910.html,以及JDBC等通用技术标准。这些通用数据库访问技术的出现与发展大大降低了数据库系统开发与维护门槛,改善了数据库系统的移植性、扩展性,极大推动了数据库技术的发展与普及。下面就主流数据库访问技术发展与演化进行介绍。

第4章中文网络数据库及其检索

第4章中文网络数据库及其检索 4.1 中国期刊网全文数据库检索系统 中国期刊网全文数据库是CNKI知识创新网中最具特色的一个文献数据库。CNKI即中国知识基础设施(China National Knowledge Infrastructure)工程,是由清华同方光盘股份有限公司、中国学术期刊(光盘版)电子杂志社、光盘国家工程研究中心等单位,于1999年6月在《中国学术期刊(光盘版)》(CAJ-CD)和中国期刊网(CJN)全文数据库建设的基础上研制开发的一项规模更大、内容更广、结构更系统的知识信息化建设项目。主要包括知识创新网和基础教育网。知识创新网设有:国内通用知识仓库、海外知识仓库、政府知识仓库、企业知识仓库、网上研究院和中国期刊网。中国期刊网全文数据库是在《中国学术期刊(光盘版)》的基础上开发的基于因特网的一种大规模集成化、多功能动态学术期刊全文检索系统。该数据库收录1994年至今的5300种学术类核心与专业特色期刊全文,累积全文400多万篇,题录1000万余条。内容覆盖数理科学(理工A)、化学化工能源与材料(理工B)、工业技术(理工C)、农业、医药卫生、文史哲、经济政治与法律、教育与社会科学、电子技术与信息科学,分为九大专辑,126个专题类目(详见表4-1)。网上数据每日更新。 表4-1 九大专辑及包括类目 理工A辑数学、力学、物理、天文、气象、地质、地理、海洋、生物、自然科学综合(含理科大学学报) 理工B辑化学、化工、矿冶、金属、石油、天然气、煤炭、轻工、环境、材料 理工C辑机械、仪表、计量、电工、动力、建筑、水利工程、交通运输、武器、航空、航天、原子能技术、综合性工科大学学报 农业专辑农业、林业、畜牧兽医、渔业、水产、植保、园艺、农机、农田水利、生态、生物 医药卫生专辑医学、药学、中国医学、卫生、保健、生物医学 文史哲专辑语言、文字、文学、文化、艺术、音乐、美术、体育、历史、考古、哲学、宗教、心理 经济政治与法律专辑经济、商贸、金融、保险、政论、党建、外交、军事、法律 教育与社会科学专辑各类教育、社会学、统计、人口、人才、社会科学综合(含大学学报哲社版) 电子技术及信息科学专辑电子、无线电、激光、半导体、计算机、网络、自动化、邮电、通讯、传媒、新闻出版、图书情报、档案

011数据库访问控制

数据库访问控制 一、SQL SEVER的安全体系结构 1、客户机操作系统的安全性:在使用客户计算机通过网络实现对SQL SEVER服务器的访问时,用户首先要获得客户计算机操作系统的使用权。 操作系统安全性是操作系统管理员或网络管理员的任务。 2、SQL SEVER的登录安全性:SQL SEVER服务器的安全,建立在控制服务器登录帐号和密码的基础上。两种登录方式,无论是使用哪种登录方式,通过登录时提供的密码和账号,决定了用户能否获得SQL SEVER访问权,并确定获得访问权限后,用户使用SQL SEVER进程时就可以拥有的权利。 管理和设计合理的登录是数据库管理员(DBA)的重要任务。 3、数据库的使用安全性:设置访问数据库用户 4、数据库对象的使用安全性:设置对数据库对象操作权限 二、SQL SERVER的安全控制 1.SQL SERVER的认证模式及认证模式配置 SQL SERVER的认证模式有两种:“Windows only认证”模式和“混合模式”。“Windows only认证”模式只允许使用“Windows”认证机制。这时,用户不能指定SQL Server的登录账户。混合认证模式既允许使用“Windows only 认证”机制,也允许使用SQL Server认证机制。当使用该种认证模式时,对于可信连接用户的连接请求,系统将采用WindowsNT/2000认证模式,而对于非可信连接则采用SQL Server认证模式,采用SQL Server认证模式时,系统检查是否已经建立了该用户的登录标识以及口令,通过验证后,才可以连接 1

到SQL Server服务器上。 2.服务器登录管理 (1) SQL Server服务器登录管理 SQL Server有2个默认的用户登录帐号:即sa和administrators\builtin。登录账户的信息存储在系统表master_syslogins 中。sa是系统管理员的简称,是一个特殊的登录账户,拥有SQL Server系统和全部数据库中的权限。不管SQL Server实际的数据库所有权如何,sa账户被默认为是任何用户数据库的主人。所以,sa拥有作高最高的管理权限,可以执行服务器范围内的所有操作。 Windows NT Server/2000还有一个默认的超级管理员账户BUILTIN\administrators,BUILTIN\administrators账户在SQL Server系统上和全部数据库也有全部的权限。 (2)服务器帐号的添加 Windows NT/2000帐户由Windows域用户管理创建/修改和删除。当使用SQL Server的混合验证时,只能使用SQL Server登录标识来管理用户连接。 使用菜单建立用户帐号的步骤如下: ①企业管理器中单击登录的服务器中的“安全性”文件夹。 ②用右键单击“登录”,选择新建登录,出现新建登录对话框。 ③在“常规”页框界面下,用于指定登录帐户的名称、身份验证的方式和默认访问的数据库。 ④在服务器角色页框界面下,用于对登录授予服务器范围内的安全特权。在服务器角色列表框中,列出了系统的固定服务器角色。 ⑤选择数据库访问页框,用于确定该帐户在SQL中对哪个数据库拥有什么样的权限。上、下两个列表框分别列出了该帐号可以访问的数据库和数据库 2

网络数据库应用大作业

潍坊学院 计算机工程学院2011-2012学年第 2学期《网络数据库技术》 大作业报告 专业: 班级: 学号: 姓名:

2011-2012年度第二学期 《网络数据库技术》大作业内容及考核方法1.考查任务内容 1.1以s+自己的学号后2位为数据库名建立数据库 (以下以23号为例) 1.2在创建的数据库上使用SQL语言创建下列关系表:( 主键:(S_No, Course_no)

(2)CLASS表(班级表) (4)DEPARTMENT表(系部表) 主键:DEPT_NO (5)STUDENT表(学生表) 主键:S_NO (6)TEACHER表(教师表)

(7)TEACHING表(教师授课表) 1.3各关系表的约束要求 外键约束: (1 (2)CHOICE——STUDENT关系 (3)CLASS——DEPARTMENT关系 (4 (5 (6 检查性约束: STUDENT表的S_SEX字段和TEACHER表的T_SEX字段取值均为’男’或’女’。

1.4使用SQL语言插入下列所示的数据

1.5 完成以下查询要求,给出实现该要求的SQL语句 (1)查询入学总分高于平均总分的学生的学号、姓名、总分、班级编号、班级名信息,并将显示结果按班级编号、学号排序。 (2)创建一个名为STUDENT_NEW的新表,将STUDENT表中的记录复制到该新表中。(3)将STUDENT中叫“丁一”的学生的学号修改为“040102”,班级编号修改为“0401”。(4)列出《计算机文化》课程的成绩高于“王五”的学生名单。 (5)分组统计选修各门课程的学生人数。 1.6 完成以下PL/SQL编程的相关要求 (1)设计一个存储过程,用来接受用户输入的学号,然后显示出该学号对应学生的所有选修课程名及课程成绩。 (2)设计一个函数/存储过程,用来接受用户输入的课程名,然后显示出所有选修了该课程学生的成绩的平均成绩。 (3)设计一个触发器,用于在更新了课程表内容后,更新与课程表有关联的表的内容。1.7 将创建的数据库进行完全备份 1.8 将备份的数据库进行恢复 2. 考核要求 1.所有以上内容,要求全部采用SQL和PL/SQL语言完成。 2.成绩评定标准: (1)大作业报告 (2)答辩情况 3. 完成时间第11-14周

第七讲 VB访问SQL Server2000数据库的方法

第七讲 VB访问SQL Server2000数据库的方法 一、ODBC数据源设置 1、ODBC简介 ODBC Open DatabaseConnectivity开放式数据库互连)是Mircosoft公司有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API Application应用程序编程接口)。这些API利用SQL来完成大部分的任务。ODBC本身提供对SQL语言的支持,用户可以直接将SQL送给ODBC一个基于ODBC的应用程序对数据库操作不依赖于任何DBMS,不直接与DBMS打交道,所有数据库操作由ODBC驱动程序完成。 2、ODBC数据源的创建(建立ODBC数据源) 前台系统Windows 2000 professional系统,后台Windows 2000 Server系统。以Windows 2000 professional为例: (1)单击“开始”/设置/控制面板/管理工具/数据源ODBC,打开“ODBC数据源管理器”,选择“用户DSN or 系统DSN”,单击【添加】按钮,打开“创建用户数据源”对话框,选择“SQL Server”,单击【完成】按钮。

(2)打开“创建新的数据源到SQL Server”窗口: ○1你想用什么名称命名数据源:在名称框中输入xn。 ○2服务器:为网络中数据库服务器(默认是本地服务器Local,可选远程服务器IP)。 ○3登陆ID:xn密码:xn(取决于安装SQL时所指定的密码)。特别注意此处为确保数据库安全起见,数据库管理员可以给用户指定一个用户名及密码。这里为简便起见使用管理员用户名及密码。 ○4更改数据库为:aa(所要使用的数据库)。

数据库选择题

一.选择题: 1.下列数据模型中,独立于DBMS 软件和硬件设备的 是( ) A.概念模型 B. 外部模型 C.逻辑模型 D. 物理模型 2.数据字典中存放的是( ) A.数据与数据的来源 B. 数据的结构 C.数据与数据的结构 D. 数据的来源 3.E.F.Codd 提出了数据库的( ) A.层次模型 B. 网络模型 C.关系模型 D. 面向对象模型 4.某商场的售货员分为多个组,每组中有一个售货员 作为组长,则组长与组内其他售货员之间的联系是 ( ) A.直接联系 B. 二元联系 C.复合联系 D. 递归联系 5.以下关于关系性质的说法中,错误的是( ) A.关系中任意两行的值不能完全相同 B. 关系中任意两列的值不能完全相同 C.关系中任意两行可以交换顺序 D. 关系中任意两列可以交换顺序 6.已知关系R(X,Y)和S(X ,Z),它们的主码分别是X 和Y ,则R >< S 的主码是( ) A.X B.Y C.X 或Y D.XY 7.已知关系R(A ,B)和S(A ,B),则以下关系代数表 达式中错误的是( ) A.R ∩S=S-(S-R) B.R-S=R-(R ∩S) C.R ∪S=R ∪(S-R) D.R ∩S=R-(S-R) 8.下列没有保存在事务日志中的是( ) A.所有读取数据库的操作 B. 数据更新前的值 C.数据更新后的值 D. 事务开始与终止的信息 9.在ODBC 体系结构中,连接数据库驱动程序与数据 库管理系统的桥梁是( ) A.数据源 B. 数据库 C.用户 D. 数据库服务器 10.在分布式数据库系统中,有关系:学生(学号,姓 名,性别,班级),将其划分为(学号,姓名,性别) 和(学号,班级)两个子集,这样的数据划分方式称为 ( ) A.水平分片 B. 垂直分片 C.导出分片 D. 混合分片 11.如果想找出在关系R 的A 属性上不为空的那些元 组,则选择子句应该为( ) A.WHERE A!=NULL B.WHERE A <>NULL C.WHERE A IS NOT NULL D.WHERE A NOT IS NULL 12.以下关于分布式数据库系统的说法中,正确的是 ( ) A.各个场地必须具有相同的分布模式 B.各个场地必须具有相同的DDBMS C.各个场地既支持局部应用,又支持全局应用 D.各个场地不应有数据冗余 13.在MS SQL Server 中能够授权语句许可的角色有 ( ) A.SA 和DBO B.SA 和DBOO C.DBO 和DBOO D.SA , DBO 和DBOO 14.在MS SQL Server 中,如果要使新建的数据库继 承某些缺省设置,那么这些设置信息应存放在 ( ) A.tempdb 数据库中 B.master 数据库中 C.msdb 数据库中 D.model 数据库中 15.在SQL Server 中,能够键入SQL 命令获得数据库 查询结果的图形化工具是( ) A.ISLQ_w 和SQL 客户机端配置器 B.SQL 客户机端配置器和SQL 服务管理器 C.SQL 服务管理器和SQL 企业管理器 D.ISQL_w 和SQL 企业管理器 16.已知关系R(A,B)和S(B ,C),在下面列出的SQL 语句中,实现了关系代数表达式R >< S 运算的是 ( ) A.SELECT*FROM R,S WHERE R.B=S.B B.SELECT A,B,C FROM R,S WHERE R.B=S.B C.SELECT A,R.B,C FROM R,S WHERE R.B=S.B D.SELECT A,R.B,S.B,C FROM R,S WHERE R.B=S.B 17.已知关系:学生(学号,姓名,年龄),假定在年龄属性上建有索引,则该索引有利于加快执行查询语句( ) A.SELECT*FROM 学生ORDER BY 姓名 B.SELECT*FROM 学生ORDER BY 年龄 C.SELECT*FROM 学生WHERE 年龄<>30 D.SELECT*FROM 学生WHERE 姓名LIKE ′张%′ 18.已知关系R(A ,B)和S(A ,C),其中A 既是R 的主码,又是S 参照R 的外码,并且A 不取空值。若R 中有10个元组,S 中有5个元组,则) S ()R (A A ∏?∏中含有的元组数目范围是( ) A.(5,10) B.(5,15) C.(10,10) D.(10,15) 19.有两个事务T1和T2,都用到数据项X 和Y ,则导致死锁的情况是( ) A.T1已对X ,Y 加共享锁;T2申请对X ,Y 的排它锁 B.T1已对X ,Y 加排它锁;T2申请对X ,Y 的共享锁 C.T1对X 已加共享锁,申请对Y 的共享锁;同时T2对Y 已加共享锁,申请对X 的排它锁 D.T1对X 已加排它锁,申请对Y 的排它锁;同时T2对Y 已加共享锁,申请对X 的共享锁 20.有题20图所示E-R 模型, 将其转换为关系模型时需要( ) A.3个关系模式 B.4个关系模式 C.5个关系模式 D.6个关系模式 21.下列四项中说法不正确的是( ) A.数据库减少了数据冗余 B.数据库中的数据可以共享 C.数据库避免了一切数据的重复 D .数据库具有较高的数据独立性 22.关系数据模型的三个组成部分中,不包括( ) A.完整性规则 B.数据结构 C.恢复 D.数据操作 23.关系代数表达式的优化策略中,首先要做的是( ) A.对文件进行预处理 B.尽早执行选择运算 C.执行笛卡儿积运算 D.投影运算 24.数据库的并发操作可能带来的问题包括( ) A.丢失更新 B.数据独立性会提高 C.非法用户的使用 D.增加数据冗余度 25.在基本SQL 语言中,不可以实现( ) A.定义视图 B.定义基表 C.查询视图和基表 D.并发控制 26.在关系代数中,可以用选择和笛卡尔积表示的运算是( ) A.投影 B.联接 C.交 D.除法 27.物理结构的改变不影响整体逻辑结构的性质,称为数据库的( ) A.物理数据独立性 B.逻辑数据独立性 C.物理结构独立性 D.逻辑结构独立性 28.SQL 语言是_____的语言,易学习。( ) A .过程化 B.非过程化 C.格式化 D.导航式 29.表达式“AGE BETWEEN 18 AND 24”等价于 ( ) A.AGE>18 AND AGE<24 B.AGE>=18 AND AGE<24 C.AGE>18 AND AGE<=24 D.AGE>=18 AND AGE<=24 30.在数据库设计中,独立于计算机的硬件和DBMS 软件的设计阶段是( ) A .概念设计 B.物理设计 C.逻辑设计 D .系统实施 31.SQL 语言中,删除一个表的命令是( ) A.DELETE B.DROP C.CLEAR D .REMORE 32.事务日志是用于保存( ) A.程序运行过程 B.数据操作 C.程序的执行结果 D.对数据的更新操作 33.元数据是指( ) A . 数据 B. 数据来源 C. 数据结构 D. 数据和数据结构 34. 在视图上不能完成的操作是 ( ) A.更新视图 B.查询 C.在视图上定义新视图 D.在视图上定义新的基本表 35.C/S 系统的客户机的功能是实现( ) A.前端处理和事务处理 B.事务处理和用户界面 C.前端处理和用户界面 D.事务处理和数据访问控制 36.关系数据库中的视图属于4个数据抽象级别中的( ) A.外部模型 B.概念模型 C.逻辑模型 D.物理模型 37.在下列关于关系的陈述中,错误的是( ) A.表中任意两行的值不能相同 B.表中任意两列的值不能相同 C.行在表中的顺序无关紧要 D.列在表中的顺序无关紧要 38.为了防止一个用户的工作不适当地影响另一个用户,应该采取( ) A.完整性控制 B.安全性控制 C.并发控制 D.访问控制 39.关系数据库中,实现实体之间的联系是通过表与表之间的( ) A.公共索引 B.公共存储 C.公共元组 D.公共属性 40.在MS SQL Server 中,用来显示数据库信息的系统存储过程是( ) A. sp dbhelp B. sp db C. sp help D. sp helpdb 41.下面系统中不属于关系数据库管理系统的是( ) A. Oracle B. MS SQL Server C. IMS D. DB2 42. SQL 语言中,删除一个表的命令是 A.DELETE B. DROP C. CLEAR D. REMOVE 43.如果在关系的分片过程中使用了选择操作,则不可能是( ) A.水平分片 B.垂直分片 C.导出分片 D.混合分片 44.在一个实体集中,一个实体实例(一行)与另外多个实例(多行)相关,则这个实体称为( ) A. 递归实体 B.弱实体 C.复合实体 D.联系实体 45.存在一个等待事务集{T0,T1,…,Tn},其中T0正等待被T1锁住的数据项,T1正等待被T2锁住的数据项,…,Tn-1正等待被Tn 锁住的数据项,且Tn 正等待被T0锁住的数据项,则系统的工作状态处于( ) A. 并发处理 B.封锁 C.循环 D.死锁 46.在分布式数据库中,若存取数据时只需指出片段名称,不必指出片段地址,则称系统具有( ) A. 片段透明性 B.地址透明性 C.局部映象透明性 D.异地透明性 47.某学校规定,每一个班级至多有50名学生,至少有10名学生;每一名学生必须属于一个班级。在班级与学生实体的联系中,学生实体的基数是( ) A. (0,1) B. (1,1) C. (1,10) D. (10,50) 48.关系R(A ,B)和S(B ,C)中分别有10个和15个元组,属性B 是R 的主码,则R ? S 中元组数目的范围是( ) A. (0,15) B. (10,15) C. (10,25) D. (0,150) 49.有一个网络数据库应用系统,其中一台计算机A 存有DBMS 软件、所有用户数据和应用程序,其余各节点作为终端通过通信线路向A 发出数据库应用请求,这种方式属于( ) A.集中式数据库体系结构 B.主从式数据库体系结构 C.客户机/服务器数据库体系结构 D.分布式数据库体系结构 50.已知关系R 如图所示,可以作为R 主码的属性组是 ( )

数据库访问类

本文由星野看星贡献 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; namespace Mysqlserver { ///  /// SqlServerDataBase 的摘要说明 ///  public class SqlServerDataBase { private string strError = null; private int intCount = 0; public SqlServerDataBase() { // // TODO: 在此处添加构造函数逻辑 // } ///  /// 公开方法DBConn,返回数据库连接 ///  /// <returns></returns> public SqlConnection DBconn() { string strConn = "Server=(local);Database=GlobalMeetings;Uid=sa;pwd="; try { return new SqlConnection(strConn); } catch (Exception) { return null; } } ///  /// 公开属性ErrorMessage,返回错误信息 ///  public string ErrorMessage { get { return strError; }

国内三大中文期刊全文数据库的比较

国内三大中文期刊全文数据库的比较研究(建议新手查阅) 中国期刊网全文数据库》、《维普中文科技期刊数据库》和《万方数据库资源系统数字化期刊》是国内影响力和利用率很高的综合性中文电子期刊全文数据库,这三个数据库已经成为大多数高等院校、公共图书馆和科研机构文献信息保障系统的重要组成部分。在互联网中,这三大数据库也成为中文学术信息的重要代表,体现了我国现有的中文电子文献数据库的建设水平。 笔者结合工作和学习中的实践,就上述三大数据库的收录情况、检索功能、检索结果、检索界面、用户服务等方面进行全面的比较,并通过检索实践举例进行比较分析,以供参考。 1 收录情况(数据较早,甚至不是2004年的数据,感觉更像2002年左右的数据,后面将尽可能给出最新的数据值。) 收录范围与数量 《中国期刊网全文数据库》(本文中简称“清华”)是由清华同方光盘股份有限公司、光盘国家工程研究中心和中国学术期刊(光盘版)电子杂志社共同研制出版的综合性全文数据库。该数据库收录自从1994年来公开出版发行的6600余种国内核心期刊和一些具有专业特色的中英文期刊全文,累积全文文献618万多篇,题录1500万余条,按学科分为理工A(数理科学)、理工B(化学化工能源与材料)、理工C(工业技术)、农业、医药卫生、文史哲、经济政治与法律、教育与社会科学、电子技术与信息科学九大类,126个专题文献数据库。 《中文科技期刊数据库》(本文中简称“维普”)由科技部西南信息中心主办,重庆维普资讯有限公司制作。其前身为《中文科技期刊篇名数据库》。该数据库收录了自1989年以来国内出版发行的12000种期刊,其中全文收录8000余种,按学科分为经济管理、教育科学、图书情报、自然科学、农业科学、医药卫生、工程技术等7大类,27个专辑,200个专题,按《中图法》编制了树型分类导航和刊名导航系统,基本覆盖了国内公开出版的具有学术价值的期刊,同时还收录了中国港台地区出版的108种学术期刊,积累700余万篇全文文献,数据量以每年100万篇的速度递增。 《万方数据资源系统数字化期刊》(本文中简称“万方”)是万方数据库资源系统三大组成部分之一,由中国科技信息研究所属下的北京万方数据股份有限公司创办。万方期刊收录了我国自然科学的大量期刊以及社会科学的部分期刊,范围包括基础科学、医药卫生、农业科学、工业技术、人文科学等5大类,以及英文版期刊、中国科学系列杂志,共2500多

数据库的安全访问控制机制和各自优缺点研究

龙源期刊网 https://www.doczj.com/doc/e214243910.html, 数据库的安全访问控制机制和各自优缺点研究 作者:高鹏宋丽芳 来源:《电子技术与软件工程》2015年第20期 摘要 信息技术发展取得了突破性发展,数据库技术具有宽广的使用范围,人们普遍担忧数据库的安全问题关注。文章主要探讨了数据库的安全访问控制机制和各自的优缺点,对访问控制机制未来的发展方向提出了指导性见解。 【关键词】数据库安全访问控制机制优缺点 随着社会的发展,信息技术已经成为了一种重要的战略资源。信息技术能够维护国家安全,促进社会稳定,保障经济的快速发展,起着十分重要的作用。网络技术在发展的同时,也使信息系统呈现出开放性和复杂性等特征,信息体统的互联性和项目依赖性也显得尤为突出,信息技术的安全十分薄弱,无法有效得到保障。传统的安全机制是一种以预防为主的预防机制,同时,也是一种十分被动的预防机制,对非法攻击行为,无法实现有效防止。一些关键系统的安全性如果得不到有效保障,将会造成无法挽回的损失。数据库的安全性是信息系统要担负的重要责任,也是新时期,综合国力和竞争力的重要构成成分。 1 探讨数据库安全访问控制机制的重要性 随着数据库技术的广泛应用,数据库的安全越来越受到重视。数据库技术引起了世界范围内的普遍关注,数据库安全问题也是人们比较关心的问题之一。要想保障数据库的安全有效,就必须建立数据库安全访问控制机制。数据库的安全访问能够保障数据信息的安全有效,起着十分重要的作用,保障数据信息的完整性和保密性。在保护计算机数据信息的安全工作中,需要设置防卫权限,控制访问主体对访问客体使用的访问权限。访问机制能够保障和代表用户的利益,在很大程度上保障数据信息的安全性。 2 不同种类的数据库安全访问控制 数据库安全运行是在保障信息的安全性,数据库的安全需要引入访问控制机制,借助控制手段对以下几种行为进行控制,这些行为有发起网络连接、运行可执行文件、读取数据等等。 当前,从研究中发现,存在的访问控制机制主要有以下几种类型: 2.1 强制访问控制

数据库大型应用解决方案

数据库大型应用解决方 案

随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。 [@more@] 一、负载均衡技术 负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。 1、实现原理 实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载采取有效的均衡策略,来调整每次连接到哪个数据库。 2、实现多据库数据同步 对于负载均衡,最重要的就是所有服务器的数据都是实时同步的。这是一个集群所必需的,因为,如果数不据实时、不同步,那么用户从一台服务器读出的数据,就有别于从另一台服务器读出的数据,这是不能允许的。所以必须实现数据库的数据同步。这样,在查询的时候就可以有多个资源,实现均衡。比较常用的方法是 Moebius for SQL Server集群,Moebius for SQL Server集群采用将核心程序驻留在每个机器的数据库中的办法,这个核心程序称为Moebius for SQL Server 中间件,主要作用是监测数据库内数据的变化并将变化的数据同步到其他数据库中。数据同步完成后客户端才会得到响应,同步过程是并发完成的,所以同步到多个数据库和同步到一个数据库的时间基本相等;另外同步的过程是在事务的环境下完成的,保证了多份数据在任何时刻数据的一致性。正因为Moebius 中间件宿主在数据库中的创新,让中间件不但能知道数据的变化,而且知道引起数据变化的SQL语句,根据SQL语句的类型智能的采取不同的数据同步的策略以保证数据同步成本的最小化。

相关主题
文本预览
相关文档 最新文档