实现数据完整性_第1页
实现数据完整性_第2页
实现数据完整性_第3页
实现数据完整性_第4页
实现数据完整性_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实现数据完整性第1页,共18页,2023年,2月20日,星期六3.1数据完整性的概念3.1.1完整性约束条件的作用对象3.1.2完整性类型3.1.3如何保证数据完整性第2页,共18页,2023年,2月20日,星期六3.1.1完整性约束条件的作用对象

完整性约束条件的作用对象可以是表、元组和列。列约束主要是列的类型、取值范围、精度、排序约束等;如:年龄0~150,性别{男,女}

元组约束是元组中各个字段间的联系的约束。如:开始日期小于结束日期第3页,共18页,2023年,2月20日,星期六3.1.2完整性类型实体完整性

实体完整性将行定义为特定表的唯一实体。一般用主码约束实现

域完整性

域完整性是指给定列的输入有效性。年龄0~150,一般用check等实现引用完整性

引用完整性保持表之间已定义的关系。一般用外码实现

第4页,共18页,2023年,2月20日,星期六3.1.3如何保证数据完整性声明完整性

在表定义时声明使用约束(CONSTRAINT)、缺省值(DEFAULT)和规则由SQLServer自动加以保证过程完整性

在客户端或服务器端用编程语言或工具实现在Server端使用存储过程(storedprocedure)和触发器(trigger)来实现第5页,共18页,2023年,2月20日,星期六3.2使用约束3.2.1完整性与使用的约束3.2.2DefaultConstraint3.2.3CHECKConstraint3.2.4UniqueConstraint3.2.5PRIMARYKEY约束3.2.6FOREIGNKEY约束第6页,共18页,2023年,2月20日,星期六Default(默认)约束当将某行装载到为行定义了DEFAULT的表中时,若没有指定列值,则是隐性要求将默认值装载到该列中。一个Default只能约束一列格式:

[CONSTAINT约束名]

DEFAULT约束表达式for列名

第7页,共18页,2023年,2月20日,星期六Default约束示例

当未给employees表的受雇日期插入值时,取当前值插入AltertableemployeesAddconstraintdf_emp_datedefaultgetdate()foremp_date也可以在定义表的同时定义约束:CreateTableemployees(......emp_datedatetimeconstraintdf_emp_datedefaultgetdate(),......)

第8页,共18页,2023年,2月20日,星期六CHECK约束通过限制输入到列中的值来强制域的完整性。可定义同表多列之间的约束关系格式

[CONSTAINT约束名]CHECK逻辑表达式

第9页,共18页,2023年,2月20日,星期六Check约束示例1

限制employees表的salary必须大于0 Altertableemployees AddConstraintck_employees_salary

Check(salary>0)

第10页,共18页,2023年,2月20日,星期六Check约束示例2限制employees表的Phone必须是8位长,且每一位必须是0~9的数字

Altertableemployees AddConstraintck_employees_phone

Check(phoneLike‘[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)

第11页,共18页,2023年,2月20日,星期六Check约束示例3限制jobs表的low_salary必须小于high_salary AltertableJobs AddConstraintck_jobs_salary Check(low_salary<high_salary)

第12页,共18页,2023年,2月20日,星期六Unique约束确保在非主键列中不输入重复值。应用在客观具有唯一性质的列上,如身份证号、社会保险号等。格式:

[CONSTAINT约束名]

UNIQUE(列名[,…n])

第13页,共18页,2023年,2月20日,星期六Unique约束示例限制employess的sid都是唯一的

AltertableemployeesAddConstraintu_employees_sid

Unique(sid)

第14页,共18页,2023年,2月20日,星期六PRIMARYKEY约束保证实体完整性每个表有且只有一个PRIMARYKEY约束格式:

[CONSTAINT约束名]

PRIMARYKEY(列名[,…n])

第15页,共18页,2023年,2月20日,星期六PRIMARYKEY约束示例

为employees表和jobs表添加PRIMARYKEY约束

ALTERTABLEemploueesADDCONSTRAINTPK_emplouees_emp_id

PRIMARYKEY(emp_id)

ALTERTABLEjobsADDCONSTRAINTPK_jobs_job_id

PRIMARYKEY(job_id)

第16页,共18页,2023年,2月20日,星期六

FOREIGNKEY约束用于建立和加强两个表数据之间的链接的一列或多列格式:

[CONSTAINT约束名]

FOREIGNKEY(本表列名)REFERENCES

引用表名(引用列名)第17页,共18页,2023年,2月20日,星期六FK约束示例

在employees表的job_id添加外键约束,保证雇员从事的工作一定是在jobs表中已有的工作。

ALTER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论