数据库图书管理系统设计报告(基于软件工程)

news2024/9/20 10:41:25

文章目录

  • 一、实验目的
  • 二、实验内容
    • 选题方向
    • 设计背景
    • 第一章 需求分析
      • 第一部分 系统设计目标
      • 第二部分 功能需求分析
        • 1.系统的功能描述
        • 2.主要的操作描述
        • 3.数据流图的演示
          • (1)、顶层流程图
          • (2)、第一层流程图
      • 第三部分 系统功能的设计与划分
        • 1.读者管理部分
        • 2.图书管理员管理部分
      • 第四部分 数据需求分析
        • 1.数据项
        • 2.数据结构
        • 3.数据流
        • 4.数据存储
    • 第二章 概念设计
      • (一)、局部E-R图模型设计
        • 1.识别实体与实体的主键
        • 2.定义实体之间的联系
        • 3.局部E-R图
      • (二)、全局E-R图模型设计
    • 第三章 逻辑设计
      • (一)、由实体集转换而来的关系模式
        • 1.图书(book-info)实体集
        • 2.图书类型(booktype-info)实体集
        • 3.图书管理员(manager-info)实体集
        • 4.读者(readerinfo)实体集
        • 5.阅览卡(bookcredit-info)实体集
        • 6.出版社(publisher-info)实体集
      • (二)、由联系集转换而来的关系模式
        • 1.借阅表(borrow-info)联系集
        • 2.读者还书表(return-info) 联系集
        • 3.图书报损单表(breakage-info)联系集
        • 4.图书报损明细表(br-detail-info)联系集
        • 5.图书购买表(bookBuy-info)联系集
        • 6.图书购买入库表(bookStocking-info)联系集
        • 7.罚款缴费单表(fine-info)联系集
    • 第四章 数据库应用设计
      • (一)、建表语句
      • (二)、建视图语句
        • 1.入库单
        • 2.报损单
        • 3.读者未还借书
        • 4.图书分类库存
      • (三)、建索引语句
  • 三、实验小结

一、实验目的

通过充分查阅相关资料,学生自选题目作为实验课题,按照需求分析、概念设计、逻辑设计、数据库应用设计等开发步骤用数据库设计的方法、技术和原理规范设计一个完整的应用程序。

二、实验内容

选题方向

图书借阅管理系统(自助借阅)

设计背景

随着人们知识水平层次的提高,图书馆成为日常生活中不可缺少的一部分,图书管理也变得困难而重要,需要可靠的图书管理系统对图书进行有效的管理,理由如下:图书存书量和业务量庞大,仅靠传统的记帐式管理不可行;图书馆需要为学校或社会有需求者提供图书的详细信息和馆内库存情况,需要建立庞大的数据库,一个健全的图书管理系统可以极大的方便图书管理员的操作,减少图书管理员的工作量并使其能更有效的管理书库中的图书,实现了传统的图书管理工作的信息化建设。

第一章 需求分析

第一部分 系统设计目标

1.图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。当借阅者交付押金后,图书馆向每一个借阅者发放阅览卡,阅览卡中包含每一个借阅者的编号和个人信息。系统通过一个单独的程序为借阅者提供服务,借阅者可以独立操作,不需要管理人员的干预,这些服务包括提供查询图书信息、查询个人信息服务、借阅图书和归还图书服务等。
2.当借阅者需要借阅书籍、归还书籍时不需要通过图书管理员进行,也就是说借阅者可以直接通过软件与系统交互,当借阅者借阅的图书数量超过限制时,不运行借阅者再进行借阅。
3.当借阅者借阅的图书超过一定的期限或所借图书有损坏时,需要对其进行处罚,借阅图书时需要阅览卡作为凭据,归还时也需要需要。
4.图书管理员负责系统的管理维护工作,维护工作包括图书的添加、删除和修改,书目的添加和删除,借阅者的添加、删除和修改,并且系统管理员能够查询借阅者、图书和图书管理员的信息。
5.当库存不足时,图书馆从出版社购买的图书,管理人员将图书编号并将其分好图书图书类别,之后再通过系统进行入库操作。
6.图书管理人员对读者的借阅信息的输入,之后系统根据借阅者的借阅情况生成罚款缴费单。

第二部分 功能需求分析

1.系统的功能描述

