Zig*_*jec 112
约束是数据库模式定义的一部分.
约束通常与一个表关联,并与创建CREATE CONSTRAINT
或CREATE ASSERTION
SQL语句.
它们定义数据库中的数据必须符合的某些属性.它们可以应用于列,整个表,多个表或整个模式.可靠的数据库系统确保约束始终保持(除了可能在事务内部,对于所谓的延迟约束).
常见的约束是:
Ale*_*lex 36
要了解我们为什么需要约束,您必须首先了解数据完整性的价值.
数据完整性是指数据的有效性.您的数据有效吗?您的数据是否代表您设计的内容?
我问你可能会想到什么奇怪的问题,但遗憾的是,数据库充满了垃圾数据,对其他表中的行的无效引用,很久以前......以及对业务逻辑没有任何意义的值你的解决方案了.
所有这些垃圾并不是唯一容易降低性能的垃圾,而且在你的应用程序逻辑下也是一个定时炸弹,它最终会检索出它无法理解的数据.
约束是您在设计时创建的规则,用于保护您的数据免受损坏.对于数据库解决方案的心脏孩子的长期生存至关重要.没有限制,您的解决方案肯定会随着时间和繁重的使用而衰减.
您必须承认,设计数据库设计只是解决方案的诞生.在此之后,它必须为(希望)长时间生存,并忍受其最终用户(即客户端应用程序)的各种(奇怪)行为.但是,这个设计阶段的开发对于您的解决方案的长期成功至关重要!尊重它,并支付它所需的时间和注意力.
一位聪明人曾经说过:"数据必须保护自己!" .这就是约束所做的.规则使数据库中的数据尽可能有效.
有很多方法可以做到这一点,但基本上归结为:
sys.check_constraints
AdventureWorks示例数据库中的视图正如我在此暗示的那样,为您的数据库设计构建最佳和最具防御性的约束方法需要一些全面的考虑.您首先需要了解上述不同约束类型的可能性和局限性.进一步阅读可能包括:
祝好运!;)
小智 6
约束只不过是数据的规则.可以使用约束来定义哪些数据有效以及哪些数据无效.因此,可以保持数据的完整性.以下是广泛使用的约束:
NOT NULL
.在这里,我们可以指定我们可以为该特定列输入的数据以及该列不期望的数据.