第十章数据库应用系统设计与实现.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章数据库应用系统设计与实现

C++程序设计 “实践出真知”,本章通过一个具体的实例来说明数据库应用系统的设计和实现过程,以使读者对数据库及其应用开发有一个真切的理解。 10.1 应用背景与需求说明 首先来看看现在的目标:在单机上实现一个教学管理系统的例子,并且可以很容易地把它移植到C/S结构中。用Windows 98操作系统,VC 6.0作为数据库的前端开发环境。为了简单起见,这里只涉及教学管理系统中的对学生、课程和教师的管理部分,此系统要求能够记录学生的修课情况、教师的授课情况以及课程情况。具体要求为: ? 一门课程可由多名教师来讲授。 ? 一个教师可讲授多门课程。 ? 一个学生可以选修多门课程 需产生的报表有: ? 每学期开学时要生成学生修课情况表,内容包括学号、姓名、课程名、修课类别,其中修课类别分为必修、选修、重修。 ? 学期结束时要生成学生修课成绩表,内容包括学号、姓名、课程名、修课类别、平时成绩、卷面成绩、总评成绩。 ? 生成教师授课表,内容包括教师号、教师名、课程名、授课类别、学时数、班数,授课类别分为主讲、辅导、带实验。 10.2 数据库设计 数据库系统的设计与程序的设计有类似之处,都是首先对需求进行研究和分析。不同的是,数据库着重于数据对象的属性和数据对象之间的关系的分析。一般采用E–R模型方法来分析数据对象的属性和数据对象之间的关系。 10.2.1 概念设计 此系统所包含的实体有: ? 课程。元素为由一个主讲教师负责且教学内容相同的教学活动单位,用课程号来标识此实体。 ? 学生。元素为一个学生,由学号来标识。 教师。元素为一个教师,由教师号来标识。 其初步E-R图如图所示: 需要说明的是,由于实体的属性可能比较多,在画E-R图时不一定要把所有实体的属性都画在E-R图上,可以另外用文字说明,这样也使得所画的E-R图简明清晰,便于分析。 经过初步分析,得到课程管理系统中的各实体所包含的基本属性为: ? 课程 (课程号,课程名,讲授学期,学时数) ? 学生 (学号,姓名,系,专业,班) ? 教师 (教师号,教师名,系,教研室) 一个较为完整的E-R图如图所示: 10.2.2 设计关系模式 有了基本E-R图,就可以设计基本的关系模式了。设计基本关系模式主要就是从E-R图出发,将其直接转换为关系模式。转换规则为: 1.将每个实体都转换为一个关系模式。实体的属性就是关系的属性,实体的主键就是关系的主键。 2.对于联系分情况来处理,主要有三种情况: ? 若联系是一对一的,则联系不作为一个独立的关系,只需在将一个实体的主键放置在另一个实体所对应的关系中作为外键即可。 ? 若联系是一对多或多对一的,则联系不作为一个独立的关系,只需将一端实体的主键放置在多端实体对应的关系中作为外键即可。 ? 若联系是多对多的,则此联系作为一个独立的关系存在,且将各个实体的主键放置在此关系中作为外键。 这个例子的E-R图转换的关系模式为: ? 课程(课程号,课程名,讲授学期,学时数),主键为课程号。 ? 学生(学号,姓名,系,专业,班),主键为学号。 ? 教师(教师号,教师名,系,教研室),主键为教师号。 ? 修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主键为(学号,课程号),“学号”为引用学生表的外键,“课程号”为引用课程表的外键。 ? 授课(课程号,教师号,授课类别,班数),主键为(课程号,教师号),“教师号”为引用教师表的外键,“课程号”为引用课程表的外键。 最后确定表中各属性的详细信息,包括数据类型和长度等。 课程表 课程号:字符串型,10字节,主键 课程名:字符串型,20字节,非空 讲授学期:字符串型,2字节,非空 学时数:整型,非空 学生表 学号:字符串型,10字节,主键 姓名:字符串型,20字节,非空 系:字符串型,20字节,非空 专业:字符串型,20字节,非空 班:字符串型,10字节,非空 教师表 教师号:字符串型,10字节,主键 教师名:字符串型,20字节,非空 系:字符串型,20字节 教研室:字符串型,10字节 修课表 学号:字符串型,10字节,主键,引用学生表的学号的外键 课程号:字符串型,10字节,主键,引用课程表的课程号的外键 修课类别:字符串型,4字节,非空 平时成绩:浮点型,大于等于0,小于等于100 卷面成绩:浮点型,大于等于0,小于等于100 总评成绩:浮点型,大于等于0,小于等于100 授课表 课程号:字符串型,10字节,主键,引用课程表的课程号的外键 教师号:字符串型,10字节,主键,引用

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档