基于VFP的管理信息系统数据完整性控制方法探讨 下载本文

龙源期刊网 http://www.qikan.com.cn

基于VFP的管理信息系统数据完整性控制方法探讨

作者:梁玉磊 孔 峰 马 晖 王东菊 翟传英 来源:《中国教育技术装备》2009年第30期

摘要 数据完整性约束是数据库系统设计中的一个重要问题。通过对数据库数据完整性概念、原理的分析,说明数据库应用系统设计中实现数据完整性的重要意义,提出在基于VFP的管理信息系统中实现数据完整性控制的方法。 关键词 数据库,管理信息系统,数据完整性

中图分类号:TP311.131 文献标识码:B 文章编号:1671-489X(2009)30-0092-02

Discussion of Methods of Data Integrity Constraints on Management Information System based on VFP//Liang Yulei, Kong Feng, Ma Hui, Wang Dongju, Zhai Chuanying

Abstract Data integrity constraints in database systems design is an important issue. Through the analysis on the concepts and principles of data integrity of the database, Illustrates the important

significance of data integrity in development of database application system. Proposed three methods of data integrity constraints on Management Information System Based on VFP. Key words data base; management information system; data integrity

Author’s address College of Information Technology and Communication, Qufu Normal University, Rizhao, Shandong, 276826, China 1 前言

管理信息系统是基于数据库的应用系统,其质量首先体现在它所提供的数据的质量,如果不能提供正确、可信的数据,则管理信息系统也就失去存在的意义。数据的质量主要体现在2个方面:一是要及时反映现实世界的状态;二是要保证数据的一致性,即满足数据的完整性约束。本文主要讨论数据的完整性控制在微机上的实现。

Visual FoxPro(VFP)是微软公司推出的数据库管理系统,它以其易学易用、操作简便、功能完善等特性成为管理信息系统开发的常用工具软件。该软件提供了较为完备的数据完整性控制

龙源期刊网 http://www.qikan.com.cn

机制,但作为一个功能完善的管理信息系统,仅依靠软件本身提供的数据完整性控制机制是不够的。

2 数据完整性的含义及实现原理

数据库中数据的完整性指的是数据的正确性和一致性。关系数据库系统的数据完整性控制本质上是指数据是否满足特定的语义约束。数据不仅要符合语法的要求,还要满足它的语义约束,亦即满足语法关系的数据不一定在语义上是合法的。如一个人的工资不仅要用数字表示,而且还不能是负数;学生的考试成绩应在100分到0分之间;等等,这些都是语义上的限制。数据的语义不但会限制属性的值,而且还会制约属性之间的关系。如关系中主关键字的值决定关系中其他属性的值,所以,主关键字的值就不能重复出现或为NULL。若数据被更新时使属性的值超越定义的范围或破坏与其他属性之间的关系,则应该给出提示信息并拒绝执行更新。 数据完整性有3个方面的内容:实体完整性、域完整性和参照完整性。实体完整性是保证数据库中实体唯一的特性,在VFP数据表中指定某个属性作为关键字并保证其值的唯一性,该关键字的值可以唯一地确定表中的一行数据。域完整性是指数据项的取值要满足一定的条件,上面所举工资不能小于零的例子就是这类完整性。参照完整性是指当修改一个表中数据时需要参考其他表中数据的值,即2个数据之间存在引用参照关系。如成绩表输入某科成绩,若课程表中不存在该门课程,则输入无效。

3 实现数据完整性的几种方法

一般来说,管理信息系统实现数据完整性的方法有3种:利用数据库系统自身提供的完整性约束功能、应用系统编程实现、利用前端开发工具设计友好的数据输入界面实现。

3.1 数据库系统自身提供的完整性约束功能从本质上说,面向数据的完整性约束反映的是数据的语义约束,这些约束与具体应用无关,即不论何种具体应用都应该满足这些约束。因此,数据的完整性控制应放在数据库和表的定义中实现。而这种方式也是最直接、最简便的方法。现有的数据库管理系统都提供数据完整性约束功能。

在VFP中实现表的定义时提供实体完整性和域完整性控制机制。通过把关系的关键字指定为主索引即可保证数据的实体完整性,可以保证数据记录的关键字不会为空、不会出现重复值,一旦出现违反这一规则的更新,将由系统给出错误提示并拒绝操作。通过设置记录级有效性

龙源期刊网 http://www.qikan.com.cn

规则,提供更为完善的实体完整性控制。如成绩表中的各科成绩属性和总成绩属性之间的约束关系,就可以通过设置记录级有效性规则“各科成绩的和等于总成绩”来实现完整性控制。 VFP中提供对字段数据类型、宽度、精度等的规定,用于保证数据的基本域完整性,通过设置字段有效性规则来保证更为严格的域完整性控制。如语意“年龄在18到45岁之间”,可以通过设置字段级有效性规则“年龄>=0 and 年龄

在VFP中使用参照完整性生成器实现参照完整性控制,参照完整性设计的主要任务是定义主表和子表之间的参照关系,生成插入、更新和删除触发器。

VFP的参照完整性规则包括3种:1)插入规则,用于设定向子表插入一个新的记录时,若父表中没有与之相匹配的记录,是否限制该记录添加到子表中;2)更新规则,当父表中的关键字段值被改变时,可能导致子表中出现孤立记录,是否同时更新子表中相应记录;3)删除规则,当删除父表中记录时,如果该记录在子表中有匹配记录,是允许删除该父表记录还是同时删除子表中匹配的记录。如设置课程表和成绩表之间的参照关系,插入规则为“限制”,则向成绩表输入某科成绩,若课程表中不存在该门课程,则输入无效。

3.2 应用系统编程应用系统编程对管理信息系统设计者来说是负担最重的方法,但同时又是最基本、最灵活的方法。不论数据库管理系统提供了多么丰富的完整性约束手段,利用编程接口保证数据完整性仍是所有信息系统设计者必须掌握的关键技术之一。

如在输入学生信息时,学生的信息有很多项内容,如学号、姓名、年龄等,如果仅在VFP数据表定义中通过字段有效性规则对取值范围进行限制,那只有在执行语句时,数据库管理系统才能判定己输入的值是否符合规定,即只有在输入全部数据项内容且发送更新之后,用户才可能会被告之在已输入的数据中有某个数据超出规定范围。假如这个有问题的数据一旦输入就被检查出来并立即反馈给用户,将极大地改善系统的可操作性。这就只有借助应用系统编程的方法,直接检查用户输入数据是否符合规定范围。

下面是VFP界面设计中判断在文本框(Text1)中输入年龄数据的完整性判断代码(Text1的LostFocus事件): IF This.Value45

WAIT “年龄应在18到45岁之间,请重新输入!” TIMEOUT 3 This.SetFocus ENDIF

3.3 利用前端开发工具设计友好的数据输入界面利用应用系统编程可以灵活地控制输入数据的完整性,但该方法较为复杂,还可以利用高级程序设计语言提供的前端开发工具,更便捷地实