首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 认证考试-> ORACLE认证
加强客户端约束增强数据库完整性_visualbasic教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
数据库的完整性是影响客户/服务器应用系统正常运行的重要因素。维护数据库的完整性不仅是数据库设计人员的任务,也需要客户端开发人员的积极参与。不在客户端进行完整性约束,一般会引起ODBC错误,导致数据库操作失败,程序异常中断。更为严重的是在某些情况下会突破服务器的约束机制,破坏后台数据库的完整性。因此,只有双方相互配合才能开发出完整、可靠的客户/服务器系统。下面以MSSQLServer6.5和VB5.0为例,对客户端应用开发中的数据库完整性问题进行讨论。其原理同样适用于其他开发环境。

数据库完整性分类

实体完整性(EntityIntegrity),指表和它模仿的实体一致。
域完整性(DomainIntegrity),某一数据项的值是合理的。
参照(引用)完整性(ReferenceIntegrity),在一个数据库的多个表中保持一致性。
用户定义完整性(User-definedIntergrity)。
分布式数据完整性(DistributeddataIntegrity)。

  其中分布式数据完整性不在本文的讨论范围。

数据库完整性的解决方法

  在MSSQLServer6.5中,用约束的方法来保证上述完整性。

  ●列约束

  NOTNULL为指定该列不能为空值;
  DEFAULT为指定当没有输入值时该列的默认值;
  UNIQUE为指定该列不能有重复值,但可对定义为关键字以外的任何列使用;
  CHECK为对列指定规则,如值的定义域,可限制输入到受约束列中的值。

  ●表约束

  PRIMARYKEY为对表指定主关键字。用来保证列的完整性和引用完整性。它的主要作用:
  1.通过确保一个或多个列不允许输入重复值来保证表的所有行是唯一的。
  2.保证受约束的列不允许为空值。从这个角度来讲,相当于NOTNULL和UNIQUE。
  FOREIGNKEY为指定外来关键字。与定义在相关表上的PRIMARYKEY一起使用。

  ●断言Assertion(多个表上的约束)

  MSSQLServer6.5还提供了数据完整性扩展,如用户自定义类型、规则、存储过程和触发器。SQLServer6.5对不同完整性的约束方法见下表。

客户端数据库操作程序开发准则

  1.插入操作

  检查非空字段,保证有输入。如VB中一般用Text控件获得用户输入,则:

  If Len(el_l.Text)=0 Then

  MessageBox"该字段不能为空!"

  EndIf

  检查受UNIQUE约束的字段不能有重复值输入。如对顺序编号等字段采用自动增量的方式,或者在接受输入前检查数据库。对布尔型字段,使用Check控件供用户输入,以限制非法数据。对有限的枚举列字段,使用ListBox或ComboBox控件,列出全部有效值供用户挑选。对外来关键字字段,使用ListBox或ComboBox控件,动态列出全部有效值供用户挑选。如在一个设备管理数据库中,企业信息表FacMsg中的"企业名称"字段是设备Devices中"企业名称"字段的外来关键字。当成功地添加了一个新企业记录后,要将新企业的名称添加到FrmDevices的FacName列表控件中。

  FacName.AddItem"企业名称"

  同样,当成功地删除了一个企业记录后,要将该企业的名称从FrmDevices的FacName列表控件中删除。

  2.删除操作

  删除记录前检查是否有字段值被相关表的记录所引用。

  3.修改操作

  检查修改字段值是否被相关表的记录所引用;
  检查修改字段值是否被相关表的记录所引用;
  检查修改后的字段值是否违反相关的约束规则。

  4.扩展操作

  充分考虑扩展的约束,如自定义类型、规则、存储过程和触发器,以免造成冲突。

  实践表明,采用以上方法可以有效避免用户(尤其是对系统不熟悉的用户)的非法输入,同时弥补《计算机世界》1998年第36期"用VB5RDO访问数据库出现的缺陷及改正"一文所指出的数据库缺陷。->


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·一个特牛的日期时间判断正则表达式-ASP教程,正则表达式
·Remoting编程知识一-.NET教程,.NET Framework
·从客户端检测到有潜在危险的Request.Form 值-ASP教程,客户端相关
·关于DataRow和DataColumn的一点个人简单理解-.NET教程,数据库应用
·DataTable.Select使用小心得-.NET教程,数据库应用
·在Java中如何模拟多继承-JSP教程,Java技巧及代码
·上海移动数据网综合网管的实现
·在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言
·超漂亮的绿色按扭制做-网页设计,Photoshop
·Java获取Html变量的值-JSP教程,Java技巧及代码
最新文章
·阿里联盟:关于结算时间问题的统一说明_网赚技巧
·谷歌官方组织adsense优化大赛_网赚技巧
·google adsense 2007巡讲大会上海站总结_网赚技巧
·网络只是一个开始:专访91now站长小鱼头_站长访谈
·asp.net应用程序资源访问安全模型_asp.net技巧
·给那些迷惑于做垃圾站的站长们_站长心得
·免费——不是威客网站的杀手锏_站长心得
·圈圈浅谈个人网站发展和赚钱的模式-网站推广的口碑篇_站长心得
·说网解络之web2.0概念诠释(1)_站长心得
·google adsense系列技巧100条_google推广
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