|
|
|
|
|
|
|
您现在的位置: 算法与程序设计网>> 首页>> 程序设计实现
欢迎光临算法与程序设计网!
 
6.2  数据库管理软件的开发

(作者:占太鹏  修改时间:2006年8月4日)

一、       教学目标

1、            知识与技能

1)认识“程序”与“软件”是两个不同的概念,了解软件开发一般过程。

2)结合数据管理软件的开发,认识软件开发的一般过程。

3)认识数据库的创建、数据库表设计和用VB链接数据库的原理。

4)认识数据控件和数据绑定控件的属性和方法。

5)认识软件生命周期及其特点。

2、          过程与方法

了解并初步经历软件开发所采用的工程化方法

3、            情感态度和价值观

1)关注软件开发与应用,产生开发小软件解决日常生活问题的强烈欲望,并产生进一步学习有关软件工程知识的愿望。

2)认识软件开发特点。软件开发是一个团队分工协作的结果。

二、       重点难点

1、教学重点

1)在利用VB开发数据库管理软件中渗透软件工程思想

2)用VB开发“学生成绩管理系统”。

2、教学难点

1)软件开发思想在数据库管理软件开发中的渗透。

2)软件设计,特别是数据库设计与数据表的创建。

3)软件实现,特别是链接数据库的方法以及对数据控件的属性和方法的编程。

三、       教学环境

1、教材处理

以广东教育出版社的信息技术(选修一)《算法与程序设计》第六章第二节内容为线索。照顾到同学们的数据库基础现状,本课程适量加进了数据库的基础理论和基本操作,并结合同学们的学习生活取材,开发同学们喜闻乐见的成绩管理系统作为本节学习重点,在软件开发中尽量渗透软件工程思想。本节内容采用了理论推演和任务驱动形式,让学生从“阅读中学”和“从做中学”。

采用讲解、探究、任务驱动和学生自主学习相结合的学习方法。

2、预备知识

在课前布置复习必修课程“第四章 信息资源管理”中与数据库相关内容并预习本节课文内容,使学生能提前了解本节课的教学内容和教学要求。

3、  硬件要求:计算机机房或网络教室。

4、所需软件:学生机要安装VB6.0或以上版本。

5、所需课时:3个课时。

四、       教学过程

导入:1、简要介绍本节课的教学目标:利用VB中的数据库控件进行数据库应用系统的开发与设计。

2、通过演示用VB制作的数据库管理程序,让学生认识到VB在数据库管理方面的强大威力。演示一6-2ys1.exe   演示二6-2ys2.exe

(一)  数据库知识简介

数据库是信息的仓库,它的应用十分广泛,可以说,当今社会中数据库无处不在,比如高考中考成绩查询、公民身份信息管理、电话号码查询系统、商场的收银系统、工厂的物料管理系统等都与数据库相关。计算机的一个重要应用分支就是数据库管理系统的开发应用。

1、什么是数据库

   数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。例如,把一个学校的学生、教师和课程等数据有序地组织起来,存储到计算机磁盘上,可以构成一个数据库。

   数据库的类型按数据组织的方式不同可以分为:网状数据库、层次数据库和关系数据库。其中应用最普遍的是关系型数据库。

2、数据库管理系统

   数据库管理系统(DBMS)是对数据库进行管理的系统软件,是用户与数据库之间的接口。它提供了用户对数据库进行操作的各种命令、工具及方法,包括数据库的建立和记录的输入、修改、检索、显示、删除和统计等。如AccessSybaseSQL Server等。

3、关系型数据库的结构

关系型数据库是以关系模型为基础的数据库。关系数据库由众多的数据表构成,一个表就是一个关系,数据就存在表中。下面表一是学生成绩表。

字段:数据表中每一列称为字段。字段规定了数据的特征。每个字段都有一个字段名(即表中的第一行对应的各列内容。

记录:对于关系型数据库,表中的每一行称为记录。记录是一组用于存储数据的相关字段的有序集合。

关键字:表中的各行内容不能完全相同。能够唯一确定一条记录的字段叫关键字。比如下表中的“学号”字段就是关键字。因为不同学生的学号肯定不相同,具有唯一性。 

如果用面向对象的理论来解释字段和记录的话,则表头(字段)是类的定义、记录就是一个个对象。即每一行就是一个具体的对象。

(二)  创建数据库

VB应用程序中使用数据库技术,首先要创建数据库。创建数据库通常使用两种方法。第一种通过关系数据库管理系统软件直接创建。第二种方法是在VB环境下、调用关系数据库管理系统软件间接地创建。下面介绍用Microsoft AccessMicrosoft Office的组件之一)数据库管理系统直接创建数据库。第二种方法参见课本的拓展材料。

1、单击“开始”→“程序” Microsoft Access程序项,调出如下窗口

  

 

 

 

 

 

 

 

 

 2、选择新建“空Access数据库”打开如下窗口,先给创建的数据库取名,再保存。本例的数据库为“学生成绩表”。(还可以选运用“向导”创建或打开已有库文件。)

  

 

 

 

 

 

 

 

 

 

 3、单击确定,回到Access数据库主窗口,选择“通过输入数据创建表”,打开创建数据表窗口,开始制作数据表。所有数据都输入完毕,关闭制表窗口时系统提醒你保存数据表,取名保存后,这时在Access数据库主窗口可以看到这张表。

