第1章 第一次接触
1.1 数据库基本概念
1.1.1 数据库基本概念
(1)、数据(Data)
所谓数据就是描述事物的符号。在我们日常生活中,数据无所不。如数字、文字、图形、图象、声音等都是数据。在计算机中,这些数据都是以二进制代码的形式出现的。
(2)、数据库(DB 即Database)
数据库,顾名思义,就是数据存放的地方。在计算机中,数据库是数据和数据库对象的集合。所谓数据库对象是指表(Table)、视图(View)、存储过程(Stored Procedure)、触发器(Trigger) 等。这些数据库对象将在以后的章节中介绍。
(3)、数据库管理系统(DBMS)
数据库管理系统是用于管理数据的计算机软件。数据库管理系统使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。
(4)、数据库系统(DBS 即Database System)
数据库系统狭义地讲是由数据库、数据库管理系统和用户构成、广义地讲是由计算机硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库、应用程序、用户和维护人员组成的一个整体。
1.1.2 Access数据库
在小型数据库方面,比较早期的是dBase/Foxbase/Foxpro数据库(.dbf文件),曾经在80~90年代初随着PC机的普及而非常流行。Borland也在80年代推出过自己的数据库产品,即:Paradox(目前最新的是Paradox 7.0) ,但现在已不那么流行,并逐渐被淘汰,取而代之的是微软的Access 数据库。
Access属于微软Office办公系列软件中的一个部分, 是当前Windows平台上非常流行的一个桌面数据库管理系统,尤其适合单机或一些小型的数据库应用场合。
使用Access数据库管理系统建立的Access数据库,其文件扩展名为 .mdb ,并且并不象Foxpro、Paradox等数据库那样每个表对应一个文件,而是仅此一个文件,所有的表及其它数据库对象均包含在此文件中,因此显得非常简洁,容易操作与管理。使用Access数据库管理系统来建立一个数据库非常简单,只需寥寥几步就可完成。
Access所具备的功能:
(1)、建立数据库、处理表中记录、建立查询、设计报表等。
(2)、使用Access提供的宏命令及VBA语言,进行简单的程序设计(界面设计、代码编写),以建立一些不太复杂的数据库应用系统(如一些简单的单机版应用程序)。所以,Access既是一个小型的桌面数据库管理系统,又是一个简易的软件开发工具(主要适用于简单的数据库应用系统的开发)。
但是,对于较为复杂的数据库应用系统,Access就显得有些力不从心了。这时,我们就不得不使用其它的一些开发工具,如:VB、Delphi等,而数据库可以选用Access数据库或SQL Server数据库、Oracle数据库等。(见图 1‑2)
本课程的内容主要就是讲述如何使用Delphi作为前台开发工具、使用Access数据库(.mdb文件)作为后台的数据存储容器,来进行数据库应用程序的设计与开发。
本书最后再简要介绍大型数据库管理系统SQL Server2000的使用、及其如何配合Delphi来开发C/S结构的数据库应用系统。
1.2 我的第一个数据库应用程序
随书所配光盘的Ch01目录中有一个Students.mdb数据库,其中只包含一张表:Students。先以此数据库为例来看一下如何使用Delphi来连接并显示该数据库中的Students表。
图 1‑3 Students数据库及表
创建一个简单的数据库应用程序,通常需用到以下构件:
1.2.1 ADOTable组件
在窗体上加入ADOTable组件,并设置如下属性:
u ConnectionString:数据库连接串,该属性用于指定:
(1)、数据库驱动程序
(2)、数据库文件
(3)、其它选项
要使用数据库,首先必须通过该属性指定所要连接的数据库文件。
在Object Inspecter窗口中,单击ConnectionString属性右边的“…”按钮,打开如下对话框。
再单击“Build…”按钮打开“数据链接属性”对话框,从中选择数据库驱动程序。
单击“连接”选项卡,选择一个Access数据库文件。
图 1‑6 选择所要连接的数据库
u TableName:表名
由于一个数据库文件中可能包含多张表,所以选择数据库后还需选择其中的表。每个ADOTable组件不能同时访问多张表。
u Active:打开/关闭表
该属性用于打开或关闭表。将其设置为“True”时,打开表;设置为“False”时,关闭表。或者也可以通过执行ADOTable组件的“Open”或“Close”方法来打开或关闭表,其效果与设置Active属性相同。即:
ADOTable.Active:=True 等价于 ADOTable.Open
ADOTable.Active:=Close 等价于 ADOTable.Close
1.2.2 DataSource组件
Data Controls组件面板上的构件称为“数据感知构件”,即:它们既可以显示数据库中的数据,也可以将用户的修改结果存回到数据库中。但要实现这一功能,必须借助DataSource组件,它是数据感知构件与ADOTable组件之间的一个桥梁。
对于DataSource组件,通常只需要设置一个属性:DataSet ,该属性表示一个数据集对象,通常将该属性设置为某个数据集对象,如ADOTable组件。
1.2.3 DBGrid组件
DBGrid是一种常用的数据感知构件,能够以表格的形式显示表中记录(因而称为网格构件)。除了DBGrid之外,后面还会介绍其它各种数据感知构件。
图 1‑7 各组件的相关属性设置
所有数据感知构件都具有一个属性:DataSource ,该属性指定为某个DataSource组件。 |
1.2.4 ADOTable与DataSource组件的作用
读者可能会有疑问,上述程序其背后到底是如何运作的?
其实,在Delphi数据库程序设计中,最重要的组件是与数据库连接的ADOTable组件 ,它负责连接数据库中的表,我们要新增、删除、编辑、取用数据,都必须通过这个组件的相关方法(方法程序)来实现。如果没有这个组件,那么要进行上述各种操作就会非常困难,因为数据库文件是具有复杂格式的文件,要想从底层去分析、控制数据库文件,那将是一项非常艰辛而又烦琐的工作。
当ADOTable组件连接数据库中的表以后,就可以新增、删除、编辑、取用数据了,但这个表中的内容并不能由ADOTable组件直接交付给数据感知组件(如:DBGrid)显示出来,必须先交给DataSource组件来解析表中的内容,然后再将解析后的表中内容交付给数据感知组件显示出来。见图 1‑8
课外练习:
1、 ADOTable的ConnectionString属性与Active属性的数据类型分别是什么?
2、 DataSource构件的作用是什么?它的DataSet属性是什么数据类型、表示什么?
3、 创建数据库链接文件:
(1)、在桌面上建立一个文本文件,如:aa..txt,然后将文件扩展名改为udl,再双击该文件,就会看到如图 1‑5所示的对话框。在该对话框中指定数据库驱动程序并选择一个Access数据库文件,最后确定。
(2)、用“记事本”打开上述创建的数据库链接文件,可以看到该文件内容为如下一个字符串:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\user\桌面\FPNWIND.MDB;Persist Security Info=False
(3)、在图 1‑4中,如果选择“Use Data Link File”单选按钮,并在下面组合框中填入上述创建的“数据库链接文件”名(包含路径),则也可以实现数据库连接。
4、 模仿本节Students数据库的例子,用DBGrid构件显示范例数据库Sales中的Sales表的内容。