实验一 数据定义和完整性(带答案)
实验室数据完整性之手动积分(1)

实验室数据完整性之手动积分大揭密实验室数据完整性已成FDA检查制药企业的一把利器,其中一条关于随意手动积分或者无书面程序规定手动积分,说明了FDA本身并不是不认可手动积分,而是要求是要有操作规程规定什么情况可以手动积分,如何积分,并且应保存并记录积分参数。
1.什么情况下可以进行手动积分?1)低分离度或低响应;2)流动相不稳定,基线紊乱,保留时间变化小;3)色谱柱性能:运行过程中,出现异常峰;4)软件积分的局限性,如由于软件参数阈值的设置导致峰未积分,峰起点和终点间出现肩峰和异常的基线漂移,软件错误(峰未积分和错误识别峰);5)由于样品母体的干扰导致的复杂色谱图:裂峰、目标杂质的同时洗脱/肩峰、基线噪音、负峰、基线上升或下降(由于某些梯度程序)、峰的严重拖尾、烃类的存在导致自动积分不正确。
2.手动积分的权限及操作操作员在数据系统自动积分不正确时,领取手动积分处理报告表并填写,手动积分申请被QC经理批准后由QC经理或QC组长(若有)或其指定人员(一般是指经验丰富的资深QC)方可进行手动积分。
3.手动积分注意事项1)手动积分不能试图通过以下动作来使数据符合标准要求:减少峰(减少峰面积);增加峰(增加峰面积);改变峰高;2)同一次检验的所有标准品、工作对照品、样品等必须使用同一方法进行手动积分。
3)手动积分结束后,应打印自动积分图谱和手动积分图谱附于手动积分申请表之后,提交QC经理审核;QC经理应复核完整的数据找出根因,基于根因制定相应的CAPA措施来避免类似事件。
4)自动积分的图谱不得删除或被覆盖,应与手动积分图谱保存于计算机中;打印的自动积分图谱和手动积分图谱应标识清楚签名,随同手动积分申请表附于检验原始记录后面一起交质量管理部经理、QP审核无问题后归档。
4.附件:手动积分处理报告表。
数据库SQL实验题目(14-15-1)

实验一数据定义操作●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 简单查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Teacher 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
实验二 表操作和数据完整性定义

答:序号列,代表当前是第几列。
(2)执行语句:Select * from借阅
记录id列中现有哪些值:
答:1,2
(3)写出delete语句,删除“借阅”表中的第一条记录;
deletefrom借阅
whereid=1;
(4)写出truncate table语句,删除“借阅”表中全部记录。
2. 用SSMS向“图书”和“读者”表中分别添加2条记录。
3.用insert语句向“借阅”表中添加2条记录。
INSERTINTO[dbo].[借阅]
([借书证号]期])
VALUES
(111111
,1
,'2012/11/1'
,'2012/12/1')
GO
4.执行下面的update语句,说明该语句的作用是:
不能:
原因:视图或函数'credit_of_student'不可更新,因为修改会影响多个基表。
update credit_of_student set credit=5 where studentno='08050203';
可以
实验总结(结论或问题分析):
这次比较难,因为没有提前预习导致在做的过程中进度比较慢,虽然按时完成了实验内容但也认识到提前预习的重要性,最后还是完成了任务,掌握用SSMS和create table语句创建表与定义完整性约束;巩固insert、update、delete语句的使用;掌握数据库导入、导出操作和数据库关系图的创建;熟练掌握索引与视图的创建和应用。
聚簇索引PK__student__07020F21
9.在teaching数据库中完成视图操作
数据库实验6 数据完整性(答案)

