数据库课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的:通过本次课程设计让学生能够综合运用所学的关系数据库原理
知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的
设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。
实验要求:设计一个图书借阅管理系统,实现下列功能:
1.图书信息的维护(包括录入,修改和删除);
2.读者信息的维护(包括录入,修改和删除);
3.借阅(借,还)信息的维护(包括借,还信息录入,修改和删除);
实验思路:
1、录入一些图书信息、读者信息和管理员信息;
2、给定借阅信息显示借阅情况
3、按照图书馆的情况进行维护(对图书,读者的信息的修改)
关系模型:
读者(读者学号,读者姓名,读者性别,联系电话,所在系)
图书(书号,书名,作者,出版社,出版日期)
借阅(工作号,书号,读者学号,借书日期,还书日期,是否续借)
读者信息表:
读者学号读者姓名读者性别联系电话所在系
10211101 司马南男1234567 软件
12011102 安德森男1235436 软件
10211103 艾丝凡女5673434 电子
10211104 阿杜男1234127 英语
10211105 范德男2345678 软件
10211106 范唯女1234877 经管
10211107 李静娜9874567 外国语
图书信息表:
1001 数据库陈城北京大学出版社2000-10-21 1002 数学章年清华大学出版社2000-111-21 1003 英语唐强人民邮电出版社2000-06-21 1004 C++ 陈好天津出版社2002-10-21 1005 死神唐冰北京大学出版社2000-10-12 1006 仙逆唐少河北出版社2000-10-12
1007 大学英语李国华上海教育出版社2000-10-12 借阅表:
书号读者学号借书日期还书日期是否续借
1003 10211103 2011-11-12 2011-12-21 否
1001 10211102 2011-11-15 2011-12-21 否
1002 10211103 2011-11-12 2011-12-21 否
1005 10211101 2011-10-12 2011-11-21 否
1007 10211106 2011-07-02 2011-09-21 否
E-R图
读者
读者学号读者姓名
读者性别
所在系
联系电话
借阅
工作号书号
读者学号
借书日期
还书日期
续借
图书
书号
书名
作者
出版社
出版日期
1 m
实现过程:
创建数据库:
create database 图书
on
(name=图书_data,
filename='d:\teachdata.mdf',
size=10,
maxsize=50,
filegrowth=5)
log on
(name=图书_log,
filename='d:\teachdata.ldf',
size=10,
maxsize=50,
filegrowth=5)
创建表:
/*读者表*/
create table 读者
(读者学号varchar(10) not null primary key, 读者姓名varchar(10) not null,
读者性别varchar(2) not null,
联系电话varchar(12),
所在系varchar(20)not null)
/*管理员表*/
create table 管理员
(工作号varchar(10)not null primary key,
姓名varchar(12) not null,
性别varchar(2) not null,
电话varchar(12),
家庭住址varchar(50) )
/*图书表*/
create table 图书
(书号varchar(10) not null primary key,
书名varchar(50) not null,
作者varchar(12) not null,
出版社varchar(50),
出版日期datetime)
/*借阅表*/
create table 借阅
(工作号char(10) not null,
书号varchar(10) not null,
读者学号char(10) not null,
借书日期datetime not null,
还书日期datetime not null,
是否续借char(4) not null)
创建索引:
create unique index 图书索引on 图书(书号)
create unique index 读者索引on 读者(读者学号)
create unique index 管理员索引on 管理员(工作号)
create unique index 借阅索引on 借阅(工作号,读者学号,书号)
创建视图:
create view 查询_view(读者学号,读者姓名,读者性别,所在系,书名,借书日期) as
select 借阅.读者学号,读者姓名,读者性别,所在系,书名,借书日期
from 读者,图书,借阅
where 读者.读者学号=借阅.读者学号and 借阅.书号=图书.书号
创建触发器:
/*修改读者学号*/
create trigger 读者_修改
on 读者
for update
as declare @old_读者学号varchar(10)
declare @new_读者学号varchar(10)
select @old_读者学号= 读者学号from deleted
select @new_读者学号= 读者学号from inserted
update 借阅
set 读者学号=@new_读者学号
where 读者学号=@old_读者学号
/*删除读者*/
create trigger 读者_删除
on 读者
for delete
as
delete from 借阅
where 读者学号=(select 读者学号from deleted)
/*修改图书编号*/