文档库 最新最全的文档下载
当前位置:文档库 › 实验八 数据完整性 实验指导

实验八 数据完整性 实验指导

实验八 数据完整性 实验指导
实验八 数据完整性 实验指导

实验八数据完整性实验指导

一、完整性的概念

数据完整性是指存储在数据库中的数据正确无误,并且相关数据具有一致性。数据库中的数据是否完整,关系到数据库系统能否真实的反映现实世界。立足在“学生”表中学生的学号要具有唯一性,学生性别只能是男或女,其所在的系部、专业、班级必须是存在的,否则,就会出现数据库中的数据与现实不符的现象。如果数据库中总存在不完整的数据,那么它就没有存在的必要了,因此,实现数据的完整性在数据库管理系统中十分重要。

根据数据完整性机制所作用的数据库对象和范围不同,数据完整性可分为实体完整性、域完整性、参照完整性和用户定义完整性4种类型。

1. 实体完整性

实体是表中的记录,表中的一条记录就是一个实体。实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。这样,就可以保证数据所代表的任何事物都不重复、可以区分。例如,学生表中的学号必须唯一,并且不能为空,这样就可以保证学生记录的唯一性。实现实体完整性的方法主要有主键约束、唯一索引、唯一约束和制定IDENTITIY属性。

2. 域完整性

域完整性是指特定列的项的有效性。域完整性要求向表中指定列输入的数据必须具有正确数据类型、格式及有效的数据范围。例如,假设现实中学生的成绩为百分制,则在“课程注册”表中,向成绩列输入的数据,不能出现字符,也不能是小于0或大于100的数值。实现域完整性的方法主要有CHECK约束、外键约束、默认约束、非空约束、规则及在建表时设置的数据类型。

3. 参照完整性

参照完整性是指在有关联的两个或两个以上的表中,通过使用主键和外键或唯一键和外键之间的关系,使表中的键值在相关表中保持一致。引用完整性要求不能引用不存在的值。如果一个键值发生更改,则在整个数据库中,对该键值和所有引用要进行一致性的更改。例如,在学生表中的“班级代码”列的值必须是在班级表中“班级代码”列中存在的值,防止在录入学生记录时将学生分配到一个不存在的班级中。在SQL Server 2005中,参照完整性是通过FOREIGN KEY 和CHECK约束,以外键与主键之间或外键与唯一键之间的关系为基础。

4. 用户定义完整性

用户定义的完整性是应用领域需要遵守的约束条件,其允许用户定义不属于其他任何完整性分类的特定业务规则。所有的完整性类型(包括CREATE TABLE中所有列级约束和表级约束、存储过程以及触发器)都支持用户定义完整性。

二、使用约束

约束是SQL Server提供的自动强制数据完整性的一种方法,它通过定义列的取值规则来维护数据完整性。

1. 约束的类型

SQL Server2005支持的约束有NOT NULL(非空)约束、CHECK(检查)约束、UNIQUE (唯一)约束、PRIMARY KEY(主键)约束、FOREIGN KEY(外键)约束和DEFAULT(默认)约束。

●PRIMARY KEY约束。主键约束用来强制实现数据的实体完整性,它是在表中定义一

个主键来唯一标识表中每行记录。例如,在“学生”表中可以将学生编号设置为主键,用来保证表中的学生记录具有唯一性。一般情况下,数据库中的每个表都包含一列或一组列来唯一标识表中的每一行记录的值。

●UINQUE约束。唯一约束用来强制实现数据的实体完整性,它主要用来限制表的非主

键列中不允许输入重复值。例如在“专业”表中可以将专业代码作为主键用来保证记录的唯一性。如果不允许一个学院有同名专业存在,应该为专业名称列定义唯一约束,以保证非主键列中不出现重复值。

●NOT NULL约束。非空约束用来强制实现数据的域完整性,它用于设定某列值不能

为空。如果指定某列不能为空,则在添加记录时,必须为此列添加数据。例如,对于“班级表,存在一个班,就必须存在其相应专业,这时,就应该设置专业代码不能空。注意:定义了主键约束和标识列属性的列不允许为空。

●CHECK约束。检查约束用来强制数据的域完整性,它使用逻辑表达式来限定表中的

列可以接受的数据范围。例如,对于学生成绩的取值应限定在0~100之间,这时,就应该为成绩列创建检查约束,使其取值在正常范围内。

