当前位置:文档之家› 实验八:数据库的完整性约束

实验八:数据库的完整性约束

实验八:数据库的完整性约束
实验八:数据库的完整性约束

实验八:数据库的完整性约束

一、实验目的

1.掌握主键约束、外键约束及及check约束的用法;

2.掌握默认值约束的应用;

3.了解规则、触发器的使用。

二、实验环境

已安装SQL Server 企业版的计算机;

具有局域网环境,有固定IP;

三、实验学时

2学时

四、实验要求

1.熟悉数据库完整性相关概念及约束;

2.了解约束、默认值及规则;

3.完成实验报告;

五、实验内容及步骤

以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实现以下操作;

1.请用至少2种方法定义stu数据库中student表的主键sno;

○1------列级定义------

create database stu;

create table student

(sno char(12) primary key

)

○2------表级定义------

create database stu;

create table student

(sno char(12)

primary key (sno)

)

2.将数据库stu的表course的cno字段定义为主键,约束名称为cno_pk;

alter table course

add constraint cno_pk primary key(cno)

3.为表course中的字段cname添加唯一值约束;

alter table course

add constraint cname_pk unique (cname)

4.将数据库stu的表sc的sno及cno字段组合定义为主键,约束名称为

sc_pk;

alter table sc

add constraint sc_pk primary key (sno,cno)

5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码

sno及表course的主码cno对应,实现如下参照完整性:

1)删除student表中记录的同时删除sc表中与该记录sno字段值相同

的记录;

2)修改student表某记录的sno时,若sc表中与该字段值对应的有若

干条记录,则拒绝修改;

3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;

4)删除course表一条记录时,若该字段在在sc表中存在,则删除该

字段对应的记录;

5)向sc表添加记录时,如果该记录的sno字段的值在student中不存

在,则拒绝插入;

alter table sc

add constraint sc_fk foreign key (sno)references student(sno) on delete cascade on update no action,

foreign key (cno)references course(cno)on delete cascade on update cascade

go

6.定义check约束,要求学生学号sno必须为9位数字字符,且不能以0

开头,第二三位皆为0;

alter table student

add constraint sno_ck

check(sno like '[1-9]00[0-9][0-9][0-9][0-9][0-9][0-9]')

7.定义stu数据库中student表中学生年龄值在16-25范围内;

alter table student

add constraint sage_ck

check(sage between 16 and 25)

8.定义stu数据库中student表中学生姓名长度在2-8之间;

alter table student

add constraint sname_ck

check (len(sname) between 2 and 8)

9.定义stu数据库中student表中学生性别列中只能输入“男”或“女”;

alter table student

add constraint ssex_ck

check(ssex in ('男','女'))

10.定义stu数据库student表中学生年龄值默认值为20;

alter table student add constraint s_age

default 20 for sage

11.修改student表学生的年龄值约束可以为15-30范围内;

alter table student

drop constraint sage_ck

go

alter table student

add constraint sage_ck

check(sage>=15 and sage<=30)

12.删除上述唯一值约束、外键约束及check约束;

alter table course

drop constraint cname_pk

go

alter table sc

drop constraint sc_fk

go

alter table student

drop constraint sno_ck,sage_ck,sname_ck,ssex_ck

13.思考题:定义规则对象,用于保证course表中cno字段值为5个数字字

符;(可选做)

create rule c_cno

as @a like '[0-9][0-9][0-9][0-9][0-9]'

go

exec sp_bindrule 'c_cno','https://www.doczj.com/doc/9a6304014.html,o'

14.思考题:向sc表中插入或修改一条记录时,通过触发器检查记录sno

字段的值在student表中是否存在,若不存在,则取消插入或修改操作;

(可选做)

create trigger abc on sc

for insert,update

as

if (select sno from inserted) not in(select sno from student)

begin

rollback transaction

end

15.思考题:删除student表中一条记录的同时删除其在sc表中对应的记录;

(参照完整性、触发器均可实现)

create trigger de_stu on student

for delete

as begin

delete from sc where sno in(select sno from deleted)

end

六、出现问题及解决办法

如:某些操作无法执行,如何解决?