(1)、基础信息设置
① 设置图书信息:对图书的基本信息进行增加、修改、删除
② 设置图书类型信息:对图书类型的基本信息进行增加、修改、删除
③ 设置图书管理员信息:对图书管理员的基本信息进行增加、修改、删除
④ 设置读者信息:对读者的基本信息进行增加、修改、删除
⑤ 设置阅览卡信息:对阅览卡的基本信息进行增加、修改、删除
⑥ 设置出版社信息:对出版社的基本信息进行增加、修改、删除
(2)、图书借阅管理
① 图书编号:阅览卡持卡人所借的图书编号
② 借书日期:图书借出的日期
③ 还书日期:图书归还的日期
④ 罚款金额:显示持卡人未在规定期限内归还图书或对图书造成了损坏而需要罚款的金额
⑤ 是否续期:延长图书的借阅时间
(3)、图书报损管理
① 图书总数:统计所有类型的受损图书数量
② 图书数量:统计该类型的受损数量
③ 受损原因:对受损图书的描述
(4)、图书购买管理
① 图书入库编号:对购买的图书进行编号
② 是否入库:显示图书的入库情况
③ 入库日期:图书编号之后记录至系统的时间
④ 图书数量:该图书入库的数量
(5)、罚款缴费管理
① 阅览卡编号:显示需要缴费的卡号
② 日期:显示罚款单的日期
③ 金额:显示需要缴纳的罚款金额
(6)、查询统计管理
① 图书查询:通过图书编号查询图书基本信息
② 借阅情况查询:通过阅览卡编号查询借阅基本信息
③ 图书受损情况查询:通过受损图书编号查询图书受损基本信息
④ 图书入库情况查询:通过图书入库编号查询图书入库基本信息
⑤ 罚款缴费单查询:通过缴费单号查询罚款缴费基本信息

2.主要的操作描述

(1)、图书管理:实现图书信息管理:可以实现新书入库,图书信息修改,删除,添加等更新操作。
(2)、学生管理:实现读者信息管理:可以实现读者信息的录入,修改,删除,添加等更新操作。
(3)、借阅管理:系统管理员通过此模块来进行借书、还书以及相关信息的查询操作,该模块主要提供借书信息的登记和查询。
(4)、查询报表:实现图书信息查询,借/还纪录查询,未还图书查询,从而可以方便的进行分组管理。

3.数据流图的演示

(1)、顶层流程图

在这里插入图片描述

(2)、第一层流程图

在这里插入图片描述

第三部分 系统功能的设计与划分

1.读者管理部分

(1)处理读者申请阅览卡
(2)读者可以查询本人信息。
(3)读者可以实现自助借/还书
(4)读者可以通过系统完成罚款缴费
(5)读者可以注销阅览卡

2.图书管理员管理部分

(1)处理管理员操作
(2)管理员可以查询所有读者信息。
(3)管理员可以查询所有图书。
(4)管理员可以查询所有借阅信息
(5)管理员可以注销读者阅览卡信息
(6)管理员可以发布与更新图书信息。
(7)管理员可以插入、修改与查询图书受损信息。
(8)管理员可以插入与查询读者罚款缴费信息。

第四部分 数据需求分析

1.数据项

图书(book-info)数据字典B:

数据项名别名类型长度备注
图书编号BNovarchar20主键
图书类型编号BTNochar10外键
出版社编号PNochar10外键
图书名BNamevarchar50
作者BAuthorvarchar20
出版时间PTimedatetime
价格PriceNumeric(8,2)
入库时间InputTimedatetime
库存总量TotalNumint
现存量Biomassint

图书类型(booktype-info)数据字典BT:

数据项名别名类型长度备注
图书类编号BTNochar10主键
图书类型名BTNamevarchar50

图书管理员(manager-info)数据字典M:

数据项名别名类型长度备注
管理员编号MNovarchar20主键
管理员姓名MNamechar10
性别MSexchar4
电话号码MTNumberchar11
家庭住址MHAddressvarchar50
文化程度MEducationvarchar50

读者(readerinfo)数据字典R:

数据项名别名类型长度备注
读者编号RNovarchar20主键
阅览卡编号CNochar12外键
持卡人姓名RNamechar8
性别RSexchar4
身份证号RIDNumchar24
未交罚款金额RFineNumeric(8,2)

阅览卡(bookcredit-info)数据字典C:

