数据库大作业图书管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图书管理系统
需求分析
❖信息需求:
为了加强图书的管理,设计图书管理系统,方便用户借阅、管理员管理,减少管理员的工作量。
1)主要信息需求
1.图书信息:简介、出版日期、出版社、作者、书名、书号
2.读者信息:姓名、性别、读者编号、所在系、联系电话
3.借阅信息:借书日期、还书日期、工作号、书号、是否续借、读者编号
4.管理员信息:姓名、性别、电话、工资、工作号
5.管理_书籍信息:工作号、书号、添加时间、是否在馆
6.管理_读者信息:工作号、读者编号、借还确认、违章情况、累计借书
2)信息间的主要联系
1.一个读者可以借阅多本书籍(1:m)
2.一本图书可以被一个读者借阅(1:1)
3.一个图书管理员可以管理多个读者(1:n)
4.一个读者信息只能被一个图书管理员管理(1:1)
5.一本图书可以被多个图书管理员管理(1:n)
6.一个图书管理员可以管理多本图书(1:m)
❖处理需求:
1.借阅功能:可以方便地借阅图书、续借图书、归还图书
2.查询功能:按图书编号查找图书、按图书名称查找图书、按图书作者查找图书、能够按照自己的图书证编号查询自己的状态信息
3.读者注册功能:能够对新的读者进行登记,或注销读者的信息
4.图书录入功能:能够将新到的图书信息输入到系统的图书信息库中
5.统计功能:按图书编号统计书籍数量、按图书名称统计数量、按作者统计书籍数量
❖安全性需求
1.管理员的权限最高,可以查询、修改借阅关系表、管理员_书籍表、管理员_读者表
2.读者,可以查看图书基本信息、个人自己的借阅信息。不可以对其中的信息进行添加、修改等操作。
❖完整性需求
1.在图书管理信息表中,书号、书名、作者、出版社、出版日期、简介输入信息的时候都有类型、长度要求。书号、书名、作者不能为空,其中书号为主码2.在读者信息表中,其中的各类信息都有类型、长度要求。读者编号、读者姓名、读者性别、所在系不能为空,读者编号为主码
3.在管理员信息表中,其中的各类信息都有类型、长度要求。工作号、姓名、性别不能为空,工作号为主码
4.在借阅关系表中,其中的各类信息都有类型、长度要求,且均不可为空。
工作号、书号为外码
5.在管理员_书籍表中,其中的各类信息都有类型、长度要求。工作号、书号不能为空,且为外码
6.在管理员_读者表中,其中的各类信息都有类型、长度要求,均不可为空。
工作号、读者编号为外码
❖
❖
借书 图书
还书
拒绝信息
图2 第0层数据流图
概念结构设计❖局部E-R图
1.读者—借阅—图书
一个读者可以借阅多本书籍(1:m)
一本图书可以被一个读者借阅(1:1)
图R图
一个图书管理员可以管理多个读者(1:n)
一个读者信息只能被一个图书管理员管理(1:1)
_
一本图书可以被多个图书管理员管理(1:n)
一个图书管理员可以管理多本图书(1:m)
图3 管理员_
❖全局E-R图
将数据关系模式优化,最终达到第三范式。优化后的关系模式:
1.读者(读者编号、读者姓名、读者性别、联系电话、所在系、违章情况、累计借
书)
2.图书(书号、书名、作者、出版社、出版日期、简介)
3.管理员(工作号、姓名、性别、电话、工资)
4.借阅(读者编号、书号、是否续借、借书日期、还书日期)
5.管理员_图书(工作号、书号、添加时间、是否在馆)
6.管理员_读者(工作号、读者编号、确认借还)
物理概念设计
❖数据的存储结构
根据以上的逻辑概念设计,得出各类数据的存储结构
1.图书信息表
数据库建立
❖建表
1.图书信息表BOOK
CREATE TABLE BOOK
( 书号char(20) PRIMARY KEY NOTNULL ,
书名char(50) NOTNULL ,
作者char(20) NOTNULL ,
出版社char(50)
出版日期data ,
简介char(200)
) ;
2.读者信息表STUDENT
CREATE TABLE STUDENT
( 读者编号char(20) PRIMARY KEY NOTNULL , 读者姓名char(10) NOTNULL ,
读者性别char(2) NOTNULL ,
联系电话char(10) ,
所在系char(20) NOTNULL ,
违章情况char(2) ,
借书累计int
) ;
3.管理员信息表MANAGER
CREATE TABLE MANAGER
( 工作号char(12) PRIMARY KEY NOTNULL ,
姓名char(20) NOTNULL ,
性别char(2) NOTNULL ,
电话char(12) ,
工资char(12)
) ;
4.借阅关系表R—B
CREATE TABLE R—B
( 工作号char(12) NOTNULL ,
书号char(20) NOTNULL ,
读者编号char(20) NOTNULL ,
借书日期data NOTNULL ,
还书日期data NOTNULL ,
是否续借char(4) NOTNULL,
PRIMARY KEY (书号,读者编号) ,
FOREIGN KEY (书号) REFERENCES (书号) ,
FOREIGN KEY (读者编号) REFERENCES (读者编号) ) ;
5.管理员_图书表M—B
CREATE TABLE M—B
( 工作号char(12) NOTNULL ,
书号char(20) NOTNULL ,
添加时间data ,
是否在馆char(14) ,
PRIMARY KEY (工作号,书号) ,
FOREIGN KEY (工作号) REFERENCES (工作号) ,
FOREIGN KEY (书号) REFERENCES (书号)