当前位置:文档之家› 数据库系统原理 实验4:数据完整性

数据库系统原理 实验4:数据完整性

数据库系统原理 实验4:数据完整性
数据库系统原理 实验4:数据完整性

实验四:数据完整性

1、实验目的

(1)了解SQL Serer数据库系统中数据完整性控制的基本方法

(2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束

(3)了解触发器的机制和使用

(4)验证数据库系统数据完整性控制

2、实验平台

使用SQL Server数据库管理系统提供的SSMS和查询编辑器。

3 实验内容及要求

结合ST数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。

设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。

设计一些示例数据,验证完整性检查机制。

要求包括如下方面的内容:

3.1 使用SQL语句设置约束

使用CREATE或ALTER语句完成如下的操作,包括:

1.设置各表的主键约束

2.设置相关表的外键

3. 设置相关属性的非空约束、默认值约束、唯一约束

4. 设置相关属性的CHECK约束

3.2 使用触发器

创建一个触发器,实现如下的完整性约束:

● 当向SC 表中插入一行数据时,自动将学分累加到总学分中。 ● 记录修改学分的操作。

3.4 检查约束和触发器

分别向相关表插入若干条记录,检查你设置的完整性约束是否有效:

1. 插入若干条包含正确数据的记录,检查插入情况

2. 分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行 3. 向SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。

4 实验报告

要求写出实验的基本过程。解释操作过程中出现的现象。

SC Student

参考示例:

建立一个学生选课数据库,熟悉约束及触发器的使用方法。

一、声明完整性约束

创建学生选课数据库TEST,包括三个基本表,其中Student表保存学生基本信息,Course 表保存课程信息,SC表保存学生选课信息,其结构如下表:

表1. Student表结构

表2. Course表结构

表3. SC表结构

1.创建基本表及约束

(1)创建Student表

CREATE TABLE Student

(Sno CHAR(8)PRIMARY KEY,

Sname CHAR(8)NOT NULL,

Ssex CHAR(2) CHECK( Ssex in ('男','女')),

Sage SMALLINT,

Sdept CHAR(20),

Sclass CHAR(4)NOT NULL,

Stotal smallint DEFAULT 0

);

●掌握主键约束、非空约束、CHECK约束、默认值的定义格式。

(2)创建Course表

CREATE TABLE Course

(Cno CHAR(4)CONSTRAINT FK_Course PRIMARY KEY,

Cname CHAR(40),

Cpno CHAR(4) ,

Ccredit SMALLINT

);

(3)创建SC表

CREATE TABLE SC

(Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno),

Cno CHAR(4),

Grade SMALLINT CONSTRAINT SC_CHECK CHECK(Grade>0 AND Grade<100), PRIMARY KEY (Sno,Cno),

CONSTRAINT FK_SC FOREIGN KEY (Cno)REFERENCES Course(Cno) );

●掌握多个属性的主键约束、外键约束、CHECK约束的定义格式。

●掌握约束的命名方式。

(4)检查表是否创建成功。

2.插入数据

将如下表格中的数据分别插入到数据库相应的表中:

表4.学生基本信息表

表5.课程信息表

表6.学生选课信息表

(1)插入学生信息到Student表

INSERT INTO Student VALUES('20100001','李勇','男',20,'CS','1001',0)

INSERT INTO Student VALUES('20100002','刘晨','女',19,'CS','1001',0)

请写出插入其余行的插入语句,并插入数据。

(2)插入到课程信息到Course表

INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('1','数据库系统原理','5',4) INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('2','高等数学',null,2)

请写出插入其余行的插入语句,并插入数据。

(3)插入到SC表

INSERT INTO SC VALUES('20100001','1',92)

INSERT INTO SC VALUES('20100002','2',80)

请写出插入其余行的插入语句,并运行。

(4)检查插入到表中的数据

3.修改约束

对数据库中已经存在的表,可对其增加约束或修改已存在的约束:

(1)添加约束

