VFP数据完整性约束及其应用

时间:2022-10-27 07:56:20

VFP数据完整性约束及其应用

摘 要:VFP数据库应用系统对保证数据完整性具有重要意义。通过实例介绍了在VFP数据库管理系统中实施数据完整性保护的方法。

关键词:数据库;VFP;数据完整性

中图分类号:TP391 文献标识码:A 文章编号:1672-7800(2012)003-0171-02

作者简介:柴晓芳(1980-),女,山西朔州人,中北大学电子与计算机科学技术学院讲师,研究方向为计算机应用;高媛(1972-),女,山西寿阳人,中北大学电子与计算机科学技术学院副教授,研究方向为网络技术。

引言

Visual FoxPro(以下简称为VFP) 是美国Microsoft 公司研制推出的,可运行于Windows 操作系统平台的数据库开发系统。它提供了强大的数据库结构设计和应用程序开发功能,是广泛应用于微型计算机上的一种关系型数据库管理系统软件。而在基于VFP数据库的信息系统中,如何保证数据库系统的数据完整性是数据库设计人员和项目开发所必须重视的环节。在VFP课程教学中以及学生毕业设计中经常发现学生们对于数据库的数据完整性理解不够透彻,或者是对于如何保证数据的完整性和安全性不能较好地掌握。因此,他们只关注系统功能的实现,而在程序系统的用户界面的友好性和数据库的数据安全性设计方面力不从心。其实,VFP系统提供了一整套机制来保证数据的正确性和相容性,增强了VFP的数据处理能力。下面以一定的应用实例来介绍如何保障数据的完整性。

1 VFP系统提供的保护数据完整性的方法

数据完整性包括数据库中数据的一致性、正确性和可靠性几方面。VFP关系型数据库管理系统通过建立和使用约束、规则和触发器等工具来保证数据的完整性。在VFP课程教学过程中,发现一般的教材对这部分内容仅涉及VFP功能的介绍或者只是一带而过,导致学生对这部分内容的理解和运用能力较差,因此这部分内容的教学设计如果能从实际案例出发进行讲解,将提高学生进行数据库应用程序设计的能力,本文将就VFP数据库应用程序设计中的数据完整性控制方法作较详细的分析。在VFP 数据库中,数据完整性包括用户定义完整性(即域完整性)、实体完整性和参照完整性。

1.1 用户定义完整性域完整性规则

(1) 用户定义完整性,也即”域完整性规则”,可通过限制表中字段的数据宽度、数据类型以及字段是否为NULL对用户输入的数据进行规范,这在VFP数据库中可以通过表设计器或者SQL语句实现,如图1就是通过表设计器进行了学生管理系统数据库中student.dbf的域完整性控制。其中,对于性别ssex字段运用了字段有效性进行用户输入的控制,设置默认值是“男”和相应的错误提示信息,如果用户输入错误,系统就会提示只能输入“男”或“女”,如图2所示。

(2)输入掩码可以进一步用于指定字段的输入格式。使用输入掩码可减少人为的数据输入错误,提高输入准确性,保证输入的字段数据格式统一和有效。如学生表中学生的年龄字段只允许输入两位数字,就可以通过表设计器输入掩码“99”,表示只能由小于99的数字来实现,如图3所示。

(3)记录有效性规则。使用记录有效性可以控制用户输入到记录的信息类型,通常比较同一记录的两个或多个字段值,以确保它们遵守在数据库中建立的特定规则。可以使用表设计器和命令(Create Table或Alter Table命令的Set Check子句来设置)。下面介绍使用表设计器来实现记录有效性约束。在student表中,Sno字段的前8位必须与Sclass字段值保持一致,如学号为1106064102学生的班级必须为11060641。因此,在表设计器中“表”选项卡中的记录有效性进行如图4设置,和字段级约束一样,记录级规则在记录值改变时被激活,当记录指针离开记录时,系统会检查记录规则,发出警告,如图4所示。

1.2 实体完整性

实体完整性要求表中的所有行都有唯一的标识符,通过设置主关键字来实现。同时参照完整性也对主关键字是否允许修改,或主关键字列是否可以被删除产生约束。实体完整性规定主关键字对应的主属性都不能取空值,比如学生成绩表(Sno,Cno,Score)中,学号Sno和课程号Cno共同组成为主关键字,则Sno和Cno两个属性都不能为空。因为没有学号Sno的成绩或没有课程号Cno的成绩都是不存在的。在VFP中既可以通过表设计器,也可以通过SQL语句实现的表主关键字设定等实体完整性约束。

1.3 参照完整性约束

对于具有永久关系的两个数据库表,当对一个表更新、删除或插入一条记录时,另一个表并未作相应变化,这就破坏了数据的完整性。VFP提供一个参照完整性生成器供用户指出保证数据完整性的要求,VFP则根据用户要求生成参照完整性规则以保证数据完整性。

参照完整性生成器窗口有更新规则、删除规则和插入规则3个选项卡。

以学生管理数据库为例,首先设置其参照完整性如图5所示,下面以删除选项卡为例,选择“级联”按钮,则当删除父表中的某一记录时,子表中相应的记录将会删除。将student表“张三”所在记录删除,那么与其相关联的子表score表中关于张三的记录也会被删除,所产生的这两个视图的对比就是所产生的级联效果,如图6所示。

2 触发器的使用

字段级约束和记录有效性约束限制了非法数据的输

入,触发器则用于对已存在记录所作的非法操作进行控制。触发器是在用户插入、修改和删除记录事件发生时触发执行的一个表达式或过程。

触发器包括插入触发器、更新触发器和删除触发器。指定一规则,当对数据库表进行插入(包括追加)、更新和删除时,验证规则,只有当规则成立时才能进行相应操作。例如,设置“删除触发器”的表达式为“EMPTY(Sname)”,表示只有当相应记录的“Sname”字段为空时才能删除该记录,这个触发器可以保证不误删除记录,如图7所示,当记录2中姓名不为空时,如果进行删除操作,就会触发触发器提示错误信息。

3 结束语

VFP数据库系统提供的数据完整性的技术,能较好地保证中小型数据库应用系统的数据在缓冲区就可进行录入数据的约束限制,而触发器功能则为数据库设计人员提供了更灵活的控制手段,不论用户是通过前台对表进行插入、更新和删除记录操作,还是直接在数据库中对表数据进行操作,都能通过VFP数据库系统的约束规则的自动激发机制来进行约束。当然一个设计良好的数据库应用程序,不能将所有的数据完整性控制方案全部集中于数据库后台,而是要从用户界面开始抓起,良好的用户界面也是确保数据库系统顺利实施的保障。通过全面的前后台设计,再结合强大的VFP数据库系统的约束性控制,可为中小型数据库系统开发的重要保障。

参考文献:

\[1\] 李争艳,赵艳丽.VFP 中的触发器技术\[J\] .内江科技,2006(6).

\[2\] 魏同明, 严彩梅, 楚红.基于VFP 的数据库约束和触发技术及其应用\[J\].福建电脑,2011(1).

\[3\] 李春葆.Visual FoxPro程序设计\[M\].北京:清华大学出版社,2006.

\[4\] 卢雪松.VisualFoxPro 教程\[M\].南京:东南大学出版社,2008.

上一篇:嵌入式数据库管理系统的设计 下一篇:利用VBA计算业绩奖励课时数