实验6 数据完整性学号:18103317专业:电子信息工程一、实验内容和步骤1.为studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。
(1)复制学生表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。
完成以下代码实现该操作。
SELECT * INTO stu_phone FROM 学生表ALTER TABLE stu_phone ADD CHAR(7)NULLstu_phone表结构如图1-10所示。
图1-10 stu_phone表结构(2)创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。
Create rule phone_ruleAs @value like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'(3)使用系统存储过程sp_hndrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。
sp_bindrule phone_rule, 'stu_phone.电话号码'(4)插入操作输入以下数据:学号姓名电话号码0009 王国强1234yyy是否可以成果插入?如果出现错误,请列出错误信息,为什么会产生该出错信息?如果要实现插入操作,应修改INSERT INTO语句中的哪个值?phone_rule规则能否对其他操作(如DELETE)进行规则检查?消息213,级别16,状态1,第1 行插入错误: 列名或所提供值的数目与表定义不匹配。
2.创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。
CREATE RULE stusex_ruleAS @性别in ('男','女')3.使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext 查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。
实验07 数据完整性与用户自定义函数

实验七数据完整性与用户自定义函数一、实验目的:1.通过实验加深对数据库完整性的理解;2.掌握SQLServer对用户自定义函数的使用方法二、实验内容和要求(一)数据库完整性某公司使用数据库进行内部管理:表Employees存储雇员的代号(整型,标识位,种子1000001,增量为1,主键)、身份证号码(18个字符)、名字(最长20个字符)和工资等信息;表Departments存储部门的部门号(2个字符,唯一,主键)、部门名称(30个字符)等信息;表Work每一行表示某雇员在某部门工作过及其开始工作时间和备注。
提示:create table Employees(eno int primary key identity(1000001,1),……)PRIMARY KEY 拥有自动定义的UNIQUE 约束。
(1)创建数据库,数据库名字和属性自己定义。
(2)请写出创建这三个表的SQL语句,要保证:工资的值大于0,身份证号码唯一,开始工作时间非空,默认值为当前时间。
(3)创建以下两个关系模式,先不进行任何完整性定义。
职工(职工号,姓名,年龄,职务,工资,部门号)部门(部门号,名称,经理名,地址,电话号码)(4)在内容3已经创建的表结构上添加如下完整性,每个完整性都要命名,自己设计数据验证完整性:①定义每个模式的主码;②定义参照完整性,对部门号删除和更新时采用级联策略;③定义职工的年龄不能小于18岁,并且不能超过60岁;④职工的姓名不能为空;⑤职工的工资不能为空,且不能小于800;⑥部门名称不能为空且不能重复;⑦修改已经定义的完整性,将职工的年龄改为不能小于16岁,并且不能大于65岁;⑧删除某些完整性;(二)用户自定义函数1.创建一个返回标量值的用户定义函数RectangleArea:输入矩形的长和宽就能计算矩形的面积。
调用该函数。
2.创建一个用户自定义函数,功能为产生一张有关学生成绩统计的报表。
该报表显示每一门课程的课程号、课程名、选修人数、本门最高分、最低分和平均分。
数据库实验报告 数据控制(完整性部分) 实验四

