排课系统数据库设计
黄山学院自动排课系统的数据库设计

数据库原理课程设计(2012级)黄山学院自动排课系统的数据库设计姓名:李华阳学号: 21206031023 指导教师:丁丙胜院系:信息工程学院专业:计算机科学与技术提交日期:2014—06—122012级计本数据库原理课程设计目录1. 引言 (3)2. 系统需求分析 (4)2.1 功能需求分析 (4)2.1.1本系统的功能需求分析 (4)2.1.2 排课的基本原则要求 (5)2.2 数据流图 (6)2.3 数据字典 (7)2.3.1 数据项 (7)2.3.2 数据结构 (10)2.3.3 数据流 (10)2.3.4 数据存储 (11)2.3.5 处理过程 (12)3.系统功能设计 (13)3.1 系统功能描述 (13)3.1 系统模块分析 (13)4. 数据库概念模型概念 (14)4.1 概念结构设计的方法 (14)4.2 概念结构设计的步骤 (14)4.3 数据抽象与局部视图设计 (15)4.4 视图集成设计 (15)5. 数据库逻辑结构设计 (16)5.1 数据概念模型的优化 (16)5.2 数据逻辑设计 (17)6. 数据库物理结构设计 (19)结束语 (21)参考文献 (22)22012级计本数据库原理课程设计1.引言随着我国计算机技术、互联网行业的快速发展,计算机的开发应用已渗透到各个领域,成为各行各业必不可少的工具,而且日趋普及。
自动排课管理是学校日常工作中经常要面对的事情,传统的自动排课管理只能是通过手工、分散的管理方式,查找、复核困难,资源不能充分利用,造成资源浪费。
现在相当一部分学校在进行自动排课工作时仍沿用手工方式。
老师为了组织一次排课.不仅要应付课程需要的教师安排、自动排课、学生管理。
人工排课需要经过三个步骤.一是对课程班级人员的选择.二是对课程需求教室的选择,三是根据课程教室分配学生.这些工作浪费了大量的宝贵时间,同时安排位置的工作由于人员多.容易出错.而且安排不具有随机性.不够客观。
(完整word版)教务管理系统数据库设计

目录第一章:项目计划 (2)1.1 项目背景 : (2)1.2 系统开发目的: (2)1.3 定义: (2)第二章:详尽剖析 (2)、系统功能 (2)、系统构造 (3)、数据流图 (3)、户种类与职能 (4)、系统环境需求 (5)第三章:系统观点设计 (5)第四章:逻辑设计 (6)4.1 系统关系模型 (6)4.2 系统数据库表构造 (6)第五章:源码 (9)第六章:小结 (14)第一章:项目计划1.1 项目背景 :教务系统管理平台充足利用互联网络B/S 管理系统模式,以网络为平台,为各个学校教务系统的管理供给一个平台,帮助学校管理教务系统,用一个账号解决学校教务教课管理,而且学校能够自由选择学校需要的教务管理系统,灵巧地定制切合学校自己实质状况的教务系统 .1.2 系统开发目的:提升学生,老师管理和操作事务的运作效率。
1.3 定义:学生选课和老师评分一定在管理员的设置条件下进行。
第二章:详尽剖析、系统功能设置学期时间:管理员登录系统后设置学期的时间,只有当时间为某个状态时,其余角色比如老师,才能做某些事情。
学期时间只好由角色管理员操作:包含对学期时间表的增添,删除,对某个学期时间状态的改变。
学生选课:当管理员设置为学期开始时,学生能够选课,学生选课受学分影响,只好选择总学分为多少的课程。
老师评分:当管理员设置为学期评分时,老师才能够评分。
个人信息管理:对自己个人信息进行增添和改正。
成绩查问:学生能够对自己成绩进行查问。
个人课表查问:准时间的不一样,每个角色都有自己不一样的课表。
、系统构造功能描绘:学生选课和老师评分一定在管理员设置学期的条件下进行。
、数据流图顶层图0层图、户种类与职能(1)管理员:对学期设置的管理每个阶段有不一样的功能。
(2)老师:对选修了自己课程的学生评分。
(3)学生:选修科目。
、系统环境需求系统模式本系统采纳 B/S 模式作为开发模式硬件环境服务器端:高性能的计算机一台,一般的双绞线作为连结。
4.3排课系统数据库设计

