2022年数据库实训宣贯 .pdf
《2022年数据库实训宣贯 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库实训宣贯 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 JIANGXI AGRICULTURAL UNIVERSITY 本 科 课 程 实 训题目:数据库排课系统课程设计学院:软件学院小组成员:曾凡蔡玉洁学号: 20101509 20101508 专业:软件工程班级:软件 1002 班指导教师:黄欣职 称:教师二 0 一一年十二月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 2 目录目录 . 2引言 . 3一.需求分析 . 3二.数据库设计 . 41.概念结构设计 . 42.
2、所有表的汇总和触发器 . 83. 存储过程(实现排课的时间不冲突等) . 16三.实训小结 . 16 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 3 引言目前我院教务处的许多事务都采用机进行管理,如学生选课系统、成绩查询系统等,但在每学期中,各科教师在拿到教务部门下发的实验任务后, 就必须到计算中心进行排课登记,排课人员面对这么多的上机实验课程,如何高效而迅速地安排机房。一直以来排课人员都是使用一张手工排课表,查找到空余机
3、房后再将该课程的排课信息填入其中,最后录入电脑进行打印后张贴到值班室,以供值班人员查阅。这样不仅工作繁琐,效率低下,而且只能安排上机的时间, 无法具体安排所用教室,增加了不少工作量,同时也不便于课程和机房的查询以及信息的分类汇总与统计。为解决这一系列的问题,我们设计和开发了排课系统。一.需求分析(1)部门分类:学校包括多个院,如软件院,经贸院、工学院、外语院、计信院,生工院等,而每个院又分为许多专业,每个专业又分为不同的班级;(2)课程分类:大中小班上课、计算机课、实训课(3)目标:自动排课系统将最复杂的排课部分交给计算机来完成,避免了手工排课容易产生教师时间安排冲突(即一位老师在名师资料总结
4、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 4 同一时间只能给一个班上课)和教室时间安排冲突 (即一个教室同一时间只能有一个班上课)的缺点。用户只要将班级、课程和教室的各项资料输入, 确定合班上课的班级,剩下的排课部分则完全交给计算机。 如果资料输入有错误, 可以对各项资料进行添加、删除和修改,各项资料有所变动之后,则可以重新确定合班上课的班级,清除排课之后再重新进行自动排课。(3)故障处理要求: 当用户输入不合理时输出明确的错误提示
5、,比如输入为空,数据格式不正确等。(4)系统运行环境具有输入设备,安装了SQL SERVER 7.0或者 SQL SERVER 2000 数据库以及浏览器的WIN 98 或者 WIN 2000 环境。二.数据库设计1.概念结构设计1.实体型集:学校 .,学院、班级、学生、教师、课程、教学楼、教室2.实体型之间的联系:学校和学院:一个学院只能在一个学校,一个学校可由多个学院组成;存在“组成”的关系: 1:N 学院和班级:一个班级只能在一个学院,一个学院可由多个班级组成;存在“组成”的关系: 1:N 学院和学生:一个学生只能在一个学院,一个学院可由多个学生组成;存在“组成”的关系: 1:N 班级和
6、学生:一个学生只能属于一个班级,一个班级拥有多个学生;存在“属于”的关系: 1:N 学院和教师:一个教师只属于一个学院,一个学院拥有多个教师;存在“属于”的关系: 1:N 学生和课程:一个学生要学习多门课程,一门课程可以有多个学生学习;存在“学习”的关系: N:M 班级和课程:一个班级要学习多门课程,一门课程可以有多个班级学习;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 5 存在“学习”的关系: N:M 教师和班级:一个教
7、师可以教多个班级,一个班级可以有多个任课教师;存在“任课”的关系: N:M 教师和课程:一个教师可教授多门课程,一门课程可由多个老师教;存在“授课”的关系: N:M 教学楼和教室:一个教室只能在一个教学楼,一个教学楼拥有多个教室;存在“拥有”的关系: 1:N 3.属性集:(1)实体型属性:学校.:学校代码,学校名称学院:学院代码,学院名称班级:班级码,班级名,年级,人数学生:学号 ,姓名,教师:教工号,姓名课程:课程号,课程名,学分,周学时,起止时间,任课老师教学楼:楼号,名称教室:教室编号,教室类型4.画出 ER 图,如下所示:(1)第一 .画出各个存在联系的实体型的ER 图:N 1 组成学
8、院院代码院名学校学 校 代学 校 名1 学院院代院名组成班级班 级码班 级名年级人数N N 1 组成学生学号姓名学院学院代码学院名称学院院代码院名属于教师教工号姓名1 N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 6 班级班级码班 级名年级人数属于学生学号姓名1 N 学生学号姓名学习课程课程名起 止 时周学时课程号任 课 老M N学班级课程N M 课 程起 止 时周学任 课 老班 级码班 级名年级学习课 程人数学1 教师
9、教工姓名任课班级班 级号班 级名年级人数N 教师教工号姓名任课课程课程名起 止 时周学时课程号任 课 老M N学教学楼楼号名称拥有教室教 室 编号教室类型1 N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 7 (2)总的 ER 图如下所拥有N 教学楼拥有N 学院教师属于1 N 1 N M N 组成任课M M N M N N 1 班级学生属学习开设教室课程授N 1 学习M N 组成1 M 学校1 组成1 M 名师资料总结 -
10、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 8 2.所有表的汇总和触发器(1)University 列名数据类型(精度范围)空/非空约束条件说明UniversityID Char(4) 非空Primary key 学校代码UniversityName Varchar(16)非空学校名称Create table University ( UniversityID Char(4) Primary key not null , -将学校代码设置
11、为主表名功能说明XUEYUAN 存储每个学院的信息CLASS 存储班级的基本信息STUDENT 存储学生的基本信息TEACHER 存储教师的基本信息COURSE 存储各个课程的基本信息TeacherBurring 存储教学楼的基本信息ClassRoom 存储教室的基本信息AssumeCourse存储教师在班级的任课信息TeachingCourse存储教师教授课程的信息StudyCourse存储班级学习课程的信息RoomandCourse存储教室与课程关系的信息ClassCourse CRoom存储班级、课程、教室之间关系的信息University存储学校的信息名师资料总结 - - -精品资料欢
12、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - 9 键,并不允许为空UniversityName Varchar(16)not null , -将学校名称设置不允许为空) Create trigger University_xuexiao On University For insert As begin Declare UniversityID Char(4) , UniversityName Varchar(16)Set UniversityID =(se
13、lcect UniversityID from inserted) Set UniversityName=(select UniversityName from insered) If( UniversityID=null and UniversityName=null) Begin Rollback End Else Insert into University values( UniversityID , UniversityName ) End (2) XUEYUAN列名数据类型(精度范围)空 / 非空约束条件说明YUANIDChar(4) 非空Primary key 院代码Univer
14、sitID Char(4) 非空Foreign key 学校代码YUANName Varchar(20) 非空院名Create table XUEYUAN(YUANID Char(4) Primary key not null , -将院代码设置为主键,并不允许为空UniversitID Char(4) not null , -将学校代码设置为不允许为空YUANName Varchar(20) not null , -将院名设置为不允许为空Foreign key UniversitID references University(UniversitID) -将学校代码设置为外键,被参照 表是
15、University,被参照列是 UniversitID)Create trigger XUEYUAN_xueyuan On XUEYUAN For insert As begin Declare YUANIDChar(4), UniversitIDChar(4),YUANName Varchar(20), i intSet YUANID=(select YUANID from inserted) Set UniversitID=(select UniversitID from inserted) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
16、 - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 10 Set YUANName=(select YUANName from inserted) Set i=(select count(YUANID) from inserted If (i1) Begin Rollback End If(YUANID =null and UniversitID =null and YUANName=null) Begin Rollback End Else Insert into XUEYUANvalues(YUANID , Univer
17、sitID, YUANName) End (3) CLASS列名数 据 类 型 ( 精 度 范围)空 /非空约束条件说明ClassIDChar(4) 非空Primary key 能被唯一识别的班级号Year Char(4) 非空年级YUANID Char(4) 非空Foreign key 院代码ClassName Varchr(20) 非空班级名Total Char(3) 非空班级人数Create table CLASS(ClassID Char(4) Primary key not null , -将班级号 设置为主键,并不允许为空Year Char(4) not null , -将年级设置
18、为不允许为空YUANID Varchar(4) not null , -将院代码设置为不允许为空ClassName Varchr(20) not null , -将班级名设置为不允许为空Total Char(3) not null , -将班级人数设置为不允许为空Foreign key YUANID references XUEYUAN(YUANID) -将学院代码设置为外键,被参照 表是XUEYUAN,被参照列是YUANID)Create trigger CLASS_banji On CLASS For insert As begin Declare ClassID Char(4), Yea
19、rChar(4),YUANIDVarchar(4), ClassName Varchr(20), Total Char(3) ,i intSet YUANID=(select YUANID from inserted) Set ClassID =(select ClassID from inserted) Set Year =(select Year from inserted) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - -
20、- 11 Set ClassName =(select ClassName from inserted) Set Total =(select Total from inserted) Set i=(select count(ClassID) from inserted If (i1) Begin Rollback End If(YUANID =null and ClassID =null and Year =null and ClassName =null and Total =null) Begin Rollback End Else Insert into CLASSvalues(YUA
21、NID , ClassID, Year, ClassName, Total) End (4) STUDENT列名数据类型(精度范围)空 / 非空约束条件说明StudentID Char(10) 非空Primary key 学生学号StudentName varChar(8) 非空学生姓名ClassID Char(4) 非空Foreignkey 能被唯一识别的班级号Create table STUDENT(StudentID Char(10) Primary key not null , -将学生学号设置为主键,并不允许为空StudentName varChar(8) not null , -将
22、学生姓名设置为不允许为空ClassID Char(4) not null , -将班级号 设置为不允许为空Foreign key ClassID references Class (ClassID) -将班级号 设置为外键,被参照表是 Class,被参照列是 ClassID)Create trigger STUDENT _xuesheng On STUDENT For insert As begin Declare StudentID Char(4), StudentName Char(4),ClassIDVarchar(20), i intSet StudentID =(select Stu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据库实训宣贯 2022 数据库 实训宣贯
限制150内