数据项名别名类型长度备注
阅览卡编号CNochar12主键
读者编号RNovarchar20外键
余额CFineNumeric(8,2)
可借书册数CNumint
是否挂失CWchar2
借期天数CDatedatetime
可续借天数CRenewdatetime
还书日期CBackdetetime

出版社(publisher-info)数据字典P:

数据项名别名类型长度备注
出版社编号PNovarchar20主键
出版社名PNamevarchar50
出版社地址PAddressvarchar50

借阅表(borrow-info)数据字典BB:

数据项名别名类型长度备注
阅览卡编号CNochar12外键
图书编号BNovarchar20外键
借书日期BBRTimedatetime
还书日期BBBTimedatetim
罚款金额BBFineNumeric(8,2)
是否续期BBWchar2

读者还书(return-info)表数据字典Re:

数据项名别名类型长度备注
阅览卡编号CNochar12外键
图书编号BNOvarchar20外键
图书类型编号BTNochar10外键
是否逾期ReWchar2

图书报损单表(breakage-info)数据字典BA:

数据项名别名类型长度备注
报损单编号BANovarchar20主键
受损图书编号BADNovarchar20外键
报损时间BATimedatetime
图书总数BASumint
经手人编号(图书馆人员)MNovarchar20

图书报损明细表(br-detail-info)数据字典BAD:

数据项名别名类型长度备注
受损图书编号BADNovarchar20主键
图书编号BNovarchar20外键
受损原因Reasonschar50
数量BADNumint

图书购买表(bookBuy-info)数据字典BBuy:

数据项名别名类型长度备注
图书购买单编号BBuyNovarchar20主键
图书入库编号BBSNovarchar20外键
经手人编号MNovarchar20外键

图书购买入库表(bookStocking-info)数据字典BBS:

数据项名别名类型长度备注
图书入库编号BBSNovarchar20主键
入库日期BBSTimedatetime
是否入库BBSWchar2
图书编号BNovarchar20外键
图书数量BBSNumint

罚款缴费单表(fine-info)数据字典F:

数据项名别名类型长度备注
缴费单号FNochar18主键
阅览卡编号CNochar12外键
日期FTimedatetime
金额FFineNumeric(8,2)

2.数据结构

数据结构名组成
图书图书编号、图书类型编号、出版社编号、图书条形码、书名、作者、出版时间、价格、入库时间、库存总量、现存量
图书类型图书类编号、图书类型名
图书管理员管理员编号、管理员姓名、性别、电话号码、家庭住址、文化程度
读者读者编号、阅览卡编号、持卡人姓名、性别、身份证号、未交罚款金额
阅览卡阅览卡编号、读者编号、余额、可借书册数、是否挂失、借期天数、可续借天数、还书日期
出版社出版社编号、出版社名、出版社名
借阅表阅览卡编号、图书编号、借书日期、还书日期、罚款金额、是否续期
读者还书表阅览卡编号、图书编号、图书类型编号、是否逾期
图书报损单表报损单编号、受损图书编号、报损时间、图书总数、经手人编号
图书报损明细表受损图书编号、图书编号、受损原因、数量
图书购买表图书购买单编号、图书入库编号、经手人编号
图书购买入库表图书入库编号、入库日期、是否入库、图书编号、图书数量
罚款缴费单表缴费单号、阅览卡编号、日期、金额

3.数据流

数据流名数据流来源数据流去向组成
办理阅览卡信息读者阅览卡表阅览卡表信息
查询读者信息阅览卡表管理员读者信息
借阅图书读者借阅表借阅信息
查询图书借阅信息借阅表管理员借阅信息
归还图书读者图书归还表图书归还信息
记录图书受损信息管理员图书受损表图书受损信息
查询图书报损信息图书受损表管理员图书受损信息
记录图书购买信息管理员图书购买表图书购买信息
查询图书购买信息图书购买表管理员图书购买信息
查询罚款缴费信息罚款缴费表管理员罚款缴费信息

4.数据存储

数据储存名输入的数据流输出的数据流组成
借阅表借阅信息借阅信息借阅信息
图书报损单表图书受损信息、图书报损信息图书报损信息图书受损信息 、图书报损信息
图书购买入库表图书购买信息图书购买入库信息图书购买信息
罚款缴费单表罚款缴费信息罚款缴费信息罚款缴费信息

第二章 概念设计

(一)、局部E-R图模型设计

1.识别实体与实体的主键

