您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 参考图书管理系统数据库设计
图书管理系统数据库设计【仅供参考】1、摘要:一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认。2、需求分析针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:?读者信息属性:读者学号,读者姓名,读者性别,联系电话,所在系,生效日期,失效日期,违章状况,累计借书,备注主键:读者学号?书籍信息属性:ISBN,书名,作者,出版社,出版日期,简介,备注主键:ISBN?管理员信息属性:工作号,姓名,性别,电话,家庭住址,备注主键:工作号2.1数据流程通过对系统的调查和可行性分析,画出系统的数据流程图:2.1.1读者学生对图书管理系统的要求有:?能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。?能够方便地借阅图书、续借图书、归还图书?能够查询自己的基本资料、图书情况?能够熟悉图书管理系统的使用。读者进入系统工作的流程图为:注册查询修改信息借阅续借图书归还注销2.1.2图书管理员他们对图书管理系统的要求有:1.能方便的对图书进行录入登记,注销陈旧的书籍。2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。3.能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。图书管理员工作的流程图为:注册录入图书录入新生注销图书注销学生注销修改个人信息超期处理3、概念模型设计数据库需要表述的信息有以下几种:(1)读者信息(2)书籍信息(3)管理员信息(4)读者与书籍之间的关系(借阅关系E-R图)(5)管理员与书籍之间的关系(管理员_书籍E-R图)(6)管理员与学生之间的关系(管理员_学生E-R图)3.1管理员与读者之间的关系3.3管理员与书刊之间的关系3.3读者与书籍之间的关系(借阅三元关系)4、逻辑设计从理论‘E/R模型’到理论‘关系模型’的整理转换,通过E/R模型到关系模型的转化,可以得到如下关系模式:借阅关系属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。主键:工作号,读者学号,ISBN管理员_书籍关系属性:工作号,ISBN,添加时间,是否在馆主键:工作号,ISBN管理员_学生关系属性:工作号,读者学号,确认借还主键:工作号,读者学号5、数据库逻辑结构5.1图书信息表[Page]字段名称数据类型是否可为空ISBN(key)varchar(20)否书名varchar(50)否作者varchar(12)否出版社varchar(50)是出版日期datetime是简介varchar(200)是备注varchar(200)是5.2读者信息表字段名称数据类型是否可为空读者学号(key)varchar(12)否读者姓名varchar(10)否读者性别varchar(2)否联系电话varchar(10)是所在系varchar(12)否生效时间datatime是失效时间datatime是违章状况varchar(2)是累计借书int是备注varchar(100)是5.3管理员信息表字段名称数据类型是否可为空工作号(key)varchar(12)否姓名varchar(12)否性别varchar(2)否电话varchar(12)是住址varchar(12)是备注varchar(100)是5.4借阅表字段名称数据类型是否可为空工作号char(10)否ISBNchar(10)否读者学号char(10)否借书日期datetime否还书日期datetime否是否续借char(4)否备注varchar(100)是5.5管理员_书籍字段名称数据类型是否可为空工作号char(10)否ISBNchar(10)否添加时间datatime是是否在馆char(14)是5.6管理员_学生字段名称数据类型是否可为空工作号char(10)否读者学号char(10)否借还确认char(4)否6、物理设计从理论‘关系模型’到实现\\实施‘数据库建立’,物理文件的安排和建立索引6.1建立索引为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:(1)读者信息(读者学号)(2)书籍信息(ISBN)(3)管理员信息(工作号)(4)借阅(工作号,读者学号,ISBN)(5)管理员_书籍(工作号,ISBN)(6)管理员_学生(工作号,读者学号)6.2用SQL实现设计实现该设计的环境为Windows2000Perfessinal+MSSQLServer2000.06.2.1建立图书信息表createtable图书(ISBNvarchar(20)notnullprimarykey,书名varchar(50)notnull,作者varchar(12)notnull,出版社varchar(50),出版日期datetime,简介varchar(200),备注varchar(200),)6.2.2建立读者信息表createtable读者(读者学号varchar(12)notnullprimarykey,读者姓名varchar(10)notnull,读者性别varchar(2)notnull,联系电话varchar(12),所在系varchar(20)notnull,生效日期datetime,失效日期datetime,违章状态char(2),[Page]累计借书int,备注varchar(100),)6.2.3建立管理员信息表createtable管理员(工作号varchar(12)notnullprimarykey,姓名varchar(12)notnull,性别varchar(2)notnull,电话varchar(12),家庭住址varchar(50),备注varchar(100))6.2.4建立借阅表createtable借阅(工作号char(10)notnull,ISBNchar(10)notnull,读者学号char(10)notnull,借书日期datetimenotnull,还书日期datetimenotnull,是否续借char(4)notnull,备注varchar(100))6.2.5建立管理员_书籍表createtable管理员_书籍(工作号char(10)notnull,ISBNchar(10)notnull,添加时间datetime,是否在馆char(4))6.2.6建立管理员_学生表createtable管理员_学生(工作号char(10)notnull,读者学号char(10)notnull,ISBNchar(10)notnull,借还确认char(4)notnull)6.2.7建立索引CREATEUNIQUEINDEX图书索引ON图书(ISBN)CREATEUNIQUEINDEX读者索引ON读者(读者学号)CREATEUNIQUEINDEX管理员索引ON读者(工作号)CREATEUNIQUEINDEX借阅索引ON借阅(工作号,读者学号,ISBN)CREATEUNIQUEINDEX管理员_书籍索引ON管理员_书籍(工作号,ISBN读者学号)CREATEUNIQUEINDEX管理员_学生ON管理员_学生(工作号,读者学号)6.2.8定义视图(1)读者表视图CREATEVIEW读者视图ASSELECT*FROM读者(2)图书表视图CREATEVIEW图书视图ASSELECT*FROM图书(3)管理员表视图CREATEVIEW管理员视图ASSELECT*FROM管理员者6.2.9管理员操作(1)注册(register)INSERTINTO管理员(工作号,姓名,性别,电话,家庭住址,备注)[Page]VALUES(#工作号,#姓名,#性别,#电话,#家庭住址,#备注)说明:在登记操作后,管理员得到一个唯一的工作号,可以根据这个工作号采查询和修改数据。(2)注销(unregister)DELETEFROMProviderWHERE(工作号=#工作号);(3)修改个人信息(update)UPdate管理员Set(工作号=#工作号,姓名=#姓名,性别=#性别,电话=#电话,家庭住址=#家庭住址,备注=#备注)WHERE(工作号=#工作号)(4)增加书籍(addbooks)INSERTINTO图书(ISBN,书名,作者,出版社,出版日期,简介,备注)VALUES(#ISBN,#书名,#作者,#出版社,#出版日期,#简介,#备注)INSERTINTO管理员_书籍表(工作号,ISBN,添加时间,是否在馆)VALUES(#工作号,#ISBN,#添加时间,#是否在馆)(5)删除书籍(deletebooks)DELETE图书WHERE(ISBN=#ISBN)(6)修改书籍(updatebooks)UPDATE图书(书名=#书名,作者=#作者,出版社=#出版社,出版日期=#出版日期,简介=#简介,备注=#备注)WHERE(ISBN=#ISBN)6.2.10读者操作(1)注册(register)INSERTINTO读者(读者学号,读者姓名,读者性别,联系电话,所在系,生效日期,失效日期,违章状况,累计借书,备注)VALUES(#读者学号,#读者姓名,#读者性别,#联系电话,#所在系,#生效日期,#失效日期,#违章状况,#累计借书,#备注)说明:在登记操作后,读者得到一个唯一的ID,可以根据这个ID来查询和修改自己的信息。(2)注销(unregister)DELETE读者WHERE(读者学号=#读者学号)(3)修改个人信息(update)UPDATE读者Set(读者姓名=#读者姓名,联系电话=#联系电话,所在系=#所在系,生效日期=#生效日期,失效日期=#失效日期,违章状况=#违章状况,累计借书=#累计借书,备注=#备注)WHERE(读者学号=#读者学号)(4)查询(select)SELECTISBN,书名,作者,出版社FROM图书WHEREISBN=#ISBNOR书名=#书名6.2.11管理员对借阅关系的操作(1)插入读者的信息(insert)INSERTINTO借阅(工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注)VALUES(#工作号,#读者学号,#ISBN,#是否续借,#借书日期,#还书日期,#备注)(2)更新信息(update)①更新借出信息UPDATE借阅SET(借书日期=#借书日期,还书日期=借书日期+30,是否续借=0)WHERE(工作号=#工作号AND读者学号=#读者学号ANDISBN=#ISBN)UPDATE管理员_图书SET(是否在馆=0)WHERE(ISBN=#ISBN)UPDATA学生SET(累积借书=累积借书+1)WHERE(读者学号=#读者学号)INSERTINTO管理员_学生(工作号,读者学号,确认借还,ISBN)VALUES(#工作号,#读者学号,”0”,#ISBN))②更新续借信息UPDATE借阅SET(是否续借=#是否续借)WHERE(工作号=#工作号AND读者学号=#读者学号ANDISBN=#ISBN)[Page]③更新还书信息UPDATE管理员_图书SET(是否在馆=1)WHERE(ISBN=#ISBN)UPDATE管理员_学生SET(确认借还=”1”)WHERE(工作号=#工作号AND读者学号=#读者学号ANDISBN=#ISBN)6.2.12触发器的建立(1)时间触发器:CreateTrigger时间On借阅Forupdate,insert,deleteAswhile(selectdatename(weekday,getdate()))=’星期天’beginprint’时间错误’end(2)update触发器:CreateTrigger续借On借阅forUpdateAsIfUpdate(是否续借)beginUpdate借阅Set还书日期=还书日期
本文标题:参考图书管理系统数据库设计
链接地址:https://www.777doc.com/doc-2564134 .html