《数据库原理与应用》课程设计论文教室管理信息系统数据库的设计_第1页
《数据库原理与应用》课程设计论文教室管理信息系统数据库的设计_第2页
《数据库原理与应用》课程设计论文教室管理信息系统数据库的设计_第3页
《数据库原理与应用》课程设计论文教室管理信息系统数据库的设计_第4页
《数据库原理与应用》课程设计论文教室管理信息系统数据库的设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

信息学院《数据库原理与应用》课程设计论文题目:教室管理信息系统数据库的设计学号:专业班级:信息管理与信息系统072姓名:指导老师:完成日期:二零一零年元月八日摘要通过调查研究,发现教室管理大多采用人工方式,不便于管理和用户使用。本系统针对教室管理人员和用户,采用存储过程和触发器,实现数据的增删改,方便用户操作和系统的实现。主要实现了空教室查询,教师调课的管理,设备维护管理和教室借用的管理。其中空教室查询包括空闲教室查询和空余座位查询以及学生出勤人数的统计查询等;调课管理完成教师调课的处理及相关课表的查询等;设备维护管理主要记录教室设备的损坏及修复信息;借用管理完成教室的借用处理和记录等。关键字:教室管理,空教室查询,数据库设计目录TOC\o"1-4"\h\z\u1.引言 1本系统研究的意义 1本系统的目的 1本系统的任务 12.数据库设计 1需求分析阶段 1引言 1需求分析的目的和任务 2体会与收获 2教室管理系统的业务流程图 3教室管理系统的数据流图 3.4教室管理系统的数据字典 6概念设计阶段 82.2.1引言 82.2.2概念设计的目标与任务 8概念设计的目标 8概念设计的具体任务 82.2.3概念设计的阶段成果 9逻辑结构设计 12引言 12逻辑结构设计阶段的目标和任务 12数据组织 13将E-R图转换为关系模型 13数据处理 14物理结构设计 15物理设计的目标 15物理设计的任务 15索引的建立 15数据库实施 15数据库实施阶段的目标和任务 15建立基本表与视图、建立触发器和存储过程、数据入库 16实施结果 16数据库调试与试运行 16测试方法 16测试内容 16测试结果 163.收获与体会 164.存在的问题和建议 17致谢 17参考文献 17附录1数据库模式定义的详细说明 18附录2数据库基本表和视图的创建 22附录3存储过程、触发器的创建与数据库验证 28在当今的大学校园中,教室仍然是教学活动和学生课余活动的主要场所。但是教室资源的有限性使师生使用并不方便。以前,一个学校对于教室的安排大多是靠一些人工处理,安排起来比较复杂,容易出错,而且不易于添加和删除,更不利于查找。建立了教室安排系统以后,对教室的安排就变的更加容易,添加和删除也更加容易,特别是对于教室的查找,上课教师的查找都变的更加容易。建立了教室安排系统,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改教室的安排情况,以及更有效得对设备维护进行管理。本系统着力于整合教室管理中课程安排、教师调课、设备损坏及维修以及单位借用等影响教室使用的环节,实现统一管理。在此基础上提供方便有效的课表查询、空教室查询、学生出勤次数查询、设备维护记录查询。本系统针对教室管理中出现的管理不统一的问题,着力于将教室管理中课程安排,教师调课、单位借用等联系起来,建立一个统一的管理系统,以提高处理效率,方便统一管理。同时为师生提供方便可靠的查询。引言需求分析就是根据系统的目标、需求和功能,制定和选择一个较好的系统方案,不仅有助于教室管理者的管理,而且方便用户的查询及其它操作。本系统针对教室管理这一学校日常事务,所设计的系统应当实现课程教室安排,教师调课管理,教师借用管理,教师设备维护等基本功能及学生到课情况的统计功能。因此确定本系统的功能如下:(1)空教室资源管理(2)教师调课管理(3)单位借用管理(4)设备维护管理需求分析的目的和任务(1)目标通过充分与用户接触,充分了解用户的需求,熟悉系统设计的业务流程与信息处理要求及系统所涉及的数据流。(2)任务本系统设计的处理对象有学生信息、课程信息、教室信息、教师信息、借用单位信息以及学生的课程出勤记录,教师调课记录,设备维护记录,单位借用教室记录等。处理功能要求:教室管理系统的具体功能包括三个方面:教室查询子系统,教室调课子系统,设备管理子系统,教室借用子系统。教室查询子系统主要完成教室课程安排,空闲教室查询(无课教室),教室空余座位的查询以及上课时学生到课情况的查询;调课管理子系统主要完成教师调课处理以及教师调课记录的存储与查询功能;设备管理子系统主要完成接收报告设备损坏信息,以及安排维修员维护教室,设备维护记录的存储和查询;借用子系统完成接收借用教室申请与处理,同时存储借用记录以方便查询。(3)安全性和完整性要求在这个系统中存在一个实体参与多个事务的情况,因此一个实体在不同事务中可能出现属性取值不一致,以及在事务中引用了实体表中不存在的实体,因此采用外键约束来避免这种不一致情况的发生。另一方面,在事务处理中,修改了一个实体的属性,可能要修改其它实体,这种事务的完整性约束采用触发器来实现。需求分析阶段的成果.1体会与收获需求分析阶段主要涉及的系统所要实现的功能,根据调查和访问确定了基本功能和操作,是数据库的设计有个基本目标。完成了数据库信息要求、处理要求、安全性与完整性要求,使我们对数据库的设计阶段有了个深入的认识和了解,为今后的学习工打下坚实的基础。.2教室管理系统的业务流程图通过分析教室管理的事务,确定的业务流程图如下。图.2-1教室管理系统业务流程图图.2-1教室管理系统业务流程图.3教室管理系统的数据流图根据业务流程图,去掉具体的信息载体,抽象得到了顶层数据流图如图.3-1所示。图图.3-1顶层数据流图结合业务流程图,在顶层数据流的基础上,细化出系统的一层数据流包括排课,调课,借用设备维护及查询等数据处理过程,如图.3-2所示。图图.3-2一层数据流图对一层数据流分析,得到的部分二层数据流图如图.3-3至图-5所示。图.3-4调课管理子系统二层数据流图图.3-3借用子系统二层数据流图图.3-4调课管理子系统二层数据流图图.3-3借用子系统二层数据流图图.3-5设备维护子系统二层数据流图.4教室管理系统的数据字典根据数据流图,得到的数据字典如下表所示。数据项的描述如下表所示:编号数据项名别名数据类型长度取值范围描述I-1SNo学号char8I-2Sname学生姓名char14I-3BirthYear出生年月smalldatetimeI-4Pname专业名char24I-5ClassNo班级号char6I-6AttendSum出勤次数smallintI-7Image照片ImageI-8Cno课程号char6I-9Cname课程名char16I-10TNo任课教师号char6I-11Dept学院名称char20I-12Time课时smallintI-13PersonSum应到人数smallintI-14WeekNo周次char10I-15Weekday星期char10I-16SectionNo节次char10I-17Tname教师名char14I-18Title职称char4I-19RoomNo教室号char4I-20Roomname教室名char6I-21Campusname校区名char10I-22Buildname教学楼名char6I-23Capacity容量intI-24IsUsable可用状态char4I-25RemainCapacity剩余容量intI-26Type教室类型char10I-27RentDeptname借用单位名称char20I-28Leadername负责人姓名char14I-29IDType有效证件类型char8负责人证件类型I-30RentData借用日期smalldatetimeI-31ID证件号码char20I-32Tel联系方式char12I-33RepairerNo维修员编号char4I-34Repairername维修员姓名char14I-35State状态char4维修员状态I-36Devicename损坏设备名char12I-37Ischange是否需更换char6I-38Supplyname耗材名称char10I-39RentNo借用编号char6I-40RentReason借用目的char40I-41RepaireRecordNo维修记录编号char6I-42RepairTime维修时间samlldatetimeI-43DamageInfo损坏信息char50设备损坏信息描述I-44DamageTime报告时间samlldatetime数据结构的描述如下表所示:数据结构编号数据结构名组成含义说明DS-1StudentSno,Sname,BirthYear,Pname,ClassNo,AttendSum,Image,Dept学生信息DS-2TeacherTno,Tname,Dept,Title,教师信息DS-3CourseCno,Cname,Time,WeekNo,Weekday,SectionNo课程信息DS-4ClassroomRoomNo,Roomname,Campusname,Buildname,Capacity,IsUsable,RemainCapacity,Type教室信息DS-5GroupLeadername,IDType,ID,Tel单位信息DS-6RepairerRepairerNo,Repairernam,State,Tel维修员信息DS-7CurriculumCno,Tno,WeekNo,Weekday,SectionNo,RoomNo课程表DS-8RepaireRecordRepaireRecordNo,RoomNo,RepairerNo,Devicename,Ischange,Supplyname,RepaireTime维修记录DS-9AdjClassLogTNo,RoomNo,NewWeekNo,NewWeekday,NewSectionNo,NewRoomNo调课记录DS-10RentRecordRentDate,Leadername,RoomNo,WeekNo,Weekday,SectionNo借用记录DS-11DamageReportSno,RoomNo,Supplyname,DamageInfo,DamageTime设备损坏报告引言概念设计是数据库设计的关键。概念结构是对现实世界的一种抽象,包括三种抽象,分别是分类、聚集、概括。能不能将数据流中的实体及联系抽象成合适的概念模型,具体说就是ER模型,关系到后续数据库的逻辑设计。概念设计的目标与任务.1概念设计的目标在需求分析的基础上,抽象出实体,实体的属性,以及实体之间的联系。从一层数据流开始,先绘制局部的ER图,在此基础上通过消除冗余,命名冲突、属性冲突和结构冲突,得到全局ER图。.2概念设计的具体任务1.选择中层数据流为切入点,通常选择实际系统中的子系统;2.设计分E-R图,即各子模块的E-R图;3.生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;4.消除冲突,生成全局E-R图。概念设计的阶段成果通过对数据流的抽象,得到了系统的ER图。E-R图是直观表示概念模型的有力工具,在图中有四个基本成分:1)矩形框:表示实体类型(考虑问题的对象);2)菱形框:表示联系类型(实体间的联系);3)椭圆形框:表示实体类型和联系类型的属性;4)直线:联系类型与涉及的实体类型之间以直线连接,并在直线部标上联系的种类(1:1,1:n,m:n)。具体图示如下:通过分析,学生和课程之间存在多对多的关系。具体表现为一个学生选多门课,一门课被多个学生修,其联系的属性为学生的某门课的出勤次数。其实体联系模型如下图所示:-1-1学生-课程ER图-2学生-教室ER图-2学生-教室ER图单位与教室之间关系描述为一个单位可借多个教室,一个教室可被多个单位借用。因此两者之间为多对多的关系,其联系的属性有借用时间,借用原因等。-4-4单位-教室ER图维修员与教室之间也为多对多关系,两者之间联系为维修员维修教室的相关属性,例如损坏设备名,修复时间,更换部件名。-4维修员-教室ER图-4维修员-教室ER图-5教室-教师-课程ER图-5教室-教师-课程ER图得到局部ER图后,经过合并,消除冗余和命名冲突,结构冲突和属性冲突,得到的全局ER图如下所示:-6系统全局ER图-6系统全局ER图引言逻辑结构设计就是把独立于任何一种数据模型的信息结构转化为与选用DBMS所支持的数据模型的过程。具体来说就是设计优化的,不存在不合理函数依赖的关系模式,以及完成子模式和存储过程的设计。逻辑结构设计阶段的目标和任务目标:根据概念设计的ER图,转化为优化的关系模式。任务:将ER图转化为关系模式,并利用范式理论对模式进行优化,设计数据处理的,功能模块图,用户子模式与存储过程和触发器,完成事务处理的功能。数据组织.1将E-R图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:

