菜鸟总结之——数据完整性
???? 数据库是我们存放数据的仓库,而需要我们保存的数据肯定都是精确而且可靠的,当我们对这些数据做一些增删改查时,保护数据的完整和一致是我们必须做到的。所以我们下面来说说数据的完整性。 我们先来看这张图: 一:概念与作用的联系。 ????? ??在SQLServer联机丛书中,将数据完整性解释如下:“存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。”也就是说数据完整性就是指数据的精确性和可靠性。概念与作用是一体的,它就是为了达到保护数据精确性和可靠性而提出的一个概念。 二:分类和方式的对应。 ???????从图中可以看出: ?????1.Primary Key(主键约束)是实体完整性的体现。 ????2.?域完整性则是对表中的字段做了要求,它对应的是方式中的数据类型、Not Null约束、Check束、Foreign Key约束、Default约束和默认值。 ?????3.参照完整性:指两个表的主键和外键的数据应对应一致。 它的作用有: ?????????????(1)禁止在从表中插入包含主表中不存在的关键字的数据行。 ?????????????(2)禁止会导致从表中相应值孤立的主表中的外键值的改变。 ?????????????(3)禁止删除在从表中有对应记录的主表的记录。 三:check约束与规则。
四:默认值与Default约束的区别 ???????两者的作用相同,只是默认值更类似与规则,它独立于表,可以通过定义一次,多次应用的任意表任意列,还可以用到用户定义的数据类型上。 五:如何选择方法。 ????????在这些方法中,触发器功能强大,即可以维护基础的数据完整性逻辑,又可以维护复杂的完整性逻辑,如多表的级联操作,但是开销较高;约束的功能比触发器弱,但开销底;默认和规则功能更弱,开销也更低;数据类型提供最低级别的数据完整性功能,开销也是最底的。 ?????????在选择完整性方案时,应该遵循在完成同样任务的条件下,选择开销底的方案解决。也就是说,能使用约束完成的就不用触发器;能用数据类型完成的功能,就不用规则来完成。 附一张图是三种类型数据完整性实施方法的比较: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQLSERVER中根据字符截取字符串
- sql-server – JOIN的顺序是否有所作为?
- SQLSERVER排查CPU占用高的情况
- sql – 具有大量或未定义数量的类别的交叉表
- 管理SQL中的层次结构:MPTT /嵌套集与邻接列表对存储路径
- SqlServer数据库连接数与客户端连接池关系测试(一)
- sql-server – 如何从VS 2012数据库项目创建部署脚本?
- .net – 我应该将TimeZoneInfo属性映射到SQL Server 2008数
- SQLserver不是可以识别的内置函数名称"的错误,通过set
- sqlserver中返回两个日期间相差几年零几月零几天,DATEDIFF