●DEFAULT约束。默认约束用来强制数据的域完整性,它为表中某列建立一个默认值。

插入记录时,如果没有为该列提供输入值,系统就会自动将默认值赋给该列。例如,对于“学生“表中的性别字段,可以提供其默认值为男,当输入记录时,对于男生就可以不输入性别数据,而由默认值提供。

●FOREIGN KEY约束。外键是指一个表中的一列或列组合,它虽不是该表的主键,却

是另一个表的主键。通过外键约束可以为相关联的表建立联系,实现数据的参照完整性,维护两表之间数据的一致性关系。例如,如果要求“学生”表中“班级代码”

列的取值,必须是“班级”表中“班级代码”列的列值之一,就应该在“学生”表的“班级代码”上创建外键约束,从而使“学生”表和“班级”表中的“班级代码”

具有一致性。

约束还可以分为列约束和表约束两类。当约束被定义于某个表的一列时成为列约束,定义于某个表的多列时成为表约束。当一个约束中必须包含一个以上的列时,必须使用表约束。

2. 创建主键约束

(1)使用SSMS创建主键约束

【例】在“studentdb”数据库中,将“选课SC”表中的“学号sno、课程号Cno”列设

置为组合主键。其操作步骤如下:

1)启动SSMS,在“对象资源管理器”中,依次展开“数据库”、“studentdb”、“表”,右击“sc”表,在弹出的快捷菜单中选择“修改”命令,打开“表设计器”。

2)在表设计器中,选择需要设置为主键的字段,如果需要选择多个字段,可以按住【ctrl】,同时使用鼠标单击每个要选择的字段。本例中,依次选学号sno、课号Cno字段。

3)选好字段后,右击选择的某个字段,在弹出的快捷菜单中选择“设置主键”。如图8.1所示。

图8.1 选择“设置主键”命令

4)执行命令后,在作为主键的字段前有一个钥匙图标,“表设计器”窗口如图8.2所示。也可以在选择好字段后,单击工具栏中的“钥匙”工具按钮,设置主键。

图8.2 “表设计器”窗口

5)关闭表设计器,并保存设置。

(2)使用T-SQL语言创建主键约束

可以用CREATE TABLE,也可以用ALTER TABLE为已存在的表创建主键约束。格式如下:

ALTER TABLE table_name

ADD

CONSTRAINT constraint_name

PRIMARY KEY[CLUSTERED|NONCLUSTERED]

{(COLUMN[,…n])}

其中:

●Constraint_name是主键约束名称;

●CLUSTERED表示在该列上建立聚集索引;

●NON CLUSTERED表示在该列上建立非聚集索引。

下面分别使用建表命令和修改表命令创建主键约束。

【例】在studentdb数据库中建立一个“民族”表Nationality(民族代码NNo,民族名称NName),将“民族代码”指定为主键。

USE studentdb

GO

CREATE TABLE Nationality

(NNo char(2)CONSTRAINT pk_nno PRIMARY KEY,

NName varchar(30)NOT NULL)

【例】在studentdb数据库中的“课程Course”表中,指定字段“课程号Cno”为表的主键,代码如下:

ALTER TABLE course

ADD CONSTRAINT pk_cno

PRIMARY KEY CLUSTERED(cno)

3. 创建唯一约束

(1)使用SSMS创建唯一约束

【例】在studendb数据库中,为课程“course”表中的“cname”字段创建一个唯一约束。操作步骤如下:

1)启动SSMS,在“对象资源管理器”中,依次展开“数据库”、“studentdb”、“表”节点。

2)右击“course”表,在快捷菜单中单击“修改”命令,打开“表设计器”,右击任意

字段,在快捷菜单中单击“索引/键”,打开“索引/键”对话框。

3)单击“添加”命令按钮,系统给出系统默认的唯一约束名:“IX_Course”,显示在“选定的注/唯一或索引”列表框中,如图8.3所示。

图8.3 “索引/键”对话框

4)选中唯一约束“IX_Course”,在其右侧的“属性”窗口中,可以执行修改约束名称、设置约束列等操作。

5)单击“属性”中的“常规”“列”属性,右侧出现“”按钮,单击该按钮,打开“索引列”对话框,在如图8.4所示,在列名下拉列表框中选择“cname”,在排序顺序中选择“升序”,设置创建唯一约束的列名。

图8.3 “索引/键”对话框

6)设置完成后,单击“确定”,回到“索引/键”对话框,修改常规属性中“是唯一的”属性值为“是”,如图8.5所示。