一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同码的关系模式可合并。由ER图可以转化出以下的关系模式:(1)学生(SNo,Sname,Sex,BirthYear,Pname,ClassNo,AttendSum,Photo,Dept)(2)课程信息(CNo,Cname,Time,WeekNo,Weekday,SectionNo,Pname,ClassNo,StuNum)(3)教师信息(TNo,Tname,Dept,Title,Sex,Tel)(4)单位信息(RentDeptname,Leadername,IDtype,ID,Tel)(5)维修员(RepairerNo,Repairername,Statement,Tel)(6)维修记录(RoomNo,RepairerNo,RepaireRecordNo,RepaireResult,RepairTime,Supplyname)(7)课程安排(CNo,TNo,RoomNo,WeekNo,Weekday,SectionNo,Pname,ClassNo,NewWeekday,(8)NewWeekNo,NewSectionNo,NewRoomNo,AdjLessonID)(9)学生出勤记录(SNo,CNo,AttendSum)(10)学生使用教室(SNo,RoomNo,DamageTime,DamageInfo,Devicename,LeaveTime,EnterTime)(11)教室信息(RoomNo,Roomname,Campusname,Buildname,Capacity,IsUusable,Type,RemainCapacity)(12)单位借用记录(RoomNo,Deptname,RentReason,WeekNo,Weekday,SectionNo)对模式进行检验和优化。先根据一事一地原则直觉判断,除了课程安排模式以及学生使用教室关系模式描述的信息不是同一个事物外,其他都符合。在根据范式理论分析,除了课程安排模式外,都不存在部分函数依赖和传递函数依赖。课程安排关系中包含了课程表信息和调课信息。操作上存在大量冗余。因此应当拆分成两个模式。课程安排(CNo,TNo,RoomNo,WeekNo,Weekday,SectionNo,Pname,ClassNo)调课记录(CNo,Tno,RoomNo,WeekNo,Weekday,SectionNo,NewWeekday,NewWeekNo,NewSectionNo,NewRoomNo,AdjLessonID)将学生使用教室关系模式分解得到两个关系模式:设备损坏报告(SNo,RoomNo,DamageTime,DamageInfo,Devicename)学生进出教室表(SNo,RoomNo,EnterTime,LeaveTime)经过优化,得到的数据库关系模式由十三张二维表组成,具体模式说明见附录一。数据处理根据需求分析,得到本系统主要由四个模块组成,分别为空教室查询,教师调课管理,教室借用管理和设备维护管理。空教室查询中包含空闲教室和教室空余座位的查询以及学生上课出勤的查询统计;调课管理子系统主要包含教室调课管理与课表查询;教室借用子系统主要完成教室借用管理和记录的查询功能;设备管理子系统主要有设备损坏报告记录查询和设备维护记录查询。-1系统功能模块图因此系统功能模块图如-1所示:-1系统功能模块图表-1用户子模式设计视图编号视图名称数据项描述备注V1V_AttendenceSNo,Sname,Cname,Attendsum用于查看学生的出勤次数V2EMPTYCLASSROOMRooname,Campusname,Buildname,IsUsable,Type,RemainCapacity用于空教室查询V3KECHENGBIAO上课时间,地点,教师,班级等用于课表查询V4MENDRECORDSRepaireRecordNo,Repairername,Roomname,Devicename,Supplyname,RepaireTime用于维修记录查询V5RentRecordsRoomname,RentDeptname,Leadername,Tel,RentReason,WeekNo,Weekday,SectionNo用于查询教室借用记录等物理设计的目标物理设计阶段的目标是根据SQLServer2000具体的功能,设计优化的物理数据库结构,使得在数据库上运行的各种事务响应时间最小,存储空间利用率高,事务吞吐量大。物理设计的任务物理设计阶段为逻辑数据模型选取得一个最合适应有环境的物理结构的过程,也就是数据库的物理设计。数据库的物理设计通常分为两个步骤:确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;对物理结构进行评价,评价的重点是时间和空间效率。索引的建立1.建立唯一性索引在课程安排表上建立课程号的唯一索引,以加快查询速度。CREATEUNIQUEINDEXIndex_CourseONCURRICULUM(CNoASC)在教室信息表上建立教室状态的索引CREATEINDEXIndex_RoomStatementONCLASSROOM(RemainCapacityASC)数据库实施阶段的目标和任务数据库的实施阶段就是设计人员用RDBMS提供的数据定义语句和其他的实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。此阶段包括两项重要的工作,一是数据的载入,另一项是应用程序的编码和调试。建立基本表与视图、建立触发器和存储过程、数据入库根据具体的系统功能,对数据库的部分基本表,建立了插入、删除、更新、查询存储过程,详情见附录4。数据入库通过两种途径:一是EXCEL表格导入信息,二是存储过程录入信息。实施结果建立基本表与视图的SQL语句及结果见附件2。测试方法通过对基本表和视图进行查询、插入、删除和更新,然后特意输入错误数据,以检验基本表完整性约束的功能,在操作过程中可以使用存储过程进行的,尽量使用存储过程,查看用触发器保证事务对表的级联操作的效果。然后在查询分析器里对表或视图的操作结果进行审核,看是否正确。测试内容针对系统的几大功能模块,涉及的待测试的内容主要有:1.测试教室空教室查询结果是否正确。2.测试对学生出勤次数统计查询是否正确。4.测试设备报损和维护时的处理是否符合系统要求。测试结果见附录3在本次实习中,我通过实际设计数据库的过程训练,掌握了数据库设计的步骤与方法。加深了对数据库设计每一步骤的理解,例如对每一个步骤的目的、任务和所要得到的技术文档。在训练过程中,我感受到了需求分析的重要性。整个过程中,较多的时间投入到了需求分析阶段,通过深入分析业务流程和用户需求,明确了系统处理的信息内容,即数据字典的内容。同时对系统的功能也有了大致的了解。在接下来的概念设计、逻辑结构设计和物理设计阶段,我更是加深了对每一阶段特点的理解,并且按照每一阶段的任务,设计了ER图,数据库模式和用户子模式,以及存储过程和触发器,来完成事务逻辑。通过这次综合训练,我加深了对数据库理论的理解,熟练了对数据库的各种操作,尤其是存储过程和触发器的使用。与此同时,通过课程论文的撰写及排版,熟悉了科技论文的书写格式和排版要求。在标准化训练的过程中,强化了我对数据库设计的理解。在实习中,我发现自己理论知识还并不是很扎实,这就要求在以后要加强数据库理论的学习,并且争取机会,多做类似的实战训练。本次实习旨在对数据库设计过程的培训和熟悉,进而养成数据库设计的良好方法。由于时间有限,并且对真正的业务流程不是十分熟悉,因此难免出现偏差,而只是对具体业务的简单模拟。因此存在的问题是与实际的业务处理不太符合,功能不太完善。在逻辑设计阶段,对课程表信息在数据库中的存储方式不太清楚。因此在以后研究中应该更加详细地熟悉具体业务,进而对系统进行完善和补充。致谢在为期两周的实习过程中,自始至终受到了孙健敏老师、蔚继承老师、陈勇老师和杨晓辉老师的支持和帮助,再次表示衷心的感谢!同时,在我遇到问题彷徨沮丧时,也受到了同学们的支持和鼓励,再次真诚地向他们致谢!参考文献[1]王珊萨师煊,数据库系统概论(第四版),北京:高教出版社,2000[2]郑人杰殷人昆陶永雷,实用软件工程(第二版),北京:清华大学出版社,1997[3]王珊,数据仓库技术与联机分析处理,北京:科学出版社,1998[4]苗雪兰刘瑞新宋会群,《数据库技术及应用》机械工业出版社,2005

