1、数据库原理与应用课程设计课程名称设计题目专业班级学生姓名指导教师前言 数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础. 随着信息技术的飞速发展,信息化的大环境给各成人高校提出了实现校际互联,国际互联,实现静态资源共享,动态信息发布的要求; 信息化对学生个人提出了驾驭和掌握最新信息技术的素质要求;信息技术提供了对教学进行重大革新的新手段;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径。 校园网信息系统建设的重要性越来越为成人高校所重视.
2、利用计算机支持教学高效率,完成教学管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而教学管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行教学管理工作,不仅能够保证各项准确无误、快速输出,而且还可以利用计算机对有关教学的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高员工工资管理的效率,也是教学的科学化、正规化管理,与世界接轨的件
3、。 在软件开发的过程中,随着面向对象程序设计和数据库系统的成熟,数计成为软件开发的核心,程序的设计要服从数据,因此教学管理系统的数据库设计尤其重要.本文主要介绍教学管理系统的数据库方面的设计,从需求分析到数据库的运行与维护都进行详细的叙述。本文的分为5 章:第1章主要是课题简介及设计的内容与目的。第2章是需求分析,此阶段是数据库设计的起点。第3章是概念设计,它是将需求分析的用户需求抽象为信息结构。第4章是逻辑结构设计,它将概念模型转换为某个DBMS 所支持的数据模型。第5章是数据库的实施与运行,它包括数据的载入及数据库的运行.关键词:SQL 语言;数据库设计;教学管理系统目录第一部分:基本情况
4、与内容1第二部分:课程设计内容2第一章 绪论21课题简介22设计目的23设计内容2第二章 需求分析31需求分析的任务32需求分析的过程33数据字典3第三章 概念结构设计81概念结构设计的方法与步骤82概念结构设计的方法82.1概念结构设计的步骤82.2数据抽象与局部视图设计82。3视图的集成9第四章 逻辑结构设计101ER图向关系模型的转换102数据模型的优化103数据库的结构11第五章 物理设计阶段141数据存储方面142系统功能模块143物理设计阶段结果154数据库实施阶段154。1数据库实施阶段目标154。2数据库实施阶段任务154.3建立视图175存储过程定义18第六章 数据库的实施与
5、运行201建立数据库(教学管理系统数据库)202基于数据表的数据查询(系表查询)203基于视图的数据查询(系表视图查询)224存储过程功能的验证(存储过程比较查询24总结26第一部分:基本情况与内容题目教学管理系统组员信息学号姓名课题负责部分组长成员成员成员第二部分:课程设计内容第一章绪论龚美合1课题简介随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题.而建立管理信息系统是一个很好的解决办法。 经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次软件技术实践的机会,在指导教师的帮助下,历经两周时间,我自行设
6、计一套教学管理系统,在下面的各章中,我将以这套教学管理信息系统为例,谈谈其开发过程和所涉及到的问题。2设计目的应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。 数据库应用 课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理 软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评
7、价的一般过程,为毕业设计打下基础。3设计内容 运用基于ER 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发教学管理信息系统,完成教学管理信息系统的全部功能,包括学生管理子系统,教师管理自系统,后勤管理子系统. 首先做好需求分析,并完成数据流图和数据字典。 其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到ER 图. 然后就是逻辑结构设计,将ER 图转换为计算机系统所支持的逻辑模型第二章 需求分析袁康1 需求分析的任务需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。重点是调查,收集与
8、分析用户在数据管理中的信息要求,处理要求,数据的安全性与完整性要求。为了完成需求分析的任务,要详细调查待开发的数据库应用部门的情况,了解原系统工作概况,分析用户的各种需求,在此基础上确定新系统的功能.新系统必须考虑今后的扩充和改变,不能仅仅按当前应用需求来设计数据库。2 需求分析的过程(1)调查教学组织机构的总体状况。本教学系统主要由教师管理系统,学生管理系统以及教务管理系统。 (2)熟悉各部门的业务活动状况。调查各部门的业务活动情况,对现行系统的功能和和所需信息有一个明确的认识.包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输入什么信息,输出什么信息,输出到什么部门,输出的结果的
9、格式是什么等. (3)根据(1)(2)调查的结果,对教学管理中各应用的信息要求和操作要求进行详细分析,从中得到:该教学系统的各个应用从数据库中得到哪些信息,这些信息的具体内容和性质是什么,要求完成什么样的处理功能,对某些处理要求的相应时间,既对数据的安全,完整性的要求。 (4)确定系统的边界。确定整个系统中哪些由计算机完成,哪些将来由系统完成,哪些由人工完成。由计算机完成的功能就是新系统完成的功能。3 数据字典 经过可行性分析和初步需求调查,抽象出该子系统业务流程图,如图2。1 所示。下面,结合该实例具体情况,给出教务处、后勤部和各个系各部门的具体需求。图2。1 某校教学管理业务流程图 调查用
10、户需求 教务处需求学籍处理:新生入学档案的录入毕业学生档案的处理学生档案的处理包括插入,删除以及修改学生基本信息的查询 统计功能: 按专业,系以及班级统计人数。按专业,系以及班级统计学生的成绩以及排名按专业,系以及班级统计统计提前毕业,获得毕业资格,及不能正毕业的学生。按专业,系以及班级查询未注册学生的基本信息及人数教师信息系统的管理:教师档案的录入教师基本信息的查询教师基本信息的更新包括修改,添加和修改教室设备的管理:教室基本信息的录入教室基本信息的查询
11、包括占用情况教室基本信息的更新修改,添加和修改制定教学计划:根据专业教学秘书提供和教师的任课信息表制定教学计划把教学计划输入课程管理数据库和教师任课数据库排课:根据教学计划为每个专业排课每个专业的学生可以查询自己的课程教务处可以根据教学计划修改课程表将课程表分发给老师,学生,教室管理员和院系通知:通知学生放假及开学时间通知学生培养计划通知教师教授课程及任课教材发放学生的成绩单学生交费功能:每年按规定的时间缴纳学费如果接到学校的补缴费用通知应该补缴注册:每年在规定的时间内向教务处注册查询功能:查询考试成绩及班级排名查询课程信息查询教学培
12、养计划查询任课老师的信息查询上课地点及上课时间查询放假及开学通知教师工资领取:按规定的时间领取工资考核学生:按照教学大纲的要求对学生考核监督学生的学习进度查询:查询教学培养计划查询课程表查询学生的总体成绩查询学生所用的教材 各系需求分班功能:按照男女生平衡的原则进行分班.查询功能:按学生姓名,学号及班级查询查询每个班级成绩最优及最差学生统计功能: 按班级统计男、女生人数,各地区人数及总人数按专业统计男、女生人数,总人数统计各班各科的总成绩及总成绩 分析用户需求在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法(SA 方法)。首先,定义全局概
13、念结构的框架,如图2.2所示。 教学管理系统 学生管理系统 后勤管理系统 教师管理系统 学籍管理系统 课程管理系统 图2。2 教学系统总框架图经分析之后,本系统要用到九个基本表:系表,班级,学生表,课程表,选课表、教室表、占用表、教师表,教授表。数据结构定义如表2。1 所示。表2。1 数据结构定义数据结构名 含义说明 组成系表 定义了系的有关信息 系号,系名,系主任班级 定义了班级的有关信息 班号,班名,班主任,系号学生表 定义了学生的有关信息学生号,姓名,性别,省份,备注,年龄,班级号课程表 定义了课程的有关信息 课程号,课程名,学分,教师号选课表 定义了选课的基本信息 学号,课程号,成绩教
14、室表 定义了教室的有关信息 教室号,教室名, 教室位置占用表定义了班级使用教室的有关信息班级号,教室号,上课时间,占用学时教师表 定义了教师的有关信息 教师号,姓名,职称,性别,年龄教授表 定义了教师教授班级的信息 教师号,班级号,课程号,教授时间第三章 概念结构设计袁康1 概念结构设计的方法与步骤2 概念结构设计的方法 设计概念结构通常有四类方法:自顶向下,自底向上,逐渐扩张以及混合策略。本教学系统采用的是自底向上的方法。即首先定义全局的概念结构的框架,然后逐步细化.根据自顶向上地进行需求分析然后再自底上上地进行概念设计。2。1 概念结构设计的步骤 概念结构的设计可分为两步:第一步是抽象数据
15、并设计局部视图.第二步是集成局部视图,得到全局的概念结构.2.2 数据抽象与局部视图设计按照图2。2 教学学管理系统总框架图,设计局部E-R 图。 图3.2 学生管理系统局部概念结构E-R 图2.3 视图的集成描述进行视图集成的具体过程,最后得到图2。5 总体概念结构ER 图。第四章 逻辑结构设计-龚美合1 E-R 图向关系模型的转换将图3.4 总体概念结构ER 图转化成关系模型.系表(系号,系名,系主任)主键:系号班级表(班号,班名,班主任,系号)主键:班号 外键:系号学生表(学生号,姓名,性别,年龄,班级号)主键:学生号 外键:班号课程表(课程号,课程名,学分,教师号)主键:可称号 外键:
16、教师号选课表(学号,课程号,成绩)主键:学号 可称号 外键:学号 课程号教室表(教室号,教室名, 教室位置)主键:教室号占用表(班级号,教室号,上课时间,占用学时)主键:班级号 教室号教师表(教师号,姓名,职称,性别,年龄,工资)主键:教室号教授表(教师号,班级号,课程号,教授时间)主键:教室号 班级号2 数据模型的优化数据库德逻辑结构设计的结果不是唯一的.为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。关系数据模型的优化
17、通常以规范化理论为指导,方法为:(1)确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间的数据依赖.根据需求分析可知:a) 系表的数据依赖 :系号系名,系号-系主任b) 班级表的数据依赖:班号班名,班号班主任,班号系号c) 学生表的数据依赖:学生号-姓名,学生号性别,学生号省份,学 生号-年龄,学生号-班级号,学生号-专业d) 课程表的数据依赖:课程号课程名,课程号-学分,课程号任课教师号e) 选课表的数据依赖:(学生号,课程号)姓名f) 教室表的数据依赖:教室号教室名,教室号教室位置g) 占用表的数据依赖:(班级号,教室号)上课时间,(班级号,教室号)-占用学时h) 教师表的数据
18、依赖:教师号姓名名,教师号-职称,教师号性别,教师号-年龄,教师号-工资i) 教授表的数据依赖:(教师,班级号)授课时间,(班级号,教室号)课程(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。(3)按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖,传递函数依赖,根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖和传递函数依赖所以所有的关系模式都是属于3NF。不需要进一步,进行模式分3 数据库的结构给出数据库基本表总体结构图。根据总体结构图设计各表的结构.表41 系表的结构字段名数据类型长度约束描述Xnochar10主键系号 Xnamechar10不为空系
19、名Xdirectorchar10外键系主任表42 班级表的结构字段名数据类型长度约束描述Cnochar10主键班级号 Cnamechar10不为空班级名称Xnochar10外键系号Cdirectorchar10外键班主任表43 学生表的结构字段名数据类型长度约束描述Snochar10主键学号 Snamechar10不为空姓名Ssexchar2不为空性别Saddrchar10不为空省份SageSmallint5不为空年龄Smajorchar10不为空专业Cnochar10外键班级号表4-4 课程表的结构字段名数据类型长度约束描述Courcenochar10主键课程名Courcenamechar1
20、0不为空课程名称Ccreditsmallint5不为空学分Courcedirectorchar8外键教师号表45 选课表的结构字段名数据类型长度约束描述Snochar10外键学号Courcenochar10外键课程名Gradechar10不为空成绩表46 教室表的结构字段名数据类型长度约束描述Rnochar10主键教室号Rnamechar10不为空教室名Raddrchar10不为空教室位置表47 占用表的结构字段名数据类型长度约束描述Cnochar10外键班级号Rnochar10外键教室号Stimedatetime上课时间UseTimechar10占用学时表4-8 教师表的结构字段名数据类型长
21、度约束描述Tnochar10主键教师号Tnamechar10不为空姓名Tsexchar10不为空性别Tposchar10不为空职称Tagesmallint不为空年龄Tsalsmallint不为空工资表4-9 教授表的结构字段名数据类型长度约束描述Tnochar10外键教师号Cnochar10外键班级号Courcenochar10外键课程号Teachtimedatetime不为空教授时间第五章物理设计阶段-杨杰松1 数据存储方面2 系统功能模块(1)系表信息查询和更新模块将实现对系部信息的查询和更新(修改、插入、删除)操作,方便于对系部基本信息的 管理 (2)班级表的查询和更新模块 将完成班级基
22、本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(3)学生表的查询和更新模块 将完成学生基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(4)课程表的查询和更新模块 将完成课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(5)选课表的查询和更新模块 将完成对所选课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(6)教室表的查询和更新模块 将完成教室基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(7)占用表的查询和更新模块 将完成占用基本信息的查询、更新(修改、插入、删除)操作,
23、便于对学生信息的集中管理(8)教师表的查询和更新模块 将完成教师基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(9)教授表的查询和更新模块 将完成教授基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理3物理设计阶段结果编号存储过程作用1 系表_insert在系表中插入一元组2班级表_insert在班级中插入一元组3学生表_insert在学生中插入一元组4课程表_insert在课程中插入一元组5选课表_insert在选课中插入一元组6教室表表_insert在教室中插入一元组7占用表_insert在占用表中插入一元组8教师表_insert在教师中插入一元
24、组9教授表_insert在教授中插入一元组存储过程汇总(其他表的查询、修改、删除与上面表的大致相同,这里不再具体列出)4 数据库实施阶段4.1数据库实施阶段目标用DBMS所提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果描述出来,成为DBMS可以接受的源代码,在经过调试生成目标模式4。2数据库实施阶段任务4。2。1建立数据库Create database 教学管理系统;4。2。2建立数据表(1)系表基本信息的建立 Create table 系表 ( Xno char(10) primary key not null,Xname char(10) not null,Xdirecto
25、r char(10) , ) (2) 班级表基本信息的建立 Create table 班级表( Cno char(10) primary key,Cname char(10) not null,Xno char(10) ,Cdirector char(10) ,) (3) 学生表基本信息的建立 Create table 学生表( Sno char(10) primary key, Sname char(10) not null, Ssex char(2) not null, Saddr char(10)not null, Sage smallint not null, Smajor char(
26、10)not null, Cno char(10) , )(4) 课程表基本信息的建立Create table 课程表 ( Courceno char(10) primary key,Courcename char(10) not null,Ccredit smallint not null,Courcedirector char(8), )(5) 选课表基本信息的建立 Create table 选课表 ( Sno char(10) , Courceno char(10), Grade char(10) not null, ) (6) 教室表基本信息的建立 Create table 教室表 (
27、 Rno char(10) primary key, Rname char(10) not null, Raddr char(10) not null, )(7) 占用表基本信息的建立 Create table 占用表 ( Cno char(10), Rno char(10), Stime datetime, Uestime char(10) , )(8) 教师表基本信息的建立 Create table 教师表 ( Tno char(10) primary key, Tname char(10) not null, Tsex char(10) not null, Tpos char(10) n
28、ot null, Tage smallint not null, Tsal smallint not null, ) (9)教授表基本信息的建立Create table 教授表 ( Tno char(10),Cno char(10),Courceno char(10),Teachtime datetime not null, )4.3 建立视图(1) 查询系表的基本信息的视图定义如下:create view 系表_viewasselect *from 系表with check option;(2) 查询班级表的基本信息的视图定义如下:create view 班级表_viewasselect *
29、from 班级表with check option;(3) 查询学生表的基本信息的视图定义如下:create view 学生表_viewasselect *from 学生表with check option;(4) 查询课程表的基本信息的视图定义如下:create view 课程表_viewasselect from 课程表with check option;(5) 查询选课表的基本信息的视图定义如下:create view 选课表_viewasselect from 选课表with check option;(6) 查询选课表的基本信息的视图定义如下:create view 课程表_view
30、as select from 选课表with check option;(7) 查询占用表的基本信息的视图定义如下:create view 占用表_viewasselect from 占用表with check option;(8) 查询教师表的基本信息的视图定义如下: create view 教师表_view as select * from 教师表with check option;(9) 查询教授表的基本信息的视图定义如下: create view 教授表_viewasselect *from 教授表with check option;5 存储过程定义(1) Create procedu
31、re 系表_insert Xno char(10), Xname char(10), Xdiredtor char(10) As Insert into系表 values(Xno,Xname,Xdiredtor);(2) create procedure 班级表_insert Cno char(10),Cname char(10), Xno char(10),Cdirector char(10) As Insert into 班级表 values(Cno,Cname,Xno,Cdirector);(3) create procedure 学生表_insert Sno char(10), Sna
32、me char(10), Ssex char(10), Saddr char(10), Sage smallint, Smajor char(10), Cno char(10) AsInsertinto 学生表 values(Sno,Sname,Ssex,Saddr,Sage,Smajor,Cno)(4) create procedure 课程表_insert Courceno char(10), Courcename char(10), Ccredit smallint, Courcedirector char(8) As Insert into 课程表 values(Courceno,Co
33、urcename,Ccredit,Courcedirc)(5) create procedure 选课表_insert Sno char(10),Courceno char(10),Grade char(10) AsInsert into 选课表 values(Sno,Courceno,Grade);(6) create procedure 教室表_insert Rno char(10),Rname char(10),Raddr char(10) As Insert into 教室表 values(Rno,Rname,Raddr);(7) create procedure 占用表_insert
34、 Cno char(10), Rno char(10), Stime datetime, UseTime char(10) As Insert into 占用表 values(Cno,Rno,Stime,Usetime)(8) create procedure 教师表_insert Tno char(10),Tname char(10), Tsex char(10),Tpos char(10), Tage smallint,Tsal smallint AsInsert into 教师表 values(Tno,Tname,Tsex,Tpos,Tage,Tsal);(9) create proce
35、dure 教授表_insertTno char(10),Cno char(10),Courceno char(10), Teachtime datetimeAsInsert into 教授表values(Tno,Cno,Courceno,Teachtime);第六章 数据库的实施与运行金恒1建立数据库(教学管理系统数据库)2基于数据表的数据查询(系表查询)(班级表查询)(学生表查询)(课程表查询)3基于视图的数据查询(系表视图查询)(学生表视图查询)(班级表视图查询)4存储过程功能的验证(存储过程比较查询(班级表存储过程查询)(学生表存储过程查询)总结 经过近几个星期的努力,终于设计出一个达到
36、程序设计要求的数据库.其功能完整,用户界面良好,但是也存在着某些缺陷. 这一段时间的工作努力,最后的结果固重要,但更重要的是它让自己了解了数据库设计的一般过程。在接受客户的一个项目的时候,首先是进行系统分析。既首先分析其以后的销售情况以及技术可行性。如果二者可行,我们接下来做的就是总体设计.我们首先必须听取用户的要求,将其提出的功能按某种方式划分为几种模块。这就是整体设计。在对每一个模块进行细化形成最为简单的模块。然后是考虑每一细化模块的算法并将其用语言刻画出来。这就是详细设计.这就迈出了最为关键的一步。剩下的就是编译测试阶段.这是编程的必经阶段,也是我们劳动结果的验金石。只有得到我们期望的结果我们才算真正完成了任务。最后是软件的维护.在软件的使用过程中不可避免地会出现一些错误,因此维护便是必不可少的。这便是完成一个项目必经的过程.19