第五章 数据库完整性

第五章 数据库完整性
第五章 数据库完整性

数据库完整性

第五章数据库完整性 一、选择题 1.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于__________。 A 实体完整性约束 B 参照完整性约束 C 用户自定义完整性约束 D 关键字完整性约束 【解答】C 2.完整性约束有两大类型,其中一种是静态约束,下面( c )不属于静态约束。 A.固有约束B.隐含约束C.语义约束D.显示约束 【解答】C 3.数据库的破坏一般来自四个方面,其中__________是属于完整性约束问题。 A.系统故障B.并发所引起的数据不一致C.人为的破坏 D.输入或更新数据库的数据有误,更新事务未遵守保持数据库一致性的原则 【解答】D 4. ________子句能够实现关系参照性规则。 A. PRIMARY KEY B. NOT NULL C. FOREIGN KEY D. FOREIGN KEY...REFERENCES... 【解答】D 二、填空题 1. 数据库的是指数据的正确性和相容性 【解答】完整性 2.完整性约束是指和。 【解答】实体完整性,参照完整性 3.实体完整性是指在基本表中,。 【解答】主属性不能取空值 4.参照完整性是指在基本表中,。 【解答】外码可以是空值或者另一个关系主码的有效值 5.SQL标准使用了一系列概念来描述完整性,包括关系模型的________ 、________和 ________完整性。 【解答】实体完整性参照完整性用户定义 6.数据库完整性的定义一般由SQL的________ 语句来实现。它们作为数据库模式的一部 分存入________中。

【解答】DDL 数据字典 7.关系模型的实体完整性在________ 中用________定义。 【解答】CREATE TABLE 、PRIMARY KEY 二、问答题 1.什么是数据库的完整性? DBMS的完整性子系统的功能是什么? 【解答】数据库完整性是指数据库中数据的正确性、有效性和相容性。DBMS 的完整性控制机制至少包括完整性约束的定义机制和完整性约束的检查机制。 DBMS完整性子系统的功能是: (1)监督事务的执行,并测试是否违反完整性规则; (2)如有违反,则采取恰当的操作,如拒绝、报告违反情况,改正错误等方法进行处理。2.完整性规则由哪几个部分组成?关系数据库的完整性规则有哪几类? 【解答】完整性规则由三部分组成: 触发条件:即什么时候使用规则进行检查; 约束条件:即要检查什么样的错误; ELSE子句:即查出错误后该如何处理。 完整性规则有以下三类: 域完整性规则,用于定义属性的取值范围; 域联系的规则,定义一个或多个关系中,属性值间的联系、影响和约束。 关系完整性规则,定义更新操作对数据库中值的影响和限制。 3.试详述SQL中的完整性约束机制? 【解答】SQL中的完整性约束规则有主键约束、外键约束、属性值约束和全局约束等多种形式。 △主键约束。它是数据中最重要的一种约束。在关系中主键值不允许空,也不允许出现重复,体现了关系要满足实体完整性规则。主键可用主键子句或主键短语进行定义。 △外键约束。根据参照完整性规则,依赖关系中外键或者为空值,或者是基本关系(参照关系)中的该键的某个值。外键用外键关系子句定义,并考虑删除基本关系元组或修改基本关系的主键值的影响,依赖关系可按需要采用RESTRICT、SET NULL、CASCADE方式。△属性值约束。当要求某个属性的值不允许空值时,那么可以在属性定义后加上关键字:NOT NULL ,这是非空值约束。还可以用CHECK子句对一个属性值加以限制以及使用域约束子句CREAT DOMAIN 定义新域并加以属性值检查。 △全局约束。在关系定义时,可以说明一些比较复杂的完整性约束,这些约束涉及到多个属性间的联系或不同关系间的联系,称为全局约束。主要有基于元组的检查子句和断言。前者是对单个关系的元组值加以约束,后者则可对多个关系或聚合操作有关的完整性约束进行定义。 4. DBMS的完整性控制机制应具有哪些功能?

数据库完整性代码

