数据库系统设计实例分析.docx
《数据库系统设计实例分析.docx》由会员分享,可在线阅读,更多相关《数据库系统设计实例分析.docx(15页珍藏版)》请在冰豆网上搜索。
数据库系统设计实例分析
1系统介绍
图书馆作为校园文化服务部门,提供给学生和老师的是文献服务,作为校园的重要文化信息部门,也需要一套有效的图书管理系统来提高管理效率。
图书管理信息系统的目标是:
信息收集制度化,信息加工标准化,信息传递规范化,信息内容系统化,信息储存档案化以及图书馆信息工作专业化。
图书借还书管理系统应该包括借阅图书,预约图书,图书续借和还书等基本内容。
⑴图书的管理人员需要管理学生的资料。
学生的资料主要包括:
姓名,性别,学号,班级,院部,借阅许可等信息。
其中借阅许可是由学生的借阅情况决定的,只要是在校本科生,已借阅图书不超过五本。
⑵图书管理人员必须对图书进行有效的管理。
图书的资料主要有:
书号,书名,作者,出版社,图书的使用状态等。
其中图书的使用状态是被借阅,被预约等。
⑶系统应该给学生带来借阅图书,预约图书方便性。
⑷系统应该做到借阅图书和预约图书的无缝结合,及时掌握图书的状态,方便使用,最大程度地利用图书馆的资源。
⑸系统对学生借阅的图书延期时应给予提示和处理。
⑹系统管理主要是执行数据库的备份和恢复,数据库表的维护等工作,保证系统的正常运行。
2需求分析
2.1需求调查
(1)学生个人档案包括姓名,班级,性别,学号,班级,院部,借阅许可等信息等。
(2)当图书被学生借阅时,系统要改变图书的状态,不再允许借阅,但是允许预约,而且每本书只能被一人借阅或同时被一人预约一次。
(3)当学生借阅的图书延期时,图书馆要通知学生及时还书,并进行相应的处罚。
(4)学生在系统可以查阅自己的借阅情况,归还自己借阅的图书。
图书馆借阅系统的用例包括以下内容:
●查询图书
●借阅图书
●归还图书
●预约图书
●查询借阅情况
2.2数据流程图
图书馆借阅的数据流程图见下:
2.3数据字典
数据项名
数据类型
长度
约束控制
说明
学号
数值型
10
主键约束
姓名
字符型
50
性别
字符型
20
男,女
院部
字符型
50
读者所在的院部
班级
字符型
50
用户名
字符型
50
主键约束
联系方式
数值型
10
密码
字符型
50
书号
字符型
50
主键约束
书名
字符型
50
图书种类
字符型
50
历史,科学,文学
图书状态
字符型
50
借出,在馆
作者
字符型
50
出版社
字符型
50
出版日期
日期型
10
预约号
数值型
10
主键约束
预约完成系统自动生成的编号
预约时间
日期型
10
预约数目
数值型
10
借阅号
数值型
10
主键约束
借阅完成系统自动生成的编号
借阅日期
日期型
10
借阅天数
数值型
10
可以借阅的天数
借阅数目
数值型
10
借阅完成系统自动统计的数目
续借日期
日期型
10
还书号
数值型
10
主键约束
还书完成系统自动生成的编号
还书日期
日期型
10
3概念结构设计
E-R图:
图3.1总体E-R图
图3.2具体E-R图
4逻辑结构设计
找关系
学生(学号,性别,性别,班级,院部)
管理员(用户名,联系方式,密码)
图书(书号,书名,作者,出版社,出版日期,图书种类,图书状态)
借阅(借阅号,借阅时间,借阅数目,续借时间,书号,学号)
预约(预约号,预约时间,预约数目,书号,学号)
还书(还书号,还书时间,书号,学号)
关系的规范化符合3nf
5物理结构设计
5.1确定数据库的物理结构
5.2评价其结构(选用什么数据库,什么DBMS等为什么等)
5.3数据库的创建要求与代码
6数据库实施
6.1学生用户基本信息表
用于记录学生用户的基本信息,具体如下
Createtablestudent(
StuNointprimarykey,
StuNamevarchar(50),
StuSexvarchar(20),
Classvarchar(50),
Departmentvarchr(50));
图5.1学生用户基本信息表
6.2管理员基本信息表
用于记录管理员的用户ID,其具体显现如下
CreatetableManager(
MgNointprimarykey,
Phonevarchar(50)notnull,
Passwordvarchar(50)notnull);
图5.2管理员基本信息表
6.3图书基本信息表
该表用于记录图书的基本信息,其具体实现如下
Createtablebook(
BookNOintprimarykey,
BookNamevarchar(50),
Authorvarchar(50),
Publishermentvarchar(50),
PublishTimevarchar(50),
BookFilevarchar(50),
BookStatevarchar(50));
图5.3图书基本信息表
6.4借阅图书信息表
该表用来记录学生用户借阅图书的信息,包括记录学号、书号、借阅时间的等信息,表设计如下:
Createtablerecord(
RecordNointprimarykey,
StuNOintprimarykey,
BookNOintprimarykey,
ReturnTimedatetime,
RecordNumint,
ReReturnTimedatetime);
图5.4借阅图书信息表
6.5预约图书信息表
该表用来记录学生预约的图书信息,包括书号和学生学号等信息,涉及如下:
Createtableorderreport(
BookNointprimarykey,
StuNointprimarykey,
OrderReportNointprimarykey,
OrderReportTimedatetime,
OrderReportNumint);
图5.5预约图书信息表
6.6还书信息表
该表用来记录学生还书的信息,包括书号和学生学号等信息,涉及如下:
Createtablereturn(
BookNointprimarykey,
StuNointprimarykey,
ReturnNointprimarykey,
ReturnTimedatetime);
图5.6还书信息表
6.7约束创建
使用代码
图6.3.1新建关系
图6.3.2新建外键关系
图6.3.3约束创建
6.8索引创建
图6.4.1新建索引
使用代码
图6.4.2索引创建
6.9视图创建
使用代码
图6.5视图创建
6.10数据查询
使用代码
图6.6数据查询
6.11数据操纵
使用代码
图6.7数据操纵
7系统运行与维护
7.1系统的运行与维护
经过调试与测试的软件可以投入运行,这时需要实施系统的运行。
系统维护的任务是使系统适应用户环境的变化,满足新提出的需要,进而对原系统做些局部的更新。
清除系统运行中发生的故障错误等。
7.2系统评价
7.2.1.系统完成情况
本系统通过努力,实现了模块分类、图书信息的基本操作、数据自动生成以及系统维护等功能,本系统的设计目标基本实现。
7.2.2.系统设计存在的不足
(1)系统尚还缺少一些功能,比如的借书超期,因为对这一管理工作的流程掌握不好,所以没有涉及到这个管理功能模块,这是系统的一大不足。
(2)数据库设计方面,各个表之间的相互关系还很不完善,导致操作某些功能模块时不能很好地调出数据库中的信息。
7.3系统遇到的问题和解决的办法
(1)在进行界面设计过程中不能很好地利用空间显示当前系统日期,需要进一步完善以更好的为图书管理服务。
解决办法:
通过对控件(如Timer控件)选择,对其中的属性进行设置,界面显示当前系统日期。
(2)书籍查询所查询内容不能全部显示到界面中,界面设计需要进一步完善。
小结
本次课程设计的任务是设计一个图书管理系统。
刚拿到题目的时候,不知如何着手做。
于是回想我们自己平时借书、还书的流程,另外在图书馆找了一些资料,终于有了头绪。
在实验中遇到的各种问题,面对各种问题先进行分析,然后想出了解决问题的办法,最后再实践中得到解决。
我想对这种分析解决问题的能力的锻炼,对我们今后的学习是很有帮助的。
虽然这次的实验还存在比较多的缺陷,但总的来说,这次实验还比较成功,达到了课程设计的目的,使我收获很大。
从每次的课程设计当中都能学到很多经验,虽然每次做的内容都不一样,但解决问题的思路都是一样的,即从提出问题——分析问题——解决问题这样一个思路。
对我们今后的学习还是工作都是很有帮助的。
我觉得一个人只要认真的去做一件事,而且在遇到困难时不退缩,即使道路很曲折,你最终一定会取得成功。
通过这次实践,我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,只有多操作才能从中发现问题,才能及时向老师和同学请教,从而更好的掌握知识。
还有通过这次实践也让我懂得了:
学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。
因此,我会认真地对待我的每一次课程设计。