SQL Server数据库课程设计.doc_第1页
SQL Server数据库课程设计.doc_第2页
SQL Server数据库课程设计.doc_第3页
SQL Server数据库课程设计.doc_第4页
SQL Server数据库课程设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

SQL Server数据库课程设计图书馆管理系统计算机多媒体(网站开发)1班学号:2012121811叶茂林目录一.方案需求1.1引言.11.2事物需求.11.3数据需求.21.4关系模式.2二.方案图表设计2.1E-R图32.2数据流程图42.3数据组织6三.数据库源代码3.1数据库建立73.2数据初始化.9 四、结果数据检验 4.1 读者借阅图书.114.2 读者归还图书.123.3 读者续借图书124.4 读者查询借阅图书情况.13 4.5 读者检索图书信息. 14五系统维护5.1图书馆管理维护.17六.结束语6.1课程设计心得.17一.方案需求:1.1引言随着社会信息量的与日俱增,职场竞争的日趋激烈,越来越多的人更关注知识的积累、能力的培养。作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。对于日益扩大的图书馆,查找特定的书目总是借阅者或工作人员劳神费力,有时还没有结果。因此往往是投入了大量的人力和财力却得不到高效的管理效率。为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。本文以高校图书馆管理系统管理系统开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。采用结构化的功能模块设计系统功能,可读性好,易于扩充。基本功能全面,系统可读性好,易于维护、更新,安全性好。1.2事物需求1.在读者信息管理部分,要求:(1).可以查询读者信息。(2).可以对读者信息进行添加及删除的操作。2.在书籍信息管理部分,要求:(1).可以浏览书籍信息,要求:(2).可以对书籍信息进行维护,包括添加及删除的操作。3.在借阅信息管理部分,要求:。(1).可以浏览借阅信息。(2).可以对借阅信息进行维护操作。4.在归还信息管理部分,要求:(1).可以浏览归还信息(2).对归还信息可修改维护操作5.在管理者信息管理部分,要求:(1).显示当前数据库中管理者情况。(2).对管理者信息维护操作。6.在罚款信息管理部分,要求:(1).可以浏览罚款信息(2).对罚款信息可以更新1.3数据需求图书馆管理信息系统需要完成功能主要有:1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。2读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。3书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。4书籍类别信息的查询、修改,包括类别编号、类别名称。5书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。6书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。7借书信息的输入,包括读者借书证编号、书籍编号、借书日期。8借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。9还书信息的输入,包括借书证编号、书籍编号、还书日期。 10还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。11超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。12超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等1.4关系模式1.书籍类别(种类编号,种类名称)2.读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)3.书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)4.借阅(借书证编号,书籍编号,读者借书时间)5.还书(借书证编号,书籍编号,读者还书时间)6.罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。二.方案图表设计教师借阅图书期限较长,并且允许借阅的书本量较大。因此,将教师借阅关系与学生借阅关系分开较为适宜。2.1E-R总图:分类号书名作者出版社类别出版日期ISBN价格总量借出量年龄电话性别姓名学号系部编号系部名称专业编号专业名称归属归属系部专业归属学生学号与专业编号的联系学生学号与系部编号的联系系部编号与专业编号的联系借阅日期续借次数借阅日期续借次数学生图书学生借阅教师借阅教师工号姓名性别年龄职称电话2.2数据流程图:总数据流程图部分实际示意图相关信息写入借阅图书RBorrowBook图书信息表Book学生借阅图书信息表 StudentBooktri_Book图书库存量减1tri_SborrowNum借阅量未超5本学生借阅图书信息表 StudentBook相关信息写入归还图书RReturnBook读者还书信息表RDeleted图书信息表Book学生借阅图书信息表 StudentBooktri_SreturnBook图书库存量加1tri_SborrowNum删除借阅记录学生借阅图书信息表 StudentBook专业信息表Major学生信息表Student系部信息表Dept图书信息表Book查询图书借阅情况 RQueryBook获取图书相关信息计算学生专业信息计算学生系部信息获取学生相关信息综合信息输出图书信息表Book由存储过程RindexBook 查找匹配图书信息 综合信息输出给读者读者检索图书RIndexBook2.3数据组织将E-R图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。由于读者类别与读者、馆室与图书的联系方式是1:n(一对多),可以将其之间的联系与n端实体读者、图书合并,管理员与图书之间的维护联系也是1:n(一对多),同样也将其之间的联系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m:n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:图书:Book(BookID,BookNo,BookName,BookWriter,BookPublish,BookPrice,BookDate,BookClass,BookMain,BookPrim,BookCopy,BookState,BookRNo)读者:Reader(ReaID,ReaName,ReaSex,ReaNo,ReaLBID,ReaType,ReaDep,ReaGrade,ReaPref,ReaDate)管理员:Maneger(MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre)读者类别:ReaderTpye(LBID,LBName,LBnum,LBbqx,LBqx)馆室:Room(RoomNo,RoomMID,RoomNum,RoomAddre)借阅信息:Borrow(BookID,ReaderID,BookName,BookWriter,Outdate,YHdate)借阅历史:History(BookID,ReaderID,BookName,BookWriter,Outdate,Indate,YHdate)罚款信息:Fine (BookID,ReaderID,BookName,Outdate,Indate,Fine, CLState,MID)模型优化 关系模式Book,Reader,Room,ReaderType ,Maneger不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是借阅关系模式、借阅历史关系模式、罚款关系模式(Borrow,History,Fine)中存在着一些数据冗余,现将三个关系模型进行合并,消除冗余,优化为: 借阅信息:Borrow ( BookID,ReaderID,BookName,BookWriter, Outdate,Indate, YHdate,Fine,CLStaer,MID)三.数据库源代码:3.1数据库建立3.1.1创建数据库USE masterGOCREATE DATABASE librarysystemON ( NAME = librarysystem, FILENAME = d:librarysystem.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = library, FILENAME = d:librarysystem.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )GO3.1.2书本类别表建立create table book_style( bookstyleno varchar(30) primary key, bookstyle varchar(30)3.1.3创建书库表create table system_books( bookid varchar(20) primary key, bookname varchar(30) Not null, bookstyleno varchar(30) Not null, bookauthor varchar(30), bookpub varchar(30) , bookpubdate datetime, bookindate datetime , isborrowed varchar (2) ,foreign key (bookstyleno) references book_style (bookstyleno),)3.1.4借书证表建立create table system_readers ( readerid varchar(9)primary key, readername varchar(9)not null , readersex varchar(2) not null, readertype varchar(10), regdate datetime)3.1.5借书记录表建立create table borrow_record( bookid varchar(20) primary key, readerid varchar(9), borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid),)3.1.6还书记录表建立create table return_record( bookid varchar(20) primary key, readerid varchar(9), returndate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid)3.1.7罚款单表建立create table reader_fee( readerid varchar(9)not null, readername varchar(9)not null , bookid varchar(20) primary key, bookname varchar(30) Not null, bookfee varchar(30) , borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid)3.2数据初始化3.2.1将书籍类别加入表book_style中insert into book_style(bookstyleno,bookstyle)values(1,人文艺术类) insert into book_style(bookstyleno,bookstyle)values(2,自然科学类)insert into book_style(bookstyleno,bookstyle)values(3,社会科学类)insert into book_style(bookstyleno,bookstyle)values(4,图片艺术类)insert into book_style(bookstyleno,bookstyle)values(5,政治经济类)insert into book_style(bookstyleno,bookstyle)values(6,工程技术类)insert into book_style(bookstyleno,bookstyle)values(7,语言技能类)3.2.2将已有的图书加入system_books表中(定义相同的作者出版社的书本编号不一样)insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )values(00125415152,计算机组成原理,6,王爱英,清华大学出版社,2001-01-03,2003-11-15,1);insertinto system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )values(00125415153,计算机组成原理,6,王爱英,清华大学出版社,2001-01-03,2003-11-15,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(00456456,数据库原理,6,萨师煊,高等教育出版社,2007-07-02,2007-09-15,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )values(12215121,C程序设计,6,谭浩强,清华大学出版社,2002-04-02,2004-03-14,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(9787308020558,计算机体系结构,6,石教英,浙江大学出版社,2004-10-03,2006-11-15,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(45456141414,数据结构(C语言版),6,吴伟民,严蔚敏,清华大学出版社,2002-06-28,2004-01-21,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(5455515,中华历史5000年,1,吴强,北京大学出版社,2005-04-03,2006-05-15,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(015115,古代埃及,3,赵文华,北京大学出版社,2001-02-02,2002-09-15,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(1514514,日本文化,1,吴小鹏,北京大学出版社,2002-04-02,2004-03-14,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(15154656,微观经济学,5,李小刚,北京大学出版社,2000-10-03,2001-11-15,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(5658,影视文学,4,苏庆东,北京大学出版社,1999-02-28,2000-01-21,1);insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(565800020,探索宇宙奥秘,2,苏庆东,北京大学出版社,1999-02-28,2000-01-21,1);3.2.3将已有图书证的读者加入system_readers表中*/insert into system_readers(readerid,readername,readersex,readertype,regdate)values(X05620207,陈远鹏,男,学生,2005-9-23 14:23:56)insert into system_readers(readerid,readername,readersex,readertype,regdate)values(X05620206,陈特,男,学生,2005-09-30 13:24:54.623)insert into system_readers(readerid,readername,readersex,readertype,regdate)values(X05620204,赵铭静,女,学生,2005-09-27 11:24:54.123)insert into system_readers(readerid,readername,readersex,readertype,regdate)values(X05620202,潘虹,女,学生,2005-09-30 13:24:54.473)insert into system_readers(readerid,readername,readersex,readertype,regdate)values(008415,蒋伟,男,教师,2004-04-30 09:24:54.478)insert into system_readers(readerid,readername,readersex,readertype,regdate)values(001456,李叶风,女,教师,2004-04-30 09:24:54.478)3.2.4添加已借书读者的记录,同时将在已借出的借阅标记置0*/insert into borrow_record(bookid,readerid,borrowdate)values(00125415152,X05620202,2007-09-27 11:24:54.123)update system_booksset isborrowed=0where bookid=00125415152insert into borrow_record(bookid,readerid,borrowdate)values(00125415153,X05620206,2007-12-27 08:26:51.452)update system_booksset isborrowed=0where bookid=00125415153 and isborrowed=1insert into borrow_record(bookid,readerid,borrowdate)values(5455515,X05620207,2007-12-27 08:26:51.452)update system_booksset isborrowed=0where bookid=5455515 and isborrowed=1insert into borrow_record(bookid,readerid,borrowdate)values(015115,X05620204,2007-10-21 12:11:51.452)update system_booksset isborrowed=0where bookid=015115 and isborrowed=1insert into borrow_record(bookid,readerid,borrowdate)values(15154656,001456,2007-12-28 14:11:51.312)update system_booksset isborrowed=0where bookid=15154656 and isborrowed=1insert into borrow_record(bookid,readerid,borrowdate)values(565800020,008415,2007-08-28 15:11:31.512)update system_booksset isborrowed=0where bookid=565800020 and isborrowed=1四. 结果数据检验:4.1读者借阅图书Execute RBorrowBook 读者号,图书分类号-读者借阅图书实例use LibrarySystemgoexec RBorrowBook T006324,D630.3 L836-其中T006324以T为标识,代表教师编号exec RBorrowBook S070407101,D630.3 L836-其中S070407101以S为标识,代表学生学号go-结果如下:4.2读者归还图书Execute RReturnBook 读者号,图书分类号-读者归还图书实例use LibrarySystemgoexec RReturnBook T006324,D630.3 L836exec RReturnBook S070407101,D630.3 L836go -结果如下:4.3读者续借图书Execute RRenewBook 读者号,图书分类号-读者续借图书实例use LibrarySystemgo-读者借阅图书exec RBorrowBook T006324,D630.3 L836exec RBorrowBook S070407101,D630.3 L836gowaitfor delay 0:0:5-读者续借图书exec RRenewBook T006324,D630.3 L836exec RRenewBook S070407101,D630.3 L836go -结果如下:4.4读者查询借阅图书情况Execute RQueryBook 读者号-读者查询图书借阅情况实例use LibrarySystemgoexec RQueryBook T006432exec RQueryBook S070407101go-结果如下:4.5 读者检索图书信息Execute RIndexBook 关键词-读者检索图书信息实例use LibrarySystemgoexec RIndexBook 数据库go-结果如下:对每个学生对书本的借阅数量-查询每个学生对书本的借阅数量use LibrarySystemgoselect Student.Sno 学号,Sname 姓名,Book.ClassifyNo 图书分类号,Bname 书名from StudentBook,Student,Bookwhere Student.Sno=StudentBook.Sno and StudentBook.ClassifyNo=Book.ClassifyNoorder by Student.Snocompute count(Student.Sno) by Student.Snogo-结果如下:查询各个专业的学生借阅书本的数量use LibrarySystemgodeclare tempDept table(专业编号char(4)primary key,专业varchar(30)not null,学生借阅书本数量int default 0)Insert into tempDept(专业编号,专业) select Mno,Mname from Majordeclare i int,total int,no char(10)select total=count(*),i=1 from StudentBookwhile(itotal) beginselect top 1 no=Sno from StudentBook wher

温馨提示

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

评论

0/150

提交评论