4实验报告 实验内容与完成情况: 一、三类完整性的实现 对系表Dept、学生表Student、教师表Teacher、课程表Course、SC表,教师授课表TC,实现规定的完整性,并验证,当操作违反了完整性约束条件时,DBMS如何处理。 --1、Dept表 --? DEPTNO CHAR() --? E VARCHAR()DNAM --? 实体完整性:DEPTNO为主码; --? 用户定义完整性 --①DEPTNO的取值为至; --②DNAME取值非空且唯一; CREATE TABLE DEPT (DEPTNO CHAR(2)PRIMARY KEY constraint c1 check(DEPTNO between 01 and 99), DNAME VARCHAR(20) constraint c2 NOT NULL unique, ); --2、Student表 -- SNO CHAR() -- SNAME VARCHAR() -- SEX CHAR() -- DEPTNO CHAR() -- --实体完整性:SNO为主码; --参照完整性:DEPTNO为外码,并实现级联更新和级联删除操作; --用户定义完整性 --①SNO取值为级的学号取值范围,如等。 --②SNAME 取值非空;

--③SEX的取值只能为男或女; CREATE TABLE Student (SNO CHAR(10)PRIMARY KEY constraint b1 check(SNO between 2010080000 and 2010089999), Sname varCHAR(8)NOT NULL unique, Ssex CHAR(2) constraint b2 check(Ssex in('男','女')), DEPTNO CHAR(2), FOREIGN KEY(DEPTNO)REFERENCES DEPT(DEPTNO) on delete cascade on update cascade ); drop table Student --3、Teacher表 -- TNO CHAR() -- TNAME VARCHAR() -- DEPTNO CHAR() -- --实体完整性:TNO为主码; --参照完整性:DEPTNO为外码,并实现级联更新和级联删除操作; --用户定义完整性 --①TNO取值为开头的四位数字字符串; --②TNAME取值非空; CREATE TABLE Teacher (TNO CHAR(3)PRIMARY KEY constraint a1 check(TNO between 0800 and 0899), TNAME varCHAR(8)NOT NULL, DEPTNO CHAR(2), FOREIGN KEY(DEPTNO)REFERENCES DEPT(DEPTNO) on delete cascade on update cascade ); drop table Teacher --4、Course表 -- CNO CHAR() -- TNO CHAR() -- CNAME VARCHAR() -- CREDIT SNALLINT -- --实体完整性:CNO; --用户定义完整性 --①CNAME取值非空;

8实验八 数据库的完整性

实验八实现数据完整性一、实验目的 (1)实现数据完整性的概念及实施数据完整性的重要性。 (2)掌握数据完整性的分类。 (3)掌握完整性约束的添加、删除方法。 (4)掌握通用默认值的创建、实施与删除方法。 (5)掌握规则的创建、实施与删除方法。 (6)掌握级联删除、级联修改方法。 二、实验内容 1、完整性约束的添加、删除 (1)通过SQL Server Management Studio实施约束 a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。 ①、选择Student表,右击→设计,打开Student表 ②、选择Birth一行,右击→CHECK约束,打开界面如下图所示 ③、单击“添加” ④、在表达式中写入:Entrance_date

b.为表Student的Sdept字段,设置默认值约束,默认值取’计算机系’。选择Sdept一行,在其列属性中修改其默认值 c.为Student表的Sname字段添加唯一性约束。 选择Sname一行,右击→索引/键 出现如下界面:

单击“添加”,在类型中选择“唯一键”,在列中选择“Sname”,名称自定义 最后单击“关闭”退出

d.将SC表的Sno,cno字段设置外键约束,约束名自已取,并允许级联删除与级联更新。(此要求在SQL Server2008R2中无法做出)若已存在外键约束,请先删除。 ①、选中Sno,右击→单击“关系”,出现如下信息,可见已存在外键约束 选中键,点击删除,完成约束删除 ②、添加约束: 选中Sno,右击,选择“关系”,出现如下信息,

第10章 数据库恢复技术