还可以以同样的方法建立数据库的其它数据表。数据库中的表创建完成后,这个数据库就可以供接下来将要开发的数据库应用系统使用。

马上行动:利用Access创建学生成绩数据库,在数据库中建立“学生成绩表”并仿照上表一输入数据

(三)  从程序设计到软件开发

用计算机编程解决问题就象盖房屋一样。最原始的茅屋随随便便施工就可以。时代发展到今天,建筑是一项复杂的工程。一栋大楼不能随随便便说盖就盖,必须经过严密的可行性认证、图纸设计到施工、验收等复杂的工序。我们刚刚学程序设计,已学会了编写解决简单问题的程序,这个解决简单问题的程序就象刚刚说到的“最原始的茅屋”。用计算机解决的问题越来越复杂,参加的人员少则几人,几十人,多则上千人,时间跨度多的有一年以上。因此必须把这个解决问题的过程当作工程来对待,事实上计算机科学里早就有“软件工程”一说。

软件:是一组计算机程序、规程、相关文档和数据。

软件的生命周期:从提出开发一个软件产品,到产品不能再用为止的时间周期。

开发软件(特别是大型软件)是基于软件生命周期进行的。软件的生命周期通常包括计划、开发和运行三个时期,可进一步划分为软件计划、需求分析、软件设计、软件实现和软件运行与维护几个阶段,如下图一所示。

 

 

 

 

 

 

 

课外练习:结合“软件工程”这个课题,上网求证其产生的背景和发展现状。并了解件开发的过程。提示:搜索关键词可以是:“软件工程 软件危机”、“系统分析与软件工程”等。

(四)  VB开发数据库管理软件

下面,我们以软件开发的一般过程思想作指导,利用VB数据库技术,开发一个“学生成绩管理系统”小软件。

任务:开发一个“学生成绩管理系统”小软件,使用该软件可以添加、删除、修改、查询和浏览学生成绩,并具有退出功能。软件的界面如下图图二所示。同学们在设计界面与软件功能时可以有自己的创新。

 

 

 

 

 

 

 

 

 

 

文本框: 图二

  

观摩:同学们可以先下载这个小软件在自己的电脑上运行。并思考:“学生成绩管理系统”这个小软件应该提供哪些功能?请点击这里下载(见前面的演示二)。

1、需求分析

需求分析是软件开发最重要的起始阶段,需求分析质量的好坏直接影响到软件的质量、性能。需求分析阶段的任务是准确地确定“软件系统必须做什么”,确定软件系统具体功能与性能要求。

在这个阶段,软件开发人员要和用户密切配合,充分理解用户的业务流程、完整全面地收集、分析用户业务中的信息处理,从中分析并得出用户要求的功能和性能,并完整、准确地表达出来。这一阶段要给出软件需求说明书。需求分析主要描述:

 = 1 \* GB3 ①软件在功能方面的需求,软件系统提供哪些方面的服务。

 = 2 \* GB3 ②软件在性能方面的需求,软件的性能是指软件服务所应遵循的一些约束和限制,主要包括:处理约束、存储限制、可靠性要求、外设和通信限制等。

软件需求分析结束前要经过管理和技术审评,方能进入到软件设计。

我们可以从信息的加工流程来思考:这个系统首先应具备信息输入功能即数据录入,然后是数据处理包括数据添加、修改、删除等功能,成绩处理系统最重要的功能是能满足用户查询的需要、还可以打印输出等。阅读材料:需求规格说明书.doc

2、软件设计

软件设计是软件开发中工作量最大、最关键的阶段之一,它为以后的编码实现做了算法上和结构上的准备。软件设计的任务,就是把需求分析阶段产生的软件需求说明,转换为用适当手段表示的软件设计文档。这个阶段的根本任务是将分析时期得出的逻辑模型设计成具体计算机软件方案。

软件设计主要分两个阶段:概要设计和详细设计。

1)概要设计(总体设计)

 主要是确定软件系统的结构和划分功能模块、接口以及模块间的调用关系。比如“学生成绩管理系统”小软件的总体结构关系图可描述成图二所示。

  

 

 

 

 

 

 

软件开发人员还应根据系统的数据要求,确定数据库的数据结构,进行数据库设计。VB自身能存取的数据库是属于Access式的,其数据库与Access数据库完全相同。本系统用到的数据库文件是上节课实践活动中创建的“学生成绩库.mdb”。

2)详细设计

详细设计阶段的主要目的是明确软件结构中的每个模块设计实现的细节,从而使程序员在编码阶段能够把这些描述直接用某种程序语言或工具实现。这个阶段的任务是编写软件的详细说明书。详细设计的结果基本决定了最终程序代码的质量。例:详细设计说明书.doc

3、软件实现

