第5章数据库完整性_第4版
数据库系统概论试题及答案版
数据库系统概论复习资料第一章绪论一、选择题1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
在这几个阶段中,数据独立性最高的是 A 阶段。
A.数据库系B.文件系统C.人工管理D.数据项管理2.数据库的概念模型独立于 A 。
A.具体的机器和DBMS B.E-R图C.信息世界D.现实世界3.数据库的基本特点是 B 。
A.(1)数据结构化(2)数据独立性 (3)数据共享性高,冗余大,易移植 (4)统一管理和控制B.(1)数据结构化(2)数据独立性 (3)数据共享性高,冗余小,易扩充 (4)统一管理和控制C.(1)数据结构化(2)数据互换性 (3)数据共享性高,冗余小,易扩充 (4)统一管理和控制D.(1)数据非结构化 (2)数据独立性 (3)数据共享性高,冗余小,易扩充 (4)统一管理和控制4. B 是存储在计算机内有结构的数据的集合。
A.数据库系统B.数据库C.数据库管理系统D.数据结构5.数据库中存储的是 C 。
A. 数据B. 数据模型C.数据及数据间的联系D. 信息6.数据库中,数据的物理独立性是指 C 。
A.数据库与数据库管理系统的相互独立B.用户程序与DBMS的相互独立C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D.应用程序与数据库中数据的逻辑结构相互独立7.数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指 D 。
A.同一个应用中的多个程序共享一个数据集合B.多个用户、同一种语言共享数据C.多个用户共享一个数据文件D.多种应用、多种语言、多个用户相互覆盖地使用数据集合8.数据库系统的核心是 B 。
A.数据库B.数据库管理系统C.数据模型D.软件工具9.下述关于数据库系统的正确叙述是 A 。
A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据10.数将数据库的结构划分成多个层次,是为了提高数据库的 B ①和 B ②。
(完整版)第五章_数据库完整性(习题)
(完整版)第五章_数据库完整性(习题)一、选择题1.完整性检查和控制的防范对象是( ),防止它们进入数据库。
安全性控制的防范对象是(),防止他们对数据库数据的存取。
A.不合语义的数据 B。
非法用户 C.不正确的数据 D.非法操作2.找出下面SQL命令中的数据控制命令().A。
GRANT MIT C.UPDATE D.SELECT3.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。
A。
INSERT B。
DELETE C.REFERENCES D. SELECT4.下述SQL命令的短语中,不用于定义属性上约束条件的是()。
A.NOT NULL短语 B。
UNIQUE短语 C.CHECK短语 D。
HAVING短语二、填空题1.数据库的完整性是指数据的正确性和相容性.2.关系模型的实体完整性在CREATE TABLE中用 primary key 关键字来实现。
3.检查主码值出现不唯一和有一个为空违约情况时,则DBMS拒绝插入或修改。
4.关系模型的参照完整性在CREATE TABLE中用 foreign key关键字来实现。
5.当参照完整性检查出现违约情况时,则DBMS可以采用拒绝、级联和设置为空策略处理。
6.参照完整性的级连操作的关键字是cascade .7.在CREATE TABLE中定义属性上的约束条件,包括not null 、unique 和 check。
8.在CREATE TABLE中定义属性上的约束条件,检查列值唯一用unique 关键字。
9.关系模型的元组上的约束条件的定义,在CREATE TABLE中用check关键字来实现。
10.在Sno(学号)列上创建约束,要求Sno的值在18至22岁之间,约束名Sno_CK。
请写出对应的完整性命名子句constraintSno_CK primary key check(sno between 18 and 22)。
1.A C ;BD 2. A 3。
国家开放大学《数据库运维》章节测试参考答案
国家开放大学《数据库运维》章节测试参考答案第1章数据库运维概述一、单选题1.数据库系统的核心是()。
a.数据库b.计算机软硬件系统c.数据库管理系统d.数据库管理员-2.以下不属于数据库特点的是()。
a.数据共享b.数据冗余度高c.数据完整性高d.数据独立性高3.哪个选项是用来创建和修改数据库结构的()。
a.DCLb.DMLc.DDLd.DQL4.数据库中数据的逻辑独立性是指()。
a.数据与储存结构的逻辑相互独立b.数据与程序之间的逻辑相互独立c.存储结构与物理结构的逻辑相互独立d.数据元素之间的逻辑相互独立5.要保证数据库的数据独立性,需要修改的是()。
a.三级模式之间的两层映射b.模式与内模式c.模式与外模式d.三层模式6.在数据库系统中,负责监控数据库系统的运行情况,及时处理运行过程中出现的问题,这是()人员的职责。
a.系统分析员b.应用程序员c.数据库设计员d.数据库管理员7.MySQL数据库运维中系统高可用性,其中年度可服务时间比例“5个9”,其年度停机时间大约为()。
a.5minb.87.6hc.<1mind.8.8h8.mysqladmin为用户root设置密码的语句()。
a.mysqladmin-uroot-ppassowrd"NEWPASSWORD"b.mysql-uroot-Ppassword-e"setpassowrdforroot=passowrd('passowrd')"c.mysqladmin-urootpassowrd"NEWPASSWORD"d.mysql-uroot-ppassword-e"setpassowrdforroot=passowrd('passowrd')"9.mysqladmincommand参数中删除一个库的参数是()。
a.delete[DB_NAME]b.deletedatabase[DB_NAME]c.drop[DB_NAME]d.dropdatabase[DB_NAME]10.mysqlbinlog中使用参数()可以打开指定库的binlog文件。
第5章 完整性约束定义
2. 实体完整性
实体完整性是指保证表中所有的行唯一。实体完整性要求表中 的所有行都有一个唯一标识符。这个唯一标识符可能是一列, 也可能是几列的组合,称之为主键。也就是说,表中主键在所 有行上必须取值唯一。强制实体完整性的方法有:索引、 UNIQUE约束、PRIMARY KEY约束或 IDENTITY属性 。
参照完整性也叫引用完整性。参照完整性总是保证主关键字 (被引用表)和外部关键字(引用表)之间的参照关系。它涉 及两个或两个以上表数据的一致性维护。
2
3. 参照完整性
5.4.2
数据完整性实施方法
1. 声明型数据完整性 声明型数据完整性一般在对象创建时定义,由SQL Server强制 实施,通常使用约束、缺省值和规则来实现。实现基本数据完 整性的首选方法是使用声明型数据完整性。 声明型数据完整性作为数据库对象说明的一部分在语法中实现, 在CREATE TABLE和ALTER TABLE定义中使用CONSTRAINT、 DEFAULT等语句限制表中的值。使用这种方法实现数据完整性 简单且不易出错,系统直接将实现数据完整性的要求定义在表 和列上。 过程型数据完整性是指由某个过程引发而实施的数据完整性。 一般先写出实施数据完整性的条件,再写出强制该条件所执行 的用于保证数据完整性的脚本。通常由触发器和存储过程实现。 过程型数据完整性也可以在客户机和服务器上使用其它编程语 言和工具实现。
3
2. 过程型数据完整性
5.4.3 约束
1.约束的定义和类型
约束是SQL Server提供的自动保持数据库完整性的一种方法 。
列级约束:列级约束是行定义的一部分,只能够应用在一列上。
表级约束:表级约束的定义独立于列的定义,可以应用在一个表 中的多列上。
第5章 数据库完整性
第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定义。
对单属性构成的码有两种说明方法:一种是定义为列级约束条件;一种是定义为表级约束条件。
对多个属性构成的码只有一种说明方法:定义为表级约束条件。
第5章数据库完整性
4. 修改被参照关系中主码的问题
两种策略 不允许修改主码 允许修改主码 违约操作 要修改被参照关系中某些元组的主码值,而 修改被参照关系中某些元组的主码值 中某些元组的主码值, 参照关系中有些元组的外码值正好等于被参 照关系要修改的主码值,如修改Student学号; 照关系要修改的主码值,如修改 学号; 学号
受限插入:系统将拒绝向 关系插入 关系插入( 受限插入:系统将拒绝向SC关系插入(99001, , 1,90)元组. , )元组. 递归插入:系统将首先向 递归插入:系统将首先向Student关系插入 关系插入 Sno=99001的元组,然后向 关系插入 的元组, 的元组 然后向SC关系插入 (99001,1,90)元组. , , )元组.
级联修改 修改被参照关系中主码值同时, 修改被参照关系中主码值同时,用相同的方法修改 参照关系中相应的外码值; 参照关系中相应的外码值; 受限修改 拒绝此修改操作. 拒绝此修改操作.只当参照关系中没有任何元组的 外码值等于被参照关系中某个元组的主码值时, 外码值等于被参照关系中某个元组的主码值时,这 个元组的主码值才能被修改; 个元组的主码值才能被修改; 置空值修改 修改被参照关系中主码值, 修改被参照关系中主码值,同时将参照关系中相应 的外码值置为空值; 的外码值置为空值;
实体完整性
表中的Sno, Cno定义为码 例:将SC表中的 表中的 定义为码
CREATE TABLE SC ( Sno CHAR(7) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), );
实体完整性
实体完整性检查和违约处理
3.在参照关系中插入元组时的问题 在参照关系中插入元组时的问题
《数据库系统概论》第四版
《数据库系统概论》第四版第四章:1.什么是数据库的安全性?答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
2.数据库安全性和计算机系统的安全性有什么关系?答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。
只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
系统安全保护措施是否有效是数据库系统的主要指标之一。
数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
3.试述可信计算机系统评测标准的情况,试述TDI / TCSEC 标准的基本内容。
答:各个国家在计算机安全技术方面都建立了一套可信标准。
目前各国引用或制定的一系列安全标准中,最重要的是美国国防部(DoD )正式颁布的《 DoD 可信计算机系统评估标准》(伽sted Co 哪uter system Evaluation criteria ,简称TcsEc ,又称桔皮书)。
(TDI / TCSEC 标准是将TcsEc 扩展到数据库管理系统,即《可信计算机系统评估标准关于可信数据库系统的解释》(Tmsted Database Interpretation 简称TDI , 又称紫皮书)。
在TDI 中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。
TDI 与TcsEc 一样,从安全策略、责任、保证和文档四个方面来描述安全性级别划分的指标。
每个方面又细分为若干项。
4.试述TcsEC ( TDI )将系统安全级别划分为4 组7 个等级的基本内容。
答:这些安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。
各个等级的基本内容为:D 级D 级是最低级别。
一切不符合更高标准的系统,统统归于D 组。
Cl 级只提供了非常初级的自主安全保护。
能够实现对用户和数据的分离,进行自主存取控制(DAC ) ,保护或限制用户权限的传播。
(完整版)数据库系统概论复习试题及答案
数据库系统概论复习资料:第一章:三:简答题:1. 什么是数据库?答:数据库是长期存储在计算机内、有组织的、可共享的数据集合。
数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同时使用。
因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。
2. 什么是数据库的数据独立性?答:数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。
当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
3. 什么是数据库管理系统?答:数据库管理系统(DBMS)是操纵和管理数据库的一组软件,它是数据库系统(DBS)的重要组成部分。
不同的数据库系统都配有各自的DBMS,而不同的DBMS各支持一种数据库模型,虽然它们的功能强弱不同,但大多数DBMS的构成相同,功能相似。
一般说来,DBMS具有定义、建立、维护和使用数据库的功能,它通常由三部分构成:数据描述语言及其翻译程序、数据操纵语言及其处理程序和数据库管理的例行程序。
4. 什么是数据字典?数据字典包含哪些基本内容?答:数据字典是数据库系统中各种描述信息和控制信息的集合,它是数据库设计与管理的有力工具,是进行详细数据收集和数据分析所获得的主要成果。
数据字典的基本内容有:数据项、数据结构、数据流、数据存储和处理过程5个部分。
第一章补充作业部分:假设教学管理规定:①一个学生可选修多门课,一门课有若干学生选修;②一个教师可讲授多门课,一门课只有一个教师讲授;③一个学生选修一门课,仅有一个成绩。
第五章 数据库完整性
例2:将SC表中的SNO、cno属性组定义为码 create table sc (sno char(9) not null, cno char(4) not null, grade smallint, primary key(sno,cno) )
8
5.1.2 实体完整性的违约处理
对于实体完整性的检查,包括:
在子表中修改外码(也是主属性)的策略
6. 在参照关系(子表)中修改外码(同时是主码 属性 )。与在参照关系中插入元组类似,可以 有2种策略: 受限修改 递归修改 RDBMS在实现参照完整性时: 需要向用户提供定义主码、外码的机制。 向用户提供按照自己的应用要求选择处理依 赖关系中对应的元组的方法。
6
5.1 实体完整性
5.1.1 定义实体完整性 例1:将student表中的sno属性定义为码 create table student (sno char(9) primary key, sname char(20) not null, ssex char(2), sage smallint, sdept char(20) )
26
5.4 完整性约束命名子句
1. 完整性约束命名子句 Constraint <完整性约束条件名><完整性约 束条件> 例5.10 建立学生登记表 student,要求学号在 90000—99999 之间,姓名不能取空值,年 龄小于30,性别只能是“男”或者“女”
5
数据库完整性控制机制
DBMS完整性控制机制: 1. 提供定义完整性约束条件的机制:提供定义数 据完整性约束条件的方法,完整性约束条件作为 模式的一部分存入数据库中; 2. 提供完整性检查的方法:进行完整性检查,检 查数据是否满足约束条件; 3. 进行违约处理:若有违反,采取相应措施(拒 绝、报告、改正)处理。 完整性子系统:DBMS中执行完整性控制的子系统。 其功能为监督事务的执行,测试其是否违反完整性 约束条件;若有违反,则分情况进行预定的处理。
数据库系统概论第四版答案
数据库系统概论习题答案整理人周东尧QQ:4924525E-mail:fairy1674@博客:/fairy167411第1章绪论1.试述数据、数据库、数据库系统、数据库管理系统的概念。
答:(l)数据(Data):描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义是不可分的。
解析在现代计算机系统中数据的概念是广义的。
早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。
现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。
数据与其语义是不可分的。
500这个数字可以表示一件物品的价格是500元,也可以表示一个学术会议参加的人数有500人,还可以表示一袋奶粉重500克。
(2)数据库(DataBase,简称DB):数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
(3)数据库系统(DataBas。
Sytem,简称DBS):数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
解析数据库系统和数据库是两个概念。
数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。
但是在日常工作中人们常常把数据库系统简称为数据库。
希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。
(4)数据库管理系统(DataBase Management sytem,简称DBMs):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
解析DBMS是一个大型的复杂的软件系统,是计算机中的基础软件。
第5章 数据库保护
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
⑵ 受限方式 (RESTRICT)
• 当参照关系中没有任何元组的外键值与被参照关系中要删除元组的主 键值相同时,系统才进行删除操作,否则拒绝删除操作。因此对“学 生”表的删除操作将被拒绝。
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
DB完整性: • 指DB数据的正确性和相容性。 • 由DBMS提供定义完整性约束的机制。 完整性约束: • 指对数据所规定的语义约束条件。
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
5.1.1 完整性约束的定义
1.实体完整性的定义 2.参照完整性的定义 3.用户定义完整性的定义
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
⑶ 隔离性
• 当多个事务并发执行时,任一事务的执行不会受到其它事 务的干扰,多个事务并发执行的结果与分别执行单个事务 的结果是完全一样的,这就是事务的隔离性。
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
2.参照完整性的定义
• 根据参照完整性规则,用户只要定义了一个关系(基本 表)的外键(外部关键字),系统就会控制外键的值要么 为空,要么等于被参照关系中某一个主键的值(系统对 外键的一种约束)。
• 使用FOREIGN KEY约束(外键约束)定义参照完整性。
第5章 数据库保护
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
内容
5.1 数据库完整性 5.2 数据库安全性 5.3 数据库并发控制 5.4 数据库恢复 小结
第五章-完整性控制
默认策略
级联(CASCADE)操作
设置为空值(SET-NULL)
对于参照完整性,除了应该定义外码,还应定 义外码列是否允许空值
参照完整性检查和违约处理(续)
1、在被参照关系中删除元组的问题 2、在参照关系中插入元组时的问题 3、在参照关系中,修改外码的问题 4、修改被参照关系中主码的问题
参照完整性的常见实现机制包括:
外键(Foreign Key)
检查(Check) 触发器(Trigger) 存储过程(Stored Procedure)
5.2.1 参照完整性定义(续)
在输入或删除记录时,可以用来保持所有表之间定
义的关系,以确保键值在所有表中一致。 关系模型的参照完整性定义
完整性定义(续)
一条完整性规则可以用一个五元组 (D,O,A,C,P) 表示:
(1)D(Data) 约束作用的数据对象; (2)O(Operation) 触发完整性检查的数据库操作,即当用户 发出什么操作请求时需要检查该完整性规则,是立即检查 还是延迟检查; (3)A(Assertion) 数据对象必须满足的断言或语义约束,这 是规则的主体; (4)C(Condition) 选择A作用的数据对象值的谓词; (5)P(Procedure) 违反完整性规则时触发的过程。
违约处理
如果发现用户的操作请求使数据违背了完整性约束条件, 则采取一定的动作来保证数据的完整性。
违约处理(续)
违反实体完整性规则和用户定义的完整性规则的操 作:
一般是拒绝执行 违反参照完整性的操作:
拒绝执行
接受这个操作,同时执行一些附加的操作,以保证数 据库的状态正确
第五章 数据库完整性
《数据库》第五章 数据完整性与约束
必须与引用表中指定的列的值匹配。
15
Inspur Education
▪ 外键约束
–外键约束相关的概念:
oracle– 中外是键其常:他外表用键的约主约束 键定 列束义。中的的用引用法了其他表的的列或列集,一般
– 引用键:外键引用的其他表的唯一键或主键。 – 从表或子表:包含外键的表。此表的值依赖于引用表的唯一
–实例:在已创建的表dept_20中添加
oracleemp中lo常yee用_id约和束h的ir用e_d法ate 列的组合外键约
束A并LTE启R T用ABL:E dept_20
ADD CONSTRAINT fk_empid_hiredate FOREIGN KEY (employee_id, hire_date) REFERENCES job_history(employee_id, start_date)
▪ 唯一性约束
–实例:为已存在的warehouses表的
oraclwear中eh常ous用e_i约d,束wa的re用hou法se_name列,添加名
whAL_TuERnTqA为BLE的wa唯reh一ous性es 约束
ADD CONSTRAINT wh_unq UNIQUE (warehouse_id, warehouse_name)
25
Inspur Education
▪ 检查性约束
–检查性(check)约束即要求每一行的一列或
oracl多e列中的常值用,必约须束满的足用指定法条件。
–检查约束的主要好处是具有非常灵活的完整性 规则的能力。
26
Inspur Education
《数据库原理与应用教程》(第4版)习题参考答案
第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据是数据库中存储的基本对象。
数据库:是存放数据的场所。
数据库管理系统:管理数据库数据及其功能的系统软件。
数据库系统:由数据库、数据库管理系统、数据库管理员和数据库应用程序共同构成的系统。
2.数据管理技术的发展主要经历了哪几个阶段?答:文件管理和数据库管理。
3.文件管理方式在管理数据方面有哪些缺陷?答:(1)编写应用程序不方便。
(2)数据冗余不可避免。
(3)应用程序依赖性。
(4)不支持对文件的并发访问。
(5)数据间联系弱。
(6)难以满足不同用户对数据的需求。
4.与文件管理相比,数据库管理有哪些优点?答:(1)相互关联的数据集合;(2)较少的数据冗余;(3)程序与数据相互独立;(4)保证数据的安全可靠;(5)最大限度地保证数据的正确性;(6)数据可以共享并能保证数据的一致性。
5.比较用文件管理和用数据库管理数据的主要区别。
答:文件系统不能提供数据的独立性,也不能提供数据共享、安全性等功能,这些需要客户端编程实现。
而数据库管理系统可以很方便地提供这些功能。
6.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?答:不需要。
因为这些都由数据库管理系统来维护。
7.在数据库系统中,数据库的作用是什么?答:数据库是存储数据的仓库,其作用是存储数据。
8.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗?答:不可以。
9.数据独立性指的是什么?它能带来哪些好处?答:数据独立性包括逻辑独立性和物理独立性两部分。
物理独立性是指当数据的存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
这两个独立性使用户只需关心逻辑层即可,同时增强了应用程序的可维护性。
10.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统一般包括3个主要部分:数据库、数据库管理系统和应用程序。
第5章 数据完整性
第5章数据完整性【学习目标】Microsoft SQL Server 2005系统提供了一系列保证数据完整性的方法和机制,例如约束、默认值和规则等。
其中约束技术是应用最为广泛的保证数据完整性的方法。
本章将主要介绍有关数据库完整性的技术与方法。
本章学习要点:◆数据完整性的基本概念与类型◆约束的概念与类型◆默认值的概念与类型◆规则的概念与类型【学习导航】数据完整性是指数据库系统中数据在逻辑上的一致性和准确性,是保证数据库中数据质量的一种重要手段,是数据库设计好坏的一项重要指标,同时也是现代数据库系统的一个重要特征。
我们都有在网上注册帐户的经历,在注册信息的时候,我们经常会遇到用户名已经存在、密码少于规定的长度、电子邮件必填、出生日期有效、身份证号码是否正确等一系列的限制,实际上这些限制就是保证数据完整性的一些手段,主要的目的就是为了保证用户所填写的内容正确、有效。
本章主要内容见图5-1所示的学习导航。
图5-1 本章学习导航5.1 概述当对数据库进行一系列的操作后,如添加、修改、删除后,数据可能会出现被破坏或相关数据不一致的情况,那么如何防止和解决这些问题的出现呢?这不仅仅需要管理人员和操纵人员的认真和负责,更需要建立一个保障机制,要么防止这些问题发生,要么发生这些问题时可以及时地发现。
数据完整性就是解决这些问题的一种机制。
数据完整性就是指存储在数据库中的数据的一致性和准确性。
在评价数据库的设计时,数据完整性是数据库设计好坏的一项重要指标。
根据数据完整性机制所作用的数据对象和范围不同,数据完整性可以分为实体完整性、域完整性、参照完整性和用户定义完整性4种。
1.实体完整性实体完整性,也可以称为行完整性。
实体是指表中的记录,一个实体就是表中的一条记录。
实体完整性要求在表中不能存在完全相同的记录,而且要求每条记录都要具有一个唯一的标识符,这种标识符一般称为主键值。
这样就可以保证数据所代表的任何事物都不存在重复、可以区分。
数据库系统概论第5版(王珊、萨师煊)课后答案第5章数据库完整性
数据库系统概论第5版(王珊、萨师煊)课后答案第5章数据库完整性第5章数据库完整性1.什么是数据库的完整性?答: 数据库的完整性是指数据的正确性和相容性。
2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。
前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garba : e In Garba : e out )所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
3.什么是数据库的完整性约束条件?答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。
一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
常见的静态关系约束有:实体完整性约束;参照完整性约束;函数依赖约束。
4.关系DBMS 的完整性控制机制应具有哪些功能?答: DBMS 的完整性控制机制应具有三个方面的功能:1)定义功能,即提供定义完整性约束条件的机制;2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
5.关系DBMS 在实现参照完整性时需要考虑哪些方面?答:关系DBMS 在实现参照完整性时需要考虑以下几个方面:1)外码是否可以接受空值。
2)被参照关系中删除元组或修改主码时,若使参照关系在被参照关系中找不到与之相等的属性值,系统可选择的作法有三种:拒绝执行(默认策略)、级联操作、设置为空值。
3)参照关系中插入或修改元组时,若使参照关系在被参照关系中找不到与之相等的属性值,系统可选择的作法有三种:拒绝执行(默认策略)、级联操作(CASCADE)、设置为空值。
数据库原理和应用教程第4版习题参考答案解析
习题参考答案第1章习题参考答案一、选择题1. C2. B3. D4. C5. D6. B7. A8. B9. D 10. B11. C 12. D 13. D 14. D 15. B16. C 17. D 18. A 19. D 20. A21. D 22. D 23. C 24. A 25. C二、填空题1. 数据库系统阶段2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 一对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构16. 现实世界信息世界计算机世界三、简答题1、简述数据库管理技术发展的三个阶段。
各阶段的特点是什么?答:数据库管理技术经历了人工管理阶段、文件系统阶段和数据库系统阶段。
(1)、人工管理数据的特点:A、数据不保存。
B、系统没有专用的软件对数据进行管理。
C、数据不共享。
D、数据不具有独立性。
(2)、文件系统阶段的特点:A、数据以文件的形式长期保存。
B、由文件系统管理数据。
C、程序与数据之间有一定的独立性。
D、文件的形式已经多样化E、数据具有一定的共享性(3)、数据库系统管理阶段特点:A、数据结构化。
B、数据共享性高、冗余度底。
C、数据独立性高。
D、有统一的数据控制功能。
2、从程序和数据之间的关系来分析文件系统和数据库系统之间的区别和联系答:数据管理的规模日趋增大,数据量急剧增加,文件管理系统已不能适应要求,数据库管理技术为用户提供了更广泛的数据共享和更高的数据独立性,进一步减少了数据的余度,并为用户提供了方便的操作使用接口。
数据库系统对数据的管理方式与文件管理系统不同,它把所有应用程序中使用的数据汇集起来,以记录为单位存储,在数据库管理系统的监督和管理下使用,因此数据库中的数据是集成的,每个用户享用其中的一部分。
第五章 数据完整性
RDBMS在实现参照完整性时: CREATE TABLE SC –需要向用户提供定义主码、外码的机制; (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, –向用户提供按照自己的应用要求选择处理依 Grade SMALLINT, 赖关系中对应的元组的方法; PRIMARY key (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) –一般地,当对参照表和被参照表的操作违反 ON DELETE CASCADE 了参照完整性,系统选用默认策略,即拒绝执 ON UPDATE CASCADE, FOREIGN KEY (Cno) REFERENCES Course(Cno) 行。如果想让系统采用其它的策略则必须在创 ON DELETE ON ACTION 建表的时候显式说明。 ON UPDATE CASCADE,
–完ቤተ መጻሕፍቲ ባይዱ性:真实地反映现实世界
An Introduction to Database System
二、DBMS的完整性控制机制
1. 定义功能 一个完善的完整性控制机制应该允许用户定义各类完整性约束条件。 2. 检查功能
检查用户发出的操作请求是否违背了完整性约束条件
例:银行数据库 中“借贷总金额应平 衡”的约束就应该是 延迟执行的约束
An Introduction to Database System
[例6] 建立部门表DEPT,要求部门名称Dname列取值唯一, 部门编号Deptno列为主码。
CREATE TABLE DEPT (Deptno NUMERIC(2) NOT NULL, Dname CHAR(9) UNIQUE, Location char(10), PRIMARY key (Deptno) );
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
完整性约束条件小结
粒 度
状态
列 级
列定义 · 类型 · 格式 · 值域 · 空值
元组级 元组值应满足的 条件
关系级
实体完整性约束 参照完整性约束 函数依赖约束 统计约束
静 态
动 态
改变列定义 元组新旧值之间应 或列值 满足的约束条件
关系新旧状态间应 满足的约束条件
17
信息工程学院.计算机系
3、DBMS的完整性控制机制
拒绝执行 接受这个操作,同时执行一些附加的操作,以保证数据库的状态正确
21
信息工程学院.计算机系
6、参照完整性的实现
例:职工-部门数据库包含职工表EMP和部门表DEPT
1 DEPT关系的主码为部门号Deptno 2 EMP关系的主码为职工号Empno, 外码为部门号Deptno 称DEPT为被参照关系或目标关系,EMP为参照关系
这三种处理方法,哪一种是正确的,要依应用环境的语义来定
24
信息工程学院.计算机系
(2)在被参照关系中删除元组时的问题-续
级联删除
将参照关系中外码值与被参照关系中要删除元组主码值相对应的元组一起删除
受限删除
当参照关系中没有任何元组的外码值与要删除的被参照关系的元组的主码值相 对应时,系统才执行删除操作,否则拒绝此删除操作
数据的完整性。
11
信息工程学院.计算机系
完整性约束条件
完整性约束条件作用的对象
列:对属性的取值类型、范围、精度等的约束条件
元组:对元组中各个属性列间的联系的约束 关系:对若干元组间、关系集合上以及关系之间的联系的约束
静态 对静态对象的约束是反映数据库状态合理性的约束 动态 对动态对象的约束是反映数据库状态变迁的约束
A Sal不能小于1000
C 职称=′教授′ (A仅作用于职称=‘教授’的记录) P 拒绝执行该操作
20 信息工程学院.计算机系
5、关系系统三类完整性的实现
关系数据库系统都提供了定义和检查实体完整性、参照完整性和 用户定义的完整性的功能
违反实体完整性规则和用户定义的完整性规则的操作: 一般是拒绝执行 违反参照完整性的操作:
2、完整性控制机制
1.完整性约束条件定义机制
完整性约束条件:数据模型的组成部分约束数据库中数据的语义 DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库 中
2.完整性检查机制
检查用户发出的操作请求是否违背了完整性约束条件
3.违约反应
如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证
信息工程学院.计算机系
(2)在被参照关系中删除元组时的问题
出现违约操作的情形:
删除被参照关系的某个元组(student)
而参照关系有若干元组(SC)的外码值与被删除的被参照关系的主码值相同
违约反应:可有三种策略
级联删除(CASCADES)
受限删除(RESTRICTED) 置空值删除(NULLIFIES)
28
信息工程学院.计算机系
(4) 修改被参照关系中主码的问题
两种策略 (1)不允许修改主码(略) (2)允许修改主码
29
信息工程学院.计算机系
允许修改主码策略
违约操作 要修改被参照关系中某些元组的主码值,而参 照关系中有些元组的外码值正好等于被参照关 系要修改的主码值 要修改参照关系中某些元组的主码值,而被参 照关系中没有任何元组的外码值等于被参照关 系修改后的主码值
例2:学生-选课数据库 Student关系为被参照关系,其主码为Sno。 SC为参照关系,外码为Sno。
若SC的Sno为空值:表明尚不存在的某个学生,或者某个不知学号的学生, 选修了某门课程,其成绩记录在Grade中 与学校的应用环境是不相符的,因此SC的Sno列不能取空值。
23
需要在参照关系中插入元组,而被参照关系不存在相应 的元组
违约反应 受限插入
仅当被参照关系中存在相应的元组,其主码值与参照关系插入 元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。
递归插入
首先向被参照关系中插入相应的元组,其主码值等于参照关系 插入元组的外码值,然后向参照关系插入元组。
1.完整性约束条件定义机制 2.完整性检查机制 3.违约反应
2
信息工程学院.计算机系
第五章 数据库完整性
5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.6 触发器 5.7 小结
3
信息工程学院.计算机系
5.1实体完整性
5.1.1实体完整性定义
PRIMARY KEY定义,表级完整性约束或列级完整性约束
1. 定义功能
一个完善的完整性控制机制应该允许用户定义各类完整性约束条件。
2. 检查功能
立即执行的约束(Immediate constraints)
语句执行完后立即检查是否违背完整性约束
延迟执行的约束(Deferred constrainsts)
完整性检查延迟到整个事务执行结束后进行 例:银行数据库中“借贷总金额应平衡”的约束就应该是延迟 执行的约束 从账号A转一笔钱到账号B为一个事务,从账号A转出去钱后账 就不平了,必须等转入账号B后账才能重新平衡,这时才能进 行完整性检查。
3. 违约反应
拒绝该操作
其他处理方法18信息工程学院.计算机系
4、完整性规则五元组表示
(D,O,A,C,P)
D(Data) 约束作用的数据对象; O(Operation) 触发完整性检查的数据库操作 当用户发出什么操作请求时需要检查该完整性规则 是立即检查还是延迟检查; A(Assertion) 数据对象必须满足的断言或语义约束这是规 则的主体; C(Condition) 选择A作用的数据对象值的谓词; P(Procedure) 违反完整性规则时触发的过程。
修改列值时新旧值之间要满足的约束条件
例:职工工资调整 >= 原来工资 例:年龄只能增长
5. 动态元组约束
修改元组值: 各个字段之间要满足的约束条件
例: 职工工资调整不得低于其原来工资 + 工龄*1.5
6. 动态关系约束
关系变化前后状态:限制条件 例:事务一致性、原子性等约束条件
16
信息工程学院.计算机系
30
信息工程学院.计算机系
允许修改主码策略
5.1.2实体完整性检查和违约处理
按照实体完整性规则,系统自动检查:
主码值是否唯一 主码各属性是否为空
4
信息工程学院.计算机系
5.2参照完整性
5.2.1参照完整性定义
创建表时,FOREIGN KEY定义
5.2.2参照完整性检查和违约处理
以SC和STUDENT为例,四种情况:
SC中增加一个元组,而在student中找不到相应的元组 修改SC中的一个元组…… 从student删除一个元组…… 修改student中的一个元组……
5
信息工程学院.计算机系
5.3用户定义的整性
5.3.1属性上的约束条件的定义
列值非空;列值唯一;CHECK短语
5.3.2属性上的约束条件检查和违约处理 5.3.3元组上的约束条件的定义
CHECK短语
5.3.4元组上的约束条件检查和违约处理
6
信息工程学院.计算机系
5.4完整性约束命名子句
1完整性约束命名子句 2修改表中的完整性限制
7
信息工程学院.计算机系
5.6触发器
5.6.1定义触发器 5.6.2激活触发器 5.6.3删除触发器
8
信息工程学院.计算机系
12
信息工程学院.计算机系
完整性约束条件分类
13
信息工程学院.计算机系
1. 静态列级约束
静态列级约束:对的取值域的说明 最常见、最简单、最容易实现的一类完整性约束
1) 数据类型约束:数据的类型、长度、单位、 精度等 例:学生姓名的数据类型为字符型,长度 为8 2) 对数据格式的约束 例: 学号:前两位表示入学年份,后四位为顺 序编号 日期:YY.MM.DD。 3) 取值范围或取值集合的约束 例:规定成绩的取值范围为0-100 年龄的取值范围为14-29 性别的取值集合为[男,女]
置空值删除 删除被参照关系的元组,并将参照关系中与被参照关系中被删除元组主 码值相等的外码值置为空值。
25
信息工程学院.计算机系
(2)在被参照关系中删除元组时的问题-续
例:要删除Student关系中Sno=950001的元组, 而SC关系中有4个元组的Sno都等于950001。 级联删除: 将SC关系中所有4个Sno=950001的元组一起删除。如果参照关系同 时又是另一个关系的被参照关系,则这种删除操作会继续级联下去
19
信息工程学院.计算机系
例1:在“学号不能为空”的约束中 D 约束作用的对象为Sno属性 O 插入或修改Student 元组时 A Sno不能为空 C 无(A可作用于所有记录的Sno属性) P 拒绝执行该操作 例2:在“教授工资不得低于1000元”的约束中 D 约束作用的对象为工资Sal属性 O 插入或修改职工元组时
关系字段间存在的函数依赖
例:在学生-课程-教师关系 SJT(S,J,T) 的函数依赖: ( (S,J)→T, T→J )
主码: (S, J)
3. 静态关系约束
关系的各个元组之间或若干关系 之间存在的各种联系或约束 常见静态关系约束:
统计约束
定义某个字段值一个关系多个元 组的统计值之间的约束关系
例:职工平均工资的2倍<=部门 经理的工资<=职工平均工资的