图书(主键:图书编号)、图书类型(主键:图书类型编号)、图书管理员(主键:管理员编号)、读者(主键:读者编号)、阅览卡(主键:阅览卡编号)、出版社(主键:出版社编号)

2.定义实体之间的联系

① 一个出版社对应多个图书,一个图书对应一个出版社,出版社和图书是一对多联系。
② 一个图书类型对应多个图书,一个图书对应一个图书类型,图书类型和图书是一对多联系。
③ 一个读者类型对应多个读者,一个读者对应一个读者类型,读者类型和读者是一对多联系。
④ 一个图书库对应多个图书类型,一个图书类型对应一个图书库,图书库和图书类型是一对多联系。
⑤ 一个图书入库单对应多个图书入库单明细,一个图书入库单明细对应一个图书入库单,图书入库单和图书入库单明细是一对多联系。
⑥ 一个图书报损单对应多个图书报损单明细,一个图书报损单明细对于一个图书报损单,图书报损单和图书报损单明细是一对多联系。
⑦ 一个图书对应多个图书入库单明细,一个图书入库单明细对应一个图书,图书和图书入库单明细是一对多联系。
⑧ 一个图书对应多个图书报损单明细,一个图书报损单明细对应一个图书,图书和图书报损单明细是一对多联系。
⑨ 一个读者对应多个罚款缴费单,一个罚款缴费单对应一个读者,读者和罚款缴费单是一对多联系。
⑩ 一个管理员对应多个借阅表,一个借阅表对应一个管理员,管理员和借阅是一对多的关系。
⑪ 一个管理员对应多个图书入库单,一个图书入库单对应一个管理员,管理员和图书入库单是一对多联系。
⑫ 一个管理员对应多个图书报损单,一个图书报损单对应一个管理员,管理员和图书报损单是一对多联系。
⑬ 一个管理员对应多个罚款缴费单,一个罚款交费单对应一个管理员,管理员和罚款缴费单是一对多联系。
⑭ 一个读者对应多个图书,一个图书对应多个读者,读者和图书之间是多对多联系。

3.局部E-R图

读者—借阅—图书:
在这里插入图片描述

读者—归还—图书:
在这里插入图片描述

管理员—管理—读者:
在这里插入图片描述

管理员—报损—图书:
在这里插入图片描述

管理员—购买—图书:
在这里插入图片描述

出版社—管理—图书:
在这里插入图片描述

(二)、全局E-R图模型设计

在这里插入图片描述

第三章 逻辑设计

(一)、由实体集转换而来的关系模式

1.图书(book-info)实体集

book-info(BNo、BTNo、PNo、BName、BAuthor、PTime、Price、InputTime、TotalNum、Biomass)

2.图书类型(booktype-info)实体集

booktype-info(BTNo、BTName)

3.图书管理员(manager-info)实体集

manager-info(MNo、MName、MSex、MTNumber、MHAddress、MEducation)

4.读者(readerinfo)实体集

Readerinfo(RNo、CNo、RName、RSex、RIDNum、RFine)

5.阅览卡(bookcredit-info)实体集

bookcredit-info(CNo、RNo、CFine、CNum、CW、CDate、CRenew、CBack)

6.出版社(publisher-info)实体集

publisher-info(PNo、PName、PAddress)

(二)、由联系集转换而来的关系模式

1.借阅表(borrow-info)联系集

borrow-info(CNo、BNo、BBRTime、BBBTime、BBFine、BBW)

2.读者还书表(return-info) 联系集

return-info(CNo、BNO、BTNo、ReW)

3.图书报损单表(breakage-info)联系集

breakage-info(BANo、BADNo、BATime、BASum、MNo)

4.图书报损明细表(br-detail-info)联系集

br-detail-info(BADNo、BNo、Reasons、BADNum)

5.图书购买表(bookBuy-info)联系集

bookBuy-info(BBuyNo、BBSNo、MNo)

6.图书购买入库表(bookStocking-info)联系集

bookStocking-info(BBSNo、BBSTime、BBSW、BNo、BBSNum)

7.罚款缴费单表(fine-info)联系集

fine-info(FNo、CNo、FTime、FFine)

第四章 数据库应用设计

