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

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

苏州科技学院数理学院

实验报告

课程名称数据库原理与应用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”表的设计界面, 点击工

具栏按钮, 在弹出的属性(properties)对话框中点击“新建”按钮,在“主键表(Primary key

table)”下拉框中选择“student”表,在其下的字段选择框中选择“sno”,在“外键表(Foreign key table)”下拉框中选择“sc”表,在其下的字段选择框中选择“sno”,单击关闭即可。见图4。

图4

●命令方式操作方法:

实体完整性

1.将“student”表的“sno”字段设为主键:

当“student”表已存在则执行:

alter table student add constraint pk_sno primary key (sno)

当“student”表不存在则执行:

Create table student(sno CHAR(5) primary key ,

sname CHAR(10) NOT NULL,

ssex CHAR(2),

sage int,

sdept CHAR(4))

注:可用命令“drop table student”删除“student”表

2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录)

Alter table student add id char(18) unique (id)

3. 将“sc”表的“sno”和“cno”设置为主键:

当“sc”表已存在则执行:

alter table sc add constraint PK_SnoCno primary key (sno,cno)

当“sc”表不存在则执行:

Create table sc(sno CHAR(5),

cno CHAR(2),

grade INT NULL,

constraint PK_SnoCno primary key (sno,cno))

域完整性

4. 将“ssex”字段设置为只能取“男”,“女”两值:

当“student”表已存在则执行:

alter table student add constraint CK_Sex check (ssex in ('男' ,'女')) 当“student”表不存在则执行:

Create table student(sno CHAR(5) primary key ,

sname CHAR(10),

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

sage int, sdept CHAR(4))

5. 设置学号字段只能输入数字:

alter table student add constraint CK_Sno_Format check (sno like

'[0-9][0-9][0-9][0-9][0-9]')

6. 设置身份证号的输入格式:

alter table student add constraint CK_ID_Format check ((id like

'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_') OR (id like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))

7. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050)

alter table student add constraint CK_ID_Format2 check (len(id)=18 and

( (convert(smallint,substring(id,7,4) )>=1900) and(convert(smallint,substring(id,7,4) )<=2050)) ) 6. 设置男生的年龄必须大于22, 女生的年龄必须大于20.

Alter table student add constraint CK_age check (ssex='男' and sage>=22 or ssex='女' and sage>=20 )

参照完整性

9. 将“student”表和“sc”表中的“sno”字段设为参照:

当“sc”表已存在则执行:

alter table sc add constraint FP_sno foreign key (sno) references student(sno )

当“sc”表不存在则执行:

Create table sc(sno CHAR(5) constraint FP_sno

foreign key references student(sno),

cno CHAR(2),grade I NT NULL,

constraint PK_SnoCno primary key (sno,cno) )

●完整性验证

1.实体完整性:在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误如图5所示:

图5

或者在命令窗口输入下面两条命令也会出现错误提示:insert into student values('95003','张三','男',24,'CS','422229************')

insert into student values('95001','李四','女',21,'CS','422229************')

图6

下面的语句用来验证“sc”表中的实体完整性:

insert into sc values('95002', '10',65)

insert into sc values('95002', '10',90)

图7

2. 域完整性:

使用下面的语句验证“ssex”字段的域完整性:

insert into student values('95009','张匀','大',20,'CS',‘422229************’)

3.参照完整性:

使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):

insert into sc values('98998', '10',98)

3.2 数据库安全性管理

1.设置身份验证模式

依次单击开始->所有程序->SQL Server 2005->SQL Server Management Studio 启动SQL Server 2005数据库管理系统

连接成功后,右键你的实例,选择"属性"

在"属性"窗口中,转到"Security"(安全性)项,在"服务器身份验证"中设置为"SQL Server和Windows身份验证模式",确定,根据提示,应该重新启动sql服务 然后执行下面的语句启用sa用户, 同时清除sa的密码(能成功登陆后再根据你的需要设置)

EXEC sp_password null,null,'sa'

ALTER LOGIN sa ENABLE

语句执行完成后, 再用sa连接你的实例, 应该就没有问题了.

2.设置登录账户

