《学生成绩智能管理系统课设正文终稿》由会员分享,可在线阅读,更多相关《学生成绩智能管理系统课设正文终稿(14页珍藏版)》请在金锄头文库上搜索。
1、课 程 设 计 课程名称 数据库系统概论 题目名称 学生成绩管理系统数据库设计 学生学院_计算机学院 _专业班级_10计科8班_ _学 号 3110006183 学生姓名_ 陈宇汉 _指导教师_左亚尧_ 2013年 01 月 17日广东工业大学课程设计任务书题目名称学生成绩智能管理系统学生学院计算机学院专业班级姓 名学 号一、课程设计题目学习使用某个RDBMS,利用合适的应用系统开发工具为某个应用背景设计和开发一个数据库应用系统。二、课程设计内容完成一个数据库应用系统的设计全过程:需求分析、数据库设计、数据库建立、数据输入、应用系统的设计和开发、用户界面的设计和实现等。三、课程设计步骤1、需求
2、分析业务流程分析、功能分析和数据需求分析。2、概念结构设计 生成基本E-R图。功能模块概要设计。3、逻辑结构设计 关系模型设计(模式设计、外模式设计)及范式分析。功能模块详细设计。4、物理结构设计 选择建立索引;确定数据的存放位置;确定系统配置;5、数据库实施创建数据库及数据库对象;数据库备份和恢复方案(给出具体方案);功能模块设计、实现、集成及调试(应用系统的设计和开发、用户界面的设计和实现等)。7、撰写课程设计报告;整理课程设计文件,刻录光盘。四、课程设计要求1、设计环境不限制DBMS,即可以选择任意大、小型RDBMS:Oracle,Sybase,SQL Server,Access,MyS
3、QL不限制应用开发环境和工具: Delphi,PowerBuilder,C+ Builder、J Builderr、.NET、J2EE等。2、系统结构及相关技术 不限制系统结构,例如:C/S结构:例如Access+VB、Oracle+Delphi、SQL Server +InterDev、Oracle+PowerBuilder,MySQL+ VB、Access+C+ Builder、C# + SQLServe等,B/S结构:请查阅网络数据库技术相关资料,例如:JSP + MySQL + Hibernate、Struts + Hibernate + Spring+Oracle、JSP+Servl
4、et+Javabean + SQL Server等。3、每个同学上交课程设计报告一份,报告撰写规范参考后续内容目录一、系统定义3二、需求分析3三、系统设计3四、详细设计6五、课程设计总结13一、系统定义建立学生成绩管理系统可以方便学校和学生,对学生的成绩相关信息都能进行有效的和快速的处理,而且一般这种数据库不会太大,对查询效率的要求不高,一般的查询都能快速的处理,适合使用二、需求分析(1)信息要求:要从数据库中获得学生的信息,课程信息,选课信息,教师任课信息以及教师信息(2)功能需求:能够实现基本的增删查改,(3)安全性与完整性要求:能区分不通用户,学生只能查询相关信息,而教师可以添加和修改学
5、生的成绩;大部分信息记录不能为空;数据依赖关系的正确性保证三、系统设计(1)概念设计1.实体及其属性图学生学号院系专业姓名性别出生课程课程名学时学分学期学生选课学号课程名成绩任课教师号教师院系姓名性别教师号教师任课教师号课程名学生评价2.实体E-R图学生学生成绩教师任课教师课程教师号课程号学号课程名学号(2)逻辑设计关系模式:Student(department, major, sname, sno, sex, sbirthday)Student_course(sno,cname, mark, tno )Course(cname, class_hour, credit,semester)Tea
6、cher(department, tname, sex, tno)Teacher_course(tno,cname, stu_estimate)带下划线的是各关系的主码每一个关系属于2范式,第一个关系student中major决定了department,而主码又决定了major,存在传递依赖snodepartment,最高只能是2范式,而其他关系都属于3范式,student关系中department信息虽然是冗余的但是需要,不应分解,这里的实体比较少,我凭感觉来划分实体的。如果是复杂的关系就应该根据需要分解到一定的范式。(3)物理设计数据库与基本表建立,和完整性约束:需要建立5个表,各表的创建
7、顺序要注意,student_course.sno和student_ame都是外键,所以student_course表不能先建立,teacher_course.tno和teacher_ame都是外键,它们分别依赖与teacher 和course表中相应的列,也不能先建立下面是生成的SC数据库关系图完整性约束:只定义了一些外键,如上图所示;没有对一些现实中的默认规则进行转化,例如成绩一般都是0-100,性别肯定只有男和女,我没有约束,因为时间原因四、详细设计(1)建立数据库SC:create database SC on (name=SC_DAT, filename=e:数据库实验SC数据文件,
8、size=5MB, filegrowth=20%)log on ( name=SC_LOG, filename=e:数据库实验SC日志文件, size=1MB, filegrowth=20%)(2)建立各个基本表CREATE TABLE student(sno char(10) PRIMARY KEY,department char(20) not null,major char(40) not null,sname char(40) not null,sex char(2) not null,sbirthday smalldatetime not null)CREATE TABLE cour
9、se(cname char(40) PRIMARY KEY,class_hour tinyint not null,credit tinyint not null,semester tinyint not null)CREATE TABLE student_course(sno char(10),cname char(40),mark tinyint,tno char(4) not null,FOREIGN KEY (cname) REFERENCES course(cname),FOREIGN KEY (sno) REFERENCES student(sno),PRIMARY KEY(sno
10、,cname) )CREATE TABLE teacher(departmet char(20) not null,tname char(20) not null,sex char(2) not null,tno char(4) PRIMARY KEY)CREATE TABLE teacher_course(tno char(4),cname char(40),stu_estimate char(6) ,PRIMARY KEY(tno,cname),FOREIGN KEY (cname) REFERENCES course(cname),FOREIGN KEY (tno) REFERENCES
11、 teacher(tno)(3)创建一些常用的存储过程1.根据学号+课程名查询某学生某门课成绩2根据学号查询学生所有课程的成绩3.修改某学生某门课的成绩4.根据教师号+课程号查询所有选了该教师任课的某一课程的学生下面是各个过程的代码(1create procedure query_course_score (sno char(10),cname char(40)asselect student.sno,sname,mark from student_course,studentwhere student.sno like sno and cname like cname and student
12、.sno like student.sno(2create procedure query_all_score sno char(10)asselect student.sno,sname,cname,mark from student_course,studentwhere student.sno like sno and student.sno like student_course.sno (3create procedure set_student_course_score (sno char(10),cname char(40),score tinyint)asupdate stud
13、ent_course set mark=scorewhere student_course.sno like sno andstudent_ame like cname select student.sno,sname,cname,mark from student,student_coursewhere student.sno like sno and student_ame like cname and student.sno like student_course.sno (4create procedure teacher_course_student (tno char(4),cname char(20)asselect tname,sname,teacher_amefrom teacher_course,course,student_course,student,teacherwhere teacher_course.tno like tno and teacher_ame like cname and teacher.tno like teacher_course.tno and teacher_ame like ame and ame like student_ame and student_course.sno like student.sno(4