
数字技术与应用
数据的完整性在数据库应用系统中的设计与实施
王春慧
(牡丹江大学
黑龙江牡丹江
157011)
数字技术:
[摘要]本文主要介绍了在SQLServer数据库应用系统中,在服务器端和客户端实现数据完整性的设计方法,并结合医院管理信息系统(简称JY-HMIS),闹述了实施数据完整性的策略。
【关健词】数据完整性[中图分类号]TP3
数据库
事务处理
[文献标识码]A
数据完整性是指数据的正确性和一致性,它有两方面的含义:(1)数据取值的正确性,即字段列值必须符合数据的取值范图、类型和精度的规定:(2)相关数据的一致性,即相关表的联系字段的列值匹配。在数据库应用系统中,保证数据完整性是应用系统设计的基本要求,数据完整性实施的好坏,关系到数据系统的正确性、一致性和可靠性,关系到系统的成败。 JY-HMIS采用C/S模式体系结构,其数据库应用系统为:SQLServer7.0,客户端的开发工具为:PowerBuilder6.5。下面主要从服务器端数据库管理系统及客户端的应用程序一,两个方面进行介绍。
服务器端利用SQL
Server
1
库实现数据的完整性
7.0数据
在用INSERT、DELETE、UPDATE语句修改数据库内容时,数据的完整性可能遭到破坏,为了保证存放数据的正确性和一致性,SQLServer对数据施加了一个或多个数据完整性约束。这些约束限制了对数据库的数据值,或者限制了数据库修改所产生的数据值,或限制了对数据库中某些值的修改。
在SQLServer关系数据库中,主要有以下3类数据完整性:实体完整性(保证表中所有行唯一),参照完整性(主健和外健关系维护,它涉及两个或两个以上的表的数据的一致性维护),域完整性(某列有效性的集合,是对业务管理或是对数据库数据的限制)。在报务器端有两种方法实现数据完整性:定义CreatTable完整性约束及定义规则、缺省、索引和触发器。
1.1定义create
table完整性约束
此方法是在创建数据库表的命令语句中,加入表级约束或列级来实现数据完整性。如在建表语句中加入非空(notnull) 约束、缺省(default)约束、唯一码(unique)约束、主键码(primarykey)约束、外键
22
数字技术与应用万方数据
[文章编号]1007-9416(201001-0022-02
码(foreignkey)约束、校验(check)约束等。它的主要特点是:定义简单、安全可靠、维护方便。
1.1.1非空约束、缺省约束和校验约东
非空约束限定了列值不能为空值;缺省约束指定当向数据库插人数据时,若用户没有明确给出某列的值时,SQLServer 自动输入预定值,校验约束则用来限定列的值域范围。
例如,在创建图书登记表中,限定登记日期、图书类别编码、登记号、中文名等列值不允许为空值,页数的缺省值为1,单价的缺省值为0;图书状态只能为:“在馆”、“借出”、“丢失”之一。
1.1.2主键约束和唯一约束
主键约束和唯一约束,灼为指定的列建立唯一性素引,即不允许唯一索引的列上有相同的值。主键约束更严格,不但不允许有重复值,面且也不允许有空值。
例如,在科室编码表,对列ksbm创建主键约束,对ksmc创建唯一约束。
1.1.3外健约束
外键约束又称参照完整性约束,用来限定本表外键码列值与相关表主键码字段列值的匹配,即保证相关数据的一致性,
例如,在创建医师编码表中,医生所属科室ssks为外键码,限定它与科室编码表中的科密编码ksbm列值一致。
1.2
定义规则、快省、索引和触发器
在数据库表的创建命令语句中定义约束的方法,虽然具有简单、方便、安全等特点,但它只对特定的表有效,不能应用到其他表,并且只能使用altertable命令修改或则除约束,缺乏一定的灵活性。与此相反,在数据库中创建与表相对独立的规则、索引和触发器对象,也能实现数据完整性,面且能实施更复杂、更完善的数据完整性约束。它的主要特点是功能强、
效率高、维护方便。
1.2.1定义规则
规则类似于表定义中的校验约束,用来限定列的镇域范围。但它不限定于特定表,可以绑定到其他表的列或用户自定义的数据类型中使用。
例如,在定义药品的编码规则Rul-ypbm,可绑定到其他表中。
1.2.2定义缺省
缺省类似于表定义中的缺省约束,用来设置列的缺省值输入。它也不限定于特定表,可以绑定到其他表的列或用户自定义数据类型中使用。
1.2.3定义索引
索引类似于表定义中的唯一约束,用来保证列值的唯一性。此外,它还能使用案策索引和非聚索引选项,来增强数据检索的性能。
例如,对于门诊收费明细能表,分别建立了按收费日期和收费序号的非聚族索引,大大提高了数据的查询速度,在末未建立紫引前,要在20多万条记录中查询满足条件的记录,大约需要5分钟左右,建立索引后,只需要4秒钟左右。
1.2.4定义触发器
触发器是一种实施复杂的完整性约束的有效方法,当对它所保护的数据进行修改时自动激活,防止对数据进行不正确,未授权或不一致的修改。类似于表定义中参照完整性约束:触发器也可用来保证相关数据的一致性。它还能完成一些表定义参照完整性的约束不能完成的任务,
2客户端利用PB开发的应用程序实现数据的完整性
2.1用PB的控件来确保数据的完整性在以PB开发工具编写的应用程序中,
可使用数据窗口对象的列校验属性来检查输入数据的正确性,在窗口输入界面中还可以采用下拉列表、复选框,单选按钮等