创建使用Windows 身份验证(SQL Server Management Studio) 的SQL Server 登录名

??在SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。

??右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。

??在“常规”页上的“登录名”框中输入一个Windows 用户名。

??选择“Windows 身份验证”。

??单击“确定”。

创建使用SQL Server 身份验证(SQL Server Management Studio) 的SQL Server 登录名

??在SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。

??右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。

??在“常规”页上的“登录名”框中输入一个新登录名的名称。

??选择“SQL Server 身份验证”。

??输入登录名的密码。

??选择应当应用于新登录名的密码策略选项。通常,强制密码策略是更安全的选择。

??单击“确定”。

通过Transact-SQL 创建使用Windows 身份验证的SQL Server 登录名??在查询编辑器中,输入以下Transact-SQL 命令:CREATE LOGIN FROM WINDOWS; GO

通过Transact-SQL 创建使用SQL Server 身份验证的SQL Server 登录名??在查询编辑器中,输入以下Transact-SQL 命令:CREATE LOGIN WITH PASSWORD = '' ; GO

3.设置数据库用户

创建数据库用户

?在SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。

?依次展开数据库,某个具体数据库,“用户”

?右键单击用户,选择“新建用户”

?输入用户名,选择登录名,确定

通过Transact-SQL 创建数据库用户(create user):create user dba for login dba with default_schema=dbo

?并指定数据库用户“dba”的默认schema 是“dbo”。这意味着用户“dba”

在执行“select * from t”,实际上执行的是“select * from dbo.t”。

4设置数据库角色

新建角色

?在SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。

?依次展开数据库,某个具体数据库,“角色”

?右击选中新建角色

通过Transact-SQL新建角色:CREATE ROLE role_name

在对象资源管理器中设置数据库角色

?在SQL Server Management Studio 中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。

?依次展开数据库,某个具体数据库,“用户”

?选中某用户,右击“属性”,在展开的数据库用户属性对话框中进行设置 通过Transact-SQL设置数据库角色

?通过加入数据库角色,赋予数据库用户“dba”权限:exec sp_addrolemember 'db_owner', 'dba'

?此时,dba 就可以全权管理数据库mydb 中的对象了。

?如果想让SQL Server 登陆帐户“dba”访问多个数据库,比如mydb2。可以让sa 执行下面的语句:

?use mydb2 go create user dba for login dba with default_schema=dbo go exec sp_addrolemember 'db_owner', 'dba' go

?此时,dba 就可以有两个数据库mydb, mydb2 的管理权限了!

5.设置管理对象的权限

在对象资源管理器中授权:

?选中需要授权的登录名、用户名或角色名

?右键单击选择“属性”,在弹出的该对象的属性窗口中选择“安全对象”,进行权限分配

通过Transact-SQL分配权限:通过GRANT和REVOKE语句

四、自己动手实验:

4.1 数据库完整性方面

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

alter table student add constraint pk_sno primary key (sno)

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

alter table course

add constraint cname_unique unique(cname)

3、对于数据表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 FP_sno foreign key(sno)references Student(sno)

alter table SC

add constraint FP_cno foreign key(cno)references course(cno)

4、定义check约束,要求学生学号sno必须为10位字符,且不能以0开头,第二三位皆为0;check(sno like‘[^0]00__________’ )

Alter table student

Add contraint pk_sno

Check (sno like'[1-10]00 [0-10] [0-10] [0-10] [0-10] [0-10] [0-10]')

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

Alter table student

Add contraint CK_age

Check (sage>=16 and sage<=25)

6、定义stu数据库中student表中学生姓名长度在2-8之间;check(len(sname)<8)

Alter table student

Add contraint CK_name

Check (len(sname)<8)

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

alter table student add constraint CK_Sex check (ssex in('男','女'))

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

alter table student

add constraint CK_sage default(20)for sname

4.2 数据库安全性方面

1、创建角色ProgramerRole,拥有创建表,存储过程,视图权限,拥有对Salary表的查询、修改、插入权限

create role ProgramerRole

2、创建一个登录账号Testlogin

3、创建对应于这个登录账号的数据库用户TestUser

