1、目录第一章绪论21课题简介22设计目的33设计内容3第二章 需求分析31 需求分析的任务32 需求分析的过程43 数据字典4第三章 概念结构设计91 概念结构设计的方法与步骤92 概念结构设计的方法92.1 概念结构设计的步骤92.2 数据抽象与局部视图设计92.3 视图的集成10第四章 逻辑结构设计111 E-R 图向关系模型的转换112 数据模型的优化113 数据库的结构12第五章物理设计阶段151 数据存储方面152 系统功能模块153物理设计阶段结果164 数据库实施阶段164.1数据库实施阶段目标164.2数据库实施阶段任务164.3 建立视图185 存储过程定义19第六章 数据库的
2、实施与运行211建立数据库(教学管理系统数据库)212基于数据表的数据查询(系表查询)213基于视图的数据查询(系表视图查询)234存储过程功能的验证(存储过程比较查询25总结27第一章绪论1课题简介随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。而建立管理信息系统是一个很好的解决办法。 经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次软件技术实践的机会,在指导教师的帮助下,历经两周时间,我自行设计一套教学管理系统,在下面的各章中,我将以这套教学管理信息系统为例,谈谈其开发过程和所涉及到的问题。2设计
3、目的 应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。 数据库应用 课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理 软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。3设计内容 运用基于E-R 模型的数据库设计方法和关系规范化理论做指导
4、完成从系统的分析到设计直至系统的最终实现,开发教学管理信息系统,完成教学管理信息系统的全部功能,包括学生管理子系统,教师管理自系统,后勤管理子系统。 首先做好需求分析,并完成数据流图和数据字典。 其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。 然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型第二章 需求分析1 需求分析的任务 需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。重点是调查,收集与分析用户在数据管理中的信息要求,处理要求,数据的安全性与完整性要求。 为了完成需求分析的任务,要详细
5、调查待开发的数据库应用部门的情况,了解原系统工作概况,分析用户的各种需求,在此基础上确定新系统的功能。新系统必须考虑今后的扩充和改变,不能仅仅按当前应用需求来设计数据库。2 需求分析的过程 (1)调查教学组织机构的总体状况。本教学系统主要由教师管理系统,学生管理系统以及教务管理系统。 (2)熟悉各部门的业务活动状况。调查各部门的业务活动情况,对现行系统的功能和和所需信息有一个明确的认识。包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输入什么信息,输出什么信息,输出到什么部门,输出的结果的格式是什么等。 (3)根据(1)(2)调查的结果,对教学管理中各应用的信息要求和操作要求进行详细
6、分析,从中得到:该教学系统的各个应用从数据库中得到哪些信息,这些信息的具体内容和性质是什么,要求完成什么样的处理功能,对某些处理要求的相应时间,既对数据的安全,完整性的要求。 (4)确定系统的边界。确定整个系统中哪些由计算机完成,哪些将来由系统完成,哪些由人工完成。由计算机完成的功能就是新系统完成的功能。3 数据字典 经过可行性分析和初步需求调查,抽象出该子系统业务流程图,如图2.1 所示。下面,结合该实例具体情况,给出教务处、后勤部和各个系各部门的具体需求。 图2.1 某校教学管理业务流程图 调查用户需求 教务处需求 学籍处理: 新生入学档案的录入
7、1048715; 毕业学生档案的处理 学生档案的处理包括插入,删除以及修改 学生基本信息的查询 统计功能: 按专业,系以及班级统计人数 按专业,系以及班级统计学生的成绩以及排名按专业,系以及班级统计统计提前毕业,获得毕业资格,及不能正毕业的学生。按专业,系以及班级查询未注册学生的基本信息及人数 教师信息系统的管理:教师档案的录入教师基本信息的查询教师基本信息的更新包括修改,添加和修改教室设备的管理:教室基本信息的录入教室基本信息的查询包括占用情况教室基本信息的更新修改,添加和修改 制定教学计划:
8、根据专业教学秘书提供和教师的任课信息表制定教学计划把教学计划输入课程管理数据库和教师任课数据库排课:根据教学计划为每个专业排课每个专业的学生可以查询自己的课程教务处可以根据教学计划修改课程表将课程表分发给老师,学生,教室管理员和院系 通知:通知学生放假及开学时间通知学生培养计划通知教师教授课程及任课教材发放学生的成绩单学生交费功能:每年按规定的时间缴纳学费如果接到学校的补缴费用通知应该补缴注册:每年在规定的时间内向教务处注册 查询功能:查询考试成绩及班级排名查询课程信息查询教学培养计划查询任课老师的信息查询上课地点及上课时间查询放假及开学通知教师工资领取
9、:按规定的时间领取工资考核学生:按照教学大纲的要求对学生考核监督学生的学习进度查询:查询教学培养计划查询课程表查询学生的总体成绩查询学生所用的教材 各系需求分班功能:按照男女生平衡的原则进行分班。查询功能:按学生姓名,学号及班级查询查询每个班级成绩最优及最差学生统计功能: 按班级统计男、女生人数,各地区人数及总人数按专业统计男、女生人数,总人数统计各班各科的总成绩及总成绩 分析用户需求在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法(SA 方法)。首先,定义全局概念结构的框架,如图2.2所示。 教学管理系统 学生管理系统 后勤管理系统 教
10、师管理系统 学籍管理系统 课程管理系统 图2.2 教学系统总框架图经分析之后,本系统要用到九个基本表:系表,班级,学生表,课程表,选课表、教室表、占用表、教师表,教授表。数据结构定义如表2.1 所示。表2.1 数据结构定义数据结构名 含义说明 组成系表 定义了系的有关信息 系号,系名,系主任班级 定义了班级的有关信息 班号,班名,班主任,系号学生表 定义了学生的有关信息学生号,姓名,性别,省份,备注,年龄,班级号课程表 定义了课程的有关信息 课程号,课程名,学分,教师号选课表 定义了选课的基本信息 学号,课程号,成绩教室表 定义了教室的有关信息 教室号,教室名, 教室位置占用表定义了班级使用教
11、室的有关信息班级号,教室号,上课时间,占用学时教师表 定义了教师的有关信息 教师号,姓名,职称,性别,年龄教授表 定义了教师教授班级的信息 教师号,班级号,课程号,教授时间第三章 概念结构设计1 概念结构设计的方法与步骤2 概念结构设计的方法 设计概念结构通常有四类方法:自顶向下,自底向上,逐渐扩张以及混合策略。本教学系统采用的是自底向上的方法。即首先定义全局的概念结构的框架,然后逐步细化。根据自顶向上地进行需求分析然后再自底上上地进行概念设计。2.1 概念结构设计的步骤 概念结构的设计可分为两步:第一步是抽象数据并设计局部视图。第二步是集成局部视图,得到全局的概念结构。2.2 数据抽象与局部
12、视图设计按照图2.2 教学学管理系统总框架图,设计局部E-R 图。学生号 教师号院系姓名性别职称系主任系名姓名学生系号教师 教授属于 系号班号学生号院系班级学生课程号课程系名班级名系主任班主任姓名性别年龄门数课程名学分属于属于选修 图3.2 学生管理系统局部概念结构E-R 图2.3 视图的集成描述进行视图集成的具体过程,最后得到图2.5 总体概念结构E-R 图。第四章 逻辑结构设计1 E-R 图向关系模型的转换将图3.4 总体概念结构E-R 图转化成关系模型。系表(系号,系名,系主任)主键:系号班级表(班号,班名,班主任,系号)主键:班号 外键:系号学生表(学生号,姓名,性别,年龄,班级号)主
13、键:学生号 外键:班号课程表(课程号,课程名,学分,教师号)主键:可称号 外键:教师号选课表(学号,课程号,成绩)主键:学号 可称号 外键:学号 课程号教室表(教室号,教室名, 教室位置)主键:教室号占用表(班级号,教室号,上课时间,占用学时)主键:班级号 教室号教师表(教师号,姓名,职称,性别,年龄,工资)主键:教室号教授表(教师号,班级号,课程号,教授时间)主键:教室号 班级号2 数据模型的优化数据库德逻辑结构设计的结果不是唯一的。为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用
14、来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。关系数据模型的优化通常以规范化理论为指导,方法为:(1)确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间的数据依赖。根据需求分析可知:a) 系表的数据依赖 :系号-系名,系号-系主任b) 班级表的数据依赖:班号-班名,班号-班主任,班号-系号c) 学生表的数据依赖:学生号-姓名,学生号-性别,学生号-省份,学 生号-年龄,学生号-班级号,学生号-专业d) 课程表的数据依赖:课程号-课程名,课程号-学分,课程号-任课教师号e) 选课表的数据依赖:(学生号,课程号)-姓名f) 教室表的数据依赖:教室号-教室名,教室号-教室
15、位置g) 占用表的数据依赖:(班级号,教室号)-上课时间,(班级号,教室号)-占用学时h) 教师表的数据依赖:教师号-姓名名,教师号-职称,教师号-性别,教师号-年龄,教师号-工资i) 教授表的数据依赖:(教师,班级号)-授课时间,(班级号,教室号)-课程(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。(3)按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖,传递函数依赖,根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖和传递函数依赖所以所有的关系模式都是属于3NF。不需要进一步,进行模式分3 数据库的结构给出数据库基本表总体结构图。根据总体结构图设计各
16、表的结构。表4-1 系表的结构字段名数据类型长度约束描述Xnochar10主键系号 Xnamechar10不为空系名Xdirectorchar10外键系主任表4-2 班级表的结构字段名数据类型长度约束描述Cnochar10主键班级号 Cnamechar10不为空班级名称Xnochar10外键系号Cdirectorchar10外键班主任表4-3 学生表的结构字段名数据类型长度约束描述Snochar10主键学号 Snamechar10不为空姓名Ssexchar2不为空性别Saddrchar10不为空省份SageSmallint5不为空年龄Smajorchar10不为空专业Cnochar10外键班级
17、号表4-4 课程表的结构字段名数据类型长度约束描述Courcenochar10主键课程名Courcenamechar10不为空课程名称Ccreditsmallint5不为空学分Courcedirectorchar8外键教师号表4-5 选课表的结构字段名数据类型长度约束描述Snochar10外键学号Courcenochar10外键课程名Gradechar10不为空成绩表4-6 教室表的结构字段名数据类型长度约束描述Rnochar10主键教室号Rnamechar10不为空教室名Raddrchar10不为空教室位置表4-7 占用表的结构字段名数据类型长度约束描述Cnochar10外键班级号Rnoch
18、ar10外键教室号Stimedatetime上课时间UseTimechar10占用学时表4-8 教师表的结构字段名数据类型长度约束描述Tnochar10主键教师号Tnamechar10不为空姓名Tsexchar10不为空性别Tposchar10不为空职称Tagesmallint不为空年龄Tsalsmallint不为空工资表4-9 教授表的结构字段名数据类型长度约束描述Tnochar10外键教师号Cnochar10外键班级号Courcenochar10外键课程号Teachtimedatetime不为空教授时间第五章物理设计阶段1 数据存储方面2 系统功能模块(1)系表信息查询和更新模块将实现对系
19、部信息的查询和更新(修改、插入、删除)操作,方便于对系部基本信息的 管理 (2)班级表的查询和更新模块 将完成班级基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(3)学生表的查询和更新模块 将完成学生基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(4)课程表的查询和更新模块 将完成课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(5)选课表的查询和更新模块 将完成对所选课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(6)教室表的查询和更新模块 将完成教室基本信息的查询、更新(修改、插入、删除)
20、操作,便于对学生信息的集中管理(7)占用表的查询和更新模块 将完成占用基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(8)教师表的查询和更新模块 将完成教师基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(9)教授表的查询和更新模块 将完成教授基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理3物理设计阶段结果编号存储过程作用1 系表_insert在系表中插入一元组2班级表_insert在班级中插入一元组3学生表_insert在学生中插入一元组4课程表_insert在课程中插入一元组5选课表_insert在选课中插入一元组6教室
21、表表_insert在教室中插入一元组7占用表_insert在占用表中插入一元组8教师表_insert在教师中插入一元组9教授表_insert在教授中插入一元组 存储过程汇总 (其他表的查询、修改、删除与上面表的大致相同,这里不再具体列出)4 数据库实施阶段4.1数据库实施阶段目标用DBMS所提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果描述出来,成为DBMS可以接受的源代码,在经过调试生成目标模式4.2数据库实施阶段任务4.2.1建立数据库Create database 教学管理系统;4.2.2建立数据表(1)系表基本信息的建立 Create table 系表 ( Xno ch
22、ar(10) primary key not null, Xname char(10) not null, Xdirector 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) no
23、t null, Saddr char(10) not null, Sage smallint not null, Smajor char(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) , Cou
24、rceno char(10), Grade char(10) not null, ) (6) 教室表基本信息的建立 Create table 教室表 ( 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)
25、 primary key, Tname char(10) not null, Tsex char(10) not null, Tpos char(10) not 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 系表_viewassel
26、ect *from 系表with check option; (2) 查询班级表的基本信息的视图定义如下: create view 班级表_view as select * from 班级表 with check option; (3) 查询学生表的基本信息的视图定义如下: create view 学生表_view as select * from 学生表 with check option;(4) 查询课程表的基本信息的视图定义如下: create view 课程表_view as select * from 课程表 with check option; (5) 查询选课表的基本信息的视图定
27、义如下:create view 选课表_viewasselect *from 选课表with check option; (6) 查询选课表的基本信息的视图定义如下:create view 课程表_viewas select *from 选课表with check option;(7) 查询占用表的基本信息的视图定义如下:create view 占用表_viewasselect *from 占用表with check option;(8) 查询教师表的基本信息的视图定义如下: create view 教师表_view as select * from 教师表 with check option
28、;(9) 查询教授表的基本信息的视图定义如下: create view 教授表_view as select * from 教授表 with check option;5 存储过程定义(1) Create procedure 系表_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
29、 char(10) As Insert into 班级表 values(Cno,Cname,Xno,Cdirector);(3) create procedure 学生表_insert Sno char(10), Sname char(10), Ssex char(10), Saddr char(10), Sage smallint, Smajor char(10), Cno char(10) AsInsert into 学生表 values(Sno,Sname,Ssex,Saddr,Sage,Smajor,Cno)(4) create procedure 课程表_insert Courcen
30、o char(10), Courcename char(10), Ccredit smallint, Courcedirector char(8) As Insert into 课程表 values(Courceno,Courcename,Ccredit,Courcedirc)(5) create procedure 选课表_insert Sno char(10),Courceno char(10),Grade char(10) As Insert into 选课表 values(Sno,Courceno,Grade);(6) create procedure 教室表_insert Rno c
31、har(10),Rname char(10),Raddr char(10) As Insert into 教室表 values(Rno,Rname,Raddr);(7) create procedure 占用表_insert 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),Tpo
32、s char(10), Tage smallint,Tsal smallint As Insert into 教师表 values(Tno,Tname,Tsex,Tpos,Tage,Tsal);(9) create procedure 教授表_insert Tno char(10),Cno char(10), Courceno char(10), Teachtime datetime As Insert into 教授表values(Tno,Cno,Courceno,Teachtime);第六章 数据库的实施与运行 1建立数据库(教学管理系统数据库)2基于数据表的数据查询(系表查询) (班级表
33、查询)(学生表查询)(课程表查询)3基于视图的数据查询(系表视图查询) (学生表视图查询)(班级表视图查询)4存储过程功能的验证(存储过程比较查询(班级表存储过程查询)(学生表存储过程查询)总结 经过近几个星期的努力,终于设计出一个达到程序设计要求的数据库。其功能完整,用户界面良好,但是也存在着某些缺陷。 这一段时间的工作努力,最后的结果固重要,但更重要的是它让自己了解了数据库设计的一般过程。在接受客户的一个项目的时候,首先是进行系统分析。既首先分析其以后的销售情况以及技术可行性。如果二者可行,我们接下来做的就是总体设计。我们首先必须听取客户的要求,将其提出的功能按某种方式划分为几种模块。这就
34、是整体设计。在对每一个模块进行细化形成最为简单的模块。然后是考虑每一细化模块的算法并将其用语言刻画出来。这就是详细设计。这就迈出了最为关键的一步。剩下的就是编译测试阶段。这是编程的必经阶段,也是我们劳动结果的验金石。只有得到我们期望的结果我们才算真正完成了任务。最后是软件的维护。在软件的使用过程中不可避免地会出现一些错误,因此维护便是必不可少的。这便是完成一个项目必经的过程。 克服困难,坚持不懈是一个成功人士的所必需的品质。同样作为一个软件编程者更是必不可少的。只有敢于对困难说不,我们才能成为真正的软件编程者。不懈上帝是公平的,又付出就有回报。眼前的困难只是你前进路上的绊脚石。只要我们不怕痛,
35、我们就能坚持的走下来,最终走向胜利。 更重要的是它让我意识到团结互助的重要性。我们人类毕竟是社会动物。谁也不能成为上帝无所不能。只要是人他就必须需要别人。无论从物质还是精神上都不能摆脱对人的依赖。我们必须学会了与人交往,与人合作。这也是从事软件业所必须要学会。众所周知,软件是众人互相协作的产业,一个人不可能独立的完成一个大型软件的编程工作。信息产业在于它的速度,即使一个人能完成一个项目,它也不可能在时间上满足社会的需求。因此与人沟通与人协作也是十分重要的。 在这一年的学习中,我终于体会到SQL Server 2000功能的功能丰富,表达能力强,使用灵活方便,应用面广。但是在其优势后面必然也隐藏着劣势,那就是对程序员的要求特别高。随着社会的发展,人类需要处理的数据越来越多,对数据管理的要求也越来越重要。软件的发展也从面向程序发展成为面向数据。.忽略此处.
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922