VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 数据库的结构---VB数据库入门之(二)
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:11550, 日期:2001-11-08
数据库的结构---VB数据库入门之(二)
从前面的介绍可以看出,可以为各种类型的数据库管理系统编写Visual Basic前端。事实上,使用ODBC驱
动程序,可以建立与几乎任何数据库管理系统连接的应用程序。这一节中,将介绍可以与Visual Basic数据库应用程序一起使用的几种数据库管理系统。

普通的关系数据库管理系统
        普通的关系数据库管理系统(RDBMS)一般是指传统的桌面RDBMS,以dBASE,Paradox为代表,这类数据库系统对每个表和索引使用单独的文件,并使用定长的记录。建立数据库时,可以指定每个字符(Character)数据类型字段的最大尺寸,当字段的值最大尺寸小时,多余的字符位置用空白填充。与dBASE,Paradox不同,Btrieve表提供变长录字段,当字段内的数据长度变化较大时,变长字符字段可以节省大量的磁盘空间。如果磁盘上的某个目录中含有多个信息文件(.INF),则应为每个信息文件中的每个表指定所使用的索引。信息文件的扩展名为,INF,其文件名与表(库)文件名相同。对于dBASEFoxko需要使用 .INF文件,而对Paradox或Btrieve来说则不需要。在建立一个dBASEFoxno表时,visual Basic自动建立.INF文件。为了与 .DBF 文件一起使用已有的.MDX或 .NDX索引文件,可以用文本编辑器(如“记事本”)建立 .INF文件。

客户/服务器数据库管理系统
       讲入90年代以后,由于大型机和小型机数据库管理系统的用户希望“削减”其信息系统的开支,用相对廉价的文件服务器(多数基于PC体系结构)来代替维护费用十分高昂的大型机,小型机硬件及数据库软件产品,从而导致客户/服务器数据库市场迅速扩大。前端是伴随客户/服务器数据库管理系统出现的,前端指的是在工作站上运行的客户程序,而工作站则与局域网络(LAN)或广域网络(WAN)上的服务器(后端)相连。分布式客户/服务器系统是今后的主要发展趋势。在分布式数据库系统中,含有满足查询条件的数据的表,这些表可以放在不同的服务器中,而服务器可以放在广域网的不同地方。在客户/服务器的RDBMS中,服务器部分的操作系统与客户机上的操作系统可以相问,也可以不同。在实际的客户/服务器系统中,不相同的情况可能占多数。客户/服务器系统与桌面数据库管理系统有很大的不同,其中最主要的区别是所有由前端应用程序发出的SQL语句都在服务器上执行,即服务器负责执行所有由工作站送入服务器的SQL语句。如果从工作站上向服务器发出一个肋 Select 查询,则只有满足查询条件的记录被返回到客户工作站。此外,服务器还处理与并行性、一致性有关的问题。如果服务器不能完成工作站发出的查询操作,则向工作站返回一个出错信息。
大多数客户/服务器RDBMS把所有的数据库存储在一个文件中。必要时,文件可在服务器计算机之间进行划分,但服务器的操作系统仍把分开的文件作为一个文件处理。客户/服务器RDBMS还具有其它复杂的功能,例如支持事务记录。当出现重大的硬件或软件故障而导致系统崩溃时,事务记录可以使数据库重建。此外,目前大多数客户/服务器系统使用硬盘阵列和镜象硬盘,这样可以减少由于某个硬盘驱动器出现故障而造成停机的可能性。为了把Visual Basic数据库应用程序与客户/服务器相连接,最简单的办法是使用合适的ODBC驱动程序。

Microsoft数据库管理系统Access
        Microsoft Access也是一种桌面数据库管理系统,但它与传统的桌面数据库管理系统完全不一样。Access 是 Visual Basic的内部数据库,即缺省数据库类型。这里的“内部”有两方面的含义:一是用Access建立的数据库(.MDB)可以在Visual Basic中使用;二是用Visual basic可以直接建立Access数据库。因此,在Visual Basic中,“Access数据库”和“Visual Basic 数据库”含义相同。Access数据库文件的结构是以Microsoft SQL Server数据库文件结构为基础的特点主要包括:
(1) 一个数据库的所有表和索引都存储在一个.MDB文件中,Text(文本)、Memo(备注)和OLEObject(OLE对象)等数据类型字段的长度都是可变的,Access调整数据字段的大小以容纳相应的数据类型。
(2) 数据字段可以含有时间信息,Date类型的字段对应于SQL—92的Timestamp数据类型,但不以Timestamp 的格式存储。
(3) Access支持空值,即Null(与空字符串不同)。Null是Visual Basic的保留字,用它来指明表的数据单元中没有数据进入。所有的客户/服务器数据库都支持Null值,但除了Access外,其它桌面数据库几乎都不支持Null值。
(4)在Access中,Memo字段作为Text类型来处理,其长度可达1.2GB。
(5)可以在Access中存储QueryDef(查询定义)对象,它与被编译为SQL Server存储过程的SQL SELECT语句类似。
(6)Access提供了长二进制(LargeBinary)对象(BLOB),其大小仅受数据库大小的限制,不受 .MDB文件结构的限制;而数据库的大小仅受硬盘容量的限制。可以在Access表的BLOB字段中存储任何类型的数据(包括多媒体数据),并可用Get Chunk和Append方法对BLOB字段的数据进行读写操作。
(7)Access数据库具有较强的安全性。
以上介绍了可以在Visual Basic中使用的几种数据库管理系统。实际上,如果有合适的软件和硬件,包括网关(Gateway)和中间件(Middleware),则可以连接流行的大型机和小型机RDBMS,如IBM的DB2、Digital Eqipment的Rdb等。除网关外,还应为需要连接的大型机或小型机数据库选择合适的ODBC驱动程序。

       下面我们着重介绍一下数据库的结构。数据库是相关数据的集合,一个数据库含有各种成分,包括表、记录、字段、索引等。
1.数据库(Database)
Visual Basic中使用的数据库是关系型数据库(Relational Batabase)。一个数据库由一个或一组数据表组成。每个数据库都以文件的形式存放在磁盘上,即对应于一个物理文件。不同的数据库,与物理文件对应的方式也不一样。对于dBASE,FoxPro和Paradox格式的数据库来说,一个数据表就是一个单独的数据库文件,而对于Microsoft Access、Btrieve格式的数据库来说,一个数据库文件可以含有多个数据表。
2.数据表(Table)
简称表,由一组数据记录组成,数据库申的数据是以表为单位进行组织的。一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个班所有学生的考试成绩,可以存放在一个表中,表中的每一行对应一个学生,这一行包括学生的学号,姓名及各门课程成绩。
3.记录(Record)
表中的每一行称为一个记录,它由若干个字段组成。
4.字段(Field)
也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类型、数据宽度等。
5.索引(Index)
为了提高访问数据库的效率,可以对数据库使用索引。当数据库较大时,为了查找指定的记录,则使用索引和不使用索引的效率有很大差别。索引实际上是一种特殊类型的表,其中含有关键字段的值(由用户定义)和指向实际记录位置的指针,这些值和指针按照特定的顺序(也由用户定义)存储,从而可以以较快的速度查找到所需要的数据记录。
6.查询(Query)
一条SQL(结构化查询语言)命令,用来从一个或多个表中获取一组指定的记录,或者对某个表执行指定的操作。当从数据库中读取数据时,往往希望读出的数据符合某些条件,并且能按某个字段排序。使用SQL,可以使这一操作容易实现而且更加有效。SQL是非过程化语言(有人称为第四代语言),在用它查找指定的记录时,只需指出做什么,不必说明如何做。每个语句可以看作是一个查询(query),根据这个查询,可以得到需要的查询结果。
7.过滤器(Filter)
过滤器是数据库的一个组成部分,它把索引和排序结合起来,用来设置条件,然后根据给定的条件输出所需要的数据。
8.(view)
数据的视图指的是查找到(或者处理)的记录数和显示(或者进行处理)这些记录的顺序。在一般情况下,视图由过滤器和索引控制。
        下一节我们将用VB编一个简单的浏览数据库的程序。事实上这个例子并不需要编写代码,只是调用VB的固有控件,你将深刻体会到用VB编程的简单易学,功能强大。 (未完待续)