您好,欢迎来到九壹网。
搜索
您的当前位置:首页数据库实验报告-图书管理系统

数据库实验报告-图书管理系统

来源:九壹网
《数据库应用系统》

院 系:班 级:学 号:姓 名:实 验 报 告

一、功能需求说明和分析

本实验要求实现一个图书管理系统,系统功能需求说明如下:

系统设置:参数、读者类型、图书类型、出版社、预约天数、管理员权限等的设置; 系统管理:书籍资料、读者资料的管理和数据导入;

基本操作:书籍借阅、续借、归还,新增书籍、读者,读者挂失、注销、退卡,书籍注销,丢失罚款;

系统查询:书籍资料、借阅、归还等的查询,读者资料、超期未还、书籍注销的查询; 统计分析:书籍、读者资料分类统计,书籍、读者借阅排行榜; 罚款租金:可以进行罚款或租金的操作,并进行统计汇总; 系统维护:备份、还原数据库,管理员登录密码修改。

针对上述需求说明,对该系统的需求进行进一步的分析如下:

管理员权限:

1. 图书的录入,查询,修改和注销; 2. 读者信息的添加,修改,查询和注销;

3. 个人账号登录,查看个人信息,修改密码,退出登录; 4. 管理和授予读者借书权限; 5. 正常还书和违规还书。 读者权限:

1. 图书检索;

2. 登录,查看个人信息,查看借阅记录,退出登录; 3. 借书,还书;

4. 续借已借书籍,预约书籍; 5. 挂失和退卡注销。 书籍检索:

1. 读者可检索到自己想要的书籍的基本信息 2. 可以按照书籍排行榜查看书籍相关书籍

二、需求分析

示。

数据流图(DFD)表达了数据和处理过程的关系,根据需求分析得到数据流图如下图所

数据字典(DD)是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获

得的主要成果。因此,图书馆信息管理系统数据流程图中,数据信息和处理过程需要通过数据字典才能描述清楚。在我们定义的图书馆信息管理系统数据字典中,主要对数据流程图中的数据结构、数据存储和处理过程进行说明。

1、数据结构反应了数据之间的组合关系,主要数据结构定义如下: 1) 数据结构名称:管理员信息

含义说明:管理员信息反应了管理员的一些相关信息 组成:编号+姓名+登录密码 2) 数据结构名称:读者信息

含义说明:读者信息反应了读者的一些相关信息 组成:卡号+姓名+性别+类别+单位 3) 数据结构名称:图书信息

含义说明:图书信息反应了图书的一些相关信息

组成:书号+书名+作者+分类+出版社+状态+入库日期+数量 4) 数据结构名称:借阅记录

含义说明:借阅记录反应了每一本书的被借阅历史和每一位读者的借阅历史 组成:书号+卡号+借出日期+归还日期

2、数据存储是数据结构停留或者保存的地方,主要数据存储定义如下:

1) 数据存储名称:管理员信息表

输入:管理员的工作编号 输出:管理员的基本信息 数据结构:编号+姓名+登录密码

说明:编号是唯一的,且不能为空,作为主码 2) 数据存储名称:读者信息表

输入:读者的借书卡卡号

输出:读者的基本信息以及借阅记录 数据结构:卡号+姓名+性别+类别+单位 说明:卡号是唯一的,且不能为空,作为主码 3) 数据存储名称:图书信息表

输入:图书的书号

输出:该图书的状态(已借出/馆内阅读/在架上)和被借阅历史 数据结构:书号+书名+作者+分类+出版社+状态+入库日期+数量 说明:书号是唯一的,且不能为空,作为主码 4) 数据存储名称:借阅记录表

输入:书籍的书号,或者读者的借书卡卡号 输出:相应的借阅记录

数据结构:书号+卡号+借出日期+归还日期

说明:书号-卡号作为主码;在读者-书籍关系中,卡号为主码,书号为外码;在书籍读者关系中,书号为主码,卡号为外码

3、处理过程的具体处理逻辑一般用判定表或者判定树来描述,在数据字典中只需要描述处理过程的说明性信心。主要处理过程定义如下: 1) 处理过程名称:读者管理

输入:读者借书卡卡号 输出:读者的基本信息

处理操作:对读者进行统一编号,对读者信息进行添加,修改和注销 2) 处理过程名称:图书管理

输入:图书的书号 输出:图书的基本信息

处理操作:对图书进行编号,分类,对图书信息进行添加,修改和注销

三、概念设计

1、通过对实体和关系的分析,得到各实体的E-R图如下: 1) 管理员

2) 读者

3) 图书

2、系统整体E-R图

四、逻辑设计和物理设计

1. 将图书管理系统的E-R图转换为关系模式,关系模式和函数依赖如下: 1) 管理员(编号,管理员姓名,登录密码)

函数依赖:编号->管理员姓名,编号->登陆密码 2) 读者(卡号,读者姓名,性别,类别,单位)

函数依赖:卡号->读者姓名,卡号->性别,卡号->类别,卡号->单位 3) 图书(书号,书名,作者,分类,出版社,数量,状态,入库日期)

函数依赖:书号->书名,书号->作者,书号->分类,书号->出版社,书号->数量,书号->状态,书号->入库日期

4) 借阅记录(书号,卡号,借出日期,归还日期)

函数依赖:(书号,卡号)->借出日期,(书号,卡号)->归还日期 2. 数据结构详细设计