一、单项选择题 1. 在DBMS中实现事务持久性的子系统是( )。 A.安全管理子系统 B.完整性管理子系统 C.并发控制子系统 D.恢复管理子系统 [参考答案] 恢复管理子系统 2. 后援副本的作用是( )。 A.保障安全性 B.一致性控制 C.故障后的恢复 D.数据的转储 [参考答案] 故障后的恢复 3. 事务日志用于保存( )。 A.程序运行过程 B.程序的执行结果 C.对数据的更新操作 D.数据操作 [参考答案] 对数据的更新操作 4. 数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括( )。 A.数据字典、应用程序、审计档案、数据库后备副本 B.数据字典、应用程序、审计档案、日志文件 C.日志文件、数据库后备副本 D.数据字典、应用程序、数据库后备副本 [参考答案] 日志文件、数据库后备副本 5. 若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为( )。 A.介质故障 B.运行故障 C.系统故障 D.事务故障 [参考答案] 介质故障 6. SQL语言中用( )语句实现事务的回滚。 A.CREATE TABLE B.ROLLBACK C.GRANT和REVOKE https://www.360docs.net/doc/e816323789.html,MIT [参考答案] ROLLBACK

7. SQL语言中的COMMIT语句的主要作用是( )。 A.结束程序 B.返回系统 C.提交事务 D.存储数据 [参考答案] 提交事务 8. 事务的持续性是指( )。 A.事务中包括的所有操作要么都做,要么都不做; B.事务一旦提交,对数据为的改变是永久的; C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的; D.事务必须是使数据库从一个一致性状态变到另一个一致性状态; [参考答案] 事务一旦提交,对数据为的改变是永久的; 9. 表示两个或多个事务可以同时运行而不互相影响的是( )。 A.原子性 B.一致性 C.隔离性 D.持久性 [参考答案] 隔离性 10. 一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是( )。 A.原子性 B.一致性 C.隔离性 D.持久性 [参考答案] 原子性 二、填空题 1. 数据库系统在运行过程中,可能会发生故障。故障主要有事务故障、( )、介质故障和( )四类。 [参考答案] 系统故障计算机病毒 2. ( )是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。 [参考答案] 事务 3. 若数据库中只包含成功事务提交的结果,则此数据库就称为处于( )状态。 [参考答案] 一致 4. ( )用来记录对数据库中数据进行的每一次更新操作。 [参考答案] 日志文件

数据库技术与应用第5章 习题答案

第5章数据库完整性与安全性 1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系? 解: 数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。 数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。 数据的完整性和安全性是两个不同的概念,但是有一定的联系: 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 2. 什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类? 解: 完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束是对一个列的取值域的说明,包括以下几个方面:①数据类型的约束,包括数据的类型、长度、单位、精度等;②对数据格式的约束;③对取值范围或取值集合的约束; ④对空值的约束;⑤其他约束。静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有:①实体完整性约束;②参照完整性约束;③函数依赖约束。动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:①修改列定义时的约束;②修改列值时的约束。动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。 3. 试述DBMS如何实现完整性控制。 解: 为了维护数据库的完整性,DBMS提供了以下三种机制: ①完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件。SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。这些完整性一般由SQL的DDL语义来实现。它们作为数据库模式的一部分存入数据字典中。 ②完整性检查方法检查数据是否满足已定义的完整性约束条件称为完整性检查。一般在INSERT、UPDATE、DELETE语句执行后开始检查,也可以在事务提交时检查。检查这些操作执行后数据库中的数据是否违背了完整性约束条件。 ③违约处理若发现用户操作违背了完整性约束条件,应采取一定的措施,如拒绝(NOACTION)执行该操作,或级连(CASCADE)执行其它操作,进行违约处理以保证数据的完整性。 4. 现有以下四个关系模式: 供应商(供应商编号,姓名,电话,地点),其中供应商编号为主码;

数据库完整性

