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