附录1数据库模式定义的详细说明附表1-1学生信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述SNoChar(8)是否Notnull学号SnameChar(14)否否Notnull学生姓名SexChar(3)男or女否否Notnull学生性别BirthYearint1970-2000否否出生年PnameChar(24)否否Notnull专业名ClassNoChar(5)否否Notnull班级号AttendSumint0-100否否出勤次数PhotoImage否否相片DeptChar(20)否否Notnull所在学院附表1-2课程信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述CnoChar(6)是否Notnull课程号CnameChar(20)否否Notnull课程名Timesmallint1-200否否学时WeekNoChar(10)否否Notnull周次WeekdayChar(10)否否Notnull星期SectionNo,Char(10)否否Notnull节次PnameChar(20)否否专业ClassNoChar(5)否否班级StuNumint1-300否否应到人数附表1-3教室信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述RoomNoChar(4)是否Notnull教室号RoomnameChar(6)是否教室名CampusnameChar(10)否否校区名BuildnameChar(10)否否教学楼名称CapacityInt20-500否否容量IsUusableChar(8)否否是否可用TypeChar(10)否否类型RemainCapacityint否否不大于Capacity剩余容量附表1-4教师信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述TnoChar(6)是否Notnull教师号TnameChar(14)是否Notnull教室名DeptChar(20)否否学院TitleChar(8)否否职称Sexchar(30)男or女否否性别TelChar(12)否否联系方式附表1-5单位信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述RentDeptnameChar(20)是否Notnull借用单位名LeadernameChar(14)否否Notnull负责人姓名IDtypeChar(6)否否Notnull证件类型IDChar(20)否否Notnull证件号TelChar(12)否否Notnull附表1-6维修员信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述RepairerNoChar(6)是否Notnull维修工编号RepairernameChar(14)否否Notnull维修工姓名StatementChar(6)否否状态TelChar(12)否否联系方式附表1-7学生出勤信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述SNoChar(8)是是学号CNoChar(6)是是课程号AttendSumsmallint大于等于0否否出勤次数附表1-8设备损坏报告表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述SNoChar(8)是参照学生标的SNoNotnull学号RoomNoChar(4)是参照教室标的RoomNoNotnull教室号DamageTimesmalldatetime是否损坏时间DamageInfoChar(50)否否损坏信息DevicenameChar(20)否否Notnull损坏设备名附表1-9维修记录信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述RepairerNoChar(6)是参照维修工的RepairerNoNotnull维修工号RoomNoChar(4)是参照教室标的RoomNoNotnull教室号RepaireRecordNoChar(6)否否Unique维修记录编号Devicenamechar(10)否否损坏设备名RepaireResultchar(6)否否维修结果Supplynamechar(10)否否更换部件名RepaireTimesmalldatetime否否维修时间附表1-10调课记录信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述CNochar(6)是参照课程信息的CNoNotnull课程RoomNoChar(4)是参照教室的RoomNoNotnull教室号TnoChar(6)是参照教师信息的TnoNotnull教师号WeekNoChar(10)是否Notnull周次WeekdayChar(10)是否Notnull星期SectionNoChar(10)是否Notnull节次PnameChar(20)否否专业名ClassNoChar(6)否否班级号NewWeekNoChar(10)否否调整后周次NewWeekdayChar(10)否否调整后星期NewSectionNoChar(10)否否调整后节次NewRoomNoChar(4)否否调整后教室AdjLessonIDChar(6)否否unique调课单编号附表1-11课程安排信息表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述CNochar(6)是参照课程信息的CNoNotnull课程RoomNoChar(4)是参照教室的RoomNoNotnull教室号TnoChar(6)是参照教师信息的TnoNotnull教师号WeekNoChar(10)是否Notnull周次WeekdayChar(10)是否Notnull星期SectionNoChar(10)是否Notnull节次PnameChar(20)专业名ClassNoChar(6)班级号附表1-12学生进入教室记录表属性名数据类型取值范围是否为主属性是否为外键完整性属性描述SNoChar(8)是参照学生标的SNoNotnull学号RoomNoChar(4)是参照教室标的RoomNoNotnull教室号EnterTimesmalldatetime是NotnullLeaveTimesmalldatetime必须大于进入时间