题目:实验4 数据控制(完整性部分)姓名:* * * 日期:2012年4月26日一、实验目的熟悉通过SQL对数据进行完整性控制。
完成作业的上机练习。
二、实验平台在实验1中安装的RDBMS及其交互工具。
三、实验内容和要求使用SQL对数据进行完整性控制(三类完整性、check短语、constraint字句、触发器)。
用实验证实,当操作违反了完整性约束条件时,系统是如何处理的。
根据以下要求认真填写实验报告,记录所有的实验用例。
四、实验报告1、三类完整性,check短语。
关系模型的实体完整性在create table 中用primary key 定义。
定义主码的方法分为定义为列级约束条件和定义为表级约束条件两种。
对多个属性构成的码只能用表级约束条件。
习题5的第6题,要求定义实体完整性(主码)、参照完整性(外码)、check语句,用户定义的完整性(not null)。
代码如下:create table 职工( Dno numeric(4) primary key,Dname char(20) unique,Dbossname char(20),Dnum numeric(4));create table职工( Eplno smallint primary key,Eplname char(20) not null,Eplage smallint check (Eplage<=60),job char(9),Sal numeric(7,2),Dno numeric(4),foreign key(Dno)references部门(Dno) );2、constraint 字句完整性约束命名字句:create table student(SNO NUMERIC(5)CONSTRAINT C1 CHECK (SNO BETWEEN 90000 AND 99999), SNAME V ARCHAR(20)CONSTRAINT C2 NOT NULL,SAGE NUMERIC(3)CONSTRAINT C3 CHECK (SAGE < 30),SSEX V ARCHAR(2)CONSTRAINT C4 CHECK (SSEX IN ('男','女')), CONSTRAINT StudentKey PRIMARY KEY(SNO));1、触发器(1)创建触发器:(after 行级触发器)create trigger insert_or_update_Sal on 职工after insert as update 职工set Sal=12000 where (job='软件工程师')and (Sal<12000)激活触发器:insertinto职工values('24','小露','21','软件工程师','10000','8')(2)插入触发器:create trigger insert_0table on 职工for insertasdeclare @Eplno smallintselect @Eplno=Eplno from insertedupdate 职工set job='软件工程师' where Eplno=@Eplno激活触发器如下图所示:(3)创建触发器:(instead 表级触发器)create trigger J_updateon Jinstead of updateasbeginraiserror('J表的数据不能被修改!',16,10)end激活触发器:update Jset Jname='大众'where Jno='J1'执行顺序为:执行SQL“update”语句—>执行触发器删除触发器:代码:drop trigger J_update;执行结果如下:3、违反完整性约束条件时,系统处理如下:4、实验小结:(1) 遇到的问题:创建before行级触发器时出现问题create trigger insert_or_update_Salbefore insert or update on 职工for each rowas beginif(new.job='软件工程师')and (new.Sal<12000) then new.Sal:= 12000;end if;end;解决方案:待解决??。
实验10 数据完整性

实验10 数据完整性实验目的1.掌握保证数据完整性的方法:约束、默认和规则2.理解事务的提交和回滚3.理解SQL Server2000的锁模式实验准备1.了解数据完整性的概念以及保证数据完整性的方法。
2.了解事务管理和SQL Server锁模式。
3.还原studentdb数据库。
实验内容及步骤1.打开查询分析器,选择studentdb数据库,输入如下SELECT语句并执行,在studentdb数据库中产生新表“CUIT_专业目录”。
select 专业代码,专业简称,专业名称,层次,专业性质,学制,专业类别,所属系科into CUIT_专业目录from 专业2.测试主键约束。
(1)打开企业管理器,将列“专业代码”设置为表“CUIT_专业目录”的主键。
(2)通过INSERT语句为“cuit_专业目录”添加新记录,语句如下:insert into cuit_专业目录(专业代码,专业简称,专业名称,层次,专业性质,学制,专业类别,所属系科)values(1090,'物流管理本科','物流管理','本','普通',4,'管理学','管理系') 观察运行结果,注意系统提示,如何修改语句,使新记录添加成功。
3.创建数据库关系图,测试外键约束。
(1)打开企业管理器,展开控制台子目录【数据库】|【studentdb】,选中“关系图”,单击鼠标右键,弹出快捷菜单,选择【新建数据库关系图(M)…】。
(2)根据向导提示,选择表“CUIT_专业目录”和“班”,单击“完成”按钮,打开关系图窗口,如图10- 1。
图10- 1 关系图窗口(3)按下鼠标左键,选中表“CUIT_专业目录”的“专业代码”列,拖动鼠标至“班”的“所属专业”列后松开鼠标左键,弹出创建关系对话框,如图10- 2。
图10- 2 创建关系对话框(4)单击“确定”按钮,建立外键约束,关闭窗口并保存该关系图,名为“专业与班”。
数据库原理实验答案

