网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

图书馆管理系统数据库设计

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
图书馆管理系统数据库设计需求分析      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、E—R图及表的设计(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 szName[20],szNumber[20], kind[20], writer[20]; cout<<"\n\t\t ◇请输入书名(输入0结束) :"; cin.getline (szName,20); while(strcmp(szName,"0")) { cout<<"\t\t ◇请输入书的编号 :"; cin.getline(szNumber,20); cout<<"\t\t ◇请输入书的种类(社科,自科,文学,工具书,其他):"; cin.getline(kind,20); cout<<"\t\t ◇请输入作者的姓名 :"; cin.getline(writer,20); pTel=new CTelRecord; pTel->SetRecord(szName,szNumber,kind,writer); pNode=new CNode; pNode->InputData(pTel); TelList.AddNode(pNode); system("cls"); cout<<"\n\t\t ☆请输入书名(输入0结束):"; cin.getline(szName,20);
} cout<void LookUpRecord(CList &TelList) { system("cls"); CNode *pLook; char szName[20]; cout<<"\n\t\t ☆请输入您想要查找的书名(输入0结束)"; cin.getline(szName,20); while(strcmp(szName,"0")) { CTelRecord tele(szName,"0","0","0");
pLook=TelList.LookUp(tele); if(pLook) { cout<ShowNode(); } else cout<<"\n\t\t !!!在里面找不到 "<ShowNode(); TelList.DeleteNode(pLook);
 
图书馆管理系统数据库设计cout<<"\n\t\t◎"<GetData(); 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 cout<<"\n\t\t\t !!!输入错误,请重新输入您的选择."<{ ifstream infile("BOOK.dat",ios::binary); if(!infile) { cout<<"\n\t\t !!!对不起,没有找到数据文件,无法导入数据."; return; }
CNode*pNode; CTelRecord*pTel; while(!infile.eof()) { pTel=new CTelRecord; infile.read((char *)pTel,sizeof(CTelRecord)); pNode=new CNode; pNode->InputData(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);
cout<<'\t'<<"↑"<0;d--)cout<0;d--,e--,f--,g--,m--,n--) { cout<a)cout<<" ";else cout<<"■"; cout<<'\t'; if(f>b)cout<<" ";else cout<<"■"; cout<<'\t'; if(g>i)cout<<" ";else cout<<"■"; cout<<'\t'; if(m>j)cout<<" ";else cout<<"■"; cout<<'\t'; if(n>k)cout<<" ";else cout<<"■"; cout<} int main() { CList TelList; system("cls"); cout< 
图书馆管理系统数据库设计{ cout<>strChoice; cin.ignore(); Operate(strChoice,TelList); } while (strChoice!="0"); cout<<" \n\n\t\t\t※※※欢迎再次使用图书管理系统※※※\n\n"; 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、如果日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出被毁坏的或者不可存取的用户数据库事务日志。 2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。 下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况: SELECT segmap,size FROM sysusages WHERE dbid = ( SELECT dbid FROM sysdatabases WHERE name = “mydb”) 3、检查查询的输出。在 segmap 列的 ‘3’代表数据分配,‘4’代表日志分配。size 列代表 2K 数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为: segmapSize -------------------- 310240//实际尺寸为:20M 35120//实际尺寸为:10M 45120//实际尺寸为:10M 31024//实际尺寸为:2M 42048//实际尺寸为:4M 4、用 DROP DATABASE 命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR 命令的 DROPDB 选项。 5、删除数据库后,用 sp_dropdevice 删除毁坏了的设备。 6、用 DISK INIT 初始化新的数据库设备。 7、重建数据库。用 CREATE DATABASE 命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。 对上例,命令为: CREATE DATABASE mydb ON datadev1=20,datadev2=10 LOG ON logdev1=10 8、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为: ALTER DATABASE mydb ON datadev1=2[page] 9、用 LOAD DATABASE 重新装入数据库,然后用 LOAD TRAN 装入前面卸出的日志。 LOAD DATABASE 命令语法是: LOAD DATABASE database_name FROM dump_device LOAD TRANsaction 命令的语法是: LOAD TRANsaction database_name FROM dump_device 卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。
  • 上一篇资讯: 学员基本信息系统的数据库设计
  • 下一篇资讯: 企业资本结构优化
  • 相关资讯

    网学推荐

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师