数据库应用系统设计案例

上传人:n**** 文档编号:89274675 上传时间:2019-05-22 格式:PPT 页数:81 大小:415.50KB
返回 下载 相关 举报
数据库应用系统设计案例_第1页
第1页 / 共81页
数据库应用系统设计案例_第2页
第2页 / 共81页
数据库应用系统设计案例_第3页
第3页 / 共81页
数据库应用系统设计案例_第4页
第4页 / 共81页
数据库应用系统设计案例_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《数据库应用系统设计案例》由会员分享,可在线阅读,更多相关《数据库应用系统设计案例(81页珍藏版)》请在金锄头文库上搜索。

1、第11章数据库应用系统设计案例,11.1 图书馆管理系统的设计,本例以图书馆管理系统为例说明如何开发数据库应用程序。,11.1.1 需求分析,图书馆是这样的部门,馆中收藏大量图书供读者借阅,其中图书可分成不同的类别,如自然科学类,社会科学类等;借阅者可分为老师和学生。不同的借阅者最多可借的书的数量和期限不同,如教师最多可借10本,期限为3个月,学生最多可借2本,期限为1个月,无论老师和学生借阅超期还要进行罚款处理。,11.1.2 概念结构设计,11.1.3 逻辑结构设计,读者(借书证号,读者姓名,性别,读者类别,是否有超期) 图书(条形码号,图书编号,书名,作者,出版社,出版日期,书的类别,借

2、阅状态,借阅次数) 借阅(借书证号,条形码号,借出日期,归还日期) 罚款(借书证号,条形码号,处罚日期,超期天数,罚款金额) 另外,为了保证系统的安全性,采用了登录的措施,用户名和密码存放在密码表中。 密码表(用户名,密码),11.1.4 规范化分析,除罚款关系外,其它4个关系模式中主码是本模式的唯一决定因素,所以这4个关系模式都属于BCNF . 但是在罚款关系中,罚款金额=日罚款额超期天数,所以 超期天数罚款金额,而 超期天数(借书证号,条形码号,处罚日期),所以(借书证号,条形码号,处罚日期) 罚款金额,存在传递函数依赖,所以罚款关系属于2NF,存在冗余现象。 读者往往既关心超期天数,又关

3、心罚款金额,所以“罚款金额”是必要的冗余。,11.1.5 在SQL Server 2000 中创建数据库,图书表的结构,读者表的结构,借阅表的结构,罚款表的结构,密码表的结构,11.1.6 用VB6.0 开发应用程序,1图书馆管理系统的功能,2配置数据源 用前面介绍的方法,利用ODBC数据源管理器配置一个连接到“图书馆”数据库的数据源,名为“图书管理”,,1)设计MDI主窗体。,3设计各个窗体,其中菜单的结构如下表所示,2)设计登录窗体,Dim miCount As Integer用于记录输入密码次数 Dim str As String str = “select 密码 from 密码表 wh

4、ere 用户名=“ & Text1.Text & “ Adodc1.RecordSource = str Adodc1.Refresh If Adodc1.Recordset.EOF = True Then MsgBox “用户名错误,请重新输入“, vbExlamation, “警告“ Text1.Text = “ Text1.SetFocus Else If Adodc1.Recordset.Fields(“密码“) = Text2.Text Then MDIForm1.Show Unload Me Else MsgBox “密码错误,请重新输入“, vbExlamation, “警告“

5、Text2.Text = “ Text2.SetFocus End If End If miCount = miCount + 1 If miCount = 3 Then Unload Me,3)设计读者管理窗体,(1)设计界面,Private Sub Form_Load() CmdFirst.Enabled = False CmdPre.Enabled = False CmdNext.Enabled = True CmdLast.Enabled = True CmdAdd.Enabled = True CmdDel.Enabled = True CmdOk.Enabled = False C

6、mdCancel.Enabled = False End Sub,Private Sub CmdAdd_Click() Adodc1.Recordset.AddNew CmdAdd.Enabled = False CmdDel.Enabled = False CmdOk.Enabled = True CmdCancel.Enabled = True End Sub Private Sub CmdOk_Click() Adodc1.Recordset.Update CmdAdd.Enabled = True CmdDel.Enabled = True CmdOk.Enabled = False

7、CmdCancel.Enabled = False End Sub,Private Sub CmdDel_Click() x = MsgBox(“确实要删除当前记录吗?“, vbYesNo + vbQuestion) If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If Else Adodc1.Refresh End If End Sub,Private Sub CmdCanc

8、el_Click() Adodc1.Refresh CmdAdd.Enabled = True CmdDel.Enabled = True CmdOk.Enabled = False CmdCancel.Enabled = False End Sub,Private Sub CmdFirst_Click() Adodc1.Recordset.MoveFirst CmdFirst.Enabled = False CmdPre.Enabled = False CmdNext.Enabled = True CmdLast.Enabled = True End Sub Private Sub CmdP

