图书馆管理系统数据库设计.doc_第1页
图书馆管理系统数据库设计.doc_第2页
图书馆管理系统数据库设计.doc_第3页
图书馆管理系统数据库设计.doc_第4页
图书馆管理系统数据库设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书馆管理系统数据库设计一、需求分析图书馆管理系统应该能够提供所有借阅者的详细信息,以及馆内库存的详细情况,对借书和还书两大功能进行合理的操作并登记。图书馆管理系统的主要任务是建立详尽的借阅信息,以及馆内的书种及对应书刊的记录,并对借阅者和其借阅的书籍进行登记。在不同的图书馆之间,图书管理系统会存在一定的差异。1.1具体功能模块及描述1、 安全性管理:给每个管理员一个用户名和密码,以登录图书馆管理系统,便于身份验证,管理员可以拥有最高权限对数据库进行所有操作。同样拥有一个用户名和密码,但普通用户只能进行查询操作,看个人信息和图书馆中图书信息不可修改它们。(1)管理员:增加、删除、查询、修改图书信息;增加、删除、查询、修改读者信息;图书借出、图书归还、逾期还书处理、图书注销 (2)读者: 查询图书信息、查看借书情况、查询个人信息、历史借书情况、超期还书警告。2、 读者信息管理:该功能模块用于管理相关的读者信息,包括的子功能模块如下图所示读者信息读者档案管理借阅证挂失与恢复读者类型管理图11 读者信息功能模块“读者类型”用于设置读者的类型及相关的信息,内容包括读者的身份、可借册数,可续借次数等。“读者档案管理”用于设置读者相关的信息,内容包括编号、姓名、身份、读者性别、联系方式、登记日期、有效期至、违规次数、现借图书数、是否挂失。“借书证挂失与恢复”用于挂失和恢复读者的借书证,挂失后该编号的读者不能再借书。3、 图书管理:该功能模块用于管理图书相关的信息包含的功能模块如下图所示图书管理图书基本信息图书档案管理图书征订图书盘点图书查看图书注销图12 “图书管理”功能模块 “图书基本信息设置”用于设置图书的类型及相关的信息,内容包括ISBN、书名、版次、类型、作者、出版社、价格、现存量、库存总量。“图书档案管理”用于设置图书相关信息,内容包括编号、ISBN、入库时间。“图书征订”用于订购新图书,内容包括征订编号、ISBN、订购数量、订购日期。“图书注销”用于注销图书,被注销的图书不可以再借出,并且应将图书信息进行修改。“图书查看”用于查看某本书的情况。“图书盘点”输出图书的在库清单供盘点使用。4、图书流通管理:此功能模块用于管理图书流通环节的相关的操作,包括如下图所示的功能模块。图书馆流通管理图书借阅图书归还图书丢失图书罚款图13 “图书流通管理”功能模块“图书借阅”用于登记读者借阅图书的记录并减少图书在库的库存,登记内容包括借阅编号、图书编号、读者编号、借阅时间、应还时间、续借次数、图书状态等。图书馆管理员作为借阅者的代操纵借书和还书者。借书时只要输入借阅的书刊编号就可以,然后输入借阅者的借阅卡号,完成后提交,系统验证借阅者是否有效,若有效借阅请求被接收并处理,系统将库存中图书数量减一,同时将读者信息中借书量加一。“图书归还”用于登记读者归还图书的记录并增加图书在库的库存,登记内容包括归还编号、图书编号、读者编号、归还时间等。系统查询借阅此书的人的信息以及该书被借日期判断是否过期,若过期将进行罚款,并将该书刊的借阅记录改为已还。“图书丢失”用于报失图书,内容包括丢失编号、图书编号、读者编号、赔偿金额、操作时间等。“图书罚款”用于对图书超期、丢失等情况的罚款管理,内容包括罚款编号、图书编号、读者编号、罚款日期、罚款金额、是否交款、备注等。1.2 系统总流程图系统流程图如图14所示:管理员读者信息流通管理图书信息图书借阅图书归还图书征订图书罚款修改查询查询修改图书注销图14系统总流程图二、概念模型设计根据以上需求分析,一个基本的图书馆管理系统数据库大致包括10个表,分别存放相应子功能模块的数据信息,期中“读者信息”和“图书信息”表是关键的表,用于存放图书馆读者的信息和文献的信息,图书馆管理系统实际上就是对读者和文献的管理。其他涉及读者信息和文献信息的表,都只是记录相应的编号,并根据作为外键的“编号”字段相对应。数据库要表述的信息有:(1)读者类型(2)读者信息(3)图书基本信息(4)图书信息(5)图书征订(6)图书借阅(7)图书归还(8)图书丢失(9)图书罚款(10)图书注销2.2各个主要实体的属性的E-R图各实体及属性图如图31所示:可续借次数可借时间可借册数身份读者类型违规次数有效期至登记日期读者性别身份联系方式编号读者信息姓名现借图书量库存总量价格书名ISBN版次作者出版社图书基本信息现存量图书信息编号ISBN入库时间图书丢失丢失编号图书编号读者编号偿还金额操作时间图书征订书名作者出版社价格订购数量订购单价订购日期图书注销注销编号图书编号操作时间图书罚款罚款编号图书编号读者编号罚款日期罚款金额是否交款备注图21各实体及属性2.2各实体及其联系的E-R图读者信息分类还书损坏过期购买图书信息读者类型借书图书罚款图书征订丢失图书丢失注销图书注销分类图书基本信息图22各实体及其联系图三、逻辑设计3.1一般逻辑模型设计3.1.1由ERD导出一般关系模型的四条原则为原则1(实体转换为关系模式):ERD中每个独立的实体转换为一个关系模式,实体的属性组成关系的属性,实体的主标识转换成关系的主码。原则2(从实体及其主从联系转换为关系模式):ERD中一个从实体及其主从联系转换为一个关系,从实体的属性及其主实体关系的属性组成的属性,其主实体关系的主码,在主从关系联系为一对多联系时还要加上可把同一主实体个体所对应的从实体个体区分开来的,从实体的一组属性,作为该关系的主码。对子类实体可作类似一对一联系的从实体的转换。原则3(一对多联系在关系模式中的表示):ERD中的一个一对多联系通过在其“多”实体关系上增加“1”实体关系的主码(作为外码)和联系本身的属性来表示。原则4(多对多联系转换为关系):ERD中的一个多对多联系转换为一个关系,其被联系实体关系的主码和该联系本身的属性一起组成的属性,被联系关系的主码组成该关系的复合主码。3.1.2读者类型的关系模式读者类型(身份、可借册数、可续借册数、可借时间)其中身份是本表的主键3.1.3 图书基本信息的关系模式图书基本信息(ISBN、书名、版次、类型、作者、出版社、价格、现存量、库存总量)其中ISBN号是主键3.1.4 读者信息的关系模式读者信息(编号、姓名、身份、读者性别、联系方式、登记日期、有效期至、违规次数、现借图书数、是否挂失)其中编号是主码,身份是外码3.1.5 图书信息的关系模式图书信息(编号、ISBN、入库时间)其中编号是主码,ISBN号是外码3.1.6 图书征订的关系模式图书征订(征订编号、类型、征订数量、征订日期)其中征订编号是主码,类型是外码3.1.7图书借阅的关系模式图书借阅(借阅编号、图书编号、读者编号、借阅时间、应还时间、续借次数、图书状态)其中借阅编号是主码,图书编号和读者编号是外码3.1.8图书归还的关系模式图书归还(归还编号、图书编号、读者编号、归还时间)其中归还编号是本表的主码,图书编号和读者编号是外码3.1.9图书丢失的关系模式图书丢失(丢失编号、图书编号、读者编号、偿还金额、操作时间)其中丢失编号是主码,图书编号和读者编号是外码3.1.10图书罚款的关系模式图书罚款 (罚款编号、图书编号 、读者编号、罚款日期 、罚款金额 、是否交款、备注)其中罚款编号是主码,图书编号和读者编号是外码3.1.11图书注销的关系模式图书注销(注销编号、图书编号、注销时间)其中注销编号是主码,图书编号是外码3.2具体逻辑模型设计3.2.1读者类型表字段名数据类型能否为空说明身份char (20)not nullprimary key可借册数intnot null可续借次数intnot null可借时间char (10)not null3.2.2图书基本信息表字段名数据类型能否为空说明ISBNchar (20)not nullprimary key书名char(20)not null版次char(20)not null类型char(20)not null作者char(20)not null出版社char(20)not null价格floatnot null现存量intnot null库存总量intnot null3.2.3读者信息表字段名数据类型能否为空说明编号char(20)not nullprimary key姓名char(20),not null身份char(20)not nullforeign key (身份) references 读者类型(身份)性别char(8)not nullcheck (性别 in (男,女),联系方式char(12)not null登记日期datetimenot null有效期至datetimenot null违规次数intnot null借书数量Intnot null是否挂失char(8)not null3.2.4图书信息表字段名数据类型能否为空说明编号char(20)not nullprimary key,ISBNchar (20)not nullforeign key(ISBN)references 图书基本信息(ISBN)入库时间datetimenot null3.2.5图书借阅表字段名数据类型能否为空说明借阅编号char (20)not nullprimary key图书编号char (20)not nullforeign key (图书编号) references 图书信息(编号)读者编号char (20)not nullforeign key (读者编号) references 读者信息(编号)借阅时间datetimenot null应还时间datetimenot null续借次数intnot null3.2.6图书归还表字段名数据类型能否为空说明归还编号char (20)not nullprimary key图书编号char (20)not null读者编号char (20)not nullforeign key(图书编号) references 图书信息(编号)归还时间datetimenot nullforeign key (读者编号) references 读者信息(编号)3.2.7图书征订表字段名数据类型能否为空说明征订编号char(20)not nullprimary keyISBNchar(20)not nullforeign key (ISBN)references 图书基本信息 (ISBN)征订数量intnot null征订日期intnot null3.2.8图书罚款表字段名数据类型能否为空说明罚款编号char(20)not null图书编号char(20)not nullForeign key (图书编号) references 图书信息(编号)读者编号char(20)not nullForeign key (读者编号) references 读者信息(编号)罚款日期datetimenot null罚款金额char(10)not null是否交款char(8)not null备注char(10)not null3.2.9图书丢失表字段名数据类型能否为空说明丢失编号char(20)not nullprimary key图书编号char(20)not null读者编号char(20)not null偿还金额char(10)not null操作时间datetimenot null3.2.10图书注销表字段名数据类型能否为空说明注销编号char(20)not nullprimary key图书编号char(20)not nullforeign key (图书编号) references 图书信息(编号)注销时间datetimenot null四、物理设计和保护设计4.1创建图书馆管理系统数据库和库中的各表-创建图书馆管理系统数据库Create database 图书馆管理系统go use 图书馆管理系统go-创建“读者类型”表Create table 读者类型(身份 char (20) primary key, 可借册数 int,可续借次数 int,可借时间 char (10)go-创建“图书基本信息”表create table 图书基本信息(ISBN char (20)primary key,书名 char(20),版次 char(20),类型 char(20),作者 char(20),出版社 char(20),价格 float,现存量 int,库存总量 int)go-创建读者信息表:Create table 读者信息(编号 char(20)primary key,姓名 char(20),身份 char(20),性别 char(8)check(性别 in(男,女),联系方式 char(12),登记日期 datetime,有效期至 datetime,违规次数 int,借书数量 int,是否挂失 char(8),foreign key (身份) references 读者类型(身份)Go-创建图书信息表Create table 图书信息(编号 char(20) primary key, ISBN char (20),入库时间 datetimeforeign key (ISBN)references 图书基本信息(ISBN)go-创建“图书借阅”表Create table 图书借阅 (借阅编号 char (20) primary key,图书编号 char (20),读者编号 char (20),借阅时间 datetime,应还时间 datetime,续借次数 int,Foreign key (图书编号) references 图书信息(编号),Foreign key (读者编号) references 读者信息(编号) go-创建“图书归还”表Create table 图书归还(归还编号 char (20) primary key,图书编号 char (20),读者编号 char (20),归还时间 datetime,Foreign key(图书编号) references 图书信息(编号),Foreign key (读者编号) references 读者信息(编号)go-创建“图书征订”表Create table 图书征订 (征订编号 char(20) primary key,ISBN char(20),征订数量 int ,征订日期 datetime ,foreign key (ISBN)references 图书基本信息 (ISBN)go-创建“图书罚款”表 Create table 图书罚款(罚款编号 char(20) primary key,图书编号 char(20),读者编号 char(20),罚款日期 datetime,罚款金额 char(10),是否交款 char(8),备注 char(10),Foreign key (图书编号) references 图书信息(编号),Foreign key (读者编号) references 读者信息(编号)Go-创建“图书丢失”表Create table 图书丢失(丢失编号 char(20) primary key,图书编号 char(20),读者编号 char(20),偿还金额 char(10),操作时间 datetime Foreign key (图书编号) references 图书信息(编号),Foreign key (读者编号) references 读者信息(编号)Go-创建“图书注销”表Create table 图书注销 (注销编号 char(20) primary key,图书编号 char(20),注销时间 datetime,Foreign key (图书编号) references 图书信息(编号)Go4.2 向图书馆管理系统数据库中插入数据-插入读者类型Insert into 读者类型 values(学生,5,2,30天)Insert into 读者类型 values(教师,10,4,60天)-插入图书基本信息Insert into 图书基本信息 values (7-302-12266-0,经典案例开发,2006年1月第1版,计算机,马里杰,清华大学出版社,48.00,2,2)Insert into 图书基本信息 values(7-302-12266-1,经典实例精讲,2006年1月第1版,计算机,夏邦贵,机械工业出版社,29.8,3,3)Insert into 图书基本信息 values(7-302-12266-4,电工电子实训教程,2006年1月第1版,电工,向守兵,电子科技大学出版社,23.0,2,2)Insert into 图书基本信息 values(7-302-12266-3,英语专业四级词汇,2006年1月第1版,英语,徐向珍, 中国建材工业出版社,19.0,2,2)-插入读者信息Insert into 读者信息 values(s20064051301,陈蕊,学生,女2006-09-10,2010-06-01,0,0,否)Insert into 读者信息 values(s20064051302,曾庆春,学生,男,2233456,2006-09-10,2010-06-01,0,0,否)Insert into 读者信息 values (s20064051338,李利芳,学生,女,16931600742,2006-09-10,2010-06-01,0,0,否)Insert into 读者信息 values(t000001,李勇,教师,男2000-01-20,2050-01-20,0,0,否)Insert into 读者信息 values (t000002,刘晨,教师,女,2222546,2006-02-01,2056-02-01,0,0,否)-插入图书信息Insert into 图书信息 values (TP0000001,7-302-12266-0,2006-06-01)Insert into 图书信息 values (TP0000002,7-302-12266-0,2006-06-01)Insert into 图书信息 values(TP0000003,7-302-12266-1,2006-05-01)Insert into 图书信息 values(TP0000004,7-302-12266-1,2006-05-01)Insert into 图书信息 values(TP0000005,7-302-12266-1,2006-05-01)Insert into 图书信息 values(TM0000006,7-302-12266-4,2004-12-12)Insert into 图书信息 values(TM0000007,7-302-12266-4,2004-12-12)Insert into 图书信息 values(H0000008,7-302-12266-3,2006-05-20)Insert into 图书信息 values(H0000009,7-302-12266-3,2006-05-20)Insert into 图书信息 values (TP0000010,7-302-12266-0,2008-06-10)4.3各表之间的联系图如图41所示图41各表之间的联系图五、具体功能实现5 .1 图书管理员的操作5.1.1图书管理员对读者信息的管理(1)插入新读者 编号s20064051303,姓名:朱康,身份:学生,性别:男,,联系方式 2232365,登记日期 2008-06-10,有效期至 2010-06-01,违规次数 0,借书数量 0,是否挂失 否实现方法:insert into 读者信息 values(s20064051303,朱康,学生,男, 2232365,2008-06-10,2010-06-01, 0, 0,否)验证select * from 读者信息(2)读者信息的查询:select 姓名,借书数量,违规次数 from 读者信息(3)修改读者信息:实现方法update 读者信息 set 联系方式=2232334 where 编号=s20064051338验证select * from 读者信息 where 编号=s200640513385.1.2图书管理员对图书信息的管理(1)插入图书信息 编号:TP0000010,ISBN=7-302-12266-0,入库时间=2008-06-10实现方法:Insert into 图书信息 values (TP0000010,7-302-12266-0,2008-06-10)验证:select * from 图书信息 where 编号=TP0000010(2)图书查阅 用ISBN号查阅select 编号,图书信息.ISBN,书名,作者,库存总量,现存量from 图书信息,图书基本信息where 图书信息.ISBN=图书基本信息.ISBN and 图书信息.ISBN=7-302-12266-0(3)图书信息修改 将图书编号=TP0000010的图书入库时间改为2008-06-11实现方法:update 图书信息 set 入库时间=2008-06-11 where 编号=TP0000010验证:select * from 图书信息 where 编号=TP0000010(4)图书统计Select sum(现存量) 现存总量From 图书基本信息5.1.3图书管理员对图书借阅的管理学号为s20064051338从图书馆里借出编号为TP0000001的书实现方法:insert into 图书借阅 values(0001,TP0000010,s20064051338,2008-06-11,2008-07-11,0,借出)验证方法:select * from 图书借阅 where 借阅编号=0001借出后此类图书现库存量减少一本,读者信息中借书量增加一本实现方法: update 图书基本信息set 现存量=现存量-1 where 图书基本信息.ISBN=(select 图书基本信息.ISBNfrom 图书信息,图书基本信息 where 图书信息.编号=TP0000010 and 图书信息.ISBN=图书基本信息.ISBN)验证:select ISBN,书名 ,版次,作者,库存总量,现存量from 图书基本信息where 图书基本信息.ISBN=(select 图书基本信息.ISBNfrom 图书信息,图书基本信息where 图书信息.编号=TP0000010 and 图书信息.ISBN=图书基本信息.ISBN)实现方法:update 读者信息 set 借书数量=借书数量+1 where 编号=s20064051338验证:select 编号,姓名,借书数量 from 读者信息 where 编号=s200640513385.1.4图书管理员图书归还的管理还书时相应的图书,图书基本信息中现库存量增加一本,同时读者信息中借阅图书册数减少一本,通过查阅应还日期判断是否过期,过期则进行罚款并记录违规,还书时若图书损坏也需要罚款(1)学号为s20064051301归还图书馆里借出的编号为TP0000001的书实现方法:insert into 图书归还 values(0001,TP0000010,s20064051338,2008-07-15)验证:select * from 图书归还 where 归还编号=0001(2)读者信息中借书数量减一实现及验证:update 读者信息 set 借书数量=借书数量-1 where 编号=s20064051338select 编号,姓名,借书数量 from 读者信息 where 编号=s20064051338(3) 图书基本信息中现库存量加一实现及验证:update 图书基本信息 set 现存量=现存量+1 where 图书基本信息.ISBN=(select 图书基本信息.ISBNfrom 图书信息,图书基本信息 where 图书信息.编号=TP0000010 and 图书信息.ISBN=图书基本信息.ISBN)select ISBN,书名 ,版次,作者,库存总量,现存量 from 图书基本信息where 图书基本信息.ISBN=(select 图书基本信息.ISBN from 图书信息,图书基本信息where 图书信息.编号=TP0000010 and 图书信息.ISBN=图书基本信息.ISBN)(4)将图书借阅表中的状态改为已还实现方法:update 图书借阅 set 状态=已还 where 借阅编号=0001验证:select 借阅编号,状态 from 图书借阅(5)判断是否过期select 图书借阅.读者编号, 应还时间,归还时间from 图书借阅,图书归还where 图书借阅.图书编号=TP0000010过期将信息记入图书罚款表中5.1.5图书管理员对图书罚款的管理实现方法:insert into 图书罚款 values (00001,TP0000010,s20064051338,2008-07-15,4角,已交,图书过期)验证:select * from 图书罚款 where 罚款编号=00001读者信息中违规次数加一实现方法:update 读者信息 set 违规次数=违规次数+1 where 编号=s20064051338验证:select 编号,姓名,违规次数 from 读者信息 where 编号=s200640513385.1.6管理员征订图书图书管理员征订2本ISBN号为7-302-12266-0的图书2本,图书征订表中插入该记录,图书基本信息中的现存量、库存总量加二,图书信息中插入两条ISBN号为7-302-12266-0的图书(1)插入图书征订表实现方法:insert into 图书征订 values (00001,7-302-12266-0,2,2008-06-11)验证:select * from 图书征订(2)修改图书基本信息中的信息实现方法:update 图书基本信息 set 现存量=现存量+2,库存总量=库存总量+2where ISBN=7-302-12266-0验证:select ISBN,书名 ,版次,作者,库存总量,现存量from 图书基本信息 where ISBN=7-302-12266-0(3)修改图书信息表实现方法:insert into 图书信息 values(TP0000011,7-302-12266-0,2008-06-11)insert into 图书信息 values(TP0000012,7-302-12266-0,2008-06-11)验证:select *from 图书信息5.1.7图书管理员对图书丢失的操作(操作前将编号为s20064051338的读者的借书过程在执行一次,设其将书丢失)(1)将丢失信息记入图书丢失表中实现方法:insert into 图书丢失 values(0001,TP0000010,s20064051338,50元,2008-06-11)验证:select *from 图书丢失(2)图书基本信息中的库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论