软件实现也称软件编码。程序员将以上的设计“翻译”成计算机可以正确运行的程序。并且要经过按照软件分析中提出的需求和验收标准进行严格的测试和审查。编码的具体技术要根据所选择的具体软件开发平台、具体软件实现语言、工具和环境来考虑。在本例中我们选择VB作为开发工具。

“学生成绩管理系统”的实现流程:

1)创建图形用户介面

2)设置控件的属性

3)使用Data数据控件链接数据库

4)编写程序代码

5)运行和调试程序

l         Data数据控件介绍:

VB中提供了一些专门用于对数据库操作的控件。对数据库操作最常用的Data控件是VB中的标准控件。它是VB和数据库之间的桥梁。它的桥梁作用如下图所示:

  

 

 

 Data控件相连结的绑定控件如TextBox等可通过与Data控件所包含的Recordset(记录集)对象绑定来自动显示其当前记录的一个或多个字段的数据。

数据控件常用属性见表二。

属性

功能

示例

Connect

指定数据控件链接的数据库格式,默认为Access

Access

DatabaseName

指定要链接的数据库的完整路径信息

C:\vb98\Biblio.mdb

RecordSource

指定Data控件所链接的数据库中的某一张表

Authors

RecordType

决定记录集是一个表(Table)、一个动态集(Dynaset)或是一个快照(Snapshot)

1-Dynaset

文本框: 表二:数据控件常用属性

  

数据控件常用方法见表三。

方法

功能

示例

AddNew

添加一笔记录

Data1.RecordSet.AddNew

Delete

删除当前记录内容

Data1.RecordSet.Delete

Edit

将可更新记录的当前记录内容复制到缓冲区中以便编辑

Data1.RecordSet.Edit

Find方法群组

FindFirstFindLastFindNextFindPrevious四个成员

Data1.RecordSet.FindFirst “编号=0002”查找编号为0002的记录

NoMatch

查找不到符合的记录时作为判别的依据

Data1.RecordSet.FindFirst “姓名” Like ‘*,查找姓谢的第一个记录

If Data1.RecordSet.NoMatch Then MsgBox “找不到姓谢的学生

Move方法群组

MoveFirstMoveLastMoveNextMovePrevious四个成员

Data1.RecordSet.MovePrevious ‘移到前一记录

Refresh

更新数据控件的数据结构

Data1.Refresh

Update

文本框: 表三:数据控件常用方法

 

将数据缓冲区的内容保存到记录集合对象中

 

Data1.RecordSet.Update

 

 

例:练习用Data控件链接刚刚建立的学生成绩表.mdb,并使用文本框控件与Data1绑定以实现文本框内显示数据库中的初一成绩表中的“姓名”字段。

操作步骤: = 1 \* GB3 ①打开VB新建一标准EXE工程,并在窗体Form1上添加一个Data控件和一个Text控件。

 = 2 \* GB3 ②调整Data控件的DataBaseName属性值指向学生成绩表.mdb,将Data控件的RecordSource属性设置为学生成绩表.mdb数据库中的“初一成绩表”。这样就将Data1链接到学生成绩表.mdb了。

 = 3 \* GB3 ③选中Text1,将其属性DataSource指向Data1;将其属性DataField设为表中的“姓名”字段。经过这一步就可使表内记录中的“姓名”字段显示出来。

 

马上行动:模仿以上例题练习使用Data控件链接数据库的操作。

 

l         以下是系统实现的详细流程

1)  创建图形化软件界面如图二所示。

    2)设置控件的属性,窗体中各对象的属性设置见表四。

                 表四  窗体中各对象的属性设置

控件

属性

属性值

Form1

Caption

成绩表

Frame1-3

空白(删除原来的Frame1-3

Lable1

学号:

Lable2

姓名:

Lable3

班级:

Lable4

语文:

Lable5

数学:

Lable6

英语:

Lable7

总分:

Text1-7

Locked

true

Text1-7

DataSource

Data1

DataField

各分别为学号、姓名、班级、语文、数学、英语、总分

Data1

DataBaseName

指定数据库名为“学生成绩库.mdb

RecordSource

指定为Data1控件所链接的数据库中的“初一成绩”表

Command1

Caption

数据录入

Command2

数据删除

Command3

退出系统

Command4

修改数据

Command5

查询数据

3)使用Data数据控件链接数据库

见表四中的Data1DataBaseNameRecordSource属性设置。

4)编写程序代码

      以下是“数据录入”代码

Private Sub Command1_Click()

  Data1.Recordset.AddNew  ‘添加一条记录

End Sub

以下是“数据删除”代码

Private Sub Command2_Click()

If Data1.Recordset.RecordCount = 1 Then GoTo error1  ‘库中只剩一条记录时不能删除

  Data1.Recordset.Delete      ‘删除一条记录

  Data1.Recordset.MoveNext   ‘移到下一条记录

  If Data1.Recordset.EOF Then Data1.Recordset.MoveLast  ‘当前记录为最后一条记录

error1:

End Sub

以下是“退出系统”代码

Private Sub Command3_Click()

 End

End Sub

以下是“修改数据”代码

Private Sub Command4_Click()

  Text1.Locked = False     ‘解除对“学号”文本框内容的锁定。

<