4.3 系统数据库设计 4.3.1 系统数据表格设计1、课程相关数据(表1)(表1)注:教室类别中的上课时间从11~75取值分别代表为周一1、2节至周七9、10节,也可以由具体其它的教室类别来进行扩充。
2、教师数据(表2)(表2)3、教室数据(表3)(表3)注:教室类别中的上课时间从11~75取值分别代表为周一1、2节至周七9、10节,也可以由具体其它的教室类别来进行扩充。
4、教室使用状态数据分析(表4)(表4)注:对教室使用情况进行标注,以便于在进行排课时不至于冲突。
若教室被使用值为1,未被使用则值为0。
如上各表是系统数据库表格设计,基本上描述了系统中的各种数据及其结构,但是,没有对数据的数据存储进行较多的描述。
4.3.2 系统相关数据的实体及其属性如下各图将系统中的所有实体的属性集合,表示如下:如上各图将系统中的各数据的实体分别以图表的形式列举出。
4.3.3 系统基本E-R图的形成实体联系部分情况:1、一个老师可以同时教授M门课,但一门课程能且只能有1个老师在教授;2、一个老师上一门课程能且只能在1个教室,一个教室能且只能有1个老师在上课;3、一个时间点上可以同时有M个班级在上课,一个班级能且只能在1个时间点上上课。
系统的基本E-R图:在形成E-R图的时,由于将各个实体联系到了一起,所以可能会产生命名上的冲突,结构上的冲突和属性上的冲突,在此不做具体介绍,在后面的具体实现过程中,将具体分析和解决。
4.3.4 将E-R图转化为关系模式生成的关系表:1、课程表(课程号,课名,上课时间,教师代号,教室代号)该表记录整个学院所有课程的相关信息,包括该课程的上课时间,也就是上课教室的时间段,并将课程号作为主键,教师代号、教室代号作为外键。
该关系中其它两个非主属性完全依赖于主键课程代号,也不存在传递依赖,同时满足于1NF,2NF,3NF三个规范。
2、教师表(教师代号,所上课程,教师性别,教师姓名,上课时间)教师表将整个学院所有老师的信息作记录,教师代号、所上课程作为主键,另外将上课时间作为外键。
(完整word版)数据库课程设计教务管理系统

洛阳理工学院课程设计报告课程名称数据库课程设计设计题目教务管理系统专业计算机科学与技术班级学号姓名完成日期课程设计任务书设计题目:教务管理系统设计内容与要求:设计教务管理系统,类似于我校教务管理系统,有四类用户:教务员、学生、教师、管理员教务员可以输入学生、教师、班级、课程信息。
一个班级只属于一个专业,一个学生只属于一个班级。
教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。
教师可以查看学习该课程的学生名单。
课程结束后,教师可以录入课程成绩。
一个教师可以教授多个班的多门课程,每门课由多位老师讲授。
课程分两类,必修课和选修课。
系统要记录每个学生学习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。
学生可以查看自己各门课程的成绩。
学生还可以进行评教,给老师打分。
管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。
要求:1.完成本系统的需求分析,写出功能需求和数据需求描述;2.完成数据库的概念结构设计、逻辑结构设计、物理结构设计;3.完成本系统的部分功能模块的程序界面设计。
指导教师:2017 年12 月29 日课程设计评语成绩:指导教师:_______________年月日目录一、概述 (2)1.1、本设计的目的与意义 (2)1.2、数据库开发工具和应用程序开发工具 (2)二、需求分析 (2)2.1功能需求 (2)2.2数据需求 (2)三、概念结构设计 (2)3.1、E-R模型设计 (2)3.2、总体E-R图描述 (4)四、逻辑结构设计 (4)4.1、关系模型 (4)4.2、关系模式的优化与说明 (4)五、物理结构设计 (5)5.1建立数据库 (5)5.2表与表结构 (5)六、应用程序设计 (6)6.1、系统总体结构 (6)6.2、系统界面与源代码 (7)6.2.1、界面 (8)6.2.2、功能描述 (9)6.2.3、程序源代码 (10)七、设计总结 (23)一、概述本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2010作为主要开发工具,可与SQL Server 2008数据库无缝链接。
3高校教务管理系统数据库设计

