惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
T
Threatpost
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - Franky
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
S
Security Affairs
P
Proofpoint News Feed
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
S
Security @ Cisco Blogs
H
Hacker News: Front Page
Security Archives - TechRepublic
Security Archives - TechRepublic
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
Know Your Adversary
Know Your Adversary
Y
Y Combinator Blog
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
月光博客
月光博客
量子位
博客园_首页
The Last Watchdog
The Last Watchdog
D
DataBreaches.Net
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
The Register - Security
The Register - Security
Schneier on Security
Schneier on Security
H
Help Net Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
F
Full Disclosure
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Secure Thoughts
Stack Overflow Blog
Stack Overflow Blog
Cloudbric
Cloudbric
Microsoft Security Blog
Microsoft Security Blog

博客园 - treasurelife

java可以开发电脑桌面应用吗?java开发用什么软件? Word、execl及PPT文档中如何插入windows图标(转) windows系统自带图标文件存储方式、存放位置及使用方法全解析(转) 网络类型IPv4和IPv6什么意思?区别? 2:文档编辑生成目录相关方法说明 TCP与UDP的区别 vs 2012 InstallShield Limited Edition Project 打包windows服务解析 百科编辑器ueditor应用笔记 百度编辑器Ueditor 初始化加载内容失败解决办法 .Net 中的序列化与反序列化 (转) VS.Net中程序集的Debug版本和Release版本的区别(转) .NET中IDisposable接口的基本使用 (转) ADO.NET事物 string 是引用类型还是值类型(转) 索引(转) 聚集索引和非聚集索引 深入了解SQLServer系统数据库工作原理(转) - treasurelife - 博客园 什么是 CLR(转) SQLServer数据库安全管理机制详解
数据完整性
treasurelife · 2008-04-25 · via 博客园 - treasurelife

数据完整性

强制数据完整性可确保数据库中的数据质量。例如,如果输入了 employee_id 值为 123 的职员,那么该数据库不应允许其他职员使用同一 ID 值。如果计划将 employee_rating 列的值范围设定为从 1 到 5,则数据库不应接受 6。如果表有一 dept_id 列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。

对表进行计划有两个重要步骤:标识列的有效值和确定如何强制列中的数据完整性。数据完整性有四种类型:

  • 实体完整性
  • 域完整性
  • 引用完整性
  • 用户定义完整性
实体完整性

实体完整性将行定义为特定表的唯一实体。实体完整性强制表的标识符列或主键的完整性(通过索引、UNIQUE 约束、PRIMARY KEY 约束或 IDENTITY 属性)。

域完整性

域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和规则)或可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。

引用完整性

在输入或删除记录时,引用完整性保持表之间已定义的关系。在 Microsoft® SQL Server™ 2000 中,引用完整性基于外键与主键之间或外键与唯一键之间的关系(通过 FOREIGN KEY 和 CHECK 约束)。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。

强制引用完整性时,SQL Server 禁止用户进行下列操作:

  • 当主表中没有关联的记录时,将记录添加到相关表中。
  • 更改主表中的值并导致相关表中的记录孤立。
  • 从主表中删除记录,但仍存在与该记录匹配的相关记录。

例如,对于 pubs 数据库中的 salestitles 表,引用完整性基于 sales 表中的外键 (title_id) 与 titles 表中的主键 (title_id) 之间的关系。

用户定义完整性

用户定义完整性使您得以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性(CREATE TABLE 中的所有列级和表级约束、存储过程和触发器)。