第十章数据库应用系统设计与实现.ppt
- 文档编号:2122261
- 上传时间:2022-10-27
- 格式:PPT
- 页数:87
- 大小:1.18MB
第十章数据库应用系统设计与实现.ppt
《第十章数据库应用系统设计与实现.ppt》由会员分享,可在线阅读,更多相关《第十章数据库应用系统设计与实现.ppt(87页珍藏版)》请在冰豆网上搜索。
返回返回“实践出真知实践出真知”,本章通过一个具体的实,本章通过一个具体的实例来说明数据库应用系统的设计和实现过程,以例来说明数据库应用系统的设计和实现过程,以使读者对数据库及其应用开发有一个真切的理解。
使读者对数据库及其应用开发有一个真切的理解。
第十十章数据库应用系统的设计与实现1返回返回10.1应用背景与需求说明首先来看看现在的目标:
在单机上实现一个教学管理系统的例子,并且可以很容易地把它移植到C/S结构中。
用Windows98操作系统,VC6.0作为数据库的前端开发环境。
为了简单起见,这里只涉及教学管理系统中的对学生、课程和教师的管理部分,此系统要求能够记录学生的修课情况、教师的授课情况以及课程情况。
具体要求为:
一门课程可由多名教师来讲授。
一个教师可讲授多门课程。
一个学生可以选修多门课程2返回返回需产生的报表有:
每学期开学时要生成学生修课情况表,内容包括学号、姓名、课程名、修课类别,其中修课类别分为必修、选修、重修。
学期结束时要生成学生修课成绩表,内容包括学号、姓名、课程名、修课类别、平时成绩、卷面成绩、总评成绩。
生成教师授课表,内容包括教师号、教师名、课程名、授课类别、学时数、班数,授课类别分为主讲、辅导、带实验。
3返回返回10.210.2数据库设计数据库设计数据库系统的设计与程序的设计有类似之处,都是首先对需求进行研究和分析。
不同的是,数据库着重于数据对象的属性和数据对象之间的关系的分析。
一般采用ER模型方法来分析数据对象的属性和数据对象之间的关系。
4返回返回10.2.1概念设计此系统所包含的实体有:
课程。
元素为由一个主讲教师负责且教学内容相同的教学活动单位,用课程号来标识此实体。
学生。
元素为一个学生,由学号来标识。
教师。
元素为一个教师,由教师号来标识。
其初步E-R图如图所示:
5返回返回需要说明的是,由于实体的属性可能比较多,在画E-R图时不一定要把所有实体的属性都画在E-R图上,可以另外用文字说明,这样也使得所画的E-R图简明清晰,便于分析。
经过初步分析,得到课程管理系统中的各实体所包含的基本属性为:
课程(课程号,课程名,讲授学期,学时数)学生(学号,姓名,系,专业,班)教师(教师号,教师名,系,教研室)6返回返回一个较为完整的E-R图如图所示:
7返回返回10.2.2设计关系模式有了基本E-R图,就可以设计基本的关系模式了。
设计基本关系模式主要就是从E-R图出发,将其直接转换为关系模式。
转换规则为:
1将每个实体都转换为一个关系模式。
实体的属性就是关系的属性,实体的主键就是关系的主键。
2对于联系分情况来处理,主要有三种情况:
若联系是一对一的,则联系不作为一个独立的关系,只需在将一个实体的主键放置在另一个实体所对应的关系中作为外键即可。
若联系是一对多或多对一的,则联系不作为一个独立的关系,只需将一端实体的主键放置在多端实体对应的关系中作为外键即可。
若联系是多对多的,则此联系作为一个独立的关系存在,且将各个实体的主键放置在此关系中作为外键。
8返回返回这个例子的E-R图转换的关系模式为:
课程(课程号,课程名,讲授学期,学时数),主键为课程号。
学生(学号,姓名,系,专业,班),主键为学号。
教师(教师号,教师名,系,教研室),主键为教师号。
修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主键为(学号,课程号),“学号”为引用学生表的外键,“课程号”为引用课程表的外键。
授课(课程号,教师号,授课类别,班数),主键为(课程号,教师号),“教师号”为引用教师表的外键,“课程号”为引用课程表的外键。
9返回返回最后确定表中各属性的详细信息,包括数据类型和长度等。
课程表课程号:
字符串型,10字节,主键课程名:
字符串型,20字节,非空讲授学期:
字符串型,2字节,非空学时数:
整型,非空学生表学号:
字符串型,10字节,主键姓名:
字符串型,20字节,非空系:
字符串型,20字节,非空专业:
字符串型,20字节,非空班:
字符串型,10字节,非空教师表教师号:
字符串型,10字节,主键教师名:
字符串型,20字节,非空系:
字符串型,20字节教研室:
字符串型,10字节10返回返回修课表学号:
字符串型,10字节,主键,引用学生表的学号的外键课程号:
字符串型,10字节,主键,引用课程表的课程号的外键修课类别:
字符串型,4字节,非空平时成绩:
浮点型,大于等于0,小于等于100卷面成绩:
浮点型,大于等于0,小于等于100总评成绩:
浮点型,大于等于0,小于等于100授课表课程号:
字符串型,10字节,主键,引用课程表的课程号的外键教师号:
字符串型,10字节,主键,引用教师表的教师号的外键授课类别:
字符串型,10字节班数:
浮点型,大于0(假设选修课有半个班的情况,因此取浮点型)有了数据库的基本表之后,需要看一下这些基本表能否满足产生报表的需求。
11返回返回此教学管理系统要产生三张报表:
学生修课情况表、学生修课成绩表和教师授课表。
先看一下学生修课情况表,学生修课情况表包含的内容为:
学生修课情况表(学号,姓名,课程名,修课类别)其中的“学号”、“姓名”可由学生表得到,“课程名”和“修课类别”可由修课表得到,因此可以满足学生修课情况表内容的要求。
这可以通过定义视图实现,也可以在生成报表时通过查询语句实现。
同样,“修课成绩表”的内容也可从学生表和修课表得到,教师授课表的内容可从课程表、教师表和授课表得到。
由此,可知道所设计的数据库表能够满足报表的要求。
12返回返回10.2.3确定数据库应用的功能数据删除数据的删除要根据一定的条件进行,比如当某个学生退学时,则在“学生表”中做删除时的条件是删除学号等于退学学生的学号。
要避免进行无条件删除,因为那样会把数据表中的所有记录都删掉了。
数据修改当某些数据发生变化或某些数据录入不正确时,应该允许用户对数据库中的数据进行修改。
修改数据的操作一般是先根据一定条件查询出要修改的记录,然后再对其中的某些记录进行修改,修改完后再写回到数据库中去。
同删除一样,也不应该允许所有的人都具有修改数据的权力。
13返回返回据查询在数据库应用系统中,数据查询是最常用的功能。
数据查询应根据用户提出的查询条件进行,在设计系统时应首先征求用户的查询需求,然后根据这些查询需求整理出系统应具有的查询功能。
一般允许所有使用数据库的人都具有数据查询权力。
生成报表生成报表是数据库应用中不可缺少的一个功能,也是比较麻烦的工作。
令人高兴的是,常见的许多数据库开发工具,如VB、Delphi,PowerBuilder等,都提供了报表生成工具,可以直接使用这些工具来生成符合用户要求的报表。
14返回返回本章的例子中需要生成三张报表:
学生修课表、学生修课成绩表、本章的例子中需要生成三张报表:
学生修课表、学生修课成绩表、教师授课表。
这三张报表所包含的内容分别为:
教师授课表。
这三张报表所包含的内容分别为:
学生修课表学生修课表(学号,姓名,课程名,修课类别学号,姓名,课程名,修课类别)学生成绩表学生成绩表(学号,姓名,课程名,修课类别,平时成绩,卷面成学号,姓名,课程名,修课类别,平时成绩,卷面成绩,总评成绩绩,总评成绩)教师授课表教师授课表(教师号,教师名,课程名,授课类别,学时数,班数教师号,教师名,课程名,授课类别,学时数,班数)可以看到,这三张表的内容不能与某个关系模式完全对应,为此,可以看到,这三张表的内容不能与某个关系模式完全对应,为此,可以采用定义视图的方法来解决。
创建这些报表的视图的可以采用定义视图的方法来解决。
创建这些报表的视图的SQLSQL语句语句为:
为:
CREATEVIEWCREATEVIEW学生修课表学生修课表(学号,姓名,课程名,修课类别学号,姓名,课程名,修课类别)AS)ASSELECTSELECT学生学生.学号,学生学号,学生.姓名,课程姓名,课程.课程名,课程名,修课修课.修课类别修课类别FROMFROM学生学生JOINJOIN修课修课ONON学生学生.学号学号=修课修课.学学号号JOINJOIN课程课程ONON课程课程.课程号课程号=修课修课.课程号课程号对对“学生成绩表学生成绩表”和和“教师授课表教师授课表”的处理与此类似。
的处理与此类似。
15返回返回创建的方法有很多种,例如,许多商用数据库都提供了图形化界面和命令行的方式用于创建和管理数据库;一些第三方的可视化数据管理器也可以用于数据库的创建和管理;用户也可以通过编写程序来实现数据库的创建和管理。
本章将以MicrosoftSQLServer为例讲述如何创建数据库和表,以用于教学管理系统之中。
10.310.3数据库的创建数据库的创建16返回返回10.3.1创建数据库数据库的创建需要一定的权限,默认情况下只有系统管理员和数据库拥有者才可以创建数据库,其他用户也可以被授予建立数据库的权限。
在创建数据库之前,用户需要确保拥有相应的权限。
数据库创建后,该用户即为数据库的拥有者。
在SQLServer中可以通过如下三种方式创建数据库:
在企业管理器中直接创建:
用户直接定制数据库名称、文件位置和文件属性等内容使用Transact-SQL语言创建:
编写创建数据库的代码,在查询分析器中执行。
使用向导创建:
根据系统提示逐项进行设置数据库的各个属性。
17返回返回下面将讲述如何使用后两种方法创建数据库。
1使用向导创建数据库
(1)打开企业管理器,选中欲创建数据库的服务器节点,随后选择【工具】【向导】选项,或直接点击工具栏中的按钮打开向导对话框,如图10.3所示。
(2)双击“创建数据库向导”或点击【确定】按钮,出现图10.4所示对话框。
18返回返回3)点击【下一步】按钮出现图所示对话框,在此对话框中可以指定将要创建的数据库的名字,以及数据库文件、数据库事务日志文件的存放位置,在这里使用的数据库名字为“JXGL”。
(4)单击【下一步】,出现如图所示对话框,在此对话框中可以修改数据库文件的名字以及该文件的初始大小,默认情况下数据库文件的名字为“数据库名_Data”,初始大小为1MB。
19返回返回(4)单击【下一步】按钮,出现如图所示对话框。
其中可以指定数据库文件的增长方式,这里选择数据库文件每次增长的比例为10%,并且文件的最大尺寸不受限制,直至磁盘空间耗尽为止。
(5)单击【下一步】按钮,出现图所示对话框。
其中可以指定日至文件的名称以及该文件的初始大小,默认情况下日志文件的名字为“数据库名_Log”,初始大小为1MB。
20返回返回(6)单击【下一步】按钮,出现如图10.9所示对话框。
其中可以指定日志文件的增长方式,这里选择日志文件每次增长的比例为10%,并且文件的最大尺寸不受限制,直至磁盘空间耗尽为止。
(7)点击【下一步】按钮,出现如图10.10所示对话框。
其中收集了前面步骤用户所指定的信息,确认无误后,点击【完成】按钮完成数据库的创建。
21返回返回2使用Transact-SQL语言创建数据库上面创建的数据库已可以通过如下的Transact-SQL语言来编写,代码如下:
createdatabaseJXGLon(name=JXGL_Data,filename=D:
ProgramFilesMicrosoftSQLServerMSSQLDataJXGL_Data.MDF,size=1,maxsize=unlimited,filegrowth=10%)logon(name=JXGL_Log,filename=D:
ProgramFilesMicrosoftSQLServerMSSQLDataJXGL_Log.LDF,size=1mb,maxsize=unlimited,filegrowth=10%)22返回返回在SQLServer的查询分析器中执行上述代码即可创建一个数据库,使用这种方式与采用向导创建的数据库属性是一致的。
数据库的创建、管理及维护是一件十分复杂的工作,值得用一本专门的著作来讲解。
在这里只是简单介绍一下相关的知识,感兴趣的读者可以阅读相关的书籍。
23返回返回10.3.2创建数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 数据库 应用 系统 设计 实现