第5章 数据库完整性约束总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

完整性约束与对象
约束是SQL Server提供的自动保持数据库完整性的一种方法,它通过限 制字段中数据、记录中数据和表之间的数据来保证数据的完整性。 在SQL SERVER中,对于基本表的约束分为列约束和表约束。 列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其
他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,
通过数据库完整性来解决这个问题。

什么是数据库完整性

数据库的完整性是指数据的正确性和相容性

数据库完整性是防止不合语义或不正确的数据 进入数据库
完整性体现了是否真实地反映现实世界 例:


学生的年龄必须是整数,取值范围为14-29; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系;
不包括在列定义中,通常用于对多个列一起进行约束,与列定义用“, ”分隔,定义表约束时必须指出要约束的那些列的名称。
完整性约束与对象 在SQL Server 2008中有6种约束和2种对象:
类型 约束关键字
PRIMARY KEY
名称
主键约束 惟一约束
外键约束 检查约束
描述
唯一标识每一行 防止非主键重复 定义值与同一个表或另一个表的 主键值匹配的一列或多列组合
第5章
数据库完整性
场景:
学校的学籍管理办公室数据库管理员抱怨,每次都有学生输入了错 误的数据,如:错误的专业名称、和学籍档案不一致的姓名、错误的导
师名称等等,有时也会因网络超时,相同的信息重复的输入多次,这样
会增加了更多的管理工作。 若你是学校的数据库管理人员认为可由什么方法解决这个问题,提
高效率呢?
5.2 UNIQUE约束
创建惟一性约束的方法有两种:通过 SQL Server 管理平台可以完成 创建和修改惟一性约束的操作;使用 Transact-SQL 语句完成惟一性约束
的操作。
(1)通过SQL Server管理平台可以完成创建和修改惟一性约束的操作
Hale Waihona Puke Baidu
5.2 UNIQUE约束
使用Transact-SQL语句完成惟一性约束的操作,其语法形式如下: • UNIQUE • CONSTRAINT constraint_name UNIQUE ( column_name )
• 5.1 PRIMARY KEY 约束 PRIMARY KEY 约束用于定义基本表的主键,它是惟一确定表中每一条记 录的标识符,其值不能为NULL,也不能重复,以此来保证实体的完整性。 PRIMARY KEY 与 UNIQUE 约束类似,通过建立唯一索引来保证基本 表在主键列取值的唯一性,但它们之间存在着很大的区别:
• 5.1 PRIMARY KEY 约束 主键的创建操作方法有两种:SQL Server管理平台操作法和TransactSQL 语句操作法。 (1) SQL Server管理平台操作法(如图示) (2)使用Transact-SQL语句操作法设置主键约束,其语法形式如下: • PRIMARY KEY • CONSTRAINT constraint_name PRIMARY KEY ( column_name )
• 5.1 PRIMARY KEY 约束 (2)举例: 建立一个SCORE表,包括:SNO、CNO和GRADE,定义SNO,CNO共同 组成SCORE的主键。
• 5.1 PRIMARY KEY 约束 (2)举例: 建立一个SCORE表,包括:SNO、CNO和GRADE,定义SNO,CNO共同组成
①一个表只能有一个 PRIMARY KEY 约束 ,但可定义多个UNIQUE约束;
②对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个 列都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。
注意:不能为同一个列或一组列既定义UNIQUE约束,又定义
PRIMARY KEY约束; PRIMARY KEY既可用于列约束,也可用于表约束。
举例:建立Department表, dno和dname 两列均不为空,后者必 须唯一。 CREATE TABLE Department (dno char(10) NOT NULL, dname char(15) NOT NULL UNIQUE );
当使用惟一性约束时,需要考虑以下几个因素:
•使用惟一性约束的字段允许为空值; •一个表中可以允许有多个惟一性约束;
•可以把惟一性约束定义在多个字段上;
•惟一性约束用于强制在指定字段上创建一个惟一性索引; •默认情况下,创建的索引类型为非聚集索引。 创建惟一性约束的方法有两种:通过 SQL Server 管理平台可以完成 创建和修改惟一性约束的操作;使用 Transact-SQL 语句完成惟一性约束 的操作。 (1)通过SQL Server管理平台可以完成创建和修改惟一性约束的操作
SCORE的主键。
CREATE TABLE SCORE
(SNO CHAR(10) NOT NULL,
CNO CHAR(10) NOT NULL, GRADE NUMERIC(9), CONSTRAINT SC_PRIM PRIMARY KEY (SNO,CNO) );
5.2 UNIQUE约束
惟一性约束用于指定一个或者多个列的组合值具有惟一性,以防止 在列中输入重复的值。定义了UNIQUE约束的那些列称为唯一键,系统自 动为唯一键建立唯一索引,从而保证了唯一键的唯一性。

DBMS维护数据库完整性的机制:

1.提供定义完整性约束条件的机制
DBMS应提供定义数据库完整性约束条件,并把它们存入 数据库中。

2.提供完整性检查的方法
检查数据是否满足完整性约束条件的机制称为完整性检查 。一般在INSERT、UPDATE、DELETE语句执行后开始 检查。

3.违约处理
DBMS若发现用户的操作违背了完整性约束条件,就采取 一定的动作以保证数据的完整性,如拒绝执行该操作,或 级联执行其他操作。
指定列的允许值
实体
UNIQUE
引用
FOREIGN KEY CHECK

对象
DEFAULT NULL DEFAULT RULE
默认值约束 指定列的默认值 空值约束 默认值对象 规则对象 指定是否允许为NULL
完整性约束
完整性约束的基本语法格式为: [CONSTRAINT constraint_name(约束名)] <约束类型> 约束不指定名称时,系统会给定一个名称。
相关文档
最新文档