数据库完整性管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北华航天工业学院《数据库原理与应用》

实验报告

报告题目:数据库完整性管理

作者所在系部:计算机科学与工程系

作者所在专业:网络工程

作者学号:20114052203

作者姓名:郭豪

指导教师姓名:李建义

完成时间:2013.05.10

北华航天工业学院教务处制

数据库完整性管理

一、实验目的

1、理解数据库完整性约束机制;

2、掌握创建、修改和删除完整性约束的方法;

3、掌握创建和删除触发器的方法。

二、实验内容

(一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。

(二)约束的创建和管理

1、使用SQL语句创建图书表(tb_booknew),要求为各字段选择合适的数据类型及名称,其中“图书编号”字段为主码;“类别编号”字段为外码,删除图书类别信息表中记录时级联删除图书信息表中对应的记录;书名不允许空值;库存数限制的25到100之间。

2、使用SQL语句创建借阅表(tb_borrownew),要求为各字段选择合适的数据类型及名称,其中“图书编号”和“读者编号”的组合值为主码。

3、使用SQL语句为图书表(tb_booknew)中书名字段增加唯一性约束。

4、使用SQL语句将第1题的库存数限制修改为30到80之间。

5、使用SQL语句删除第3题增加的约束。

(三)触发器的创建和管理

1、使用SQL语句创建一个名为“借阅信息插入修改_TRIG”的触发器,要求在“借阅信息表”中插入或修改记录时触发该触发器,检查“归还日期”字段修改是否超过3个月,如果超过给出相应提示,不超过给出相应提示(“插入记录成功”或“修改记录成功”)。对“借阅信息表”进行插入或修改操作,验证触发器的执行情况。

2、使用SQL语句创建一个插入、更新类型的触发器“图书信息_TRIG”,当“图书信息表”中插入或修改记录时,触发该触发器,检查库存册数是否大于0,若不大于0,则撤销插入和修改操作。在“借阅信息表”中插入或修改一条记录,给定的库存册数值为-1,验证触发器的执行情况

3、使用SQL语言删除“借阅信息插入修改_TRIG”触发器。

三、实验步骤

(一)附加过程略,

(二)

1,创建表tb_booknew,代码及截图

create table tb_booknew

(

book_no char(10),

booktype_no int,

book_name char(20)not null,

book_writer char(10),

book_stock int

constraint C1check(book_stock between 25 and 100),

primary key (book_no),

foreign key (booktype_no)references

db_library.dbo.tb_booktype(类别编号)

on delete cascade

)

2,创建tb_borrownew代码及截图。

create table tb_borrownew

(

tb_reader_no char(10),

tb_book_no char(10),

tb_borrow_date date,

tb_back_date date,

primary key (tb_reader_no,tb_book_no)

)

3,给tb_booknew书名增加唯一性约束代码及截图

alter table tb_booknew

add constraint c2unique(book_name)

4,修改tb_booknew 的库存数在30—80之间。

alter table tb_booknew

drop constraint C1

alter table tb_booknew

add constraint C1check(book_stock between 30 and 80)

5,、使用SQL语句删除第3题增加的约束。

alter table tb_booknew

drop constraint c2

(三)

(1)创建触发器借阅信息插入修改_TRIG

create trigger借阅信息插入修改_TRIG

on dbo.tb_borrow

for insert,update

as

declare

@借阅日期date,

@归还日期date

begin

select@借阅日期=借阅日期,@归还日期=归还日期from inserted

if(DATEDIFF(M,@借阅日期,@归还日期)>3)

begin

print('该借阅记录已经超过三个月!!!');

end

else

if (exists(select*from inserted)and not exists(select*from deleted))

begin

print('插入成功!!!');

end

if exists(select*from inserted)and exists(select*from deleted)

begin

print('修改成功!!!');

end

end

相关文档
最新文档