(一)、建表语句

 CREATE TABLE 出版社
 (
 出版社编号 INT PRIMARY KEY,
 出版社名称 VARCHAR(50) NOT NULL,
 出版社地址 VARCHAR(50)
 );
 CREATE TABLE 图书
 (
 图书编号 VARCHAR(20) PRIMARY KEY,
 出版社编号 INT NOT NULL,
 图书类型编号 CHAR(1) ,
 书名 VARCHAR(50) NOT NULL,
 作者 VARCHAR(20) NOT NULL,
 价格 NUMERIC(8,2) NOT NULL,
 页码 INT NOT NULL,
 库存总量 INT NOT NULL,
 现存量 INT NOT NULL,
 入库时间 DATETIME ,
  FOREIGN KEY(出版社编号) REFERENCES 出版社(出版社编号),
 FOREIGN KEY(图书类型编号) REFERENCES 图书类型(图书类型编号)
 );
 CREATE TABLE 读者类型
 (
 读者类型编号 CHAR(10) PRIMARY KEY,
 读者类型名 VARCHAR(20) NOT NULL,
 可借阅册数 INT CHECK(可借阅册数>=20 AND 可借阅册数<=60),
 借期天数 INT  CHECK(借期天数>=90 AND 借期天数<=120),
 可续借天数 INT  CHECK(可续借天数>=10 AND 可续借天数<=60)
 )
 CREATE TABLE 读者
 (
 证书编号 INT PRIMARY KEY,
 读者类型编号 CHAR(10),
 姓名 VARCHAR(50) NOT NULL,
 性别 CHAR(10) CHECK (性别 IN ('男','女')),
 出生日期 DATETIME NOT NULL,
 身份证编号 CHAR(18) CHECK(LEN(TRIM(身份证编号))=18),
 图书借阅次数 INT,
 是否挂失 INT,
 已借册数 INT,
 未交罚款金额 NUMERIC(8,2),
 FOREIGN KEY(读者类型编号) REFERENCES 读者类型 (读者类型编号)
 )
CREATE TABLE 管理员
 (
 管理员编号 INT  PRIMARY KEY,
 管理员姓名 VARCHAR(50) NOT NULL,
 性别 CHAR(10) CHECK (性别  IN ('男','女')),
 出生日期 DATETIME NOT NULL,
 文化程度 VARCHAR(20) NOT NULL
 )
 CREATE TABLE 罚款交费单
 (
 交费单号 INT PRIMARY KEY,
 借书证编号 INT ,
 日期 DATETIME NOT NULL,
 金额 NUMERIC(8,2) NOT NULL,
 FOREIGN KEY(借书证编号) REFERENCES 读者(证书编号)
  )
CREATE TABLE 图书入库单
  (
  入库单编号 INT PRIMARY KEY,
  入库日期 DATETIME NOT NULL,
  经手人编号 INT,
  是否入库 INT,
  FOREIGN KEY(经手人编号) REFERENCES 管理员(管理员编号)
  )
  CREATE TABLE 图书入库单明细
  (
  入库单编号 INT,
  图书编号 VARCHAR(20),
  数量 INT NOT NULL,
  PRIMARY KEY(入库单编号,图书编号),
  FOREIGN KEY(入库单编号) REFERENCES 图书入库单(入库单编号),
  FOREIGN KEY(图书编号) REFERENCES 图书(图书编号)
  )
  CREATE TABLE 图书报损单
  (
  报损单编号 INT PRIMARY KEY,
  报损日期 DATETIME NOT NULL,
  经手人编号 INT,
  FOREIGN KEY(经手人编号) REFERENCES 管理员(管理员编号)
  )
  CREATE TABLE 图书报损单明细
  (
  报损单编号 INT,
  图书编号 VARCHAR(20),
  数量 INT NOT NULL,
  报损原因 VARCHAR(100) NOT NULL,
  PRIMARY KEY(报损单编号,图书编号),
  FOREIGN KEY(报损单编号) REFERENCES 图书报损单(报损单编号),
  FOREIGN KEY(图书编号) REFERENCES 图书(图书编号)
  )
  CREATE TABLE 借阅
  (
  借书证编号 INT ,
  图书编号 VARCHAR(20),
  借书日期 DATETIME NOT NULL,
  还书日期 DATETIME,
  罚款金额 NUMERIC(8,2),
  是否续借 INT,
  CHECK (借书日期>=还书日期),
  PRIMARY KEY(借书证编号,图书编号),
  FOREIGN KEY(借书证编号) REFERENCES 读者(证书编号),
  FOREIGN KEY(图书编号) REFERENCES 图书(图书编号)
  )

