数据库实训Word下载.docx
- 文档编号:18905172
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:21
- 大小:199.16KB
数据库实训Word下载.docx
《数据库实训Word下载.docx》由会员分享,可在线阅读,更多相关《数据库实训Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
一直以来排课人员都是使用一张手工排课表,查找到空余机房后再将该课程的排课信息填入其中,最后录入电脑进行打印后张贴到值班室,以供值班人员查阅。
这样不仅工作繁琐,效率低下,而且只能安排上机的时间,无法具体安排所用教室,增加了不少工作量,同时也不便于课程和机房的查询以及信息的分类汇总与统计。
为解决这一系列的问题,我们设计和开发了排课系统。
一.需求分析
(1)部门分类:
学校包括多个院,如软件院,经贸院、工学院、外语院、计信院,生工院等,而每个院又分为许多专业,每个专业又分为不同的班级;
(2)课程分类:
大中小班上课、计算机课、实训课
(3)目标:
自动排课系统将最复杂的排课部分交给计算机来完成,避免了手工排课容易产生教师时间安排冲突(即一位老师在同一时间只能给一个班上课)和教室时间安排冲突(即一个教室同一时间只能有一个班上课)的缺点。
用户只要将班级、课程和教室的各项资料输入,确定合班上课的班级,剩下的排课部分则完全交给计算机。
如果资料输入有错误,可以对各项资料进行添加、删除和修改,各项资料有所变动之后,则可以重新确定合班上课的班级,清除排课之后再重新进行自动排课。
(3)故障处理要求:
当用户输入不合理时输出明确的错误提示,比如输入为空,数据格式不正确等。
(4)系统运行环境
具有输入设备,安装了SQLSERVER7.0或者SQLSERVER2000数据库以及浏览器的WIN98或者WIN2000环境。
二.数据库设计
1.概念结构设计
1.实体型集:
学校.,学院、班级、学生、教师、课程、教学楼、教室
2.实体型之间的联系:
学校和学院:
一个学院只能在一个学校,一个学校可由多个学院组成;
存在“组成”的关系:
1:
N
学院和班级:
一个班级只能在一个学院,一个学院可由多个班级组成;
学院和学生:
一个学生只能在一个学院,一个学院可由多个学生组成;
班级和学生:
一个学生只能属于一个班级,一个班级拥有多个学生;
存在“属于”的关系:
学院和教师:
一个教师只属于一个学院,一个学院拥有多个教师;
学生和课程:
一个学生要学习多门课程,一门课程可以有多个学生学习;
存在“学习”的关系:
N:
M
班级和课程:
一个班级要学习多门课程,一门课程可以有多个班级学习;
教师和班级:
一个教师可以教多个班级,一个班级可以有多个任课教师;
存在“任课”的关系:
教师和课程:
一个教师可教授多门课程,一门课程可由多个老师教;
存在“授课”的关系:
教学楼和教室:
一个教室只能在一个教学楼,一个教学楼拥有多个教室;
存在“拥有”的关系:
3.属性集:
(1)实体型属性:
学校.:
学校代码,学校名称
学院:
学院代码,学院名称
班级:
班级码,班级名,年级,人数
学生:
学号,姓名,
教师:
教工号,姓名
课程:
课程号,课程名,学分,周学时,起止时间,任课老师
教学楼:
楼号,名称
教室:
教室编号,教室类型
4.画出E—R图,如下所示:
(1)第一.画出各个存在联系的实体型的E—R图:
1
组成
学校
学习
(2)总的E—R图如下所
2.所有表的汇总和触发器
表名
功能说明
XUEYUAN
存储每个学院的信息
CLASS
存储班级的基本信息
STUDENT
存储学生的基本信息
TEACHER
存储教师的基本信息
COURSE
存储各个课程的基本信息
TeacherBurring
存储教学楼的基本信息
ClassRoom
存储教室的基本信息
AssumeCourse
存储教师在班级的任课信息
TeachingCourse
存储教师教授课程的信息
StudyCourse
存储班级学习课程的信息
RoomandCourse
存储教室与课程关系的信息
ClassCourseCRoom
存储班级、课程、教室之间关系的信息
University
存储学校的信息
(1)University
列名
数据类型(精度范围)
空/非空
约束条件
说明
UniversityID
Char(4)
非空
Primarykey
学校代码
UniversityName
Varchar(16)
学校名称
CreatetableUniversity
(UniversityIDChar(4)Primarykeynotnull,---将学校代码设置为主键,并不允许为空
UniversityNameVarchar(16)notnull,---将学校名称设置不允许为空
)
CreatetriggerUniversity_xuexiao
OnUniversity
Forinsert
Asbegin
Declare@UniversityIDChar(4),@UniversityNameVarchar(16)
Set@UniversityID=(selcectUniversityIDfrominserted)
Set@UniversityName=(selectUniversityNamefrominsered)
If(@UniversityID==nulland@UniversityName==null)
Begin
Rollback
End
Else
InsertintoUniversityvalues(@UniversityID,@UniversityName)
End
(2)XUEYUAN
YUANID
院代码
UniversitID
Foreignkey
YUANName
Varchar(20)
院名
CreatetableXUEYUAN
(YUANIDChar(4)Primarykeynotnull,---将院代码设置为主键,并不允许为空
UniversitIDChar(4)notnull,---将学校代码设置为不允许为空
YUANNameVarchar(20)notnull,---将院名设置为不允许为空
ForeignkeyUniversitIDreferencesUniversity(UniversitID)---将学校代码设置为外键,被参照表是University,被参照列是UniversitID
)
CreatetriggerXUEYUAN_xueyuan
OnXUEYUAN
Asbegin
Declare@YUANIDChar(4),@UniversitIDChar(4),@YUANNameVarchar(20),@iint
Set@YUANID=(selectYUANIDfrominserted)
Set@UniversitID=(selectUniversitIDfrominserted)
Set@YUANName=(selectYUANNamefrominserted)
Set@i=(selectcount(YUANID)frominserted
If(@i>
1)
If(@YUANID==nulland@UniversitID==nulland@YUANName==null)
InsertintoXUEYUANvalues(@YUANID,@UniversitID,@YUANName)
(3)CLASS
ClassID
能被唯一识别的班级号
Year
年级
ClassName
Varchr(20)
班级名
Total
Char(3)
班级人数
CreatetableCLASS
(ClassIDChar(4)Primarykeynotnull,---将班级号设置为主键,并不允许为空
YearChar(4)notnull,---将年级设置为不允许为空
YUANIDVarchar(4)notnull,---将院代码设置为不允许为空
ClassNameVarchr(20)notnull,---将班级名设置为不允许为空
TotalChar(3)notnull,---将班级人数设置为不允许为空
ForeignkeyYUANIDreferencesXUEYUAN(YUANID)---将学院代码设置为外键,被参照表是XUEYUAN,被参照列是YUANID
CreatetriggerCLASS_banji
OnCLASS
Declare@ClassIDChar(4),@YearChar(4),@YUANIDVarchar(4),@ClassNameVarchr(20),@TotalChar(3),@iint
Set@ClassID=(selectClassIDfrominserted)
Set@Year=(selectYearfrominserted)
Set@ClassName=(selectClassNamefrominserted)
Set@Total=(selectTotalfrominserted)
Set@i=(selectcount(ClassID)frominserted
If(@YUANID==nulland@ClassID==nulland@Year==nulland@ClassName==nulland@Total==null)
InsertintoCLASSvalues(@YUANID,@ClassID,@Year,@ClassName,@Total)
(4)STUDENT
StudentID
Char(10)
学生学号
StudentName
varChar(8)
学生姓名
ClassID
Foreignkey
CreatetableSTUDENT
(StudentIDChar(10)Primarykeynotnull,---将学生学号设置为主键,并不允许为空
StudentNamevarChar(8)notnull,---将学生姓名设置为不允许为空
ClassIDChar(4)notnull,---将班级号设置为不允许为空
ForeignkeyClassIDreferencesClass(ClassID)---将班级号设置为外键,被参照表是Class,被参照列是ClassID
CreatetriggerSTUDENT_xuesheng
OnSTUDENT
Declare@StudentIDChar(4),@StudentNameChar(4),@ClassIDVarchar(20),@iint
Set@StudentID=(selectStudentIDfrominserted)
Set@StudentName=(selectStudentNamefrominserted)
If(@StudentID==nulland@StudentName==nulland@ClassID==null)
InsertintoSTUDENTvalues(@StudentID,@StudentName,@ClassID)
(5)TEACHER
TeacherID
Char(5)
教工号
TeacherName
教师名称
CreatetableTEACHER
(TeacherIDChar(5)Primarykeynotnull,---将教工号设置为主键,并不允许为空
TeacherNamevarChar(8)notnull,---将教师姓名设置为不允许为空
YUANIDChar(4)notnull,---将院代码设置为不允许为空
ForeignkeyYUANIDreferencesXUEYUAN(YUANID)---将院代码设置为外键,被参照表是XUEYUAN,被参照列是YUANID
CreatetriggerTEACHER_teacher
OnTEACHER
Declare@TeacherIDChar(4),@TeacherNameChar(4),@YUANIDVarchar(20),@iint
Set@TeacherID=(selectTeacherIDfrominserted)
Set@TeacherName=(selectTeacherNamefrominserted)
Set@YUANID=(selectYUANIDfrominserted)
If(@TeacherID==nulland@TeacherName==nulland@YUANID==null)
InsertintoTeachervalues(@TeacherID,@TeacherName,@YUANID)
(6)COURSE
CourseID
课程号
CourseName
课程名称
Credit
学分
WeekPeriod
Char(6)
周学时
StartandEnd
起止时间
TeacherID
任课老师
CreatetableCOURSE
(CourseIDChar(4)Primarykeynotnull,---将课程号设置为主键,并不允许为空
CourseNameChar(20)notnull,---将课程名称设置为不允许为空
CreditChar(3)notnull,---将学分设置为不允许为空
WeekPeriodchar(6)notnull,---将周学时设置为不允许为空
StartandEndchar(5)notnull,---将起止时间设置为不允许为空
TeacherIDChar(4)notnull,---将教工号设置为不允许为空
ForeignkeyTeacherIDreferencesTEACHER(TeacherID)---将教工号设置为外键,被参照表是TEACHER,被参照列是TeacherID
(7)TeacherBurring
TeachingBuildingName
教学楼名
CreatetableTeacherBurring
(TeachingBuildingNameVarchar(20)notnull,---将教学楼名设置为不允许为空
UniversityIDChar(4)notnull,---将学校代码设置为不允许为空
ForeignkeyUniversityIDreferencesUniversity(UniversityID)---将院代码设置为外键,被参照表是University,被参照列是UniversityID
(8)ClassRoom
ClassroomID
Varchar(10)
教室编号
TeachingBuildingName
Style
类型
CreatetableClassRoom
(ClassroomIDVarchar(10)Primarykeynotnull,---将教室编号设置为主键,并不允许为空
TeachingBuildingNamevarChar(20)notnull,---将教学楼名设置为不允许为空
StyleVarchar(20)notnull,---将类型设置为不允许为空
(9)AssumeCourse
班级号
CreatetableAssumeCourse
(ClassIDVarchar(10)notnull,---将班级号设置为主键不允许为空
ForeignkeyTeacherIDreferencesTeacher(TeacherID)---将院代码设置为外键,被参照表是Teacher,被参照列是TeacherID
(10)TeachingCourse
TeacherID
StudyYear
Char(9)
学年
Studyterm
Char
(2)
学期
CreatetableTeachingCourse
(TeacherIDchar(4)notnull,---将教工号设置为不允许为空
CourseIDChar(4)notnull,---将课程号设置为不允许为空
StudyYearChar(9)notnull,---将学年设置为不允许为空
StudytermChar
(2)notnull,---将学期设置为不允许为空
ForeignkeyTeacherIDreferencesTeacher(TeacherID)---将院代码设置为外键,被参照表是Teacher,被参照列是TeacherID
ForeignkeyCourseIDreferencesCourse(CourseID)---将院代码设置为外键,被参照表是Course,被参照列是CourseID
(11)StudyCourse
char(4)
(ClassIDchar(4)notnull,---将班级号设置为不允许为空
StudyYearChar(9)notnul
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库