高校教务管理系统数据库设计1.1 数据库数据库是实现有组织地,动态地存储大量关联数据,方便多用户访问的计算机软硬件组成的系统;它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。
由于本软件的整体结构比较简单,所涉及数据相对来说也较少,组成文件的最小单位是记录。
1.2设备奔腾1g、内存128兆以上的计算机,局域网络环境。
1.3需求注释对于本软件,它的功能需求、性能需求、接口需求,从稳定性、可行性上都是可以的。
1.4功能树2 概念设计2.1 实体及其属性2.1.1 学生实体E-R图2.1.2 课程实体E-R图2.1.3 教师信息E-R图2.1.4综合ER图3 逻辑设计3.1 规范化得到最终的关系模式学生信息基本表(学号,姓名,性别,学院名称,班号,联系电话,入校日期,家庭住址),主码为学号,符合三范式。
课程信息表(课程编号,课程类型,分数)主码为课程编号,符合三范式。
教师信息表(教师编号,姓名,所在科室,联系电话)主码为教师编号,符合三范式。
考试信息表(学号,课程编号)主码为学号,课程编号,符合BCNF。
讲授信息表(教师编号,课程编号)主码为教师编号,课程编号,符合BCNF。
3.2 学生基本信息表3.3 课程信息表3.4 教师信息表3.5 考试信息表3.6 讲授信息表4 物理结构设计4.1物理设计阶段的目标与任务数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2 建立数据表4.2.1 学生信息基本表的建立:CREATE TABLE Student( Sno CHAR ( 8 ) PRIMARY KEY ,Uname CHAR ( 8 ) UNIQUE,Sex CHAR ( 2 ),Sdept(8 ),Classno ( 8 ),Connect tel ( 11 ),Enter date (8 ),Family add (50 ));4.2.2 课程信息表的建立:CREATE TABLE Course( Course code CHAR (20 ) PRIMARY KEY ,Course type CHAR ( 8 ) ,Course grade CHAR ( 8)) ;4.2.3 教师信息表的建立:CREATE TABLE Teacher( Tno CHAR ( 8 ) PRIMARY KEY ,Tname CHAR ( 8 ) UNIQUE,Tdepartment(8 ),Tmoible( 11 ),);4.2.4考试信息表的建立:CREATE TABLE Exam( Sno CHAR ( 8 ) ,Course code CHAR (20 ) ,PRIMARY KEY ( Sno , Course code ) ,FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ) ,FOREIGN KEY (Course code) REFERENCES Course (Course code));4.2.5讲授信息表的建立:CREATE TABLE Teaching( Tno CHAR ( 8 ) ,Course code CHAR (20 ) ,PRIMARY KEY (Tno , Course code ) ,FOREIGN KEY (Tno ) REFERENCES Teacher (Tno ) ,FOREIGN KEY (Course code) REFERENCES Course (Course code) );5 其他数据库对象的设计5.1 索引CREATE UNIQUE INDEX Stusno ON Student(Sno)CREATE UNIQUE INDEX Couno ON Course(Cno)CREATE UNIQUE INDEX Teano ON Teacher(Tno)5.2 视图CREATE VIEW IS_StudentASSELECT Sno,Sname,SdeptFROM StudentWhere Sdept=’IS’;2.2CREATE VIEW BTEACHERASSELECT Tname,TdepartmentFROM Teacher;5.3 触发器CREATE Trigger Delete _CourseBEFORE UPDATE ON CourseFOR EACH ROWAS BEGINIF(new.grade<60)THEN new.grade=nopass;END IF;END;5.4 存储过程CREATE procedure createetablesASCREATE table user 1(Uid int,Uname char(20)INSERTINTO use 1(Uid,Uname)V ALUES ('1','小明');)6 备份及恢复策略针对不同的故障,制定恢复策略数据库系统可能发生各种各样的故障,大致可以分为以下几类:1)事务内部故障2)系统故障3)介质故障4)计算机病毒要保证数据一致性是对数据库的最基本的要求。
教务系统数据库设计

