数据库课程设计报告课程设计题目:学分管理系统学生姓名尹烁恒专业软件工程(嵌入式)班级1321802学号201320180212指导教师邓薇老师描述:设计一个学分管理系统假设每位学生必须完成基础课50学分,专业课50学分,选修课24学分,人文类课程8学分和实验性课程20学分才能毕业。实现下列功能:1.录入某位学生的学分信息;2.给定学号,显示某位学生的学分完成情况;3.给定班号,显示该班所有学生的学分完成情况;4.给定学号,修改该学生的学分信息;5.按照某类课程的学分高低进行排序;6.给定学号,对该学生能否毕业进行确定。一.自己的分析(需求分析):1.功能1需要用到触发器和存储过程,触发器的目的是为了在录入一个学号的学分,这个学号必须存在在student表里,否则不允许录入,而存储过程就像是一个功能的集成,其实录入可以直接录入,不一定需要建立存储过程。2.功能2、3、4、6都是利用存储过程,用带参数的存储过程进行实现,@S_NO是where中的判断条件;对于毕业的条件就是各个临时表中的total同时大于等于所需学分就可以毕业。3.功能5,因为课程类包括很多,可以建立视图来查看一个课程类,如基础类的信息,但是不能排序,orderby不能用于视图,所以建立临时表来查询显示某一课程类的排序。二.概念设计E-R模型关系模式学生(学号,姓名,班级)课程(课程号,课程名,课程类型)选课(学号,课程号,学分)三.逻辑设计阶段下面就是3张基本表学生选课课程学分学号课程类型课程号姓名班级课程名Student表Course表Grade表四.数据库实施阶段1.创建数据库createdatabases12.创建数据表createtablestudent(s_nochar(6)primarykey,snamechar(6)notNull,class_nochar(10))createtablecourse(course_nochar(10)primarykey,course_namechar(10)NOTNULL,coursetypechar(10))createtablegrade(s_nochar(6),course_nochar(10),scoreint,constraintsc1primarykey(s_no,course_no))3.录入数据--对于student的数据填充insertintostudentvalues('01','彭勇','class01')insertintostudentvalues('02','罗鑫','class01')insertintostudentvalues('03','郭利新','class02')insertintostudentvalues('04','余丽阳','class02')insertintostudentvalues('05','汪志强','class03')insertintostudentvalues('06','简小慧','class03')--对于course的数据填充insertintocoursevalues('course10','语文','基础课')insertintocoursevalues('course11','数学','基础课')insertintocoursevalues('course12','体育','选修课')insertintocoursevalues('course13','形式与政策','选修课')insertintocoursevalues('course14','人机交互','专业课')insertintocoursevalues('course15','数据结构','专业课')insertintocoursevalues('course16','音乐','人文课')insertintocoursevalues('course17','美术','人文课')insertintocoursevalues('course18','关系数据库','实验课')insertintocoursevalues('course19','计算机原理','实验课')--对于学分的填充insertintogradevalues('01','course10',27)insertintogradevalues('01','course11',28)insertintogradevalues('01','course12',13)insertintogradevalues('01','course13',14)insertintogradevalues('01','course14',22)insertintogradevalues('01','course15',29)insertintogradevalues('01','course16',6)insertintogradevalues('01','course17',7)insertintogradevalues('01','course18',11)insertintogradevalues('01','course19',13)--学号的各科学分insertintogradevalues('02','course10',26)insertintogradevalues('02','course11',29)insertintogradevalues('02','course12',16)insertintogradevalues('02','course13',11)insertintogradevalues('02','course14',18)insertintogradevalues('02','course15',19)insertintogradevalues('02','course16',5)insertintogradevalues('02','course17',2)insertintogradevalues('02','course18',17)insertintogradevalues('02','course19',19)--学号的各科学分insertintogradevalues('03','course10',21)insertintogradevalues('03','course11',24)insertintogradevalues('03','course12',16)insertintogradevalues('03','course13',10)insertintogradevalues('03','course14',21)insertintogradevalues('03','course15',17)insertintogradevalues('03','course16',4)insertintogradevalues('03','course17',8)insertintogradevalues('03','course18',14)insertintogradevalues('03','course19',19)--学号的各科学分insertintogradevalues('04','course10',30)insertintogradevalues('04','course11',31)insertintogradevalues('04','course12',21)insertintogradevalues('04','course13',22)insertintogradevalues('04','course14',26)insertintogradevalues('04','course15',28)insertintogradevalues('04','course16',9)insertintogradevalues('04','course17',9)insertintogradevalues('04','course18',18)insertintogradevalues('04','course19',17)--学号的各科学分insertintogradevalues('05','course10',10)insertintogradevalues('05','course11',11)insertintogradevalues('05','course12',11)insertintogradevalues('05','course13',12)insertintogradevalues('05','course14',16)insertintogradevalues('05','course15',18)insertintogradevalues('05','course16',5)insertintogradevalues('05','course17',4)insertintogradevalues('05','course18',14)insertintogradevalues('05','course19',15)insertintogradevalues('06','course10',13)insertintogradevalues('06','course11',14)insertintogradevalues('06','course12',15)insertintogradevalues('06','course13',16)insertintogradevalues('06','course14',19)insertintogradevalues('06','course15',12)insertintogradevalues('06','course16',6)insertintogradevalues('06','course17',1)insertintogradevalues('06','course18',12)insertintogradevalues('06','course19',13)4.创建视图和5张临时表-五个视图分别显示一个学生的各个课程类,没有排序createview基础课(s_no,基础类课程总学分)asselects_no,SUM(score)fromgrade,coursewheregrade.course_no=course.course_noandcoursetype='基础课'groupbys_noselect*from基础课createview专业课(s_no,专业类课程总学分)asselects_no,SUM(score)fromgrade,coursewheregrade.course_no=course.course_noandcoursetype='专业课'groupbys_noselect*from专业课createview选修课(s_no,选修类课程总学分)asselects_no,SUM(score)fromgrade,coursewheregrade.course_no=course.course_noandcoursetype='选修课'groupbys_noselect*from选修课createview人文课(s_no,人文类课程总学分)asselects_no,SUM(score)fromgrade,coursewheregrade.course_no=course.course_noandcoursetype='人文课'groupbys_noselect*from人文课createview实验课(s_no,实验类课程总学分)asselects_no,SUM(score)fromgrade,coursewheregrade.course_no=course.course_noandcoursetype='实验课'groupbys_nosele