课程结束各班学委统一收实验报告数据库原理及应用(本科)实验指导书1(报告)计算机信息教研室桂林理工大学信息科学与工程学院二○二○年八月目录实验 1 创建数据库与数据表 (2)实验2 简单查询和连接查询 (10)实验3 嵌套查询和集合查询 (12)实验4 数据完整性 (14)桂林理工大学实验报告班级学号姓名同组实验者无实验名称实验1 创建数据库与数据表日期年月日一、实验目的:1.熟悉SQL SERVER环境;2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令;3.掌握数据表的创建和数据记录的插入方法。
二、实验环境:Sqlserve数据库管理系统三、实验内容:1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC 三个数据表,各表中的数据如下所示:学生STUDENT:(注:CS计算机科学,IS信息系统,MA数学)Sno Sname Ssex Sage Sdept95001李勇M20CS95002刘晨F19IS95003王敏F18MA95004张立M18IS课程COURSE:(注:Pcno 先修课课程号)Cno Cname Pcno Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27C语言64选修SC:Sno Cno Grade9500119295001285 95001388 9500229095002 950033380实验步骤:1.创建教学管理“JXGL”数据库。
(注:可采用可视窗体和SQL命令两种方法创建。
以下是SQL命令方法)(1) 创建教学管理“JXGL”数据库。
在命令窗格中输入如下命令,然后单击“运行”功能钮执行该命令。
CREATE DATABASE JXGL;(2) 在JXGL数据库中建立STUDENT表,并插入记录。
CREATE TABLE STUDENT( Sno char(5) not null unique,Sname char(20) not null unique,Ssex char(1),Sage int,Sdept char(20));INSERT INTO STUDENT V ALUES('95001','李勇','M',20,'CS');INSERT INTO STUDENT V ALUES('95002','刘晨','F',19,'IS');INSERT INTO STUDENT V ALUES('95003','王敏','F',18,'MA');INSERT INTO STUDENT V ALUES('95004','张立','M',18,'IS');1(3) JXGL数据库中建立COURSE表,并插入记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 数据定义和数据库的完整性(4学时)
实验目的:
1、掌握SQL的数据定义功能
2、掌握SQL语言对数据库完整性的支持。
实验内容:
1、建立一个数据库XSCJ,自行规定数据文件和日志文件各项参数。
2、参照课本79页建立Course表,并录入数据库表中相应元组。
3、修改Course表增加一列,开课学期,数据类型自行定义。
4、为Course表的Cname列建立一个唯一索引,索引名Cname_idx。
5、删除唯一索引Cname_idx。
6、删除基本表Student。
7、删除数据库XSCJ
8、创建创建一个名为BSXT的数据库,其初始大小为5MB,最大大小10MB,
允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大
可增长到5MB,按1MB增长。
AR9、将以上BSXT据库的主数据文件的最大大小改为不限制。
10、。在BSXT系统中建立表1至表3共张表,要求采用T-SQL提供的六种约
束创建三张表的实体完整性、参照完整性和用户定义的完整性定义
表1 学生表(student)
中文含义 字段名称 数据类型 长度 是否可以为空 备注
学号 Sno 字符 10 No 主码
姓名 Sname 字符 10 No
性别 Ssex 字符 2 Yes ‘男’或‘女’
班级 Sclass 字符 10 Yes
联系电话 Stel 字符 11 No
分组 Sgroup 字符 1 No
密码 Spassword 字符 10 No
表2 教师表(Teacher)
中文含义 字段名称 数据类型 长度 是否可以为空 备注
教师号 Tno 字符 10 No 主码
姓名 Tname 字符 10 No 取值唯一
性别 Tsex 字符 2 Yes ‘男’或‘女’
系别 Tdept 字符 20 No 默认为“计算机科学与技术系”
学历 Tdegree 字符 8 Yes
职称 Ttitle 字符 10 Yes
教师身份 Tright Bit 1 No 1表示普通教师,
0表示管理员
联系电话 Ttel 字符 11 No
邮箱地址 Temail 字符 50 Yes
分组 Tgroup 字符 1 No
密码 Tpassword 字符 10 No
表3 毕业设计题目信息表
中文含义 字段名称 数据类型 长度 是否为空 备注
编号 Hno 字符 4 No 主键
设计题目 Hname 字符 50 No
题目状态 Hstatus 字符 5 No
设计任务和要求 Hcontent 字符 200 yes
备注 dircetion 字符 200 Yes
出题教师号 Tno 字符 10 Yes 外码
选题学生学号 Sno 字符 10 Yes 外码
/*
--建立一个数据库XSCJ,自行规定数据文件和日志文件各项参数
--参照课本79页建立Course表,并录入数据库表中相应元组
CREATE TABLE Course
(Cno CHAR(1) PRIMARY KEY,
Cname CHAR(10),
Cpno CHAR(1),
Ccredit CHAR(1),
FOREIGN KEY(Cpno) REFERENCES Course(Cno)
)
*/
/*
--修改Course表增加一列,开课学期,数据类型自行定义
AlTER TABLE Course ADD Csemester CHAR(10)
*/
/*
--为Course表的Cname列建立一个唯一索引,索引名Cname_idx
CREATE UNIQUE INDEX Cname_idx ON Course(Cname)
*/
/*
--删除唯一索引Cname_idx
DROP INDEX Course.Cname_idx
*/
/*
--删除基本表Course
DROP TABLE Course
*/
--删除数据库XSCJ
/*
--创建创建一个名为BSXT的数据库,其初始大小为5MB,最大大小10MB,允许数据
库自动增长,增长方式是按10%比例增长;
--日志文件初始为2MB,最大可增长到5MB,按1MB增长
--将以上BSXT据库的主数据文件的最大大小改为不限制
--在BSXT系统中建立表1至表3共张表
--要求采用T-SQL提供的六种约束创建三张表的实体完整性、参照完整性和用户定
义的完整性定义
*/
/*
--表1 学生表(student)
CREATE TABLE student
(Sno CHAR(10) NOT NULL PRIMARY KEY,
Sname CHAR(10) NOT NULL,
Ssex CHAR(2) CHECK(Ssex='男' or Ssex='女'),
Sclass CHAR(10),
Stel CHAR(11) NOT NULL,
Sgroup CHAR(1) NOT NULL,
Spassword CHAR(10) NOT NULL
)
*/
/*
--表2 教师表(Teacher)
CREATE TABLE Teacher
(Tno CHAR(10) NOT NULL PRIMARY KEY,
Tname CHAR(10) NOT NULL UNIQUE,
Tsex CHAR(2) CHECK(Tsex='男' or Tsex='女'),
Tdept CHAR(20) NOT NULL DEFAULT '计算机科学与技术系',
Tdegree CHAR(8),
Ttitle CHAR(10),
Tright BIT NOT NULL CHECK(Tright=0 or Tright=1),
Ttel CHAR(11) NOT NULL,
Temail CHAR(50),
Tgroup CHAR(1) NOT NULL,
Tpassword CHAR(10) NOT NULL
)
*/
/*
--表3 毕业设计题目信息表
CREATE TABLE Iteminfo
(Hno CHAR(4) NOT NULL PRIMARY KEY,
Hname CHAR(50) NOT NULL,
Hstatus CHAR(5) NOT NULL,
Hcontent CHAR(200),
dircetion CHAR(200),
Tno CHAR(10) REFERENCES Teacher(Tno),
Sno CHAR(10) REFERENCES student(Sno)
)
*/
补充:
--建立一个“学生”表Student。
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
--建立一个“课程”表Course。
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40) NOT NULL,
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
)
--建立学生选课表SC
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
)