ALTER TABLE Course ADD UNIQUE(Cname)

ALTER TABLE Course ADD FOREIGN KEY (Cpno)REFERENCES Course(Cno)

●掌握如何添加约束

●掌握如何声明唯一约束

(2)修改约束

ALTER TABLE SC DROP CONSTRAINT SC_CHECK

ALTER TABLE SC ADD CONSTRAINT SC_CHECK CHECK(Grade>=0 AND Grade<=100)

●掌握如何修改约束

●理解命名约束的优点

二、检查完整性约束

通过修改数据库中的数据检查完整性约束条件的作用。

1.检查主键约束

(1)执行下面的语句修改Student表,观察语句能否正确运行,解释为什么?

INSERT INTO Student VALUES('20100101','李斌','男',20,'CS','1001',0)

INSERT INTO Student VALUES('20100001','李斌','男',20,'CS','1001',0)

UPDATE Student SET Sno='20100021'WHERE Sname='张立'

(2)执行下面的语句修改SC表,观察语句能否正确运行,解释为什么?

INSERT INTO SC VALUES('20100001','1',78)

INSERT INTO SC VALUES('20100001',null,78)

2.检查唯一约束

执行下面的语句修改Course表,观察语句能否正确运行,解释为什么?

INSERT INTO Course VALUES('8','JAVA',7, 3)

INSERT INTO Course VALUES('9','数据结构',7, 3)

3.检查默认值、允许空值列

运行如下的语句:

INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100102','张盛','男','1008')

观察插入数据行的数值

SELECT*FROM Student WHere Sno='20100102'

4.检查非空约束

下面的语句包含空值,检查运行结果,解释为什么?

INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100103','张盛','男',NULL)

INSERT INTO Student(Sno,Sname,Ssex)VALUES('20100104','张盛','男')

5.检查CHECK约束

执行下面的语句,解释其运行结果。

INSERT INTO SC VALUES('20100001','4',95)

INSERT INTO SC VALUES('20100001','4',102)

INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100103','张盛','男','1008')

INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100104','张盛','','1008')

6.检查外键约束

(1)执行下面的语句检查外键约束的作用

INSERT INTO SC VALUES('20100301','1',95)

INSERT INTO SC VALUES('20100001','10',95)

UPDATE SC SET Cno='10'Where Cno='1'

UPDATE Course SET Cno='10'Where Cno='3'

(2)执行下面的语句检查对被引用表的约束

DELETE Student WHERE Sno='20100021'

DELETE Student WHERE Sno='20100001'

UPDATE Course SET Cno='10'WHERE Cname='数据库系统原理'

三、触发器的定义及使用

1.定义触发器

(1)定义一个触发器,实现有关学分的完整性约束:当向SC表插入一行选课记录时,自动将该课程的学分累加到该学生的总学分中。

CREATE TRIGGER tr_INSERT ON SC

FOR INSERT

AS

--声明变量

DECLARE@sno char(8)

DECLARE@cridit int

DECLARE@cno char(4)

--提取插入的数据

SELECT@sno=Sno,@cno=Cno FROM inserted

--提取学生的总学分

SELECT@cridit=Ccredit

