JIANGXI AGRICULTURAL UNIVERSITY
数据库课程设计报告
题目: 学生成绩管理系统数据库设计
学 院:
姓 名: 学 号:
专 业:
班 级:
指导教师:
二0一二 年 6 月
一、需求分析
1.1 需求概述
针对江西农大的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。
1.2 功能简介
能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。
具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。
二、数据库设计
2.1 确定联系集及E-R图
根据前面对系统进行的分析,已经初步了解了学生成绩管理系统的数据处理流程,出与系统有关的各个实体及其相互联系如下:
①、标示实体集:班级,课程,学生,成绩四个关系。
②、标示联系集:
学生和班级:一个班由多个学生组成,一个学生只能归属于某个班;
存在“归属”的关系:N:1
学生和课程:一个学生可以选修多门课程,一门课程提供给多个学生选修;
存在“选修”的关系:N:M
关系Score的主码是{studentNo,courseNo,term}显然同一个学生在同一个学期不允许修读同一门课程多次
关系Course的priorCourse属性参照本关系的主码courseNo属性。这里假设一门课程最多只需要定义一门先修课程。
③、标示属性集:
班级(班级编号,班级名称,所属学院,年级,班级人数)
课程(课程号,课程名,学分,课时数,先修课程)
学生(学号,姓名,性别,出生日期,籍贯,所属班级)
成绩(学号,课程号,开课学期,成绩)
2.2 画出E-R图
班级信息图如下:
图2-2-1班级实体集的E-R图
学生信息图如下:
图2-2-2学生实体集E-R图
课程信息图如下:
图2-2-3课程实体集E-R图
成绩信息图如下:
图2-2-4成绩实体集E-R
2.3学生成绩管理系统总E-R图
根据上面对实体联系的分析,可以画出E-R图如下:
图2-2-5学生成绩管理系统总E-R图
三、逻辑数据库设计阶段
逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:
课程信息表
Class:(班级编号,班级名称,所属学院,年级,班级人数)
学生信息表
Student: (学号,姓名,性别,出生日期,籍贯,所属班级)
课程信息表
Course: (课程号,课程名,学分,课时数,先修课程)
成绩表
Score:(学号,课程号,开课学期,成绩)
设计出E-R图后,可将E-R图转换为数据库模式。本系统建立的数据库为“ScoreDB”,运行本系统时在库中所建立的表分别介绍如下:
3.1 班级信息表(Class)
字段名 | 描述 | 数据类型 | 字段限制 |
classNo | 班级编号 | char(10) | Primarykey |
className | 班级名称 | varchar(30) | Not null |
institute | 所属学院 | varchar(30) | Not null |
grade | 年级 | smallint | Not null |
classNum | 班级人数 | tinyint | Not null |
3.2 学生信息表(Student)
字段名 | 描述 | 数据类型 | 字段权限 |
studentNo | 学号 | char(10) | Primarykey |
studentName | 姓名 | Varchar(30) | Not null |
sex | 性别 | char(2) | Not null |
birthday | 出生日期 | datetime | Not null |
native | 民族 | varchar(30) | Not null |
classNo | 所属班级 | varchar(30) | Not null |
3.3 课程信息表(Course)
字段名 | 属 性 | 数据类型 | 字段权限 |
courseNo | 课程号 | char(10) | Primarykey |
courseName | 课程名 | varchar(30) | Not null |
creditHour | 学分 | numeric | Not null |
courseHour | 课时数 | tinyint | Not null |
priorCourse | 先修课程 | varchar(30) | Not null |
3.4 成绩表(Score)
字段名 | 属 性 | 数据类型 | 字段权限 |
studentNo | 学号 | char(10) | Primarykey |
courseNo | 课程号 | char(10) | Primarykey |
term | 开课学期 | char(10) | Not null |
score | 成绩 | numeric | Not null |
四、建表
4.1 创建数据库
打开SQL工具“查询分析器”
在查询窗口中键入下列SQL语句
create database ScoreDB
执行上述SQL语句即可新建一名为ScoreDB的数据库。
4.2 创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过程其实就是定义字段的过程。
在此学生成绩管理系统中需要创建四个表,即班级信息表、学生信息表、课程信息表和成绩表。
创建数据库后,为ScoreDB数据库添加数据表,步骤如下。
新建查询窗口
在查询窗口中键入下列SQL语句
create table Class( //创建班级信息表
classtudentNo char(10学生管理系统数据库设计说明书) primary key, //班级编号
classtudentName varchar(30) not null, //班级名称
institute varchar(30) Not null //所属学院
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论