教务系统数据库设计课题的研究背景与意义课题的研究背景目前我国各行各业的信息化建设开展得如火如荼,这种信息化的发展已经影响到了各学校。
学校在对学生进行管理时,学生学籍的管理一直都是很麻烦的事情,不仅仅管理起来不易修改和更新,而且学生需要了解本人的信息时,也需要去学校教务处找专门人员.由于这些操作的繁琐性,教务管理系统的开发成为各学校必须的事情,特别是各个高校.一个成功的教务管理系统,应该能够有效地辅助教务人员工作,提高学校学生的学籍、成绩等管理能力,并且不断完善系统,以便更好的帮助学生、教师、系统管理人员等管理成绩、课程、学籍等。
然而目前许多教务管理系统在使用时,效率低下容易出错,学生、教师资料不易整理,大量丢失,这些无疑都已成为管理学生学籍、教师信息的障碍.这就要求学校能够建立高效的教务管理系统,对学生的选课、查询等操作及流程进行规范化管理,简化业务流程,提高工作效率并防止中间的漏洞;迅速、准确地捕捉用户要求,并加以高效回应。
同时需要不断完善系统,增加模块,更好的满足用户需求,简化教务人员的管理工作,尽量做到一切信息化。
课题的研究意义对于学校教务处而言,最主要的是管理学生的学籍、管理教师的课程教授.如果使用一般的方法来管理,会比较繁琐,管理起来也很有可能出错。
为了方便教务人员的管理工作,提高工作效率,同时为了更好地为学生、教师提供服务,有必要开发教务管理系统,使学校的教务管理走上信息化之路,克服人为的种种弊端。
教务管理系统的开发不仅可以减少人力、物力和财力资源的浪费,更重要的是有助于提高教务管理的效率.教务管理人员管理学生学籍、管理教师课程教授时是一项复杂的组织工作,这种复杂性不仅仅指学生学籍变更快,变更人数众多,更突出地表现在教务管理主要对象(即学生)的数据量大,管理起来带来不便,所以开发一个实用、高效的教务管理信息系统是很有必要的..系统的内容简介教务管理系统为教务管理人员管理日常教务工作提供了方便。
教务管理系统的数据库设计

教务管理系统的数据库设计在这个信息化的时代,教务管理系统的数据库设计可真是个重要话题。
想象一下,学生们像小鸟一样翱翔在知识的天空中,而教务管理系统就像是那座巍峨的山,支撑着他们的飞翔。
要说数据库设计,它就像是那座山里的矿藏,藏着无数宝贵的数据,帮助学校更好地管理课程、学生、老师等等。
嘿,想要把这个系统弄得流畅又高效,可是需要点儿巧思的。
得说说数据表的设计。
哎,这可不是随便搁一堆数据就行,得精心布局。
就像盖房子,基础打好了,后面的事儿就简单多了。
学生信息表得包含姓名、学号、班级、联系方式这些。
这样一来,学校里的小伙伴们都能找到自己的资料,简直是太方便了。
想想看,谁还想翻开厚厚的纸张找信息呢?那简直是“老古董”嘛。
接下来是课程表。
课程表可得搞得清清楚楚。
你说,哪个学生想要上错课啊?这可真是“搬起石头砸自己的脚”。
数据库里得有课程ID、课程名称、授课教师、上课时间、教室等信息。
这样一来,学生们就可以轻松找到自己的课程安排,省得一个个去问老师,弄得大家都烦得要命。
说实话,谁不想在上课之前先看一眼课表,安排好自己的时间呢?然后,得提提老师信息表。
这些可都是传授知识的“园丁”,他们的基本信息得齐全。
姓名、职称、教授课程、联系方式……这些都是必不可少的。
想想,学生们如果有问题,能直接找到老师,那得多省心啊!就像找到了“明灯”,一片黑暗中突然亮了起来。
再说,老师也可以通过系统了解自己所教班级的情况,做到心中有数,帮助学生解决问题,简直是一举两得!说到这里,不得不提到成绩管理。
学生们的成绩就像是一面镜子,映照出他们的学习状况。
成绩表得细致入微,得有学号、课程ID、成绩、学期等信息。
每当考试结束,老师一键上传成绩,学生们就能及时查看,心里明白得很。
要是成绩不好,也能及时调整学习计划,争取下次考个好成绩,绝对是“洗心革面”的机会。
谁愿意被自己的分数困住呢?大家都想迎头赶上嘛。
数据安全也是一大关键。
就像是给这些宝贵数据上了一把锁,防止不必要的“外人”进入。
排课系统数据库表详细设计