实验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的数字。 ①复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。完成以下代码实现该操作。 SELECT * INTO stu_phone FROM student_info ALTER TABLE stu_phone ADD CHAR(7)NULL stu_phone表结构如图1-10所示。 图1-10 stu_phone表结构 ②创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。实现该规则的代码为 CREATE phone_rule AS @phone LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ③使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。实现该操作的代码为 sp_bindrule,'stu_phone.电话号码' ④输入以下代码,进行一次插入操作: INSERT INTO stu_phone(学号,姓名,电话号码) VALUES('0009','王国强','1234yyy') 产生以下出错信息: 消息513,级别16,状态0,第1 行 列的插入或更新与先前的CREATE RULE 语句所指定的规则发生冲突。该语句已终止。冲突发生于 数据库'studentsdb',表'dbo.stu_phone',列'电话号码'。 语句已终止。

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,右击,选择“关系”,出现如下信息,

实验室数据完整性

实验室数据完整性 CFDA飞检通告中药企缺陷汇总 近几年对于制药企业人都不陌生的一个名称就是数据完整性,然而它不是现在才有的,只是曾经GMP检查的一个盲区。 实验室由于其涉及的数据信息量大,首当其冲成为数据完整性的重灾区。 从国家局发布的飞行检查数据显示自2015年12月1日计算机化系统生效以来,12家问题企业涉及实验室数据完整性缺陷的有6家,占总数的50%,而自2016年发布的5家问题企业有4家涉及。涉及实验室数据完整性缺陷容主要有以下几方面: 1)电子数据完全性不足:例如多人共用登录密码,无权限受控,缺审计追踪、修改数据、实验数据未进行备份等功能; 2)修改系统时间; 3)检验记录涉嫌造假,仪器使用日志不真实,涉嫌一图多用; 4)记录不规不完整等。

CFDA飞行检查实验室数据完整性缺陷汇总: 一、健朗药业有限责任公司 2015.12.23 实验室数据完整性缺陷容: 奥拉西坦成品原始检验记录中采用红外光谱仪鉴别时,选择性的采用仪器保存的工作对照品图谱比对作为检验结果进行判定; 检验用高效液相色谱仪、气相色谱仪,多人共用登录密码,无权限受控,缺审计追踪等功能,不能确保图谱、数据的完整性。 https://www.doczj.com/doc/9a6304014.html,/WS01/CL1681/139041.html 二、省辉南三和制药 2015.12.28 实验室数据完整性缺陷容: 检验记录涉嫌造假,仪器使用日志不真实。在该企业液相工作站打印出的精制冠心片药粉液相色谱图,批号为20130301、20140501、20140801、20140802、20150901样品液相色谱图高度一致,涉嫌一图多用的数据完整性问题。

数据库完整性

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

数据库系统概论第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),

实验8 数据完整性实验

实验8 数据完整性实验 1.实验目的 本实验的目的是通过实验使学生加深对数据完整性的理解,学会创建和使用触发器。2.实验时数4学时 [相关知识] SQL Server实现数据完整性的具体方法有4种:约束、缺省、规则和触发器。其中约束和缺省在实验一中已接触过。本实验重点学会创建和使用触发器。 触发器是实施复杂完整性的特殊类型的存储类型。触发器不需要专门语句调用,当对它所保护数据进行修改时自动激活,以防止对数据进行不正确,未授权或不一致的修改。 创建触发器的语法为: CREA TE TRIGGER <触发器> ON <表名> [WITH ENCRYPTION] FOR {[DELETE][,][INSERT][,][UPDA TE]} [WITH APPEND] [NOT FOR REPLICA TION] AS 其中: 1)WITH ENCRYPTION 为加密选项。 2)DELETE 选项为创建DELETE 触发器。DELETE触发器的作用是当对表执行DELETE操作时触发器被激活,并从指定表中删除元组,同时将删除的元组放入一 个特殊的逻辑表(delete表)中。触发器的动作可以检查delete表中的数据,以确 定下一步该如何处理。 3)INSERT选项为创建INSERT触发器。INSERT触发器在对指定表中执行插入数据操作时激活,激活后将插入表中的数据拷贝并送入一个特殊的逻辑表(inserted 表) 中,触发器会根据INSERT表中的值决定如何处理。 4)UPDA TE选项为创建UPDA TE触发器。UPDA TE触发器仅在对指定表中进行更新数据操作时激活。UPDA TE触发器激活后把将要被更新的原数据移入delete表中再 将要被更新后的新数据的备份送入insert表中,UPDA TE触发器对delete和inserted 表进行检查,并决定如何处理。 5)NOT FOR REPLICA TION 选项说明当一个复制过程在修改一个触发器表时,与该表相关联的触发器不能被执行。 一个触发器只适用于一个表,每个表最多只能有三个触发器,它们分别是INSERT、UPDA TE和DELETE触发器。触发器仅在实施数据完整性和处理业务规则时使用。 3.实验内容 本实验的内容为: 使用SQL设计触发器,通过SQL Server企业管理器定义它们。 具体完成下面例题:利用触发器来保证学生选课库中选课表的参照完整性,以维护其外码与参照表中的主码一致。 CREA TE TRIGGER SC_inserted ON 选课 FOR INSERT

