1、学生成绩管理系统数据库一、需求分析阶段1.信息需求高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。2.功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的
2、添加、修改、删除、查询,学生及教职工基本信息查询的功能。3. 安全性与完整性要求二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。设计教室管理数据库包括班级、教室、课程、教师四个关系。E-R 图如下课程信息表学分教师号课程号课程名学时学生信息表学号姓名专业年龄系别性别选课成绩课程号学号教师信息表教师号教师名教师性别教课教师系别成绩三、逻辑结构设计阶段逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本 E-R 图转化为宜选用的 DBMS 所支持的数据模型相符合的逻辑结构
3、,并对其进行优化。E-R 图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)1、课程信息表(class)字段名 描述 数据类型 字段限制cno 课程号 char(10) Primarykeycname 课程名 cha
4、r(10) Not nullteano 教师号 char(10) Not nullcredit 学分 char(4) Not nullctime 学时 char(50) Not null2、学生信息表(student1)字段名 描述 数据类型 字段权限sno 学号 char(10) Primarykey sname 姓名 char(10) Not null ssex 性别 char(2) Not nullsage 年龄 char(2) Not null major 专业 char(10) Not nulldepart 系别 char(10) Not null3.教师表(teacher1)字段名
5、 属 性 数据类型 字段权限teano 教师号 char(10) Primarykeytname 教师名 char(10) Not nullTsex 教师性别 char(2) Not nullTdepart 教室系别 char(10) Not null4.成绩表字段名 属 性 数据类型 字段权限sno 学号 char(10) Primarykeycno 课程名 char(10) Not nulldegree 成绩 char(10) Not null四、物理设计阶段数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的
6、数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结构的设计,存储路径的设计。五、数据库实现数据库实施是指建立数据库,编制与调试应用程序, 组织数据入库,并进行试运行。1、创建数据库(1) 打开 SQL 工具“查询分析器”(2) 在查询窗口中键入下列 SQL 语句create database ScoreSystem执行上述 SQL 语句即可新建一名为 ScoreSystem 的数据库2、创建数据表一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数
7、据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过程其实就是定义字段的过程。在此学生成绩管理系统中需要创建四个表,即课程信息表、学生信息表、教师信息表和成绩表。创建数据库后,为 ScoreSystem 数据库添加数据表,步骤如下。(1) 新建查询窗口(2) 在查询窗口中键入下列 SQL 语句create table Class( /创建课程信息表cno char(10) primary key, /课程号cname char(10) not null, /课程名teano char(10) Not null /教师号credit char(4), Not nu
8、ll /学分ctime char(50), Not null /学时) 执行上述 SQL 语句即可创建课程信息表相关表格create table student1( /创建学生信息表sno char(10) primary key, /学号sname char(10) not null, /姓名ssex char(2) not null, /性别 Sage char(2) not null, /年龄Major char(10) not null, /专业Depart char(10) not null, / /系别)执行上述 SQL 语句即可创建学生信息表相关表格create table te
9、acher1( /创建教师信息表tno char(10) primary key, /教师号tname varchar(50) not null, /教师名tsex char(2), /教师性别tdepart varchar(50) /教师系别)执行上述 SQL 语句即可创建教师信息表相关表格create table score( /创建成绩表sno char(10), /学号cno char(10), /课程号)执行上述 SQL 语句即可创建成绩表相关表格学生信息相关表格Sno sname ssex sage major depart0811080101 陈琦 男 22 信息 工商08110
10、80102 崔雪娇 女 23 信息 工商0811080103 董朝阳 男 22 数学教育 数学系0811080104 杜鹃 女 22 计算机应用 计算机系0811080105 方卉 女 20 汉语言 文法系课程信息相关表格Cno cname tno credit ctime0301 财务管理 001 2 240302 供应链管理 002 2.2 180303 生产与运作管理 003 2.4 360304 统计学 004 2.6 320305 网页制作 005 2.8 300306 操作系统原理 006 3.0 320307 数据库原理 007 3.2 300308 项目管理 008 3.4 4
11、50309 web 程序设计 009 3.5 35成绩信息表Sno Cno Degree0811080101 0306 850811080101 0303 900811080101 0305 860811080102 0306 820811080102 0304 840811080102 0301 810811080103 0306 930811080103 0302 790811080103 0304 850811080104 0306 940811080104 0308 740811080104 0307 86教师信息表tno tname tsex tdepart001 卢亚君 女 财经0
12、02 李昌明 男 财经003 张富强 男 财经004 刘翠杰 女 数信005 王庆石 男 数信006 黄立明 男 数信007 王纲 男 计算机008 徐伟丽 女 计算机009 刘书霞 女 计算机六、数据库运行和维护阶段1、数据定义:基本表的创建、修改及删除;索引的创建和删除;视图的创建和删除(1)基本表的创建,建表语句create table students(stuno char(10) primary key, stuname varchar(40) not null, stusex char(2) not null, stuage char(10) not null, stumajor
13、char(10) not null, studepart char(10) not null, )(2)基本表的删除drop table students 2、数据操作数据库查询操作A.单表查询:(1)查询 sno 为 0811080101 学生的 snameselect snamefrom student1where sno= 0811080101结果:(2)查询 ssex 为女并且 sdepart 为工商的 snameselect snamefrom student1where ssex =女 andsdepart =工商结果:(3)查询所有学生的姓名和系别。select sname,de
14、partfrom student1结果:(4)查询 depart 为数学系的 sname。select snamefrom student1where depart =数学系结果:(5)查询所有学生所在院系名称select distinct departfrom student结果:(6)查询学生信息表中年龄小于 21 和年龄大于 21 的学生的姓名和系别select sname,departfrom student1where sage21 or sage0 and cno=20 ) )七、总结本学生成绩查询系统主要参照课本,相对来说比较简单。但是由于主要以课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。设计过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很多。(1 )操作视图查询,编写代码时发现,一个表中的主键必须是另一个表的外键时才可以对另一个表进行引用。(2)在设计表时应注意使用正确的字段类型。(3)在建表语句中,如果这个表的主键是多个属性的组合主键,则必须作为表级完整性进行定义。