第五章 数据库完整性
- 格式:ppt
- 大小:395.50 KB
- 文档页数:63
第5章数据库安全性(2课时)数据库的数据保护主要包括数据的安全性和数据的完整性。
数据的安全性是为了保护数据库防止恶意的破坏和非法访问,防范对象是非法用户和非法操作。
数据库的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据,防范对象是不合语义的、不正确的数据。
举例说明数据的完整性(三种完整性各一例)。
为维护数据库的完整性,DBMS必须具备三个功能:1 提供定义完整性约束条件的机制完整性约束条件也称为完整性约束规则,是数据库必须满足的语义约束条件。
SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。
这些完整性一般由SQL的DDL语句来实现。
它们作为数据库模式的一部分存入数据字典中。
2 提供完整性检查的方法DBMS中检查数据是否满足完整性约束条件的机制称为完整性检查。
一般在INSERT、UPDA TE、DELETE语句执行后开始检查,也可以在事务提交时检查。
检查这些操作执行后数据库中的数据库是否违背了完整性约束条件。
3 违约处理DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作,如拒绝(NOACTION)执行该操作,或级联(CASCADE)执行其他操作,进行违约处理以保证数据的完整性。
目前商用的DBMS产品都支持完整性控制,即完整性定义、检查控制和违约处理都是由DBMS来实现,不必由应用程序来完成,从而减轻了应用程序员的负担。
5.1 实体完整性是关系的两个不变性之一,关系的主属性的取值不能相同,主属性不能取空值,保证在一个关系中不存在两个完全相同的元组。
5.1.1 实体完整性定义关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。
对单属性构成的码有两种说明方法:一种是定义为列级约束条件;一种是定义为表级约束条件。
对多个属性构成的码只有一种说明方法:定义为表级约束条件。
一、选择题1.完整性检查和控制的防范对象是(),防止它们进入数据库。
安全性控制的防范对象是(),防止他们对数据库数据的存取。
A.不合语义的数据B.非法用户C.不正确的数据D.非法操作2.找出下面SQL命令中的数据控制命令()。
A.GRANTMITC.UPDA TED.SELECT3.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。
A.INSERTB.DELETEC.REFERENCESD. SELECT4.下述SQL命令的短语中,不用于定义属性上约束条件的是()。
A.NOT NULL短语B.UNIQUE短语C.CHECK短语D.HA VING短语二、填空题1.数据库的完整性是指数据的正确性和相容性。
2.关系模型的实体完整性在CREATE TABLE中用primary key 关键字来实现。
3.检查主码值出现不唯一和有一个为空违约情况时,则DBMS拒绝插入或修改。
4.关系模型的参照完整性在CREATE TABLE中用foreign key关键字来实现。
5.当参照完整性检查出现违约情况时,则DBMS可以采用拒绝、级联和设置为空策略处理。
6.参照完整性的级连操作的关键字是cascade 。
7.在CREA TE TABLE中定义属性上的约束条件,包括not null 、unique 和check。
8.在CREA TE TABLE中定义属性上的约束条件,检查列值唯一用unique 关键字。
9.关系模型的元组上的约束条件的定义,在CREATE TABLE中用check关键字来实现。
10.在Sno(学号)列上创建约束,要求Sno的值在18至22岁之间,约束名Sno_CK。
请写出对应的完整性命名子句constraint Sno_CK primary key check(sno between 18 and 22)。
1.A C ;BD 2. A 3. C 4. D三、综合题1.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。