图8.5 “索引/键”对话框1

7)设置完成后,关闭“索引/键”对话框和“表设计器”窗口,保存设置。

(2)使用T-SQL语言创建唯一约束

语法格式:

ALTER TABLE table_name

ADD

CONSTRAINT constraint_name

UNIQUE[CLUSTERED|NONCLUSTERED]

{(COLUMN[,…n])}

其中:

●table_name是需要创建唯一约束的表名称;

●constraint_name是唯一约束名称;

●column是表中需要创建唯一约束的列名称;

【例】在studentdb数据库中,为“民族”表Nationality中的“民族名称”字段创建唯一约束,代码如下:

ALTER TABLE Nationality

ADD CONSTRAINT uk_NName UNIQUE NONCLUSTERED(NNAME)

4. 创建检查约束

(1)使用SSMS创建检查约束

【例】为student表的“出生日期sbirth”列创建一个名称为ck_csrq的检查约束,以保证输入的数据大于1990年1月1日而小于当天日期。

1)启动SSMS,在“对象资源管理器”中,依次展开“数据库”、“studentdb”、“表”。

2)右击“student”表,在快捷菜单单击“修改”,打开“表设计器”,右击任意字段,单击“CHECK约束”,打开对话框。

3)单击“添加”命令按钮,系统给出默认的CHECK约束名:“CK_student”,显示在“选定的CHECK约束”列表中,创建“CHECK约束”对话框如图8.6所示。

图8.6 创建“CHECK约束”对话框

4)单击“属性”窗口中“常规”属性“表达式”,在其对应的文本框中输入约束条件(输入sbirth>’1990/01/01’AND sbirth

图8.7 “CHECK约束表达式”对话框

单击确定后,回到“CHECK约束”对话框中,如图8.8所示。

图8.8 “CHECK约束表达式”对话框1

5)根据需要,在“标识”属性“名称”对应的文本框中修改CHECK约束的名称,如“ck_csrq”,根据需要,修改“表设计器”对应的三个属性,三个属性值均是逻辑值,具体含义如下:

●强制用于INSERT和UPDATE:若该属性值为“是”,则在进行插入和修改操作时,

数据要符合检查约束的要求,否则操作不成功。

●强制用于复制:若该属性值为“是”,则在表中进行数据的复制操作时,所有的数

据要符合检查约束的iu,否则操作无效。

●在创建或重新启用时检查现有数据:若属性值为“是”,则保证表中已经存在的数

据也符合检查约束条件的限制,若表中有不符合条件的数据,则不能创建检查约束。

6)设置完成后,单击“关闭”命令按钮,完成CHECK约束的创建。

(2)使用T-SQL语言创建检查约束

语法格式:

ALTER TABLE table_name

ADD CONSTRAINT constraint_name

CHECK (logical_expression)

其中:

●Table_name是表名称;

●Constraint_name是约束名称;

Logical_expression是检查约束的条件表达式。

【例】在studentdb数据库中,为“选课”表sc中的“成绩”Grade字段创建一个检查约束,以保证输入的学生成绩符合百分制要求。即在0~100之间。

ALTER TABLE sc

ADD CONSTRAINT ck_grade

CHECK(Grade>=0 AND Grade<=100)

5. 创建默认约束

用户在输入数据时,如果没有给某列赋值,该列的默认约束将自动为该列指定默认值。默认值可以是常量、内置函数或表达式。使用默认约束可以提高输入记录的速度。

(1)使用SSMS创建默认约束

【例】在student数据库中,有一“教师”Teacher表,为该表中的“学历”Teducation 字段创建默认值,其默认值为“bachelor”。操作步骤:

1)启动SSMS,在“对象资源管理器”中,依次展开“数据库”、“student”、“表”

2)右击“教师表”teacher,在快捷菜单中选择“修改”,打开“表设计器”。

3)单击需要设置默认的列,在下面列属性设置栏的“默认值或绑定”选项对应的输入框中输入默认值即可,如图8.9所示。

图8.9 “表设计器”创建默认值窗口

4)设置完成后,关闭“表设计器”。

(2)使用T-SQL语言创建默认约束

语法格式:

ALTER TABLE table_name

ADD CONSTRAINT constraint_name

DEFAULT constant_expression[FOR column_name]

其中:

●Constant_expression是默认值

●Column_name是建立默认的列名称

