内容正文:
SQL数据库的完整性
DB
更多模板下载地址:http://www.pptvzaixian.com/shop/view28111.html(复制链接到浏览器打开)
1
引言/FOREWORD
数据完整性是指数据库中的数据能够正确地反映实际情况,数据库中允许有些数据冗余,但是要保持数据的完整性。数据准确性是通过数据库表的设计和约束来实现的。
目录/Contents
01
02
03
完整性分类
常用约束
约束的创建
04
数据库的关系图
任务1 认识数据完整性
在设计表时,要考虑信息的准确性,不重复,有意义,这些都需要约束来设置。
任务场景
任务1 认识数据完整性
完整性的概念
数据完整性是指存储在数据库中的数据正确无误,并且相关数据具有一致性。数据库中的数据是否完整,关系到数据库系统能否真实的反映现实世界。
例如:在“学生”表中学生的学号要具有惟一性,学生性别只能是男或女,其所在系部、专业、班级必须是存在的,否则,就会出现数据库中的数据与现实不符的现象。如果数据库中总存在不完整的数据,那么它就没有存在的必要了,因此实现数据的完整性在数据库管理系统中十分重要。
任务1 认识数据完整性
分类
根据数据完整性机制所作用的数据库对象和范围不同,数据完整性可分:
实体完整性
值域完整性
引用完整性
用户定义完整性
任务1 认识数据完整性
(1)实体完整性
实体是指表中的记录,一个实体就是表中的一条记录。
实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。这样就可以保证数据所代表的任何事物都不存在重复、可以区分。
例如:学生表中的学号必须惟一,并且不能为空,这样就可以保证学生记录的惟一性。
实现实体完整性的方法主要有主键约束、惟一索引、惟一约束和指定IDENTITY属性。
任务1 认识数据完整性
(2)域完整性
域完整性是指特定列的项的有效性。
域完整性要求向表中指定列输入的数据必须具有正确的数据类型、格式以及有效的数据范围。
例如,假设现实中学生的成绩为百分制,则在“课程注册”表中,对成绩列输入数据时,不能出现字符,也不能输入小于0或大于100的数值。
实现域完整性的方法主要有CHECK约束、外键约束、默认约束、非空约束、规则以及在建表时设置的数据类型。
任务1 认识数据完整性
(3)引用完整性
引用完整性又称为参照完整性。引用完整性是指作用于有关联的两个或两个以上的表,通过使用主键和外键或主键和唯一键之间的关系,使表中的键值在所有表中保持一致。
完整性的方法主要有外键约束。
(4)用户定义的完整性
用户定义的完整性是应用领域需要遵守的约束条件,其允许用户定义不属于其他任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性。
任务2 常用约束
约束概念
约束是SQL Server提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。
常用约束:六种
1.主键约束:primary key,主键约束用来强制数据的实体完整性,它是在表中定义一个主键来唯一标识表中的每行记录。
一个表只有一个主键或一个主键组
主键组:primary key(学号,课程号)
不重复,唯一,非空, student(studentno)
Result(学号,课程号,考试日期)
任务2 常用约束
2.外键约束:foreign key, 外键是指一个表中的一列或列组合,它虽不是该表的主键,但却是另一个表的主键。通过外键约束可以为相关联的两个表建立联系,实现数据的引用完整性,维护两表之间数据的一致性关系。
一个表中可以没有外键,可以有一个或多个。互为外键(QQ系统)
创建方法三种:(1)环境下表设计器右键 ——关系
(2)代码中,(3)在数据库关系图中拖拽
前提:拥有字段类型一致,长度一致的字段,意义相同
专业代码,所属专业代码
任务2 常用约束
3.唯一约束:unique,唯一约束用来强制数据的实体完整性,它主要用来限制表的非主键列中不允许输入重复值。唯一约束有如下特点:一个表中可以定义多个唯一约束;每个唯一约束可以定义到一列上,也可以定义到多列上;空值可以出现在某列中一次。
主键的候补,不重复,包括空值
4.默认约束:default,默认约束用来强制数据的域完整性,它为表中某列建立一个默认值,当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋给该列。默认值可以是常量、内置函数或表达式。使用默认约束可以提高输入记录的速度。
任务2 常用约束
5.检查约束: check,检查约束用来强制