1、课 程 设 计 课程名称 数据库系统概论 题目名称 图书借阅管理系统 学生学院 计算机学院 专业班级 学 号 学生姓名 指导教师 左亚尧 2013年 1 月 17日一、需求分析数据需求图书借阅管理系统是管理图书与借书者的关系,需要有图书的信息,如书的编号,书名,出版社,作者等;借书者的信息,如学生的学号,姓名,性别,院系等;借阅的信息,如学生的学号,书的编号,借出日期,归还日期等。功能需求该系统是为了方便管理员管理图书和借书者。所以应具有查询图书的功能,查询借出的图书的功能,查询借书者的功能,借书还书的功能以及查询借书过期的功能。二、 E-R图借书者图书借阅学号姓名性别院系作者还书日期借书日期
2、出版社书名编号mn三、逻辑结构设计将数据库的概念模型转换为关系模型借书者(学号,姓名,性别,院系)图书(编号,书名,出版社,作者)借阅(学号,编号,借书日期,还书日期)(注:下划线是主键,波浪线是外键)四、 数据库建立1、 创建数据库USE masterGOCREATE DATABASE 图书借阅ON ( NAME = 图书借阅_dat, FILENAME = e:数据库图书借阅dat.mdf, SIZE = 30MB, FILEGROWTH = 20% )LOG ON( NAME = 图书借阅_log, FILENAME = e:数据库图书借阅log.ldf, SIZE = 3MB, FIL
3、EGROWTH = 1MB )GO创建结果: 2、 创建基本表create table 借书者 (学号 char(10) primary key not null, 姓名 char(8), 性别 char(2), 院系 char(10), ) create table 图书 (编号 char(8) primary key not null, 书名 char(20), 出版社 char(20), 作者 char(8), ) create table 借阅 (学号 char(10), 编号 char(8), 借书日期 smalldatetime, 还书日期 smalldatetime, forei
4、gn key(学号) references 借书者(学号), foreign key(编号) references 图书(编号), )3、 数据库的关系图4、 插入数据插入借书者的数据:插入图书的数据:插入借阅的情况:五、 测试借书情况查询借书的信息,包括借书者的学号,名字,书名select 借阅.学号,姓名,书名from 图书,借书者,借阅where 借书者.学号=借阅.学号 AND 图书.编号=借阅.编号 借书过期给出借书超期的信息,包括借书者的学号,姓名,书名,过期天数select 借书者.学号,姓名,书名,DATEDIFF(DAY,还书日期,GETDATE()as 过期天数from 图
5、书,借书者,借阅where 借书者.学号=借阅.学号 AND 图书.编号=借阅.编号 AND GETDATE()-还书日期0借书有学生借书,要在借书者、借阅的基本表中增加相应的数据 INSERT INTO 借书者 VALUES (11111111,张三,男,计算机);INSERT INTO 借阅 VALUES(11111111,KO69351,2013/1/17,2013/3/8);修改前:修改后:还书有学生还书,应先在借阅的基本表中根据学号和编号撤销相应数据,再判断该借书者是否有借其他书,若没有则在借书者的基本表中撤销该借书者的数据。delete from 借阅where 学号=111111
6、11 and 编号=KO69351deletefrom 借书者where not exists (select * from 借阅 where 学号=借书者.学号)修改前:修改后:六、 心得经过两天的时间,在自己的努力下,基本完成本次课程设计,通过这次课程设计,了解了设计一个数据库系统的复杂性和对综合知识要求较高。因此在设计阶段我们查阅了很多资料加深了对数据库知识的认识。这次数据库课程设计是不同于平时的实验的,要严格作出这个设计的需求分析、逻辑结构、E-R图的构建等。但在创建数据库和基本表等操作在之前的实验中已经比较了解,所以在这方面并不麻烦。但是要注意主键的建立,外键的连接以及基本表的关系。在设计中也遇到过语法等错误,这说明就算做过实验,但对SQL Server也并不完全熟悉,而做完该设计后对SQL Server有更深入的了解了,这对我来说也是有很大的收获的。本来想做一些图形界面的,但要重新学一门软件或者语言,比较费时间,就退而求次直接用SQL语句来操作,虽然不够直观但也能实现基本的操作了。