数据库课程设计学生成绩管理系统SQL

发布时间:2024-11-08

数学与计算机学院

课程设计说明书

课 程 名 称: 大型数据库-课程设计

课 程 代 码: 8424141 题 目: 学生成绩管理系统

年级/专业/班:

学 生 姓 名:

学 号:

开 始 时 间: 2012 年 6 月 12 日

完 成 时 间: 2012 年 6 月 30 日

课程设计成绩:

指导教师签名: 年 月 日

目录

摘 要 ............................................................................................................................ 错误!未定义书签。

引言 .................................................................................................................................................................. 3

1 开发环境 ..................................................................................................................................................... 3

1.1 硬件环境 ............................................................................................................................................ 3

1.2 软件环境 ............................................................................................................................................ 4

1.2.1 SQL Server 2005、Delphi7简单介绍 .................................................................................... 4

2 需求分析 ..................................................................................................................................................... 6

2.1 信息需求 ............................................................................................................................................ 6

2.2 功能需求 ............................................................................................................................................ 6

3概念结构设计 ................................................................................................................................................ 6

4逻辑结构设计 ................................................................................................................................................ 6

5 数据库实现 ................................................................................................................................................. 7

5.1 创建数据库 ........................................................................................................................................ 7

5.2 创建数据表格 .................................................................................................................................... 8

6 数据库的运行和维护 ................................................................................................................................ 9

6.1 数据定义 .......................................................................................................................................... 9

6.2 数据查询 ........................................................................................................................................ 10

6.2.1 单表查询 ............................................................................................................................. 10

6.2.2 连接查询 ............................................................................................................................. 10

6.2.3 操作结果集查询 ................................................................................................................. 11

6.2.4 嵌套查询 ............................................................................................................................. 11

6.3 数据库的更新 ................................................................................................................................ 11

6.3.1插入数据 ................................................................................................................................ 11

6.3.2 修改数据 ............................................................................................................................. 11

6.3.3 删除数据 ............................................................................................................................. 12

6.4 数据库索引 .................................................................................................................................... 12

6.4.1 建立索引 ............................................................................................................................. 12

6.4.2 删除索引 ............................................................................................................................. 12

6.4 数据库视图 .................................................................................................................................... 12

6.5 数据库的安全性 ............................................................................................................................ 14

6.6数据库的完整性 ............................................................................................................................... 14

7 Delphi7软件实现........................................................................................................................................ 15

7.1 界面设计 ........................................................................................................................................ 15

7.2 数据库连接 .................................................................................................................................... 16

7.3 登陆权限 ........................................................................................................................................ 16

7.3.1 用户登陆设计 ....................................................................................................................... 16

7.3.2 权限管理设计 ....................................................................................................................... 16

7.4 管理界面 ........................................................................................................................................ 17

7.5 查询界面 ........................................................................................................................................ 17

7.6 统计界面 ........................................................................................................................................ 17

7.7 报表界面 ........................................................................................................................................ 17

2程序测试...................................................................................................................................................... 18

8.1 测试环境 ........................................................................................................................................ 18

8.2功能测试 ........................................................................................................................................... 18

8.3 问题汇总 ........................................................................................................................................ 18

结论 ................................................................................................................................................................ 18

参考文献......................................................................................................................................................... 19

引言

在我国,各大中小学校的各类信息管理系统并非一个新的课题。大多数学校信息管理系统不完善,甚至有的学校根本就没有任何信息管理系统,所有的管理工作几乎都是靠手工完成。特别是在西部贫困地区,学校的信息管理都依然靠手工操作,这十分落后,效率极低,成本很大,而且极易出错。随着计算机技术不断地日新月异地发展,信息化是社会进程的必然趋势,学校的信息管理只有快,精,准,才能发挥其作用。从人工操作改为计算机的自动化系统,人工操作必将被计算机代替。

