共5页
cheng亠、需求分析需求分析是数据库设计的必要和首要设计阶段,将会影响以后数据库设计的延续和质量,需求分析方法也很多,最重要是形成有实用价值的实际性的数据字典和数据流图.在该排课系统的需求分析阶段,主要是通过询问和自己所掌握的关于该系统的数据联系方式和工作方式,形成了关于该系统的数据字典和数据流图.1.1需求表述1.1.1根本功能描述排课系统的数据库设计主要完成工作有:
1、数据库治理员对数据的录入和相关完整性条件约束的建立,
2、数据库相关的触发器与存储过程对数据库中数据的联系的治理;
3、执行程序能够高效率地完成数据处理和调用;
4、能够通过DBMS建立一系列视图来更方便的操作数据库.1.1.2开发技术描述开发工具:McrosoftSQLServer于SQLServer于是XX公司推出的数据库治理系统,该版本继承了SQLServer于版本的优点,同时又比它增加了许多更先进的功能.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行McrosoftWndows于电脑到运行McrosoftWndows_P的大型多处理器的效劳器等多种平台使用.本实验中最终将使用McrosoftSQLServer于数据库治理系统将我们设计的数据库实现.1.2分析形成初步数据字典数据字典(DataDctonary,DD)是数据库设计需求分析阶段后通过科学的处理方法得到的该系统中各类数据描述的集合,也是进行详细数据收集和数据分析所获得的主要成果,它在数据库设计中占有恨重要的地位.数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分.其中数据项是数据的最小组成单位,假设干个数据项可以组成一个数据结构,以下将把分析收集的数据及其结构列出:
1、课程相关数据表1字段名称说明功能数据类型宽度kcdh课程代号表示该课程的一个代号ntkcm课程名这个课程的名称char8kclb课程类别该课程的上课形式教室类tnynt
2、班级数据表2字段名称说明功能数据类型宽度bjdh班级代号代表这个班级的号表示院系nt11bjmc班级名称表示这个班级的名字char8bjrs班级人数该班级包括的人数nt1
13、教师数据表3字段名称说明功能数据类型宽度jsdh教师代号老师的代码nt11js_m教师姓名教师的名字char10jszc教师职称反映了这个老师的职称char10js_b教师性别表示老师的性别char
4、教室数据表4字段名称说明功能数据类型宽度jsdh教室代号表示这个教室位置nt11jsgm教室规模表示这个教室可以容纳的人户ntjslb教室类别表示是否有多媒体设置nt
5、班级课程数据表5字段名称说明功能数据类型宽度bjdh班级代号表示这个班级ntkcbh课程代号表示该班级的该课程ntks_num课时数目表示该班级该课程的课时数目ntz_num课时周数表示该班级该课程的上课周数目nt6班级课时数据表6字段名称说明功能数据类型宽度bjdh班级代号r班级的代号ntkcdh课程代号课程的代号ntsjdh时间代号该班级上该课程的时间点ntjs_dh教师代号上课老师的代号ntjsdh教室代号上该次课的教室nt
7、授课数据表7字段名称说明功能数据类型宽度jdh教师代号ntkcdh课程代号nt
9、学期的时间分配数据表9字段名称说明功能数据类型宽度sjdh时间代号ntzc时间周tnynt_q时间星期nyntjc节次tnynt
1、一个班级可以是在一个学期内学习没M门课程,一门课程也可以同时在我们学校的N个班级内开课;
2、一个老师可以教M门课程的情况,同时一门课程有N个老师在教授课程;
3、一个班级有M个老师授课学习,一个老师也可能在N个班级中讲课;
4、一个班上课只能在1个教室,同时一个教室在一时刻只能一个班上课大课及公选课没有考虑进去;
5、一个老师上课在1个教室,一个教室只能1个老师在上课;6个时间点有M个班级在上课,一个班级只能只能在1个时间点上课.根本ER图在形成ER图的各实体和属性联系转化为一个个的关系模式,并对各关系模式分析各标准要求.3.1E-R图转化为关系模式生成的关系表:
1、课程表课程号,课程名,课程类别该表记录全校所有课程的相关信息,包括该课程的上课类别,也就是上课教室的类别,将课程号作为主码.该关系中其它两个非主属性完全依赖于码值课程代号,也不存在传递依赖,同时满足1NF,2NF,3NF三个标准.
2、班级表班级代号,班级名,班级人数表记录学校各班级的的简单信息,包括班级名称和班级人数,班级人数同时将会确定该班级上课的教室规模,班级代号为主码约束,班级名和班级人数完全依赖于该码,不存在传递依赖,该关系满足3范式标准要求.
3、教师表教师代号,教师性别,教师姓名教师表将学校所有老师的信息记录,教师代号为为主码,也满足三范式的规范要求.
4、教室表教室代号,教室规模,教室类别将记录全校所有教室信息的表,其中实体完整性为教室代号为主码,教室规模为教室容纳人数,教室类别取值有nt型数据4种,两个非主属性完全依赖于码且不传递依赖于主码.
5、时间表时间代号,星期,节次,周次记录学校一个学期所有上课时间的表,将节假日和双休日可以不再表内,包含周次,星期,节次三个时间属性,时间代号为主码约束,三个属性完全依赖于主码,也不传递依赖于主码,满足关系范式要求.6班级选课表班级代号,课程代号,课时数,周数班级选课表将记录一个班级一门课程的上课信息,包括课时数,和上课总周数,班级代号和课程代号为主码,同时也是班级表和课程表的外码,一个班的某门课程的上课课时和周数一定的,两个属性完全依赖于主码,同时这个关系也将是编程实现时进行排课所需要的表,将会生成视图和编写触发器对应外码的参照完整性.
7、班级派课表班级代号,时间代号,课程号,教师代号,教室代号班级派课表中记录排课后的班级上课表,也是最终得到的班级课表信息,以班级代号和时间代号为主码约束,其他属性有该班级在该时刻上课的课程,上课的老师代号,以及上课的教室代号.
8、教室状态表教室代号,时间代号,使用状态教室状态表保存了在排课过程中教室的使用情况,使用状态为1和0,分别表示教室在该时刻的使用状态,为编程实现不会教室在某个时刻不重复排教室.教室代号和时间代号为主码约束,该关系同样满足三范式标准.9授课状态表(教师代号,课程代号)授课状态表将记录老师的教课信息,一个老师可能上几门不同的课程,比方java老师可能也上C语言的课程,参加该表将会更准确记录老师的授课信息,以便排课系统更好的分配.该表为全码约束,两个属性组合为主键.3.2局部表、视图和触发器的创立
1、表的创立:Createtablesubject/课程表创立(Kcdhntparmarykey,Kcmchar
(4)notnu,Kclbchar
(4)notnull,Z_sntnotnull,Zh_sntnotnullchlk(zh_sn(0,1,2,3)defult1,)Createtableteacher/教师表的建立(Jsdhntparmarykey,Jszychar
(8)notnu,Js_bchar
(2)notnullchlk(js_bn(男,女,Js_mchar
(8)notnull)
2、班级查询视图建立XXX班级派课表.jsdh,XXX,XXX,XXX,zc,_qFromclass,tme,teacher,班级派课表,XXX级派课表XXX级派课表XXX二班级排派表XXX级派表.kcdh
3、教室课表视图建立:CreatevewteachertmeAsSelectjs_m,bj_m,kcm班级派课表.bdh,_q,zc,jc,班级派课表.bdhFromclass,room,teacher,tme,班级排课表.,XXX级派课表XXX级派课表XXX二班级派课表XXX级排课表.kcdh
5、局部触发器的建立:Createtrggernsert_STon班级派课表fornsertAsBegndeclarebanjntbanj_1ntselectbanj=count(_)from班级派课表,XXX班级派课表XXX级派课表.bjkcselectbanj_1=kssfrom班级课表,XXX=级派课表XXX级派课表.bjkcfbanj_1banjbegnPrnt(该班级的该课程已经被排满了,不能再排;Rollbacktranendend该实训过程中综合了该学期以来对数据库设计和T/SQL的学习,通过了解相关设计案例,借助SQLServer于开发工具,于同伴完成了改排课系统的初步简单设计.各关系表和逻辑设计也讨论并且根据标准要求完成,表之间可能存在局部数据冗余和局部数据冲突,将会在以后有时机深入探讨学习.最后感谢一个学期以来中黄XX在该课程上的帮助和教授.
举报
