课程设计学生成绩管理系统_第1页
课程设计学生成绩管理系统_第2页
课程设计学生成绩管理系统_第3页
课程设计学生成绩管理系统_第4页
课程设计学生成绩管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 数据库课程设计课 题 学生成绩管理系统 班 级 姓 名 指导教师 目录一、需求分析2二、数据库设计3.概念数据库设计321确定联系集及图32.1.2学生成绩管理系统的总图4逻辑数据库设计5.班级信息表t_class5.课程表t_course5.学生信息表t_student5.教师表t_teacher5.成绩表t_grade5三、创建表空间6四、在表空间中创建表和序列及数据插入64.1、班级表64.2 、课程表64.3、学生表74.4、教师表84.5、成绩表8五、索引和完整性9六、 查询和视图96.1 查询96.2 视图10七、存储过程的使用10八、用户和权限11九、 部分实现过程13一、需求

2、分析功能简介:要求实现学生信息管理、 教师信息管理、 班级信息管理、 选课信息管理等功能,包括学生信息的添加、修改、删除及查询;课程信息的添加、修改、删除及查询; 选课信息的查询等。要求完成以下工作:1、数据库设计1)概念结构设计:在需求分析和总体功能设计的基础上,设计E-R模型,详细描述实体的属性和实体之间的联系。2)逻辑结构设计:实现 E-R图向关系模型的转换,详细列表显示完整的数据库表结构。2、创建表空间3、 在表空间中创建表在 SQL*PLUS环境中输入 PL/SQL代码,创建数据库中的各个表,至少包括学生信息表、班级信息表、选课表、教师表等5张表(自行设计用到的表,注意表中字段的设置

3、及类型);向表中插入数据,每张表至少插入10条数据,数据要合理。4、索引和完整性在表上建立相应索引。实现列、行及参照完整性(必须建立主键、外键、检查约束等)。5、 数据查询和视图使用 SELECT语句实现学生信息、班级信息和成绩信息的查询(要求查询要和系统的功能联系起来,做单条件的查询、组合条件的查询、多表查询等,至少完成10个查询)。创建视图查询某学期某班级学生的成绩信息。6、存储过程的使用创建存储过程实现表中数据的修改和删除。创建存储过程给学生提分,提分的学生号和课程号由调用该过程的实参给定, 把提分后的学生成绩更新到数据库。7、用户、角色创建用户并授权, 将其赋予某个角色成为其成员。不同

4、的用户授予不同的权限, 管理员的权限最高, 可以对各种信息进行修改删除等操作。 普通学生用户只能进行查询操作。8、系统数据维护导出系统数据导入14二、数据库设计.概念数据库设计21确定联系集及图根据前面对系统进行的分析,已经初步了解了学生成绩管理系统的数据处理流程,找出与系统有关的各个实体及其相互联系如下:1.实体集:学生,老师,班级,课程,成绩。2.联系集:学生和班级:一个班由多个学生组成,一个学生只能归属于某个班; 存在“归属”的关系:N:1学生和课程:一个学生可以选修多门课程,一门课程提供给多个学生选修; 存在“选修”的关系:N:M教师和班级:一个班只有一个老师担任班主任,一个老师只能担

5、任一个班的班主任; 存在“归属”的关系:1:1教师和课程:一个老师只能教一门课,一门课程可以有多个老师来教; 存在“授课”的关系:N:13.属性集:班级(班级编号,班主任,班级人数)课程(课程编号,课程名称,任课教师,学分)学生(学生编号,学生姓名,学生所在班级,学生性别,学生所在院系)老师(老师编号,老师名称,老师性别)成绩(学生编号,课程编号,分数)2.1.2学生成绩管理系统的总图老师编号老师姓名学分课程号1N性别课程名授课老师课程N 学号 1课程号管理选修成绩分数1MN班级编号系别归属1班级学生班级人数学号性别姓名图2-2-学生成绩管理系统总E-R图逻辑数据库设计.班级信息表t_clas