(二)、建视图语句

1.入库单

CREATE VIEW 入库单(入库单编号,入库日期,经手人姓名,是否已入库,图书编号,书名,出版社名,入库数量)
 AS
 SELECT 图书入库单.入库单编号,图书入库单.入库日期,管理员.管理员姓名,图书入库单.是否入库,图书入库单明细.图书编号,图书.书名,出版社.出版社名称,图书入库单明细.数量
 FROM 图书入库单,图书入库单明细,管理员,图书,出版社
 WHERE 图书入库单明细.入库单编号=图书入库单.入库单编号 AND 图书入库单明细.图书编号=图书.图书编号 AND 图书入库单.经手人编号=管理员.管理员编号 AND 图书.出版社编号=出版社.出版社编号

2.报损单

CREATE VIEW 报损单(报损单编号,报损日期,经手人姓名,图书编号,书名,出版社名,报损数量,报损原因)
 AS
 SELECT 图书报损单.报损单编号,图书报损单.报损日期,管理员.管理员姓名,图书报损单明细.图书编号,图书.书名,出版社.出版社名称,图书报损单明细.数量,图书报损单明细.报损原因
 FROM  图书报损单,管理员,图书报损单明细,图书,出版社
 WHERE 图书报损单明细.报损单编号=图书报损单.报损单编号 AND 图书报损单明细.图书编号=图书.图书编号 AND 图书报损单.经手人编号=管理员.管理员编号 AND 图书.出版社编号=出版社.出版社编号

3.读者未还借书

CREATE VIEW 读者未还借书(借书证编号,读者姓名,未还书编号,未还书名,出版社名,借书日期,可借期天数,罚款金额)
 AS
 SELECT 借阅.借书证编号,读者.姓名,借阅.图书编号,图书.书名,出版社.出版社名称,借阅.借书日期,读者类型.可续借天数,借阅.罚款金额
 FROM  借阅,读者,图书,出版社,读者类型
 WHERE 借阅.借书证编号=读者.证书编号 AND 借阅.图书编号=图书.图书编号 AND  图书.出版社编号=出版社.出版社编号 AND 读者.读者类型编号=读者类型.读者类型编号

4.图书分类库存

CREATE VIEW 图书分类库存(图书类型编号,图书类型名,库存册数合计,库存金额合计)
 AS
 SELECT 图书类型.图书类型编号,图书类型.图书类型名,sum(图书.库存总量),sum(图书.价格*图书.库存总量)
 FROM  图书,图书类型
 WHERE 图书类型.图书类型编号=图书.图书类型编号
 GROUP BY 图书类型.图书类型编号,图书类型.图书类型名

(三)、建索引语句

CREATE INDEX 书名索引 ON 图书(书名);
  CREATE INDEX 出版社编号索引 ON 图书(出版社编号);
  CREATE INDEX 图书类型编号索引 ON 图书(图书类型编号);
  CREATE INDEX 作者索引 ON 图书(作者);
  CREATE INDEX 书库号索引 ON 图书类型(书库号);
  CREATE INDEX 姓名索引 ON 读者(姓名);
  CREATE INDEX 图书借阅次数索引 ON 读者(图书借阅次数);
  CREATE INDEX 已借册数索引 ON 读者(已借册数);
  CREATE INDEX 未交罚款金额索引 ON 读者(未交罚款金额);
  CREATE INDEX 管理员姓名索引 ON 管理员(管理员姓名);
  CREATE INDEX 借书证编号索引 ON 罚款交费单(借书证编号);
  CREATE INDEX 经手管理员编号索引 ON 图书入库单(经手人编号);
  CREATE INDEX 图书入库单编号索引 ON 图书入库单明细(入库单编号);
  CREATE INDEX 图书编号索引 ON 图书入库单明细(图书编号);
  CREATE INDEX 经手管理员编号索引 ON 图书报损单(经手人编号);
  CREATE INDEX 图书报损单编号索引 ON 图书报损单明细(报损单编号);
  CREATE INDEX 图书编号索引 ON 图书报损单明细(图书编号);
  CREATE INDEX 借书证编号索引 ON 借阅(借书证编号);
  CREATE INDEX 图书编号索引 ON 借阅(图书编号);
  

三、实验小结

