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

2009-12-23 02:28梁玉磊王东菊翟传英
中国教育技术装备 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

Authors address College of Information Technology and Communication, Qufu Normal University, Rizhao, Shandong, 276826, China

1 前言

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

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

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

数据库中数据的完整性指的是数据的正确性和一致性。关系数据库系统的数据完整性控制本质上是指数据是否满足特定的语义约束。数据不仅要符合语法的要求,还要满足它的语义约束,亦即满足语法关系的数据不一定在语义上是合法的。如一个人的工资不仅要用数字表示,而且还不能是负数;学生的考试成绩应在100分到0分之间;等等,这些都是语义上的限制。数据的语义不但会限制属性的值,而且还会制约属性之间的关系。如关系中主关键字的值决定关系中其他属性的值,所以,主关键字的值就不能重复出现或为NULL。若数据被更新时使属性的值超越定义的范围或破坏与其他属性之间的关系,则应该给出提示信息并拒绝执行更新。

数据完整性有3个方面的内容:实体完整性、域完整性和参照完整性。实体完整性是保证数据库中实体唯一的特性,在VFP数据表中指定某个属性作为关键字并保证其值的唯一性,该关键字的值可以唯一地确定表中的一行数据。域完整性是指数据项的取值要满足一定的条件,上面所举工资不能小于零的例子就是这类完整性。参照完整性是指当修改一个表中数据时需要参考其他表中数据的值,即2个数据之间存在引用参照关系。如成绩表输入某科成绩,若课程表中不存在该门课程,则输入无效。

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

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

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

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

VFP中提供对字段数据类型、宽度、精度等的规定,用于保证数据的基本域完整性,通过设置字段有效性规则来保证更为严格的域完整性控制。如语意“年龄在18到45岁之间”,可以通过设置字段级有效性规则“年龄>=0 and 年龄<=45”来实现。

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

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

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

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

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

IF This.Value<18 OR This.Value>45

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

This.SetFocus

ENDIF

3.3 利用前端开发工具设计友好的数据输入界面利用应用系统编程可以灵活地控制输入数据的完整性,但该方法较为复杂,还可以利用高级程序设计语言提供的前端开发工具,更便捷地实现用户输入数据时的数据完整性控制。在VFP的表单设计器中提供控件工具箱,其中有用户界面中所需的各类数据输入控件,如选项按钮组、组合框、列表框、复选框、微调器等。充分利用不同类型的控件来输入数据可以明显降低出错率、提高数据录入效率。

如在界面上输入学生的专业名称,利用文本框手工输入时极易造成输入专业名称不标准,造成数据错误。若在界面上提供的录入控件是组合框,用户输入时直接在组合框里选择已定义好的专业名称,则可以有效避免此类错误。如组合框Combo1的初始化代码为:

This.RowSourceType=3

This.RowSource=“SELE 专业名 FROM 专业 INTO CURSOR TMP”

4 小结

数据完整性是管理信息系统设计、数据库设计中的一个重要问题,数据完整性控制实现得好坏直接影响到数据库的性能。充分、有效地利用各类方法将能更方便、更完善地实现数据的完整性控制。

比较起来,利用前端开发工具设计友好的用户界面这种方法最简单,但它所能解决的问题是最有限的。使用数据库自身提供的强大的数据库完整性约束功能,可以在很大程度上减少应用开发的负担,这是最直接、最方便的数据完整性控制方法。应用系统编程的方式则是最灵活的数据完整性控制方法,当然也是这3种方法中实现最复杂的一种。以上3种方法各具特点,在实际应用中应根据具体情况选用相应的方法。

参考文献

[1]高春玲,张新颜.数据完整性机制的认识与应用[J].洛阳大学学报,2003(12)

[2]方景星.数据库完整性设计[J].计算机世界报,2003(10)

[3]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2000

[4]姜浩.Visual FoxPro实现数据完整性约束的方法[J].计算机辅助工程,1997(9)

猜你喜欢
管理信息系统数据库
数据库
数据库
高校图书馆管理信息系统的完善和发展研讨
应用技术型本科工程管理类专业《管理信息系统》课程教学改革
基于B/S结构的学生公寓管理信息系统的设计与实现
基于“互联网+”的企业管理信息系统优化分析
基于工作流的水运应急信息管理平台设计 
数据库
数据库
数据库