【例】在student数据库中,为“教师”Teacher表的“学历”Teducation字段创建默认值,其默认值为“doctor”。

ALTER TABLE teacher

ADD CONSTRAINT df_xueli

DEFAULT'doctor'FOR Teducation

6. 创建外键约束

外键约束用来维护两个表之间的一致性关系。外键的建立是将一个表(主键表)的主键列包含在另一个表(从键表)中,这些列就是从键表中的外键。在从键表中插入或更新的外键值,必须存在于主键表中,这就保证了两个表中相关数据的一致性。注意,要先在主键表中设置好主键(或唯一键),才能从主键表中建立与之具有数据一致性关系的外键。

(1)使用SSMS创建外键约束

【例】在studentdb数据库中,为“student”表的所属班级代码“Sclass”列创建外键约束,从而保证在“student”表中输入有效的班级代码。

1)启动SSMS,在“对象资源管理器”中,依次展开“数据库”、“student”、“表”。

2)右击“student”表,选择“修改”,打开表设计器,右击任意字段,选择“关系”,打开“外键关系”对话框。

3)单击“添加”,系统给出默认的外键约束名:“FK_student_student”,显示在“选定的关系”列表框中,如图8.10所示。

图8.10 “外键关系”对话框

4)单击“FK_student_student”外键约束名,在其右侧的“属性”窗口单击“表和列规范”属性,再单击该属性右侧的“”按钮,打开“表和列”对话框,如图8.11所示。

图8.11 “表和列”对话框

5)在“表和列”对话框中,修改外键的名称,选择主键表和表中的主键,以及外键表和表中的外键,修改后结果如图8.11所示。单击“确定”,回到“外键关系”对话框。

6)单击关闭按钮,完成外键约束的创建。

(2)使用T-SQL语言创建外键约束

语法格式:

ALTER TABLE table_name

ADD CONSTRAINT constraint_name

[FOREIGN KEY]{(column_name[,…])}

REFERENCES ref_table[(ref_column_name[,…])]

其中:

●table_name是需要创建外键的表名称;

●constraint_name是外键约束名称;

●Ref_table是主键表名称;

●Ref_column_name是主键表的主键列名称。

【例】在studentdb数据库中,为“student”表的所属班级代码“Sclass”列创建外键约束,从而保证在“student”表中输入有效的班级代码。

ALTER TABLE student

ADD CONSTRAINT fk_student_class FOREIGN KEY(sclassno)

REFERENCES class(classno)

7. 查看约束的定义

(1)使用SSMS查看约束

1)在SSMS中,右击要查看约束的表,打开“表设计器”。

2)在“表设计器”中可以查看主键约束、空值约束和默认值约束。

3)在“表设计器”中,右击任意字段,在弹出的快捷菜单中选择相关约束命令,进入“相关约束”对话框,查看外键约束、唯一约束和CHECK约束。

(2)使用系统存储过程查看约束信息

可以通过系统存储过程sp_help来查看约束的名称、创建者、类型和创建时间,语法格式:

[EXEC] sp_help 约束名称

如果约束存在文本信息,可以使用sp_helptext来查看,格式:

[EXEC] sp_helptext 约束名称

【例】使用系统存储过程查看选课“sc”表中的ck_grade约束信息。

EXEC sp_help ck_grade

EXEC sp_helptext ck_grade

在“查询编辑器”窗口中执行以上代码,结果如图8.12所示。

图8.12 约束ck_grade的相关信息

8. 删除约束

1.使用SSMS删除约束

在表设计器中,可以移除主键,修改非空,去掉默认值,在表设计器中右击任意字段,在弹出的快捷菜单中选择相关约束命令,如“关系、索引/键、CHECK约束”等,进入“相关约束”对话框,选中约束,单击删除命令即可。

2.使用DROP命令删除约束

在“查询编辑器”中,也可以删除约束,命令格式:

ALTER TABLE table_name

DROP CONSTRAINT constraint_name[,…n]

【例】删除教师sc表中的约束ck_grade。

ALTER TABLE sc

DROP CONSTRAINT ck_grade

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

实验八 数据库的安全性