第6章 实现数据完整性约束复习题

第6章实现数据完整性约束 一、填空题 1.SQL Server使用声明完整性和两种方式实现数据完整性。 答案:过程完整性 2.完整性,它要求表中所有的元组都应该有一个惟一标识,即主关键字。可以使用约束实现实体完整性,也可以将约束和约束一起使用来实现实体完整性。 答案:实体PRIMARY KEY UNQIUE NOT NULL 3.完整性维护从表中的外码与主表中主码的相容关系。 答案:参照 4.为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时,DBMS 就。 答案:拒绝更新 三.简答题 1.什么是数据的完整性? 答: 数据的完整性是指数据的正确性和相容性。 2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答: 数据库的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garbage In Garbage Out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 3 .什么是数据库的完整性约束条件?可分为哪几类? 答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束是对一个列的取值域的说明,包括以下几个方面: ( l )对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。 常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依赖约束。 动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面: ( l )修改列定义时的约束; ( 2 )修改列值时的约束。动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。 4 . DBMS 的完整性控制机制应具有哪些功能? 答:DBMS 的完整性控制机制应具有三个方面的功能: ( l )定义功能,即提供定义完整性约束条件的机制; ( 2 )检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;( 3 )违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定

数据库概论试题-数据库完整性

第10章数据库完整性 1.数据库的完整性是指数据的__正确性、相容性__。 2.什么是数据库的完整性? 答:数据库的完整性是指数据的正确性和相容性。 3.SQL标准使用了一系列概念来描述完整性,包括关系模型的____实体完整性、参照完整性、用户定义___完整性。 4.数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(GarbageInGarbageOut)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 5.数据库完整性的定义一般由SQL的__DDL数据字典__语句来实现。它们作为数据库模式的一部分存入中。 6.什么是数据库的完整性约束条件?可分为哪几类? 7.关系模型的实体完整性在__CREATETABLE__中用__PRIMARYKEY___定义。 8.DBMS的完整性控制机制应具有哪些功能? 答:DBMS的完整性控制机制应具有三个方面的功能: 1.定义功能,即提供定义完整性约束条件的机制。 2.检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。 3.违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 9.为了避免对基本表进行全表扫描,RDBMS核心一般都对__主码__自动建立一个__索引__。 10.RDBMS在实现参照完整性时需要考虑哪些方面? 11.关系模型的参照完整性在__CREATETABLE__中用___FOREIGNKEY__短语定义哪些列为外码列,用__REFERENCES__短语指明这些外码参照哪些表的主码。 12.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码;用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。 CREATETABLEDEPT(DeptnoNUMBER(2),DeptnameV ARCHAR(10),ManagerV ARCHAR(10), PhoneNumberChar(12)CONSTRAINTPK_SCPRIMARYKEY(Deptno));CREATETABLEEMP(E mpnoNUMBER(4),EnameV ARCHAR(10),AgeNUMBER(2),CONSTRAINTC1CHECK(Aage<= 60),JobV ARCHAR(9),SalNUMBER(7,2),DeptnoNUMBER(2),CONSTRAINTFK_DEPTNOFOR EIGNKEY(Deptno)REFERENCESDEPT(Deptno)); 13.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的? 答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。具体的处理可以参见上面第5题或《概论》10.2中相应部分。

实验4 数据的完整性

