资源描述
图书管理系统范文
26
2020年4月19日
文档仅供参考,不当之处,请联系改正。
课程设计(大作业)报告
课程名称: 数据库原理与应用
设计题目: 图书管理系统
院 系: 信息技术学院
班 级: 09计算机科学与技术本1班
设 计 者: 杨凯博、田磊、刘福良
学 号: 1101129、 1101124、 1101119
指导教师: 王亚宁
设计时间: -6-7至 -6-14
一、前言
(一)、课程设计目的
1.掌握数据库基本原理,理解关系数据库的设计方法和设计思路。
2.设计一个数据库应用系统。
3.完成所设计系统数据库的概念设计、逻辑设计与物理设计。
4.SQL Server 的操作与使用。
5.数据库的建立与管理、数据表的建立与操作等。
6.SQL查询语言的使用与编程。
7.培养对所学知识的综合运用的能力。
(二)、课程设计的基本要求
用SQL Server 实现一个管理信息系统的数据库设计,包括:
1.需求分析。
要求全面描述管理信息系统的信息要求和处理要求。
2.数据库的概念设计、逻辑设计与物理设计。
要求掌握对管理信息系统进行需求分析,绘制E-R图的方法。掌握将E-R图转换成关系模式的方法,掌握对关系模式进行规范化的方法。
3.数据库和数据表的创立。
要求掌握建立数据库的方法,掌握表的建立,掌握主键约束、外键约束、校核约束及默认约束的建立和使用。掌握表记录的插入、修改与删除。
4.数据查询。
要求掌握简单查询和条件查询,掌握连接查询、嵌套查询、组函数的用法。
5.数据库对象的设计。
要求掌握视图的建立、查询。经过对常见系统存储过程的使用,了解存储过程的类型。经过创立和执行存储过程,了解存储过程的基本概念,掌握使用存储过程的操作技巧和方法。经过对已创立的存储过程的改变,掌握修改、删除存储过程的操作技巧和方法。掌握触发器的建立与使用。
6.数据库的用户与权限管理。
要求掌握建立数据库用户的方法,能够进行权限管理。
7.数据库的备份。
要求掌握数据库的备份技术。
二、系统背景资料说明
长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。在借书时,读者首先要将借的书和借阅证交给工作人员,工作人员然后将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,工作人员然后根据图书信息找到相应的借书卡和借阅证,并填写相应的还书信息。
从上述中能够发现,传统的手工流程存在着种种不足。首先处理借书、还书业务流程的效率很低;其次处理能力较低,一般时间内,所能服务的读者认识只能是很有限的。为此,图书信息管理系统需要为不同的图书馆解决上述问题,提供快速的图书信息检索功能及快捷的图书借阅、归还流程。
三、系统需求分析
(一)系统的功能说明
图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此就需要一个完善的图书管理系统来实现对这些数据的有效管理。本系统主要任务就是对图书、读者、员工、借阅信息、查询进行统一管理,满足各类用户的需求。本系统在功能上要实现借阅图书、续借图书、归还图书、催还图书、信息查询等功能。
(二)、系统功能结构图以及相应的文字说明
图书管理系统就是要求图书管理人员经过该系统对图书、读者、员工、借阅信息等进行统一管理,从而实现功能上的借阅图书、续借图书、归还图书、催还图书以及信息查询。这就要求管理人员能够对数据库进行熟练操作而简单的表查询、触发器的建立、存储过程的建立以及用户自定义函数的建立等等这些管理数据库的方法都能对图书馆里系统的管理起到事半功倍的效果。
四、数据库概念结构设计
实体、联系、属性及E_R图。
根据数据库分析,确定实体及实体间联系,及各个实体和联系的属性并设计出E-R图。
1、 实体,联系
实体:图书信息,借阅书籍,归还书籍,借阅人,员工
联系:借阅信息,管理信息
图书信息与借阅书籍、归还书籍及借阅人之间的联系是借阅信息。
图书信息与员工之间的联系是管理信息。
2,图书管理系统E-R图模型
图书管理系统E_R图模型
五、数据库逻辑结构设计
关系模式(带下划线的为主码,带波浪线的为外码):
图书(编号,书名,作者,出版时间,出版社,期限)
学生(学号,姓名,性别,出生日期,所属学院,班级,专业)
借阅(期限,借出时间,归还时间,编号,学号,流水号)
六、数据库实现
1、表设计及表结构
需要的表有:图书表,学生表,借阅表。
以下为各表的表结构
图书表结构
借阅表结构
学生表结构
2、用T-SQL语句创立数据库、创立表以及添加数据
(1)、创立数据库代码:
CREATE DATABASE 图书管理系统
ON PRIMARY
(NAME=图书管理系统,
FILENAME='E:\数据库课程设计\图书管理系统.mdf',
SIZE=3MB,
FILEGROWTH=1MB
)
LOG ON
(NAME=图书管理系统_log,
FILENAME='E:\数据库课程设计\图书管理系统_log.ldf',
SIZE=1MB,
MAXSIZE=2097152MB,
FILEGROWTH=10%
)
GO
(2)、创立表代码:
USE 图书管理系统
GO
CREATE TABLE 图书
(编号nchar(10) CONSTRAINT pk_bh PRIMARY KEY ,
书名varchar(50) NOT NULL,
出版社varchar(50) NOT NULL,
作者varchar(50) NOT NULL,
出版时间datetime NOT NULL,
[期限\月] nchar(10)NOT NULL,
)
GO
CREATE TABLE 学生
(学号char(10) CONSTRAINT pk_xh PRIMARY KEY NOT NULL,
姓名char(10),
性别char (10) ,
出生日期datetime ,
专业char(10),
班级char(10),
所属学院nchar(10),
)
GO
CREATE TABLE 借阅
(流水号char(10) IDENTITY(1,1) NOT NULL,
编号varchar(10) CONSTRAINT fk_jybh REFERENCES 图书(编号),
学号nchar(10) CONSTRAINT fk_jyxh REFERENCES 学生(学号),
借出时间datetime,
归还时间datetime,
期限nchar(10)
3、添加数据的代码
七、运行结果
(一)、数据查询
简单查询:
查询学生表中所有信息:
use 图书管理系统
go
select *
from 学生
go
查询图书表中所有信息
use 图书管理系统
go
select *
from 图书
go
条件查询:
查询计算机系的所有学生的所有资料:
use 图书管理系统
go
select *
from 学生
where 所属学院='计算机系'
go
连接查询:
查询已借书的学生的学号,姓名,专业,班级
use 图书管理系统
go
select 学生.学号,姓名,班级
from 学生
join 借阅on 学生.学号=借阅.学号
go
查询学生学号=' 211131'的姓名,专业,班级,借出时间,归还时间
use 图书管理系统
go
select 学生.学号,姓名,专业,班级,借出时间,归还时间
from 学生
join 借阅on 学生.学号=借阅.学号
where 学生.学号=' 211131'
go
嵌套查询:
查询在 5月12日借书学生的学号,姓名,专业,班级
use 图书管理系统数据库
go
select 学生.学号,姓名,专业,班级
from 学生
where 学号in
(select 学号
from 借阅
where 借出时间=' -5-12'
)
go
(二)、数据库对象的设计
1、视图(查询学生借书情况的视图代码:(视图名为xsjsqk))
视图的创立
USE 图书管理系统数据库
GO
CREATE VIEW V_1
AS
SELECT 学生.学号,姓名,性别,书名,借出时间,归还时间,[期限\月]
FROM 学生JOIN 借阅ON 学生.学号=借阅.学号
JOIN 图书ON 借阅.编号=图书.编号
GO
视图的查询
USE 图书管理系统
GO
SELECT *
FROM V_1
GO
2、在借阅表中加入触发器
触发器:(ins_jieyue)当借阅表中加入一条记录时修改图书中的列”外借属性”的值
USE 图书管理系统
GO
CREATE TRIGGER ins_jieyue
ON 借阅
FOR INSERT
AS
UPDATE 图书
SET 外借情况='外借'
from inserted n
WHERE 图书.编号=n.编号
GO
触发器:(del_jieyue)当借阅表中删除一条记录时修改图书中的列”外借属性”的值
USE 图书管理系统
GO
CREATE TRIGGER del_mieyue
ON 借阅
FOR DELETE
AS
UPDATE 图书
SET 外借情况='不在馆内'
from deleted a
WHERE 图书.编号=a.编号
GO
3、查询某个系学生借书超时的情况(以105为例)
数据中认为各系的系部代码为: 英语100/数学101/化学系011/经济系012/物理系013体育系010/美术系033/历史系111/医学系009教育学院008/政法系112
USE 图书管理系统数据库
GO
SELECT *
FROM V_1
WHERE 学号LIKE '____105____' AND 归还时间<GETDATE()
4、数据库的用户与权限管理
在SQL server 中创立服务器登录名,名字叫做”实验”,该服务器登录名的常规选项中设置密码,并指定默认数据库为图书管理系统数据库,这样在数据库图书管理系统数据库中默认生成数据库用户名,名字也为”实验”,在用户映射中设置此数据库用户名在SQL server 服务器上只能访问图书管理系统数据库,在安全对象中设置该用户名对数据库中各个表的使用权限,在属性-常规中给登陆账户sa设置一个密码,使用其默认的最高管理权限,并能够访问所有的数据库,操作过程参照了课本288页至292页:
八、实验心得
经过本次的课程设计,让我又熟悉了一次教材。这次的实训将整个大二上学期的SQL Server 所学内容都融汇到了里面。而实训的大纲仅仅只是老师提供了一个轮廓,整体的设计都要求同学们独立完成,更是培养了同学们独立思考的好习惯。这样的实训我更愿意称之为“复习实训”,因为它综合了SQL Server 的数据库、表、视图、触发器、存储过程及函数的创立与应用,以及数据的增、删、改的简单操作,让我真真切切地感觉学到了些东西。
九、参考文献
《数据库原理与设计(SQL Server )》
-清华大学出版社出版 申时凯 戴祖成 佘玉梅 主编
组内互评:
刘福良:自评:为人诚恳,性格开朗,积极进取,适应力强、勤奋好学、脚踏实地,有较强的团队精神,工作积极进取,态度认真。
互评:我们组员每个都是很有责任心的人!和你们合作我很开心!
杨凯博:自评:实诚信,讲原则,说到做到,决不推卸责任;有自制力,做事情始终坚持有始有终,从不半途而废;肯学习,有问题不逃避,愿意虚心向她人学习;
互评:我们的组员非常听从指挥,合作的十分融洽,从头到尾到没出现什么大的分歧。这是十分难得的,每个人都有自己的优点,全部毫无保留贡献到这次活动中了。
田 磊:自评:积极与同学交流,不但促进了我与同学的关系,而且还锻炼我的能力
互评:大家都很棒,我有什么不懂,她们都会尽全力帮助我,我懂得了很多。
小组互评:2组
组员:陈龑,关朴林,韦凡,郭子仪
题目:企业人事管理系统
评价:改小组在试验中非常团结,办事效率很快,都很负责任,完成的效果也很理想,思想活跃,创造力强,分数85
展开阅读全文