表1 管理员信息表(manager)

字段名 mID 数据类型 char(15) 是否为空 是否为主键 NO YES YES YES 描述 管理员编号 管理员名称 密码 mname Varchar(20) pwd Varchar(30) 表2 读者信息表(reader)

字段名 rID rname sex category workplace 数据类型 Varchar(15) Varchar(20) char(1) Varchar(10) Varchar(30) 是否为空 NO YES YES YES YES 是否为主键 YES 描述 借书卡卡号 读者姓名 性别 类别 单位 表3图书信息表(book)

字段名 bID bname author type press quanlity status Intime 数据类型 Varchar(15) Varchar(30) Varchar(20) Varchar(10) Varchar(30) Varchar(3) Varchar(10) Varchar(10) 是否为空 NO YES YES YES YES YES YES YES 是否为主键 YES 描述 书号 书名 作者 分类 出版社 数量 状态 入库日期 表4借阅记录表(record)

字段名 bID rID borrowtime returntime 数据类型 Varchar(15) Varchar(15) Varchar(10) Varchar(10) 是否为空 NO NO YES YES 是否为主键 YES YES 描述 书号 借书卡卡号 借出时间 归还时间 3. 利用open system Architect建模,得到逻辑模型和物理模型,并输出SQL DDL。实现过

程截图如下: 物理模型:

生成的SQL DDL截图如下:

五、postgreSQL数据库实现

用pgAdmin进行管理,创建一个名为mrb(管理员-读者-读书)的数据库。

然后再所建的数据库下面完成各个数据表的定义。SQL语句如下: 1. --Database: mrb

CREATE DATABASE mrb

WITH OWNER = postgres ENCODING = 'UTF8'

TABLESPACE = pg_default

LC_COLLATE = 'Chinese (Simplified), Singapore' LC_CTYPE = 'Chinese (Simplified), Singapore'

CONNECTION LIMIT = -1;

GRANT ALL ON DATABASE mrb TO postgres; 2. --Table: book

CREATE TABLE book (

\"bID\" \"char\"[] NOT NULL, bname \"char\"[], auther \"char\"[], type \"char\"[], press \"char\"[], quanlity \"char\"[], status \"char\"[], intime \"char\"[],

CONSTRAINT b_key PRIMARY KEY (\"bID\" ) ) WITH ( OIDS=FALSE );

ALTER TABLE book OWNER TO xiemin;

3. --Table: manager

CREATE TABLE manager (

\"nID\" \"char\"[] NOT NULL,

mname \"char\"[],

psw \"char\"[],

CONSTRAINT m_key PRIMARY KEY (\"nID\" ) DEFERRABLE INITIALLY IMMEDIATE )

WITH (

OIDS=FALSE );

ALTER TABLE manager OWNER TO xiemin;

4. --Table: reader

CREATE TABLE reader (

\"rID\" \"char\"[] NOT NULL, rname \"char\"[], sex \"char\"[],

category \"char\"[],

workplace \"char\"[],

CONSTRAINT r_key PRIMARY KEY (\"rID\" ) ) WITH ( OIDS=FALSE );

ALTER TABLE reader

OWNER TO xiemin; 5. --Table: record

CREATE TABLE record (

\"bID\" \"char\"[] NOT NULL, \"rID\" \"char\"[] NOT NULL, borrowtime \"char\"[],

returntime \"char\"[],

CONSTRAINT re_key PRIMARY KEY (\"bID\" , \"rID\" ), CONSTRAINT re_f_key FOREIGN KEY (\"bID\") REFERENCES book (\"bID\") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT re_r_key FOREIGN KEY (\"rID\") REFERENCES reader (\"rID\") MATCH SIMPLE

ON UPDATE NO ACTION ON DELETE NO ACTION )WITH ( OIDS=FALSE );

ALTER TABLE record OWNER TO xiemin; --Index: fki_re_f_key

CREATE INDEX fki_re_f_key

ON record USING btree (\"bID\" );

-- Index: fki_re_r_key

CREATE INDEX fki_re_r_key ON record USING btree (\"rID\" );

六:HTML程序设计

1. 管理员通过用户名和密码进行登录,管理员登陆界面设计如下: 1) HTML代码:

欢迎进入图书馆管理系统

管理员编号:

      密码:

   

     

2) 界面显示如下:

2. 管理员可以添加读者信息,添加读者信息界面设计如下: 1) HTML代码:

添加读者信息

bgcolor=\"#FFFFFF\">

bgcolor=\"#FFFFFF\"align=\"left\">       

读者编号:

(即借书卡卡号)

    姓名:
    性别:

    类别:

教职工

    单位:(选择所在的院系)
 

 

2) 页面显示如下:

3. 管理员可对读者信息查询,读者信息查询界面设计如下: 1) HTML代码;

读者查询页面


查询方式:

2) 页面显示如下:

4. 管理员对读者信息进行删除,界面设计如下: 1) HTML代码:

按读者编号删除

按姓名删除

2) 界面显示如下:

5. 管理员修改密码,界面设计如下: 1) HTML代码:

管理员编号:

      密码:

输入新密码:

确认新密码:

2) 页面显示如下:

6. 读者查询图书信息,界面设计如下: 1) HTML代码:

书籍查询页面


按书名

按作者

按出版社

2) 页面显示如下:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务