本科毕业设计论文--图书管理系统数据库设计
内容与要求
1. 请结合软件类专业课程实验教学环节设计数据库,实现实验教学的有效管理,具体功能应包括但不限于:
(1)教师可以根据不同课程编辑和发布实验内容;
(2)学生可以浏览实验内容,同时完成作品的提交;
(3)学生可以在规定时间内填写、修改和提交实验报告;
(4)教师可以通过应用系统批改实验报告,并提交成绩;
(5)学生可以查询个人实验成绩;
2. 给出数据库设计各个阶段的详细设计报告,包括:
(1)需求分析
(2)概念结构设计
(3)逻辑结构设计
(4)物理结构设计与实施
3. 写出应用系统的主要功能设计;
4. 写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设想和建议;
5. 独自完成作业,有雷同的平分得分;
6. 也可以自行设计课题。
目录
1 绪论............................................................................................................................. - 1 -
1.1课题的意义...................................................................................................... - 1 -
2 应用系统功能设计..................................................................................................... - 2 -
2.1 业务操作流程.................................................................................................. - 2 -
2.1.1读者角度的流程图................................................................................ - 2 -
2.1.2图书管理系统流程图.............................................................................. - 2 -
2.2 系统功能设计.................................................................................................. - 3 -
3 数据库设计................................................................................................................. -
4 -
3.1 需求分析.......................................................................................................... - 4 -
3.1.1需求分析过程.......................................................................................... - 4 -
3.1.2数据字典.................................................................................................. - 5 -
3.2 概念结构设计.................................................................................................. - 6 -
3.2.1实体.......................................................................................................... - 6 -
3.2.2局部视图.................................................................................................. - 6 -
3.2.3视图集成.................................................................................................. - 8 -
3.3 逻辑结构设计.................................................................................................. - 9 -
3.3.1将E-R图转化为关系模式 ..................................................................... - 9 -
3.3.2数据模型的优化.................................................................................... - 10 -
3.4 物理结构设计与实施.................................................................................... - 11 -
3.4.1建表...................................................................................................... - 11 -
3.4.2合法用户................................................................................................ - 15 -
3.4.3视图........................................................................................................ - 16 -
3.4.4触发器.................................................................................................... - 16 -
3.4.5索引........................................................................................................ - 16 -
4 结束语....................................................................................................................... - 17 -
4.1 收获和体会.................................................................................................... - 17 -
4.2 总结与展望.................................................................................................... - 17 -
1 绪论
数据库是数据管理的有效技术,是计算机科学的重要分支。信息资源已成为各个部门的重要财富和资源。建立一个满足各个部门信息处理系统核心和基础的数据库技术得到越来越广泛的应用。随着社会信息量的与日俱增,职场竞争的日益激烈,越来也多的人更关注知识的积累、能力的培养。作为信息存储的主要媒体之一,图书的规模、数量比以往任何时候都大的多,不论个人还是图书馆管理部门都需要使用方便有效的方式来管理自己的图书。
一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。系统在IBMDB2平台上用SQL语言来编写实现。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认
1.1课题的意义
对于图书管理部门而言,以前单一的手工检索已经不能满足人们的要求,为了方便图书资料的管理需要有效的图书管理软件,缩短了借阅者的等待时间,减轻了工作人员的工作量,方便工作人员对他的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
本文以高校图书馆管理系统管理系统开发过程为背景,在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。采用结构化的功能模块设计系统功能,可读性好,易于扩充,基本功能全面,系统可读性好,易于维护,更新,安全性好。
2 应用系统功能设计
2.1 业务操作流程
2.1.1读者角度的流程图
图2.1-1
2.1.2图书管理系统流程图
顶层数据流程图:
第二层数据流程图:(读者借阅,读者还书,读者查询,管理员查询、修改)
2.2 系统功能设计
系统功能模块图
3 数据库设计
3.1 需求分析
此部分写数据库需求分析,必须给出数据字典和数据流图。
3.1.1需求分析过程
(1)流程
读者到图书借阅处查询图书,看看是否有满足读者要求的图书。如果有满足读者要求的图书,查看该图书是否在馆,如果在馆,则图书管理员在系统记录读者信息并记录借出图书信息,如果不在馆,通知读者。如果读者要求的图书无法提供,则通知读者无法满足。
(2)功能:
实现图书的查询,借入和归还功能,而且能保存记录。
(3)流程图:
读者借阅图书,系统查询图书是否在馆。图书已借出,显示已借出;未借出显示下一步,图书管理员管理图书,登记读者信息,借出图书。
3.1.2数据字典
表3.1-5
3.2 概念结构设计
此部分主要给出全局ER 模型。
3.2.1实体
读者信息,图书信息,图书管理员信息
3.2.2局部视图
(1)
读者-借阅—图书
图3.2-1借阅关系E-R 图
事务规则:一个读者可以借阅多本图书(1:n)
一本图书可以被一个读者借阅(1:n) (2)管理员—管理—读者
图3.2-2管理员_读者关系E-R图
事务规则:一个图书管理员可以管理多个读者信息(1:n)
一个读者信息只能被一个图书管理员管理(1:1)(3)管理员—管理—图书
事务规则:一本图书可以被多个图书管理员管理(1:n)
一个图书管理员可以管理多本图书(1:n)
3.2.3视图集成
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
2)局部ER模式的合并
合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。
3)消除冲突
冲突分为三类:属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
4)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。综上所述,“图书管理系统”的全局ER模式如下图所示。
图3.2-4系统全局ER图
3.3 逻辑结构设计
给出优化后的关系模式。
3.3.1将E-R图转化为关系模式
由于概念设计的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。
将图2-4总体概念结构E-R图转化成关系模型。
3.3.2数据模型的优化
将转化的关系模式进行优化,最终达到第三范式。
3.4 物理结构设计与实施
此部分写数据库物理结构设计,重点给出SQLServer2008中各个关系的实现情况,包括表和视图的create语句。
3.4.1建表
/*(1) 图书信息表BOOK*/
Create Table BOOK
(ISBN char(20)Primary Key Not Null,
书名char(50)Not Null,
作者char(20)Not Null,
出版社char(50),
出版日期date,
简介char(100)
);
/*(2)读者信息表STUDENT*/
Create Table STUDENT
(读者编号char(20)Primary Key Not Null,
读者姓名char(10)Not Null,
读者性别char(2)Not Null,
联系电话char(10),
所在系char(20)Not Null,
违章状况char(2),
借书累计int
);
/*(3) 管理员信息表MANAGER*/
Create Table MANAGER
(工作号char(12)Primary Key Not Null,
姓名char(20)Not Null,
性别char(2)Not Null,
电话char(12),
工资char(12)
);
/*(4)借阅关系表R-B*/
Create Table R_B
(工作号char(12)Not Null,
ISBN char(20)Not Null,
读者编号char(20)Not Null,
借书日期date Not Null,
还书日期date Not Null,
是否续借char(4)Not Null,
Primary Key(ISBN,读者编号),
Foreign Key(ISBN)References BOOK(ISBN),
Foreign Key(读者编号)References STUDENT(读者编号) );
/*(5)管理员_书籍表M-B*/
Create Table M_B
(工作号char(12)Not Null,
ISBN char(20)Not Null,
添加时间date,
是否在馆char(14),
Primary Key(工作号,ISBN),
Foreign Key(工作号)References MANAGER(工作号), Foreign Key(ISBN)References BOOK(ISBN)
);
/*(6)管理员_学生表M-S*/
Create Table M_S
(工作号char(12)Not Null,
读者编号char(20)Not Null,
确认归还char(4)Not Null,
Primary Key(工作号,读者编号),
Foreign Key(工作号)References MANAGER(工作号), Foreign Key(读者编号)References STUDENT(读者编号) );