基于Client/Server数据完整性约束的实现技术
摘 要:本论文主要讨论基于Client/Server数据完整性约束及其如何实施企业业务规则,并以SQLServer和PowerBuilder为例,介绍了数据完整性约束的实现技术。关键词:Client/Server,数据完整性约束, 企业业务规则DBMS已从早期的分散的一个个计算模型、网络/文件服务计算模型(针对文件)发展到现在的Client/Server计算模型(针对表中的一行)。
Client/Server模型是非对等的(decoupled),客户发出服务请求,服务器作出响应,提供服务,即所谓的"请求驱动"。DB的Client/Server系统由DBServer、客户应用程序和网络组成。
DBServer(即后端)负责有效地管理系统的资源,主要负责数据处理、并发控制、数据安全性、数据完整性和数据的备份和恢复等。客户应用程序(即前端)是系统中供用户与数据进行交互的部件,主要任务是提供交互式界面完成数据的录入、分析、检查和显示,向DBServer发出请求(SQL语句)并接收结果和错误信息。
网络和通信软件是系统中客户和服务器之间数据传送的工具。由于现在的数据库都是开放、多用户共享,因此维护数据库的正确性至关重要。
数据库的完整性描述为数据库内容的完整性约束集合,其中完整性约束指数据库的一个状态是否合理,这是一组谓词。DBS检查数据的状态和状态转换,判定它们是否合理,是否应予接受。
对一个数据库操作,要判定其是否符合完整性约束,全部断言无矛盾时才可以执行。完整性约束的形式化定义I=(O,P,A,R),其中O是完整性约束所涉及的数据对象集合,P是对象所满足的谓词,A是触发检查的条件,R是约束不满足时的反应动作[2]
一、 常见的数据完整性约束根据分类角度不同,可将完整性约束分为如下几类:·域、元组、集合完整性·立即约束和推迟(到EOT)约束·状态约束和状态演变约束。·标准和定制的数据完整性约束实际的系统中,一般将数据完整性约束分为标准的数据完整性约束和定制的数据完整性约束。
标准的数据完整性约束是DBS已经实现的内部规则,包括域完整性、实体完整性和引用完整性。域完整性(Field Integrity)保证一个数据库不包含无意义的或不合理的值,即保证表的某一列的任何值是该列域(即合法的数据集合)的成员。
方法是限制列的数据类型、精度、范围、格式和长度等。实体完整性(Entity Integrity)保证一个表中的每一行必须是唯一的(元组的唯一性)。
为保证实体完整性,需指定一个表中