图书借阅管理系统

  

一.需求分析 

二.概念结构设计 

三.逻辑结构设计 

四.系统相关数据库表设计 

五.模块详细设计与实现 

六.总结 

一.需求分析

我们的图书借阅系统旨在支持图书馆的信息化管理,优化图书借阅、归还及图书资源管理。通过数据库系统化地管理图书资源、读者信息和借阅记录,系统将提升管理效率和服务质量。系统将具备以下核心功能:

  1. 图书信息管理

图书信息是系统的核心资源之一。系统需记录每本图书的详细信息,包括图书编号、名称、分类号、作者、出版社、价格等,同时按图书分类号对图书进行分类。图书分类号(BookClassificationNumber)将帮助系统实现对图书的高效分类和检索。每个图书副本(BookCopy)将有一个唯一编号和状态(如“可借”、“已借出”),以便跟踪和管理每本书的借阅情况。

相关表:

·图书表(Book):记录图书的基本信息,如图书编号、名称、作者、出版社、价格等。

·图书分类表(BookClassification):通过分类号管理图书类型,确保图书分类的准确性。

  1. 读者信息管理

系统通过唯一证件号( cardrd )标识每位读者,并记录读者的姓名、证件状态(如有效或无效)、联系方式等信息。为了确保借阅的规范性,系统需要随时更新读者状态。读者的借阅权限基于证件状态( cardstatus),如果证件过期,系统应自动禁用其借书功能。

相关表:

·读者表(Reader):记录读者的基本信息,包括证件号、姓名、联系方式和证件状态。

·借阅证表(Card):记录借阅证的发放和过期日期,作为读者借阅图书的凭证。

1.借阅记录管理

借阅记录是系统的关键组成部分,系统需记录每次借书的图书编号、读者证件号、借阅日期、应还日期和实际归还日期。系统还需要能够处理逾期归还,并计算罚款金额。借阅记录的准确性对于管理借阅行为和资源调度至关重要。

相关表:

  ·借阅表(BorrowRecord):记录每次借阅的详细信息,包括借阅日期、应还日期、归还日期、罚款金额等。

  ·罚款:借阅表中的罚款金额( PenaltyFee)会在图书逾期归还时自动生成,确保借阅者按时归还图书。

2.图书副本管理

每本图书可能有多个副本,系统需要记录每个副本的唯一编号、状态(如“可借”、“已借出”、“损坏”)。副本管理帮助管理员追踪借阅情况,并确保图书资源的合理分配,避免资源浪费或丢失。副本的管理对于多副本图书的借阅和归还至关重要。

相关表:

·图书副本表(BookCopy):记录每本图书副本的编号、状态、条形码等信息。

3.借阅证管理

借阅证是读者借书的凭证,系统需要记录借阅证的发放日期和过期日期。系统应自动禁用过期证件的借阅功能,以确保借阅的规范性。借阅证表将记录每位读者借阅证的有效期,超出有效期后,读者将无法继续借书,需重新申请。

相关表:

 ·借阅证表(Card):记录借阅证的发和过期日期,确保过期证件无法继续借书。

二.概念结构设计

我们分析图书借阅系统的需求,根据对现实世界中的图书管理人员中涉及的人,物,事进行抽象,从而得到系统的实体,实体的属性,实体的码,实体之间的联系及联系的类型,并用以下E-R图进行表示。

图 1总体E-R图


图 2 E-R图读者实体


图 3 E-R图借阅关系


             图 4 E-R图借阅证弱实体

图 5 E-R图图书副本实体

图 6 E-R图图书实体

                                                               图 7 E-R图图书类型实体

三.逻辑结构设计

我们的数据库的逻辑结构设计是根据概念结构设计阶段的全局E-R图,按照转换规则成数据模型。图书借阅的关系模式如下:

(1)图书类型

表名:BookClassification

属性:图书分类号(BookClassificationNumber),图书分类名称(BookClassificationName),描述信息(Description)

(2)图书

表名:Book

