图书馆数据库设计实例(需求分析、概念结构、逻辑结构)
- 格式:doc
- 大小:3.61 MB
- 文档页数:10
图书借阅管理系统的设计1.需求分析图书信息、借阅证件信息及图书借阅管理是一件非常繁琐但又及其重要的工作,因此有必要开发一个数据库管理系统,用来管理这些信息。
这篇课程设计介绍的就是图书借阅信息管理系统。
系统的具体要求如下所述:(1)图书信息的录入:要求能够将图书信息录入到数据库中。
(2)图书信息的修改:根据需要,修改、删除图书信息。
(3)用户登陆:根据用户权限登陆此系统。
(4)系统用户管理:要求可以管理系统的用户,包括添加、修改和删除用户。
(5)借阅证件信息录入:可以输入不同类型的借阅者信息,并根据需要修改、删除借阅证件信息。
(6)借阅证管理:包括借阅证丢失、过期等管理。
(7)借阅管理:包括借书、还书、过期还书与书籍丢失处罚等管理。
2.数据库设计数据库设计主要在SQL Server服务器端建立数据库和数据表,并实现数据处理功能。
本文所设计的数据库中要记录读者的借书情况、图书被借阅的情况以及读者、图书的基本情况。
下面对图书借阅管理系统所需的数据结构进行分析并创建数据库。
2.1 概念结构设计现在对所设计系统的需求作进一步的分析,产生概念结构设计的E-R模型。
由于这个系统并不复杂,因此可采用自顶向下的设计方法。
自顶向下设计的关键是确定系统的核心活动。
所谓核心活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。
确定了核心活动之后,系统就有了可扩展的余地。
对于这个图书借阅管理系统,其核心活动是借阅,读者与图书之间是通过借阅发生联系的。
因此,此系统包含的实体有:(1) 读者:用于描述一名读者的基本信息,用借书卡编号来标识。
(2) 图书:用于描述一本图书的基本信息,用图书编号来标识。
经过初步分析,可以得到此系统中各实体所包含的基本属性如下:读者:借阅证编号、读者姓名、工作单位、身份证号、借阅证类型、办证日期、证件状态。
图书:图书编号、图书名称、图书分类、作者、出版社、图书价格、图书封面由于一名读者可以同时借阅多本图书,而一本图书一次只能借给一名读者,因此读者和图书之间是一对多的联系。
网络工程系综合性实验实验报告课程名称数据库技术与应用学号姓名任课老师图书馆数据库设计一.实验内容:为图书馆设计一个数据库,此数据库对每个借阅者保存读者记录,包括:借书证号、姓名、性别、单位、可借数量。
对每本书记录:书号、书名、作者、出版社。
对每本被借出的书有:读者号、借出日期、应还日期。
可以随时查阅书库中的书籍信息,所有的书籍均由书号唯一标识;可以随时查阅书籍借还情况,系统约定任何人可以借多本图书,任何一种图书可以为多人所借,借书证号具有唯一性。
二.实验要求:1.基于《数据库概论》中所学的知识分析该数据库的基本结构,2.用Transact-sql命令完成如下要求:(1)创建数据库和数据表,定义每个表的主键和外键,为每个属性选择合适的数据类型,定义每个属性是否允许空值,是否有默认值等;(2)结合具体情况为数据库表设置合理的约束或规则;(3)如果需要,为数据表设计合理的触发器;(4)使用SQL语句,在你设计的每个表中插入至少3条数据,要求记录满足数据约束要求,且尽量真实可信;(5)自行设计查询要求,给出经常需要用到的查询语句。
3.写出完整的实验报告。
三.实验代码--创建library数据库create database libraryon primary(name=library_dat,--创建主数据库文件filename='c:\mydata\librarydat.mdf',size=5,maxsize=100,filegrowth=10%)log on(name='library_log',--创建日志数据库文件filename='c:\mydata\librarylog.ldf',size=5,maxsize=100,filegrowth=5)go--借阅者信息表use librarygocreate table reader(rno char(10) primary key,rname char(10) not null,rsex char(2) check(rsex in ('男','女')),rdepart char(30) not null,rmaxb smallint not null default(5),)gocreate table book(bno char(10) primary key ,bname char(20) not null,bauthor char(20) ,bconcern char(20) not null,bnum int not null )gocreate table borrowbook(bbno char(20) primary key,rno char(10) foreign key(rno) references reader(rno),bno char(10) foreign key(bno) references book(bno),bbdateo datetime not null default(getdate()),bbdaten datetime not null default(dateadd(mm,2,getdate())),borrownum int not null default(1) )go--读者借书create proc pr_borrow @rno char(10),@bno char(10)asif(@rno in (select rno from reader) and @bno in(select bno from book)) beginif((select bnum from book where bno=@bno) like 0 or (select rmaxb from reader where rno=@rno) like 0)beginprint '该书本已借完或借书已达最大书目'return -7endelseif(@rno+@bno in (select bbno from borrowbook))beginupdate borrowbookset borrownum=borrownum+1where bbno=@rno+@bnoupdate readerset rmaxb=rmaxb-1 where rno=@rnoupdate bookset bnum=bnum-1 where bno=@bnoendelsebegininsert borrowbook(bbno,rno,bno)values (@rno+@bno,@rno,@bno)update readerset rmaxb=rmaxb-1 where rno=@rnoupdate bookset bnum=bnum-1 where bno=@bnoendendelseprint '您输入的信息有误,请重新输入'return -7go--读者还书create proc pr_return @rno char(10),@bno char(10)asupdate readerset rmaxb=rmaxb+1 where rno=@rnoupdate bookset bnum=bnum+1 where bno=@bnoupdate borrowbookset borrownum=borrownum-1where bbno=@rno+@bnoif ((select borrownum from borrowbook where bbno=@rno+@bno)<=0)begindelete from borrowbook where bbno=@rno+@bnoendgo--添加book数据insert bookvalues('s0001','数据库应用技术','刘卫军','清华大学出版社','10') insert bookvalues('s0002','离散数学','屈婉玲','高等教育出版社','9')insert bookvalues('s0003','计算机英语','刘艺','机械工程出版社','6')insert bookvalues('s0004','java程序设计与教程','王行言','清华大学出版社','12') go--添加reader数据insert readervalues('10168001','张三','男','计算机系通信工程','5')insert readervalues('10168002','李四','女','计算机系网络工程','5')insert readervalues('10168003','吴五','男','计算机系网络工程','5')insert readervalues('10168004','王六','女','计算机系通信工程','5')go四:图书馆数据库的实现--常用查询测试select * from readerselect * from book --查阅书库中的书籍信息select * from borrowbook --查阅书籍借还情况select rno from borrowbook where rno=10168001 --查询借书证为10168001的借书情况--测试中恢复数据用到的语句drop procedure pr_borrowdrop procedure pr_returndrop table borrowbookupdate bookset bnum=8 where bno='s0001'update borrowbookset borrownum=1update readerset rmaxb=5--执行借书还书--1.一本书被多人所借(书借完提示错误)/*借书说明:读者借书使用存储过程pr_borrow,读者借一本书的会记录到borrowbook中,并对book表中的书数量bnum减一,读者最大借书数量减一,读者重复借同一本书籍是会修改borrowbook中的借书数量borrownum。
综合设计性实验为图书馆设计一个数据库,此数据库对每个借阅者保存读者记录,包括:借书证号、姓名、性别、单位、可借数量。
对每本书记录:书号、书名、作者、初版社。
对每本被借出的书有:读者号、借出日期、应还日期。
可以随时查阅书库中的书籍信息,所有的书籍均由书号唯一表记;可以随时查阅书籍借还情况,系统约定任何人可以借多本图书,任何一种图书可以为多人所借,借书证号拥有唯一性。
要求:1.基于《数据库概论》中所学的知识解析该数据库的基本结构,2.用 Transact-sql 命令完成以下要求:(1)创办数据库和数据表,定义每个表的主键和外键,为每个属性选择合适的数据种类,定义每个属性可否赞同空值,可否有默认值等;(2)结合详尽情况为数据库表设置合理的拘束或规则;(3)若是需要,为数据表设计合理的触发器;(4)使用 SQL语句,在你设计的每个表中插入最少 3 条数据,要求记录知足数据拘束要求,且尽量真实可信;(5)自行设计盘问要求,给出经常需要用到的盘问语句。
3.写出完满的实验报告。
附:实验报告模板网络工程系综合性实验实验报告课程名称数据库技术与应用学号姓名张欢任课老师高宁2012 年 11月实验名称图书馆数据库设计create database library:创办图书馆数据库create table reader:创办读者记录数据表create table book:创办每本书记录数据表create table rb:创办借出的书数据表create rule借出日期_rule:创办借出日期的规则并且绑定create rule书号_rule:创办书号拘束规则并且绑定create trigger set_可借数量:创办可借数量触发器alter table rb add constraint t:拘束可借时间 3 个月select * from reader:盘问reader表所有信息select * from book:盘问book表所有信息select * from rb:盘问rb表所有信息select * from rb where姓名='张欢':盘问张欢的所有信息select * from reader,rb:盘问读者借书的所有信息源程序代码:create database librarygouse librarygocreate table reader( 借书证号 char ( 10)not null primary key ,姓名 nchar ( 4)not null,性别 char ( 1) check ( 性别 in( ' 男 ' , ' 女 ' )),单位 char ( 20),可借数量char ( 1))use librarygoinsert readervalues('' ,' 张欢','男','安徽农业大学 ','3' )insert readervalues('' ,' 李四','女','经济技术学院 ','4' )insert readervalues('' ,' 张三','男', ' 安徽医科大学 ' , '5' )create table book( 书号char ( 16)not 书名char ( 18)not 作者char ( 4),初版社char ( 20)) use librarygonullnull,primary key ,insert bookvalues ( 'ab123' , ' 天龙八部 ' , ' 金庸 ' , ' 新华初版社' )insert bookvalues ( 'bc124' , ' 呼叫 ' , ' 鲁迅 ' , ' 安徽初版社' )insert bookvalues ( 'dc124' , ' 数据库 ' , ' 刘卫国 ' , ' 清华大学初版社' )create table rb( 读者号char ( 10) unique ,借出日期datetime not null ,应还日期datetime not null)alter table rbadd constraint t check ( 应还日期 <dateadd ( m, 3, 应还日期 ))use librarygoinsert rbvalues( '1000', '', '')insert rbvalues( '1001', '', '')insert rbvalues( '1002' , '' , '' )create rule借出日期 _ruleas @借出日期 >='1982-01-01'and @借出日期 <=getdate ()exec sp_bindrule借出日期 _rule , 'rb. 借出日期 'create rule书号 _ruleas @value like'[a-h]%[0-9]'exec sp_bindrule书号 _rule, 'book. 书号 'use librarygocreate trigger set_ 可借数量on readerfor insert, deleteasif exists(select*from inserted)update可借数量set可借数量 =可借数量 +1 where reader in ( select reader from inserted )elseupdate可借数量set可借数量 =可借数量 - 1 where reader in ( select reader from deleted)select * from readerselect * from bookselect * from rbselect * from rbwhere姓名='张欢'select * from reader , rbwhere reader . 借书证号 =rb . 读者号。
华北科技学院计算机系综合性实验实验报告课程名称《数据库系统A》实验学期2011 至2012 学年第 2 学期学生所在系部计算机学院年级2010 专业班级网络B10—3班学生姓名安志欣学号200907024320 任课教师郭红实验成绩计算机系制《数据库系统B》课程综合性实验报告借阅执行后的读者信息状态:图书归还后的读者信息状态:创建存储过程后,对dm为1003的读者的借阅信息进行查询后的结果:四、实验结果及分析数据库创建后,对其性能进行测试。
对图书借阅表进行更改,执行语句后,触发器t2首先工作,看读者是否还具有借阅权限,当有借阅权限时对读者信息进行更改,将读者的借阅次数加1,以此来实现对读者以后借书数量的限制。
;t3工作,对图书基本信息中的数据进行修改。
当读者归还图书时,t1工作,删除图书借阅表中的图书信息,图书的库存量相应增加,t4工作,使读者的借书次数减1,使读者可以以后继续借书.用存储过程p1,实现读者对借书信息的查询。
输入语句,并对语句执行后,显示出所输入编号对应读者的借阅信息;p2用于查询每本图书的借阅情况.相对来说,这个数据库的功能还有很大的改进空间,比如安全性方面的问题,读者不能对自己的登录密码进行更改,当有人知道某个读者的编号后,就可以对读者的信息查询,这些都使这个数据库不够完美。
但,这个数据库可以使读者对自己的借书信息,归还信息,个人信息进行查询,在对图书借阅的时候,自动对读者,图书馆藏信息进行更改,在归还图书时,可以对读者和馆藏信息更改,从而减少了图书管理员的操作内容,避免了由于人员输入出错导致数据不能操作的现象.用存储过程减少了临时对语句输入所耗费的时间,提高了系统的操作效率.体会:对于这次综合实验的设计,最开始没有担心太多事情,因为时间给的很多,而且对于图书馆的一些管理内容的东西有比较多的经历,所以最开始就只是先对图书管理的需求进行了下简单的分析,同时进入学校的图书馆管理系统体会已经设计好的数据库系统所应包含的功能与信息。
图书管理系统数据库设计一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息.此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认.一、需求分析针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:1.读者信息属性:读者学号,读者姓名,读者性别,联系电话,所在系,生效日期,失效日期,违章状况,累计借书,备注主键:读者学号2.书籍信息属性:ISBN,书名,作者,出版社,出版日期,简介,备注主键:ISBN3.管理员信息属性:工作号,姓名,性别,电话,家庭住址,备注主键:工作号数据流程通过对系统的调查和可行性分析,画出系统的数据流程图:1.读者学生对图书管理系统的要求有:1)能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况.2)能够方便地借阅图书、续借图书、归还图书3)能够查询自己的基本资料、图书情况4)能够熟悉图书管理系统的使用。
读者进入系统工作的流程为:注册→查询→修改信息→借阅续借→图书归还→注销2.图书管理员他们对图书管理系统的要求有:1)能方便的对图书进行录入登记,注销陈旧的书籍。
2)能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息).3)能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。
图书管理员工作的流程为::注册→录入图书→录入新生→注销图书→注销学生→注销→修改个人信息→超期处理二、概念模型设计数据库需要表述的信息有以下几种:1.读者信息2.书籍信息3.管理员信息4.读者与书籍之间的关系(借阅关系E-R图)5.管理员与书籍之间的关系(管理员_书籍E—R图)6.管理员与学生之间的关系(管理员_学生E-R图)三、逻辑设计从理论‘E/R模型’到理论‘关系模型'的整理转换,通过E/R模型到关系模型的转化,可以得到如下关系模式:借阅关系属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。
数据库设计实例分析一、需求分析实例现要开发高校图书管理系统。
经过可行性分析和初步的需求调查,确定了系统的功能边界,该系统应能完成下面的功能:(1)读者注册。
(2)读者借书。
(3)读者还书。
(4)图书查询。
1、数据流图顶层数据流图反映了图书管理系统与外界的接口,但未表明数据的加工要求,需要进一步细化。
根据前面图书管理系统功能边界的确定,再对图书管理系统顶层数据流图中的处理功能做进一步分解,可分解为读者注册、借书、还书和查询四个子功能,这样就得到了图书管理系统的第0层数据流图从图书管理系统第0层数据流图中可以看出,在图书管理的不同业务中,借书、还书、查询这几个处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深层次的分析,即构建这些处理的第1层数据流图。
下面的图8-7分别给出了借书、还书、查询子功能的第1层数据流图2、数据字典2.1 数据项数据项名称:借书证号别名:卡号含义说明:惟一标识一个借书证类型:字符型长度:20……2.2 数据结构(1)名称:读者类别含义说明:定义了一个读者类别的有关信息组成结构:类别代码+类别名称+可借阅数量+借阅天数+超期罚款额(2)名称:读者含义说明:定义了一个读者的有关信息组成结构:姓名+性别+所在部门+读者类型(3)名称:图书含义说明:定义了一本图书的有关信息组成结构:图书编号+图书名称+作者+出版社+价格……2.3 数据流(1)数据流名称:借书单含义:读者借书时填写的单据来源:读者去向:审核借书数据流量:250份/天组成:借书证编号+借阅日期+图书编号(2)数据流名称:还书单含义:读者还书时填写的单据来源:读者去向:审核还书数据流量:250份/天组成:借书证编号+还书日期+图书编号……2.4 数据存储(1)数据存储名称:图书信息表含义说明:存放图书有关信息组成结构:图书+库存数量说明:数量用来说明图书在仓库中的存放数(2)数据存储名称:读者信息表含义说明:存放读者的注册信息组成结构:读者+卡号+卡状态+办卡日期说明:卡状态是指借书证当前被锁定还是正常使用(3)数据存储名称:借书记录含义说明:存放读者的借书、还书信息组成结构:卡号+书号+借书日期+还书日期说明:要求能立即查询并修改……2.5 处理过程(1)处理过程名称:审核借书证输入:借书证输出:认定合格的借书证加工逻辑:根据读者信息表和读者借书证,如果借书证在读者信息表中存在并且没有被锁定,那么借书证是有效的借书证,否则是无效的借书证。
图书馆管理系统数据库设计图书馆是每个高校必备的建筑之一,而一个图书馆的好坏不仅与管内藏书的数量、质量有关,还与一个图书馆的管理系统密切相关。
一个好的图书管理系统,可以实时跟踪书的近况,了解每本书的在借续借情况。
本组成员经过研究讨论,决定针对图书馆借书系统进行进一步的研究、优化,提高图书馆图书的管理性能,方便学生了解图书借阅情况,及时还书,避免出现逾期。
本实验数据库设计包括以下四个部分:数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构实现。
一、数据库需求分析通过对##大学图书馆借书还书流程的分析,得到以下数据流程图1、借书流程图2、还书流程图根据数据流图,设计如下数据项和数据结构:1、图书信息,包括的数据项有:图书号、书名、图书数量、作者、出版社、出版日期、所属图书馆等。
2、借阅人信息,包括的数据项有:一卡通卡号、姓名、性别、专业、联系方式3、图书馆信息,包括的数据项有:图书馆ID、图书馆名称等。
4、图书借阅关系,包括的数据项有:一卡通卡号、图书号、借阅时间、还书时间等。
5、图书收藏关系,包括的数据项有:图书馆ID、图书号、藏书量等。
二、数据库功能组成三、 数据库概念结构设计本数据概念设计采用E-R 图体现。
各个实体具体的E-R 图描述如下:图书信息E-R 图所在校区图书馆图书馆ID图书馆信息E-R 图借阅者姓名年级专业一卡通卡号 联系方式借阅者信息E-R 图实体及其关系E-R图四、数据库逻辑结构设计逻辑结构设计,即将以上E-R图转化为关系模式,具体如下所示:1、借阅关系信息表:创建此表所需要的字段名是:借阅人一卡通号、借阅图书号、借阅时间、借阅期限、还书时间,其中借阅人一卡通号、借阅图书设为主键。
学生借阅图书表字段名字段类型字段宽度说明描述jyykth varchar 10 不空,主键借阅人一卡通号jytsh varchar 18 不空,主键借阅图书号jysj datetime 18 不空借阅时间hssj datetime 18 不空还书时间qfje money 8 不空欠费金额2、图书馆信息表:创建此表所需要的字段名是:图书馆ID、图书馆名称,其中图书馆ID设为主键。
课程设计课程名称《数据库系统原理》课程设计题目书店销售管理系统专业班级姓名成绩指导老师2019 年 12 月 30 日至 2019 年 1月 3日一、课程设计目的与任务《数据库系统原理课程设计》是针对计算机专业基础课《数据库系统原理》开设的课程设计,目的是使学生通过本课程设计之后,对数据库设计的基本概念、基本原理和优化技术有较全面的了解和领会,并能操作当前流行的DBMS,了解数据库在计算机应用系统的作用,独立地开发实现一个小型的基于DBMS上的应用系统。
结合具体的开发案例,理解并初步掌握数据库系统需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用功能设计(视图,索引,游标,存储过程,触发器等)数据录入及测试等系统设计与系统实施及维护管理的主要环节和步骤以及软件文档的制作能力。
二、课程设计的题目与基本要求1.设计题目:书店销售管理系统数据库设计2.基本要求:(1)图书入库管理:维护入库图书信息(如图书编号、书名、作者、价格、图书分类、出版社等),自动计算库存。
(2)图书查询统计:按图书分类,出版社、书名、作者等条件查询图书的详细信息。
(3)销售管理:销售过的图书都记录在销售列表中,方便统计收入。
图书销售后,实时记录图书库存,按每天统计销售额、按每个月或季度统计销售额,并能根据销售数量统计生成畅销书名单。
(4)设计报告内容包括:基本原理、设计方案的选择与确定,详细的设计过程及结果做出评价,分析存在的问题,提出改进意见并写出心得体会。
四、课程设计考核及评分标准1.设计报告要求课程设计报告要求逻辑清晰、层次分明、书写整洁。
格式包括标题、提要、正文(包括①设计项目要求与说明。
②数据模型分析。
③软件流程分析。
④调试分析。
⑤实验数据分析。
⑥答辩。
⑦成绩评定。
)附录(图纸、程序清单或软盘)。
设计报告须每人一份,独立完成。
2.图纸要求系统结构框图、概念模型图等。
注:成绩等级:优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
实验内容与完成情况:1.根据对图书馆实际工作情况了解,建立图书馆的概念模型E-R 图;2.将第一步建立的概念模型转化为关系模式;关系模式:Reader(readerNo,readerName,readerAge,readerWork,readerSex)Book(bookNo,bookName,bookWrite,bookPublish,bookPrice,bookZ) Borrow(readerNo,bookNo,borrowTime,yinghuaiTime)3.使用SQL DDL语句实现每个关系(表)定义,注意数据类型及完整性约束的定义;create database 图书管理系统create table reader(4.利用数据库辅助设计工具软件实现以上设计,并利用生成的脚本文件,生成数据库中的表。
结果如图:5.在各表中输入若干记录(为以后的查询和操作服务)--在读者表中插入内容insert into reader values ('0','纳爽','20','中央民族大学','女')用到group by having、order by以及聚合函数.--检索借书2本以上的读者姓名select readerNamefrom readerwhere readerNo=some(select readerNo from borrowgroup by readerNo having count(bookNo)>=2)显示结果:--显示借书人的编号和姓名、借书日期,要求按借书日期降序排列select ,readerName,bookName,borrowTimefrom reader inner join borrow on =inner join book on =order by borrowTime desc显示结果:--找出价格最高书,显示书名和编号select bookNo,bookName,bookPricefrom bookwhere bookPrice=(select max(bookPrice) from book)显示结果:7.创建视图以及实现对于视图的基本操作。
图书馆管理系统数据库设计报告图书馆管理系统数据库设计报告课程设计名称:图书馆管理系统班级: 12级1班专业:网络工程任课教师:许老师学号: 256438741姓名:万里实验日期: 2011 年 12 月 21日姓名万里实验报告成绩 78 评语:指导教师(签名)年月日说明:指导教师评分后,实习报告交院(系)办公室保存。
专业实习报告一、实验目的利用所学的数据库的基本原理和SQL Server2000数据库管理系统,以“图书馆管理”为对象,按照数据库设计、开发的步骤,设计并实现图书馆管理的数据库。
二、实验步骤(一)系统需求分析1、系统开发背景2、系统设计目标(二)系统设计1、系统的功能需求2、系统功能分析(三)数据库设计1、图书馆管理系统的流程图2、各实体的关系模式3、图书馆管理系统的E—R图(四)数据库物理结构设计1、图书信息表2、读者信息表3、借阅记录表4、管理员信息表5、读者类别表三、报告主要内容(一)系统需求分析1、系统开发背景目前,在高校系部图书管理中,师生查找图书都是采用传统的查询方法,让读者在图书分类架上一本本地去查找,这样不仅很难找到自己所需要的图书,而且费时费力。
而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。
每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库帐目,不仅工作量大,而且,在新书入库后要经历较长的时间方能借出。
另外,有的系部因图书数量有限,必须对图书实行限量借阅,因此,要实施弹性借书方法是件很困难的事。
为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对系部图书实施有效管理。
该系统必须具备以下功能:1、能对各类图书实行分类管理;2、提供必要的读者信息;3、能进行各种高级查询(如未还书目的查询;已还书目的查询等);4、具有图书检索功能;5、能管理登录系统的图书管理员等。
数据库设计报告学号:xxxxxxxxxxxxxxxxxx专业班级:19级计算机科学与技术姓名: 杨XXX完成日期:11月10日目录一、需求分析二、概念结构设计三、逻辑结构设计四、物理结构设计五、数据库实现六、总结一、需求分析1.1、需求背景面对图书馆庞大的信息量,传统的人工方式管理记录中,我们发现这样的问题:(1)检索速度慢、效率低。
因为图书馆的藏书种类多、数量多,要图书分门别类,快速检索,查找相关图书借阅情况,如果单靠人工是非常困难的。
(2)借书、还书工作量大。
大量的借书、还书登记、实存图书的更新以及借出图书超期、遗失等工作量之大,不是人工可以胜任的。
(3)图书统计工作难、图书更新不能及时完成。
因此需要制作一套合理、有效、规范和实用的图书管理系统,对图书资料进行集中统一的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。
1.2、系统目标实现图书的网上管理系统,完成图书方便快捷的管理,实现对图书信息、学生信息、管理员信息的管理等功能。
1.3、系统功能需求本系统的用户分为学生用户和管理员用户俩类,管理员负责对已借出的图书信息进行管理(包括学生借阅图书的编号,借阅日期,归还日期,是否归还,违期罚款),以及对图书进行网上添加、删除,查询,新书登记编号的操作。
(1)功能划分:用户通过身份验证后进入主界面。
管理员可以对图书进行管理;学生可以对自己图书的信息做查询操作,学生还可以修改个人信息。
(2)功能描述:图书借阅模块:图书借阅模块中包括了图书的添加和更新操作。
进行图书借阅操作时,需要查看当前书籍是否处于流通状态、是否在架以及是否有人预约等。
图书管理员需要登记借阅者的用户信息和图书编号。
图书归还模块:归还图书时,需要显示用户当前需要归还的所有图书信息,归还的时候如果有过期图书,需要显示过期书的名字、过期天数等信息。
图书查询模块:图书查询模块供用户查询图书信息。
二、概念结构设计由概念结构设计得E-R图如下所示:图1.1 图书管理系统E-R图图1.1是图书管理系统E-R图,该系统内设计的实体集有:学生实体集:具有属性系别、学号、姓名、性别、电话。
第10章图书管理系统数据库设计实例通过前面章节对数据库基础知识的学习,本章将通过一个图书管理系统的数据库设计实例来重点讲述如何设计数据库。
在设计数据库的过程中应该遵循哪些设计原则及技巧。
通过本章的数据库实例设计,要求对数据库的整体过程有个概念性的理解,并能通过所学知识,在具体的开发环境下设计一个较优化数据库并实现设计过程。
数据库设计原则及技巧10.1.1数据库设计原则随着计算机技术越来越广泛地应用于国民经济的各个领域,在计算机硬件不断微型化的同时,应用系统向着复杂化、大型化的方向发展。
数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。
因此在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据的完整性与正确性。
只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。
虽然对于小项目或中等规模的项目,开发人员可以很容易地利用范式理论设计出一套符合要求的数据库,但对于一个包含大型数据库的软件项目,就必须有一套完整的设计原则与技巧。
1. 设计原则在设计数据库时,至关重要的工作就是要理解为之建模的业务职能和表示这些业务职能的数据库概念及功能,并能准确地设计数据库,进而建立优化的业务模型。
因为数据库的设计在整个系统中是至关重要的一步,一旦数据库设计完成,在进行修改及优化就需花费大量的时间。
因此,再设计数据库时,应考虑以下事项:1)规范命名。
所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。
2)控制字段的引用。
在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。
采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。
3)库表重复控制。
在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。
通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。
图书馆管理系统数据库设计正文一、设计背景图书管理是高校内每一个系部或院部都必须切实面对的工作, 但一直以来人们使用传统的人工方式管理图书资料。
这种方式存在着许多缺点, 如效率低、保密性差且较为繁琐。
另外, 随着图书资料数量的增加, 其工作量也将大大增加, 这必将增加图书资料管理者的工作量和劳动强度, 这将给图书资料信息的查找、更新和维护都带来了很多困难。
图书管理工作面对大量的可模块化处理的信息, 是当今信息革命的一个重要阵地。
我们小组开发图书管理信息系统就是采用现代化的信息管理方式代替手工管理方式, 提高图书管理工作效率, 作到信息的规范管理, 科学统计和快速查询, 让图书馆更好的为学校服务。
二、需求分析(1)系统目标图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强.数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
系统开发的总体任务是实现各种信息的系统化, 规范化和自动化。
(2)需求定义图书馆管理系统开发。
系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化, 实现对图书资料的集中统一的管理。
我们的系统主要实现对图书馆信息的管理, 主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。
本系统结构分为读者信息管理、图书信息管理, 读者管理可以浏览读者的信息, 可以对读者信息进行维护。
图书管理可以浏览图书的信息, 可以对图书信息进行维护。
借阅管理可以显示当前数据库中书籍借阅情况, 可以对借阅信息进行维护。
本系统主要解决的问题是利用关键字对数据库进行查询。
三、功能说明本系统需要完成的功能主要有6部分:(1)实现对图书信息的修改, 包括定义、查询、更新、删除等操作图书信息包括图书编号, 书名, 作者姓名, 出版社, 出版日期, 在库数, 所在书库。
入库日期, 出库日期等。
数据库应用举例编辑单位:人防一队09风水参加人员教员:蒋成明领队:冯云收集:杨佳鑫汤瑞编辑:赵廷洪辅助:索朗旺堆潘登目录一、设计目的 (4)二、设计内容 (5)三、E--R图 (7)四、设计过程 (12)五、数据库实现 (16)六、设计总结 (20)一、设计目的(需求分析)为了便于管理员有效管理图书借阅、归还,并详细记录图书借阅与留存以及归还与延期情况,能准确记录读者相关信息,方便图书管理人员管理图书室,为学校建立一个便捷、快速借书系统,需要建立一个系统数据库来存储读者、书籍、借阅信息、管理员以及相关管理员信息。
帮助管理员随时掌握书籍去向和整理书刊,让读者能明确自己的借阅相关信息,使读者能自觉遵守图书馆相关条令,从而保证图书安全和图书馆书籍不丢失,更是利于管理人员管理图书,为需要借阅的读者提供准确的书籍信息。
在日常的图书馆管理中,需要建立一个系统的表格来合理安排管理员相关任务和配置给管理员必要的权限,以方便管理员清楚自己的职责和任务,并能方便学校了解管理员信息。
由于各层管理员不同,在相互交接班或换班时,需要清晰记录更改信息以便于学校对管理员调剂和任派。
图书是图书馆的细胞,每一个读者都应该爱惜图书,不能损坏和弄丢图书,建立一个掌控图书流向的表格,督促读者严格按照图书馆借阅要求借阅图书,而且应该按时归还图书,对于损坏和丢失图书的应该予以相应的处罚。
二、设计内容(概念结构设计)1、管理员(编号,职称,对应密码,对应权限,所属楼层);2、楼层(楼层号,图书类别,管理员编号,容纳量);3、书籍(书号,书名,作者,出版社,总册数,库存量,应属楼层);4、读者(证号,姓名,联系方式,读者类别,已借图书,未还图书,可借图书数);5、读者借阅(证号,姓名,已借图书数,越期图书数,越期罚金)6、读者类别(读者类别,可借书总量,可借书籍数,借书凭证类别,备注);7、借阅信息(书号,证号,管理员编号,借阅日期,应归还日期,实际归还日期);设计要求:1、能方便管理员浏览书籍信息,并对书籍信息进行维护(添加、删除),帮助读者查找所需图书相关信息(库存、能否借);2、能方便管理员浏览读者信息,并对读者信息进行维护(添加、删除),并在需要管理读者信息时能及时通知读者;3、显示当前数据库中管理员配置和调剂情况,和图书库存与流向相关信息,为管理员提供便捷服务;4、能方便管理员浏览借阅信息,并对借阅信息进行维护,及时给读者有关自己的借阅情况;5、能方便及时学校获取图书借阅与库存信息,清晰明了图书馆运营情况,掌控学校学员学习动向和学习热情;6、能为保证图书馆图书安全提供有效保证,帮助读者自觉遵守图书馆借阅规则,养成良好的借阅习惯;三、E - R 图(概念结构设计)图3.1各实体间关系E-R图图3.2管理员属性E-R图图3.3楼层属性E-R图图3.4书籍属性E-R图可借书总数可借书数借书凭证备注类别图3.5读者类别属性E-R图Array图3.6读者属性E-R图证号姓名越期书数越期罚金已借书数图3.7读者借阅属性E-R图Array图3.8借阅信息属性E-R图四、设计过程(逻辑结构设计)表4.1管理员信息表表4.3书籍信息表表4.4读者类别信息表表4.5读者类别信息表(2)表4.6读者信息表表4.7读者借阅信息表五、数据库的实现(数据库的实施)create database tsgglxt **//创建数据库//**表4.8借阅信息表create table gly **//创建管理员表格//** (gbh char(10) unique not null,gzc varchar(10) unique,gmm char(10) not null,gqx varchar(20),gsslc int ,primary key (gbh)); **//编号是主码//**create table lc **//创建楼层表格//**(llch int unique not null,ltslb char(10) not null,gbh char(10) not null,lrnl int not null,primary key (llch), **//楼层号是主码//**foreign key (gbh) references gly(gbh));**//管理员编号是外码,鉴于管理员表格//**create table sj **//创建书籍表格//**(ssh char(20) unique not null,ssm varchar(20) not null,szz varchar(10) not null,scbs varchar(20),szcs int not null, skc int not null,llch int not null,primary key (ssh), **//书号是主码//**foreign key (llch) references lc(llch)); **//楼层号是外码,鉴于楼层表格//**create table lbxx **//创建类别信息表格//**(dlb varchar(10) not null,lkjsl int not null,lkjsj char(5) not null,lpz varchar(10),lbz varchar(20),primary key (dlb)); **//类别是主码//****//输入类别信息值//**insert into lbxx values('教员','4','60','工作证','无');insert into lbxx values('研究生学员','4','30','借书证','本院学员'); insert into lbxx values('本科学员','3','30','借书证','本院学员'); insert into lbxx values('外来人员','0','0','无','只可阅读');create table dz **//创建读者表格//** (dzh char(20) not null,dxm varchar(10) unique,dlb varchar(10) check(dlb in('教员' ,'研究生学员','本科学员','外来人员')),dlxfs char(20),dyj varchar(20),dwhts varchar(20),dkj int,primary key (dzh ), **//证号是主码//**foreign key(dlb) references lbxx(dlb));**//类别是外码,鉴于读者类别表//**create table dzjy **//创建读者借阅表格//**(dzh char(20) primary key not null,dxm varchar(20) unique ,yjss int,yqss int,yqfj int,foreign key(dzh) references dz(dzh));**//读者证号是外码,鉴于读者表格//**create table jyxx **//创建借阅信息表格//**(ssh char(20) not null,dzh char(20) not null,gbh char(10) unique not null,jyrq datetime not null,ygh datetime not null,sjgh datetime not null,primary key (ssh,dzh), **//书号、证号是主码//**foreign key (ssh) references sj(ssh),**//书号鉴于书籍表格//** foreign key (dzh) references dz(dzh));**//证号鉴于读者表格//**六、设计总结(心得体会)此次图书馆管理系统数据库设计,加强和巩固了我们对数据库知识的理解和掌握,并通过实际练习使我们初步理解到创建数据库的途径和所需准备的工作。
数据库设计实例分析
一、需求分析实例
现要开发高校图书管理系统。
经过可行性分析和初步的需求调查,确定了系统的功能边界,该系统应能完成下面的功能:
(1)读者注册。
(2)读者借书。
(3)读者还书。
(4)图书查询。
1、数据流图
顶层数据流图反映了图书管理系统与外界的接口,但未表明数据的加
工要求,需要进一步细化。
根据前面图书管理系统功能边界的确定,再对图书管理系统顶层数据流图中的处理功能做进一步分解,可分解为读者注册、借书、还书和查询四个子功能,这样就得到了图书管理系统的第0层数据流图
从图书管理系统第0层数据流图中可以看出,在图书管理的不同业务中,借书、还书、查询这几个处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深层次的分析,即构建这些处理的第1层数据流图。
下面的图8-7分别给出了借书、还书、查询子功能的第1层数据流图
2、数据字典
2.1 数据项
数据项名称:借书证号
别名:卡号
含义说明:惟一标识一个借书证
类型:字符型
长度:20
……
2.2 数据结构
(1)名称:读者类别
含义说明:定义了一个读者类别的有关信息
组成结构:类别代码+类别名称+可借阅数量+借阅天数+超期罚款额(2)名称:读者
含义说明:定义了一个读者的有关信息
组成结构:+性别+所在部门+读者类型
(3)名称:图书
含义说明:定义了一本图书的有关信息
组成结构:图书编号+图书名称+作者++价格
……
2.3 数据流
(1)数据流名称:借书单
含义:读者借书时填写的单据
来源:读者
去向:审核借书
数据流量:250份/天
组成:借书证编号+借阅日期+图书编号
(2)数据流名称:还书单
含义:读者还书时填写的单据
来源:读者
去向:审核还书
数据流量:250份/天
组成:借书证编号+还书日期+图书编号
……
2.4 数据存储
(1)数据存储名称:图书信息表
含义说明:存放图书有关信息
组成结构:图书+库存数量
说明:数量用来说明图书在仓库中的存放数
(2)数据存储名称:读者信息表
含义说明:存放读者的注册信息
组成结构:读者+卡号+卡状态+办卡日期
说明:卡状态是指借书证当前被锁定还是正常使用(3)数据存储名称:借书记录
含义说明:存放读者的借书、还书信息
组成结构:卡号+书号+借书日期+还书日期
说明:要求能立即查询并修改
……
2.5 处理过程
(1)处理过程名称:审核借书证
输入:借书证
输出:认定合格的借书证
加工逻辑:根据读者信息表和读者借书证,如果借书证在读者信息表中存在并且没有被锁定,那么借书证是有效的借书证,否则是无效的借书证。
……
二、概念结构设计实例
1.标识图书管理系统中的实体和属性
参照数据字典中对数据存储的描述,可初步确定三个实体的属性为:
读者:{卡号,,性别,部门,类别、办卡日期,卡状态}
读者类别:{类别代码,类别名称,可借阅天数、可借阅数量,超期罚款额}
图书:{书号,书名,作者,价格,,库存数量}
借还记录:{卡号,书名,借书日期,还书日期}
其中有下划线的属性为实体的码。
2.确定实体间的联系
三、逻辑结构设计实例
1、图书管理系统的关系模型
将在概念结构阶段得到的基本E-R图转换成关系模型,如下表所示:关系名属性及码其他约束条件
读者借书证号,,性别,部门,类
别代码,办证日期,借书证
状态1、类别代码引用读
者类别关系中的类别
代码;
2、不允许为空;
2、将关系设计成SQL Server 2005下相应的表reader(读者表)
dzclass(读者类别表)
book(图书表)
borrow(借还表)。