有些学校虽使用计算机管理系统,但是仍然存在很多问题。有的系统很不完善到处是漏洞,可以说是千疮百孔,这样极不完善的系统对管理来说是没有任何保障的。问题一日不解决,效率就一日提不上去。为此,我动手设计了一个简单的学生成绩管理系统,学习管理系统的设计,争取早日解决这些问题。

本文档是关于用户对于学生成绩管理系统的功能和性能的要求,重点描述了学生成绩管理系统的设计过程。本文档的预期读者是:设计人员;开发人员;项目管理人员;测试人员;用户。

1 开发环境

我使用的系统是Windows7,而SQL Server 2005在此系统下很难成功安装,所以我在Windows7下安装虚拟机Virtualbox,然后虚拟系统安装Windows XP SP2。在Windows XP里面装上了SQL Server 2005、Delphi7用于本系统的开发。

1.1 硬件环境

电脑:X86 兼容台式电脑

操作系统:Windows 7 旗舰版(32bit)

处理器:Pentium(R) Dual-Core CPU E5400 @ 2.70GHz

主板:梅捷 SY-I5G41-L V2.0

内存 :4GB (威刚 PC3-10700 DDR3 SDRAM 1334MHz)

硬盘:Western Digital WDC WD5000AAKS-00V1A0 (500GB)

显卡:NVIDIA GeForce GTS 250

网络适配器:Realtek PCIe FE Family Controller

声卡:Realtek High Definition audio

1.2 软件环境

1.2.1 SQL Server 2005、Delphi7简单介绍

(1)SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。

象程序设计为中心的应用程序开发工具。它的特点如下:

①直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用 Delphi界面

它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。

②支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。这样,大大减少了对服务器的请求和网络上的数据传输量,提高了应用处理的速度。

③提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。

④具有可重用性和可扩展性。开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。