属性:图书编号(BookId),图书名称(BookName),图书分类号(BookClassificationNumber),作者(Author),出版社(Publisher),价格(Price)

(3)读者

表名 :Reader

属性:证件号(CardId),姓名(Name),证件状态(CardStatus),联系方式(Phone),邮箱(Email)

(4)借阅

表名:BorrowRecord

属性:证件号(CardId),图书编号(BookId),借阅日期(BorrowingDate),应还日期(DueDate),归还日期(ReturnDate),罚款金额(PenaltyFee)

(5)图书副本 (弱实体集)

表名:BookCopy

属性:副本编号(CopyId),图书编号(BookId),状态(Status),条形码(Barcode)

(6)借阅证 (弱实体集)

表名:Card

属性:证件号(CardId),借阅证编号(Card_id),发放日期(IssueDate),过期日期(ExpirationDate)

四.系统相关数据库表设计

 表3.1 读者表

表名

读者表

列名

数据类型

非空

约束条件

中文描述

CardId

CHAR(10)

true

主键

主键标识,证件号

Name

CHAR(8)

true

姓名

Card Status

CHAR(4)

true

证件状态

Phone

CHAR(11)

false

联系方式

Email

VARCHAR(50)

false

UNIQUE

邮箱

表3.2 图书表

表名

图书表

列名

数据类型

非空

约束条件

中文描述

Book_id

char(13)

true

主键

主键标识,图书编号

Book name

varchar(50)

true

图书名称

Book Classification Number

char(7)

true

外键,参照图书类型表的分类号

图书分类号

Author

char(50)

true

作者

Publisher

char(30)

false

出版社

Price

float

true

必须大于0

价格

ISBN

CHAR(13)

true

UNIQUE

国际标准书号

表3.3 图书类型表

表名

图书类型表

列名

数据类型

非空

约束条件

中文描述

Book Classification Number

CHAR(7)

true

主键

主键标识,图书分类号

Book Classification Name

CHAR(20)

true

图书分类名(部分码)

Description

VARCHAR(50)

false

描述信息

表3.4 借阅表

表名

借阅表

列名

数据类型

非空

约束条件

中文描述

CardId

CHAR(10)

true

外键,参照读者表的证件号

主键标识,证件号

Book_id

CHAR(13)

true

外键,参照图书表的图书编号

主键标识,图书编号

Borrowing Date

DATE

true

主键

主键标识,借阅日期

Due Date

DATE

true

应还日期

Return Date

DATE

false

归还日期

Penalty Fee

FLOAT

true

DEFAULT 0.0,CHECK(Penalty Fee >= 0.0)

罚款金

Status

CHAR(10)

true

