当前位置:文档之家› 学生成绩管理系统数据库设计之欧阳家百创编

学生成绩管理系统数据库设计之欧阳家百创编

JIANGXI AGRICULTURALUNIVERSITY欧阳家百(2021.03.07)数据库课程设计报告题目:学生成绩管理系统数据库设计学院:姓名:学号:专业:班级:指导教师:二0一二年 6 月目录一、需求分析31.1 需求概述31.2 功能简介3二、数据库设计32.1 确定联系集及E-R图32.2 画出E-R图42.3学生成绩管理系统总E-R图5三、逻辑数据库设计阶段63.1 班级信息表(Class)73.2 学生信息表(Student)73.3 课程信息表(Course)83.4 成绩表(Score)8四、建表84.1 创建数据库84.2 创建数据表9五、数据库的运行和维护105.1 定义105.1.1 基本表的创建,建表语句105.1.2 基本表的删除115.2 数据操作115.2.1 单表查询:115.2.2 连接查询115.2.3 操作结果集查询125.2.4 嵌套查询125.3 数据库更新操作135.3.1 插入数据135.3.2 修改数据135.3.3 删除数据135.4 为数据库建立索引145.4.1 索引的建立145.4.2 索引的删除145.5 数据库的安全性145.6 数据库的完整性155.6.1 实体完整性定义155.6.2 参照完整性定义15六、模式求精15七、总结16一、需求分析1.1 需求概述针对江西农大的成绩管理工作量大、繁杂,人工处理非常困难。

学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。

学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。

1.2 功能简介能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。

具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。

二、数据库设计2.1 确定联系集及E-R图根据前面对系统进行的分析,已经初步了解了学生成绩管理系统的数据处理流程,找出与系统有关的各个实体及其相互联系如下:①、标示实体集:班级,课程,学生,成绩四个关系。

②、标示联系集:学生和班级:一个班由多个学生组成,一个学生只能归属于某个班;存在“归属”的关系:N:1学生和课程:一个学生可以选修多门课程,一门课程提供给多个学生选修;存在“选修”的关系:N:M关系Score的主码是{studentNo,courseNo,term}显然同一个学生在同一个学期不允许修读同一门课程多次关系Course的priorCourse属性参照本关系的主码courseNo属性。

这里假设一门课程最多只需要定义一门先修课程。

③、标示属性集:班级(班级编号,班级名称,所属学院,年级,班级人数)2.2图2-2-2学生实体集E-R图成绩信息图如下:图2-2-4成绩实体集E-R2.3学生成绩管理系统总E-R图根据上面对实体联系的分析,可以画出E-R图如下:Score:(学号,课程号,开课学期,成绩)设计出E-R图后,可将E-R图转换为数据库模式。

本系统建立的数据库为“ScoreDB”,运行本系统时在库中所建立的表分别介绍如下:3.1 班级信息表(Class)3.2 学生信息表(Student)3.3 课程信息表(Course)3.4 成绩表(Score)四、建表4.1 创建数据库打开SQL工具“查询分析器”在查询窗口中键入下列SQL语句create database ScoreDB执行上述SQL语句即可新建一名为ScoreDB的数据库。

4.2 创建数据表一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。

数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。

创建数据表的过程其实就是定义字段的过程。

在此学生成绩管理系统中需要创建四个表,即班级信息表、学生信息表、课程信息表和成绩表。

创建数据库后,为ScoreDB数据库添加数据表,步骤如下。

新建查询窗口在查询窗口中键入下列SQL语句createtable Class(//创建班级信息表classtudentNo char(10)primarykey,//班级编号classtudentName varchar(30)notnull,//班级名称institute varchar(30)Notnull//所属学院grade smallint,Notnull//年级classNum tinyint,Notnull//班级人数)执行上述SQL语句即可创建课程信息表相关表格createtable Student(//创建学生信息表studentNo char(10)primarykey,//学号studentName varchar(30)notnull,//姓名sex char(2)notnull,//性别birthday datetime notnull,//出生日期native varchar(30)notnull,//民族classtudentNo Char(10)notnull,//所属班级)执行上述SQL语句即可创建学生信息表相关表格createtable Course(//创建教师信息表courseNo char(10)primarykey,//课程号courseName varchar(30)notnull,//课程名 creditHour numeric notnull,//学分courseHour tinyint notnull,//课时数priorCourse varchar(30)notnull,//先修课程)执行上述SQL语句即可创建教师信息表相关表格createtable Score(//创建成绩表studentNo char(10)primarykey,//学号courseNo char(10)primarykey,//课程号term char(10)notnull,//开课学期score numeric notnull,//成绩)执行上述SQL语句即可创建成绩表相关表格五、数据库的运行和维护5.1 定义基本表的创建、修改及删除;索引的创建和删除。

5.1.1 基本表的创建,建表语句createtable Student(//创建学生表studentNo char(10)notnull,studentName varchar(30)notnull,sex char(2)notnull,birthday datetime notnull,native varchar(20)notnull,classtudentNo Char(10)notnull,constraint studentPK primarykey(StudentNO),constraint studentPK1 foreignkey(classtudentNo)references class(classtudentNo))5.1.2 基本表的删除droptable Student5.2 数据操作5.2.1 单表查询:查询学号为“0800006”生的姓名select studentNamefrom Studentwhere studentNo=' 0800006'结果:5.2.2 连接查询查询学生的学号、姓名,所选课程的课程号、课程名和成绩SelectStudent.studentNo,Student.studentName,Class.classNo,Class.classNam e,Score.scorefrom Student,Class,Score,CourseWhere Student.studentNo=Score.studentNo andStudent.classNo=Class.classNo and Course.courseNo=Score.courseNo 结果:5.2.3 操作结果集查询查询0700003号同学和0800002号同学共同选修的课程Select courseNoFrom ScoreWhere studentNo='0700003'IntersectSelect courseNoFrom scoreWhere studentNo='0800002'查询结果:5.2.4 嵌套查询查询选修了“CS0701”这门课的所有学生的学号、姓名、出生日期以及籍贯。

Select studentNo,studentName,birthday,nativeFrom StudentWhere studentNo in(select studentNoFrom scoreWhere classNo='CS0701')查询结果:5.3 数据库更新操作5.3.1 插入数据向Student表中添加一项记录:姓名:叶问,学号:0800016,性别:男,出生年月:1992-6-19,籍贯:南昌,班级编号:CP0802InsertIntoStudent(studentNo,studentName, sex,birthday,native,classNo) Values('0800016',' 叶问','男','1992-6-19',' 南昌', 'CP0802'结果:5.3.2 修改数据修改吴敏的学号为0800019Update StudentSet StudentNo='0800019'Where StudentName='吴敏’;5.3.3 删除数据删除所有金融学院学生的记录Deletefrom ClassWhere(institute='金融学院');5.4 为数据库建立索引5.4.1 索引的建立createindex studentNameSM on Student(studentName)5.4.2 索引的删除dropindex studentNameSM on Student(studentName)5.5 数据库的安全性所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件,软件及数据,防止其偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。

为防止因用户非法使用数据库造成数据泄露、更改或破坏,必须采取一些安全性控制措施以保证数据库中数据的安全、可靠和正确有效。

相关主题