数据库课程设计设计题目:图书馆管理系统组长姓名:刘之远组长学号:122101208专业班级:14级计算机应用技术2班指导老师:黄影数据库课程设计任务及成绩院(系):信息工程学院教研室:13#607指导老师:刘书影2014 年12月18 日目录摘要 (4)第一章需求分析 (1)1.1 读者登记处 (1)1.2 图书总管部门 (1)1.3图书借还处 (1)3 业务流程分析 (2)第二章概念结构设计 (4)2.1 图书管理系统实体集的子E-R图 (4)2.2 宿舍信息管理系统总E—R图 (6)第三章逻辑结构及物理结构设计 (7)3.1 将E—R图转化为关系模式 (7)3.2 物理结构设计 (7)第四章数据库的实现 (9)4.1 数据库的创建 (9)第五章表的T-SQL语句 (12)5.1.1 简单查询 (12)5.1.2 模糊查询 (13)5.1.3 连接查询 (14)5.2.1存储过程 (15)5.2.2视图 (16)5.2.3 视图的创建 (16)5.2.4 视图的T-SQL语句 (16)5.2.5触发器 (17)第六章总结 (18)摘要数据库技术和Interne的飞速发展,使他们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。
对于拥有庞大人员的学校的管理来讲,数据的有效使用是一个学校能否进行有效管理的一个关键。
学校作为一个学习的地方,一定会有一个图书馆。
有图书馆就必定要有管理,这样学校图书管理系统就显得更为重要。
学校图书管理系统适应于绝大多数的学校图书馆的管理。
应用此系统可以将众多的学生信息和图书信息进行有效的管理,提高学校的效率。
第一章需求分析1.1 读者登记处学生或教师需要通过办理图书证之后才能进行图书借阅。
图书证包括借书证号,姓名,读者类型,借书人单位等信息。
在读者登记处,需要把读者的有关信息添加到信息系统中保存,当读者信息发生改变时,需要对计算机里的内容进行相应的修改。
当读者办理退证手续时,需要删除相应的读者信息。
另外,生成超过期限未还书的读者信息表,通知读者应尽快还书等。
1.2 图书总管部门1.2.1图书管理部门负责书籍和出版社等的信息管理,具体如下:(1)图书信息管理。
完成图书的录入、修改、删除和查询功能。
在查询图书信息时,可随时查询书库中现有书籍的类型、书号、书名、作者、数量等信息。
所有书籍都可由书号唯一标识。
(2)为了方便业务往来,需保存出版社相关信息。
这些信息包括出版社编号、名称、电话、邮编、地址、联系人等。
1.3图书借还处2.3.1图书借还处负责图书的借阅和归还工作。
具体如下:(1)读者借书管理。
读者可以根据图书类别和书名查找自己要借阅的图书,在图书借阅登记中,借阅日期是自动填写的(当前系统日期)。
(2)还书管理。
在办理还书业务时,系统判断是否过期,若过期,则首先查看是否已经交了罚款。
若未交,则生成一张罚款通知单。
(3)完成图书在库数量的查询。
此外,对于书籍、读者和出版社等信息,系统管理员可以做添加、修改、删除和查询操作。
普通读者只能查询。
3 业务流程分析第二章概念结构设计通常,把每一类数据对象的个体称为实体,而每一类对象的集合称为“实体集”。
而E —R模型的主要成分是实体、联系和属性。
如果用矩形框表示实体集,用带半圆的矩形表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在属性后加#键加以区别,则可以表示实体集及每个实体集涉及的属性,实体集之间存在各种关系,通常把这种关系称为“联系”。
联系有三类:一对一的联系(1:1);一对多的联系(1:n);多对多的联系(m:n)。
所以,此图书管理系统中实体集与实体集的联系,E—R模型如下:2.1 图书管理系统实体集的子E-R图本系统所涉及书籍实体有如下属性:书号,种类,数量,存放位置,书名,出版年,出版社编号,作者。
其所对应的E-R图如下读者实体犹如下属性:借书证号,姓名,性别,借书人单位,读者类型|。
其所对应的E-R 图如下读者身份实体的属性如下:读者类型,可借阅的天数,可借阅的数量。
其所对应的E-R图如下:2.2 宿舍信息管理系统总E—R图第三章逻辑结构及物理结构设计3.1 将E—R图转化为关系模式转换原则:1:1不单独对应一个关系模式,将一端实体的主码及联系的属性,加入另一端实体所对应的关系模式,且不影响其主码。
1:n 不单独对应一个关系模式,将一端实体的主码及联系的属性,加入到N端实体的所对应的关系模式,且不影响其主码。
m:n必须单独对应一个关系,由两端实体的主码及联系的属性为其属性,两端实体主码的组合为其主码。
实体1:书籍【种类、数量、存放位置、书号、书名、出版年、作者、出版社编号、价格】实体2:读者【借书证号、姓名、性别、借书人单位、读者类型】实体3:出版社【出版社编号、出版社名、电话、邮编、地址】实体4:借还情况【借书证号、书号、借书日期、还书日期】实体5:读者身份【读者类型、可借阅天数、可借阅数量】3.2 物理结构设计由以上的分析,得出上述5个表格结构如下:读者表:创建此表所需要的字段名是:姓名、借书证号、性别、借书人单位读者类型,其中借书证号设为主键。
出版社表:用于记录书籍出版社信息,所需要的字段名是:出版社编号、出版社名、电话、邮编、地址,其中出版社编号是主键。
书籍表:用于记录书籍信息,所需要的字段名是:书号、书名、数量、类型、出版年、作者、出版社编号、存放位置。
主键是书号。
读者身份表:用于记录读者类型信息,是学生还是老师。
所需要的字段名是:读者类型、可借阅天数、可借阅数量。
主键是读者类型。
借还情况表:用于记录读者借还图书的情况。
所需要的字段名是:借书证号、书号、借书日期、还书日期。
主键是借书证号、书号。
第四章数据库的实现4.1 数据库的创建1 建立数据库create database图书馆on(name=library,filename='d:\database\图书馆_data.mdf',size=10,maxsize=50,filegrowth=5)log on(name=library_log,filename=' d:\database\图书馆_data.ldf ',size=5,maxsize=25,filegrowth=5)2 建表(1)读者身份create table读者身份(读者类型char(4)check(读者类型in('教师','学生'))primary key,可借阅天数tinyint not null,可借阅数量tinyint not null)(2) 读者create table读者(借书证号char(20)primary key,姓名char(10)not null,性别char(2)check(性别='男'or性别='女'), 借书人单位char(30),读者类型char(4)foreign key references读者身份(读者类型) )(3) 出版社create table出版社(出版社编号char(30)primary key,出版社名char(30)not null,电话char(50),邮编char(30),地址char(50))(4) 书籍create table书籍(书号char(10)primary key,书名char(50)not null,数量tinyint not null,类型char(30),出版年char(10) ,作者char(10),出版社编号char(30)foreign key references出版社(出版社编号), 存放位置char(30))(5) 借还情况create table借还情况(借书证号char(20)foreign key references读者(借书证号),书号char(10)foreign key references书籍(书号),借书日期datetime default getdate(),还书日期datetime,primary key(借书证号,书号))第五章表的T-SQL语句5.1.1 简单查询1)查询读者表中读者证号和姓名。
代码如下:select 借书证号,姓名from 读者运行结果:(2)查询出版社表中出版社名、出版社编号和电话等信息。
代码如下:select 出版社名,出版社编号,电话from 出版社运行结果:5.1.2 模糊查询(1)查询书籍表中书名含'背影'的书号,出版年,书名和作者等信息。
代码如下:select 出版年,作者,书名,书号 from 书籍where 书名 like'%背影%' 运行结果:(2)查询来出版社表中出版社名中有‘海洋’字的信息。
代码如下:select 出版社编号,电话,邮编,出版社名,地址from 出版社表where 出版社名like '%海洋%'运行结果:5.1.3 连接查询(1)查询书籍的书号,书名,数量,类型,出版年,作者,借书日期,还书日期如下:select 书籍.书号,书名,数量,类型,出版年,作者,借书日期,还书日期 from 书籍,借还情况where 书籍.书号=借还情况.书号运行结果:5.2.1存储过程在SQL Server中,存储过程是数据库对象之一,它有执行速度快、确保数据库的安全和自动完成需要预先执行的任务等优点,本设计创建一个存储过程,功能是通过借书证号查看该读者的借书信息:姓名,借书人单位,书名,作者,借书日期,还书日期。
存储过程的创建和调用如下:create proc prcsed@no char(10)asselect 姓名,借书人单位,书名,作者,借书日期,还书日期 from 读者,借还情况,书籍where 读者.借书证号=借还情况.借书证号 and 借还情况.书号=书籍.书号例如:exec prcsed '32080090011'5.2.2视图视图是由一个或多个基本表(或视图)导出的数据信息,可根据用户的不同建立不同的视图。
5.2.3 视图的创建create view vw15.2.4 视图的T-SQL语句select 借书证号,借还情况.书号,出版社.出版社编号 from 出版社,书籍,借还情况 where 出版社.出版社编号=书籍.出版社编号and 书籍.书号=借还情况.书号运行结果如下:5.2.5触发器触发器是一类特殊的存储过程。
触发器与表的关系密切,可用于维护表中的数据。
当有数据影响到触发器维护的数据时,触发器自动执行。
创建该触发器可以create trigger trginon 借还情况 for update ,insertasbegindeclare @no char(6), @n tinyintselect @no=借书证号 from insertedselect @n =count(*) from 借还情况 where 借书证号=@noif @n>10beginrollbackprint '已超出上限!'endend第六章总结这次课程设计下来,学到了不少东西,以前对SQL,只能按书上按部就班的写,写SQL 语句是会了,但数据逻辑和方法方面,一点都不够到位,没有对以前的知识进行系统的了解,没有把各个部分知识整合在一起,通过这次学生宿舍管理系统课程设计,使我对数据库设计的各个方面都加深了理解,了解到数据库是一环扣一环的,中途不能有办点马虎,也体会到把知识应用于实践是不容易的,同时也学到课本中所没有的东西,一些问题也只有真正做设计的时候才会出现。