实验4-数据库完整性设计
数据库完整性
实验报告
实验项目名称:数据库完整性
实验概述
1.实验目的
熟悉数据库的保护措施-完整性控制;选择若干典型的数据库管理系统产品,了解他们所提供的数据库完整性控制的多种方式与方法。
2.实验要求
实践实验示例中陈述的例题,在掌握命令操作的同时,也能掌握界面操作的方法,即在SQL Server集成管理器中实践各种完整性的创建与完整性的约束。
sp_unbindefaultphone,'teachers.telphone'
DROP DEFAULT phone
、利用T—SQL创建规则rule_name,使得教工姓名tname的长度必须大于等于4
CREATERULErule_nameAS@id>=4
、把规则rule_name绑定到教工表的教工姓名tname上
2.实验内容与关键SQL语句、实验结果等
(1)、实体完整性
、PRIMARY KEY约束
、UNIQUE约束
、IDENTITY属性
(2)、域完整性
、创建用户定义的数据类型
、NOT NULL
语句:CREATE TABLE ***
(****数据类型NOT NULL)
、CHECK约束
语句:CHECK(Ssex=‘男’OR Ssex=‘女’)
sp_bindrulerule_name,'teachers.tname'
、取消规则tule_name的绑定并删除规则
sp_unbindrulerule_name,'teachers.tname'
DROP RULE rule_name
3.疑难与未解决的问题
默认对象绑定语句无法执行
数据库安全性和完整性实验【模板范本】
实验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.实验步骤和实验结果。
数据库实验报告 表和数据完整性
Address nchar(30) not null
)ON PRIMARY
(3)设置book表中的book_id为主键,author表中的book_id为外键:
Alter table dbo.author with check
Add constraint fk_book_author foreign key(book_id)
(3)利用update语句为表booksales更新数据:
Update booksales set sellnum = 11
Where book_id = ‘m00011’
3.利用Transact-SQL语句为表booksales中的销售数量列sellnum创建规则“sellnum>=0”,并绑定规则到列sellnum。
References dbo.book(book_id)
(4)创建两个表的关系的步骤如下:
在author表的设计器界面右击book_id列,在弹出的菜单中执行“关系”命令,弹出如图3.1所示的“外键关系”对话框。
2.在test01数据库中利用Transact-SQL语句创建一图书销售表booksales(book_id nchar (6),sellnum int,selldate datetime )。分别利用insert、delete、update语句添加、删除和更新数据。
Price numeric(10,2)null,
Constraint pk_book primary key clustered
(book_id ASC )
)on primary
(2)创建表author的Transact_SQL语句:
实验四、数据库的完整性
实验四:数据库的完整性一、实验目的1.熟悉主键约束、外键约束、空值、惟一约束的使用方法;2.掌握默认值约束和默认对象的使用方法;3.掌握check约束及规则的使用方法;4.掌握触发器的概念、创建、修改和删除方法;5.了解inserted和deleted的作用及数据的引用;6.掌握各种触发器的工作过程。
二、实验环境SQL Server 企业版三、实验学时2学时四、实验内容及步骤(一)创建学生课程数据库和表Create database stu_triGouse stu_trigocreate table s(sno char(5)not null,sname char(10),ssex char(2),sage int,sdept char(10),ssum_credit tinyint)gocreate table c(cno char(5)not null,cname char(10),ccredit tinyint)gocreate table sc(sno char(5)not null,cno char(5)not null,grade tinyint)g o(二)主键约束--1.学生表--(1)主键的定义alter table s add constraint s_pk primary key(sno) go--(2)主键约束的违约检查和处理insert into s values('95001','李莹','女',21,'计科',0) insert into s values('95001','章张','男',22,'计科',0)--修改学号为,再次插入数据insert into s values('95002','章张','男',22,'计科',0)--(3)依次输入多个学生的记录insert into svalues('95003','陈华','女',22,'计科',0),('95004','吴华义','男',23,'计科',0),('95005','刘冠章','男',22,'计科',0),('95006','蒋婷','女',22,'网络',0),('95007','邱蔚六','男',21,'网络',0),('95008','王德柱','男',22,'网络',0),('95009','秦频','女',21,'网络',0),('95010','程少根','男',21,'网络',0)--2.课程表c--(1)主键的定义alter table c add constraint c_pk primary key(cno) --(2)主键的检查和处理(省)--(3)录入数据insert into cvalues('00001','计算机导论',2),('00002','高级语言',2),('00003','离算数学',3),('00004','数据结构',3),('00005','c#',2),('00006','面向对象',2),('00007','数据库原理',3),('00008','操作系统',3)--3.学生选课表--(1)主键的定义alter table sc add constraint sc_pk primary key(sno,cno)go--(2)主键约束的检查及处理insert into sc values('95001','00001',90)goinsert into sc values('95001','00001',86)go--(3)录入数据insert into scvalues('95001','00002',86),('95001','00003',92),('95001','00004',76),('95001','00005',86),('95002','00001',86),('95002','00002',80),('95002','00003',81),('95003','00001',88),('95003','00002',68),('95004','00001',96),('95005','00001',69)(三)参照完整性--1.定义学生选课表的学号为外键alter table sc add constraint sc_fk foreign key(sno)references s(sno) goalter table sc add constraint sc_fk_1foreign key(cno)references c(cno) go--2.参照完整性约束的检查--(1)向学生选课表中插入数据—学号外键的检查insert into sc values('95100','00001',90) go--(2)向学生选课表中插入数据—课程号外键的检查insert into sc values('95006','10000',90) go--(3)被参照表数据变化:删除学生表的某一个学生--1)删除学生选课表中的外键sc_fkalter table sc drop sc_fkgo--2)重新定义学生表的外键sc_fk及违约处理机制alter table sc add constraint sc_fk_sno foreign key(sno)references s(sno)on delete cascadeon update cascadego--3)查询学生选课表select*from sc--4) 删除学生表学号为95003的学生delete from s where sno='95003'go--5) 再次查询学生选课表select*from scgo--更新学生表中学号为的学生学号为-级联更新update s set sno=95105 where sno like'95005'go--查询学生选课表查看学生的学号是否改为select*from sc--(四) 用户定义完整性(省略非空约束)--1. 唯一性约束(学生姓名惟一)(1)约束的定义alter table s add constraint s_sname_unique unique(sname)(2)约束的检查和处理insert into s values('96001','李莹','女',26,'信管',0)go2. 检查约束(1)约束的定义alter table s add constraint s_c1check(sage>=12 and sage<=35)(2)约束的检查及处理insert into s values('96001','金林','男',9,'信管',0)go3. 默认约束--(1)约束的定义alter table s add constraint s_def1default'女'for ssex(2)约束的检查及处理insert into s(sno,sname,sdept,ssum_credit)values('96002','胡华林','信管',0)这时没有给性别赋值,但该学生的性别取了默认值“女”(五)触发器--1.insert触发器--(1)触发器的定义:--当向sc表中插入一个学生的成绩时,将s表中该学生的总学分加上添加的课程的学分。
数据库完整性实验报告
数据库完整性实验报告数据库完整性实验报告引言数据库完整性是指数据库中数据的准确性、一致性和有效性。
在数据库中,完整性是非常重要的,它保证了数据的可靠性和可信度。
本实验报告旨在介绍数据库完整性的概念、重要性以及实验过程和结果。
一、数据库完整性的概念和重要性数据库完整性是指数据库中的数据应符合规定的约束条件,不应存在冲突、矛盾或不一致的情况。
它包括实体完整性、参照完整性和用户定义的完整性。
1. 实体完整性实体完整性是指数据库中的每个实体都必须具有唯一的标识符。
在关系型数据库中,实体完整性通常通过主键来实现。
主键是一个能唯一标识实体的属性或属性组合,它保证了每个实体的唯一性。
2. 参照完整性参照完整性是指数据库中的外键必须引用已存在的主键。
外键是一个表中的属性,它引用了另一个表的主键。
参照完整性保证了表与表之间的关联关系的正确性和一致性。
3. 用户定义的完整性用户定义的完整性是指用户自定义的约束条件必须满足。
例如,一个表中的某个属性必须满足某种条件,如非空、唯一等。
用户定义的完整性保证了特定业务需求的满足。
数据库完整性的重要性在于保护数据的可靠性和一致性。
它可以防止数据的错误、冲突和不一致,确保数据的准确性和可信度。
同时,数据库完整性也为数据库的安全性提供了基础,防止非法访问和恶意操作。
二、实验过程本实验使用MySQL数据库进行实验。
1. 创建数据库和表首先,创建一个名为"students"的数据库,并在其中创建一个名为"grades"的表。
表"grades"包含三个字段:学生ID、课程名称和成绩。
2. 添加完整性约束在表"grades"中,为学生ID字段添加主键约束,保证每个学生ID的唯一性。
同时,为课程名称字段添加非空约束,保证每个课程都有名称。
3. 添加参照完整性约束在表"grades"中,为学生ID字段添加外键约束,引用了另一个表"students"中的主键。
数据库的完整性和安全性实验报告
信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(1)掌握数据库约束的概念;(2)熟悉SQL SERVER 的完整性约束技术。
(3)了解SQL SERVER 的违反完整性处理措施。
(4)了解登录账户的管理理念与具体方法。
(5)了解数据库用户的管理的要则。
(6)了解用户权限管理的内涵与方法。
二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤(一)测试完整性运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。
然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。
1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2)PRIMARY KEYdnameV ARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept V ALUES('D1','计科系');----正常插入INSERT INTO dept V ALUES('D2','电信系');----正常插入INSERT INTO dept V ALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则INSERT INTO dept V ALUES('D2','机械系'); ----违反dno 主键(UNIQUE )INSERT INTO dept V ALUES('D3',NULL); ----违反dname 的NOT NULL 规则INSERT INTO dept V ALUES('D3','计科系'); ----违反dname 的UNIQUE 规则INSERT INTO dept V ALUES('D3','机械系');----正常插入(2)删除数据DELETE FROM dept WHERE dno='D3';----正常删除(3)修改数据UPDA TE dept SET dname='计算机科学系' WHERE dno='D1';----正常修改UPDA TE dept SET dname='电信系' WHERE dno='D1'; ----违反dname的UNIQUE规则UPDA TE dept SET dname=NULL WHERE dno='D1'; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:sno CHAR(2) PRIMARY KEYsname V ARCHAR(20) NOT NULL,ssex CHAR(2) NOT NULL, CHECK(ssex in('男','女'))sage INT NOT NULL,dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student V ALUES('S1','张刚','男',20,'D1');----正常插入INSERT INTO student V ALUES('S2','李梅','女',21,'D2');----正常插入INSERT INTO student V ALUES('S2','吴敏','男',20,'D1'); ----正常插入INSERT INTO student V ALUES(NULL,'吴敏','男',20,'D1'); ----违反sno 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','男',NULL,'D1'); 违反sage 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','M',20,'D1'); 违反ssex 的CHECK规则INSERT INTO student V ALUES('S3','吴敏','男',20,'D3'); ----正常插入INSERT INTO student V ALUES('S3','吴敏','男',20,'D1');----正常插入(2)删除数据DELETE FROM student WHERE sno='S3'; ----正常删除(3)修改数据UPDA TE student SET sname='赵强',dno='D2' WHERE sno='S1'-----正常修改UPDA TE student SET ssex='F' WHERE sno='S1'; -----违反ssex的CHECK 规则UPDA TE student SET sno='S2' WHERE sno='S1'; -----违反sno的主键(UNIQUE)规则UPDA TE student SET dno='D3' WHERE sno='S1'; 违反dno 的外键规则UPDA TE dept SET dno='D3' WHERE dno='D1';----检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno='D2';----检查dno的外键ON DELETE规则,观察运行后效果(二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。
数据库的完整性实验报告
数据库的完整性实验报告数据库的完整性实验报告引言:数据库的完整性是指数据库中存储的数据必须满足预定的一致性要求,包括实体完整性、域完整性、参照完整性和用户定义的完整性。
本实验旨在通过设计一个简单的数据库,并通过实际操作验证其完整性。
一、实验目的本实验的目的是通过设计和操作数据库,了解数据库的完整性概念,并掌握如何保证数据的完整性。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统上进行实验。
三、实验步骤1. 创建数据库首先,我们需要创建一个数据库来存储我们的数据。
在MySQL中,可以使用以下命令创建一个新的数据库:```CREATE DATABASE integrity;```2. 创建数据表接下来,我们需要创建一个数据表来存储我们的数据。
假设我们要创建一个学生信息表,包括学生的学号、姓名和年龄。
可以使用以下命令创建该表:```USE integrity;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```3. 插入数据现在,我们可以向刚刚创建的数据表中插入一些数据。
例如,我们可以插入几个学生的信息:```INSERT INTO students (id, name, age) VALUES (1, '张三', 20);INSERT INTO students (id, name, age) VALUES (2, '李四', 22);INSERT INTO students (id, name, age) VALUES (3, '王五', 21);```4. 实体完整性实体完整性是指每个实体都必须具有一个唯一的标识符。
在我们的学生信息表中,学生的学号是唯一的标识符。
为了保证实体完整性,我们可以在创建表时使用PRIMARY KEY约束来定义学号为主键:```CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```这样,如果有重复的学号插入到表中,系统会报错并拒绝插入。
数据库实验报告 数据控制(完整性部分) 实验四
题目:实验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;解决方案:待解决??。
实 验 四 数据库完整性与安全性
实验四数据库完整性与安全性一.实验目的:理解并掌握利用SQL Server 2000进行完整性和安全性控制的基本操作和命令。
并熟悉触发器的使用。
二.实验属性:设计性。
三.实验仪器设备及器材:装有SQL Server 2000的电脑。
四.实验要求1. 预习SQL Server 2000中触发器的概念和使用方法,以及利用create trigger语句定义触发器的方法。
2. 预习SQL Server 2000中安全性架构,以及创建安全性账户和数据库角色等的方法。
2. 实验前仔细阅读实验指导书,理解实验要求。
3. 实验中要求完成如下工作(其中涉及的表是实验一中建立的表):五.实验内容1.触发器的使用1.1创建一个insert触发器,当在Student表中插入一条新记录时,给出‘你已经插入了一条新记录!!!’的提示信息。
1.2 创建一个insert触发器,当在SC表中插入一条新记录时,Sno和Cno必须是student和Course中存在的学号和课程号,且Grade应该在0----100之间。
1.3 创建一个after触发器,在Student表中删除某学生的记录时,删除其相应的选课记录。
1.4 创建一个instead of 触发器,当在Course表中删除记录时,不允许删除Course 表中的数据。
2. 数据库安全性2.1 在企业管理器中创建数据库用户U1、U2、U3和数据库角色R1、R2、R3,并对其操作权限进行设置。
2.2 使用SQL语言对数据库用户和角色的权限的授予。
(1)把查询Student表的权限授给用户U1:(2)把对Student表和Course表的全部操作权限授予用户U2和U3(3)把对Student表的Insert操作权限授予用户U2,并允许将此权限再授予其它用户。
2.3 使用SQL语言进行数据库对用户和角色权限的收回。
2.3.1把用户U2对Student表的Insert的权限收回。
2.3.2 收回所有用户对表student的查询权限2.3.3 通过角色来实现将一组权限授予一个用户。
实验四数据库完整性实验报告
实验四数据库完整性实验报告一实验目的1. 熟悉通过SQL对数据进行完整性控制;2. 针对具体应用要求,设计相应的完整性约束。
二实验工具SQL Server 2005利用SQL Server 2005 SSMS及其SQL查询编辑器。
三实验内容和要求使用SQL对数据进行完整性控制(3类完整性、CHECK短语、CONSTRAIN 子句、触发器)。
用实验证实,当操作违反了完整性约束条件时,系统是如何处理的。
根据以下要求认真填写实验报告,记录所有的实验用例。
具体操作内容:创建以下两个关系模式,并分别插入相应的数据。
职工(职工号,姓名,年龄,职务,工资,部门号)其中职工号为主码;部门(部门号,名称,经理名,地址,电话号码),其中部门号为主码;(1)使用SQL语言定义这两个关系模式,并完成以下完整性约束条件的定义;(a)定义每个模式的主码;(b)定义参照完整性;(c)定义职工的年龄不能小于18岁,并且不能超过60岁;(d)职工的姓名不能为空;(e)职工的工资不能为空,且不能小于800;(f)部门名称不能为空且不能重复,定义约束名为UK_dName;(2)使用SQL语言分别向两个表中插入7行记录,验证上面的各种约束条件;(3)将职工的年龄改为不能小于16岁,并且不能大于65岁;(4)定义一个表tbl_Emp_Log(eNO, eSalary, Username,ModiDate);在职工表上定义修改和插入数据的触发器,将插入的职工号和工资数据填入到Emp_log表中,并记录操作的用户和插入时间;如果修改了职工的工资,也把职工号和修改后的工资数据填入到Emp_log表中,并记录操作的用户和插入时间。
使用SQL语句向职工表中插入数据和修改工资,验证触发器的效果。
四实验报告4.1 实验环境:Windows XPMicrosoft SQL server Management Studio 20054.2 实验内容与完成情况:--新建数据库create database workgouse work--创建以下两个关系模式,并分别插入相应的数据。
数据库完整性实验报告
数据库完整性实验报告引言数据库完整性是数据库管理系统中的一个重要概念,用于确保数据库中数据的准确性、有效性和一致性。
本实验旨在通过设计和实现一系列完整性约束,来验证数据库完整性的实际应用。
实验目标本实验的目标是设计并实现以下几种完整性约束:1.实体完整性约束2.参照完整性约束3.用户自定义完整性约束实验环境本实验使用了以下工具和环境:•数据库管理系统:MySQL•编程语言:Python•集成开发环境:Jupyter Notebook实验步骤步骤一:数据库设计首先,我们需要设计一个符合实验需求的数据库。
我们选择一个简单的学生管理系统作为示例,包含以下两个实体:1.学生(Student):包含学生的学号、姓名和年龄。
2.课程(Course):包含课程的课程号、课程名和学分。
步骤二:实体完整性约束实体完整性约束用于保证每个实体在数据库中都有唯一的标识。
在本实验中,我们将为学生实体添加一个主键约束,保证每个学生的学号是唯一的。
CREATE TABLE Student (id INT PRIMARY KEY,name VARCHAR(50),age INT);步骤三:参照完整性约束参照完整性约束用于保证关系数据库中的引用一致性。
在本实验中,我们将为课程实体添加一个外键约束,引用学生实体的主键。
CREATE TABLE Course (id INT PRIMARY KEY,name VARCHAR(50),credits INT,student_id INT,FOREIGN KEY (student_id) REFERENCES Student(id));步骤四:用户自定义完整性约束用户自定义完整性约束是根据具体业务需求自定义的约束条件。
在本实验中,我们将为课程实体添加一个自定义约束,保证学分必须大于等于0。
ALTER TABLE CourseADD CONSTRAINT chk_credits CHECK (credits >=0);实验结果通过以上步骤,我们已经成功设计并实现了实体完整性约束、参照完整性约束和用户自定义完整性约束。
数据库完整性实验报告
数据库完整性实验报告第一篇:数据库完整性实验报告实验报告一、实验题目数据库完整性二、实验要求1)建立一个被参照关系test_main,其中id为主键。
.CREATE TABLE test_main(idINT, valueVARCHAR(10), PRIMARY KEY(id));2)建立一个参照关系test_sub,其中id为主键。
CREATE TABLE test_sub(idINT, main_id INT, valueVARCHAR(10), PRIMARY KEY(id));3)使用如下SQL语句插入数据--插入测试主表数据.INSERT INTO test_main(id, value)VALUES(1, 'ONE');INSERT INTO test_main(id, value)VALUES(2, 'TWO');--插入测试子表数据.INSERT INTO test_sub(id, main_id, value)VALUES(1, 1, 'ONEONE');INSERT INTO test_sub(id, main_id, value)VALUES(2, 2, 'TWOTWO');4)使用add constraint语句建立test_ sub表main_id到test_main表id的外键约束 5)删除test_main表中id=1的记录 6)测试完毕后,删除外键约束重新建立外键约束,要求删除主表的记录时候,同时删除子表中相应引用它的记录7)重新尝试第5步中的操作,之后检索test_sub 表,会出现什么结果?测试完毕后,删除外键约束8)重新建立外键约束,要求更新主表的主键时候,同时更新子表外键9)测试更新主表数据,将id=1的记录的id值设为5。
检查test_sub表中的数据是否被同步更新,测试完毕后,删除外键约束10)再次创建外键约束,要求删除主表的时候,同时将子表的main_id 设置为 NULL 11)测试删除主表test_main中id=2的数据,测试检索子表test_sub 测试完毕后,删除外键约束三、实验内容1)CREATE TABLE test_main(idINT, valueVARCHAR(10), PRIMARY KEY(id));2)CREATE TABLE test_sub(idINT, main_id INT, valueVARCHAR(10), PRIMARY KEY(id));3)INSERT INTO test_main(id, value)VALUES(1, 'ONE');INSERT INTO test_main(id, value)VALUES(2, 'TWO');INSERT INTO test_sub(id, main_id, value)VALUES(1, 1, 'ONEONE');INSERT INTO test_sub(id, main_id, value)VALUES(2, 2, 'TWOTWO');4)ALTER TABLE test_subADD CONSTRAINT main_id_cons FOREIGN KEY(main_id)REFERENCES test_main(id);5)delete from test_main where id='1' 无法执行6)alter table test_subdrop constraint main_id_consALTER TABLE test_subADD CONSTRAINT main_id_cons FOREIGN KEY(main_id)REFERENCES test_main(id)on delete cascade;7)delete from test_main where id='1';结果是test_main,和test_sub中的id=1的都被删除了altertable test_subdrop constraintmain_id_cons;8)首先我把上面操作所删除的加上了INSERT INTO test_main(id, value)VALUES(1, 'ONE');INSERT INTO test_sub(id, main_id, value)VALUES(1, 1, 'ONEONE');ALTER TABLE test_subADD CONSTRAINT main_id_cons FOREIGN KEY(main_id)REFERENCES test_main(id)on update cascade;9)update test_main set id='5' where id='1' 结果是main_id也变为了5。
实验四 数据的完整性安全性
徐龙琴、刘双印设计制作实验四数据完整性安全性数据的完整性、安全性实验四实验目的一、掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。
1.SQL Server中有关用户、角色及操作权限的管理方法.掌握2.学会创建和使用规则、缺省。
3.二、实验内容1 数据库的安全性实验,通过SSMS设置SQL Server的安全认证模式.实现对SQL Server的用户和角色管理,设置和管理数据操作权限.2数据库的完整性实验。
使用Transact-SQL设计规则、缺省、约束和触发器。
三、实验要求.数据的完整性实⑴用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):学生情况表(XSQK)列名数据类型长度是否允许为空值N 6 Char 学号N 8 Char 姓名N 性别 Bit1smalldatetime 出生日期 2Char 10 专业名Char 10 所在系Y11char联系电话create database xscjuse xscjcreate table xsqk(学号char(6)not null,姓名char(8)not null,性别bit not null,出生日期smalldatetime,专业名char(10),所在系char( 10),null))11(char联系电话徐龙琴、刘双印设计制作实验四数据完整性安全性课程表(KC)列名数据类型长度是否允许为空值N Char 课程号 3N Char 课程名 2010 Char 教师开课学期 1 TinyintTinyint 1 学时NTinyint学分 1create table kc(课程号char(3)not null,课程cha2nonull,教师char(10),开课学期tinyint,学时tinyint,学分tinyint not null)成绩表(XS_KC)数据类型长度是否允许为空值列名Char N 学号 6Char 课程号N 3Smallint成绩2create table xs_kc(学号char(6)not null, 课程号char(3)not null,)smallint成绩实验四数据完整性安全性徐龙琴、刘双印设计制作⑵数据的实体完整性实验①用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健②用T-SQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健alter table xs_kcadd primary key(学号,课程号)实验四数据完整性安全性徐龙琴、刘双印设计制作⑶数据的参照完整性实验①用SSMS为成绩表(XS_KC)创建外键FK_ XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号②用T-SQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)表的课程号alter table xs_kcadd constraint FK_KC_ID foreign key (课程号)references kc(课)程号.实验四数据完整性安全性徐龙琴、刘双印设计制作⑷数据的用户定义完整性实验①用T-SQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束alter table xsqkadd constraint ch_xsqk_unique unique(姓名))的性别列创建一个检查约束,使得性别的值为男或女XSQK为学生情况表(SSMS②用.实验四数据完整性安全性徐龙琴、刘双印设计制作③用T-SQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0~100)之间alter table xs_kcadd constraint ch_grade check(成绩between 0 and 100)60)的学时列创建一个缺省约束,缺省值为KC语句课程表(SSMS④用.实验四数据完整性安全性徐龙琴、刘双印设计制作⑤用T-SQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为2alter table kcadd constraint default_kc_credit default 2 for学分的格式,并分别将其导入数据库的各个表中:Excel2.将如下数据分别转换成文本数据或.徐龙琴、刘双印设计制作数据完整性安全性实验四):学生情况表(XSQK学号姓名性别出生日期专业所在系联系电话88297147 020101 杨颖 1980-7-20 0 计算机应用计算机88297147 计算机计算机应用 1981-1-15 020102 方露露088297151 1980-2-20 俞奇军 1 信息管理020103 计算机 88297151 胡国强1 1980-11-7 020104 计算机信息管理88297152 020105 1980-7-29 薛冰1 水利工程水利系 88297161 电子商务经济系1981-3-10 020201 0 秦盈飞88297062 电子商务经济系 1980-9-25 0 020202 董含静88297171 电子商务经济系1980-8-7 1 020203 陈伟 88297171房建1980-7-20020204陈新江1水利系实验四数据完整性安全性徐龙琴、刘双印设计制作实验四数据完整性安全性徐龙琴、刘双印设计制作:)KC课程表(.徐龙琴、刘双印设计制作实验四数据完整性安全性课程号课程名教师开课学期学时学分3 计算机原理2 45 101 陈红3 3 102 王颐计算方法 454 60 2 103 操作系统徐格5 3 数据库原理及应用应对刚104 753 网络基础吴江江4 105 456 高等数学孙中文 1 90 1066 英语陈刚107 1 90 5VB赵红韦3108程序设计 70实验四数据完整性安全性徐龙琴、刘双印设计制作实验四数据完整性安全性徐龙琴、刘双印设计制作:)XS_KC成绩表(.徐龙琴、刘双印设计制作数据完整性安全性实验四学号课程号成绩85 020101 10187 020101 102 88 107 020101 58 101 02010263 020102 10276 020104 10755 020202 103 80 108 020202 57 103 02020371020204103实验四数据完整性安全性徐龙琴、刘双印设计制作3. 理解默认值的概念和作用①用语句创建名为Xi_default,值为“计算机系”的默认值create default Xi_default as'计算机系'实验四数据完整性安全性徐龙琴、刘双印设计制作②将默认值Xi_default绑定到学生表中的所在系的属性列上sp_bindefault Xi_default,'xsqk.所在系'③解除学生表所在系的属性列上的默认值sp_unbindefault'xsqk.所在系'④删除默认值Xi_defaultdrop default Xi_default注:创建默认值的格式: create default 默认值名 as ‘默认值'默认值绑定的格式:sp_bindefault 默认值名, <'表名.列名'︱自定义数据类型名称>解除默认值绑定格式:sp_unbindefault <'表名.列名'︱自定义数据类型名称>删除默认值格式:Drop default 默认值名4.理解规则的概念和作用①用语句创建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6create rule rule_kkxq as@ss in(1,2,3,4,5,6)②将“rule_ kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109,'C语言','李方',8,64,4)sp_bindrule rule_kkxq,'kc.开课学期'不能正常执行因为数值8不在规则rule_kkxq所绑定的数据范围内③若不解除规则,能否将规则rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_ kkxq :sp_unbindrule'kc.开课学期'drop rule rule_kkxq注:创建规则的格式: create rule 规则名 as @列名约束条件规则绑定的格式: sp_bindrule 规则名, <'表名.列名'︱自定义数据类型名称>解除规则绑定格式:sp_unbindrule <'表名.列名'︱自定义数据类型名称>删除规则格式:Drop rule 规则名5.数据的安全性实验:(1)设置身份验证模式①写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采用Windows身份验证还是混合身份验证模式。
数据库原理实验报告-数据库的完整性
实验题目四、数据库的完整性一、实验目的1、掌握使用约束实现数据完整性的方法;2、掌握使用触发器实现数据完整性的方法;二、实验内容和要求1、设置主键约束、外键约束、唯一约束、非空约束、CHECK约束等;2、使用图形用户界面创建触发器、使用SQL语言创建触发器,实现完整性控制;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/XP或更高版本;2.数据库管理系统:SQL Server 2005或更高版本;四、实验方法、步骤及结果测试(一)、根据实验一中的基本表,使用约束创建数据完整性。
要求:1、删除teaching中的基本表。
按实验一中的各表的定义,重新创建student表、course1)创建各基本表的先后顺序有什么影响?2)在创建各表过程中,遇到了什么问题,是如何解决的?3、通过“ALERT TABLE”语句,完成下列操作:1)为student表的sname列添加唯一约束,并命名。
2)删除course表的非空约束。
3)为sc表的score列添加约束,取值范围为[0,100]。
4)定义域title_domain,取值为{助教,讲师,副教授,教师},检查SQL Server是否3、检查student表sname列的唯一约束插入新的数据记录对新建的唯一约束进行检查,写出相应的SQL语句,并将检查的执4、检查sc表score列的CHECK约束插入不在定义范围的数据记录检查约束。
写出相应的SQL语句,并将检查执行结果截(二)、通过图形用户界面的方式创建各类约束,定义数据的完整性1、删除sc表的外键约束。
在表设计器中,单击工具栏中的“表和索引属性”按钮,打开2、删除speciality的spname字段唯一约束。
然后在表设计器中,单击工具栏中的“表和3、在表设计器中,单击工具栏中的“表和索引属性”按钮,打开“属性”对话框,在“CHECK 约束”选项中,为teacher表中的title列设置检查约束,定义取值范围为{助教、讲师、副(三)、使用触发器实现数据的完整性1、在student表中创建触发器,实现student和sc表的级联删除。
数据库实验报告- 数据完整性
实验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的数字。
(1)复制学生表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。
完成以下代码实现该操作。
SELECT * INTO stu_phone FROM 学生表ALTER TABLE stu_phone ADD 电话号码 CHAR(7)NULL stu_phone表结构如图1-10所示。
图1-10 stu_phone表结构SELECT*INTO stu_phone FROM学生表ALTER TABLE stu_phone ADD电话号码CHAR(7)NULL(2)创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。
CREATE rule phone_ruleAS@电话号码LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'检验:电话号码为8位时无法插入!电话号码为7位时可以插入!(3)使用系统存储过程sp_hndrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。
数据库完整性实验报告
1实验八:数据库完整性1.1实验背景“存储在数据库中的所有数据值均是正确的状态。
如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。
”这是SQL Server2000中给出数据库完整性的解释,但是我们要问两个问题:●什么是数据正确的状态?●如何确保数据是正确的?对于第一个问题,确实很难回答,因为:“世界上所有事物本无正确与错误”,但是一些不符合逻辑的、前后矛盾的、没有满足人们需求的,可以说是“不正确的”。
如:一个人的年龄是“-20岁”,这就是不符合逻辑的;在一个地方,这个人叫“张三”,但是换了个地方却记成“张山”,这就是矛盾;如果一笔订单金额没有达到1万元,却给记成打了8折,实际只能打9折,这就是不满足需求。
造成上述各种不正确的原因是什么呢?无外乎是人们输入错误、业务不熟悉、或者是捣乱分子故意为之。
那么关键问题是我们如何在数据库中预防这种不正确的情况呢?这就是要问的第二个问题。
这需要靠数据库管理系统(DBMS)提供一套完整性约束机制来预防这种情况的发生。
但是人们常说一句话“人无完人,金无足赤”,同样,要完全靠DBMS帮我们防住所有的不正确,本身就是不正确的,这不符合辩证哲学的观点。
这说明DBMS只能是尽可能的预防。
那么人们要深入研究有哪些完整性约束,DBMS应该提供哪些保障机制。
首先,完整性约束主要有以下几种:●实体完整性约束●参照完整性约束●用户定义完整性约束其次,在关系型数据库中保证上述完整性约束的方法有以下几种:表 1 数据库提供的约束我们可以看出主码、外码是我们经常接触到的数据库提供的约束方法,也是最重要的约束。
但是,外码约束并没有我们想象那样简单,即只要把外码关系建立起来就行了,还要考虑到约束强度的问题:表2参照完整性约束的类型与强度那么,用户定义的参照完整性如何实现?一般的DBMS都提供了相应的对策,如:Check约束、Null约束、索引约束、触发器、存储过程等。
SQL Server 中还提到了域约束。
数据库实验4-数据完整性控制
5.触发器 触发器可以看成是一类特殊的存储过程,在满足某个特定条件时自
动触发执行,是提高数据库服务器性能的有力工具。 触发器分为三类,更新触发器、插入触发器和删除触发器。 能够定义触发器的用户有表的所有者、系统管理员、拥有创建触发
器权限且拥有对操作对象相应操作权限的用户。 1) 定义表TAB,并在其上定义触发器TR1,在对TAB的插入和更新前
SAGE NUMERIC(3) CONSTRAINT C4 CHECK(SAGE<30),
CONSTRAINT STUDENTKEY PRIMARY KEY(SNO) );
2) 修改表student中的完整性约束,去掉对性别的限制,并将对年龄 的限制由小于30改为小于40。
ALTER TABLE STUDENT DROP CONSTRAINT C3; ALTER TABLE STUDENT DROP CONSTRAINT C4; ALTER TABLE STUDENT ADD CONSTRAINT C4 CHECK(SAGE<40);
的值只允许取“男”或“女”;定义表sc,属性GRADE的值在0~100之 间 Student表和sc表的其他信息参加上面的例子 4) 用户定义的元组上约束条件 CHECK短语不仅能够定义属性上的约束条件,而且还能允许用户 定义元组级的约束条件。 定义表student,要求当学生性别为男时,其名字不能以Ms.打头。其 他信息如之前的例子。 4.CONSTRAINT完整性约束命名子句 在定义表时利用约束命名子句对完整性约束条件命名,能够灵活地 增加或删除一个完整性约束条件。 1) 定义表student,要求学号在90000~99999之间,姓名不能取空值, 年龄小于30,性别只能是“男”或“女”。要求全部用约束命名子句 实现,主码约束也要用约束命名子句实现,列信息见之前例子 2) 修改表student中的完整性约束,去掉对性别的限制,并将对年龄 的限制由小于30改为小于40。
实验4数据库的安全性、完整性(一)2024
实验4数据库的安全性、完整性(一)引言:数据库的安全性和完整性是数据库管理系统中非常重要的两个方面。
安全性指的是确保数据库的数据不会被非授权的人员访问和篡改,而完整性则指的是数据库中的数据应该保持一致性和准确性。
本文将从数据库的访问控制、身份验证、加密、备份与恢复以及错误处理等五个方面详细介绍数据库的安全性和完整性。
正文:1. 数据库的访问控制- 实施用户和角色管理,限制不同用户对数据库资源的访问权限- 设置访问控制策略,对数据库中的敏感数据进行权限限制- 防止恶意用户通过攻击手段绕过访问控制机制2. 身份验证- 强制用户使用强密码,并定期更换密码以提高安全性- 使用双因素身份验证,如组合使用密码和指纹- 实施账号锁定机制,限制用户连续登录失败的次数3. 数据库的加密- 对敏感数据进行加密,并存储加密后的数据,以防止数据泄露- 使用传输层安全协议(TLS/SSL)来加密数据库与应用程序之间的通信- 使用列级加密技术来进一步保护数据库中的敏感数据4. 数据库的备份与恢复- 定期备份数据库,以防止数据丢失- 将备份数据存储在安全的地方,防止被未经授权的人员访问- 定期测试备份数据的恢复能力,确保备份数据的完整性和可用性5. 数据库的错误处理- 实施日志记录机制,记录数据库操作的详细信息,以便追踪和审计- 对异常情况进行及时响应和处理,防止安全漏洞的扩大- 与安全专家进行合作,定期进行安全漏洞扫描和修复工作总结:数据库的安全性和完整性是保障数据库管理系统正常运行和数据安全的重要方面。
通过实施访问控制、身份验证、加密、备份与恢复以及错误处理等措施,可以有效地保护数据库的安全性和完整性,防止非授权的访问和数据篡改,保障数据的一致性和准确性。
因此,合理的数据库安全措施是保障数据库运行的重要保证。
数据库安全性及完整性实验报告
数据库安全性及完整性实验报告
一、实验简介
一般来说,数据库的安全性及完整性是指数据库实际上实施的安全性、有效性、正确性和可靠性的控制。
当下的关注点是能够确保数据的有效性、正确性与可靠性,以及确保数据的安全性与完整性。
除此之外,还必须尽
量减少数据被篡改及窃取的可能性,使得数据向客户端分发及共享时不会
受到攻击。
本文旨在测试数据库的安全性及完整性,以及评估对于数据库
的安全性及完整性的影响。
二、实验目的
实验的目的是测试数据库的安全性及完整性,以及评估对于数据库的
安全性及完整性的影响。
三、实验内容
1、建立测试环境
为了测试数据库的安全性及完整性,首先我们需要建立一个测试环境,该测试环境包括:安装和配置数据库服务器,建立数据库,建立表、字段,插入一些测试数据,建立客户端访问数据库的程序。
2、测试数据库的安全性
在测试阶段,我们需要测试数据库的安全性,这个测试有两个方面:(1)授权:测试用户是否可以正确访问指定的数据库和表,而不受
限制。
(2)身份认证:测试数据库服务器的安全性,检查服务器是否能够正确实施身份认证,保证只有授权用户可以访问数据库。
3、测试数据库的完整性。
万常选版-数据库实验报告-4-数据库完整性
实验4:数据库完整性第1个实验.完整性定义——第6章实验十重新创建BookDB数据库中5张基本表,要求完成以下完整性约束:(1)创建列级约束:分别为BookClass表、Book表、Reader表建立主键。
(2)创建列级约束:为Borrow表的借阅日期设置默认值为系统当前日期。
(3) 创建列级约束:给Reader表创建约束,要求读者编号共8位,以R开头,后续四位为当前系统时间的年份,最后三位为流水号,如R。
(4)创建列级约束:给Reader表中读者编号建立约束,要求性别为女或男。
(5)创建元组级约束:为Reader表创建约束,要求给借书数量设置默认值0,身份证号要求唯一。
(6)创建元组级约束:为Reader表创建约束,要求读者年龄在18岁以上,且读者借书数量不得超过8本。
(7)创建元组级约束:为Book表创建约束,要求图书编号共10位,以B开头,后续四位为当前系统时间的年份,最后五位为流水号,如B。
(8)创建元组级约束:为Book表创建约束,要求图书单价在10元至80元之间。
(9)创建元组级约束:为Borrow表创建约束,要求图书归还日期大于借阅日期。
(10)创建表级约束:为Borrow表创建外键。
第2个实验.完整性检查——第6章实验十一分析下列更新操作对关系完整性约束的影响,如果更新操作违背了完整性约束条件,请给出合理处理方法。
(1)给BookClass表插入元组('001','机械类')。
(2)给Reader表插入元组('R','欧阳','M','','欧氏公司',0)。
(3)给Borrow表插入元组('R','B','','',null)(4)删除读者R的信息。
(5)删除读者R的信息。
(6)将R读者所借图书B的借阅日期更新为2012年4月22日。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 数据完整性设计
【实验目的】
(1)掌握通过添加约束来保证数据的完整性
(2)理解用触发器来保证数据的完整性
(3)掌握触发器的编写与执行方式。
(4)掌握触发器的应用。
【实验平台】
SQL Server 2000或2005
【实验内容及要求】
1.创建一个触发器Test1,要求每当在学生表中修改数据时,将向客户端显示一条“记录
已修改!”的消息。
写出相应的触发语句。
2.修改第1题所定义的触发器Test1,使其在学生表中删除数据时显示“记录已删除!”消
息。
写出相应的触发语句。
3.使用SQL命令删除触发器Test1。
4.创建触发器update_trig ,当修改学生表中的学号字段后,自动修改选课表中相应的学
号。
写出相应的触发语句。
(提示:如果选课表上建的有外码约束,要先删除外码约束。
)(为了不影响后面的题,请删除触发器update_trig)
5.在选课表上创建一个触发器update_trig1 ,若对学生的学号和课程号列修改,则给出提
示信息,并取消修改操作。
写出相应的触发语句。
(为了不影响后面的题,请删除触发器update_trig1)
6.在学生表上创建触发器del_trg,当删除学生表中某一个学生的记录时,能自动从选课
中删除掉该学生的所有选课记录。
写出相应的触发语句。
实验4 报告
实验心得:
通过本次试验掌握通过添加约束来保证数据的完整性,并理解用触发器来保证数据的完整性,也逐步掌握触发器的编写与执行方式,也掌握触发器的应用。