第4章 数据库完整性
更新时间:2023-09-29 10:35:01 阅读量: 综合文库 文档下载
- 第4章一元一次方程推荐度:
- 相关推荐
第4章 数据库完整性
4.1 数据完整性概念 4.1.1 什么是数据完整性?
数据完整性是指存储在数据库中的所有数据值都正确的状态。如果数据库中存储了不正确的数据值,则称该数据库已丢失数据完整性。 4.1.2 什么样的数据具有数据完整性? 满足完整性要求的数据具有以下三个特点: ? 数据的值正确无误
? 数据的存在必须确保同一表格数据之间不存在完全相同的两条或多条数据 ? 数据的存在必须能维护不同表格数据之间的关联情况 4.1.3 数据库完整性分类
实体完整性、域完整性、引用完整性、用户自定义完整性。前面讲过 4.1.4 实施完整性的途径 表-实施完整性的途径 数据完整性类型 实体完整性 实施途径 Primary Key(主键)约束 Unique Key(唯一)约束 Unique Index(唯一索引) Identity Column(标识列) Default(默认值) Check(检查)约束 Foreign Key(外键)约束 Data type(数据类型) Rule (规则) Foreign Key(外键)约束 Check (检查)约束 Trigger (触发器) Stored procedure(存储过程) Rule (规则) Trigger (触发器) Stored procedure(存储过程)
下面我们来了解什么是约束、断言、规则。它们都是保证数据完整性的方法。触发器、存储过程以后讲。
域完整性 引用完整性 用户自定义完整性 4.2 约束
4.2.1 什么是约束?
约束是通过限制列、行中的数据和表之间的数据来保证数据完整性的方法。约束可以确保把有效的数据输入到列中和维护表和表之间的特定关系。 4.2.2 约束分类 SQL中约束分3种类型:
? 与表相关的约束:表定义中的一种约束。最常用的约束,又分为字段级约束、表级约束。
字段级约束就是为某一个字段值设置约束。表约束是将包含多个字段的字段组合设置为约束。如,Student表中,主键约束是字段级约束,主键是SID。SC表中主键约束是表约束,主键是(SID,CID)。
? 断言:在断言定义中的一种约束。不讲 ? 域约束:在域定义中的一种约束。不讲
图 SQL完整性约束类型
从上图可以看出:Microsoft SQL Server 2005系统提供了5种约束类型,即PRIMARY KEY(主键)、FOREIGN KEY(外键)、UNIQUE、CHECK、NOT NULL约束 4.2.3 SQL Server 2005的5种约束类型 1 NOT NULL约束
概念:NULL表示未定义或未知的值;NOT NULL约束只能作为列约束。
设置:在用SQL语句创建列定义时,设置该列具有NOT NULL属性;或者在SQL Sever Management Studio图形界面建表时,禁用”允许空”选项即可。 例如:图形界面建表时,
T-SQL创建表时设置:
CREATE TABLE 职工基本信息表( 编号 int NOT NULL,
姓名 nvarchar(10) NOT NULL, 电话 nvarchar(20) NULL) 2 UNIQUE约束
? 概念:UNIQUE约束的作用是保证在非主键指定的唯一性的列上不会出现重复的数据。 和PRIMARY KEY区别:UNIQUE和PRIMARY KEY约束都能保证数据的唯一性,它们之间的不同是:
? 一个表上只能定义一个主键约束,但可以定义多个唯一性约束。
? 定义了唯一性约束的列上的数据可以是空值,定义了主键约束的列上数据不能是空值。 ? 唯一性约束的操作方式: (1) 在创建表格时,定义UNIQUE约束
语法:[CONTRAINT 约束名] UNIQUE [CLUSTERED|NONCLUSTERED][(字段名[,?n])] 说明:CLUSTERED 表示在该列上建立聚集索引。 NONCLUSTERED 表示在该列上建立非聚集索引。
聚集索引确定表中数据的物理存储顺序。因此一个表只包含一个聚集索引。 例如:CREATE TABLE 员工信息(
编号int NOT NULL,
姓名nvarchar(10) NOT NULL, 联系电话nvarchar(10) NOT NULL,
CONSTRAINT UNI_姓名_编号UNIQUE(姓名,编号))
说明:这是把姓名和编号合并到一个组,并对该组进行约束。 CREATE TABLE 员工信息(
编号 int NOT NULL,
姓名 nvarchar(10) NOT NULL UNIQUE, 联系电话 nvarchar(10) NOT NULL) 说明:只对一列指定唯一性约束。 (2) 添加UNIQUE约束
若要在表中添加唯一性约束,则欲约束的列或列的集合没有重复值。 语法:ALTER TABLE 表名 ADD
[CONSTRAINT 约束名]
UNIQUE[CLUSTERED|NONCLUSTERED] (字段名[,?n]) 例如:ALTER TABLE 员工信息 ADD
CONSTRAINT UNI_电话 UNIQUE NONCLUSTERED(电话) (3) 删除UNIQUE约束 语法:ALTER TABLE 表名 DROP
{[CONSTRAINT] 约束名}[,?n] 例: ALTER TABLE 员工信息 DROP
CONSTRAINT UNI_电话 ? 用SSMS操作UNIQUE约束 例如:Student表中的Sname
在欲设置唯一键的字段上,右键快捷菜单或工具栏按钮“索引/键”,—>弹出的【索引/键】对话框->单击“添加”按钮添加新的主/惟一键或索引->在常规的“类型”右边选择“惟一键”,->在“列”的右边单击省略号按钮,选择列名Sname和排序规律;
若要删除UNIQUE约束,则重新打开“索引/键”窗口,单击“删除”按钮即可。 3 PRIMARY KEY约束
一个表只能有一个主键约束。主键字段不能有重复值,不能有空值。 SQL创建主键约束
语法:[CONTRAINT 约束名] PRIMARY KEY [CLUSTERED|NONCLUSTERED][(字段名[,?n])] 例1:CREATE TABLE 员工信息( 编号 int NOT NULL,
姓名 nvarchar(10) NOT NULL, 联系电话 nvarchar(10) NOT NULL, CONSTRAINT PK_编号 PRIMARY KEY(编号)) 此例给约束起了一个名字,即约束名。 例2:CREATE TABLE 员工信息(
编号int PRIMARY KEY, 姓名nvarchar(10) NOT NULL, 联系电话nvarchar(10) NOT NULL, )
例3:CREATE TABLE 员工信息(
编号int NOT NULL,
正在阅读:
第4章 数据库完整性09-29
Wysiwyg快捷键指南大全R32以上09-16
大型综合体商业购物中心物业管理公司投标书06-11
森林培育小论文03-03
我的一家作文500字07-10
校学生会工作计划4篇04-16
答案--心理健康竞赛题库(预赛)05-08
温州教师招聘网:2016温州教师招聘信息02-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 完整性
- 数据库