1、使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 SQL sever、 Ingress等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如Select、 InsertUpdateDeleteCreate和 Drop常常被用于完成绝大多数数据库的操作。2系统结构分析2.1 需求分析图书馆管理系统是适应时代发展的需要,提高管理的效率而开发设计的,本系统主要实现对图书信息的管理,主要功能为管理有关读者,书籍的信息等。及时为工作人员和读者提供最新的信息和最方便的操作
2、方法。实现学校图书馆管理的系统化、规范化和自动化以及对图书资料的集中统一的管理。通过系统分析,本系统结构分为一下几个模块:(1)读者信息管理模块此模块的功能主要是读者基本信息的输入、查询、修改,包括读者证编号、读者姓名,身份证等。(2)管理员信息管理模块 此模块的功能包括创建读者用户信息、删除读者用户信息、删除图书信息。(3)图书信息管理模块 此模块的功能主要是书籍库存信息的输入、查询、修改,包括书籍条码书籍名称、作者姓名、出版社名称、出版日期、是否能借出。(4)借书信息管理模块 此模块的功能主要是信息的输入、查询、修改,包括读者姓名、读者编号,书籍编号、书籍名称、借书日期等。(5)还书信息管
3、理模块 此模块的功能主要是还书信息的输入、查询、修改,包括读者姓名、 书籍编号、借书日期、应还书日期、罚款金额等。2.2 功能模块图(1)根据上述的功能,可以设计出系统的总体功能模块。 功能模块图如图2.1。图2.1 功能模块图(2)读者信息管理模块的功能主要是读者基本信息的输入、查询、修改,包括读者借书证编号、读者姓名、读者性别等。管理员信息管理如图2.2所示。图2.2 读者信息管理(3)管理员信息管理模块功能包括创建读者用户信息、删除读者用户信,添加图书信息、删除图书信息。管理员信息管理如图2.3所示。图2.3 管理员信息管理(4)图书信息管理模块的功能主要是图书信息的输入、查询、修改,包
4、括书籍编号,书籍名称、作者姓名、出版社名称,出版日期,是否借出。图书信息管理如图2.4所示。图2.4 图书信息管理(5)借书信息管理模块的功能主要是借书信息的输入、查询、修改,包括借书证编号、读者姓名、书籍编号、书籍名称。借书信息管理如图2.5所示。 图2.5 借书信息管理(6)还书信息管理模块的功能主要是超期还书输入、查询、修改,读者姓名,书籍编号、还书日期,应还书日期,罚款金额等。还书信息管理如图2.6所示。图2.6 还书信息管理3数据库设计3.1 概念设计根据所要实现的功能设计,建立它们之间的关系,进而实现逻辑结构功能。图书馆管理系统可以划分的实体有:读者信息实体、图书实体、管理员实体,
5、借书信息实体,还书信息实体,下面用E-R图一一描述这些实体。图3.1 读者信息实体图3.2 管理员信息实体图3.3 图书信息实体图3.4 借书信息实体 图3.5 还书信息实体(2)根据分E-R图,设计出了如下所示的总的E-R图读者管理员借书信息图书借阅归还管理n1还书信息图3.6 总E-R图3.2逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。读者模型(读者编号,读者姓名,读者身份证号)管理员模型(管理员编号,管理员姓名,管理员密码)图书模型(图书编号,图书名称,书籍作者,出版社名称,出版日期,是否借出)借书信息模型(借书编号,读者编号,书籍编号,借书日期) 还书信息模
6、型(还书编号,书籍编号,借书日期,应还书日期,超期天数) 管理模型(管理员编号,图书编号)3.3数据库表结构设计表3-1 读者数据库表结构表中列名数据类型可否为空说明Proof_Idnvarcharnot null(主键)读者编号Namenot null读者姓名Id_Numberintnull身份证号表3-2 管理员数据库表结构administratoridvarchar管理员编号administratorname管理员姓名administratorpassword管理员密码 表3-3 图书数据库表结构设计Book-IDNot null(主键)图书编号Not null图书名称writer书籍作
7、者pressNull 出版社名称Inlibrary_DateDatetime出版日期Flag_Borrow总存数 表3-4 借书数据库表结构设计Borrow_IdVarcharNot null(外主键)借书编号书籍编号Borrow_date借书时间表3-5 还书数据库表结构设计Borrow _IdBook_IdBorrow_DateNot Null借书日期Return_Date应还书日期overdue超期天数4物理结构设计数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数
8、据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在后者。(1)建立索引:对图书表在Book_Id上建立聚集索引,在Name、auther、press上建立非聚集索引。对读者表在Proof_Id列上建立聚集索引对借书表在Book_Id上建立聚集所以,在Proof_Id上建立非聚集索引对还书表在Book_Id上建立聚集索引,在Proof_Id上建立非聚集索引。对管理员表在administratorid列上建立聚集索引。(2)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。将日志
9、文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统性能。所以系统将日志文件和数据文件存放在不同磁盘上。5数据库建立5.1 表头的创建(1)创建数据库,该数据库的名称是libraryCreate datebase librarygo(2)管理员表建立,该管理员的名称是Administratorcreate table system_Administrator (administratorid varchar(9)primary key, /* 此表的主码是administratorid*/ administratorname varchar(9)not null , administr
10、atorpassword varchar(2) not null, );(3)图书表的建立,该表的名称system_bookscreate table system_books( Book_Id varchar(20) primary key, /*此表的主码是Book_Id */name varchar(30) Not null, writer varchar(30), press varchar(30) , Inlibrary_Date datetime,Flag_Borrow varchar(10) Not null); go(4)借书表建立,该表的名称是system_borrowcre
11、ate table system_borrow ( Borrow_Id varchar(9)primary key, /*此表的主码是Borrow_Id */ Book-Id varchar(9)not null, Borrow_date datetime,foreign key (Book-Id) references system_books(Book-Id), /* Book-Id是外码*/);Go(5)还书表建立,该表的名称是system_returncreate table system_return Book_Id varchar(9)not null, Borrow_Date d
12、atetime, Return_Date datetime Overdue datetime foreign key (Book_Id) references system_books (Book_Id) /* Book_Id是外码*/5.2 索引的创建use librarysystemcreate index system_books_index_name on system_books(name)create index reader_index_Proof_Id on reader (Proof_Id)create index borrow_index_ Borrow_Id on bor
13、row_record(Borrow_Id)create index return_index on system_return(Borrow_Id)createindex system_Administrato_index_Administrato on system_ Administrato (Administratorid)6图书馆管理系统的具体实现6.1 读者登陆界面的实现图6.1 登陆界面示意图其实现代码如下所示CUserSet:CUserSet(CDatabase* pdb) : CRecordset(pdb) /AFX_FIELD_INIT(CUserSet) m_User_Na
14、me = _T( m_Password = _T( m_nFields = 3; /AFX_FIELD_INIT m_nDefaultType = snapshot;CString CUserSet:GetDefaultConnect() return _T(ODBC;DSN=LibraryGetDefaultSQL()dbo.Admin_Infovoid CUserSet:DoFieldExchange(CFieldExchange* pFX) /AFX_FIELD_MAP(CUserSet) pFX-SetFieldType(CFieldExchange:outputColumn); RF
15、X_Text(pFX, _T(User_Name), m_User_Name);Password), m_Password); /AFX_FIELD_MAP/ CUserSet diagnostics#ifdef _DEBUGAssertValid() const CRecordset:AssertValid();Dump(CDumpContext& dc) constDump(dc);#endif /_DEBUG6.2系统主界面的实现我们可以分析出该图书馆图书查询系统流通子模块大致可以分为四个功能模块:图书资料信息模块、读者资料,借书/还书模块。通过对用户需求的分一下系统主界面的具体实现,从
16、而对各个功能模块从总体上有一个认识,也对各个功能模块的具体实现指明了方向。系统主界面是整个图书馆图书查询系统的操作界面,在主界面上通过对菜单和工具栏按钮的操作即可实现整个图书馆图书查询系统的各项功能。主界面如图6.2所示。图6.2 主界面示意图主要代码如下void CNewBooksDlg:OnButtonIn() / TODO: Add your control notification handler code here UpdateData(); if(m_strBookID.Compare()=0) Message Box(请正确填写要求的数据,新书入库登记 return; if(!m
17、_database.IsOpen() if(!m_database.Open(_T(Library) MessageBox(Cannot access database!新书登记 return; CBookSet *m_pset=new CBookSet(&m_database); /判断书库中是否有该书,进行相应操作 /有,把数量加到库中 CString strSQL; strSQL.Format(select * from Book_Info where Book_ID=%s,m_strBookID); m_pset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)
18、; if(m_pset-GetRecordCount()!=0) m_pset-Edit();Update();Requery();Close(); m_database.Close(); MessageBox(Adding new books successfully! OnButtonCheckBooks(); if(m_strBookID=|m_strBookName=|m_strWriter= |m_strPress=|m_dPrice=0|m_lTotal=0 |m_lNow=0)请正确填写要求的数据!新书登记入库select * from Book_Info /if(m_pset-
19、GetRecordCount()=0) / /MessageBox(There are not any book information! /AddNew();SetFieldNull(&(m_pset-m_Book_ID),FALSE);m_Book_ID=m_strBookID;m_Book_Name),FALSE);m_Book_Name=m_strBookName;m_Writer),FALSE);m_Writer=m_strWriter;m_Press),FALSE);m_Press=m_strPress; CTime curTime=CTime:GetCurrentTime();m_InLibrary_Date),FALSE);m_InLibrary_Date=curTime; m_database.Close(); MessageBox( OnButtonCheckBooks(); m_strBookID.Empty(); m_strBookName.Empty(); m_strPress.Empty(); m_strWriter.Empty(); m_dPrice=0.0; UpdateData(FALSE); return;OnButtonCheckBooks() Upd
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2