第11章一个数据库应用系统的设计与实现PPT推荐.ppt
《第11章一个数据库应用系统的设计与实现PPT推荐.ppt》由会员分享,可在线阅读,更多相关《第11章一个数据库应用系统的设计与实现PPT推荐.ppt(28页珍藏版)》请在冰豆网上搜索。
![第11章一个数据库应用系统的设计与实现PPT推荐.ppt](https://file1.bdocx.com/fileroot1/2022-10/22/d60bceca-5244-468a-a957-0772ed271c8e/d60bceca-5244-468a-a957-0772ed271c8e1.gif)
是系统中的其它活动都是围绕这个活动展开的或与此活动是密切相关的活动确定系统的核心活动:
确定系统的核心活动:
对现实系统分析的关键该教学管理系统中,核心活动就是授课,学生与课程之间是通过授课发生联系的,教师与课程之间是通过教师授课发生联系的。
系统所包含的实体:
课程:
元素为由一个主讲教师负责且教学内容相同的教学活动单位,用课程号来标识此实体。
学生:
元素为一个学生,由学号来标识。
教师:
元素为一个教师,由教师号来标识。
初步初步ER图图:
课程号、课程名、讲授学期、学时数学号、姓名、系、专业、班级教师号、教师名、系、教研室11.2数据库设计11.2.2设计关系模式设计基本关系模式主要就是从ER图出发,将其直接转换为关系模式。
转换的规则为:
1.将每个实体都转换为一个关系模式。
实体的属性就是关系的属性,实体的主码就是关系的主码。
2.将每个联系也转换为一个关系模式,该关系模式的属性由与该联系相连的各个实体的主码及该联系的属性组成,该联系的主码分三种情况:
.若联系是1:
1的,则每个实体的主码即是该联系的候选码。
n的,则此联系的主码是n端实体的主码。
.若联系是m:
n的,则此联系的主码是各个实体的主码的并。
此此EERR图的关系模式为:
图的关系模式为:
(1)课程(课程号,课程名,讲授学期,学时数),主码为课程号。
(2)学生(学号、姓名、系、专业、班),主码为学号。
(3)教师(教师号、教师名、系、教研室),主码为教师号。
(4)修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主码为(学号,课程号)。
(5)授课(课程号,教师号,授课类别,班数),主码为(课程号,教师号)。
11.2.2设计关系模式确定表中各属性的详细信息
(1)
(1)课程表课程表课程号:
字符串型,10字节,主码课程名:
字符串型,20字节,非空讲授学期:
字符串型,2字节,非空学时数:
整型,非空
(2)
(2)学生表学生表学号:
字符串型,10字节,主码姓名:
字符串型,20字节,非空系:
字符串型,20字节,非空专业:
字符串型,20字节,非空班:
字符串型,10字节,非空(3)(3)教师表教师表教师号:
字符串型,10字节,主码教师名:
字符串型,20字节,非空系:
字符串型,20字节教研室:
字符串型,10字节(4)(4)修课表修课表学号:
字符串型,10字节,主码,学生表的外码课程号:
字符串型,10字节,主码,课程表的外码修课类别:
字符串型,4字节,非空平时成绩:
浮点型,大于等于0,小于等于100卷面成绩:
浮点型,大于等于0,小于等于100总评成绩:
浮点型,大于等于0,小于等于100(5)(5)授课表授课表课程号:
字符串型,10字节,主码,课程表的外码教师号:
字符串型,10字节,主码,教师表的外码授课类别:
字符串型,10字节班数:
浮点型,大于0。
假设选修课有半个班的情况,因此取浮点型。
11.2.3确定数据库应用的功能最常用的功能就是对数据的增、删、改、查及生成报表1.数据录入(增加)2.数据删除3.数据修改4.数据查询5.生成报表本例三张报表本例三张报表:
(1)学生修课表(学号,姓名,课程名,修课类别)
(2)学生成绩表(学号,姓名,课程名,修课类别,平时成绩,卷面成绩,总评成绩)(3)教师授课服务表(教师号,教师名,课程名,授课类别,学时数,班数)创建视图的创建视图的SQLSQL语句可描述为:
语句可描述为:
CREATEVIEW学生修课表学生修课表(学号,姓名,课程名,修课类别)ASSELECT学生.学号,学生.姓名,课程.课程名,修课.修课类别FROM学生,课程,修课WHERE学生.学号=修课.学号AND课程.课程号=修课.课程号包括对张表的数据录入有条件删除,有权限限制,有删除确认有条件查询后修改,有权限限制,修改后保存根据用户提出的条件查询,所有用户都有查询权限用数据库开发工具生成报表对对“学生成绩表学生成绩表”和和“教师授课服务表教师授课服务表”的处理与此类似的处理与此类似11.3数据库开发环境在C/S环境下实现时应注意数据的分布将数据全部放在服务器上-中央数据库中央数据库将数据全部集中管理,数据只有一份,比如实时采集的数据一般都应该放在服务器端。
将一部分数据放在服务器上,另一部分数据放在客户机上-地方数据库地方数据库将数据分散管理,只将重要的、所有部门共享的数据放在中央数据库中,将各个部门自己需要的数据放在地方数据库中。
例:
本教学管理系统中,将所设计的五张表放在服务器,便于全校统一管理,各部门本教学管理系统中,将所设计的五张表放在服务器,便于全校统一管理,各部门共享,同时各部门有自己的地方数据库。
共享,同时各部门有自己的地方数据库。
如“修课表”,中央和地方各有一个,且两者结构一致,当地方课程数据库修改时,能及时修改中央数据库,在保持数据的一致性。
将数据分为中央数据库和地方数据库的好处:
减少对中央数据库的操作次数,先在地方数据库中录入数据有关数据(比如本系的修课情况表),当确认准确无误之后再送到中央数据库中。
数据一旦被送到中央数据库就不能被随便地修改和删除,这也增加了中央数据库数据的安全性和可靠性。
数据过于庞杂易于各部门开发自己专用的地方数据库分类11.3.1VisualBasic中的数据访问JetJet:
VisualBasic提供的数据库引擎JetJet数据库引擎接口的方法数据库引擎接口的方法:
Data控件(DataControl)和数据访问对象(DAO)VB中数据库编程的内容:
创建数据访问对象,这些数据访问对象对应于被访问的物理数据库的不同部分,如:
用这些对象的属性和方法来实现对数据库的操作。
VBVB可以识别三类数据库:
可以识别三类数据库:
1.VisualBasic数据库:
2.外部数据库:
3.ODBC数据库:
符合ODBC标准的客户/服务器数据库提供有限的不需编程就能访问现存数据库的功能DAO模型则是全面控制数据库的完整编程接口Database(数据库)、TableDef(表)、Field(字段)Index(索引)对象。
数据库文件使用与MicrosoftAccess相同的格式dBaseIII或IVFoxPro2.0和2.5Paradox版本3.x和4.xMicrosoftExcelLotus1-2-3MicrosoftSQLServer11.3.2VisualBasic数据库体系结构JetJet引擎的作用:
引擎的作用:
处理存储、检索、更新数据的结构,并提供了功能强大的、面向对象的DAO编程接口VBVB数据库应用程序的组成数据库应用程序的组成实现“透明”访问(读取、写入或修改数据库,处理所有内部事物)显示数据并允许用户查看或更新数据窗体VB中添加或删除记录,执行查询等Jet包含在一组DLL文件中,被链接到VB程序,把应用程序译成.mdb文件或其它数据库的物理操作。
包含数据表的一个或多个文件2.2.数据库应用程序的存放数据库应用程序的存放远程数据库客户机/服务器数据库11.3.2VisualBasic数据库体系结构客户/服务器与远程数据库数据库的存放可同时对多个客户机的应用程序提供服务,操作数据库并对每个应用程序返回所请求的记录11.4创建数据库VB中创建数据库途径:
中创建数据库途径:
1、可视化数据管理器2、DAO3、MicrosoftAccess4、外部数据库应用程序不编程即可创建Jet引擎使用VB的DAO部件可以通过编程的方法创建数据库用Access创建的数据库和直接在VB中创建的数据库一样,两者用的数据库引擎与格式一样VB可通过ISAM或ODBC驱动程序来访问FoxPro、dBASE或ODBC客户/服务器应用程序11.4.1可视化数据管理器数据管理器(DataManager)可以用于快速地建立数据库结构及数据库内容。
VB的数据管理器是一个独立的可单独运行的应用程序Visdata.exe。
随安装过程放置在VB目录中,可以单独运行,也可以在VB开发环境中启动它。
凡是VB有关数据库的操作,比如数据库结构的建立、记录的添加及修改以及使用ODBC连接到服务器端的数据库,如SQLServer,都可以利用此工具来完成。
启动数据管理器的方法:
打开VB外接程序可视化数据管理器VisData窗体工具栏提供了三组9个按钮在下图中介绍以VB提供的Biblio.mdb数据库为实例介绍。
文件打开数据库VB目录下的Biblio.mdb确定所进行的增、删、改、查等操作直接更新数据库中的数据在内存中操作,不直接影响数据库只能读,不能改进行事物处理图11.1数据管理器1、建立数据库建立数据结构建立数据结构文件新建MicrosoftAccess版本7.0输入存储的文件名如图11.1添加数据表添加数据表鼠标右键新表出现“结构表”表名称表名称:
课程单击“添加字段”输入字段内容名称名称:
课程名、授课学期、学时数等类型类型:
text或integer大大小小:
不定建立索引建立索引2.录入数据数据库窗口在窗体上使用DBGrid控件课程鼠标右键打开显示下图录入数据3.建立查询对已有数据的数据表进行有条件或无条件查询VisData窗口实用程序查询生成器(右键新查询)输入查询条件11.4.2数据访问对象DAODAO的引入:
的引入:
数据管理器:
只适合于做比较简单的应用,如果要实现复杂的应用系统,使用VB提供的数据访问对象(DAO),DAO是通过编程来直接控制JET数据库引擎,来实现复杂的数据库应用系统。
DAODAO的分层结构:
的分层结构:
数据访问对象是以分层形式组织而成的,大多数对象成员都是一个对象类别的集合,而这个集合又隶属于上一层的另一个对象类别,大多数数据访问对象被描述为“对象和集合”。
分层结构的顶部是MicrosoftJet数据库引擎本身DBEngine对象。
它是唯一不被其它对象所包含的数据访问对象对象分层结构通过“包含”一种其它对象的“集合”实现,集合对象用于包含其它对象,集合中的对象都是同一类型的。
DAO分层结构中的元素实际上是类,而不是对象,它们是对象的“蓝图”。
类与数据类型类似,它只描述所引用的对象的“类型”。
例如,例如,声明DimMyWsAsWorkspaceMyWs是一个代表Workspace类型的对象的变量DAO分层结构图DAO创建数据库的步骤:
创建数据库的步骤:
创建新数据库的第一步是创建Database对象本身,然后添加与设计相一致的TableDef和Field对象来定义其结构,方法:
11、使用、使用DimDim语句给数据库中的每一个对象创建对象变量语句给数据库中的每一个对象创建对象变量。
除了构造构成环境的DBEnigne和缺省的Workspace对象外,还需要:
一个Database对象每个表需要一个TableDef对象每个表中的每个字段需要一个Field对象每个表中的每个索引需要一个Index对象如如:
用如下代码创建一个数