附录2数据库基本表和视图的创建一、创建数据库CREATEDATABASE教室管理;二、创建基本表USE教室管理;/*创建学生信息基本表*/CREATETABLESTUDENT(SNo Char(8)PRIMARYKEY,Sname Char(14)NOTNULL,Sex Char(3)NOTNULL,BirthYearint,Pname Char(24)NOTNULL,ClassNo Char(5)NOTNULL,AttendSumint,photoImage,Dept Char(20),CHECK(Sex='男'ORSex='女'),)/*创建课程信息表*/CREATETABLECOURSE(Cno Char(6)PRIMARYKEY,Cname Char(20)Notnull,Time smallint,WeekNo Char(10)Notnull,Weekday Char(10)Notnull,SectionNoChar(10)Notnull,Pname Char(20),ClassNo Char(5),StuNum int,CHECK(timeBETWEEN1AND200),CHECK(StuNumBETWEEN1AND300),)/*创建教室信息基本表*/CREATETABLECLASSROOM(RoomNo Char(4)PRIMARYKEY,RoomnameChar(6),CampusnameChar(10),BuildnameChar(10),Capacityint,IsUusableChar(8),Type Char(10),RemainCapacityint,CHECK(CapacityBETWEEN20AND500),CHECK(RemainCapacity<=Capacity),)/*创建教师信息基本表*/CREATETABLETEACHER(Tno Char(6)PRIMARYKEY,Tname Char(14)NOTNULL,Dept Char(20),Title Char(8),Sex char(30),Tel Char(12),CHECK(SexIN('男','女')),)/*创建借用单位信息基本表*/CREATETABLEDepartment(RentDeptnameChar(20)PRIMARYKEY,LeadernameChar(14)NOTNULL,IDtype Char(6)NOTNULL,ID Char(20)NOTNULL,Tel Char(12)NOTNULL,)/*创建维修工信息基本表*/CREATETABLERepairer(RepairerNoChar(6)PRIMARYKEY,RepairernameChar(14)NOTNULL,StatementChar(6),Tel Char(12),)/*创建学生出勤信息表*/CREATETABLEATTENDENCE(SNo Char(8),CNo Char(6),AttendSumsmallint,PRIMARYKEY(SNo,CNo),FOREIGNKEY(SNo)REFERENCESSTUDENT(SNo),FOREIGNKEY(CNo)REFERENCESCOURSE(CNo),CHECK(AttendSum>=0),)/*创建设备损坏报告基本表*/CREATETABLEDAMAGEREPORT(SNo Char(8),RoomNo Char(4),DamageTimesmalldatetime,DamageInfoChar(50),DevicenameChar(20),PRIMARYKEY(SNo,RoomNo),FOREIGNKEY(SNo)REFERENCESSTUDENT(SNo),FOREIGNKEY(RoomNo)REFERENCESCLASSROOM(RoomNo),)/*创建维修记录基本表*/CREATETABLEMENDRECORD(RepairerNo Char(6),RoomNo Char(4)NOTNULL,RepaireRecordNo Char(6)UNIQUE,Devicename char(10),RepaireResult char(6),Supplyname char(10),RepaireTime smalldatetime,FOREIGNKEY(RoomNo)REFERENCESCLASSROOM(RoomNo),FOREIGNKEY(RepairerNo)REFERENCESRepairer(RepairerNo),)/*创建课程安排基本表*/CREATETABLECURRICULUM(CNo Char(6),RoomNo Char(4),Tno Char(6),WeekNo Char(10),Weekday Char(10),SectionNoChar(10),Pname Char(20),ClassNo Char(6),PRIMARYKEY(CNo,RoomNo,TNo,WeekNo,Weekday,SectionNo),FOREIGNKEY(RoomNo)REFERENCESCLASSROOM(RoomNo),FOREIGNKEY(CNo)REFERENCESCOURSE(CNo),FOREIGNKEY(TNo)REFERENCESTEACHER(TNo),)/*创建调课记录基本表*/CREATETABLEADJUSTRECORD(CNo Char(6),RoomNo Char(4),Tno Char(6),WeekNo Char(10),Weekday Char(10),SectionNoChar(10),NewWeekNoChar(10),NewWeekdayChar(10),NewSectionNoChar(10),NewRoomNoChar(4),PRIMARYKEY(RoomNo,WeekNo,Weekday,SectionNo),FOREIGNKEY(RoomNo)REFERENCESCLASSROOM(RoomNo),FOREIGNKEY(CNo)REFERENCESCOURSE(CNo),FOREIGNKEY(TNo)REFERENCESTEACHER(TNo),)/*创建借用记录表*/CREATETABLERENTRECORD(RoomNoChar(4),DeptnameChar(20),RentReasonChar(50),WeekNoChar(10),WeekdayChar(10),SectionNoChar(10),PRIMARYKEY(RoomNo,Deptname),FOREIGNKEY(RoomNo)REFERENCESCLASSROOM(RoomNo),FOREIGNKEY(Deptname)REFERENCESDepartment(RentDeptname),)/*创建学生进出教室信息表*/CREATETABLEENTER_LEAVE(SNo Char(8),RoomNo Char(4),EnterTimesmalldatetime,LeaveTimesmalldatetime,PRIMARYKEY(SNo,RoomNo,EnterTime),FOREIGNKEY(SNo)REFERENCESSTUDENT(SNo),FOREIGNKEY(RoomNo)REFERENCESCLASSROOM(RoomNo),CHECK(lEAVETIME>ENTERTIME),)视图的建立/*创建学生出勤视图*/CREATEVIEWV_AttendenceASFROMSTUDENT,ATTENDENCE,COURSE/*建立查看空教室的视图*/CREATEVIEWEMPTYCLASSROOMASSELECTRoomname,Campusname,Buildname,IsUsable,Type,RemainCapacityFROMCLASSROOMWHEREIsusable='可用'/*创建课程表视图*/CREATEVIEWKECHENGBIAOASSELECTCURRICULUM.WeekNo,CURRICULUM.Weekday,CURRICULUM.SectionNo,COURSE.Cname,TEACHER.Tname,CLASSROOM.Roomname,Buildname,CampusnameFROMCOURSE,TEACHER,CURRICULUM,CLASSROOMWHERECOURSE.CNo=CURRICULUM.CNoANDTEACHER.TNo=CURRICULUM.TNo/*创建维修记录查询的视图*/CREATEVIEWMENDRECORDSASSELECTRepaireRecordNo,Repairername,Roomname,Devicename,Supplyname,RepaireTimeFromRepairer,MendRecord,CLASSROOMwhereRepairer.RepairerNo=MendRecord.RepairerNo/*创建教室借用记录的视图*/CREATEVIEWRentRecordsASSELECTRoomname,Department.RentDeptname,Leadername,Tel,RentReason,WeekNo,Weekday,SectionNoFROMRENTRECORD,Department,CLASSROOM