9、re_Click() Adodc1.Recordset.MovePrevious CmdNext.Enabled = True CmdLast.Enabled = True If Adodc1.Recordset.BOF = True Then Adodc1.Recordset.MoveFirst CmdFirst.Enabled = False CmdPre.Enabled = False End If End Sub,Private Sub CmdNext_Click() Adodc1.Recordset.MoveNext CmdFirst.Enabled = True CmdPre.En

10、abled = True If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast CmdLast.Enabled = False CmdNext.Enabled = False End If End Sub Private Sub CmdLast_Click() Adodc1.Recordset.MoveLast CmdFirst.Enabled = True CmdPre.Enabled = True CmdNext.Enabled = False CmdLast.Enabled = False End Sub,4)设计读者

11、查询窗体,(1)设计界面,其中Adodc1连接到读者表,在“记录源”选项卡中,选择命令类型。1-adCmdText,在“命令文本”文本框中输入SQL语句select * from 读者表。 (2)编写代码 Private Sub Form_Load() 窗体装载代码 Combo1.AddItem “借书证号“ Combo1.AddItem “读者姓名“ Combo1.AddItem “是否有超期“ Combo1.Text = “借书证号“ Text1.Text = “ End Sub,Private Sub Command1_Click() “查询”按钮代码 Dim str As String

12、 str = “select * from 读者表 where 读者表.“ & Combo1.Text & “ like “ & Text1.Text & “%“ Adodc1.RecordSource = str Adodc1.Refresh End Sub “返回”按钮代码 Private Sub Command2_Click() Unload Me End Sub,5)设计图书管理窗体、图书查询窗体 图书管理与查询窗体与读者管理与查询窗体功能类似。不再赘述 6)设计借阅管理窗体 (1)设计界面,借书时需输入读者的借书证号及书的条形码号,然后单击“借书”按钮,实现借书功能;还书时单击“还书

13、”按钮,实现还书功能。 借书时首先看读者是否有超期书,如果有则不允许再借书,然后根据读者是学生还是教师,判断所借书数是否达到最多,如果已达到最多,给出提示:“借书数量达到最多,不能再借!”,两个条件都允许,则可以借书,借书时先在图书表中根据条形码号写入该书的借阅状态值为“借出”,同时将“借阅次数”加1,然后在借阅表中添加借阅记录。 单击“还书”铵钮,先还书,再判断是否超期。还书时,在借阅表中写上“归还日期”,同时在图书表中把该书的“借阅状态”值改为“在库”。如果超期,则显示罚款窗口,进行罚款处理。,(2)代码参考教材:,7)设计罚款管理窗体 (1)设计窗体,(2)代码参考教材,8)设计图书借阅

14、排行报表 首先,在数据环境设计器中添加一个连接“图书管理” .,然后添加三个命令对象“借阅管理”“罚款管理”“图书借阅排行”。,设置“借阅管理”命令对象的SQL语句如下: SELECT 读者表.借书证号, 读者表.读者姓名, 图书表.书名, 借阅表.借出日期, 借阅表.归还日期 FROM 读者表 INNER JOIN 借阅表 ON 读者表.借书证号 = 借阅表.借书证号 INNER JOIN 图书表 ON 借阅表.条形码号 = 图书表.条形码号,设置“罚款管理”命令对象的SQL语句如下: SELECT 读者表.借书证号, 读者表.读者姓名, 图书表.书名, 罚款表.超期天数, 罚款表.罚款金额

15、, 罚款表.处罚日期 FROM 读者表 INNER JOIN 罚款表 ON 读者表.借书证号 = 罚款表.借书证号 INNER JOIN 图书表 ON 罚款表.条形码号 = 图书表.条形码号。,设置“图书借阅排行” 语句如下: SELECT 图书编号,书名,SUM(借阅次数)AS 次数FROM 图书表 GROUP BY 图书编号,书名 ORDER BY 次数 DESC,“图书借阅排行”报表运行结果,11.2 招聘管理系统的设计,本例以招聘管理系统为例说明如何用ADO对象编写应用程序。,11.2.1 需求分析 招聘管理用于管理企业招聘新员工的全过程,主要功能包括应聘人员登记、应聘人员初选、应聘人

16、员面试和应聘人员录用。,11.2.2 概念结构设计 经分析,此系统涉及到的主体只有应聘人员和评委两个实体集之间存在初选、面试和录用的联系,据此可画出此系统的E-R图,1,面试地点,应聘人员,开始录用日期,m,1,p,r,1,评委,其中应聘人员与其属性关系如图所示,姓名,应聘人员,评委与其属性关系如图所示,评委,11.2.3 逻辑结构设计,登记表(应聘人编号,姓名,性别,电话,外语水平) 评委表(评委编号,评委姓名,部门) 初选表(应聘人编号,计算机能力,业务能力,综合评分,初选状态),根据实际情况,去掉了评委编号属性。 面试表(应聘人编号,初选评分,外表形象,领悟反应能力,综合评分,面试地点,面试人号,录用情况).面试时,往往要参考应聘人的初选评分,所以增加了一个“初选评分”属性。 录用表(应聘人编号,面试分,笔试分,综合考核分,开始录用日期,是否录用),为了保证系统的安全性,采用了登录的措施,用户名和密码存放在系统表中。 系统表(姓名,密码),11.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号