大连海事大学 数据库原理课程实验大纲 实验名称:实验七完整性实验学时: 2 适用专业: 实验环境: 执笔者:编写日期: 1实验目的 (1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。 (2)掌握完整性约束的运行检查机制。 (3)掌握参照完整性的级联删除和修改方法。 (4)掌握正确设计关系模式完整性约束的方法。 2实验内容 2.1 掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。 (2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。 (3)删除以上两个主键约束。 (4)利用ALTER TABLE语句定义上述两个主键。 2.2 掌握参照完整性约束的创建和使用方法 (5)创建表时定义一个列级参照完整性约束(给约束命名)。 (6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。 (7)设计数据更新语句检查参照完整性约束是否起作用。 (8)删除上述完整性约束。 (9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。 (10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。 2.3 掌握用户自定完整性约束的创建和使用方法 (11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用? (12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?

(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用? (14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用? (15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。 3实验要求 (1)深入复习教材第五章数据库完整性约束内容。 (2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例做实验。(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。 (4)思考题:完整性约束的违约处理有哪几种方式? 4实验步骤 4.1 掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。 创建零件表part时定义主键。/ CREATE TABLE PART (PARTKEY INTEGER, MFGR CHAR(100), TYPE CHAR(25), SIZE INTEGER, NAME CHAR(55), CONTAINER CHAR(10), BRAND CHAR(10), RETAILPRICE REAL, COMMENT VARCHAR(23), CONSTRAINT PARTY PRIMARY KEY(PARTKEY))

数据库系统概论第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)、 设置为空值。 6.假设有下面两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码。 用sQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义: 1)定义每个模式的主码; 2)定义参照完整性; 3)定义职工年龄不得超过60 岁。 CREATE TABLE 职工 (职工号CHAR(10), 姓名CHAR(10), 年龄NUMERIC (3), CONSTRAINT C1 CHECK (年龄<=60),

SQL数据库图书管理系统(完整代码)

作品设计报告书题目:《图书管理系统》 班级网络2012-1班 学号 姓名 课程名称数据库应用技术 指导教师

目录

数据库课程设计报告书 一、设计目标 1.掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织 和实施。 2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试 运行等工作。 3.培养把所学知识运用到具体对象,并能求出解决方案的能力。 二、数据库存储设计指导思想 在数据库存储设计的无数选择中,简单是系统架构师和DBA 的秘密武器。 简单,有时候就来自于对一个特定的表或表空间没有选择最优I/O 特性,总有这么一种可能,一个富有经验的DBA 拥有高超的存储技能并可以没有时间限制的去为一个非常重要的表或者索引配置一个存储。然而这样做的问题是,就算能达到设计的最佳性能,为了维护原始对象,这也经常造成对一个系统的管理变得更加复杂。好的数据库存储设计的要点是,在一个动态系统上,实现所有目标应该是最初的系统设计的一部分,并应该在数据库运行过程中长期进行。这篇文档简单的最佳实践描述达到了这些目标并且几乎没有性能损失。 三、任务 角色:读者、图书馆馆员、系统管理员;基础数据:读者信息、图书信息、操作员信息;业务数据:借还书记录登记、罚款登记;统计数据:书籍借阅情况统计或读者借阅情况统计。基本要求:利用数据库技术,完成基础数据和业务数据的储存和操作,数据库设计合理1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL 实现的查询语言及查询结果。 2.上机实现。

1.问题描述 1.1背景 随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。 另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。 提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。 1.2数据需求 图书馆管理信息系统需要完成功能主要有: 1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。 2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。 3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。 4.书籍类别信息的查询、修改,包括类别编号、类别名称。 5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。 6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。 7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。 8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。 9.还书信息的输入,包括借书证编号、书籍编号、还书日期。 10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。 11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。

数据库的完整性

实验七数据库的完整性 一、实验目的 1.理解关系数据库中关于数据库完整性的概念 2.掌握实体完整性的定义方法 3.掌握参照完整性的定义方法 4.掌握用户自定义完整性的方法 二、实验环境(实验的软件、硬件环境) 硬件:PC机软件:SQL2000 三、实验说明 请复习数据库完整性的相关知识点,完成如下实验内容。 四、实验内容 (1)重建orderDB数据库中的表,分别为每张表建立主键,外键。 (2)各表的用户定义的完整性如下: 员工表:员工姓名,电话属性为not null;员工编号构成:年流水号,共8位,第一位为E,如E2008001,年份取雇佣日期的年份;性别:f表示 女,m表示男。 商品表:商品编号、商品名称、商品类别、建立日期设为not null;商品编号构成:年流水号,共9位,第一位为P,如P2*******,年份取建 立日期的年份 客户表:员工编号、姓名、性别、所属部门、职称、薪水设为not null; 客户号构成:年流水号,共9位,第一位为C,如C20080001,年份取 建立日期的年份 订单主表:订单编号的构成:年月日流水号,共12位,如200708090001; 订单编号、客户编号、员工编号、发票号码设为not null;业务员必须是 员工;订货日期和出货日期的默认值设为系统当前日期;订单金额默认 值为0;发票号码建立unique约束。

订单明细表:订单编号、商品编号、数量、单价设为not null。 五、实验步骤 请完成实验内容,并写出具体的实验步骤 六、思考题: 1.什么是数据库的完整性? 2.SQLServer数据完整性的实现方式有(1)声明数据完整性,(2)过程数据完整性,请区别他们的异同和使用情况? 七、总结(实验过程的体会、心得和实验教与学之间还需改进的内容)

数据库的完整性和安全性实验报告

信息工程学院实验报告 课程名称:《数据库原理》 实验项目名称:数据库的完整性和安全性 一、实 验 目 的: (1)掌握数据库约束的概念; (2)熟悉SQL SERVER 的完整性约束技术。 (3)了解SQL SERVER 的违反完整性处理措施。 (4)了解登录账户的管理理念与具体方法。 (5)了解数据库用户的管理的要则。 (6)了解用户权限管理的内涵与方法。 二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤 (一)测试完整性 运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。 1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2) PRIMARY KEY dname VARCHAR(20) NOT NULL,UNIQUE (1)增加数据 INSERT INTO dept VALUES('D1','计科系');----正常插入 INSERT INTO dept VALUES('D2','电信系');----正常插入 INSERT INTO dept VALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则 INSERT INTO dept VALUES('D2','机械系'); ----违反dno 主键(UNIQUE ) INSERT INTO dept VALUES('D3',NULL); ----违反dname 的NOT NULL 规则

数据库第五章作业

第五、六章练习题 一、选择题 1、在关系数据库设计中,子模式设计是在__________阶段进行。[ B] A.物理设计B.逻辑设计C.概念设计D.程序设计 2、设有关系R(A,B,C)的值如下: A B C 2 2 3 2 3 4 3 3 5 下列叙述正确的是(B) A.函数依赖A→B在上述关系中成立B.函数依赖BC→A在上述关系中成立C.函数依赖B→A在上述关系中成立D.函数依赖A→BC在上述关系中成立 3、数据库设计阶段分为(D ) A. 物理设计阶段、逻辑设计阶段、编程和调试阶段 B. 模型设计阶段、程序设计阶段和运行阶段 C. 方案设计阶段、总体设计阶段、个别设计和编程阶段 D. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段 4、下列说法中不正确的是(C)。 A. 任何一个包含两个属性的关系模式一定满足3NF B. 任何一个包含两个属性的关系模式一定满足BCNF C. 任何一个包含三个属性的关系模式一定满足3NF D. 任何一个关系模式都一定有码

5、设有关系模式R(A,B,C,D),F是R上成立的函数依赖集,F={B→C,C→D},则属性C的闭包C+为( C ) A.BCD B.BD C.CD D.BC 6、在数据库设计中,将ER图转换成关系数据模型的过程属于( B ) A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段 7、下述哪一条不是由于关系模式设计不当而引起的?(B) A) 数据冗余B) 丢失修改C) 插入异常D) 更新异常 8、下面关于函数依赖的叙述中,不正确的是(B) A) 若X→Y,X→Z,则X→YZ B) 若XY→Z,则X→Z,Y→Z C) 若X→Y,Y→Z,则X→Z D) 若X→Y,Y′ Y,则X→Y′ 9、设U是所有属性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面关 于多值依赖的叙述中,不正确的是(C) A) 若X→→Y,则X→→Z B) 若X→Y,则X→→Y C) 若X→→Y,且Y′?Y,则X→→Y′ D) 若Z=Φ,则X→→Y 第(10)至(12)题基于以下的叙述:有关系模式A(C,T,H,R,S),基中各属性的含义是: C:课程T:教员H:上课时间R:教室S:学生