附录3存储过程、触发器的创建与数据库验证处理教室人数增加或减少/*创建教室人数增加时触发器*/DROPTRIGGERADDSTUDENTCREATETRIGGERADDSTUDENTONENTER_LEAVEAFTERINSERTASBEGINUPDATECLASSROOMSETRemainCapacity=RemainCapacity-1WHERERoomNoIN(SELECTRoomNoFROMINSERTED);ENDINSERTINTOENTER_LEAVEVALUES('09207035','0002','2009-12-30',)/*创建教室人数减少时触发器*/CREATETRIGGERPLUSSTUDENTONENTER_LEAVEAFTERDELETEASBEGINUPDATECLASSROOMSETRemainCapacity=RemainCapacity+1WHERERoomNoIN(SELECTRoomNoFROMDELETED)ENDDELETEFROMENTER_LEAVEWHERESNo='09207035'处理设备损坏时当教室损坏时,将教室的状态设置为不可用。CREATETRIGGERDAMAGEEVENTONDAMAGEREPORTAFTERINSERTASBEGINUPDATECLASSROOMSETIsUsable='损坏'WHERERoomNoIN(SELECTRoomNoFROMINSERTED)ENDCREATEPROCEDUREDamageInfoReport(@SNoCHAR(8),@RoomNoCHAR(4),@DamageTimeSMALLDATETIME,@damageI

温馨提示

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

评论

0/150

提交评论