这在本次的设计过程中,首先必须要清楚我们所需要的设计的图书管理系统的结构。一个完善的图书管理系统所需要的基本模块都必须要先设计好才能让我们的设计过程不会被各种突然遇到的问题打断,而在本次的锻炼实践中,我们也得到了从理论到实践的机会。在课程中学到的很多东西都可以有所得,有所悟,而不只是单纯的纸上谈兵。同时,借此机会,我们也学到了很多课堂上学不到的东西,掌握了许多实用的工具,例如学会了SQL Server的基本使用,Visual Stdio 2019 的基本使用,它们都是非常有用的工具,不仅仅是在课堂作业中,更会在我们日后的职业生涯中有着不可估摸的作用。其次本次系统的设计也对我学习用户界面设计有所启发,一个系统不仅仅需要具有合理的功能模块设计,而且也需要有更加人性化的界面设计,便于用户学习使用和掌握,这样才能使系统能够让更多的人接受。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/565454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA开发(记一次删除完全相同pgSQL数据库记录只保留一条)

进行数据管理时&#xff0c;无效数据可能会对生产力和决策质量造成严重的影响。如何发现和处理无效数据变得愈发重要。一起来唠唠你会如何处理无效数据吧~ 方向一&#xff1a;介绍无效数据的概念 最近遇到了pg数据库表中的大量数据重复了&#xff0c;需要删除其中的一条。一条…

数据库事务基本概念介绍

一、数据库事务是什么&#xff1f; 我们先不说数据库中的事务&#xff0c;我们看下百度对事务这个词汇的解释&#xff1a; 事务&#xff1a; 也就是说&#xff0c;事务就是&#xff0c;要做或者所做的事情 好的我们再联系一下生活中平常做的一些事情 例如 小 x 去 爱存不存的…

快速指南:在CentOS 7上安装Redis,构建高性能键值存储数据库

导航目录 1、Redis安装并使用1.1、下载安装包1.2、重命名和移动文件1.3、redis编译安装1.4、redis启动1.5、设置后台启动redis1.6、设置redis密码1.7、设置redis服务远程访问1.8、redis服务的客户端连接测试1.9、命令行使用1.10、清理缓存 Redis&#xff08;Remote Dictionary …

opencv_c++学习(二十一)

一、图像的轮廓检测 轮廓检测函数&#xff1a; findContours(lnputArray image, OutputArrayOfArrays contours,OutputArray hierarchy, int mode, int method, Point offset Point())image:输入图像&#xff0c;数据类型为CV_8U的单通道灰度图像或者二值化图像。contours:检…

mPython软件使用指南

①软件界面 一、软件界面的介绍 1.模式切换 硬件编程 Python3.6 Jupyter python3.6模式细节补充&#xff08;一般不使用该模式&#xff0c;此处可跳过&#xff09; Python3.6模式的界面 左侧指令分类栏 Python3.6模式的图形化指令分类分为&#xff1a; Python语法基础相关指令&…

Ajax 获取 JSON数据

文章目录 Ajax获取JSON数据 Ajax获取JSON数据 Ajax 全称“Asynchronous JavaScript and XML”&#xff0c;译为“异步 JavaScript 和 XML”&#xff0c;程序员们习惯称之为“阿贾克斯”&#xff0c;通过 Ajax 我们可以异步在服务器与客户端之间传递数据。在 Ajax 中&#xff0…

机器学习期末复习 贝叶斯分类器

先验概率与后验概率 先验概率&#xff1a;对于某一个概率事件&#xff0c;我们都会有基于自己已有的知识&#xff0c;对于这个概率事件会分别以什么概率出现各种结果会有一个预先的估计&#xff0c;而这个估计并未考虑到任何相关因素。 对于分类数据来说&#xff0c;先验概率就…

【lager】日志系统1:允许多个日志源向多个最终用户进行日志记录 windows cmake构建

【xerces】xerces-c-3.2.4 版本的cmake windows vs2022 构建 lager Light-weight Accumulator Gathering Efficiently in Real-time lagerLAGER(实时高效收集的轻量级累加器)是一个可靠的日志系统,旨在允许多个日志源向多个最终用户进行日志记录。该设计文档概述了整个系统的…

Android---APK 瘦身

