首页 > 数据库

通过问题长知识----数据完整性

时间:2009-05-06 17:04:08  作者:fbysss  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
作者:fbysssmsn:jameslastchina@hotmail.comblog:blog.csdn.net/fbysss声明:本文由fbysss原创,转载请注明出处关键字:数据完整性问题描述:Hibernate查询出现异常......

  · 实体完整性规则针对基本关系。一个基本关系表通常对应一个实体集,例如,学生关系对应学生集合。
  · 现实世界中的实体是可以区分的,它们具有一种唯一性质的标识。例如,学生的学号,教师的职工号等。
  在关系模型中,主关键字作为唯一的标识,且不能为空。
(2)参照完整性:相关联的两个表之间的约束,具体的说,就是从表中每条记录外键的值必须是主表中存在的,因此,如果在两个表之间建立了关联关系,则对一个关系进行的操作要影响到另一个表中的记录。
例如,如果在学生表和选修课之间用学号建立关联,学生表是主表,选修课是从表,那么,在向从表中输入一条新记录时,系统要检查新记录的学号是否在主表中已存在,如果存在,则允许执行输入操作,否则拒绝输入,这就是参照完整性。
参照完整性还体现在对主表中的删除和修改操作, 例如,如果删除主表中的一条记录,则从表中凡是外键的值与主表的主键值相同的记录也会被同时删除,将此称为级联删除;如果修改主表中主关键字的值,则从表中相应记录的外键值也随之被修改,将此称为级联删除。
(3)域完整性是对数据表中字段属性的约束,如数据类型、格式、值域范围、是否允许空值等约束,它是由确定关系结构时所定义的字段的属性决定的。
域完整性把属性限制在一个有限的集合中。例如,如果属性类型是整数,那么它就不能是101.5或任何非整数。
(4)用户定义完整性:关系数据库系统根据应用环境不同,往往需要一些特殊约束条件,用户定义的完整性是针对某一具体应用领域,对关系数据库提出的约束条件。反应了某一具体应用涉及的数据必须满足的语义要求。
  例如,集成电路芯片的生产工艺必须取值为:CMS、NMS和ECL三种值之一。又如,学生的年龄限制为14---35之间等等。关系模型提供了定义和检验这些完整性约束的机制,以便用统一的系统的方法处理它们,而不用应用程序处理。
-----------------------------------------------------------------------------------------------
学习了上面的知识,回头来看,我们遇到的,就是一个参照完整性被破坏的问题。

如果您需转载 通过问题长知识----数据完整性,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门