6、s序号字段名称类型(范围)约束主外键备注1班级编号classnochar(5)Pk2班主任tnochar(5)FkT_teacher.tno3班级人数classnumintNot null.课程表t_course序号字段名称类型(范围)约束主外键备注1课程编号coursenochar(5)Pk2课程名称coursenameVarchar(20)Not null3任课教师tnochar(5)FkT_teacher.tno4学分creditintNot null.学生信息表t_student序号字段名称类型(范围)约束主外键备注1学生编号snochar(5)Pk2学生姓名snameVarchar(

7、8)Not null3学生所在班级classnochar(5)FkT_class.classno4学生性别ssexchar(2)Not null5学生所在院系deptVarchar(20)Not null.教师表t_teacher序号字段名称类型(范围)约束主外键备注1教师编号tnochar(5)Pk2教师名称tnameVarchar(8)Not null3教师性别tsexchar(2)Not null.成绩表t_grade序号字段名称类型(范围)约束主外键备注1学生编号snochar(5)Pk/fkT_student.sno2课程编号coursenochar(5)Pk/fkT_course.

8、courseno3分数markintNot null三、创建表空间create tablespace student datafile 'E:student.dbf'size 10Mautoextend on next 10Mmaxsize 1000M四、在表空间中创建表和序列及数据插入4.1、班级表create table t_class( classno char(5) primary key, tno char(5) constraint FK_teacher_tno references t_teacher(tno), classnum int not null) ta

9、blespace studentcreate sequence seq_class_classno increment by 1 start with 1000 maxvalue 99999; -创建序列insert into t_class values(seq_class_classno.nextval,1000,43);insert into t_class values(seq_class_classno.nextval,1001,40);insert into t_class values(seq_class_classno.nextval,1002,41);insert into

10、t_class values(seq_class_classno.nextval,1003,39);insert into t_class values(seq_class_classno.nextval,1004,45);insert into t_class values(seq_class_classno.nextval,1005,43);insert into t_class values(seq_class_classno.nextval,1006,48);insert into t_class values(seq_class_classno.nextval,1006,45);in

11、sert into t_class values(seq_class_classno.nextval,1007,41);insert into t_class values(seq_class_classno.nextval,1008,40);4.2 、课程表create table t_course( -创建表 courseno char(5) primary key, coursname varchar(20) not null, tno char(5) constraint FK_class_tno references t_teacher(tno), credit int not nu

12、ll) tablespace studentcreate sequence seq_course_courseno increment by 1 start with 1000 maxvalue 99999 -创建序列insert into t_course values(seq_course_courseno.nextval,'计算机英语',1000,3); -插入数据insert into t_course values(seq_course_courseno.nextval,'数据库',1001,3);insert into t_course values

13、(seq_course_courseno.nextval,'高数',1002,2);insert into t_course values(seq_course_courseno.nextval,'大学物理',1003,4);insert into t_course values(seq_course_courseno.nextval,'线性代数',1004,1);insert into t_course values(seq_course_courseno.nextval,'软件工程',1005,5);insert into t