实验三 数据库完整性

实验三数据库完整性 1、实体完整性:定义表的主码。 关系模型的实体完整性在CREA TE TABLE 中用PRIMARY KEY定义。定义主码的方法分为列级约束条件和表级约束条件。 【1-1】定义表STUDENT,将其中的SNO属性定义为主码 【1-2】定义表SC,将其中的SNO、CNO定义为主码 2、参照完整性:定义表的外码 关系模型的参照完整性是在CREA TE TABLE中用FOREIGN KEY语句来定义,并用REFERENCES来指明外码参照的是哪些表的主码。 【2-1】定义表SC,其中SNO参照STUDENT的主码SNO,CNO参照表COURSE的主码 CNO 3、用户定义完整性 【3-1】列值非空。在定义SC表时,SNO、CNO和GRADE属性都不允许取空值。在不特别声明的情况下,非码属性的值允许取空值的 【3-2】列值唯一。建立部门表DEPT,要求部门名称Dname取值唯一,部门编号Deptno属性为主码 【3-3】CHECK短语指定列值应该满足的条件。定义表Student,属性Ssex的值只允许取“男”或“女”;定义表SC,属性Grade的值定义在0~100之间 【3-4】用户定义的元组上的约束条件。定义表Student,要求当学生性别为“男”时,其名字不能以Ms.打头 4、CONSTRAINT完整性约束子句:在定义表时利用约束命名子句对完整性约束条件命名, 能够灵活的增加或删除一个完整性约束条件 【4-1】定义表Student,要求学号在90000~99999之间,姓名不能取空值,年龄小于30,性别只能“男”或“女”,要求全部用约束命名子句实现 【4-2】修改表Student中的完整性限制,去掉对性别的限制,并将年龄的限制由小于30改为小于40 5、触发器 【5-1】定义表TAB,并在其上定义触发器TRI,在对TAB的插入或更新前检查,如果插入或更新的值在100~1000之间的话,将值置为50;如果值大于1000的话,则将新值插入表。【5-2】检测、执行、结果 【5-3】删除触发器TRI