实验八数据库的安全 T9.1 数据库用户的管理 1、实验目的 (1)掌握Windows登录名的建立与删除方法。 (2)掌握SQL Server登录名的建立与删除方法。 (3)掌握数据库用户创建于管理的方法。 2、实验准备 (1)了解windows身份验证模式与SQL Server身份验证模式的原理。 (2)了解数据库用户的建立与删除方法。 3、实验步骤 (1)Windows登录名。 ①使用界面方式创建Windows身份模式的登录名。方法如下: 第一步以管理员身份登录到Windows,选择“开始”,打开“控制面板”中的“性能和维护”,选择其中的“管理工具”,双击“计算机管理”进入“计算机管理”窗口。 在该窗口中选择“本地用户和组”中的“用户”图标,右击,在弹出的快捷菜单中选择“新用户”菜单项,打开“新用户”窗口,新建一个用户zheng。 第二步一管理员身份登录到SQL Server Management Studio,在对象资源管理器中选择“安全性”,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单项。在“新建登录名”窗口中单击“搜索”按钮添加Windows用户名zheng。选择“Windows身份验证模式”,单击“确定”按钮完成。 ②使用命令方式创建Windows身份模式的登录名,语句如下: 【思考与练习】 使用用户zheng登录Windows,然后启动SQL Server Management Studio,以Windows 身份验证模式连接。看看与以系统管理员身份登录时有什么不同。 (2)SQL Server登录名。 ①使用界面方式创建SQL Server登录名。方法为:在对象资源管理器的“安全性”中,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单项。在“新建登录名”窗口中输入要创建的登录名“yan”,并选择“SQL Server 身份验证模式”,输入密码,取消选择“用户在下次登录时必须更改密码”选项,单击“确认”按钮。 ②以命令方式创建SQL Server登录名,语句如下:

实验室数据完整性

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

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

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

实验9:数据库安全性实验 一、实验目的 加深对数据库安全性的理解,并掌握SQL Server中有关用户、角色及操作权限的管理方法。 二、实验内容 1.数据库的安全性实验。在SQL Server企业管理器中,设置SQL Server 的安全认证模式,实现对SQL Server的用户和角色的管理,设置和管理 数据操作权限。 三、实验原理和步骤 1.设置SQL Server的安全认证模式,选择混合模式。 右键服务器属性-安全性:选择SQL Server和Windows身份验证模式。 重启服务,生效。 2.账号: sa账号登录 3.登录帐号的管理

1)将Windows帐号添加到SQL Server 2005中 创建操作系统用户- 4.数据库用户的管理 1)dbo用户; 查看banking数据库的dbo用户,查看用户权限。 2)U1用户; 创建banking数据库的U1用户,查看用户权限。 5.权限管理 1)赋予所创建的U1用户db_datareader角色,查看用户权限 2)赋予所创建的U1用户db_datawriter角色,查看用户权限 3)赋予所创建的U1用户db_owner角色,查看用户权限 4)两种方法赋予所创建的U1用户对banking数据库表customer的select 权限,验证并写出sql语句 5)两种方法赋予所创建的U1用户对banking数据库表branch的select 和对branch_name修改的权限,验证并写出sql语句 6)把对loan表的update权限授予所创建的U1用户用户,并允许将此 权限再授予其他用户,验证并写出sql语句 7)两种方法回收所创建的U1用户对banking数据库表customer的select 权限,验证并写出sql语句 8)两种方法回收所有用户对banking数据库表loan的update权限,验 证并写出sql语句 四、实验报告要求 要求写出如下设计报告: 1.用Transact-SQL写出实验操作的语句 2.实验步骤和实验结果。 3.实验中的问题和提高。 4.SQL Server中有的安全性功能。 五、注意事项 1.用户、角色和权限的职能,以及它们之间的关系。

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

实验3:数据库安全性

实验3:数据库安全性 第1个实验.安全性定义——第5章实验八 使用订单数据库完成下面的实验内容: (1) 分别创建登录账号user01、user02,其密码皆为p888888,并设置为订单数据库OrderDB的用户。 sp_addlogin'user01','p888888','orderdb' sp_addlogin'user02','p888888','orderdb' (2) 创建登录账号login03,并加入到OrderDB数据库中,其用户名为user03。 sp_adduser'user03','login03' (3) 将员工表的所有权限授予全部用户。 grant all privileges on customer to public (4) 授予user03用户对Product表的查询权限,对Employee表的编号、名称的查询和更新权限。 grant select on product to login03 grant select(employeeno,employeename),update(employeeno,employeename)on employee to login03 (5) 创建角色r3、r4,将订单明细表所有列的SELECT权限、UNIT_PRICE列的UPDA TE 权限授予r3。 sp_addrole'r3' sp_addrole'r4' grant select,update(price)on orderdetail to r3 (6) 收回全部用户对员工表的所有权限。 revoke all on employee from public (7) 将user01、user02两个用户赋予r3角色。 sp_addrolemember user01,r3 sp_addrolemember user02,r3 (8) 收回user02对订单明细表所有列的SELECT权限。 sp_addrole user02 revoke select on orderdetail from user02 (9) 在当前数据库中删除角色r4。 sp_droprole r4 (10) 授予user01建表和建视图的权限,user01用户分别建立一张表和一个视图(表和视图自定),然后将该表和视图的查询权限授予user02和user03。 由于数据库中存在user01而user01的密码未知user01用user04 代替 grant create view to user04

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