14、_course values(seq_course_courseno.nextval,'操作系统',1006,2);insert into t_course values(seq_course_courseno.nextval,'计算机组成原理',1007,3);insert into t_course values(seq_course_courseno.nextval,'微机',1008,5);insert into t_course values(seq_course_courseno.nextval,'体育',1009,2

15、);4.3、学生表create table t_student( sno char(5) primary key, sname varchar(8) not null, classno char(5) constraint FK_class_classno references t_class(classno), ssex char(2) not null constraint ck_student_ssex check (ssex in('男','女'), dept varchar(20) not null ) tablespace studentcreate

16、 sequence seq_student_sno increment by 1 start with 1000 maxvalue 99999insert into t_student values(seq_student_sno.nextval,'张飞',1000,'男','计算机系');insert into t_student values(seq_student_sno.nextval,'张宇',1001,'男','机械系');insert into t_student values(seq

17、_student_sno.nextval,'张飞宇',1002,'男','计算机系');insert into t_student values(seq_student_sno.nextval,'孙燕姿',1003,'女','人文科学学院');insert into t_student values(seq_student_sno.nextval,'张杰',1004,'男','计算机系');insert into t_student values(se

18、q_student_sno.nextval,'林青霞',1005,'女','外语系');insert into t_student values(seq_student_sno.nextval,'李静',1006,'女','计算机系');insert into t_student values(seq_student_sno.nextval,'宁静',1007,'女','经管系');insert into t_student values(seq_st

19、udent_sno.nextval,'舒淇',1008,'女','计算机系');insert into t_student values(seq_student_sno.nextval,'刘晓庆',1009,'女','计算机系');4.4、教师表create table t_teacher( -创建表 tno char(5) primary key, tname varchar(8) not null, tsex char(2) not null constraint ck_teacher_tsex

20、 check (tsex in('男','女')create sequence seq_teacher_tno increment by 1 start with 1000 maxvalue 9999 -创建序列insert into t_teacher values(seq_teacher_tno.nextval,'君','男'); insert into t_teacher values(seq_teacher_tno.nextval,'辰','男');insert into t_teacher

21、 values(seq_teacher_tno.nextval,'仟','女');insert into t_teacher values(seq_teacher_tno.nextval,'王和君','男');insert into t_teacher values(seq_teacher_tno.nextval,'张飞宇','男');insert into t_teacher values(seq_teacher_tno.nextval,'何炅','男');inse

22、rt into t_teacher values(seq_teacher_tno.nextval,'谢娜','女');insert into t_teacher values(seq_teacher_tno.nextval,'汪涵','男');insert into t_teacher values(seq_teacher_tno.nextval,'张韶涵','女');insert into t_teacher values(seq_teacher_tno.nextval,'李咏',

23、'男')insert into t_teacher values(seq_teacher_tno.nextval,'李咏','男')4.5、成绩表create table t_grade( -创建 sno char(5) constraint FK_student_sno references t_student(sno), courseno char(5) constraint FK_course_courseno references t_course(courseno), mark int not null) tablespace stud

24、entinsert into t_grade values(1000,1001,66);insert into t_grade values(1001,1001,69);insert into t_grade values(1002,1003,55);insert into t_grade values(1002,1004,99);insert into t_grade values(1009,1001,100);insert into t_grade values(1004,1004,76);insert into t_grade values(1008,1008,00);insert in

25、to t_grade values(1003,1005,93);insert into t_grade values(1001,1007,87);insert into t_grade values(1005,1002,81);insert into t_grade values(1007,1001,44);五、索引和完整性在表上建立相应索引。create index iclass on t_class(tno) create index icourseno on t_course(coursname)create index istudent on t_student(sname)creat

26、e index iteacher on t_teacher(tname)create index igrade on t_grade(mark)6、 查询和视图6.1 查询-1查询1001班的班级的学生信息 select * from t_student where classno=1001 -2查询院系是计算机系的并且是男生的学生信息 select * from t_student where dept='计算机系' and ssex='男'-3查询学生姓名为张飞宇的所选课程及分数select s.sno,sname,ssex,courseno,mark fr

27、om t_student s,t_grade g where s.sno=g.sno and s.sname='张飞宇'-4查询平均成绩大于60分的学生的信息select s.* from t_student s where sno in(select sno from t_grade group by sno having avg(mark)>60) -5查询学生编号为1002的所选课程的老师的信息select t.* from t_teacher t,t_course c,t_grade g where c.courseno=g.courseno and c.tno=

28、t.tno and g.sno=1002-6查询课程数据库的最高分的学生成绩的信息select s.* from t_student s,t_grade g where s.sno=g.sno and mark=(select max(mark) from t_grade where courseno in(select courseno from t_course where coursname='数据库') group by courseno)-7查询课程高数的平均成绩select courseno,avg(mark) from t_grade where courseno

29、 in(select courseno from t_course where coursname='高数') group by courseno-8查询高数分数大于60的同学的总人数(select count(distinct sno) 总人数 from t_grade where courseno in(select courseno from t_course where coursname='高数') and mark>60)-9查询1001班班主任所教课程的学分select coursname,credit from t_course c,t_class a where c.tno=a.tno and a.classno=1001-10查询选修了课程高数的学生信息select c.coursname,s.* from t_student s,t_course c,t_grade g where s.sno=

温馨提示

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

评论

0/150

提交评论