第10章 数据库恢复技术(习题集)

第十章数据库恢复技术(习题集) 二、选择题 1、一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是(A)。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 2、表示两个或多个事务可以同时运行而不互相影响的是(C)。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 3、事务的持续性是指(B) A.事务中包括的所有操作要么都做,要么都不做。 B.事务一旦提交,对数据库的改变是永久的。 C.一个事务内部的操作对并发的其他事务是隔离的。 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态。 4、SQL语言中的COMMIT语句的主要作用是(C)。 A. 结束程序 B. 返回系统 C. 提交事务 D. 存储数据 5、SQL语言中用(B )语句实现事务的回滚 A. CREATE TABLE B. ROLLBACK C. GRANT和REVOKE D. COMMIT 6、若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为(A)。 A. 介质故障 B. 运行故障 C. 系统故障 D. 事务故障 7、在DBMS中实现事务持久性的子系统是(D)。 A. 安全管理子系统 B. 完整性管理子系统 C. 并发控制子系统 D. 恢复管理子系统 8、后援副本的作用是(C)。 A. 保障安全性 B. 一致性控制 C. 故障后的恢复 D. 数据的转储 9、事务日志用于保存(C)。 A. 程序运行过程 B. 程序的执行结果 C. 对数据的更新操作 D. 数据操作 10、数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括(C)。 A. 数据字典、应用程序、审计档案、数据库后备副本 B. 数据字典、应用程序、审计档案、日志文件 C. 日志文件、数据库后备副本 D. 数据字典、应用程序、数据库后备副本 11、数据恢复最常用的技术是(A )。 A.数据转储和登记日志文件 B.数据转储和备份

数据库设计源代码

