数据库原理毕业课程设计报告打印.docx
《数据库原理毕业课程设计报告打印.docx》由会员分享,可在线阅读,更多相关《数据库原理毕业课程设计报告打印.docx(23页珍藏版)》请在冰豆网上搜索。
数据库原理毕业课程设计报告打印
(此文档为word格式,下载后您可任意编辑修改!
)
一、编写目的
随着知识经济时代的来临,将不可避免地从根本上动摇各类组织的管理思想、管理制度和管理方式,现代图书馆的管理也概莫能外。
从一定意义上说,建立一套图书馆管理信息系统有着重要的意义。
为开发院系图书资料室管理系统,能使图书馆工作人员更好地管理同学借书还书等流程。
二、设计任务
本数据库系统主要解决在学校图书馆中,实现图书基本情况的录入、修改、删除,能够办理借书卡,实现借书功能、还书功能,实现对借阅者图书证的录入、删除,以及根据图书编号对图书进行查询。
系统开发的意图是帮助图书管理人员提高管理效率,通过本管理系统软件,能帮助工作人员利用计算机,快速方便的对图书信息数据进行管理、输入、输出、查找的操作,使杂乱的图书信息数据能够具体化、直观化、合理化等。
另一方面方便学生使用,快速查找相关书籍信息,
目前图书管理系统在学校的图书管理中起着不可替代的作用,是一个典型的数据库系统。
本次的课程设计采用了结构化和面向对象程序设计的方法,使后台数据库具有可扩展性,前台界面简单实用。
本系统在WindowsXP环境中采用VisualBasic为开发平台,使用SQLSERVER创建数据库,用于对图书信息资料的增加、删除、修改,以及学生借书还书信息的增加、删除、修改。
此系统经过分析、设计、编码、调试等一系列步骤,初步实现了设计目标,并且经过适当完善后,最终作出了一个虽简洁但却实用的图书管理系统。
三、功能要求
本数据库系统主要解决在学校图书馆中,如何实现图书基本情况的录入、修改、删除,如何办理借书卡,如何实现借书功能、还书功能,以及方便的对图书进行查询。
系统开发的意图是帮助图书管理人员提高管理效率,通过本管理系统软件,能帮助工作人员利用计算机,快速方便的对图书信息数据进行管理、输入、输出、查找的操作,使杂乱的图书信息数据能够具体化、直观化、合理化等。
具体功能如下:
实现图书基本情况的录入、修改、删除,包括图书的编号、书名、价格、种类、购买日期等等。
办理借书卡,包括学生的班级、姓名、学号、性别、年龄、学院、专业等等。
实现借书功能、还书功能,包括学号、图书编号、姓名、书名、借书日期、应还日期、备注等等。
对图书进行查询,包括书名、种类、图书编号、馆藏副本、馆藏地、可借副本等等。
系统开发的意图是帮助图书管理人员提高管理效率,通过本管理系统软件,能帮助工作人员利用计算机,快速方便的对图书信息数据进行管理、输入、输出、查找的操作,使杂乱的图书信息数据能够具体化、直观化、合理化等。
本数据库系统软件所需的系统配置为:
1.软件配置
操作系统:
WindowsXP中文版或更高;
数据库选择:
SQLSERVER;
开发平台:
VisualBasic
2.硬件配置
CPU:
PentiumII266或更高;
内存:
64MB或以上;
硬盘:
2G以上;
显示器:
VGA或更高
四、设计思路及采取的方案
1、需求分析
(1)数据需求
①“图书基本信息表”用来存放图书的基本信息。
所需数据项有:
图书编号、书名、种类、价格、购买日期。
其中图书编号为主键。
图书编号为唯一可标示每一图书元组的数据项,其数据类型为char,长度为10,此图书编号采用国家统一标示方法。
书名数据类型为char,长度为50。
种类可方便学生对图书进行查找、定位,图书室中图书一般按种类分区存放。
数据类型为char,长度为50。
价格数据类型为float,长度为8。
购买日期数据类型为datetime,长度为8。
②“图书分类信息表”用来存放图书分类的信息,一便方便的对图书所在地进行查询。
所需数据项为:
图书编号、书名、种类、馆藏地、馆藏副本、可借副本。
图书编号为唯一可标示每一图书元组的数据项,其数据类型为char,长度为10,此图书编号采用国家统一标示方法。
馆藏地为图书在图书馆中的存放位置,有助于学生快速找到图书及图书管理员对图书进行规范存放。
其数据类型为char,长度为25。
馆藏副本为图书室中存放各种图书的数量,当学生进行图书检索时,便可知道图书馆中是否存在此类图书。
其数据类型为smallint,长度为2。
可借副本是在馆藏副本的基础上,让学生知道图书馆中现存的此种图书数量,以及借出的数量。
其数据类型为smallint,长度为2。
③“借书卡信息表”用来存放办理借书卡的同学的各类信息。
所需数据项为:
学号、姓名、性别、年龄、专业、班级、学院。
其主键为学号。
学号为唯一确定每个学生的信息。
其数据类型为char,长度为10。
按照学校学生实际学号进行录入。
姓名为学生称谓,数据类型为char,长度为10。
性别数据类型为char,长度为10,其域为男或女。
年龄为学生实际年龄,数据类型为char,长度为10。
专业为学生所学专业,数据类型为char,长度为40。
此处可为空,方便老师为未分专业学生录入信息。
班级为学生所在班级,数据类型为char,长度为10。
学院为学生所在学院,数据类型为char,长度为20。
“借阅信息表”用来存放借书同学有关借书的信息。
所需数据项为:
学号,姓名,书名,备注,借阅日期,归还日期,图书编号。
其主键为学号+图书编号。
学号为唯一确定每个学生的信息。
其数据类型为char,长度为10。
按照学校学生实际学号进行录入。
姓名为学生称谓,数据类型为char,长度为10。
书名为学生所借图书名,数据类型为char,长度为50。
备注为学生所接此书的有关信息,如借阅时图书以经陈旧或损坏等等。
其数据类型为char,长度为100。
借阅日期为学生借书时间,数据类型为datatime,长度为8。
归还日期为学生还书日期,数据类型为datatime,长度为8。
图书编号为学生所接图书的唯一标示,此处与学生学号共同组成主码。
数据类型为char,长度为10。
“代码表”用来存放图书的基本信息,里面有较全的国家统一标准的图书编号及种类。
当图书管理员购进新的图书时可通过查询此表来给图书进行编号及确定图书种类然后确定要存放的图书室。
并将此信息录入“图书基本信息表”和“图书分类信息表”中。
所需数据项为:
图书编号,书名,种类。
其中图书编号为主码。
图书编号为唯一可标示每一图书元组的数据项,其数据类型为char,长度为10,此图书编号采用国家统一标示方法。
书名数据类型为char,长度为50。
种类可方便学生对图书进行查找、定位,图书室中图书一般按种类分区存放。
数据类型为char,长度为50。
(2)事务需求
(1)在读者信息管理部分,要求如下。
①可以浏览读者信息。
②可以对读者信息进行维护,包括添加及删除等操作。
(2)在书籍信息管理部分,要求如下。
①可以浏览书籍信息。
②可以对书籍信息进行维护,包括添加及删除等操作。
(3)在借阅信息管理部分,要求如下。
①可以浏览借阅信息。
②可以对借阅信息进行维护操作。
(4)在借书卡信息管理部分,要求如下。
①可以浏览借书卡信息
②可以对借书卡信息进行维护,包括办理及删除。
2、概念设计
总E-R图设计如下:
在图书馆数据库系统中,从效率、安全、方便角度考虑,应设计用户自模式。
对不同级别的用户定义不同的视图:
定义一般的读者对数据库的应用只包括对书的借出信息,作者,还书日期,和简介等信息的查找,不能对以上的信息的删除和更改,更新信息只能由图书馆类的服务人员作相应的操作。
对学生:
图书基本情况(图书编号,书名,价格,种类,购买日期,退出)
图书查询(书名,种类,图书编号,馆藏副本,馆藏地,可借副本)
E-R图如下:
对管理员:
管理人员可以直接访问借阅记录关系,增加删除基本信息。
借书卡办理(学号,姓名,年龄,专业,班级,性别,学院,办理,删除,退出)
借书还书(学号,图书编号,姓名,书名,借书日期,应还日期,备注,借书,还书)
图书查询(书名,种类,图书编号,馆藏副本,馆藏地,可借副本)
图书基本情况(图书编号,书名,价格,种类,购买日期,增加记录,删除记录,退出)
E-R图如下:
3、逻辑设计阶段
(1)根据总E-R图中的实体与实体之间的联系以及转换的一般原则,得到如下的关系:
根据以上1:
1关系得可到关于读者关系:
读者(姓名,性别,年龄,学号,专业,班级,学院);
该关系的函数依赖图:
从函数依赖图可以看出,该关系中不存在部分函数依赖、传递函数依赖,且只有学号能够确定其它各项。
所以该关系是BCNF范式。
(2)借书卡(证件号,证件类别);该关系来源于证件实体,该关系的函数依赖图如下:
该关系仍然是BCNF范式。
(3)图书(图书编号,书名,种类,馆藏地,馆藏副本,可借副本,价格,购买日期);该关系来源于图书实体,它的函数依赖图如下:
该关系仍然是BCNF范式。
(4)借阅纪录(学号,图书编号,姓名,书名,借阅日期,应还日期,备注);
优化分析:
在图书馆中,由于图书数量上百万册,所以为了提高检索效率,应根据图书类别把图书进行水平分类,即按照图书的种类不同将图书分成不同类型的图书,如:
文史图书、自然科学图书、工具图书、古籍等。
这样相同类型的图书存放在一起,便于提高查找效率。
证件与读者是紧密联系的,二者同时产生,同时离开,并且日常查询中二者常常同时被要求,因此,应把这两个关系合二为一。
即:
借书卡(证件号,姓名,性别,年龄,学号,学院,专业,班级,);
该关系的函数依赖图如下:
从函数依赖图可以看出该关系存在非码决定因素,没有传递依赖和部分依赖,所以是3NF范式。
4、设计数据库
本系统在WindowsXP环境中采用VisualBasic为开发平台,使用SQLSERVER创建数据库。
SQLServer是一个关系数据库管理系统,SQLServer2000的特性包括:
(1)Internet集成。
SQLServer2000数据库引擎提供完整的XML支持。
它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。
(2)可伸缩性和可用性。
同一个数据库引擎可以在不同的平台上使用,从运行MicrosoftWindows®98的便携式电脑,到运行MicrosoftWindows2000数据中心版的大型多处理器服务器。
(3)企业级数据库功能。
SQLServer2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。
数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。
(4)易于安装、部署和使用。
SQLServer2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQLServer的过程。
(1)创建数据库
(1)打开SQL2000企业管理器,右键单击数据库创建新数据库,命名为图书管理系统设计。
(2)创建数据表
创建数据库后,为数据库添加数据表,步骤如下。
1.在企业管理器中右击数据库下的“表”文件夹。
在弹出的快捷菜单中执行“新建表命令,出现表设计器。
2.包括代码表,借书卡信息表,借阅信息表,图书分类信息表,图书基本信息表,用户登录信息表。
3.添加表的字段和其他详细资料。
各表数据结构如上述数据分析所示。
(3)设计前台程序
设计图书基本情况表
要求能清晰浏览现存图书信息。
工程中添加窗体,名称为f1.在窗体中添加label、command、datagrid、ADODC控件。
修改各个控件caption属性,给窗体和命令按钮添加背景图片,ADODC控件Visible属性设置为False。
前台VB与后台SQL的连接主要靠ADODC控件。
整个系统运行下来,两者之间的连接主要靠ADODC控件。
右键单击控件,选择属性,通用页点击生成,在弹出的对话框中,选择MicrosoftOLEDBProviderForSQLServer,单击下一步按钮,打开连接选项卡,选择所需数据库路径和名称,即已建立的数据库。
测试连接,若成功则可以连接。
在属性页对话框中选择记录源,命令类型选择2-AdCmdTable,点击表的存储过程下拉列表选择需要的表。
单击确定,关闭属性页。
DATAGRID控件的DATASource属性选择ADODC1,将二者连接,从而实现后台数据表反映到前台。
写入代码,设计成功后运行界面如下:
对图书基本情况浏览过后,应该具备对基本信息的增加、删除功能。
利用命令按钮调用子菜单,实现对图书的增加和删除,子菜单命名为f10,代码为:
f10.ShowvbModal。
如此设计使程序简单易懂不易出现导致系统崩溃的错误,f10中添加ADODC控件,visible属性设置为false,与数据库中图书基本信息表建立连接。
添加label、text控件,修改各个caption属性。
设置Text的DATASource属性均为ADODC1,图书编号对应的text的DATAFeild属性选择“图书编号”、书名对应的text的DATAFeild属性选择“书名”,依次类推,各个text的DATAFeild属性选择相应的后台数据表列名。
给命令按钮和form添加背景图片并更改大小。
写入代码后运行界面分别如下:
设计借书卡办理表
要求能清晰浏览已办理的借书卡信息。
工程中建立新表单。
添加命令按钮、ADODC控件、DATAGRID控件。
ADODC控件连接数据库方法以及相应属性设置方法如上所述,连接“借书卡信息表”,DATAGRID控件DATASource属性选择ADODC1。
写入代码,运行后界面如下:
借书卡信息浏览后,要具备对借书卡的维护功能,通过命令按钮调用子表单实现对借书卡的办理与删除。
需要用到label、text、command、ADODC控件。
子界面设计、控件属性设置、前台与后台连接以及主菜单的命令按钮设计方法均如“图书基本信息”菜单的设置方法相同。
代码调用后运行结果如下图所示:
设计图书查询表
要求能根据输入的图书编号查询图书的基本信息。
工程中添加新表单,表单中添加label、text、command、ADODC控件按钮。
更改各个label和text以及command的caption属性如下图,给表单和命令按钮添加背景图片,调整大小。
ADODC控件属性如上所述,连接数据库,并隐藏,连接“图书分类信息表”。
各个text对应的DATAField以及DATASource属性设置方法与上述“图书基本信息”子菜单设置方法相同。
需注意的是图书查询只能按照图书编号查询,为避免出现借阅者不知情况而想要根据其他类别进行查询的做法,不如根据书名查询,根据种类查询,要求其他text不能随意更改显示内容,方法是更改除图书编号对应的text之外的其他text的enable属性为false,菜单运行后字体显示为银白色并且不能插入光标惊醒更改,写入代码后的运行界面如下:
设计借阅信息表
要求能清晰浏览已经借阅的图书信息及学生信息。
工程中添加新表单,表单中添加label、ADODC、DATAGRID、command。
更改各个控件属性,给表单和命令按钮添加背景图片调整大小,ADODC控件连接数据库,连接“借阅信息表”DATAGRID控件设置数据源,方法与上述“图书基本信息”表单设置方法相同。
写入代码,运行成功后界面如下:
浏览完借阅信息后,要求能对借阅信息进行维护,实现借书还书功能。
利用命令按钮调用子菜单实现。
子表单设计方法如上,运行界面如下:
设计登陆界面
在图书馆数据库系统中,从效率、安全、方便角度考虑,对不同级别的用户定义不同的视图:
定义一般的读者对数据库的应用只包括对书的借出信息,著者,还书日期,和简介等信息的查找,不能对以上的信息的删除和更改,更新信息只能由图书馆类的服务人员作相应的操作。
用户凭借用户名和密码使用系统。
在工程中添加窗体,名称form1。
窗体中添加frame控件。
在控件中添加label、text、command、ADODC控件。
修改各个控件caption。
给窗体和命令按钮添加背景图片并调整大小,隐藏ADODC控件。
连接数据库中“用户登录信息表”,方法如上所述。
运行界面如下:
设计主窗体
前台使用VB设计界面。
新建工程,添加MDI模块,作为主窗体。
添加状态条,要求界面运行后显示系统当前日期时间以及系统名。
它属于ActiveX控件,先在部件中选中“MicrosoftWindowsCommonControl6.0”,将其加入工具箱中。
在窗体中加入一个状态条控件StatusBar1,该控件自动位于窗体下方。
状态条可分为若干个条目即窗格,在控件上单击鼠标右键选中属性菜单,打开属性页对话框。
在窗格标签中,插入3个窗格,分别设置它们的样式,分别为sbrDate、sbrTime、sbrTExt。
工具里菜单编辑器添加标题:
“图书基本情况”,点击插入,输入标题“借书卡办理”,依次类推一共插入5个标题,剩余3个分别是“图书查询”、“借书还书”、“退出”。
将各个系统功能显示在主窗体上方界面运行如下:
(4)连接数据库
为SQL数据库和VB之间建立一个数据连接。
整个系统运行下来,两者之间的连接主要靠ADODC控件。
右键单击控件,选择属性,通用页点击生成,在弹出的对话框中,选择MicrosoftOLEDBProviderForSQLServer,单击下一步按钮,打开连接选项卡,选择所需数据库路径和名称,即已建立的数据库。
测试连接,若成功则可以连接。
在属性页对话框中选择记录源,命令类型选择2-AdCmdTable,点击表的存储过程下拉列表选择需要的表。
单击确定,关闭属性页。
五、取得的结果
图书管理信息系统成功运行,功能划分清晰,实现图书基本情况的录入、修改、删除,办理借书卡,实现借书功能、还书功能,以及方便的对图书进行查询。
各个功能表单的运行结果如上所示,对于不同权限用户的主窗体显示如下:
对于管理员:
对于学生:
六、总结与体会
1、问题与解决
设计之初是不会将SQL与VB连接,实现后台SQL数据库,前台VB界面。
解决方法是查阅了大量图书,并在网上查找方法,最终是在老师的指导下完成连接。
第二是对于一些较为复杂的操作,在VB菜单中的代码不会写,解决方法是查阅大量图书并在网上查找,最终是在《VisualBasic程序设计实用教程》高等教育出版社一书中找到解决办法。
第三是多个功能在一个表单中难以成功实现,比如图书基本信息表中,增加和删除图书信息后不可以继续翻页查找。
解决办法是将这些互相冲突的功能分开,利用子菜单的形式实现增加和删除图书信息的功能。
同样将借阅信息表单和借书卡信息表单更改为调用子菜单实现功能。
不尽解决了功能冲突,使功能实现更为简单,同时运行界面美观、简洁、易于操作相应功能、无审美疲劳。
2、体会
设计系统过程中逐步体会到关于系统的一些基本需求,如下:
(1)可用性
可用于各院图图书馆工作人员,以及各院学生
(2)安全性
自身提供了对数据的安全保护措施,数据进行集中管理同时避免了数据的不一致和冗余,只有管理中心数据库服务器的成员持有对数据访问的权限,本系统的用户、密码能保证安全。
对任务、成员的管理,数据库同时提供了备份和恢复的功能,在数据库服务器出现问题的时候,能进行数据的快速恢复。
(3)可维护性
A、在用户输入一些不合理的数据的时候,能够进行一些合理的提示信息,不能因为输入错误而导致系统的错误,或者程序停止运行;
B、程序运行时,对服务器和网络通信故障能够识别并提示,当故障排除后,程序恢复正常运行;
C、数据库要求有灾难备份机制,以防止数据的全部丢失。
(4)可转移转换性
系统在开发完毕以后,只实现了任务管理的功能和框架,在后续的开发中,可以在本框的基础上,采用VB中面向对象的特点来增加功能模块。
可能增加的功能模块包括:
查询操作中模糊查询功能、打印功能、数据备份功能、自动电子文稿筛选、电子文稿自动摘要、网络版功能。
但是本系统也存在缺陷:
(1)本系统仅能实现简单的基本功能,对于庞大的图书管理系统还应该具备财政管理,人员管理等等很多方面的设计,本系统均不具备
(2)系统不会有海量存储的要求,功能不支持大量存储信息。
(3)技术约束。
小组成员均是软件开发的初学者,相对于设计完整的数据库系统存在技术困难。
七、主要参考文献
《数据库系统概论》高等教育出版社
《VisualBasic程序设计》人民邮电出版社
《VisualBasic程序设计实用教程》高等教育出版社
互联网借阅
八、附录
本代码表均是部分重要代码,并未全部显示
登陆界面代码如下:
DimnAsInteger
PrivateSubCommand1_Click()
DimtxtsqlAsString
txtsql="select*from用户登录信息表where用户名='"&Trim(Text1.Text)&"'"&"and口令='"&Trim(Text2.Text)&"'"
Adodc1mandType=adCmdText
Adodc1.RecordSource=txtsql
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount=0Then
n=n+1
Ifn<3Then
MsgBox"用户名或口令不正确,请重新登录",vbOKOnly+vbExclamation,"信息提示"
Text1.Text=""
Text2.Text=""
Text1.SetFocus
Else
MsgBox"已登录失败三次,退出系统",vbOKOnly+vbExclamation,"信息提示"
UnloadMe
EndIf
Else
userlevel=Trim(Adodc1.Recordset("级别"))
UnloadMe
MDIForm1.Show
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
n=0
EndSub
用户权限设置的代码如下:
PrivateSubMDIForm_Load()
Ifuserlevel<>"图书管理员"Then
menu2.Enabled=False
menu4.Enabled=False
EndIf
EndSub
主窗口标题栏调用表单的代码如下:
PrivateSubmenu1_click()
f1.ShowvbModal
EndSub
增加图书信息代码如下:
PrivateSubCommand1_Click()
OnErrorGoToadderr
Text1.SetFocus
Adodc1.Recordset.AddNew
ExitSub
adderr:
MsgBoxErr.Description
EndSub
删除图书信息代码如下:
PrivateSubCommand1_Click()
OnErrorGoTodeleteerr
WithAdodc1.Recordset
IfNot.EOFAndNot.BOFThen
IfMsgBox("删除当前记录吗?
",vbYesNo+vbQuestion)=vbYesThen
.D