数据库课程设计指导书2016年6月.doc_第1页
数据库课程设计指导书2016年6月.doc_第2页
数据库课程设计指导书2016年6月.doc_第3页
数据库课程设计指导书2016年6月.doc_第4页
数据库课程设计指导书2016年6月.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库课程设计指导书计算机与信息技术学院计算机科学与技术专业2016年6月第一部分 数据库课程设计概述数据库技术是近年来计算机科学技术中发展最快的领域之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。数据库课程设计的目的和选题原则如下:一、课程设计的目的和意义1加深对讲授内容的理解数据库理论课中有关数据库技术的基本理论、基本概念、设计与实现的方法和阶段性知识,光靠课堂讲授既枯燥无味又难以记住,但它们都很重要,要想熟练掌握,必须经过大量实践环节加深对它们的理解。2通过课程设计,掌握数据库应用系统设计与开发的方法及步骤数据库是一门应用性很强的学科,开发一个数据库系统需要集理论、系统和应用三方面为一体,以理论为基础,以系统(DBMS)作支柱,以应用为目的,将三者紧密结合起来。同时结合实际需要开发一个真实的数据库系统,对于较大型的系统可多人一起完成,但无论如何都应完成数据库的需求分析、数据的分析与建模、数据库的建立、数据库的开发与运行等全部过程。在此过程中将所学的知识贯穿起来,达到能够纵观全局,分析、设计具有一定规模的题目要求,基本掌握数据库系统设计与开发的基本思路和方法,并且做到对知识的全面掌握和运用。 3培养自学以及主动解决问题的能力通过本次设计,使同学能够主动查阅与数据库相关资料,掌握一些课堂上老师未曾教授的知识,从而达到培养学生自学以及主动解决问题的能力的目的,为后面的毕业设计打下坚实的基础。二、选题的原则课程设计题目选用学生相对比较熟悉的业务模型,通过本次实践性教学环节,巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库系统的设计与实现。1. 选题要求(1)能覆盖多个知识点,使用现有工具能够解决的问题。(2)难易适中,具有典型意义。2. 参考选题(1)教工管理系统数据库设计(2)超市管理系统数据库设计(3)社团管理系统数据库设计(4)毕业设计管理系统数据库设计(5)实验室管理系统数据库设计(6)网络购物管理系统数据库设计(7)票务管理系统数据库设计(8)图书管理系统数据库设计(9)其他:同学自己提出,由教师确认的题目。三、课程设计实施步骤同学们可按下列步骤完成所选题目的设计并写出设计报告。第一步:问题分析在对所选题目进行调研的基础上,明确该选题要做什么。依据调查结果,进一步分析和表达用户的需求。1绘制数据流程图:(1)基本符号 (2)数据流程图绘制方法:自顶向下,分层绘制。 (3)数据流程图绘制规则 每张数据流程图须从左往右绘制,即从产生数据的外部实体开始到使用数据的外部实体结束。 对含义明显的数据流,其名称可以省略。 尽量避免数据流的交叉。 对于需在两个设备上进行的处理,应避免直接相连。可以在它们之间加一个数据存储。 如果一个外部实体提供给某一处理的数据流过多,可将它们合并成一个综合的数据流。 下层图中的数据流应与上层图中的数据流守恒。 对于大而复杂的系统,其图中的各元素应加以编号。通常在编号之首冠以字母,用以表示不同的元素,可以用P表示处理,用D表示数据流,用F表示数据存储,用S表示外部实体。 2构建数据字典 (1)数据项 (2)数据结构(3)数据流(4)数据存储(5)处理过程第二步:数据库设计与实现。包括:数据库的概念结构(ER)图:(1)画出系统各部分(子系统)E-R模型图(2)消除冲突和冗余,合并各部分E-R模型图,形成总体E-R模型图(3)若系统较简单可直接画出系统总体E-R模型图;逻辑与物理结构设计:将E-R图转换为关系模型,及设计数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);将所设计的数据库在SQLServer2000上实现,并进行备份;设计系统查询功能及要求,写出主要的查询SQL语句。第三步:系统功能设计与实现,同时对设计结果进行评价与总结。对设计结果的合理性、规范程度和实际运行的结果以报告的形式进行提交。 通过存储过程和触发器完成相关功能。四、课程设计报告要求课程设计报告有四个方面的要求:1. 问题描述。包括此问题的理论和实际两个方面。2. 解决方案。包括:(1)数据流图及数据字典;(2)E-R模型要设计规范、合理,关系模式的设计要满足关系规范化理论,数据库的设计要考虑完整性的要求;(3)给出E-R模型和关系模式的描述或说明;(4)数据表结构;(5)相应的触发器、存储过程。3. 报告撰写格式要规范,具体参见样例。第二部分 学生管理系统数据库设计示例2.1 需求分析2.1.1 需求描述通过调研分析,我们认为学生管理系统的具体要求为:1能全面管理学校教学相关的各类主体,如院系信息、教师信息、班级信息、学生信息、课程信息、专业信息等;2通过使用计算机能方便的维护(包括插入、删除、修改)各信息表;3能方便的实现基于多个表的连接查询;因而,我们所开发的管理系统正是围绕以上几个方面进行的,在开发过程中充分考虑到本系统的应用特点,按照数据库设计的几个步骤进行。2.1.2 数据流图请求结果正确信息输入请求更新请求更新结果输入请求信息规范正确信息输出结果错误信息个人信息管理系统查询认证教务办P规则表信息规范输出结果输入请求教师输出结果学生输出结果输入请求查询信息处理标准查询表图2.1 数据流图(1)规范表修改请求规范表插入结果插入请求插入结果插入请求查询结果查询请求信息规范P2插入教务办P1查询规范表修改结果修改请求删除结果删除请求查询请求查询结果管理系统删除请求修改结果P3修改P4删除图2.2 数据流图(2)2.1.3 数据词典表2.1 数据字典数据元素数据类型长度数据来源系编号varchar50院系表系名varchar50院系表主任工号varchar50院系表电话varchar50院系表专业号varchar50专业表专业名varchar50专业表班号varchar50班级表班名varchar50班级表人数varchar50班级表教师号varchar50教师表姓名varchar50教师表性别varchar50教师表学号varchar50学生表姓名varchar50学生表性别varchar50学生表出生年月smalldatetime8学生表籍贯varchar50学生表名族varchar50学生表政治面貌varchar50学生表院系varchar50学生表专业班级varchar50学生表照片image16学生表电话varchar50学生表课号varchar50课程表课名varchar50课程表学分float8课程表类别varchar50课程表开课院系varchar50课程表任课老师varchar50课程表学时varchar50课程表成绩varchar50选课表效果varchar50讲授表2.2 数据库概念结构设计1n1 n m n1m n1 n 1 n 1 n院系含有包含专业老师班级包含讲授课程包含学生选课管理2.2.1 E-R图姓名性别政治面貌出生年月学号专业班级院系籍贯电话民族学生照片学号姓名院系课号成绩成绩院系系编号系名主任工号电话课号学分课名类别学时开课院系任课老师选课讲授工号课号效果图2.3 实体联系图、主要联系及其属性2.2.2 实体及属性的定义在此系统中实体有:院系、专业、班级、教师、学生、课程多对多联系有:选课、讲授2.3 数据库逻辑结构设计2.3.1 初始关系模式将E-R图转换成关系数据模式,其中,每个实体转换成一个关系模式,多对多联系转换成独立的关系模式,一对多联系并入多端实体,得到以下初始关系模式:院系(系编号,系名,主任工号,电话)专业(专业号,专业名,系编号)班级(班号,班名,人数,专业号,教师号)教师(教师号,姓名,性别,系编号)学生(学号,姓名,性别,出生年月,籍贯,民族,政治面貌,院系,电话,班号)课程(课号,课名,讲课学时,开课院系,任课老师,学分)选课(学号,课号,成绩)讲授(教师号,课号,效果)2.3.2 规范化处理经过对初始关系模式的规范化处理,以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。(=代表主码,代表外码)院系(系编号,系名,主任工号,电话)专业(专业号,专业名,系编号)班级(班号,班名,人数,专业号, 教师号)教师(教师号,姓名,性别,系编号)学生(学号,姓名,性别,出生年月, 籍贯,民族,政治面貌,院系,电话,班号)课程(课号,课名,讲课学时,开课院系,任课老师,学分)选课(学号,课号,成绩)讲授(教师号,课号,效果) 2.4 数据库物理结构设计 为了加快数据查询处理速度,为下列各关系模式创建如下索引: 院系: 专业: 班级: 教师: 学生: 课程: 选课: 讲授:2.5 数据库实施2.5.1 数据库各表结构表2.2 院系表属性名数据类型长度是否允许为空有无索引系编号varchar50不允许有系名varchar50允许无主任工号varchar50允许无电话varchar50允许无表2.3 专业表属性名数据类型长度是否允许为空有无索引专业号varchar50不允许有专业名varchar50允许无系编号varchar50不允许有表2.4 班级表属性名数据类型长度是否允许为空有无索引班号varchar50不允许有班名varchar50允许无人数varchar50允许无专业号varchar50不允许有教师号varchar50不允许有表2.5 教师表属性名数据类型长度是否允许为空有无索引教师号varchar50不允许有姓名varchar50允许无性别varchar50允许无系编号varchar50不允许有表2.6 学生表属性名数据类型长度是否允许为空有无索引学号varchar50不允许有姓名varchar50允许无性别varchar50允许无出生年月smalldatetime8允许无籍贯varchar50允许无名族varchar50允许无政治面貌varchar50允许无院系varchar50允许无专业班级varchar50允许无照片Image16允许无电话varchar50允许无班号varchar50不允许有表2.7 课程表属性名数据类型长度是否允许为空有无索引课号varchar50不允许有课名varchar50允许无学时varchar50允许无类别varchar50允许无讲课学时varchar50允许无开课院系varchar50允许无任课老师varchar50允许无学分varchar50允许无表2.8 选课表属性名数据类型长度是否允许为空有无索引学号varchar50不允许有课号varchar50不允许有成绩Float8允许无表2.9 讲授表属性名数据类型长度是否允许为空有无索引教师号varchar50不允许有课号varchar50不允许有效果Float8允许无2.5.2 关系图通过设置各表的主键和外键,在各个关系间建立联系,得到以下关系图:图2.4 关系图2.6 数据库操作部分2.6.1 数据库的插入操作INSERT INTO (,) VALUES(,);例如:在学生表中插入一个新同学的相关信息(注:学号是主码,故不可以相同) INSERT INTO 学生表(学号,姓名,性别,出生年月,籍贯,政治面貌,名族,院系,电话)VALUES(34,丁一,女,1986年1月1号,北京,团员,汉族,信息工程系,07978056)2.6.2 数据库的修改操作UPDATE SET= WHERE;例如:在学生表中修改学号为08060505101的院系为人文科学系。UPDATE 学生表 SET院系=人文科学系 WHERE 学号=080605051012.6.3 数据库的删除记录操作DELETE FROMWHERE;例如:删除学号为08060505135的相关信息 DELETEFROM学生表WHERE 学号=080605051352.6.4 触发器和存储过程 利用触发器和存储过程完成一些相对复杂的操作。存储过程:预先用SQL语句写好的,并用存储起来,如果需要的数据库提供与定义好的存储过程的功能相同时,只要调用execute()方法,即可执行。触发器:是一种特殊的存储过程,当运行到标签所在的位置时,才触发这个SQL语名的功能。-创建计算平均值的触发器createtriggertrigger_avg_insertonscoreforinsertasbegintransactiondeclarecountintupdatestudentsetSScore=(selectavg(EScore)fromscorewhereSId=(selectSIdfrominserted)whereSId=(selectSIdfrominserted)selectcount=errorif(count=0) committransactionelse rollbacktransaction-创建计算平均值得触发器createtriggertrigger_avg_deleteonscorefordeleteasbegintransactionupdatestudentsetSScore=(selectavg(EScore)fromscorewhereSId=(selectSIdfromdeleted)whereSId=(selectSIdfromdeleted)declarecountint selectcount=errorif(count=0)committransactionelserollbacktransaction-创建计算平均值的触发器createtriggertrigger_avg_updateonscoreforupdateasbegintransactiondeclarecountintupdatestudentsetSScore=(selectavg(EScore)fromscorewhereSId=(selectSIdfrominserted)whereSId=(selectSIdfromdeleted)selectcount=errorif(count=0) committransactionelserollbacktransaction-创建查找平均分存储过程CREATE PROCEDURE proc_student_avg ( SID varchar(20) ) ASbegin transaction select avg(EScore) as SAvg from score where SId=SId declare count int select count=error if(count=0) commit transaction else rollback transaction-创建通过学号查询学生信息的存储过程 Create proc proc_student_select_bySId ( SId varchar(20) ) as begin transactiondeclare count int select * from student where SId=SId select count=error if(count=0) commit transaction else rollback transaction-创建插入学生信息的存储过程createprocproc_student_insert(SIdvarchar(20),SNamevarchar(20),SClassvarchar(20),SSexvarchar(10)asbegintransactiondeclarecountintinsertintostudent(SID,SName,SClass,SSex)values(SId,SName,SClass,SSex)selectcount=errorif(count=0)committransactionelserollbacktransactionGO-删除学生信息的存储过程Createprocproc_student_delete(SIdvarchar(20)asbegintransactiondeclarecountintdeletefromstudentwhereSId=SIdselectcount=error if(count=0)committransactionelserollbacktransaction-修改学生信息的存储过程Createprocproc_student_update(SIdvarchar(20),SNamevarchar(20),SClassvarchar(20),SSexvarchar(10)asbegintransactiondeclarecountintupdatestudentsetSName=SName,SClass=SClass,SSex=SSexwhereSId=SIdselectcount=errorif(count=0)committransactionelserollbacktransaction-创建查询课程信息的存储过程Createprocproc_class_selectasbegintransaction declarecountintselect*fromclassselectcount=errorif(count=0)committransactionelserollbacktransaction-创建通过课程号查询课程信息的存储过程 Createprocproc_class_select_byEId(EIdvarchar(20)asbegintransactiondeclarecountintselect*fromclasswhereEId=EIdselectcount=errorif(count=0)committransactionelserollbacktransaction-创建插入课程信息的存储过程Createprocproc_class_insert(EIdvarchar(20),ENamevar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论