实验3-4 数据的完整性 一、实验目的: 1. CHECK约束。 2. PRIMARY KEY 约束。 3. UNIQUE约束。 4. FOREIGN KEY 约束 5. DEFAULT约束 6. 数据库关系图的使用。 二、实验内容: 1. 创建使用CHECK约束的表 2. 为表添加PRIMARY KEY 约束、UNIQUE约束、DEFAULT约 束。 3. 创建数据库关系图,建立PRIMARY KEY 约束、FOREIGN KEY 约束。 三、实验步骤: 分别使用SQL Server Management Studio和Transact SQL两种方式完成下列操作: 1. 创建员工表,要求如下: 身份编号,char(10) NOT NULL:第一位必须是英文字 母、第二位必须是数字1或2、后八位则必须是介于0~9 的数字。 工作编号,char(6) NOT NULL:以字符串T1C开头,后三 位则必须是介于0~9的数字。 姓名nvarchar(20) NOT NULL: 性别,char(1) NOT NULL,必须是字母M或F。 出生日期 NOT NULL,必须年满18岁。 电话号码,满足下列格式之一: 区号可以是3位或4位,用括号括起来。 区号是4位,电话号码必须是6位,且前3位与后3位 以“-”隔开。 区号是3位,电话号码必须是7位或8位;7位则前3位 与后4位以“-”隔开,如(025)452-8789;8位则前8 位与后4位以“-”隔开,(010)6435-8789。 地址nvarchar(60) NOT NULL

血型 varchar (3) NOT NULL ,必须是A 、B 、AB 、O 、RH+、RH-之一 起薪 money NOT NULL , 1500~10 000目前薪水money NOT NULL ,1500~20 000目前薪水大于或等于起薪。 2.创建员工表字段名数据类型说明员工编号 int 主键,聚集索引,not null ,自动增长,种子10,步长10身份证编号char(18)not null ,唯一约束技能鉴定编号char(6)not null ,唯一约束姓名nvarchar(16)姓名+电话号码,唯一约束 姓名+移动电话,唯一约束 电话号码char(11)移动电话int 3. 创建三个表: 学生表 字段名数据类型说明学号char(6)主键姓名varchar(20) 性别bit 出生日期smalldatetime 大于18岁籍贯 nvarchar(60) 课程表 字段名 数据类型说明课程编号 char(4) 主键

实验七--数据完整性实验

实验七:数据完整性实验 实验目的: 加深对数据完整性的理解。 实验内容: 数据库的完整性设置。 实验步骤: 可视化界面的操作方法: 一、实体完整性 1.将student表的“sno”字段设为主键:在表设计界面中,单击左边的行选定块,选定“sno”字段,单击工具按钮设置主键。如图1所示: 图1 1.将“sc”表的“sno”和“cno”设置为主键:在表设计界面中,单击并按住Ctrl 键拖动左边的行选定块,选定sno和cno字段,单击工具按钮设置主键。如图 2所示:

图2 二、域完整性 3. 将“ssex”字段设置为只能取“男”,“女”两值:在表设计界面,点击鼠标右键——CHECK 约束,——添加约束,添加CK_student_sex名称,然后在约束表达式框中输入“ ssex in ('男','女') ”。如图3所示。

图3 三、参照完整性 4. 将“student”表和“sc”表中的“sno”字段设为参照: 打开“sc”表的设计界面, 点击工具栏按钮, 在弹出的属性(properties)对话框中点击“新建”按钮,在“主键表 (Primary key table)”下拉框中选择“student”表,在其下的字段选择框中选择“sno”,在“外键表(Foreign key table)”下拉框中选择“sc”表,在其下的字段选择框中选择“sno”,单击关闭即可。见图4。

图4 命令方式操作方法: 一、实体完整性 1.将“student”表的“sno”字段设为主键:当“student”表已存在则执行: 当“student”表不存在则执行:

注:可用命令“drop table student”删除“student”表 2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录) 3. 将“sc”表的“sno”和“cno”设置为主键: 当“sc”表已存在则执行: 当“sc”表不存在则执行: 二、域完整性 4. 将“ssex”字段设置为只能取“男”,“女”两值: 当“student”表已存在则执行: 当“student”表不存在则执行:

数据库实验报告完整性约束

数据库实验报告完整性约束

大连海事大学 数据库原理课程实验大纲 实验名称:实验七完整性实验学时: 2 适用专业:智能科学与技术 实验环境: Microsoft SQL server 2014 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),并设计相应的更新语句检查该约束是否起作用?

实验六 数据完整性