CHECK(Status IN("借阅中,已归还'逾期”))

表3.5 借阅证表

表名

借阅证表

列名

数据类型

非空

约束条件

中文描述

CardId

CHAR(10)

true

部分主键,外键,参照读者表

证件号(外键)

Issue Date

DATE

true

发放日期

Expiration Date

DATE

true

过期日期

Card_id

CHAR(10)

true

借阅证编号(部分码)

表3.6 图书副本表

表名

图书副本表

列名

数据类型

非空

约束条件

中文描述

Copyid

CHAR(10)

true

副本编号(部分码)

Status

CHAR(10)

true

CHECK(Status IN('可借’借出’暂无”))

副本状态

Barcode

CHAR(20)

true

UNIQUE

条形码

Book_id

CHAR(13)

true

主键

图书编号

五.模块详细设计与实现

1.使用MySQL建立数据库

2.建立基本表

(1)读者表(Reader)

CREATE TABLE Reader (

    CardId CHAR(10) NOT NULL,

    Name CHAR(8) NOT NULL,

    CardStatus CHAR(4) NOT NULL,

    Phone CHAR(11),

    Email VARCHAR(50),

    PRIMARY KEY (CardId),

    UNIQUE (Email)

);

(2)图书表(Book)

CREATE TABLE IF NOT EXISTS Book (

    Book_id CHAR(13) NOT NULL,

    Book_name VARCHAR(50) NOT NULL,

    BookClassificationNumber CHAR(7) NOT NULL,

    Author VARCHAR(50) NOT NULL,

    Publisher VARCHAR(30),

    Price FLOAT NOT NULL CHECK (Price > 0),

    ISBN CHAR(13) NOT NULL UNIQUE,

    PRIMARY KEY (Book_id),

    FOREIGN KEY (BookClassificationNumber) REFERENCES BookClassification (BookClassificationNumber)

);

(3)图书类型表(BookClassification)

CREATE TABLE BookClassification (

    BookClassificationNumber CHAR(7) NOT NULL,

    BookClassificationName CHAR(20) NOT NULL,

    Description VARCHAR(50),

    PRIMARY KEY (BookClassificationNumber)

);

(4)借阅表(Borrow)

CREATE TABLE Borrow (

    CardId CHAR(10) NOT NULL,

    Book_id CHAR(13) NOT NULL,   

    Borrowing_Date DATE NOT NULL,

    Due_Date DATE NOT NULL,  

    Return_Date DATE,  

    Penalty_Fee FLOAT NOT NULL DEFAULT 0.0,

Status CHAR(10) NOT NULL,  

    PRIMARY KEY (CardId, Book_id, Borrowing_Date),

   CONSTRAINT fk_card FOREIGN KEY (CardId) REFERENCES Reader(Cardid),

   CONSTRAINT fk_book FOREIGN KEY (Book_id) REFERENCES Book(Book_id),

    CONSTRAINT chk_penalty_fee CHECK (Penalty_Fee >= 0.0),

    CONSTRAINT chk_status CHECK (Status IN ('借阅中', '已归还', '逾期'))

);

(5)借阅证表(Card)-弱实体集

CREATE TABLE BorrowCard (

    CardId CHAR(10) NOT NULL,

    `Issue Date` DATE NOT NULL,

    `Expiration Date` DATE NOT NULL,

    Card_id CHAR(10) NOT NULL,

    PRIMARY KEY (CardId, Card_id),

    FOREIGN KEY (CardId) REFERENCES Reader(CardId)  

);

(6)图书副本表(BookCopy)-弱实体集

CREATE TABLE BookCopy (

    Copyid CHAR(10) NOT NULL,            

    Status CHAR(10) NOT NULL CHECK (Status IN ('可借', '借出', '暂无')),

    Barcode CHAR(20) NOT NULL UNIQUE,   

    Book_id CHAR(13) NOT NULL,           

    PRIMARY KEY (Book_id)          

);

3.视图创建

(1)创建图书分类下所有图书的视图

CREATE VIEW Books_By_Category AS

SELECT

    bc.BookClassificationName,

    b.Book_name,

    b.Author,

    b.Price

FROM

    Book b

JOIN BookClassification bc ON b.BookClassificationNumber = bc.BookClassificationNumber;

(2)创建图书的借阅记录视图

CREATE VIEW Books_BorrowRecords AS

SELECT

    b.Book_name,

    r.Name AS ReaderName,

    br.Borrowing_Date,

    br.Due_Date,

    br.Return_Date

FROM

    Borrow br

JOIN Book b ON br.Book_Id = b.Book_Id

JOIN Reader r ON br.CardId = r.CardId;

4.插入数据以测试视图

(1)插入读者数据

(2)插入图书类型数据

(3)插入图书数据

(4)插入借阅数据

(5)插入借阅证数据

(6)插入图书副本数据

5.测试视图

(1)查看每个读者的借阅记录

SELECT * FROM Reader_BorrowRecords;

(2)查看每个图书分类下的所有图书

SELECT * FROM Books_By_Category;

六.总结

1.系统功能概述

(1)图书信息管理

        系统的核心资源是图书,通过图书表(Book)来管理每本图书的基本信息,包括图书编号、名称、分类、作者、出版社、价格等。图书信息还通过图书分类表(BookClassification)进行分类,以便于图书的高效管理和检索。

(2)读者信息管理

        系统通过读者表(Reader)来管理所有读者的信息,每位读者通过唯一的证件号(CardId)进行标识。读者信息包括姓名、证件状态(有效或无效)、联系方式等。为了确保借阅的规范性,系统会实时更新读者的借阅权限。

(3)借阅记录管理

        借阅记录是系统的重要组成部分,记录每次借书的图书编号、读者证件号、借阅日期、应还日期、归还日期和罚款金额。通过借阅表(BorrowRecord)来管理这些信息,系统能够自动计算罚款,并跟踪图书的借阅和归还情况。

(4)图书副本管理

        图书副本通过图书副本表(BookCopy)进行管理,记录每个副本的唯一编号、状态(如“可借”、“已借出”或“损坏”)以及条形码等信息。副本管理帮助管理员追踪借阅情况,避免资源浪费或丢失。

(5)借阅证管理

        借阅证是读者借书的凭证,通过 `借阅证表`(`Card`)来记录每个读者的借阅证信息,包括发放日期和过期日期。过期的借阅证会自动禁用,确保借阅行为的规范性。

2.数据库设计

        系统的数据库设计包括 7 个主要表,分别为:

·图书表(Book):记录图书的基本信息。

·图书分类表(BookClassification):记录图书的分类信息。

·读者表(Reader):记录每个读者的个人信息。

·借阅表(BorrowRecord):记录每次借书的详细信息。

·图书副本表(BookCopy):记录每个图书副本的状态和位置。

·借阅证表(Card):记录读者借阅证的发放和过期日期。

        这些表并非孤立存在,而是通过精心设计、具备强关联性的外键紧密相连,仿若大厦内部坚固交织的钢筋骨架,彼此支撑协同,确保数据在这座 “知识信息大厦” 内流通时,始终维持高度的完整性与一致性。任何一处数据细节变更,均能联动相关信息板块自动协同更新,为系统长期、稳定运行筑牢坚实根基,保障系统可靠性。

3.系统工作流程

(1)读者注册和借阅:读者踏入图书馆知识领域,先在系统内启动注册流程,提交个人信息后,系统依预设标准严谨审核,审核通过即时发放借阅证。此后读者凭借证件号借阅,每次借阅操作,系统毫秒级响应,精准捕捉借阅起始时间,依托算法推算应还日期,全程动态监测图书归位,确保知识传递各环节精准无误。

(2)逾期和罚款管理:图书借阅瞬间,系统依预设规则精确计算应还日期并记录。若图书未如期归还,系统凭借敏锐监测机制察觉,自动生成逾期信息,依据逾期天数、参照具法律效力的罚款规则精确计算罚款金额。逾期将关联读者信用记录,影响后续借阅资格获取,促使读者守时还书,保障图书馆资源高效、有序循环。

        本图书借阅系统旨在通过前沿的数据库技术,全方位管理图书馆的图书资源、读者信息与借阅记录。从优化借阅流程入手,简化读者借还书手续,去除繁琐环节;到精细打磨归还流程,确保图书归位迅速、准确;再到全面提升图书馆管理效率,以数据驱动决策,让管理员轻松掌控全局。凭借合理精妙的数据库结构设计,宛如搭建稳固高效的 “知识生产线”;依托行之有效的数据管理功能,如同为生产线配备智能监控;再佐以安全可靠的用户权限控制,恰似为知识宝库筑牢坚固 “门禁”。如此一来,系统便能为图书馆提供高效、可靠的服务,如同强劲引擎,有效助推图书馆的日常运营,确保图书资源如活水般顺畅流动,借阅流程似通途般便捷无阻。系统设计全程秉持前瞻性理念,充分考量安全性,为知识资产保驾护航;兼顾扩展性,以便未来轻松对接新需求;聚焦易用性,让无论是管理员还是读者都能轻松上手,全方位满足图书馆在信息化浪潮下的各类管理需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值