//选择一种高级语言实现下列语句的功能。 //CREATE TABLE <表名>(<列名><数据类型>[<列完整性约束条件>][,<列名><数据//类型>[<列完整性约束条件>]…][,<表完整性约束条件>] ) //ALTER TABLE <表名> [ADD <新列名><数据类型>[<列完整性约束>]] [DROP<列完整//性约束名>][MODIFY <列名><数据类型>] //使用说明 //1、将程序文件table.sql放在D盘根目录下。 //2、在C盘根目录下建立一个名为"数据库"的文件夹,用于存储表。 //3、建立的表存储路径为C:\数据库:\table.dbf。 //4、在程序文件table.sql中只有一条建表语句和三条修改表语句,在以程序方式执//行时注意执行的次数,慎重选择“是否继续执行”。 //5、程序输入的SQL语句格式如下: //create table student //( //SNO int PRIMARY KEY, //SNAME char(10) UNIQUE, //SAGE int, //SDEPT char(20) NOT NULL, //COURSE char(20), //GRADE int //); //alter table student add CNO int NOT NULL; //alter table student alter column SAGE short; //alter table student drop SDEPT; #include #include #include #include //宏定义 #define YEAR 0 #define MONTH 1 #define DAY 2 #define FOX_VERISON_INFO 262 #define MAX 40 //字段类型 #define DATE 0x44 #define DOUBLE 0x45 #define FLOAT 0x46 #define SHORT 0x47

第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定义。对单属性构成的码有两种说明方法:一种是定义为列级约束条件;一种是定义为表级约束条件。对多个属性构成的码只有一种说明方法:定义为表级约束条件。 确定主属性:能唯一标识表中的一条记录。 例1:将Student表中的Sno属性定义为码 定义为列级约束条件 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) ); 定义为表级约束条件 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2),

第五章_数据库完整性(习题)

一、选择题 1.完整性检查和控制的防范对象是(),防止它们进入数据库。安全性控制的防范对象是(),防止他们 对数据库数据的存取。 A.不合语义的数据 B.非法用户 C.不正确的数据 D.非法操作 2.找出下面SQL命令中的数据控制命令()。 A.GRANT https://www.360docs.net/doc/e816323789.html,MIT C.UPDA TE D.SELECT 3.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。 A.INSERT B.DELETE C.REFERENCES D. SELECT 4.下述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.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码。用SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不

数据库完整性-习题解答

第十章数据库完整性 习题解答和解析 1.什么是数据库的完整性 答:数据库的完整性是指数据的正确性和相容性。 2.数据库的完整性概念与数据库的安全性概念有什么区别和联系 答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 3.什么是数据库的完整性约束条件可分为哪几类 答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。 静态列级约束是对一个列的取值域的说明,包括以下几个方面: (1)对数据类型的约束,包括数据的类型、长度、单位可精度等; (2)对数据格式的约束; (3)对取值范围或取值集合的约束; (4)对空值的约束; (5)其他约束。 静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。 静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有: (1)实体完整性约束; (2)参照完整性约束; (3)函数依赖约束。 动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:(1)修改列定义时的约束; (2)修改列值时的约束。 动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。

数据库原理 数据的完整性 实验报告

***大学计算机科学与信息学院软件工程系上机实验报告

Sname char(20) constraint STU_U1 NOT NULL, Ssex char(2) constraint STU_C1 CHECK(Ssex in('男','女')), Sage int constraint STU_C2 check(Sage between 18 and 30), Sdept char(10) constraint STU_PK PRIMARY KEY(Sno)); create table course1( Cno char(10), Cname char(20) constraint COU_C1 UNIQUE,

Ccredit int constraint COU_PK PRIMARY KEY(Cno)); create table SC1( Sno char(10), Cno char(10), Grade CHAR(2), constraint SC_PK PRIMARY KEY(Sno,Cno), constraint SC_FK1FOREIGN KEY(Sno)REFERENCES student1(Sno), constraint SC_FK2FOREIGN KEY(Cno)REFERENCES course1(Cno), );

(2)插入如下数据,什么原因导致某些数据不能正确插入? Sno Sname Ssex Sage Sdept 95001 黎小明男16 CS 95002 小华男45 CS 95003 王小菲女26 MA 95004 王小凌女20 IS 95004 小烨男27 IS insert into student1(Sno,Sname,Ssex,Sage,Sdept) VALUES('95001','黎小明','男',16,'CS'); insert into student1(Sno,Sname,Ssex,Sage,Sdept) VALUES('95002','小华','男',45,'CS'); insert into student1(Sno,Sname,Ssex,Sage,Sdept) VALUES('95003','王小菲','女',26,'MA'); insert into student1(Sno,Sname,Ssex,Sage,Sdept) VALUES('95003','王小凌','女',20,'IS');

相关文档
最新文档