实验六数据完整性 学号:6103114095 姓名:王祥真班级:计科143 1.实验目的 (1)掌握SQL Server管理平台和Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。 (2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。 (3)掌握SQL Server管理平台和Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。 (4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。 (5)掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。 2.实验内容 (1)为xskc数据库中student表的创建一个规则stu_nj_rule,限制“年级”列所输入的数据为2位0~9的数字。 (2)创建一个规则stusex_rule,将其绑定到student_info表的“性别”列上,保证输入的性别值只能是“男”或“女”。 (3)使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule 规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。 删除stu_nj_rule规则。

数据库完整性-习题解答

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

实验室数据完整性考试试卷

“实验室数据完整性”培训考试试卷 (SMP-ZK-005-00检验记录与检验报告管理规程、SMP-ZK-001-00检验工作管理规程) 姓名: 岗位: 分数: 一、填空题(每空 分,共 分) 、数据完整性是指数据的 和 ,用于描述存储的所有数据值均处于 的状态。 、在实验的同时记录 及结果,不应事后抄到记录上,不得用 、圆珠笔记录,应用黑色签字笔记录;记录要 、 、 、无缺页损角,字迹 ,色调一致;要采用 计量单位,数据应按测量仪器的 记录,发现观测失误应注明;记录填写的任何更改都应当遵循以下原则:在错误的地方画一条横线并使原有信息仍 ,书写正确信息后签注 和 。 、如检验设备具备打印的功能,应当尽可能采用检验设备 的记录、 和曲线图等。自动打印的记录、图谱和曲线图上应标明产品或样品的 、 和记录设备的信息,操作人还应签注 和日期。设备的信息至少包括设备的名称及其唯一的 以便追溯所用设备。 、检验所有的 必须保存。原则上不得使用 ,如果不可避免,可复印并在复印件上签注姓名和日期。 、对于某些数据如环境监测数据、制药用水的 ,宜对数据进行 并保存趋势分析报告以便了解体系的整体状况。 、检验应当有 ,规定所用方法、仪器和设备,

其内容应当与经 的检验方法一致。 、检验应当有 的记录并应当 ,确保结果与记录一致。所有计算均应当严格核对。 、应当对实验室容量分析用 、试剂、试液、对照品以及 进行 。 、质量控制实验室应当建立 的操作规程。任何检验结果超标都必须按照操作规程进行 ,并有相应的记录。 、产品检验记录的贮存期限为 ;特殊药品检验记录保存至贮存有效期后 。原辅料、包装材料检验记录应贮存到 产品有效期后一年。 二、简答题(每题 分,共 分) 、检验记录应当包括哪些内容? 答:

数据完整性实验

实验五:数据完整性实验 一、实验目的: 掌握使用SQL中的PRIMARY KEY、CHECK、FOREIGN KEY……REFERENCES、NOT NULL、UNIQUE等关键字是现实体完整性、参照完整性及用户定义完整性约束定义。二、实验步骤: (一)验证分析部分 1、利用SQL查询分析器用PRIMARY KEY子句保证实体完整性。 在查询分析器窗体下键入如下命令: CREATE TABLE Student( sno CHAR(5)NOT NULL UNIQUE, sname CHAR(8), ssex CHAR(1), sage INT, sdept CHAR(20), CONSTRAINT PK_Student PRIMARY KEY(sno)); UPDATE Student SET sno=’‘WHERE sdept=’CS’; UPDATE Student SET sno=’200215121‘WHERE sname=’王敏’; 运行并观察结果。 2、利用SQL查询分析器用FOREIGN KEY……REFERENCES子句保证实体完整性。 在查询分析器窗体下键入如下命令: (1)先删除原来SC表中关于Sno的外键,再将SC的Sno外键修改为: alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY(sno) REFERENCES Student(sno) ON update CASCADE; 然后执行以下语句 Update Student SET sno=’200215128‘WHERE sno=’200215121’; (2)先删除原来SC表中关于Sno的外键,再将SC的Sno外键修改为: alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY(sno) REFERENCES Student(sno) ON delete CASCADE; 然后执行以下语句 delete from student WHERE sno=’200215122’;

实验室数据完整性

实验室数据完整性

实验室数据完整性 CFDA飞检通告中药企缺陷汇总 近几年对于制药企业人都不陌生的一个名称就是数据完整性,然而它不是现在才有的,只是曾经GMP检查的一个盲区。 实验室由于其涉及的数据信息量大,首当其冲成为数据完整性的重灾区。 从国家局发布的飞行检查数据显示自2015年12月1日计算机化系统生效以来,12家问题企业涉及实验室数据完整性缺陷的有6家,占总数的50%,而自2016年发布的5家问题企业有4家涉及。涉及实验室数据完整性缺陷内容主要有以下几方面: 1)电子数据完全性不足:例如多人共用登录密码,无权限受控,缺审计追踪、修改数据、实验数据未进行备份等功能; 2)修改系统时间; 3)检验记录涉嫌造假,仪器使用日志不真实,涉嫌一图多用; 4)记录不规范不完整等。 CFDA飞行检查实验室数据完整性缺陷汇总: 一、湖南健朗药业有限责任公司 2015.12.23 实验室数据完整性缺陷内容: 奥拉西坦成品原始检验记录中采用红外光谱仪鉴别时,选择性的采用仪器内保存的工作对照品图谱比对作为检验结果进行判定; 检验用高效液相色谱仪、气相色谱仪,多人共用登录密码,无权限受控,缺审计追踪等功能,不能确保图谱、数据的完整性。 https://www.doczj.com/doc/9a6304014.html,/WS01/CL1681/139041.html

