保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 计算机论文 >> 正文

基于Client/Server数据完整性约束的实现技术


特别对于复杂的表与表之间的饿关系,用存储过程来实现将变得相当容易。

触发器(Trigger)也是一个存储过程,该过程在插入、修改和删除等操作事前或事后由DBS自动激发(执行)。经常用于实现逻辑上相关的数据表之间的数据完整性和一致性。触发器非常适合于实施企业规则,如果某个输入违反了其中的某个企业规则,触发器可以显示相应错误并中止正在执行的数据库动作。

二、Client/Server模型下实施企业规则的准则

在Client/Server系统中,前端和后端都提供数据完整性约束。在前端可进行域完整性约束,并能定制业务规则。在后端几乎可以实现上述所列的所有的完整性约束。E.F.Codd在衡量关系数据库的十二条准则之第十条指出关系完整性约束条件必须用数据子语言定义并存储在数据字典中,而不是在应用程序中。这样,当完整性约束改变时,只要修改数据字典即可,完整性的改变一般不会在逻辑上影响应用程序的活动。

前端应用程序也可以进行某些完整性检查并实施企业规则,但是这些做法不能用于取代在数据库里的完整性约束定义。如果数据库设计者完全正确地说明了所有的约束和企业规则,则任何违反约束和规则的数据操作都会引起数据库错误。前端应用程序的任务是尽量减少产生数据库错误的可能性,只有从这个意义上说,前端应用程序才应

当包含完整性检查和实施事务规则。当数据库没有完整性约束时,前端应用程序必须实施企业规则。

由此我们得出在实施企业规则时须遵循如下准则:

·集中在数据库中实施企业规则

·减少对数据库请求的次数,尽量减少返回结果

我们在实施企业规则时,应将所有的企业规则定义在数据字典中,应用程序在向数据库提交SQL语句之前尽量减少由用户引起数据库错误的可能性,使应用程序运行顺畅,对用户友好,开销少。

三、PowerBuilder/SQLServer数据完整性约束的实现技术

PowerBuilder是当今非常流行的前端开发工具,它提供了丰富的构件,能很方便地开发出界面友好、功能强大的应用程序。下面以功能强大的数据窗口为例,说明前端开发工具如何实现数据完整性约束,PowerBuilder的其它构件也提供类似实现完整性约束的方法。

◆利用列的编辑风格(Edit Style)限制列的长度、格式、值域等。PowerBuilder提供无线按钮(Radio Button)、检查框(Check Box)、下拉式数据窗口(DropDown DataWindow)、下拉式列表框(DropDown List)、编辑屏蔽(Edit Mask)和编辑(Edit)等编辑风格来检查列的数据类型。

◆利用列的有效性验证规则(Validation Rule)对输入数据进行限制。在Validation Rule对话框内,可输入规则定义(Rule Definition)和有效性规则出错信息(Validation Error Message)。

◆可在ItemChanged事件的Script程序里对输入数据进行进一步的有效性验证,若输入数据不能通过在ItemChanged事件里所设置的检查,则返回动作码1,拒绝输入数据。

◆当应用程序调用函数Update()更新数据库之前,触发UpdateStart事件。该事件是用于进行数据有效性验证的最后一次机会。若输入数据的有效性验证失败,则返回动作码1,拒绝数据更新。

◆针对那些数据库要求必须具备值的列(即那些具有NOT NULL约束的列),可将对应的数据窗口的列置为必备域(Required Field)。但是必备域的约束对用户来说并不友好,用户必须输入一个值,否则无法离开该列。一种替代的办法是在UpdateStart事件里检查列(在数据库中为NOT NULL列)的值是否为NULL。

◆利用自定义有效性验证函数进行常规的数据检查,有助于应用程序的标准化和简化。这些函数可以用在列的有效性验证规则,也可以用在Itemchanged事件的Script程序中。一般自定义有效性验证函数被设计成全局函数、返回布尔型结果。

在数据窗口的字段中输入数据,离开该字段,系统调用AcceptText()函数 用户调用AcceptText()函数

执行字段的数据类型检查

↓合法 使用字段的有效性验证规则

激发ItemError事件

↓合法 执行ItemChanged事件(可设置有效性验证)

↓ 0 数据窗口接受该值

↓ 用户调用Update()函数

↓ 执行UpdateStart事件

不更新数据库 ↓ 0 更新数据库

图一、PowerBuilder数据有效性验证的过程

值得注意的是有效性验证规则对数据窗口类的所有实例都通用,而在Itemchanged事件的Script程序里进行有效性验证与具体的数据窗口密切相关。有些有效性验证需进行数据库查询,若需要很高的系统代价,尽量避免使用。

SQLServer是一个多用户的RDBMS,它为复杂环境下有效地实现

《基于Client/Server数据完整性约束的实现技术(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/176369.html

★温馨提示:你可以返回到 计算机论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。