在 APP 开发过程中&#xff0c;随着业务迭代&#xff0c;apk 体积逐渐变大。项目中累积的无用资源&#xff0c;未压缩的图片资源等&#xff0c;都为 apk 带来了不必要的体积增加。而 APK 的大小会影响应用加载速度、使用的内存量以及消耗的电量。 APK 结构 APK 文件由一个 Zip…

浅析Koa2中控制器

控制器 什么是控制器 拿到路由分配的任务&#xff0c;并执行 路由的功能是根据不同的 url, 来分配不同的任务。 控制器是拿到路由分配的任务并执行&#xff0c;是注册在路由中的中间件。 所以在 koa 中, 控制器也是一个中间件。 为什么要使用控制器 获取HTTP请求参数处理…

article-码垛机器人admas仿真

按照运动学仿真的类似步骤为机器人添加材料、运动副和关节驱动&#xff0c;给机器人手腕末端施加50N最大负载&#xff0c;仿真模型如图5-17。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AXYQVZPq-1684936426972)(data:image/svgxml;utf8, )] 图…

OpenGL之纹理

文章目录 什么是纹理加载与创建纹理stb_image.h加载并生成纹理 纹理环绕方式纹理过滤多级渐远纹理 纹理单元 什么是纹理 我们已经了解到&#xff0c;我们可以为每个顶点添加颜色来增加图形的细节&#xff0c;从而创建出有趣的图像。但是&#xff0c;如果想让图形看起来更真实&a…

unity制作一款塔防游戏

文章目录 介绍寻路系统怪物生成器制作3种初级炮台、3种升级炮台设置炮台属性选择炮台&#xff0c;添加监听事件炮弹追踪攻击敌人拖动鼠标实现相机视角转换鼠标光标放在cube上变色文字动画 介绍 关键技术&#xff1a; 寻路系统 生成怪物算法 粒子系统 line renderer制作追踪射线…

python基本操作1(速通版)

目录 一、input输入函数 二、格式化字符输出 三、函数的基本操作 1.return返回值的问题 2.参数传递 四、运算符 1.关系比较符 2.逻辑运算符 五、if语句 六、随机数 七、循环 1.while语句的基本应用 2.break语句 2.continue语句 3.猜拳游戏 4.三目运算符 6.for…

让input框只输入英文

解决扫码枪在中文输入法时扫码冲突 扫码枪在扫完码时会自动回车&#xff0c;这时如果是中文输入法就会触发输入法联想&#xff0c;再加一个回车&#xff0c;那么input框输入的就成中文了。如果可以控制input框只能输入英文那就好了。css有一个属性&#xff08;ime-mode&#xf…

ChatGpt论文指令,很全!

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 ChatGPT的能力大家肯定都听说过&#xff0c;很多学生应该都亲身体验过。它在自然语言处理方面的出色 除了写代码 写论文也是超…

【计算思维题】少儿编程 蓝桥杯青少组计算思维真题及详细解析第4套

少儿编程 蓝桥杯青少组计算思维真题及详细解析第4套 1、下面哪个图形与其它图形不同 A、 B、 C、 D、 答案:D 考点分析:主要考查小朋友们的观察能力,从给定的图中可以看到前三个选项都是90度直角,最后一个是锐角,所以答案D 2、下列哪个选项是由下图旋转得到的

位运算【算法基础】

目录 知识点&#xff1a; 题目&#xff1a; 模板 关于为什么负数要用补码 知识点&#xff1a; 如果想看整数n的二进制表示中的第k位&#xff08;从0开始&#xff09;是几&#xff1f; &#xff08;1&#xff09;把第k位右移到个位n>>k &#xff08;2&#xff09;看x…

大模型时代,「重识」云知声

在山海大模型发布会现场&#xff0c;黄伟有一句话令人印象深刻&#xff0c;“云知声的过去十年&#xff0c;就是为山海而生。 作者| 皮爷 出品|产业家 “谁能做成中国最好的大模型&#xff1f;”在今年3月一个北京投资人的内部分享会上&#xff0c;有人满怀期待地提出这样…

Java SPI 一 之SPI(Service Provider Interface)进阶 AutoService

​ 一、SPI&#xff08;Service Provider Interface&#xff09; 1.1 介绍 SPI&#xff08;Service Provider Interface&#xff09;&#xff0c;是JDK内置的一种 服务提供发现机制(为某个接口寻找服务实现的机制)&#xff0c;可以用来启用框架扩展和替换组件&#xff0c;其…