数据库系统基础讲义第6章数据库完整性与安全性控制部分
- 格式:pdf
- 大小:299.42 KB
- 文档页数:27
数据库系统原理(第6章:数据库安全与保护)展开全文一、数据库完整性数据库的安全保护:•完整性控制:数据库完整性是指数据库中数据的正确性和相容性•安全性控制:数据库防止不合法的操作而造成数据泄露、更改或破坏•并发控制:事务就是为了保证数据一致性而产生的一个概念和基本手段•数据库的备份与恢复:保证数据库的可靠性和完整性数据库完整性是指数据库中数据的正确性和相容性。
完整性约束的作用:防止数据库中存在不符合语义的数据。
完整性约束条件的作用对象•列级约束:包括对列的类型、取值范围、精度等的约束•元组约束:指元组中各个字段之间的相互约束•表级约束:指若干元组、关系之间的联系的约束完整性约束条件是完整性控制机制的核心定义与实现完整性约束:实体完整性、参照完整性、用户定义的完整性**************************实体完整性************************** 实体完整性:在MySQL中,实体完整性是通过主键约束和候选键约束实现的。
主键列必须遵守的规则•每一个表只能定义一个主键•主键的值(键值)必须能够唯一标志表中的每一行记录,且不能为NULL•复合主键不能包含不必要的多余列•一个列名在复合主键的列表中只能出现一次主键约束与候选键约束的区别•主键约束一个表只能创建一个主键关键字PRIMARY KEY•候选键约束可以定义若干个候选键关键字 UNIQUE***********************参照完整性*******************************REFERENCES tbl_name(index_col_name,…)[ON DELETE reference_option][ON UPDATE reference_option]tbl_name:指定外键所参照的表名index_col_name:指定被参照的列名ON DELETE:指定参照动作相关的SQL语句reference_option:指定参照完整性约束的实现策略(RESTRICT-限制策略(默认的) | CASCADE-级联策略 | SET NULL-置空策略 | NO ACTION-不采取实施策略)**********************用户定义的完整性****************************非空约束:NOT NULLCHECK 约束:CHECK(expr)触发器命名完整性约束:CONSTRAINT [symbol] symbol:指定的约束名字只能给基于表的完整性约束指定名字,无法给基于列的完整性约束指定名字命名完整性约束的方法是在各种完整性约束的定义说明之前加上关键字( CONSTRAINT )和该约束的名字更新完整性约束使用ALTER TABLE语句更新与列或表有关的各种约束。
第六章保证数据的完整性理论学习(教学)目标:1.了解数据完整性的概念。
2.了解数据完整性的各种类型。
3.掌握各种约束的使用特点。
技能学习(教学)目标:1.熟练掌握各种约束的设置方法。
2.掌握各种约束的管理办法。
在对数据库中数据操作的过程中,数据的添加、修改、删除都有可能造成数据的破坏或者出现表间数据的不一致,如何能保证输入数据的准确无误呢?在SQL Server2008中,系统本身提供了维护机制,通过约束、默认值、规则、触发器等维护机制来保证数据库中数据的正确性和一致性。
6.1 数据完整性的概念数据完整性就是指存储在数据库中的数据正确无误并且相关数据具有一致性。
例如,在“学生”表中,每个学生的信息应该是唯一的,不能存在两位学生的信息完全一致;学生的学号应具有唯一性;学生所在的系,专业,班级必须是存在的。
根据完整性的机制不同,数据完整性可分为:实体完整性、域完整性、参照完整性和用户定义完整性4种类型。
6.1.1 实体完整性这里的实体即表中的记录。
实体完整性要求在表中不能存在完全相同的记录,即表中的每一条必须是唯一的。
实体完整性可以通过设置主键约束、唯一性约束、标识列(IDENTITY)等多种方法来实现。
例如,“学生”表的学生编号可设为主键,则每条记录的学号唯一,并且不能为空,这样就能保证学生记录的唯一性。
6.1.2 域完整性域完整性也称为列完整性,要求向表中输入的数据必须具有正确的类型、格式及有效的数据范围。
例如,在“成绩”表中,成绩字段的值应在0-100之间;在“学生”表中,性别字段的值应为“男”或“女”,如果输入了超出此范围的数据,系统就会拒绝接受。
域完整性的实现可使用用默认值(DEFAULT),检查约束(CHECK)、外键约束(FOREIGN)和规则(RULE)等方法来实现。
6.1.3 参照完整性参照完整性又称为引用完整性。
参照完整性是指作用于有关联的两个或两个以上的表,通过使用主键和外键的关系,使表中的数据与其相关表中数据保持一致。