当前位置:文档之家› 第10与11章 数据库保护

第10与11章 数据库保护

数据库完整性

第五章数据库完整性 一、选择题 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的完整性控制机制应具有哪些功能?

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.doczj.com/doc/0d14539103.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. ( )用来记录对数据库中数据进行的每一次更新操作。 [参考答案] 日志文件

数据库完整性

大连海事大学 数据库原理课程实验大纲 实验名称:实验七完整性实验学时: 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)创建表时定义由一个属性组成的主键(给约束命名)。

数据库的完整性

实验七数据库的完整性 一、实验目的 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 规则

第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.数据转储和备份

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

一、选择题 1.完整性检查和控制的防范对象是(),防止它们进入数据库。安全性控制的防范对象是(),防止他们 对数据库数据的存取。 A.不合语义的数据 B.非法用户 C.不正确的数据 D.非法操作 2.找出下面SQL命令中的数据控制命令()。 A.GRANT https://www.doczj.com/doc/0d14539103.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');

数据库原理与应用(清华大学版)课后答案第13章 数据库完整性

数据库完整性 练习题13及参考答案 1.什么是数据完整性如果数据库不实施数据完整性会产生什么结果 答:数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的重要标准。如果数据库不实施数据完整性,在用INSERT 、DELETE 、UPDATE 语句修改数据库内容时,数据的完整性可能会遭到破坏,就可能会存在下列情况:无效的数据被添加到数据库的表中,如:将学生考试成绩输入成负数;对数据库的修改不一致,如:在一个表中修改了某学生的学号,但该学生的学号在另外一个表中却没有得到修改;将存在的数据修改为无效的数据,如:将某学生的班号修改为并不存在的班级号。 2.数据完整性有哪几类如何实施它们分别在什么级别上实施 答:数据完整性分为以下3类: (1)域完整性:是指一个列的输入有效性,是否允许为空值。强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK 约束和规则)或可能值的范围(通过FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。如:学生的考试成绩必须在0~100之间,性别只能是“男”或“女”。 (2)实体完整性:是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称之为主键。也就是说,表中的主键在所有行上必须取唯一值。强制实体完整性的方法有:索引、UNIQUE 约束、PRIMARY KEY 约束或IDENTITY 属性。如:student 表中sno (学号)的取值必须唯一,它第 章 13

唯一标识了相应记录所代表的学生,学号重复是非法的。学生的姓名不能作为主键,因为完全可能存在两个学生同名同姓的情况。 (3)参照完整性:是指保证主关键字(被引用表)和外部关键字(引用表)之的参照关系。它涉及两个或两个以上表数据的一致性维护。外键值将引用表中包含此外键的记录和被引用表中主键和外键相匹配的记录关联起来。在输入、更改或删除记录时,参照完整性保持表之间己定义的关系,确保键值在所有表中一致。这样的一致性要求确保不会引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。参照完整性是基于外键与主键之间的关系。例如学生学习课程的课程号必须是有效的课程号,表score表(成绩表)的外键cno(课程号)将参考表course表(课程表)中主键cno(课程号)以实现数据完整性。 域完整性、实体完整性及参照完整性分别在列、行、表上实施。数据完整性任何时候都可以实施,但对己有数据的表实施数据完整性时,系统要先检查表中的数据是否满足所实施的完整性,只有表中的数据满足了所实施的完整性,数据完整性才能实施成功。 3.什么是主键约束什么是唯一性约束两者有什么区别 答:主键约束保证某一列或一组列值的组合相对于表中的每一行都是唯一的,这些列就是该表的主键。主键不允许有重复值,也不允许有空值。 唯一约束限制表中指定列上所有的非空值必须唯一,即表中任意两行在指定列上都不允许有相同的值。 唯一约束和主键约束的区别是: (1)唯一约束与主键约束都为指定的列建立唯一索引,即不允许唯一索引的列上有相同的值。主键约束限制更严格,不但不允许有重复值,而且也不允许有空值。 (2)唯一约束与主键约束产生的索引可以是聚簇索引也可以是非聚簇索引,但在缺省情况下唯一约束产生非聚簇索引,主键约束产生聚簇索引。 4.创建PRIMARY KEY约束或UNIQUE约束时,SQL Server创建索引了吗与创建标准索引相比哪个更好 答:创建PRIMARY KEY约束或UNIQUE约束时,SQL Server创建唯一性索引。与创建

SQL 实验六数据完整性

实验6 数据完整性 一、实验目的 1.掌握Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。 2.掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_help、sp_helptext查询规则信息、sp_rename更名规则的方法。 3.掌握Transact-SQL语句(CREATE DEFAULT、DROPDEFAULT)创建和删除默认对象的方法。 4.掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询规则信息。 5.掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。 二、实验内容和步骤 1.为studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。 (1)复制学生表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。完成以下代码实现该操作。 SELECT * INTO stu_phone FROM 学生表 ALTER TABLE stu_phone ADD CHAR(7)NULL stu_phone表结构如图1-10所示。 图1-10 stu_phone表结构 (2)创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。

(3)使用系统存储过程sp_hndrule将phone_rule规则绑定到stu_phone表的 “电话号码”列上。 (4)插入操作输入以下数据: 学号姓名电话号码 0009 王国强 1234yyy

第八章数据库完整性概念

第八章数据库完整性概念 1、什么是数据库的完整性? 答: 数据库的完整性是指数据的正确性和相容性。 2、数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 3、什么是数据库的完整性约束条件? 答: 完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。 4、RDBMS的完整性控制机制应具有哪些功能? 答: DBMS的完整性控制机制应具有三个方面的功能: (1)定义功能,即提供定义完整性约束条件的机制; (2)检查功能,及检查用户发出的操作请求是否违背了完整性约束条件; (3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 5、RDBMS在实现参照完整性时需要考虑哪些方面? 答: RDBMS在实现参照完整性时需要考虑以下几个方面: (1)外码是否可以接受空值。 (2)删除被参照关系的元组时的考虑,这时系统可能采取的做法有三种:级联删除、受限删除、置空值删除。 (3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:受限插入、递归插入。 (4)修改关系中得主码的问题。一般是不能用UPDATE语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关 系中。如果允许修改主码,首先要保证主码的唯一性和非空,否则拒绝修改。 然后要区分是参照关系还是被参照关系。 7、在关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的? 答: 对于违反实体完整性和用户定义完整性的操作一般采用拒绝执行的方式进行处理。而对

数据库应用-数据完整性实验答案

实验5 数据完整性 1.实验目的 (1)掌握Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。 (2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。 (3)掌握Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。 (4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。 (5)掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。 2.实验内容及步骤 请先附加studentsdb数据库,然后完成以下实验。 (1)主要讲解规则 为studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。 ①.复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为'电话号码' CHAR(7)。完成以下代码实现该操作。 stu_phone表结构如图1-10所示。 答:SELECT*INTO stu_phone FROM student_info ALTERTABLE stu_phone ADD电话号码CHAR(7)NULL 创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。实现该规则的代码为答:createrule phone_rule as@电话号码like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ②.使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。 实现该操作的代码为 答:sp_bindrule phone_rule,'stu_phone.电话号码' ③.输入以下代码,进行一次插入操作,要求符合规则: --select * from stu_phone --INSERT INTO stu_phone(学号,姓名,电话号码) VALUES('0009','王国强','1234yyy') 答:INSERTINTO stu_phone(学号,姓名,电话号码)VALUES('0009','王国强','1234yyy') ④.使用系统存储过程sp_unbindrule解除stu_phone表的'电话号码'列phone_rule规则绑定答:

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

第10章数据库恢复技术 (习题集) -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第十章数据库恢复技术(习题集) 二、选择题 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 )。

数据库数据库的完整性控制实验报告

实验报告 课程名称:数据库原理与应用 上机实验名称:数据库的完整性控制 专业班级:计算机科学与技术1103 指导教师:卫凡 学生姓名:贾梦洁 学期:2013-2014学年第一学期

实验报告 课程名称数据库原理与应用实验名称数据库的完整性控制 姓名贾梦洁学号 201107010330专业班级计1103 实验日期2013年12月19日成绩指导教师卫凡 一、实验目的 1. 加深对数据库完整性控制作用的认识和各种完整性约束概念的理解。 2. 熟练掌握数据库完整性约束方法。 二、实验环境 硬件环境:PC机 软件环境:操作系统为Microsoft Windows 2000或以上版本。 数据库管理系统为Microsoft SQL Server 2000标准版或企业版。 三、实验容 1. 熟悉利用企业管理器为列创建DEFAULT约束、为列创建CHECK约束、为列创建UNIQUE 约束、为列创建不允许为空约束、创建PRIMARY KEY约束、创建FOREIGN KEY约束。 2. 熟悉利用企业管理器将各种完整性约束删除。 3. 熟悉利用SQL为列创建DEFAULT约束、为列创建CHECK约束、为列创建UNIQUE约束、为列创建是否为空、创建PRIMARY KEY约束、创建FOREIGN KEY约束。 4. 熟悉利用SQL将各种完整性约束删除。 四、实验步骤 1.在实验1中已经对学生_课程数据库中建立了学生、课程和选课3个表,其表结构为:学生S(学号,,性别,年龄,所在专业名称) 课程C(课程号,课程名,任课教师名,开设的学期) 选课SC(学号,课程号,成绩) 利用企业管理器增加如下的完整性约束: (1)限定学生“性别”列的值只能是“男”或“女”的CHECK约束;

第4章 数据库完整性

第4章数据库完整性 4.1 数据完整性概念 4.1.1 什么是数据完整性? 数据完整性是指存储在数据库中的所有数据值都正确的状态。如果数据库中存储了不正确的数据值,则称该数据库已丢失数据完整性。 4.1.2 什么样的数据具有数据完整性? 满足完整性要求的数据具有以下三个特点: 数据的值正确无误 数据的存在必须确保同一表格数据之间不存在完全相同的两条或多条数据 数据的存在必须能维护不同表格数据之间的关联情况 4.1.3 数据库完整性分类 实体完整性、域完整性、引用完整性、用户自定义完整性。前面讲过 4.1.4 实施完整性的途径 表实施完整性的途径 下面我们来了解什么是约束、断言、规则。它们都是保证数据完整性的方法。触发器、存储过程以后讲。 4.2 约束 4.2.1 什么是约束?

约束是通过限制列、行中的数据和表之间的数据来保证数据完整性的方法。约束可以确保把有效的数据输入到列中和维护表和表之间的特定关系。 4.2.2 约束分类 SQL中约束分3种类型: 与表相关的约束:表定义中的一种约束。最常用的约束,又分为字段级约束、表级约束。 字段级约束就是为某一个字段值设置约束。表约束是将包含多个字段的字段组合设置为约束。如,Student表中,主键约束是字段级约束,主键是SID。SC表中主键约束是表约束,主键是(SID,CID)。 断言:在断言定义中的一种约束。不讲 域约束:在域定义中的一种约束。不讲 图 SQL完整性约束类型 从上图可以看出:Microsoft SQL Server 2005系统提供了5种约束类型,即PRIMARY KEY(主键)、FOREIGN KEY(外键)、UNIQUE、CHECK、NOT NULL约束 4.2.3 SQL Server 2005的5种约束类型 1 NOT NULL约束 概念:NULL表示未定义或未知的值;NOT NULL约束只能作为列约束。 设置:在用SQL语句创建列定义时,设置该列具有NOT NULL属性;或者在SQL Sever Management Studio图形界面建表时,禁用”允许空”选项即可。 例如:图形界面建表时,

如何实现数据库完整性

如何实现数据库完整性 SQL 中的完整性约束 SQL把各种完整性约束作为数据库模式定义的一部分。既有效防止了对数据库的意外破坏,提高了完整性检测的效率,又可以减轻编程人员的负担。 SQL对三种不同完整性约束的设置及检测,采取了不同的方式加以实现。下面分别介绍。 1.实体完整性和主码 实体完整性规定,主码的任何属性都不能为空,因为,概念模型中实体和联系都是可区分的,而且它们以码为唯一性标识。如果,主码的属性值可以为空,则意味着在概念模型中存在着不以码为唯一性标识的实体。这显然是前后矛盾的。 那么怎样保证实体完整性呢?SQL中实体完整性是通过主码来实现的。一旦某个属性或属性组被定义为主码,该主码的每个属性就不能为空值,并且在关系中不能出现主码值完全相同的两个元组。 主码的定义是在Create Table 语句中使用 Primary Key关键字来实现的。方法有两种: a) 在属性定义后加上关键字 Primary Key; b) 在属性表定义后加上额外的定义主码的子句:Primary Key(<主码属性名表>) 说明: 2如果主码仅由一个属性组成,上述两种方法都可定义,若由两个或以上的属性组成,则只能用上述第二种方法定义了。 2对于候选码的说明方法,可以用Unique说明该属性的值不能重复出现。Unique的使用与Primary Key相似。 2一个表中只能有一个主码定义,但可以有多个Unique说明。 2 SQL中,并没有强制为每个关系指定主码,但为每个关系指定主码通常会更好一些。(因为主码的指定可以确保关系的实体完整性) 2.参照完整性约束与外部码 参照完整性是对关系间引用数据的一种限制。即:若属性组A是基本关系R1的外码,它与基本关系R2的主码K相对应,则R1中每个元组在A上的值必须:要么取空值,要么等于

数据完整性测试

数据完整性测试 数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性(Entity Integrity)、域完整 性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的 完整性(User-definedIntegrity)。 1 实体完整性(Entity Integrity) 实体完整性规定表的每一行在表中是惟一的实体。表中定义的UNIQUE PRIMARYKEY 和IDENTITY 约束就是实体完整性的体现。 2 域完整性(Domain Integrity) 域完整性是指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。表中的CHECK、FOREIGN KEY 约束和DEFAULT、NOT NULL定义都属于域完整性的范畴。 3 参照完整性(Referential Integrity) 参照完整性是指两个表的主关键字和外关键字的数据应对应一致。它确保了有主关键字的表中对应其它表的外关键字的行存在,即保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。参照完整性是建立在外关键字和主关键字之间或外关键字和惟一性关键字之间的关系上的。在SQL Server 中,参照完整性作用表现在如下几个方面: 禁止在从表中插入包含主表中不存在的关键字的数据行; 禁止会导致从表中的相应值孤立的主表中的外关键字值改变; 禁止删除在从表中的有对应记录的主表记录。 4 用户定义的完整性(User-defined Integrity)

相关主题
文本预览
相关文档 最新文档