数据库应用系统设计案例课件.ppt
《数据库应用系统设计案例课件.ppt》由会员分享,可在线阅读,更多相关《数据库应用系统设计案例课件.ppt(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 Stringstr=select 密码 from 密码表 where 用户名=&Text1.
4、Text&Adodc1.RecordSource=strAdodc1.RefreshIf Adodc1.Recordset.EOF=True ThenMsgBox 用户名错误,请重新输入,vbExlamation,警告Text1.Text=Text1.SetFocusElse If Adodc1.Recordset.Fields(密码)=Text2.Text Then MDIForm1.Show Unload Me Else MsgBox 密码错误,请重新输入,vbExlamation,警告 Text2.Text=Text2.SetFocus End IfEnd IfmiCount=miCou
5、nt+1If miCount=3 Then Unload Me,3)设计读者管理窗体,(1)设计界面,Private Sub Form_Load()CmdFirst.Enabled=FalseCmdPre.Enabled=FalseCmdNext.Enabled=TrueCmdLast.Enabled=TrueCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdCancel.Enabled=FalseEnd Sub,Private Sub CmdAdd_Click()Adodc1.Recordset.AddNewCmdAdd.
6、Enabled=FalseCmdDel.Enabled=FalseCmdOk.Enabled=TrueCmdCancel.Enabled=TrueEnd SubPrivate Sub CmdOk_Click()Adodc1.Recordset.UpdateCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdCancel.Enabled=FalseEnd Sub,Private Sub CmdDel_Click()x=MsgBox(确实要删除当前记录吗?,vbYesNo+vbQuestion)If x=vbYes Then Ad
7、odc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF=True Then Adodc1.Recordset.MoveLast End IfElse Adodc1.RefreshEnd IfEnd Sub,Private Sub CmdCancel_Click()Adodc1.RefreshCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdCancel.Enabled=FalseEnd Sub,Private Sub CmdFirst_C
8、lick()Adodc1.Recordset.MoveFirstCmdFirst.Enabled=FalseCmdPre.Enabled=FalseCmdNext.Enabled=TrueCmdLast.Enabled=TrueEnd SubPrivate Sub CmdPre_Click()Adodc1.Recordset.MovePreviousCmdNext.Enabled=TrueCmdLast.Enabled=TrueIf Adodc1.Recordset.BOF=True Then Adodc1.Recordset.MoveFirst CmdFirst.Enabled=False
9、CmdPre.Enabled=False End IfEnd Sub,Private Sub CmdNext_Click()Adodc1.Recordset.MoveNextCmdFirst.Enabled=TrueCmdPre.Enabled=TrueIf Adodc1.Recordset.EOF=True Then Adodc1.Recordset.MoveLast CmdLast.Enabled=False CmdNext.Enabled=False End IfEnd SubPrivate Sub CmdLast_Click()Adodc1.Recordset.MoveLastCmdF
10、irst.Enabled=TrueCmdPre.Enabled=TrueCmdNext.Enabled=FalseCmdLast.Enabled=FalseEnd Sub,4)设计读者查询窗体,(1)设计界面,其中Adodc1连接到读者表,在“记录源”选项卡中,选择命令类型。1-adCmdText,在“命令文本”文本框中输入SQL语句select*from 读者表。(2)编写代码Private Sub Form_Load()窗体装载代码Combo1.AddItem 借书证号Combo1.AddItem 读者姓名Combo1.AddItem 是否有超期Combo1.Text=借书证号Text1.
11、Text=End Sub,Private Sub Command1_Click()“查询”按钮代码Dim str As Stringstr=select*from 读者表 where 读者表.&Combo1.Text&like&Text1.Text&%“Adodc1.RecordSource=strAdodc1.RefreshEnd Sub“返回”按钮代码Private Sub Command2_Click()Unload MeEnd Sub,5)设计图书管理窗体、图书查询窗体图书管理与查询窗体与读者管理与查询窗体功能类似。不再赘述6)设计借阅管理窗体(1)设计界面,借书时需输入读者的借书证号
12、及书的条形码号,然后单击“借书”按钮,实现借书功能;还书时单击“还书”按钮,实现还书功能。借书时首先看读者是否有超期书,如果有则不允许再借书,然后根据读者是学生还是教师,判断所借书数是否达到最多,如果已达到最多,给出提示:“借书数量达到最多,不能再借!”,两个条件都允许,则可以借书,借书时先在图书表中根据条形码号写入该书的借阅状态值为“借出”,同时将“借阅次数”加1,然后在借阅表中添加借阅记录。单击“还书”铵钮,先还书,再判断是否超期。还书时,在借阅表中写上“归还日期”,同时在图书表中把该书的“借阅状态”值改为“在库”。如果超期,则显示罚款窗口,进行罚款处理。,(2)代码参考教材:,7)设计罚
13、款管理窗体(1)设计窗体,(2)代码参考教材,8)设计图书借阅排行报表首先,在数据环境设计器中添加一个连接“图书管理”.,然后添加三个命令对象“借阅管理”“罚款管理”“图书借阅排行”。,设置“借阅管理”命令对象的SQL语句如下:SELECT 读者表.借书证号,读者表.读者姓名,图书表.书名,借阅表.借出日期,借阅表.归还日期 FROM 读者表 INNER JOIN 借阅表 ON 读者表.借书证号=借阅表.借书证号 INNER JOIN 图书表 ON 借阅表.条形码号=图书表.条形码号,设置“罚款管理”命令对象的SQL语句如下:SELECT 读者表.借书证号,读者表.读者姓名,图书表.书名,罚款
14、表.超期天数,罚款表.罚款金额,罚款表.处罚日期 FROM 读者表 INNER JOIN 罚款表 ON 读者表.借书证号=罚款表.借书证号 INNER JOIN 图书表 ON 罚款表.条形码号=图书表.条形码号。,设置“图书借阅排行”语句如下:SELECT 图书编号,书名,SUM(借阅次数)AS 次数FROM 图书表GROUP BY 图书编号,书名ORDER BY 次数 DESC,“图书借阅排行”报表运行结果,11.2 招聘管理系统的设计,本例以招聘管理系统为例说明如何用ADO对象编写应用程序。,11.2.1 需求分析招聘管理用于管理企业招聘新员工的全过程,主要功能包括应聘人员登记、应聘人员初
15、选、应聘人员面试和应聘人员录用。,11.2.2 概念结构设计经分析,此系统涉及到的主体只有应聘人员和评委两个实体集之间存在初选、面试和录用的联系,据此可画出此系统的E-R图,1,面试地点,应聘人员,开始录用日期,m,1,p,r,1,评委,其中应聘人员与其属性关系如图所示,姓名,应聘人员,评委与其属性关系如图所示,评委,11.2.3 逻辑结构设计,登记表(应聘人编号,姓名,性别,电话,外语水平)评委表(评委编号,评委姓名,部门)初选表(应聘人编号,计算机能力,业务能力,综合评分,初选状态),根据实际情况,去掉了评委编号属性。面试表(应聘人编号,初选评分,外表形象,领悟反应能力,综合评分,面试地点
16、,面试人号,录用情况).面试时,往往要参考应聘人的初选评分,所以增加了一个“初选评分”属性。录用表(应聘人编号,面试分,笔试分,综合考核分,开始录用日期,是否录用),为了保证系统的安全性,采用了登录的措施,用户名和密码存放在系统表中。系统表(姓名,密码),11.2.4 规范化分析其中的“登记表”、“评委表”和“系统表”三个关系模式中的主码是本模式的唯一决定因素,所以这三个关系模式都属于BCNF;但在“初选表”中,综合评分=(计算机能力+业务能力)/2,“初选状态”也由“综合评分”来定,与“图书馆管理系统”案例中的分析类似。“初选表”属于2NF,其中的“综合评分”和“初选状态”两个属性值是冗余数
17、据,但评委往往既关心“计算机能力”和“业务能力”,又关心“综合评分”和“初选状态”,所以“综合评分”和“初选状态”是必要的冗余。在“面试表”和“录用表”中也有类似的情况。,11.2.5 在SQL Server 2000 中创建数据库,各表格的结构如下:,字段名数据类型 长度姓名char 10密码char 6,字段名 数据类型 长度评委编号char 4评委姓名varchar 20部门 varcha 20,1招聘管理系统的功能模块,招聘管理系统,2配置数据源。利用ODBC数据源管理器配置一个连接到“招聘管理”数据库的数据源,名为zhpgl。,3设计各个窗体。1)设计主窗体。从主窗体中可以打开各个功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用 系统 设计 案例 课件
链接地址:https://www.31ppt.com/p-3488765.html