文档介绍:该【教务管理系统 数据库实习 】是由【青山代下】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【教务管理系统 数据库实习 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..数据库系统实验报告组长:周珊组员:李邓鹏、孙辉、张希磊、魏佳、程威、黄鹏飞班号:材实1001指导教师:庞盛永各成员任务分配周珊:数据库的总体结构设计、及相关查询功能代码张希磊:数据库表的设计,实****报告的填写(需求分析、概念设计等)黄鹏飞:数据库表的设计,数据库的备份等后续工作李邓鹏:实****报告的填写、流程图的制作孙辉:E-R图的绘制,部分查询代码的书写魏佳:逻辑结构的设计,协助报告书写程威:查阅资料、报告总结实****题目:HUB系统一、需求分析1实体和关系:教务管理系统涉及的实体有:1、教师(教师号、姓名、职称、工资)2、学生(学号、姓名、性别、出生年月、年龄、家庭情况)3、班级(班号、班长)4、学院(学院名、学院主任)5、课程(课程号、课程名、学分)这些实体之间的相互联系如下:每个学生都属于一个班,每个班都属于一个学院,每个教师也都属于一个学院。2、一名教师可以教多门课,一门课可以有几位老师,但不同老师讲的同一门课其课序号是不同的。3、一名同学可以选多门课,一门课可被若干同学选中。4、一名同学选中课程有相应成绩。1:..5、一个学院可以开很多门课,一门课只能由一个学院开。2实现功能:教学系统主要提供数据维护、选课和信息查询。学校为方便教务管理,需开发一个教务管理系统。为便于学生,老师,教务管理人员信息查询,注册以及信息修改,学校把学生的信息,包括姓名、性别、年龄,成绩等信息输入教务管理系统的数据库,然后在管理终端可以对数据进行查询和修改操作。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求系统界面要简单明了,易于操作,程序利于维护3、完整性要求:1、各种信息记录的完整性,关键信息记录内容不能为空;2、各种数据间相互的联系的正确性;3、相同的数据在不同记录中的一致性。二、概念设计1、概念模型(E-R图):2:..:..流程图查询课程信息课程信息查询查询课程信息表课课程程选课信息选课信息成绩信息成绩信息信登记信选课息成绩息选已成学生选课教师绩课信表信息学息学生信生息选课信息查询选课信息选课信息查询选课信息信息系修改学学生信息学生信息查询学信系息信生信息学生信息表生信息息教教师师信信息查询教教师信息教师信息修改教息班班级级师信息教师信息表师信息信信息息班级信息班级信息表班级信息查询查询系信息系信息表系信息总数据流图三、逻辑结构设计E-R图向关系模型的转换(关系的码用下横线表出)1、教师(教师号、姓名、职称、工资)此为“教师”实体对应的关系模式。存在的函数依赖为,且不存在多值依赖,所以满足3NF。2、学生(学号、姓名、性别、出生年月、年龄、家庭情况)此为“学生”实体对应的关系模式。其中1:n联系“属于”与此关系模式合并,不存在多值依赖,所以满足3NF。3、学院(学院名、学院主任、学院号)此为“系”实体对应的关系模式。不存在多值依赖,所以满足3NF。4、课程(课程号、课程名、学分、教师、上课时间、上课地点)此为“课程”实体对应的关系模式。其中1:n联系“讲解”与此关系模式合并,不存在多值依赖,所以满足3NF。5、班级(班号、班长、学院)4:..此为“班级”实体对应的关系模式。分解后的关系模式满足3NF。设计用户子模式为了方便程序查询,建立了如下用户表:1、学生信息表(学号,姓名,性别,出生年月,班号,政治面貌)2、教师信息表(工作证号,教师姓名,职称,电话,院系)3、课程表(课程号,课程名,课程的学分数,上课时间,教师编号)4、学院表(学院号,学院名,系主任)5、班级信息表(班序号,班级最低学分,学号,学院号)5:..5、系统实施编写代码(SQL语句):建立教师表:CREATETABLETeacher(tnoCHAR(10)PRIMARYKEY,tnameCHAR(20),dept_noCHAR(10),FOREIGNKEY(Dno)REFERENCESdepartment(dept_no));建立学生表:CREATETABLEStudent(SnoCHAR(10)PRIMARYKEY,snameCHAR(10)UNIQUE,ssexCHAR(2),sageCHAR(10),sdeptCHAR(10),class_noCHAR(10),FOREIGNKEY(class_no)REFERENCESclass(class_no)/*表级完整性约束条件,Class是外码*/);建立系表:CREATETABLEdepartment(dept_noCHAR(10)PRIMARYKEY,dept_nameCHAR(10),dept_headCHAR(10));建立课程表:CREATETABLEcourse(course_noCHAR(10)PRIMARYKEY,course_nameCHAR(10),credit,上课时间,上课地点6:..tnoCHAR(10),FOREIGNKEY(Tno)REFERENCESTeacher(Tno)/*表级完整性约束条件,Tno是外码*/);建立班级表:CREATETABLEClass(class_nochar(10)primarykey,Monitorchar(10),Dept_nochar(10)referencesdept(dept_no),);建立选课表Createtablesc(snochar(10)referencesstudent(sno),Course_nochar(10)referencescourse(course_no),Gradeint(4),Primarykey(sno,course_no));)查询学号是2008001的姓名、所修课程名及成绩selectsname,,gradefromStudent,SC,==='2008001'2)'课名',上课时间,上课地点fromcourse,student,==='2010002'7:..3)查询学号为2009002的同学所修课程的相关信息(成绩、学分)selectcourse_name'课名',grade'成绩',credit'学分'fromstudent,course,==='2009001'4),sum(credit*grade)/sum(credit)'加权成绩'fromstudent,sc,==:这次我们实验的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实验中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。我们实训的另一个内容是数据库的约束、视图、查询。从中我们了解到查询语句的基本结构,和简单SELECT语句的使用,多表连接查询。而在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的大部分操作,使用视图一样可以完成。我们还学****了,SQL管理、数据的导入、导出、备份和还原。8