数据库课程设计指导书.docx
《数据库课程设计指导书.docx》由会员分享,可在线阅读,更多相关《数据库课程设计指导书.docx(75页珍藏版)》请在冰豆网上搜索。
数据库课程设计指导书
数据库课程设计指导书
赵伟孙静波
长春工业大学计算机科学与工程学院
2006-6-1
数据库课程设计指导书
一、课程设计目的
数据库基础与应用课程设计是计算机专业集中实践性环节之一,是学习完《数据库系统概论》课程后进行的一次全面的综合练习。
其目的在于加深对数据库基础理论和基本知识的理解,掌握使用VB进行数据库开发的全过程,提高运用数据库解决实际问题的能力。
二、课程设计内容及要求
用VB或其它数据库管理系统制作一个小型管理系统。
所设计的小型管理系统应包含查询、插入、删除、修改、报表、统计、用户权限管理等基本功能,界面采用菜单的形式。
根据课程设计2周时间的安排选择适当大小的设计课题。
根据题目的基本需求,画出流程图,编写程序,并写出详细的设计说明书。
三、课程设计时间
课程设计时间第16周,在学习完《数据库系统概论》课程后进行。
四、课程设计说明书的编写规范
写出不少于3000字的课程设计说明书。
说明书中除了在封面应有题目、班级、姓名、学号以外,其正文一般有如下几个方面的内容:
1.需求分析2.概要设计3.详细设计4.调试分析5.用户使用说明6.测试结果7.附录或参考资料
五、提交内容:
1.在设计结束时要提交程序和设计说明书。
2.内容包括:
E-R图、精确化过程、程序代码。
3.设计说明书除包括以上三次阶段报告的基本内容,还要包括程序流程图和需求分析。
4.作业以书面的形式提交。
六、课程设计的考查
由指导教师根据学生完成任务的情况、课程设计说明书的质量和课程设计过程中的学习态度等综合打分。
成绩评定实行优秀、良好、中等、及格和不及格五个等级。
七、分组:
1.题目选择:
对你较熟悉的应用问题进行选择,任选其一。
2.题目编号相同的为一组,可以互相讨论研发。
八、指导教师
指导教师应认真组织,指导学生在规定的时间内完成课程设计的全过程。
指导教师:
赵伟孙静波
备注:
数据库管理系统的样式可以由学生自行定义,可以有自己的创意。
题目一:
人事管理系统
1、系统功能的基本要求:
Ø员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。
Ø员工各种信息的修改;
Ø对于转出、辞职、辞退、退休员工信息的删除;
Ø按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;
Ø对查询、统计的结果打印输出。
2、数据库要求:
在数据库中至少应该包含下列数据表:
Ø员工基本信息表;
Ø员工婚姻情况表,反映员工的配偶信息;
Ø员工学历信息表,反映员工的学历、专业、毕业时间、学校、外语情况等;
Ø企业工作岗位表;
Ø企业部门信息表。
3、本课题设计的基本要求:
(1)必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(2)程序设计的报告:
包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
(3)系统的源程序,包括数据库脚本程序。
题目二:
工资管理系统
1、系统功能的基本要求:
Ø员工每个工种基本工资的设定
Ø加班津贴管理,根据加班时间和类型给予不同的加班津贴;
Ø按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;
Ø员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;
Ø企业工资报表。
能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;
2、数据库要求:
在数据库中至少应该包含下列数据表:
Ø员工考勤情况表;
Ø员工工种情况表,反映员工的工种、等级,基本工资等信息;
Ø员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等;
Ø员工基本信息表
Ø员工月工资表。
3、本课题设计的基本要求:
(1)必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(2)程序设计的报告:
包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
(3)系统的源程序,包括数据库脚本程序。
题目三:
机票预定系统
1、系统功能的基本要求:
Ø每个航班信息的输入。
Ø每个航班的坐位信息的输入;
Ø当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;
Ø旅客在飞机起飞前一天凭取票通知交款取票;
Ø旅客能够退订机票;
Ø能够查询每个航班的预定情况、计算航班的满座率。
2、数据库要求:
在数据库中至少应该包含下列数据表:
Ø航班信息表;
Ø航班坐位情况表;
Ø旅客订票信息表;
Ø取票通知表;
Ø帐单。
本课题设计的基本要求:
(1)必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(2)程序设计的报告:
包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
(3)系统的源程序,包括数据库脚本程序。
题目四:
仓库管理系统
1、系统功能的基本要求:
Ø产品入库管理,可以填写入库单,确认产品入库;
Ø产品出库管理,可以填写出库单,确认出库;
Ø借出管理,凭借条借出,然后能够还库;
Ø初始库存设置,设置库存的初始值,库存的上下警戒限;
Ø可以进行盘库,反映每月、年的库存情况;
Ø可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
2、数据库要求:
在数据库中至少应该包含下列数据表:
Ø库存情况表;
Ø出库单表;
Ø入库单表;
Ø出库台帐;
Ø入库台帐;
Ø借条信息表,反映,借出人,借出时间,借出产品,借出数量,还库时间等。
3、本课题设计的基本要求:
(4)必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(5)程序设计的报告:
包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
(6)系统的源程序,包括数据库脚本程序。
(7)
题目五:
图书借阅管理
背景资料:
1)图书室有各种图书一万多册。
2)每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容简介。
3)借书证记录有借阅者的姓名、所在单位、职业等。
4)凭借书证借书,每次最多能借8本书。
借书期限最长为30天。
设计要求:
1)进行需求分析,编写数据字典。
2)设计E-R图。
3)实现新进图书的数据录入。
4)实现对所有购进图书的分类查询和分类统计。
5)能够按书名、作者等分类查询现有图书的数量。
6)记录借阅者的个人资料和所借图书的书名、书号数据等。
题目六:
员工薪资管理
背景资料:
5)某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。
6)该单位下设4个科室,即经理室、财务科、技术科和销售科。
7)工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。
8)每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。
9)每月个人的最高工资不超过3000元。
工资按月发放,实际发放的工资金额为工资减去扣除。
设计要求:
1)进行需求分析,编写数据字典。
2)设计E-R图。
3)实现按照科室录入个人的基本资料、工资和扣除金额的数据。
4)计算个人的实际发放工资。
5)按科室、职业分类统计人数和工资金额。
6)实现分类查询。
7)能够删除辞职人员的数据。
题目七:
库存物资管理
背景资料:
10)有一个存放商品的仓库,每天都有商品出库和入库。
11)每种商品都有名称、生产厂家、型号、规格等。
12)出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。
设计要求:
1)进行需求分析,编写数据字典。
2)设计E-R图。
3)设计出入库单据的录入。
4)实现按商品名称、出入库日期的查询。
5)实现分别按日、月和年对出入库商品数量的统计。
计算机科学与工程学院软件教研室2005-12-10
数据库系统设计实例
学生信息管理系统
系统设计
1系统功能分析
系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。
学生管理系统需要完成的功能主要有:
●有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课和成绩等。
●学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩等。
●学生信息的修改。
●班级管理信息的输入,包括输入班级设置,年级信息等。
●班级管理信息的查询。
●班级管理信息的修改。
●学校基本课程信息的输入。
●基本课程信息的修改。
●学生课程的设置和修改。
●学生成绩信息的输入。
●学生成绩信息的修改。
●学生成绩信息的查询。
●学生成绩信息的统计。
2系统功能模块设计
对上述各功能进行集中、分块、按照结构化程序设计的要求,得到如图1-1所示的系统功能模块图。
图1-1系统功能模块图
数据库设计
1数据库需求分析
●学生基本信息:
包括的数据项有:
学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭地址、备注等。
●班级信息:
包括的数据项有:
班号、所在年级、班主任姓名、所在教室等。
●课程基本信息:
包括的数据项有:
课程号、课程名称、课程类别、课程描述等。
●课程设置信息:
包括的数据项有:
年级信息、所学课程等。
●学生成绩信息:
包括的数据项有:
考试编号、所在班号、学生学号、学生
姓名、所学课程、考试分数等。
图1-2学生管理系统数据流程图
2数据库概念结构设计
本系统的实体有:
学生实体、班级实体、年级实体、课程实体。
各个实体具体的描述E-R图如图1-3到图1-7所示。
图1-3学生实体E—R图
图1-4班级实体E—R图
图1-5课程实体E—R图
图1-6年级实体E—R图
图1-7实体之间关系E—R图
3数据库逻辑结构设计
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
学生管理系统数据库中各个表格的设计结果如下面的几个表所示。
每个表表示在数据库中的一个数据表。
表1-1student-info学生基本信息表
表1-2class-info班级基本信息表
表1-3course-info课程基本信息表
表1-4gradecourse-info年级课程设置表格
表1-5result-info学生成绩基本信息表
表1-6user-info系统用户表
4数据库结构的实现
经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。
现在就可以在SQLServr2000数据库系统中实现该逻辑结构。
这是利用SQLServer2000数据库系统中SQL查询分析器实现的。
下面给出创建这些表格的SQL语句。
(1)创建系统用户表格user_info
CREATETABLE[dbo].[user_Info](
[user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,
[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(2)创建学生基本信息表格student_info
CREATETABLE[dbo].[student_Info](
[student_ID][int]NOTNULL,
[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[student_Sex][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[born_Date][datetime]NULL,
[class_NO][int]NULL,
[tele_Number][char](10)COLLATEChinese_PRC_CI_ASNULL,
[ru_Date][datetime]NULL,
[address][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[comment][varchar](200)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(3)创建班级信息表格class-info
CREATETABLE[dbo].[class_Info](
[class_No][int]NOTNULL,
[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,
[director][char](10)COLLATEChinese_PRC_CI_ASNULL,
[classroom_No][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(4)创建课程基本信息表格course-info
CREATETABLE[dbo].[course_Info](
[course_No][int]NOTNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Des][char](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(5)创建年级课程设置信息表gradecourse-info
CREATETABLE[dbo].[gradecourse_Info](
[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(6)创建学生成绩信息表result-info
CREATETABLE[dbo].[result_Info](
[exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[student_ID][int]NOTNULL,
[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[class_No][int]NULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[result][float]NULL
)ON[PRIMARY]
GO
学生管理系统主窗体的创建
上面的SQL语句在SQLServer2000中查询分析器执行后,将自动产生需要的所有表。
有关数据库结构的所有后台工作已经完成。
现在将通过学生管理系统中各个功能模块的实现,来编写数据库系统的客户端程序。
1.创建工程项目——Student-MIS
为了用VisualBasic创建应用程序,应当使用工程。
一个工程是用来建造应用程序的文件的集合,它包括:
●跟踪所有部件的工程文件(.vbp)。
●每个窗体的文件(.frm)。
●每个窗体的二进制数据文件(.frx),它含有窗体上控件的属性数据。
对含有二进制属性的任何.frm文件都是不可编辑的,这些文件都是自动产生的。
●每个类模块的一个文件(.cls),该文件是可选项。
●每个标准模块的一个文件(.bas),该文件是可选项。
●一个或多个包含ActiveX控件的文件(.ocx),该文件是可选项。
●单个资源文件(.res),该文件是可选项。
启动VisualBasic后,单击File|NewProject菜单,如图所示的工程模块中选择StandardEXE,VisualBasic将自动产生一个Form窗体,属性都是缺省设置。
这里我们删除这个窗体,单击File|NewProject菜单,将这个工程项目命名为Student-MIS。
如图1-8:
创建Student-MIS项目
2.创建学生管理系统的主窗体
VisualBasic创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。
在SDI的程序中,每个窗体之间是独立的。
而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,它的类型是MDIForm。
本系统采用多文档界面,这样可以使程序更加美观,整齐有序。
单击工具栏的“ADDMDIForm”按钮,生成一个如图1-9所示的窗体,属性设置见表1-7,主菜单的设置方法将在后面介绍。
图1-9程序主窗体
表1-7主窗体及控件属性设置
3.创建主窗体的菜单
在如图1-9所示的主窗体中,单击鼠标右键,选择弹出式菜单中的“MenuEditor”命令,创建如图1-10所示的菜单结构。
图1-10主窗体中菜单结构
4.创建公用模块
在VisualBasic中可以用共用模块来存放整个工程项目公用的函数、全局变量等。
整个工程项目中的任何地方都可以调用公用模块中的函数、变量,这样可以极大地提高代码的效率。
在项目资源管理器中为项目添加一个Module,保存为Module.bas。
下面就可以开始添加需要的代码。
由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。
添加函数ExecuteSQL,代码如下:
PublicFunctionExecuteSQL(ByValSQL_
AsString,MsgStringAsString)_
AsADODB.Recordset
'传递参数SQL查询语句,MsgString传递查询信息
'自身以一个数据集对象的形式返回
DimcnnAsADODB.Connection
'定义连接
DimrstAsADODB.Recordset
'定义字符串
DimsTokens()AsString
'异常处理
OnErrorGoToExecuteSQL_Error
'用Split函数产生一个包含各个子串的数组
sTokens=Split(SQL)
'创建连接
Setcnn=NewADODB.Connection
cnn.OpenConnectString
'判断字符串中是否有指定内容
IfInStr("INSERT,DELETE,UPDATE",_
UCase$(sTokens(0)))Then
'执行查询语句
cnn.ExecuteSQL
'返回查询信息
MsgString=sTokens(0)&_
"querysuccessful"
Else
'创建数据集对象
Setrst=NewADODB.Recordset
'返回查询结果
rst.OpenTrim$(SQL),cnn,_
adOpenKeyset,_
adLockOptimistic
'rst.MoveLast'getRecordCount
SetExecuteSQL=rst
MsgString="查询到"&rst.RecordCount&_
EndIf
ExecuteSQL_Exit:
'清空数据集对象
Setrst=Nothing
'中断连接
Setcnn=Nothing
ExitFunction
'错误类型判断
ExecuteSQL_Error:
MsgString="查询错误:
"&_
Err.Description
ResumeExecuteSQL_Exit
EndFunction
ExecuteSQL函数有两了参数:
SQL和MsgString。
其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。
函数执行时,首先判断SQL语句中包含的内容。
当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录名对象(Recordset),所有满足条件的记录包含在对象中。
当执行如删除、更新、添加等操作时,不返回记录集对象。
在ExecuteSQL函数中使用ConnectString函数,这个函数用来连接数据库,代码如下:
PublicFunctionConnectString()_
AsString
'返回一个数据库连接
ConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="
EndFunction
由于在后面的程序中,需要频繁检查各种文本框的内容是否为空,这里定义了Testtxt函数,代码如下:
PublicFunctionTesttxt(txtAsString)AsBoolean
IfTrim(txt)=""Then
Testtxt=False
Else
Testtxt=True
EndIf
EndFunction
由于学生管理系统启动后,需要对用户进行判断。
如果登录者是授权用户,将进入系统,否则将停止程序的执行。
这个判断需要在系统运行的最初进行,因此将代码放在公用模块中,代码如下:
PublicfMainFormAsfrmMain
PublicUserNameAsString
SubMain()
DimfLoginAsNewfrmLogin
'显示登陆窗体
fLogin.ShowvbModal
'判断是否授权用户