4、将用户TestUser添加到TestRole角色中

五、实验报告要求

1、写出与上述任务相对应的SQL语句

2、写出与上述任务相对应的SQL语句

3、思考数据库服务器上的角色有哪些?权限类型有哪些?Windows用户组或用户账户

SQL Server登录

其他角色

4、并记录在实验过程中遇到的问题、解决办法及心得体会。新建登陆帐号和角色时不熟练

实验总结( 对程序设计技巧的总结分析、存在问题及进一步的思考):

新建登陆帐号和角色时不熟练

教师评语:

成绩教师签名

201 年月日

实验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.360docs.net/doc/4c11906702.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

实验五 SQL SERVER 完整性与安全性 实验报告

实验五SQL SERVER 完整性与安全性 一、实验目的 掌握SQL SERVER数据访问控制策略和技术,SQL SERVER数据库管理系统使用安全帐户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。 二、实验内容 1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。 2.分别为三个登录名在“gongcheng”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“gongcheng”数据库。

3.授予用户John创建表和视图的权限。 grant create table,create view to John 在“gongcheng”下,安全性—John—属性,选择安全对象,搜索特定对象,选择“gongcheng”表,在权限中选择“创建表”和“创建视图”, 如图:

即可赋予John“创建表”和“创建视图”的权限。 4.完成以下授权: (1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。 grant insert on S to tom with grant option (2)用户Mary对S,P,J三个表有SELECT和INSERT权力 grant select,insert on S to Mary grant select,insert on P to Mary grant select,insert on J to Mary (3)用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDA TE权力。 grant delete,update(qty) on spj to Tom

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

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

数据库原理及应用 实验报告 题目:数据库安全性与完整性实验 专业:网络工程 班级: 学号: 姓名: 太原工业学院计算机工程系 2016年10 月15日一、实验目的与要求 目的: 使学生加深对数据安全性与完整性实验的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法,熟悉通过SQL语句副i数据进行完整性控制。 要求: 1.数据库的安全性实验,在SQL Server企业管理器中设置SQL server的安全认证模式,实现对SQL server的用户和角色管理,设置和管理数据操作权限。 2.指出用户和角色的区别 二、实验内容 1.设置SQL server的安全认证模式(windows或SQL server和Windows(s)认证模式)、。 2.登陆的管理 创建一个登录用户 3.数据库用户的管理 登录用户只有成为数据库(Database User)后才能访问数据库。每个数据库的用户信息都存放在系统表Sysusers中,通过查看Sysusers表可以看到该数据库所有用户的情况。SQL Server的数据库中都有两个默认用户:dbo(数据库拥有者用户)和(dba)。通过系统存储过程或企业管理器可以创建新的数据库用户。 4.角色的管理 创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。 5.在学生表中定义主键、外键约束 6.在课程表的“课程名”字段上定义唯一约束 7.在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100. “课程号”字段只能输入数字字符 8.定义规则,并绑定到学生表的“性别”字段,使之只能取“男、女”值 9.在学生表中增加出生年月字段,定义缺省,并绑定到学生表的出生日期上,使之只能取当前日期。

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

(安全生产)数据库的安全性与完整性

数据库的安全性和完整性 一、实验目的和要求 1、理解数据库安全性和完整性的概念。 2、掌握SQL Server2000中有关用户、角色及操作权限管理等安全性技术。 3、掌握SQL Server2000中有关约束、规则、默认值的使用等完整性技术。 二、实验内容和步骤 ㈠数据库的安全性 1、SQL Server的安全模式 认证是指来确定登陆SQL SERVER的用户的登陆账号和密码是否正确,以此来验证其是否具有连接SQL SERVER的权限,但是通过认证阶段并不代表能够访问数据,用户只有在获取访问数据库的权限之后才能对服务器上的数据库进行权限许可下的各种操作。 ⑴设置SQL Server的安全认证模式:使用企业管理器来设置,步骤如下: Step1: 展开服务器组,右击需要设置的SQL服务器,在弹出菜单中选择“属性”。 Step2: 在弹出的SQL服务器属性对话框中,选择“安全性”选项卡。 Step3: 选择仅Windows选项(NT/2000验证模式) 或SQL Server和Windows选项(混合模式)。 注:设置改变后,用户必须停止并重新启动SQL Server服务,设置才生效。 如果设置成NT认证模式,则用户在登录时输入一个具体的登陆名时,SQL SERVER将忽略该登录名。 ⑵添加SQL Server账号:若用户没有Windows NT/2000账号,则只能为他建立SQL Server账号。 ①利用企业管理器 Step1: 展开服务器,选择安全性/登录。 Step2: 右击登录文件夹,出现弹出式菜单。 Step3: 在弹出式菜单中选择“新建登录”选项后,就会出现一个登录属性对话框。 step4: 在名称框中输入一个不带反斜杠的用户名,选中SQL Server身份验证单选按钮,并在密码框中输入口令(如下图所示)。

实验六 数据完整性

实验六数据完整性 学号: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) 二、实验内容 (1) 三、实验要点及说明 (1) 四、实现方法 (1) 五、实验结果 (2) 六、源程序清单 (4) 七、思考及总结 (5)