字段名称
字段类型
字段长度
默认值
说明
StudentId
Int
学生编号
StudentName
nvarchar
50
学生姓名
ClassId
int
班级ID
loginName
账户
pass
nvarchar
密码
status
nvarchar
状态1 0
教师信息表(TeacherInfo)
字段名称
字段类型
字段长度
默认值
说明
CourceTableId
Int
课程表编号
ClassId
Int
班级编号
WeekDay
nvarchar
50
星期
ClassTime
Int
max
第几节课
CourseInfoId
Int
max
课程任课编号
ClassRoomCode
nvarchar
教室代码
字段长度
默认值
说明
ClassRoomId
Int
教室编号
ClassRoomCode
nvarchar
教室代码
buildingRoomName
nvarchar
教学楼名称
ClassRoomName
nvarchar
教室名称
Max
Int
最大容纳人数
status
nvarchar
状态1 0
课程表(ClassTable)
排课系统数据库表详细设计(scheduling)
班级信息表(ClassInfo)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
`JIANGXI AGRICULTURAL UNIVERSITY本科课程实训;题目:关于学生排课系统的数据库设计学院:软件学院姓名:肖力谢果学号:~专业:软件工程班级:软件1001指导教师:黄欣2011年12月引言:由于当下大学学校班级及专业较多,我们学校的实用的帮助班级排课的一个系统也有迫切需求。
基于用SQL Server设计的数库的排课系统也有很大的需要,在本实训作业中,将会针对该实际情况,对我校江西农业大学的学生上课排课系统的数据库进行设计。
该设计工作由双人合作的形式完成,对一个学期以来数据库系统概论的学习进行巩固和联系。
该排课系统主要设计流程工作大概分为三个阶段:需求分析,概念结构设计,逻辑结构设计,也将设计的物理结构和数据库实施维护从略讲述,着重在需求分析上的收集数据形成实体及其联系的数据字典完成,在需求分析的基础上完成数据流图的基本设计;在概念结构设计上完成数据的抽象形成各子系统的E-R图,最后在解决冲突的分析下完成基本总实体-联系(E-R图);在逻辑结构设计阶段中完成数据的抽象及实体的形成,实体的规范分析及完整性约束,以及设计阶段的有关触发器的创建分析和实现……最后简要对数据库设计的步骤的物理设计和实施阶段简要概述。
课程设计为实验周两天完成,使用流行的SQL Server 2005数据库系统完成基本设计工作,通过数据库管理系统(DBMS)、T/SQL基本语句实现数据库表的创建,表的完整性约束,表的视图及触发器的创建,基本工作都按照实训题要求基本完成。
一、需求分析需求分析是数据库设计的必要和首要设计阶段,将会影响以后数据库设计的延续和质量,需求分析方法也很多,最重要是形成有实用价值的实际性的数据字典和数据流图。
在该排课系统的需求分析阶段,主要是通过询问和自己所掌握的关于该系统的数据联系方式和工作方式,形成了关于该系统的数据字典和数据流图。
1.1需求表述基本功能描述排课系统的数据库设计主要完成工作有:1、数据库管理员对数据的录入和相关完整性条件约束的建立,2、数据库相关的触发器与存储过程对数据库中数据的联系的管理;3、执行程序能够高效率地完成数据处理和调用;4、能够通过DBMS建立一系列视图来更方便的操作数据库。
开发技术描述开发工具:Microsoft SQL Server 2005SQL Server 2005 是microsoft 公司推出的数据库管理系统,该版本继承了SQL Server 2000 版本的优点,同时又比它增加了许多更先进的功能。
具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 2000 电脑到运行Microsoft Windows XP 的大型多处理器的服务器等多种平台使用。
本实验中最终将使用Microsoft SQL Server 2005数据库管理系统将我们设计的数据库实现。
1.2分析形成初步数据字典数据字典(Data Dictionary,DD)是数据库设计需求分析阶段后通过科学的处理方法得到的该系统中各类数据描述的集合,也是进行详细数据收集和数据分析所获得的主要成果,它在数据库设计中占有恨重要的地位。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,以下将把分析收集的数据及其结构列出:1、课程相关数据(表1)注:教室类别中的tinyint从1~4分别代表取值为普通教室、多媒体教室、半多媒体教室、实验机房,也可以由具体其它教师类别进行扩充。
2、班级数据(表2)3、教师数据(表3)注:教室类别中的tinyint从1~4分别代表取值为普通教室、多媒体教室、半多媒体教室、实验机房,也可以由具体其它教师类别进行扩充。
5、班级课程数据(表5)6、班级课时数据(表6)注:星期的属性值范围tinyint中从1~5分别代表值是周一到周五;节次的属性值范围tinyint中从1~4分别代表值是1~2节,3~4节,5~6节,7~8节。
7、授课数据(表7)注:一个老师可能教授多门课程的情况也存在。
8、教室使用状态数据分析(表8)注:标注教室使用情况,以便于进行排课时不至于冲突。
9、学期的时间分配数据(表9)属性值范围tinyint中从1~4分别代表值是1~2节,3~4节,5~6节,7~8节。
以上各是需求分析后形成的数据的部分数据字典,基本描述了各种数据及其结构,没有对数据的数据存储进行较多的描述。
1.3基本数据流图通过以上的分析和各类数据的形成,也将在以下画出该系统的基本简单数据流图,数据流图(Data Flow Diagram,DFD)为概念结构设计和形成初步基本E-R图做好准备。
下图为得到的基本数据流程图:基本数据流程图(图1)注:在该数据流程图中简要将系统的数据流向标示,在排课处理中综合所有的相关数据,最后得到一个班级一门课程在一个时间点的上课地点和任课老师。
二、 概念结构设计将以上需求分析阶段得到的数据字典及数据流程图整合为对应得到实体联系图,为下一步逻辑结构设计中创建关系代数模型和建立相应得表做最后的分析准备。
数据各实体及其属性以下各图将系统所有实体的属性集合表示如下:以上将数据各实体分别将图表列出。
基本E-R图的形成实体联系部分情况:1、一个班级可以是在一个学期内学习没M门课程,一门课程也可以同时在我们学校的N个班级内开课;2、一个老师可以教M门课程的情况,同时一门课程有N个老师在教授课程;3、一个班级有M个老师授课学习,一个老师也可能在N个班级中讲课;4、一个班上课只能在1个教室,同时一个教室在一时刻只能一个班上课(大课及公选课没有考虑进去);5、一个老师上课在1个教室,一个教室只能1个老师在上课;6、一个时间点有M个班级在上课,一个班级只能只能在1个时间点上课。
基本E-R图:系统基本E-R图在形成E-R图的过程中,由于将各实体联系到一块,可能会产生命名冲突,结构冲突和属性冲突,在此将不具体介绍相关冲突的解决办法,只在后面的模型中自行分析并解决。
三、逻辑结构设计逻辑结构设计是在概念结构设计好的基础上把形成的基本系统实体联系图转化为我们现在要使用的DBMS关系模型结构,在此将具体将E-R图的各实体和属性联系转化为一个个的关系模式,并对各关系模式分析各规范要求。
E-R图转化为关系模式生成的关系表:1、课程表(课程号,课程名,课程类别)该表记录全校所有课程的相关信息,包括该课程的上课类别,也就是上课教室的类别,将课程号作为主码。
该关系中其它两个非主属性完全依赖于码值课程代号,也不存在传递依赖,同时满足于1NF,2NF,3NF三个规范。
2、班级表(班级代号,班级名,班级人数)表记录学校各班级的的简单信息,包括班级名称和班级人数,班级人数同时将会确定该班级上课的教室规模,班级代号为主码约束,班级名和班级人数完全依赖于该码,不存在传递依赖,该关系满足3范式规范要求。
3、教师表(教师代号,教师性别,教师姓名)教师表将学校所有老师的信息记录,教师代号为为主码,也满足三范式的规范要求。
4、教室表(教室代号,教室规模,教室类别)将记录全校所有教室信息的表,其中实体完整性为教室代号为主码,教室规模为教室容纳人数,教室类别取值有int型数据4种,两个非主属性完全依赖于码且不传递依赖于主码。
5、时间表(时间代号,星期,节次,周次)记录学校一个学期所有上课时间的表,将节假日和双休日可以不再表内,包含周次,星期,节次三个时间属性,时间代号为主码约束,三个属性完全依赖于主码,也不传递依赖于主码,满足关系范式要求。
6、班级选课表(班级代号,课程代号,课时数,周数)班级选课表将记录一个班级一门课程的上课信息,包括课时数,和上课总周数,班级代号和课程代号为主码,同时也是班级表和课程表的外码,一个班的某门课程的上课课时和周数一定的,两个属性完全依赖于主码,同时这个关系也将是编程实现时进行排课所需要的表,将会生成视图和编写触发器对应外码的参照完整性。
7、班级派课表(班级代号,时间代号,课程号,教师代号,教室代号)班级派课表中记录排课后的班级上课表,也是最终得到的班级课表信息,以班级代号和时间代号为主码约束,其他属性有该班级在该时刻上课的课程,上课的老师代号,以及上课的教室代号。
8、教室状态表(教室代号,时间代号,使用状态)教室状态表保存了在排课过程中教室的使用情况,使用状态为1和0,分别表示教室在该时刻的使用状态,为编程实现不会教室在某个时刻不重复排教室。
教室代号和时间代号为主码约束,该关系同样满足三范式规范。
9、授课状态表(教师代号,课程代号)授课状态表将记录老师的教课信息,一个老师可能上几门不同的课程,比如java老师可能也上C语言的课程,加入该表将会更准确记录老师的授课信息,以便排课系统更好的分配。
该表为全码约束,两个属性组合为主键。
部分表、视图和触发器的创建1、表的创建:Create table subject sdh,,,,,zc,xqFrom class,time,teacher, 班级派课表,subjectWhere =班级派课表.bjdh and~dh=班级派课表.s~dh and=班级排派表.sjdh and=班级派表.kcdh3、教室课表视图建立:Create view teachertimeAsSelect jsxm,bjxm,kcm 班级派课表.bidh ,xq,zc,jc, 班级派课表.bidhFrom class ,room,teacher,time, 班级排课表.,subjectWhere =班级派课表.bjdh and~dh=班级派课表.s~dh and=班级派课表.sjdh and=班级排课表.kcdh5、部分触发器的建立:Create trigger insert_ST on 班级派课表 for insertAsBegindeclare @banji int @banji_1 intselect @banji=count(*) from 班级派课表,inserted where =班级派课表.bjdh and =班级派课表.bjkcselect @banji_1=kss from 班级课表,inserted where =班级派课表.bjdh and =班级派课表.bjkcif @banji_1<@banjibeginPrint(‘该班级的该课程已经被排满了,不能再排’);Rollback tranendend四、总结分析该实训过程中综合了该学期以来对数据库设计和T/SQL的学习,通过了解相关设计案例,借助SQL Server 2005 开发工具,于同伴完成了改排课系统的初步简单设计。