收藏 分销(赏)

一个数据库应用系统的设计与实现--.ppt

上传人:精**** 文档编号:8193123 上传时间:2025-02-07 格式:PPT 页数:28 大小:373KB 下载积分:10 金币
下载 相关 举报
一个数据库应用系统的设计与实现--.ppt_第1页
第1页 / 共28页
一个数据库应用系统的设计与实现--.ppt_第2页
第2页 / 共28页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,一个数据库应用系统的设计与实现,1,应用背景与需求说明,在单机上实现一个教学管理系统的例子,并且可以很容易地把它移植到,C/S,结构中,只涉及教学管理中的对学生、课程和教师的管理部分:,项目的具体要求是:,.,运行环境是,Windows 95/98,操作系统,数据库的前端开发环境是,VB 5.0,。,一门课程可由多名教师来讲授。,一个教师可讲授多门课程。,一个学生可以选修多门课程。,需产生的报表有,.,每学期开学时要生成学生修课情况表,内容包括学号、姓名、课程名、修课类别,其中修课类别分为必修、选修、重修。,.,每学期结束时要生成学生修课成绩表,内容包括学号、姓名、课程名、修课类别、平时成绩、卷面成绩、总评成绩。,生成教师授课服务表,内容包括教师号、教师名、课程名、授课类别、学时数、班数,授课类别分为主讲、辅导、带实验。,安全性要求,本门课程的主讲教师才具有对其所讲授课程的成绩的修改权,教学秘书和系主任才有修改教师授课服务表中的内容的权力。其它人只有查询有关信息的权力。,1,2,数据库设计,2.1,概念设计,核心活动,:,是系统中的其它活动都是围绕这个活动展开的或与此活动是密切相关的活动,确定系统的核心活动:,对现实系统分析的关键,该教学管理系统中,核心活动就是授课,学生与课程之间是通过授课发生联系的,教师与课程之间是通过教师授课发生联系的。,系统所包含的实体:,课程:,元素为由一个主讲教师负责且教学内容相同的教学活动,单位,用课程号来标识此实体。,学生:,元素为一个学生,由学号来标识。,教师:,元素为一个教师,由教师号来标识。,初步,E,R,图,:,课程号、课程名、讲授学期、学时数,学号、姓名、系、专业、班级,教师号、教师名、系、教研室,2,2,数据库设计,2.2,设计关系模式,设计基本关系模式主要就是从,E,R,图出发,将其直接转换为关系模式。转换的规则为:,1.,将每个实体都转换为一个关系模式。实体的属性就是关系的属性,实体的主码就是关系的主码。,2.,将每个联系也转换为一个关系模式,该关系模式的属性由与该联系相连的各个实体的主码及该联系的属性组成,该联系的主码分三种情况:,.,若联系是,1:1,的,则每个实体的主码即是该联系的候选码。,.,若联系是,1:n,的,则此联系的主码是,n,端实体的主码。,.,若联系是,m:n,的,则此联系的主码是各个实体的主码的并。,此,E,R,图的关系模式为:,(1),课程(课程号,课程名,讲授学期,学时数),主码为课程号。,(2),学生(学号、姓名、系、专业、班),主码为学号。,(3),教师(教师号、教师名、系、教研室),主码为教师号。,(4),修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主码为(学号,课程号)。,(5),授课(课程号,,教师号,授课类别,班数),主码为(,课程号,,教师号)。,3,2.2,设计关系模式,确定表中各属性的详细信息,(1),课程表,课程号:字符串型,,10,字节,主码,课程名:字符串型,,20,字节,非空,讲授学期:字符串型,,2,字节,非空,学时数:整型,非空,(2),学生表,学号:字符串型,,10,字节,主码,姓名:字符串型,,20,字节,非空,系:字符串型,,20,字节,非空,专业:字符串型,,20,字节,非空,班:字符串型,,10,字节,非空,(3),教师表,教师号:字符串型,,10,字节,主码,教师名:字符串型,,20,字节,非空,系:字符串型,,20,字节,教研室:字符串型,,10,字节,(4),修课表,学号:字符串型,,10,字节,主码,学生表的外码,课程号:字符串型,,10,字节,主码,课程表的外码,修课类别:字符串型,,4,字节,非空,平时成绩:浮点型,大于等于,0,,小于等于,100,卷面成绩:浮点型,大于等于,0,,小于等于,100,总评成绩:浮点型,大于等于,0,,小于等于,100,(5),授课表,课程号:字符串型,,10,字节,主码,课程表的外码,教师号:字符串型,,10,字节,主码,教师表的外码,授课类别:字符串型,,10,字节,班数:浮点型,大于,0,。假设选修课有半个班的情况,因此取浮点型。,4,2.3,确定数据库应用的功能,最常用的功能就是对数据的增、删、改、查及生成报表,1.,数据录入(增加),2.,数据删除,3.,数据修改,4.,数据查询,5.,生成报表,本例三张报表,:,(1),学生修课表(学号,姓名,课程名,修课类别),(2),学生成绩表(学号,姓名,课程名,修课类别,平时成绩,卷面成绩,总评成绩),(3),教师,授课服务表(,教师号,教师名,课程名,授课类别,学时数,班数),创建视图的,SQL,语句可描述为:,CREATE VIEW,学生修课表,(学号,姓名,课程名,修课类别),AS,SELECT,学生,.,学号,学生,.,姓名,课程,.,课程名,修课,.,修课类别,FROM,学生,课程,修课,WHERE,学生,.,学号,=,修课,.,学号,AND,课程,.,课程号,=,修课,.,课程号,包括对张表的数据录入,有条件删除,有权限限制,有删除确认,有条件查询后修改,有权限限制,修改后保存,根据用户提出的条件查询,所有用户都有查询权限,用数据库开发工具生成报表,对“学生成绩表”和“教师授课服务表”的处理与此类似,5,3,数据库开发环境,在,C/S,环境下实现时应注意,数据的分布,将数据全部放在服务器上,-,中央数据库,将数据全部集中管理,数据只有一份,比如实时采集的数据一般都应该放在服务器端。,将一部分数据放在服务器上,另一部分数据放在客户机上,-,地方数据库,将数据分散管理,只将重要的、所有部门共享的数据放在中央数据库中,将各个部门自己需要的数据放在地方数据库中。,例:,本教学管理系统中,将所设计的五张表放在服务器,便于全校统一管理,各部门共享,同时各部门有自己的地方数据库。,如“修课表”,中央和地方各有一个,且两者结构一致,当地方课程数据库修改时,能及时修改中央数据库,在保持数据的一致性。,将数据分为中央数据库和地方数据库的好处:减少对中央数据库的操作次数,先在地方数据库中录入数据有关数据(比如本系的修课情况表),当确认准确无误之后再送到中央数据库中。数据一旦被送到中央数据库就不能被随便地修改和删除,这也增加了中央数据库数据的安全性和可靠性。,数据过于庞杂,易于各部门开发自己专用的地方数据库,分类,6,3.1 Visual Basic,中的数据访问,Jet,:,Visual Basic,提供的数据库引擎,Jet,数据库引擎接口的方法,:,Data,控件(,Data Control,)和数据访问对象(,DAO,),VB,中数据库编程的内容:创建数据访问对象,这些数据访问对象对应于被访问的物理数据库的不同部分,,如:,用这些对象的属性和方法来实现对数据库的操作。,VB,可以识别三类数据库:,1.Visual Basic,数据库,:,2.,外部数据库,:,3.ODBC,数据库,:,符合,ODBC,标准的客户,/,服务器数据库,提供有限的不需编程就能访问现存数据库的功能,DAO,模型则是全面控制数据库的完整编程接口,Database,(数据库)、,TableDef,(表)、,Field,(字段),Index,(索引)对象。,数据库文件使用与,Microsoft Access,相同的格式,dBase III,或,IV,FoxPro 2.0,和,2.5,Paradox,版本,3.x,和,4.x,Microsoft Excel,Lotus 1-2-3,Microsoft SQL Server,7,3.2 Visual Basic,数据库体系结构,Jet,引擎的作用:,处理存储、检索、更新数据的结构,并提供了功能强大的、面向对象的,DAO,编程接口,VB,数据库应用程序的组成,实现“透明”访问(读取、写入或修改数据库,处理所有内部事物),显示数据并允许用户查看或更新数据窗体,VB,中添加或删除记录,执行查询等,Jet包含在一组DLL文件中,被链接到VB程序,把应用程序译成.,mdb,文件或其它数据库的物理操作。,包含数据表的一个或多个文件,8,2.,数据库应用程序的存放,远程数据库,客户机,/,服务器数据库,3.2 Visual Basic,数据库体系结构,客户,/,服务器与远程数据库数据库的存放,可同时对多个客户机的应用程序提供服务,操作数据库并对每个应用程序返回所请求的记录,9,4,创建数据库,VB,中创建数据库途径:,1,、可视化数据管理器,2,、,DAO,3,、,Microsoft Access,4,、外部数据库应用程序,不编程即可创建,Jet,引擎,使用,VB,的,DAO,部件可以通过编程的方法创建数据库,用,Access,创建的数据库和直接在,VB,中创建的数据库一样,两者用的数据库引擎与格式一样,VB,可通过,ISAM,或,ODBC,驱动程序来访问,FoxPro,、,dBASE,或,ODBC,客户,/,服务器应用程序,10,4.1,可视化数据管理器,数据管理器(,Data Manager,)可以用于快速地建立数据库结构及数据库内容。,VB,的数据管理器是一个独立的可单独运行的应用程序,Visdata.exe,。随安装过程放置在,VB,目录中,可以单独运行,也可以在,VB,开发环境中启动它。凡是,VB,有关数据库的操作,比如数据库结构的建立、记录的添加及修改以及使用,ODBC,连接到服务器端的数据库,如,SQL Server,,都可以利用此工具来完成。,启动数据管理器的方法:,打开,VB,外接程序,可视化数据管理器,VisData,窗体工具栏提供了三组9个按钮在下图中介绍,以,VB,提供的,Biblio.mdb,数据库为实例介绍。,文件,打开数据库,VB,目录下的,Biblio.mdb,确定,11,所进行的增、删、改、查等操作直接更新数据库中的数据,在内存中操作,不直接影响数据库,只能读,不能改,进行事物处理,图,1,数据管理器,12,1,、建立数据库,建立数据结构,文件,新建,Microsoft Access,版本,7.0 输入存储的文件名如图1,添加数据表,鼠标右键,新表出现“结构表”,表名称,:课程,单击“添加字段”,输入字段内容,名称,:课程名、授课学期、学时数等,类型,:text或integer,大小,:不定,建立索引,13,数据库窗口,在窗体上使用,DBGrid,控件,课程鼠标右键打开显示下图录入数据,14,3.,建立查询,对已有数据的数据表进行有条件或无条件查询,VisData,窗口,实用程序查询生成器(右键新查询)输入查询条件,15,4.2,数据访问对象,DAO,的引入:,数据管理器:只适合于做比较简单的应用,如果要实现复杂的应用系统,使用,VB,提供的数据访问对象(,DAO,),,DAO,是通过编程来直接控制,JET,数据库引擎,来实现复杂的数据库应用系统。,DAO,的分层结构:,数据访问对象是以分层形式组织而成的,大多数对象成员都是一个对象类别的集合,而这个集合又隶属于上一层的另一个对象类别,,大多数数据访问对象被描述为“对象和集合”。分层结构的顶部是,Microsoft Jet,数据库引擎本身,DBEngine,对象。它是唯一不被其它对象所包含的数据访问对象,对象分层结构通过“包含”一种其它对象的“集合”实现,集合对象用于包含其它对象,集合中的对象都是同一类型的。,DAO,分层结构中的元素实际上是类,而不是对象,它们是对象的“蓝图”。类与数据类型类似,它只描述所引用的对象的“类型,”。例如,,声明,Dim MyWs As Workspace,MyWs,是一个代表,Workspace,类型的对象的变量,16,DAO,分层结构图,17,DAO,创建数据库的步骤:,创建新数据库的第一步是创建,Database,对象本身,然后添加与设计相一致的,TableDef,和,Field,对象来定义其结构,方法:,1,、使用,Dim,语句给数据库中的每一个对象创建对象变量,。除了构造构成环境的,DBEnigne,和缺省的,Workspace,对象外,还需要:,一个,Database,对象,每个表需要一个,TableDef,对象,每个表中的每个字段需要一个,Field,对象,每个表中的每个索引需要一个,Index,对象,如:,用如下代码创建一个数据库对象变量:(,数据库名:,JXGL.mdb,),Dim MyDb As Database,MyWs As Workspace,Dim,StuTd As TableDef,TeaTd As TableDef,CosTd As TableDef,XKTd As TableDef,SKTd As TableDef,Dim StuFlds(5)As Field,TeaFlds(4)As Field,CosFlds(4)As Field,XKFlds(5)As Field,SKFlds(5)As Field,Dim,StuIdx As Index,TeaIdx As Index,CosIdx As Index,XKIdx(2)As Index,SKIdx(2)As Index,4.2,数据访问对象,18,4.2,数据访问对象,DAO,创建数据库的步骤,2,、使用,Workspace,对象的,CreateDatabase,方法创建新的数据库。,Set MyWs=DBEngine.Eorkspaces(0),Set MyDb=MyWs.CreateDatabase(“C:VBJXGL.mdb”,dbLangGeneral,dbVersion03),3,、使用,Database,对象的,CreateTableDef,方法为数据库中的所有表创建新的,TableDef,对象。,如本例中:,Set StuTd=MyDB.CreateTableDef(“,学生”,),Set TeaTd=MyDB.CreateTableDef(“,教师”,),Set CosTd=MyDB.CreateTableDef(“,课程”,),Set XKTd=MyDB.CreateTableDef(“,修课”,),Set SKTd=MyDB.CreateTableDef(“,授课”,),19,4,、,使用,TableDef,对象的,CreateField,方法,为表中每个字段创建,Field,对象,然后设置每个字段的属性来定义字段的长度、数据类型和其它所需的属性。,例如,下面的代码用来创建,JXGL.mdb,数据库中的课程表:,Set CosFlds(0)=CosTd.CreateField(“,课程号”,dbText),Set CosFlds(0).Size=10,Set CosFlds(1)=CosTd.CreateField(“,课程名”,dbText),Set CosFlds(1).Size=20,Set CosFlds(2)=CosTd.CreateField(“,授课学期”,dbInteger),Set CosFlds(3)=CosTd.CreateField(“,学时数”,dbInteger),5,、,用,Append,方法把每个字段添加到表中,并把每个表添加到数据库中。例如,:,CosTd.Fields.Append CosFlds(0),CosTd.Fields.Append CosFlds(1),CosTd.Fields.Append CosFlds(2),CosTd.Fields.Append CosFlds(3),MyDb.TableDefs.Append CosTd,4.2,数据访问对象,DAO,创建数据库的步骤,20,用数据库表添加索引的步骤,:,1.,用,TableDef,对象中的,CreateIndex,方法给每个表创建索引,并设置其属性,:,Set CosIdx=CosTd.CreateIndex(“,课程号”,),CosIdx.Primary=True,是主码,CosIdx.Unique=Ture,值不重,2.,用,Index,对象的,Createfield,方法给每个索引对象创建字段,:,Set NewFld=CosIdx.CreateField(“,课程号”,),3.,把字段追加到,Index,中,然后把,Index,追究到,TableDef,对象中,:,CosIdx.Fields.Append NewFld,CosTd.Indexes.Append AuIdx,注意,:,用,Index,对象中的,CreateField,方法创建的字段不添加到,TableDef,中,而是添加到,Index,对象中,并给,Name,属性赋值,该属性与被索引的,TableDef,字段中的,Name,属性相同。不用指定,Index,对象中字段的,Type(,类型,),和,Size(,大小,),属性。,4.3,添加索引,建好数据库之后,还要指定索引及各表间的关系:用,CreatIndex,方法可以给,TableDef,定义的表添加索引,用,Index,对象的,CreatField,方法创建新的,Field指定被索引的字段,21,4.4,添加关系和引用完整性,Jet,数据库引擎提供了,Relation,对象来强制引用的完整性,以防止出现不一致的记录。给数据库添加关系的步骤:,1.,用,Database,对象的,CreateRelation,方法创建,Relation,对象,然后设置其,table,和,ForeignTable,属性:,Dim Stu_XK As Relation,Set Stu_XK=MyDb.CreateRelation(“Student_XK”),Stu_XK.Table=“,学生”,Stu_XK.ForeignTable=“,修课”,2.,用,Relation,对象中的,CreateField,方法,创建一个字段,用来定义关系中的主码和外码字段。,Dim TempField As Field,Set TempField=Stu_XK.CreateField(“,学号”,),TempField.ForeignName=“,学号”,3.,用,Append,方法把,Field,对象添加到,Relation,中,然后把,Relation,添加到,Database,中。,Stu_XK.Fields.Append TempField,MyDb.Relations.Append Stu_XK,在添加和删除记录时必须保持引用的完整性以确保数据库中的关系有用,22,5,创建数据库应用程序,5.1,数据控件(,Data Control,),数据控件是连接数据库中的信息和用户用来显示信息的,依附控件,,是简单数据库应用程序的核心。依附控件是为处理创建数据库应用程序的数据控件而建立的控件。数据控件用于绑定数据库和数据库中的某个表,依附控件用于绑定表中的某个列。数据控件是,VB,工具箱中的一个可用控件,,设置数据控件的步骤:,打开,VB,选择Data,控件,在窗体中画出Data,控件,设定Data,控件的,DatabaseName和RecordSource,属性。,用于绑定某个数据库,用于绑定数据库中的某个表,文本框、标签、校验框、图片框、图像等,23,5,创建数据库应用程序,5.2,创建一个简单的应用程序,例:创建一个课程表应用程序:,1,、建立窗体:,打开,VB,添加Data,控件,设置控件的属性,添加依附控件设置依附控件属性。,Name:Course,Caption:课程,DatabaseName:JXGL.mdb,RecordSource:,课程,数据访问窗体设置的,DataField,和,Caption,VB,设置屏幕,24,2.,浏览数据库中数据:,单击运行按钮,,结果如下,:,5,创建数据库应用程序,5.2,创建一个简单的应用程序,第一个记录,最后一个记录,下一条记录,上一条记录,25,3.,数据控件的其它功能:添加记录、删除记录等,5,创建数据库应用程序,5.2,创建一个简单的应用程序,Private Sub,添加,_Click(),Data1.Recordset.AddNew,End Sub,Private Sub,删除,_Click(),Data1.Recordset.Delete,If Not Data1.Recordset.EOF Then,Data1.Recordset.MoveNext,Else,Data1.Recordset.MoveLast,End If,End Sub,26,使用数据窗体模板,(,Data Form WizardDFW,),创建数据窗,,DFW,是与,VB,一同发行的一个插件,用此插件用户只需选择一个数据库和数据表,,DFW,即自动为用户生成具有对此数据表进行增、删、改、浏览功能的窗体。用户可在此基础上进行修改,使之符合自己的需要。即:,DFW,是一种快速原型开发或简单应用程序的很好的工具。,使用,DFW,创建数据窗体的大致步骤为:,VB,窗口,外接程序数据库窗体向导Access 数据库名(JXGL,.mdb,)根据提示(下一步)完成此操作,,显示结果如下:,5,创建数据库应用程序,5.3,创建数据窗体,DFW,生成的课程数据窗体,27,小 结,在数据库知识的基础上,根据数据库应用开发的步骤,实际地讲述了一个具有实际背景的数据库应用的开发。,目前,VB,的使用范围越来越广泛,由于它简单易学,特别适合于普通应用的开发。,VB,开发工具具有开发周期短、应用范围广(从界面制作到数据库开发,包括个人机的和客户,/,服务器结构的以及远程数据库的应用,到,Internet,的开发,到多媒体应用的开发无一不行)等特性,因此得到广大应用开发人员的喜爱。,我们选择,VB,作为数据库开发的工具来实现我们的例子。,目前还有许多适合于普通开发人员的,RAD,(快速应用开发工具)工具,如:,Delphi,,,Power Builder,,,C+Builder,等,不要拘泥于某一种开发工具,重要的是掌握应用开发的基本思路并熟练掌握一种开发工具,做到触类旁通以收举一反三之效。,28,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服