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

下载本文档

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

文档简介

图书馆管理系统数据库设计-课程设计 1.1.图书资料基本管理1、新书编号、登记、入库:将新购入的书籍按照国家统一的分类编号;登记书号、书名、作者、出版社等基本信息,将新购图书入库。2检索查询:按照各种组合条件对书库图书进行查询,也可以进行模糊查询。3、图书资料统计:根据要求对图书总数、各类图书数以及图书单价合计统计,打印日常报表。4旧书出库处理:通过查询确定过期期刊杂志、旧书籍以及由于丢失等其他原因需要从书库中撤销的图书资料,并从书库中撤除。1.2图书资料借阅管理1、借还书管理:主要负责日常的借书登记、还书登记,和逾期未还图书的催还工作。2、检索查询:按照各种组合条件对图书借阅情况查询,也可以进行模糊查询。3借书统计:统计各类书借阅情况,借阅次数;统计个人借书情况,打印日常报表。4、定期整理图书借阅信息:将还书情况总结整理后彻底删除。此外,图书管理人员还要定期做整理图书资料的全部图书清单、分类印图书清单、借阅清单以及整理填写各种报表等工作。2、数据库的概念结构设计2.1 借书业务流程2.2 新书购进入库业务流程2. 3 还书业务流程 2.4 销书业务流程 3、数据流程图符号说明: 实体 处理逻辑 数据流 数据存储 3.1 系统的总数据流程图3.2结构处理流程图 3还书处理数据流程图4 购书处理数据流程图 4、数据字典(1) 数据项的描述数据项名:学号数据项含义说明:学生的唯一编号别名:数据类型:字符型长度:10取值范围:0000000000-9999999999 取值说明:第1位为校区代码,2-3位为入学年份,。与其他数据项的关系表4-1 数据项的定义数据项编号数据项名称简述类型及宽度取值范围图书编号表4-2 数据流的描述数据流编号数据流名称简 述数据流来源数据流去向数据流组成数据流量高峰流量图书编号+书名+借阅证号表4-3 处理逻辑的描述处理逻辑编号处理逻辑名称简述输入的数据流处理输出的数据流处理频率表4-4 数据存储的描述434数据存储编号数据存储名称简 述数据存储组成相关联的处理借阅证号+借书次数+姓名+图书条形码+图书编号+借书日期+应还日期+还书标志+管理员编号表4-5 外部实体的描述外部实体编号外部实体名称简述外部实体组成输入的数据流输出的数据流(2) 数据流的描述数据流编号: D1数据流名称: 借书单 简述:借阅者所要借的图书信息单数据流来源:借阅者数据流去向:借书处理模块数据流组成:图书编号+书名+借阅证号等 数据流量:200张/天高峰流量:400张/天数据流编号: D2数据流名称: 图书 简述:借阅者从图书馆所借的图书数据流来源:借书处理模块数据流去向:借阅者数据流组成:图书编号+图书名+条形码号+出版社+出版日期+入库日期+作者+单价等 数据流量:300本/天 高峰流量:500本/天数据流编号: D3数据流名称: 图书 简述:借阅者要准备归还给图书馆的图书数据流来源:借阅者数据流去向:还书处理模块数据流组成:图书编号+图书名+条形码号+出版社+出版日期+入库日期+作者+单价等 数据流量:300本/天高峰流量:500本/天数据流编号: D4数据流名称:不合格借书单 简述:经借书处理模块验证不合格的借书单数据流来源:借书处理模块数据流去向:借阅者数据流组成:图书编号+书名+借阅证号等 数据流量: 50张/天高峰流量:100张/天数据流编号: D5数据流名称: 借书清单 简述:经借书处理模块处理后的借书情况数据单数据流来源:借书处理模块数据流去向:图书库存情况存档数据流组成:图书编号+图书名+借阅日期+借阅证号+管理员编号等 数据流量: 200张/天高峰流量:400张/天数据流编号:D6数据流名称:还书清单 简述:还书信息清单数据流来源:还书处理模块数据流去向:图书库存情况存档数据流组成:图书编号+图书名+借阅证号+还书日期+管理员编号等 数据流量:150本/天高峰流量:400本/天数据流编号:D7数据流名称:订书单简述:订购新书的信息单 数据流来源:采购员数据流去向:购书处理模块数据流组成:图书名+图书数量+价格+采购员姓名+采购单位名称+图书出版社+出版日期等 数据流量:1张/3个月高峰流量:1张/月数据流编号:D8数据流名称:购书清单 简述:购买图书后的信息单数据流来源:购书处理模块数据流去向:管理员数据流组成: 图书名+图书数量+价格+采购员姓名+采购员编号+出版社+出版日期+供货商名称+采购日期等 数据流量: 1张/3个月高峰流量:1张/月数据流编号: D9数据流名称: 入库新书清单 简述:准备入库图书信息单数据流来源:管理员数据流去向:新书入库处理模块数据流组成:图书编号+图书名+数量+管理人员编号+入库日期等 数据流量:1张/3个月 高峰流量:1张/月数据流编号: D10数据流名称: 入库清单 简述:刚新入库图书的信息单数据流来源:新书入库处理模块数据流去向:图书库存情况存档数据流组成:图书编号+图书名+数量+管理人员编号+入库日期等 数据流量:1张/3个月 高峰流量:1张/月数据流编号:D11数据流名称:销书计划 简述:准备从书库中撤除一部分图书的计划数据流来源:管理员数据流去向:销书处理模块数据流组成:图书编号+图书名称+入库日期+管理员编号+日期+数量等 数据流量:1张/6个月高峰流量:1张/月数据流编号:D12数据流名称:销书清单图书馆管理系统数据库设计 简述:通过销书处理刚从书库中撤除的图书信息单数据流来源:销书处理模块数据流去向:图书库存情况存档数据流组成:图书编号+图书名称+入库日期+管理员编号+出库日期+数量+总价等 数据流量:1张/6个月高峰流量:1张/月数据流编号:D13 数据流名称:借书单 简述:借阅者所要借书的信息单数据流来源:借阅者数据流去向:审核处理模块数据流组成:图书编号+图书名+借阅证号等 数据流量:200张/天高峰流量:400张/天数据流编号:D14数据流名称:不合格借书单 简述:经审核处理模块处理后,不合格的借书单数据流来源:审核处理模块数据流去向:借阅者数据流组成:图书编号+图书名+借阅证号等 数据流量:50张/天 高峰流量:100张/天数据流编号:D15数据流名称:合格的借书单 简述:经审核处理后符合规定的借书单数据流来源:审核处理模块数据流去向:书借出处理模块数据流组成:图书编号+图书名+借阅证号等 数据流量:200张/天高峰流量:400张/天5、ER图及表的设计(1) ER图 实 体 属 性 联 系(2) 表设计/* Table: BOOK1 */create table BOOK1( BNO char(10) not null, BID char(10) , BNAME char(20) , WRITER char(8) , PRINTER char(20) , FLAG char(4) , NUM1 numeric(5) , NUM2 numeric(5) , DATE1 date , primary key (BNO);create table BOOK2( BID char(10) not null, BNO char(10) , DATE1 date , DATE2 date , SORTS numeric(5) , PRICE numeric(8,2) , primary key (BID);create table LOG( NUM numeric(5) not null, USERID char(10) , PASSWORD char(10) , DATE1 date , primary key (NUM);create table STUBROW( SNO char(10) not null, SNUM numeric(5) not null, BID char(10) , BNO char(10) , DATE1 date , DATE2 date , FLAG char(2) , ID char(10) , primary key (SNO, SNUM);create table TEABROW( SNO char(10) not null, SNUM numeric(5) not null, BID char(10) , BNO char(10) , DATE1 date , DATE2 date , FLAG char(2) , ID char(10) , primary key (SNO, SNUM);create table SPASS( SNO char(10) not null, SNUM numeric(5) , SNAME char(8) , SEX char(4) , CLASS char(8) , DATE1 date , primary key (SNO);create table TPASS( TNO char(10) not null, TEA_SNO char(10) , SNUM numeric(5) , TNAME char(8) ,图书馆管理系统数据库设计 SEX char(4) , CLASS char(8) , DATE1 date , primary key (TNO);create table USER( NUM numeric(5) , USER char(10) , ID char(10) , FLAG char(5) );create table SFK( SNUM numeric(5) not null, SNO char(10) not null, DATE1 date , MONEY numeric(8,2) , ID char(10) , primary key (SNUM);create table TFK( TNUM numeric(5) not null, TNO char(10) not null, DATE1 date , MONEY numeric(8,2) , ID char(10) , primary key (TNUM);6、应用程序的编制(1)编程语言的选择VB语言为用户提供大量的界面元素(在VB中称为控件对象),例如“窗体”“菜单”“命令按钮”“工具按钮”“检查框”等等,用户只需要利用鼠标,键盘把这些控件对象若东到适当的位置,设置他们的大小,形状,属性等,就可以设计出所需要的应用程序界面。6.2相关程序代码及界面void AddRecord(CList &TelList) system(cls); CNode *pNode; CTelRecord *pTel; char szName20,szNumber20, kind20, writer20; coutntt 请输入书名(输入0结束) :; cin.getline (szName,20); while(strcmp(szName,0) couttt 请输入书的编号 :; cin.getline(szNumber,20); couttt 请输入书的种类(社科,自科,文学,工具书,其他):; cin.getline(kind,20); coutSetRecord(szName,szNumber,kind,writer); pNode=new CNode; pNode-InputData(pTel); TelList.AddNode(pNode); system(cls); coutntt 请输入书名(输入0结束):; cin.getline(szName,20); coutendlendl; void DisplayRecord(CList &TelList) system(cls); coutendlsetw(15) 书名 setw(15)t 书的编号 setw(15)t 书的种类 setw(15)t 作者 nendl; TelList.ShowList(); coutendlendl; void LookUpRecord(CList &TelList) system(cls); CNode *pLook; char szName20; coutntt 请输入您想要查找的书名(输入0结束); cin.getline(szName,20); while(strcmp(szName,0) CTelRecord tele(szName,0,0,0); pLook=TelList.LookUp(tele); if(pLook) coutendltt 在里面找到的纪录 szName ,内容是:nendl; coutendlsetw(15) 书名 setw(15)t 书的编号 setw(15)t 书的种类 setw(15)t 作者 nShowNode(); else coutntt !在里面找不到 szName .endl; system(pause); system(cls); coutntt 请输入您想要查找的书名(输入0结束); cin.getline(szName,20); coutendlendl; void DeleteRecord(CList &TelList) system(cls); CNode *pLook; char szName20; coutntt请输入您想要删除的书名(输入0结束); cin.getline(szName,20); while (strcmp(szName,0) CTelRecord tele (szName,0,0,0); pLook=TelList.LookUp(tele); if(pLook) coutntt在里面找到的纪录 szName ,内容是:nendl; coutendlsetw(15) 书名 setw(15)t 书的编号 setw(15)t 书的种类 setw(15)t 作者 nShowNode(); TelList.DeleteNode(pLook); 图书馆管理系统数据库设计coutnttszName的资料已删除endl; else coutntt对不起, 在里面找不到 szName .endl; system(pause); system(cls); coutntt请输入您想要删除的书名(输入0结束); cin.getline(szName ,20); coutendlendl; void StoreFile(CList &TelList) ofstream outfile(BOOK.dat,ios:binary); if(!outfile) coutGetData(); outfile.write(char *)pTel,sizeof(CTelRecord); pnode=TelList.GetListNextNode(pnode); outfile.close(); void Operate(string &strChoice,CList &TelList) void TongJi(CList &TelList); if(strChoice=1) AddRecord(TelList); else if(strChoice=2) DisplayRecord(TelList); else if(strChoice=3) LookUpRecord(TelList); else if(strChoice=4) DeleteRecord(TelList); else if(strChoice=5) TongJi(TelList); else if(strChoice=0) StoreFile(TelList); else coutnttt !输入错误,请重新输入您的选择.endl; void LoadFile(CList &TelList) ifstream infile(BOOK.dat,ios:binary); if(!infile) coutInputData(pTel); TelList.AddNode(pNode); TelList.DeleteNode(pNode); infile.close(); void TongJi(CList &TelList) system(cls); int a,b,i,j,k, d,e,f,g,m,n; CTelRecord sk(0,0,社科,0); CTelRecord zk(0,0,自科,0); CTelRecord wx(0,0,文学,0); CTelRecord gj(0,0,工具书,0); CTelRecord qt(0,0,其他,0); a=TelList.tongji(sk); b=TelList.tongji(zk); i=TelList.tongji(wx); j=TelList.tongji(gj); k=TelList.tongji(qt); coutt0;d-)coutd+50t0;d-,e-,f-,g-,m-,n-) coutdta)cout ;else cout; coutb)cout ;else cout; couti)cout ;else cout; coutj)cout ;else cout; coutk)cout ;else cout; coutendl; cout endl; coutta tb ti tj tk endl; cout 社科 自科 文学 工具书 其他endl; int main() CList TelList; system(cls); coutendlttt 欢迎进入图书管理系统n; LoadFile(TelList); string strChoice; do 图书馆管理系统数据库设计 coutendlnttt 1. 添加图书纪录nendl; coutttt 2. 显示图书信息 nendl; coutttt 3. 根据书名查找图书信息nendl; coutttt 4. 根据书名删除图书信息nendl; coutttt 5. 打印图书信息图表nendl; coutttt 0. 退出系统endlendl; coutstrChoice; cin.ignore(); Operate(strChoice,TelList); while (strChoice!=0); cout nnttt欢迎再次使用图书管理系统nn; return 0;7、数据库的运行与维护(1)数据库的运行计划 程序启动时会出现登陆对话框,输入用户名和密码才能进入到程序中。如有登陆信息股合法者,则在程序中看不到任何数据。(2)数据库的维护计划一、备份系统数据 SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。 1、备份数据库 每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。 除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如: 每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出); 每次用 sp_dboption 允许 select into/bulkcopy 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。 卸出数据库的命令为: DUMP DATABASE database_name TO dump_device database_name 是要卸出的数据库名称,dump_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得设备的信息。 下面一条命令用来卸出数据库 my_db : DUMP DATABASE my_db TO db_bk_dev 2、备份事务日志 如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。 备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。 备份事务日志的命令格式为: DUMP TRANsaction database_name TO dump_device WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE 其中 database_name 是要备份事务的数据库名称,dump_device 是备份设备名称,仅当包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句时,才可以备份到设备。 注意:如果总是用 DUMP DATEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。 对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运行 DUMP TRANsaction 命令刷新日志 。 下面一条命令备份数据库 db160 的事务日志到备份设备上: DUMP TRANsaction db160 TO db_log_bk_dev WITH TRUNCATE_ONLY 3、备份数据库及其日志间的相互作用 在至少卸出一次数据库前,卸出事务日志是毫无意义的。下图显示了备份数据库及其日志间的关系 如果在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。 但是,如果在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此例显示了经常卸出事务的重要性。 二、万一系统失败时恢复数据库系统 如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出它。 要恢复数据库按如下步骤去做:

温馨提示

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

评论

0/150

提交评论