何彤 何凯
摘 要:在VF环境下开发的数据库系统,Vf数据库在网上由多用户同时使用时,为防止多用户同时修改数据引起错误,vf提供了多用户数据库访问技术。
关键词:数据库系统 ;人工锁定;数据缓冲
VF数据库是国家计算机等级考试的一个组成部分,具有着强大的数据和信息管理功能,在实际工作中有广泛的用途。 VF数据库既包含对数据库的管理和应用,还包含对数据库应用系统的设计和开发,如何提高学生VF数据库技术应用能力,为学生提供一个动态的、多元化的学习环境,培养高技能人才,是我们教学中工作重点。为促使学生更积极的去获取数据库专业知识,拓展数理逻辑与创新思维,我们在教学中对VF数据库进行了一点探索。
对共享库中的表,可能会有多个用户同时去修改,而引起表中的数据出错,为此对并行访问必须施加某些限制,使同一时刻只能由一个用户对记录或表进行修改,VF中用加锁的方式避免了多用户修改表时数据错误的产生.对表的加锁范围分为①锁定表,②锁定表头,③锁定记录.加锁的用户对锁定的对象有读和修改以及再次加锁的权限,而网络上的其他用户对锁定的对象只有读的权限。 下面介绍VF中加锁的3种方式:
1 人工锁定
人工锁定是指在修改表或记录的命令前,用专门的锁定函数来锁定表或记录,修改命令执行后,应该立即对表或记录解锁。
1.1 锁定函数 FLOCK(“表别名”)&&锁定表
LOCK(“0”,“表别名”)&&锁定表头
LOCK(“记录号1,记录号2,…”,“表别名”) &&锁定单个或多个记录
锁定成功函数返回T值。
1.2 解锁命令
UNLOCK&&解锁当前工作区内所有锁定的记录或表头或表
UNLOCKRECORD记录号IN表别名 &&解锁单个记录,当记录号为0时解锁表头
UNLOCKALL&&解锁所有工作区中所有锁定的记录或表头或表
1.3 锁定不成功的情况
①当表已被其他用户锁定时,再做表或表头或任何记录的锁定.②当表中已有记录或表头被其他用户锁定时,再做该记录或表头或表的锁定。
1.4 锁定多个记录的条件
设置setmulitlocks on。当设置setmulitloeks off时可以锁定表,锁定表头,锁定表中的单个记录。执行完自动解锁。
1.5 立即解锁
当加锁的用户对表或记录做完修改之后,应立即解锁,否则其他用户不能对锁定的表或记录做修改。
2 自动锁定
自动锁定是指VF中有一些对表和记录的修改命令本身有加锁功能,修改表或记录的命令执行时首先做锁定,命令不同加锁的范围不同。命令执行完自动解锁。
3 缓冲技术
VF的缓冲技术启用后,程序中执行到对记录或表做修改的命令时,会自动将要修改的记录从磁盘送入缓冲区,然后对缓冲区的记录或表做修改,之后再将缓冲区的内容写回磁盘的原表中。
3.1 缓冲的好处
①在缓冲区中修改的内容不想保存时,在更新原表之前,可以将缓冲区中的修改撤消。②使用开放式缓冲时,在缓冲区中做修改的同时,不影响其他用户对记录或表的任何操作.
4 启用缓冲
对库中表或记录使用缓冲技术首先要给表的buffering属性设置值。函数cursorsetprop()用来设置表的属性,下面是buffering属性的设置方法。
cursorsetprop(“buffeting”,缓冲值,“表名”)
当缓冲值为1时废止缓冲,这是表bufering属性的默认值;当缓冲值为2或3时,启用保守式或开放式记录缓冲;当缓冲值为4或5时,启用保守式或开放式表缓冲。一旦启用缓冲后,在关闭表或废止缓冲之前一直保持有效,当缓冲值重置为1即废止缓冲在VF环境下开发的数据库系统,由于存储数据的DBF文件采用的是ASCII明文存储,非法用户可使用WINHEX、UltreaEdit来打开数据库文件。因此,为了安全,必须对数据的载体DBF文件进行加密保护,主要的目的还是把ASCII码的信息变成不可直接阅读的数据。
从关系型数据库的表、字段、行和数据元素等方面出发,形成库内加密的思想。(1)以表为单位:对于文件型数据库来说,一个文件只有一张表,因而对表的加密可以说是对文件的加密了。(2)以记录或字段为单位加密:通常情况下,我们访问数据库时都是以二维表方式进行的,如果以记录为单位进行加密,每读写一条记录需进行一次加解密的操作,对于不需要访问到的记录,不需要进行任何操作。一个记录都必须有一个密钥与之匹配,在各自密钥的作用下,将数据库的每一个记录加密成密码文并存放于数据库文件中;记录的查找是则通过将需查找的值加密成密码文后进行。(3)以数据元素为单位加密:用asc(),chr()等函数对字段内容做转换;用低级文件函数对库文件进行转换;不用库形式,而用文本文件形式记录信息.并用低级文件函数进行加密。加密形式可做许多复杂的变化,可考虑密码加密参照用户名,使同一密码不同用户密文也不同。总之数据库加密技术的应用极大的解决了数据库中数据的安全问题,当然加密实现的方法各有不同,也都有优劣之处,相信随着数据库加密技术的发展,数据库的使用会变得越来越安全,越来越快捷。
参考文献
[1] 曾 刚,杨奔.VaualForpro开发人员指南[M].北京:希望电子出版社,2002.10.
[2] 郭兴成.VsualForpro7.0开发实作教程[M].北京: 希望电子出版社.2002.11.