一、实验目的 通过本次实验,提高以下几个方面的能力 1. 创建新用户 2. 通过GRANT语句对新用户进行授权 3. 通过REVOKE语句完成权限的回收 4. 实体完整性的实现 5. 参照完整性实现 二、实验内容 1.完成教材中实例1-8 2.完成教材中相应于完整性的实例。 三、实验要点及说明 1.一定要熟练掌握GRANT语句与REVOKE语句的使用 2.一定要熟练掌握实体完整性与参照完整性控制 3.要读懂出错的提示信息 四、实现方法 未将创建的用户删除,有创建同一个用户。

删除localhost方法 五、实验结果 创建用户成功

登陆用户zhangsan 登陆用户zhangsan2 登陆用户lisi

用户zhangsan和zhangsan2信息显示用户lisi信息显示 分别给用户zhangsan和zhangsan2授权 授权之后查看zhangsan中信息 修改zhangsan2中数据 六、源程序清单 Create user 'zhangsan'@'%' identified by '1'; /*创建用户张三,密码为1*/ Create user 'zhangsan2'@'%' identified by password '*E6CC90B878B948C35E92B003C792C46C58C4AF40'; /*创建用户张三,密文定义密码为1*/

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

“实验室数据完整性”培训考试试卷 (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’;

数据库的安全性与完整性

4 数据库的安全性与完整性 数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得重要关注的方面。 数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。 一般说来,对数据库的破坏来自以下4个方面: (1)非法用户 非法用户是指那些未经授权而恶意访问、修改甚至破坏数据库的用户,包括那些超越权限来访问数据库的用户。一般说来,非法用户对数据库的危害是相当严重的。 (2)非法数据 非法数据是指那些不符合规定或语义要求的数据,一般由用户的误操作引起。 (3)各种故障 各种故障指的是各种硬件故障(如磁盘介质)、系统软件与应用软件的错误、用户的失误等。 (4)多用户的并发访问 数据库是共享资源,允许多个用户并发访问(Concurrent Access),由此会出现多个用户同时存取同一个数据的情况。如果对这种并发访问不加控制,各个用户就可能存取到不正确的数据,从而破坏数据库的一致性。 针对以上4种对数据库破坏的可能情况,数据库管理系统(DBMS)核心已采取相应措施对数据库实施保护,具体如下: (1)利用权限机制,只允许有合法权限的用户存取所允许的数据,这就是本章4.1节“数据库安全性”应解决的问题。 (2)利用完整性约束,防止非法数据进入数据库,这是本章4.2节“数据库完整性”应解决的问题。 (3)提供故障恢复(Recovery)能力,以保证各种故障发生后,能将数据库中的数据从错误状态恢复到一致状态,此即本章4.3节“故障恢复技术”的内容。 (4)提供并发控制(Concurrent Control)机制,控制多个用户对同一数据的并发操作,以保证多个用户并发访问的顺利进行,此即本章4.4节“并发控制”的内容。

实验室数据完整性

实验室数据完整性

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

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

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

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)掌握数据库约束的概念; (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 规则

相关文档
最新文档