⑤具有强大的数据存取功能。它的数据处理工具BDE(BorlandDatabaseEngine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如xBase、Paradox等,也可以通过BDE的SQLLink直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接。 Delphi既可用于开发系统软件,也适合于应用软件的开发。

⑥拥有强大的网络开发能力,能够快速的开发B/S应用,它内置的IntraWeb和ExpressWeb使得对于网络的开发效率超过了其他任何的开发工具。

⑦Delphi使用独特的VCL类库,使得编写出的程序显得条理清晰,VCL是现在最优秀的类库,它使得Delphi在软件开发行业处于一个绝对领先的地位。用户可以按自己的需要,任意的构建、扩充、甚至是删减VCL,以满足不同的需要。

⑧从Delphi8开始Delphi也支持.Net框架下程序开发。

当前DELPHI 已经成为一个品牌,而不仅仅是一个开发平台或开发语言的名称。 当前DELPHI产品已经由CodeGear公司继续发展,该公司是BORLAND公司的全资子公司。当前,CodeGear为广大开发者提供了DELPHI FOR PHP,以高度可视化的方式全面支持面向对象的PHP 网站开发,大大提高了PHP开发网站的代码复用程度,成为WEB应用开发的新利器。

2 需求分析

2.1 信息需求

高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。

2.2 功能需求

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

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

3概念结构设计

概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

设计教室管理数据库包括管理员、学生、教师、课程四个关系。

4逻辑结构设计

逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。设计学生成绩管理数据库,包括课

程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:

课程信息表(课号,课程名称,学分,主讲教师,学时)

学生信息表 (学号,姓名,性别,年龄,所在院系,专业)

学生成绩表(学号,课号,成绩)

教师信息表(教工编号,姓名,性别,年龄,所在院系)

用户权限表(UserName,Password,权限)

学生选课表(学号,课号)

5 数据库实现

5.1 创建数据库

打开SQL Sever 2005,选择默认数据库连接。接下来右键单击数据新建数据库,命名为:学生成绩管理系统。

或者:(1)打开SQL工具“查询分析器”

(2)在查询窗口中键入下列SQL语句

create database学生成绩管理系统

执行上述SQL语句即可新建一名为 “学生成绩管理系统”的数据库

5.2 创建数据表格

一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过程其实就是定义字段的过程。

在此学生成绩管理系统中需要创建六个表,即课学生信息表、学生成绩表、教师信息表、用户权限表、学生选课表、课程信息表。

创建数据库后,为学生成绩管理系统数据库添加数据表,步骤如下。

(1) 新建查询窗口

(2) 在查询窗口中键入下列SQL语句

①create table课程信息表( //创建课程信息表

课号char(10) primary key, //课号

课程名称char(15) not null, //课程名称

主讲教师char(4) Not null, //主讲教师

学时 int Not null, //学时

学分int, Not null //学分)

执行上述SQL语句即可创建课程信息表相关表格;

②create table 学生信息表( //创建学生信息表

学号 char(10) primary key, //学号

姓名 char(4) not null, //姓名

性别 char(1) not null, //性别

年龄 int not null, //年龄

所在院系char(15) not null, //所在院系

专业 char(15) not null //专业)

执行上述SQL语句即可创建学生信息表相关表格;

③create table 教师信息表( //创建教师信息表

教工编号char(10) primary key, //教工编号

姓名char(4) not null, //姓名

性别 char(1) not null, //性别

年龄 int not null, //年龄

所在院系 char(15) not null //所在院系)

执行上述SQL语句即可创建教师信息表相关表格;

④create table 学生成绩表( //创建学生成绩表

学号 char(10) primary key, //学号

课号 char(10) primary key, //课号

成绩 int not null //成绩)

执行上述SQL语句即可创建学生成绩表相关表格;

⑤create table 用户权限表( //创建用户权限表

UserName char(10) primary key // 用户名

Password char(6) not null, //密码

权限 int not null, //权限

执行上述SQL语句即可创建用户权限表相关表格;

⑥create table 学生选课表( //创建学生选课表

学号 char(10) primary key, //学号

课号 char(10) primary key //课号

执行上述SQL语句即可创建学生选课表相关表格。

6 数据库的运行和维护

6.1 数据定义

(1)基本表的创建,建表语句

create table 表名

(2)基本表的删除

drop table students

6.2 数据查询

6.2.1 单表查询

(1)查询 学号 为0811080101学生的 姓名

select姓名

from 学生信息表

where 学号='0811080101'

(2)查询 性别 为’女’并且 所在院系 为’计算机科学与工程学院’的 姓名

select姓名

from 学生信息表

where 性别 ='女' and

所在院系 ='工商'

(3)查询所有学生的姓名和系别。

select 学生,所在院系t

from 学生信息表

(4)查询 所在院系 为计算机科学与工程学院 系的 姓名。

select 姓名

from 学生信息表

where 所在院系 ='计算机科学与工程学院'

(5)查询所有学生所在院系名称

select distinct 所在院系

from 学生信息表

(6)查询学生信息表中年龄小于21和年龄大于21的学生的姓名和所在院系别

select 姓名,院系

from 学生信息表

where 年龄>21 or年龄<21

(7)查询所有学生的平均年龄

select avg(年龄) as 平均年龄

from 学生信息表

6.2.2 连接查询

(1)学生的学号、姓名,所选课程的课号、课程名称和成绩、主讲教师

Select 学生信息表.学号,

学生信息表.姓名,

课程信息表.课号,

课程信息表.课程名称,

学生成绩表.成绩,

教师信息表.姓名

from学生信息表, 课程信息表, 学生成绩表, 教师信息表

Where学生信息表.学号=学生成绩表.学号 and

课程信息表.课号=学生成绩表.课号绩and

教师信息表.姓名=课程信息表.主讲教师

(2)找出教授数据库原理的老师的教师名

教师信息表.姓名

from课程信息表, 教师信息表

Where课程信息表.课号=教师信息表.教工编号 and课程信息表.课程名称='数

据库原理'

6.2.3 操作结果集查询

查询0811080102号同学和0811080103号同学共同选修的课程

Select 课号

From 学生成绩表

Where 学号='0811080102'

Intersect

Select课号

From学生成绩表

Where 学号='0811080103'

6.2.4 嵌套查询

查询选修了0301这门课的所有学生的学号、姓名、年龄、所在院系

Select 学号,姓名,年龄,所在院系

From 学生信息表

Where 学号 in

(select 学号

From 学生成绩表

Where 课号=’0301’)

6.3 数据库的更新

6.3.1插入数据

向学生信息表中添加一项记录:

姓名:刘备,学号:0811080201,性别:男,年龄:24,所在院系:计算机科学与工程学院

Insert

Into 学生信息表(学号,性别,年龄,所在院系)

Values ('0811080201',' 刘备', '男',' 36','计算机科学与工程学院')

6.3.2 修改数据

修改关羽的学号为081108023:

Update 学生信息表

Set 学号=’0811080203’

Where 姓名=’关羽’;

6.3.3 删除数据

删除所有工商学生的记录

Delete

from 学生信息表

Where(所在院系=’计算机科学与工程学院’);

6.4 数据库索引

创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是所以的最主要原因。第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义。第四,在使用ORDER BY和GROUP BY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。

6.4.1 建立索引

(1) 在 课程信息表的 课号 列上创建非聚集索引。

Create index 课程名称 ON 课程信息表(课号)

(2) 在 学生信息表 的学号 列上创建非聚集索引。

Create unique index学号 ON 学生信息表(学号)

(3) 在学生信息表的 学号 列创建一个非聚集索引,要求索引键值按 学号 升序排列。

Create index 学生学号 ON 学生信息表(学号 ASC)

6.4.2 删除索引

删除学生信息表中的 学号 索引。

Drop index 学号

6.4 数据库视图

(1)查询所有学生选课的信息,包括学号、姓名、课号、课程名称

create view 学生选课查询

as

select 学生信息表.学号,姓名,课程信息表.课号,课程名称

from 学生信息表,学生选课表,课程信息表

where 学生信息表.学号=学生选课表.学号

and 课程信息表.课号=学生选课表.课号

go

(2)查询所有学生成绩的信息,包括学号、姓名、课程名称、成绩

create view 学生成绩查询

as

select 学生信息表.学号,姓名,课程信息表.课程名称,成绩

from 学生信息表,课程信息表,学生成绩表,学生选课表

where 学生信息表.学号=学生选课表.学号

and 学生选课表.学号=学生成绩表.学号

and 学生信息表.学号=学生成绩表.学号

and 课程信息表.课号=学生选课表.课号

and 学生成绩表.课号=学生选课表.课号

and 学生成绩表.课号=课程信息表.课号

go

(3)更新视图:

(1)修改信息:将陈琦的名字改为陈琪琪

Update 学生选课查询

set 学生名='关羽'

where 学生名='张飞'

(2)删除信息:删除视图 学生选课查询 中陈琪琪的记录

delete

from score

where 学生名='张飞'

(4)删除视图:删除前面的 学生选课查询 视图。

drop view学生选课查询

6.5 数据库的安全性

(1)把对 学生信息表 的insert权限授予用户admin,并允许他再将此权限授予其他用户。

grant insert

on table学生信息表

to admin

with grant option

(2)把查询表 学生选课表 的权限授给用户陈琦。

grant select

on table学生信息表

to 张飞

(3)把用户陈琦查询 学生信息表 权限收回。

revoke select

on table学生信息表

from 张飞

6.6数据库的完整性

对于学生成绩表:成绩的值应该在0和100之间:

create table 学生成绩表( //创建学生成绩表

课号 char(10) primary key, //课号

学号 char(10) primary key, //学号

成绩 int Not null //成绩

check (成绩 >0 and 成绩<=100 )

)

7软件实现

7.1 界面设计

我到网上找了一些管理系统的图片,用PS进行了一些加工处理,再将所要用的标题和按钮以及表格添加进去。总共12个界面,第一个是登陆界面,第二个是菜单界面,第十个是关于的界面,其余为功能界面。

登录界面一览:

管理界面一览:

数据库课程设计学生成绩管理系统SQL.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219