1 / 18
文档名称:

实现数据完整性.ppt

格式:ppt   大小:1,166KB   页数:18页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实现数据完整性.ppt

上传人:文库新人 2022/2/14 文件大小:1.14 MB

下载得到文件列表

实现数据完整性.ppt

相关文档

文档介绍

文档介绍:实现数据完整性
第一页,课件共18页
数据完整性的概念

完整性类型
如何保证数据完整性
第二页,课件共18页

实现数据完整性
第一页,课件共18页
数据完整性的概念

完整性类型
如何保证数据完整性
第二页,课件共18页

完整性约束条件的作用对象可以是表、元组和列。
列约束主要是列的类型、取值范围、精度、排序约束等;
如: 年龄0~150,性别{男,女}
元组约束是元组中各个字段间的联系的约束。
如:开始日期小于结束日期
第三页,课件共18页
完整性类型
实体完整性
实体完整性将行定义为特定表的唯一实体。
一般用主码约束实现
域完整性
域完整性是指给定列的输入有效性。
年龄0~150,一般用check等实现
引用完整性
引用完整性保持表之间已定义的关系。
一般用外码实现
第四页,课件共18页
如何保证数据完整性
声明完整性
在表定义时声明
使用约束(CONSTRAINT)、缺省值(DEFAULT)和规则
由SQL Server自动加以保证
过程完整性
在客户端或服务器端用编程语言或工具实现
在Server端使用存储过程(stored procedure)和触发器(trigger)来实现
第五页,课件共18页
使用约束
完整性与使用的约束
Default Constraint
CHECK Constraint
Unique Constraint
PRIMARY KEY 约束
FOREIGN KEY 约束
第六页,课件共18页
Default (默认)约束
当将某行装载到为行定义了 DEFAULT 的表中时,若没有指定列值,则是隐性要求将默认值装载到该列中。
一个Default只能约束一列
格式:
[CONSTAINT 约束名]
DEFAULT 约束表达式 for 列名
第七页,课件共18页
Default约束示例
当未给employees表的受雇日期插入值时,取当前值插入
Alter table employees
Add constraint df_emp_date
default getdate() for emp_date
也可以在定义表的同时定义约束:
Create Table employees
(......
emp_date datetime constraint df_emp_date default getdate(),
......)
第八页,课件共18页
CHECK约束
通过限制输入到列中的值来强制域的完整性。
可定义同表多列之间的约束关系
格式
[CONSTAINT 约束名]
CHECK 逻辑表达式
第九页,课件共18页
Check 约束示例1
限制employees表的salary必须大于0
Alter table employees
Add Constraint ck_employees_salary
Check (salary >0)
第十页,课件共18页
Check 约束示例2
限制employees表的Phone必须是8位长,且每一位必须是0 ~ 9的数字
Alter table employees
Add Constraint ck_employees_phone
Check (phone Like ‘[1-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] ’)
第十一页,课件共18页
Check 约束示例3
限制jobs表的low_salary必须小于high_salary
Alter table Jobs
Add Constraint ck_jobs_salary
Check (low_salary<high_salary)
第十二页,课件共18页
Unique约束
确保在非主键列中不输入重复值。
应用在客观具有唯一性质的列上,如身份证号、社会保险号等。
格式:
[ CONSTAINT 约束名 ]
UNIQUE ( 列名 [, … n] )
第十三页,课件共18页
Unique 约束示例
限制employess的sid都是唯一的
Alter table employees
Add Const