资源描述
目 录
第一章 课程设计目的与要求 2
1.1课程设计目的 2
1.2课程设计环境 2
1.3课程设计内容及要求 2
第二章 课程设计内容 3
2.1数据库设计 3
2.1.1需求分析 3
2.1.2概念设计 4
2.1.3逻辑设计 5
2.1.4物理设计 6
2.1.5数据库实现 6
2.2 程序设计 2
2.2.1系统流程图 2
2.2.2数据库存储过程 3
第三章 课程设计总结 8
参考文献 8
第一章 课程设计目的与要求
1.1课程设计目的
1、掌握运用数据库原理进行系统分析和设计的方法;
2、掌握关系数据库的设计方法;
3、掌握利用SQL Server 2000技术;
4、掌握应用程序对数据库的访问方法。
1.2课程设计环境
硬件:计算机一台。
软件: Windows XP、SQL Server 2000、Microsoft Visual Basic 6.0
1.3课程设计内容及要求
一、内容
1.要求根据数据库原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。
2.需求分析具体实现
3.在sql server2000 上实现设计的数据库模型。
4.对应用程序进行概要设计。
5.用VB实现简单的调用。
二、要求
课程设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出课程设计报告。
第二章 课程设计内容
2.1数据库设计
图书管理系统主要设计目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
2.1.1需求分析
数据需求
需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。它决定了以后各步设计的速度和质量。
根据系统的需求,首先将要记录的信息分类,要记录的信息如下。
1.图书管理
在图书管理中,主要是对“图书库”中的书籍进行管理,如新增图书更新、修改图书信息、提供图书查询和删除图书
3.图书借阅管理
图书借阅管理就是对借书者的借书和还书进行管理,当借书者借书时,随即对“图书库”、“借书库”和“借书证库”进行相应的管理,并把相关信息提供给图书管理和借书证管理;还书,则除了上述的几个功能外,还要对还书库进行更新和记录。
4.管理员管理
管理员管理则是根据需要对各个管理员进行管理,并记录和反馈管理员信息。
事务需求
经过实际考察、咨询和分析,高等院校图书管理系统主要应该具有以下功能模块,如下所示。
(1) 任何人都可对图书信息进行查阅。
(2) 在用户信息管理部分,要求如下:
l 可以浏览用户自身信息。
l 可以修改自身登陆密码、和其他(除用户编号外)用户基本信息。
l 可以查询自身借阅信息及图书信息等
(3) 在管理员信息管理部分,要求如下:
l 可以浏览所有用户信息。
l 可以浏览管理员自身信息。
l 可以对所有用户信息进行维护,包括查询、修改、添加及删除等操作。
l 可以修改自身登陆密码、和其他(除管理员编号外)管理员基本信息。
l 可以添加管理员。
l 可以对所有用户的借阅信息进行维护,包括查询、修改、添加及删除等操作。
l 可以对图书信息进行维护,包括查询、修改、添加及删除等操作等。用户登录
用户信息管理
图书信息管理
借阅信息管理
管理者信息管理
注 销
系统业务逻辑关系
2.1.2概念设计
概念结构设计是指对用户的需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,是整个数据库设计的关键。概念设计生成E-R图。
图书
图书编号
书名
丛书类别
作者
出版社
出版日期
图书简介
用户
用户编号
姓名
出生日期
密码
电子邮件
联系地址
联系电话
性别
个人简介
借阅
超出还书天数
应还书时间
借书时间
图书馆管理 E-R图
2.1.3逻辑设计
(1) 用户信息:包括用户编号、姓名、密码、性别、出生日期、联系方式(联系电话、电子邮件、联系地址)、用户简介等。
(2) 书籍信息:包括图书编号、书名、丛书类别、作者、出版社、出版时间、图书简介等。
(3) 借阅信息:包括用户编号、图书编号、借书日期、应归还日期、超出还书天数等。
(4) 管理者信息:包括管理者编号、姓名、密码、性别、出生日期、联系方式(联系电话、电子邮件、联系地址)、管理员简介等。
根据这些需要,本系统需要“用户信息”表,“图书信息”表,“借阅信息”表和“管理者信息”表。
2.1.4物理设计
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结构的设计,存储路径的设计。
2.1.5数据库实现
数据库实施是指建立数据库,编制与调试应用程序, 组织数据入库,并进行试运行。
(1). 创建数据库
(1) 打开SQL工具“查询分析器”
(2) 在查询窗口中键入下列SQL语句
create database BookSystem
执行上述SQL语句即可新建一名为BookSystem的数据库
(2).创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过程其实就是定义字段的过程。
在此图书管理系统中需要创建四个表,即用户信息表、管理员信息表、图书信息表和用户借书记录表。
创建数据库后,为BookSystem数据库添加数据表,步骤如下。
(1) 新建查询窗口
(2) 在查询窗口中键入下列SQL语句
create table Users( //创建用户信息表
Uid char(20) primary key, //用户编号
Uname varchar(20) not null, //姓名
Upwd varchar(16), //登陆密码
Usex char(2) check (Usex in ('男','女')), //性别
Uborn datetime, //出生日期
Utel char(13), //联系电话
Uemail varchar(30), //电子邮件
Uaddr varchar(50), //联系地址
Uremark varchar(300) //用户简介
)
执行上述SQL语句即可创建户信息窗口相关表格,创建后的用户信息窗口设计如图所示:
create table Managers( //创建管理员信息表
Mid char(20) primary key, //管理员编号
Mname varchar(20) not null, //姓名
Mpwd varchar(16), //登陆密码
Msex char(2) check (Msex in ('男','女')),//性别
Mborn datetime, //出生日期
Mtel char(13), //联系电话
Memail varchar(30), //电子邮件
Maddr varchar(50), //联系地址
Mremark varchar(300) //管理员简介
)
执行上述SQL语句即可创建管理员信息表相关表格,创建后的管理员信息表窗口设计如图所示:
create table Books( //创建图书信息表
Bid char(10) primary key, //图书编号
Bname varchar(50) not null, //书名
Bclass varchar(30), //图书分类
Bwriter varchar(50), //作者
Bbookman varchar(26), //出版社
Bborn datetime, //出版日期
Binstr varchar(500) //图书简介
)
执行上述SQL语句即可创建图书信息表相关表格,创建后的图书信息表窗口设计如图所示:
create table UB( //创建用户借书记录
Uid char(20), //用户编号
Bid char(10), //图书编号
Borrow_time datetime, //借书日期
Return_time datetime, //应还书日期
Over_time smallint, //超出还书天数
primary key (Uid,Bid),//定义主键
foreign key (Uid) references Users(Uid),//外来键
foreign key (Bid) references Books(Bid)//外来键
)
执行上述SQL语句即可创建用户借书记录相关表格,创建后的用户借书记录设计如图所示:
(3).创建视图
创建视图可以屏蔽数据的复杂性,使用户不必了解数据库的结构,就可以方便地使用和管理数据,简化数据权限管理。可以使用户只关心她感兴趣的某些特定数据和他们所负责的特定任务,而那些不需要的或者无用的数据则不在视图中显示,在某些情况下由于表结构的变化对应用程序产生不良的影响,因此视图提供了简单而有效地安全机制。创建视图如下所示:
create view
as
select *
from Books
where Bid=@id
create view
as
select *
from Books
where Bname=@name
create view
as
select *
from Managers
where Mid=@id
create view
as
select *
from Managers
where Mname=@name
create view
as
select Uid,Bid,Borrow_time,Return_time
from UB
where Uid=@name
create view
as
select Uid,Bid,Borrow_time,Return_time
from UB
where Bid=@id
(4).索引的创建
创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是所以的最主要原因。第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义。第四,在使用ORDER BY和GROUP BY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。创建索引如下所示:
CREATE UNIQUE CLUSTERED
INDEX [PK__Books__7C8480AE] ON [dbo].[Books] ([Bid])
WITH
DROP_EXISTING
ON [PRIMARY]
CREATE UNIQUE CLUSTERED
INDEX [PK__Managers__79A81403] ON [dbo].[Managers] ([Mid])
WITH
DROP_EXISTING
ON [PRIMARY]
CREATE UNIQUE CLUSTERED
INDEX [PK_UB] ON [dbo].[UB] ([Uid], [Bid])
WITH
DROP_EXISTING
ON [PRIMARY]
CREATE UNIQUE CLUSTERED
INDEX [PK_Users] ON [dbo].[Users] ([Uid])
WITH
DROP_EXISTING
ON [PRIMARY]
2.2 程序设计
2.2.1系统流程图
在本系统中准备通过如下窗体来实现数据维护的功能。
(1) 主窗体:管理着各个子窗体。
(2)“用户”子窗体:管理用户信息、显示图书及借阅信息
(3)“管理员”子窗体:管理用户、图书及借阅信息。
系统流程图如图所示:
启动界面
登陆
允许登陆?
书籍信息
管理员信息
用户信息
借阅信息
图书信息
系统流程图
2.2.2数据库连接过程
Option Explicit
Public constr As String '数据库连接信息
Public rst As ADODB.Recordset '数据库内的记录
Public con As ADODB.Connection
Public Sub connect_db()
constr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BookSystem;Data Source=" '数据库引擎+路径
Set con = New ADODB.Connection '新建一个数据库连接
con.CursorLocation = adUseClient '用于客户端(ADOR)Recordset对象,游标库属性必须为adUseClient
con.ConnectionString = constr '连接信息
con.Open
End Sub
Public Sub sel_table(table_name As String, where_str As String)
Dim sql As String
Set rst = New ADODB.Recordset
sql = "select * from " & table_name & " " & where_str & ""
rst.Open sql, con, adOpenDynamic, adLockOptimistic
rst.Requery
End Sub
Public Sub upd_table(table_name As String, set_str As String, where_str As String)
Dim sql As String
sql = "update " & table_name & " set " & set_str & "where " & where_str & ""
con.BeginTrans
con.Execute sql
con.CommitTrans
End Sub
Public Sub del_table(table_name As String, where As String)
Dim sql As String
sql = "delete from " & table_name & " " & where & ""
con.Execute sql
End Sub
Public Sub ins_table(table_name As String, into As String, values As String)
Dim sql As String
sql = "insert into " & table_name & into & " " & values & ""
con.Execute sql
End Sub
功能显示
运行程序后首先显示主窗体,如图所示。
主界面
单击“图书查询”,就会弹出登录框。
图书查询界面
在查询编辑框中填入要查询的关键字,在查询类型选择相应的查询方式,若要查询所有图书(包括借出图书)则将所有勾选,若只查询未借出图书则将所有前面的勾去掉,然后点击搜索即可。点击退出即可回到主界面。
在主界面点击登陆则弹出登陆对话框
登陆界面
在登录对话框中输入用户编号和密码,选择“普通用户”,单击“登陆”按钮,就会对用户身份进行认证,如果认证通过,那么就会弹出用户窗体。
用户窗体(用户基本信息)
普通用户可以修改自己的用户信息,可以修改其登录密码等,还可以查看所借书目等。
借书记录可以显示个人借书的具体情况如借书的编号、书名、借书时间、应还书时间以及超过的天数等信息,点击注销即可返回主窗口。
在登录对话框中输入管理员编号和密码,选择“管理员”,单击“登陆”按钮,就会对管理员身份进行认证,如果认证通过,那么就会出现用户窗体。
管理员可以添加、修改和删除图书的权利。图书信息中的图书编号必须填写,这是区分一本书的惟一标示。其它还要填写书名、类型、作者、出版社等信息,填写完毕后点击保存按钮就可以把新添加的图书保存到数据库中了。
管理员窗体(图书信息)
可以添加用户,进入用户信息,可以对数据库中的所有读者进行管理,可以对读者的信息进行添加、修改、删除。首先要选中来确定要删除或修改的用户,也可以使用“查找”来查找用户,找到后就可以对此用户的信息进行修改了,如果不想要这个用户可以单击“删除”按钮来删除这位用户。
管理员有权利来添加和删除用户的借书记录,首先要根据查找来确定用户所借的书,然后确定信息,确认无误后就可以删除此信息说明这本书已经还了,点击添加时,若某本图书已经借出时,则添加时出现此本书已借出的对话框来说明
第三章 课程设计总结
在这次的课程设计中,让我学到了很多在课堂上和书本上学不到的知识,我在这次课程设计中最大的收获有以下几方面:
一、 领略到了数据库设计在计算机领域的重要性。数据库作为一个永久存储形式在应用中发挥着重要的作用。在数据库设计中,我明白了数据库设计不是范式越高越好的,我们要根据我们的应用来决定,一切应该以需求为首要选择。
二、 对编程环境、一些控件的使用和界面的梅花方面更加熟悉。因为《图书管理系统》中设计到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户面前。这样更有利于数据库和用户之间的交流。
三、 利用软件工程学开发系统。虽然这个《图书管理系统》是一个小的系统,但从这个小的项目中也让我明白了数据库作为任何一个系统的后台的重要性,在开发系统设计和实现中学到和总结很多经验和教训。
参考文献
[1] 刘健等. SQL Server数据库案例教程.清华大学出版社,2008
[2] 董建全等.数据库实用教程. 清华大学出版社,2007
[3] 王刚等.VB实用案例教程. 清华大学出版社,2005
展开阅读全文