FROM SC join Course ON (https://www.doczj.com/doc/598860180.html,o=https://www.doczj.com/doc/598860180.html,o)

WHERE https://www.doczj.com/doc/598860180.html,o=@cno

--更新总学分

UPDATE Student SET Stotal=Stotal+@cridit

WHERE Sno=@sno

GO

(2)定义一个触发器,实现对SC表的操作登记:当用户向SC表插入或修改时,记录该操作到数据库中。

●创建日志登记表:

CREATE TABLE LOG_TABLE

(

username char(10),--操作人员

date datetime,--修改时间

Sno char(8),--学生学号

Cno char(4)--课程号

)

●创建日志登记触发器:

CREATE TRIGGER tr_UPDATE ON SC

FOR INSERT,UPDATE

AS

DECLARE@sno char(8)

DECLARE@cno char(4)

DECLARE@new smallint

SELECT@sno=Sno,@cno=Cno FROM inserted

INSERT INTO LOG_TABLE VALUES(CURRENT_USER,getdate(),@Sno,@Cno);

GO

(3)执行插入操作,触发触发器:

INSERT INTO SC VALUES('20100001','6',95)

(4)验证触发器是否触发

select*from student

select*from LOG_TABLE

实验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',列'电话号码'。 语句已终止。

实验室数据完整性

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

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

数据库实验四作业及答案

实验4数据查询 一、实验目的 1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 2.掌握使用SELECT语句进行条件查询的方法。 3.掌握嵌套查询的方法。 4.掌握多表查询的方法。 5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。 6.掌握联合查询的操作方法。 7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。 二、实验准备 1.了解SELECT语句的基本语法格式和执行方法。 2.了解嵌套查询的表示方法。 3.了解UNION运算符的用法。 4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。 5.了解IN、JOIN等子查询的格式。 6.了解INSERT INTO、UPDATE、DELETE的格式与作用。 三、实验内容及步骤 0. 创建studentsdb数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码 1.在studentsdb数据库中,使用下列SQL语句将输出什么? (1)SELECT COUNT(*) FROM grade (2)SELECT SUBSTRING(姓名,1,2) FROM student_info (3)SELECT UPPER('kelly')

(4)SELECT Replicate('kelly',3) (5)SELECT SQRT(分数) FROM grade WHERE 分数>=85 (6)SELECT 2,3,POWER(2,3) (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。 SELECT*FROM student_info (2)查询学号为0002的学生的姓名和家庭住址。 SELECT姓名,家庭住址FROM student_info WHERE学号=0002 (3)找出所有男同学的学号和姓名。 SELECT学号,姓名FROM student_info

实验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

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 3、学会使用T-SQL语句创建表。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 3.是用查询分析器,完成用SQL语句创建和删除基本表。 三. 实验要求 1、熟练使用查询分析器进行数据库的创建和删除操作。 2、用查询分析器,完成用SQL语句创建和删除基本表。 3、完成实验报告。 四. 实验内容 一、数据库 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1

句,并建立“学生信息”数据库.(.mdf的名字可以修改) 3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 ,

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

数据库实验上机答案整理-中国石油大学-龚安

实验四SQL练习2 一、实验目的 1.掌握索引的建立、删除及使用; 2.掌握单表查询、连接查询、嵌套查询和集合查询; 3.掌握插入数据、修改数据和删除数据语句的非常用形式。二、实验学时 2学时 三、实验内容 1.利用Query Analyzer完成以下操作: ⑴在预算日期、结算日期和入账日期上分别建立索引,并在查询操作中体会索引的作用。 ⑵在完成第2题的查询操作后,删除预算日期、结算日期和入账日期上的索引。 2.利用Query Analyzer完成以下操作: ⑴采油一矿二队2016-5-1到2016-5-28有哪些项目完成了预算,列出相应明细。 ⑵采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应明细。 ⑶采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应的材料费消耗明细。 ⑷采油一矿二队2016-5-1到2016-5-28有哪些项目完成了入账,列出相应明细。

⑸列出采油一矿二队2016-5-1到2016-5-28总的预算金额。 ⑹列出采油一矿二队2016-5-1到2016-5-28总的结算金额。 ⑺列出采油一矿二队2016-5-1到2016-5-28总的入账金额。 ⑻列出采油一矿2016-5-1到2016-5-28总的入账金额。 ⑼有哪些人员参与了入账操作。 ⑽列出2016-5-1到2016-5-28进行了结算但未入账的项目。 ⑾列出采油一矿二队的所有项目,按入账金额从高到低排列。 ⑿列出有哪些施工单位实施了项目,并计算各单位所有项目结算金额总和。 ⒀找出消耗了材料三且消耗超过了2000元的项目,列出相应消耗明细(利用子查询)。 ⒁作业公司二队参与了哪些项目。 ⒂作业公司一队和二队参与了哪些项目(利用union)。 ⒃采油一矿的油井是哪些作业队参与施工的。 3.利用Query Analyzer完成以下操作: ⑴建立数据表(包含3个属性列:★施工单位、★年月、◆结算金额)保存各个施工单位每月的结算金额总和。 ⑵用子查询将各个施工单位每月的结算金额总和插入到所建立的数据表中。 ⑶用带子查询的修改语句将采油一矿油井作业项目的结算人改为“李兵”。 ⑷用带子查询的删除语句删除采油一矿油井作业项目。

实验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) 主键

数据库实验四(含答案)

实验四使用SQL语句创建与删除数据库、表 一、实验目的: 1、了解SQL Server 2005数据库的逻辑结构与物理结构。 2、掌握使用SQL 语句创建与删除数据库。 3、学会使用T-SQL语句创建表。 二、实验准备 1.明确能够创建数据库的用户必须就是系统管理员,或就是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建与删除数据库的基本语法。 3.就是用查询分析器,完成用SQL语句创建与删除基本表。 三、实验要求 1、熟练使用查询分析器进行数据库的创建与删除操作。 2、用查询分析器,完成用SQL语句创建与删除基本表。 3、完成实验报告。 四、实验内容 一、数据库 1.以下就是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 'g:\xygl\userdb4、mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M )--数据文件每次增长1M log on ( name=userdb4_log, 'g:\xygl\userdb4、ldf ' , size=2 , maxsize=5 , ) 运行上诉语句建立数据库userdb1

2.根据步骤1的sql语句,写出创建实验二中“学生信息”数据库的sql语句,并建立“学生信息”数据库、(、mdf的名字可以修改) 3、数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, 'g:\xygl\userdb4、ldf ' , size=2 , maxsize=5 ,

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

实验七:数据完整性实验 实验目的: 加深对数据完整性的理解。 实验内容: 数据库的完整性设置。 实验步骤: 可视化界面的操作方法: 一、实体完整性 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”表不存在则执行:

数据库原理实验报告四(有答案)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验四查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。 (2)掌握数据排序和数据联接查询的方法。 (3)掌握SQL Server查询分析器的使用方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询 操作,并将将调试成功的T-SQL命令,填入实验报告中。 a)查询所有课程的详细情况。 b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。 c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。 d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降 序排列,如果成绩相同则按学号升序排列。 e)查询所有学生的学号、姓名和年龄。 f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并 将成绩乘以0.7输出。 g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院 (DEPT_ID为09)姓张的学生的信息。。 h)查询所有核心课程(课程名中带*的)的情况。 i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。 (2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作: a)查询每个学生的情况以及他(她)所选修的课程。 b)查询学生的学号、姓名、选修的课程名及成绩。 c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 e)分别用等值联接和内联接查询有授课记录的老师的姓名。 f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院 系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该 老师没有授课历史,在课程号和授课的学期中显示空值 (3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编 辑器工具栏中各快捷按钮的作用。 (4)按要求完成实验报告。

实验六 数据完整性

实验六数据完整性 学号: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,创建登陆用户temp1,密码是1234,加入到school数据库中并赋予db_owner数据库角色. Sp_addlogin'temp1','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp1'; --- /* CREATE LOGIN tmp1 WITH PASSWORD = '123',default_database=School; -- Creates a database user for the login created above. CREATE USER user1 FOR LOGIN tmp1; */ --查看登录账号的信息 Select*from sys.syslogins where name='temp1'; /* use School go exec sp_addsrvrolemember 'temp1','sysadmin';--添加服务器角色 */ --赋予db_owner数据库角色. use School go exec sp_addrolemember'db_owner','temp1'; --2,创建登陆用户temp2,密码是1234, --加入到school数据库中,并赋予该用户对student表select,insert权限 Sp_addlogin'temp2','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp2';

grantselect,insert on student to temp2; --3,对数据库school进行完全数据库备份,写出备份语句 Use School Go Sp_addumpdevice'disk','schoolinfo','e:\data\schoolinfo.bak' Go Backupdatabase school to schoolinfo withinit; --4,将student学生信息表中所有学生信息年龄改为20,进行差异化备份--修改表的数据 use school go update student set sage=20; ---执行差异化的备份 Use School Go Backupdatabase School todisk='e:\data\schoolinfo.bak'; Use school Go Backupdatabase School to schoolinfo withdifferential,init Use school Go select*from student Backupdatabase school to schooldemo withdifferential,init

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

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

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

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

数据完整性实验

实验五:数据完整性实验 一、实验目的: 掌握使用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/598860180.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/598860180.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、实体完整性:定义表的主码。 关系模型的实体完整性在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

QC实验室数据完整性管理规程

陕西汉王药业有限公司GMP管理文件 1.范围 陕西汉王药业质量部QC实验室检验产生数据完整性管理程序。 2.定义 2.1. 数据:从原始数据派生或获取的信息(如分析结果记录)。 2.2. 原始数据:原始记录和文档,保留在他们最初的格式生成(即纸或电子)或者作为 一个“真正的拷贝”。原始数据必须是同步产生的,采用可以永久保留的方式准确 记录。当电子设备不存储电子数据,或只提供了一个打印数据输出(如电子天平) 时,打印输出构成原始数据。 2.3. 元数据:是描述其它数据的属性数据,并提供语境和含义。通常情况下,这些数据 描述结构、数据元素、相互关系和其他特征的数据。它也允许数据追踪至个体。包 含了原始数据、结果数据、方法数据、取样设定、顺序数据、审计追踪等文件。2.4. 电子数据:是指任何文本、图表、数据、声音、图示的或其他的以电子形式表现的 信息的混合,它的建立、修改、维护、归档、恢复或分发是由计算机系统来完成。 2.5. 数据完整性周期:数据(包括原始数据)自初始产生和记录,到处理(包括转化或 移植)、使用、数据保留、存档/恢复和重建的整个生命阶段。(一般分为业务流和 数据流:业务流:生成数据 + 处理数据 + 审核数据 + 报告数据;数据流:生成数据 + 转移数据 + 存储数据 + 恢复数据) 2.6. 数据完整性:数据生命周期内所有数据完整、一致、准确的程度(MRHA)。在制 药系统中,可理解为按照基本科学性原则(包括生产质量管理规范和内部书面规程 等)收集、存储数据并报告,确保得出结论时考虑了所有有效的数据。 2.7. 数据的ALCOA原则:

A—attributable to the person generating the data(可追踪至产生数据的人员); L—legible and permanent(清晰,能永久保存); C—contemporaneous(同步); O—original record(or “true copy”)原始(或真实复制); A—accurate(准确)。 1. 参考 3.1. 中国GMP附录11《计算机系统》 3.2. 《Data Integrity Definitions and Guidance》(英国MHRA) 2. 职责 4.1. 质量部QC按照本方案规定执行,确保质量体系电子数据完整性。 4.2. 质量部QC负责人按本方案要求进行数据完整性工作的监督。 3. 附件 5.1. 附件1:《QC仪器电脑Windows系统使用人及权限登记记录》 5.2. 附件2:《QC仪器使用人权限申请记录》 5.3. 附件3:《QC仪器使用人及权限登记记录》 5.4. 附件4:《仪器报警异常事件评估处理表》 5.5. 附件5:《仪器审计追踪检查记录》 5.6. 附件6:《电子数据删除记录》 4. 内容 6.1. 电子数据的生命周期 6.1.1. 电子数据生命周期分为业务流和数据流,本文管理要求按照业务流和数据流进行阐 述。 6.1.2. 电子数据的业务流管理是根据数据产生的业务流程进行管理的,流程见下图: 6.1.3. 电子数据的数据管理是数据产生后对数据进行存储、备份等管理流程,流程见下图:

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