二、吉林省辉南三和制药有限公司 2015.12.28 实验室数据完整性缺陷内容: 检验记录涉嫌造假,仪器使用日志不真实。在该企业液相工作站打印出的精制冠心片药粉液相色谱图,批号为20130301、20140501、20140801、20140802、20150901样品液相色谱图高度一致,涉嫌一图多用的数据完整性问题。 另外企业无20150901批次物料的生产记录,物料领用记录等。而液相日志显示2015年9月14日和2015年9月26日均显示对该批号物料进行了检测,此使用日志明显存在造假。 https://www.doczj.com/doc/9a6304014.html,/WS01/CL1681/140200.html 三、海南益尔药业有限公司 2016.01.12 实验室数据完整性缺陷内容: 质量控制方面存在的问题。 1、修改数据。Thermo HPLC(型号:ultimate-3000,编号A-04-07-21)数据库显示,150601批次盐酸氟哌噻吨原料药的杂质A进行了多次测定,其中2015年6月27-28日(工作站显示的进样时间)测定的样品检测结果合格,HPLC 图谱被该批次检验记录采用,但检验记录中打印的图谱显示,对照溶液、供试品溶液和溶剂的测定时间均为2015年6月26日13:59。 Thermo HPLC(型号:ultimate-3000,编号A-04-07-21)工作站电脑的存在更改系统时间问题。 例如,(1)系统时间从2015年7月17日更改为2015年7月6日,2015年7月6日对150701批次氟哌噻吨美利曲辛片含量均匀度进行测定; (2)系统时间从2015年7月13日更改为2015年6月21日,2015年6月21日对氟哌噻吨中间体进行测定; (3)系统时间从2015年7月12日更改为2015年6月27日。 “150601盐酸氟哌噻吨杂质A”序列显示,“氟哌噻吨混合对照”两次进样的时间分别为2015年6月27日的15:31和15:35,与每针30分钟的运行时间相矛盾。

数据库完整性与安全性实验

1.实验五数据库完整性与安全性实验 1.1 实验目的 1.通过对完整性规则的定义实现,熟悉了解Mysql中完整性保证的规则和实现方法,加深对 数据完整性的理解。 2.通过对安全性相关内容的定义,熟悉了解Mysql中安全性的内容和实现方法,加深对数据 库安全性的理解 1.2 实验内容 1.2.1 完整性实验 (1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束; (3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;(4)删除学生表中的所有数据,验证参照完整性约束; (5)定义存储过程,完成查询某个学生的选课情况,并执行。 (6)定义触发器,当向学生表插入新的一条记录时,将所有学生出生日期加1;并对其进行测试。 (7)用sql完成以上操作。 1.2.2 安全性实验 (1)定义一新的登陆帐号、数据库用户,并授予其访问学生数据库的读权限; (2)分别用sa用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改;(3)再次用此用户访问学生数据库,并对其中的学生表数据进行修改。 (4)用SQL语句分别完成以上内容。 1.3 实验环境 Window8操作系统 Mysql 8.0版本数据库 Mysql workbench 8.0可视化工具 Mysql命令行编辑器

1.4 实验步骤及结果分析 1.4.1 完整性 1.4.1.1 分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束 1.首先因为在之前创建表的时候定义了主键,因此,我们需要先将所有表的主键撤销掉,然后 重新创建主键。 Mysql语句(删除主键): alter table student drop primary key; alter table course drop primary key; alter table sc drop primary key; 2.重新创建主键 Mysql语句(创建主键): alter table student add primary key(sno); alter table course add primary key(cno); alter table sc add primary key(sno,cno); 3.到此,我们已经重新添加了各表的主键,接下来我们为SC表添加外键。 Mysql语句(创建外键): alter table sc add constraint foreign key(sno) references student(sno); alter table sc add constraint foreign key(cno) references course(cno);

实验三 数据库完整性

实验三数据库完整性 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

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