数据库的安全性实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验:数据库的安全性实验 课程:数据库原理及应用B 班级:网络1203 学号: 学生姓名: 任课教师:孟彩霞

一、实验目的 (1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法(2)理解登录帐号的概念,掌握混合认证模式下登录帐号的建立与取消方法 (3)掌握混合认证模式下数据库用户的建立与取消方法 (4)掌握数据库用户权限的设置方法 (5)理解角色的概念,掌握管理角色技术 二、实验内容 (1)在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 (2)创建、管理数据库服务器的登录账号。 (3)创建、管理数据库用户。 (4)管理用户权限。 (5)创建、管理数据库角色。 三、实验环境 Windows7 SQL SERVER 2012 四、实验前准备 课本 上机使用代码 五、实验步骤 1.在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 2.创建、管理数据库服务器的登录账号。用T-SQL语句创建、查看、删除登录账号。 创建一个名为Student、密码为111、使用的默认数据库为JWGL的登录账号。 EXEC sp_addlogin ‘student’,’111’,’JWGL’查看登录账号EXEC sp_helplogins 删除登录账号为EXEC sp_droplogins ‘student’ 3.创建、管理数据库用户。 用T-SQL语句创建、查看、删除数据库用户。 为数据库JWGL创建一个用户user1,该用户登录SQL Server服务器的账号为wang,登录密码为secret,相应的程序代码为: EXEC sp_addlogin ‘wang’, ‘secret’, ‘JWGL’ GO EXEC sp_grantdbaccess ‘wang’, ‘user1’查看数据库用户为EXEC sp_helpuser 删除数据库中的“wang”用户为EXEC sp_revokedbaccess ‘wang’ 4.管理用户权限。 使用T-SQL语句完成第3章习题12中(1)~(3)的用户管理和用户权限管理。企业管理器: (1)允许用户李明对Orders表进行插入、删除操作。 GRANT INSERT ,DELETE ON Orders TO ‘李明’

实验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”表不存在则执行:

实验六 数据完整性

实验六数据完整性 学号: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规则。

实验八 数据完整性和安全性

苏州科技学院数理学院 实验报告 课程名称数据库原理与应用A 班级信计1412 学号0姓名0实验地点逸夫楼236 实验日期5、25 实验学时2学时实验名称实验八数据完整性和安全性 实验类型□√验证性 综合性 设计性 实验目的: 数据完整性方面: ●掌握域完整性的实现方法。 ●掌握实体完整性的实现方法。 ●掌握参照完整性的方法。 数据库安全性方面: ●掌握SQL Server身份验证模式。 ●掌握创建登录账户、数据库用户的方法。 ●掌握使用角色实现数据库安全性的方法。 ●掌握权限的分配。 实验内容: 数据完整性方面: 数据库的完整性设置。 数据库的安全性方面: 1、设置身份验证模式:Windows身份验证模式和混合模验证模式。 2、设置登录账户 3、设置数据库用户 4、设置数据库角色。 5、设置管理对象的权限

实验内容及步骤(记录实验的过程): 案例学习 3.1 数据完整性管理 ●可视化界面的操作方法: 实体完整性 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”表的设计界面, 点击工

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

“实验室数据完整性”培训考试试卷 (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.wendangku.net/doc/ff17424867.html,/WS01/CL1681/139041.html

二、吉林省辉南三和制药有限公司 2015.12.28 实验室数据完整性缺陷内容: 检验记录涉嫌造假,仪器使用日志不真实。在该企业液相工作站打印出的精制冠心片药粉液相色谱图,批号为20130301、20140501、20140801、20140802、20150901样品液相色谱图高度一致,涉嫌一图多用的数据完整性问题。 另外企业无20150901批次物料的生产记录,物料领用记录等。而液相日志显示2015年9月14日和2015年9月26日均显示对该批号物料进行了检测,此使用日志明显存在造假。 https://www.wendangku.net/doc/ff17424867.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分钟的运行时间相矛盾。

数据库原理-实验3-数据库的安全性

一、实验目的 1.掌握Windows 认证模式下数据库用户帐号的建立与取消方法; 2.掌握混合模式下数据库用户帐号的建立与取消方法; 3.掌握数据库用户权限的设置方法; 4.熟悉数据库数据库用户帐号的权限分配、回收等方法; 5.了解数据库角色的分类、作用及使用方法。 二、实验环境 SQL Server 企业版 三、实验学时 2学时 三、实验原理: 1. Microsoft? SQL Server?可以在两种安全(身份验证)模式: (1)Windows 身份验证模式(Windows 身份验证) Windows 身份验证模式使用户得以通过 Microsoft Windows NT? 4.0 或Windows? 2000 用户帐户进行连接。 (2)混合模式(Windows 身份验证和 SQL Server 身份验证) 混合模式使用户得以使用 Windows 身份验证或 SQL Server 身份验证与SQL Server 实例连接。在 Windows 身份验证模式或混合模式下,通过 Windows NT 4.0 或 Windows 2000 用户帐户连接的用户可以使用信任连接。

2. SQLServer的安全机制 (1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQL Server 中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。SQL Server登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。 (2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。用户安全对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。 (3)架构级别所包含的安全对象主要有表、视图、函数、存储过程、类型、同义词、聚合函数等。架构的作用简单地说是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。数据库中的每一个用户都会有自己的默认架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。至于操作的权限则由数据库角色所决定。一个数据库使用者,想要登录服务器上的SQL Server数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过如下图所示的安全验证。 3.数据库的存取控制:授权和撤销权限 (1)GRANT 在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句 语法: 1)语句权限: GRANT { ALL | statement [ ,...n ] } TO security_account [ ,...n ]

实验三 数据库完整性

实验三数据库完整性 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. 电子数据的数据管理是数据产生后对数据进行存储、备份等管理流程,流程见下图:

实验7-数据库安全性策略

实验7 数据库安全性策略 一、实验目的 1.掌握使用SQL语句进行数据库完全备份的办法 2.掌握使用客户端程序进行完全备份的方法 3.掌握数据库用户账号的建立与删除方法 4.掌握数据库用户权限的授予方法 二、实验准备 1.了解在MySQL Administrator中进行数据库备份操作的方法 2.了解数据库安全的重要性 3.了解数据库用户账号的建立于删除的方法 4.了解数据库用户权限的授予和回收方法 三、实验内容及要求 1.用SQL语句进行数据库备份和恢复 1)备份YGGL数据库中的Employees表到D盘FILE文件夹下,并在执行 完成后查看D盘FILE文件夹下是否有Employees.txt文件。 2)先删去Employees表中的几行数据,再使用SQL语句恢复Employees 表,执行完成后使用SELECT查看Employees表的变化。 2.使用客户端工具备份和恢复表 1)使用mysqldump备份数据库YGGL中的Salary表,并查看是否备份成 功。 2)备份整个YGGL数据库,并查看是否备份成功。 3)先删除YGGL数据库中的Employees表,再使用mysql恢复数据库。 4)假设原来的Salary表内容已经备份成Salary.txt文件,如果Salary 表中的数据发生了变动,使用mysqlimport恢复表数据。 3.数据库用户 1)创建数据库用户user_1和user_2,密码都为1234(假设服务器名为 localhost)。 2)将用户user_2的名称修改为user_3。 3)将用户user_3的密码修改为123456。 4)删除用户user_3。 5)以user_1用户身份登陆MySQL。 6)刚刚创建的用户有什么样的权限。 7)创建一个用户,并以该用户的身份登录。 4.用户权限的授予与收回 1)授予用户user_1对YGGL数据库Emlpoees表的所有操作权限及查询 操作权限。 2)授予用户user_1对Emlpoees表进行插入,修改,删除操作权限。 3)授予用户user_1对数据库YGGL的所有权限。 4)授予user_1在Salary表上的SELECT权限,并允许其将该权限授予 其他用户。 5)回收user_1的Emlpoees表上的SELECT权限。 6)授予用户user_1所有的用户权限。 7)取消用户user_1所有的权限。

相关文档
相关文档 最新文档