文档库

最新最全的文档下载
当前位置:文档库 > 数据库课程设计 学生选修课系统

数据库课程设计 学生选修课系统

数据库课程设计 学生选修课系统

10信计2012-2013(一)

《数据库原理及应用》课程设计

设计题目选修课管理系统

设计时间2012.12.31---2013.1.4

学生姓名

学生学号200904022

所在班级10信计(2)

指导教师

目录

一、可行性研究 (3)

二、需求分析 (4)

三、概要设计 (5)

四、逻辑设计 (6)

五、数据库实现 (7)

六、测试 (11)

七、课程设计总结 (12)

八、参考文献 (13)

九、附录 (13)

一、可行性研究

1.1 系统开发背景

数据库是从60年代初发展起来的计算机技术。经过四十来年的发展,数据库技术己经趋于成熟。Web数据库在新的Internet环境中发生了很大的变化。就数据应用而言呈现出多样化的空间,如数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给web数据库技术提出了更多、更高的要求。同时,随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用。例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。

1.2 系统设计目标

在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。

二、需求分析

2.1 任务概述

2.1.1 内容

调查学习教务处,设计用于管理全校学生选修课活动的系统。

2.1.2 目标

设计学生选课录入系统及学生选课查询界面。

设计课程输入界面和学生选课表及课程选修情况查询界面。

根据学生库和课程库,输出学生课程表。

2.1.3 运行环境

Windows xp / 7操作系统下,安装并配置软件microsoft SQL server2000数据库管理系统。

2.2 数据需求

2.2.1 数据流图(DFD)

数据库课程设计 学生选修课系统

2.2.2 数据字典(DD)

“学生信息表”的存储结构如下:

数据存储:学生信息表;

说明:学生的基本情况;

组成:以学号为关键;

数据量:学生的人数;

存储方式:随机存储;

“选课表”的存储结构如下:

数据存储:选课表;

说明:学生选课的情况;

组成:以学号和课程号为关键;

数据量:学生的人数;

存储方式:随机存储;

“开课课程表”的存储结构如下:

数据存储:开课课程表;

说明:所有开设的课程的情况;

组成:以课程号为关键;

数据量:课程的数目;

存储方式:随机存储;

“成绩表”的存储结构如下:

数据存储:成绩表;

说明:选修各门课程的成绩;

组成:以学号和课程号为关键;

数据量:很多;

存储方式:随机存储;

2.3 一致性需求

在选修课管理系统中的相关的表中,有较强的相关性,为什么实现一致性的需求,我们在各个表之间建立起了一致性约束。

2.4 完整性需求

根据选修课管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障。

三、概要设计

3.1接口设计

3.1.2外部接口

通过一定的计算机硬件,建立服务器系统,管理员通过管理服务器系统,与用户进行交互,从而达到资源共享的目的,实现选修课管理系统。

3.1.2 内部接口

程序内部需要共同的数据定义和描述,此系统是智能办公化管理系统的一个子系统,必须和这个系统的其他子系统统一数据定义等,才能使该系统性能达到最好,并且要尽量消除和其他子系统模块之间存在的数据冗余,才能使整个智能办公系统做到高效,方便。

3.2 E—R图

数据库课程设计 学生选修课系统

四、逻辑设计

4.1关系模式转化

学生(学号,姓名,性别,年龄,籍贯);

课程(课程号,课程名,学时,性质);

选修(学号,课程号,成绩);

五、数据库的实现

5.1 创建数据库

Optional数据库创建的SQL 语句:

create database optional

on

(

name=optional

filename='c:\\optional.mdf',

size=100MB,

maxsize=200MB,

filegrowth=2MB

)

log on

(

name=optional_log,

filename='c:\\optional.ldf',

size=20MB,

maxsize=80MB,

filegrowth=1MB

)

截图:

数据库课程设计 学生选修课系统

5.2 在数据库中创建表

SQL语句如下:

create table student

(

snoint primary key,

snamenvarchar(5),

sexnchar,

classint

)

create table course

(

cnoint primary key,

cnamenvarchar(15),

cnumberint

)

create table score

(

snoint,

cnoint,

degreeint,

primary key(sno,cno)

foreign key(sno)references student(sno),

foreign key(cno)references course(cno)

)

所创建的表如下:

数据库课程设计 学生选修课系统

向各表中插入数据如下:

Student表:

数据库课程设计 学生选修课系统

Course表:

数据库课程设计 学生选修课系统

Score表:

数据库课程设计 学生选修课系统

5.2 建立查询

查询结果如下:

Student:

数据库课程设计 学生选修课系统

Course:

数据库课程设计 学生选修课系统

Score:

数据库课程设计 学生选修课系统

5.3创建视图

创建视图的SQL语句如下:

create view student_view

as

select sno as'学号',sname as'姓名',sex as'性别',class as'班级' from student

create view course_view

as

select cno as'课程号',cname as'课程名',cnumber as'人数'

from course

create view score_view

as

select sno as'学号',cno as'课程号',degree as'成绩'

from score

如下:

根据student创建的视图:

数据库课程设计 学生选修课系统

根据course 创建的视图:

数据库课程设计 学生选修课系统

根据score 创建的视图:

数据库课程设计 学生选修课系统

5.4 创建存储过程

5.4.1用于查看所有学生的存储过程,SQL语句如下:

create procedure all_students

as

select * from student

5.4.2用于查看所有课程的存储过程,SQL语句如下:

create procedure all_courses

as

select * from course

5.4.3 用于查看所有学生所选课程的成绩,SQL语句如下:

create procedure all_score

as

select * from score

5.5 创建触发器

5.5.1 创建一个名为“trig_1”的触发器,当向学生表添加记录时,该触发器自动显示学生表的所有信息。

create trigger trig_1 on student

for insert

as

select * from student

5.5.2 创建一个名为“trig_2”的触发器,当试图向course表添加、修改或删除记录时,该触发器自动显示如下信息:“对不起,你无权进行更新操作!”。

create trigger trig_2 on course

instead of insert,update,delete

as

print'对不起,你无权进行更新操作!'

5.5.3 创建“trig_3”的触发器,当向score修改记录时,该触发器自动显示修改前和修改后的记录。

Create trigger trig_3

onscore

for update

as

select * from deleted ------过去删除的,即修改前的数据;

select * from inserted -------插入的,即修改后的数据;六、测试

测试良好,运行稳定。

七、课程设计总结

通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语言的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主键与外主键的定义,约束项的设置,使逻辑更严密。

在学习过程中,我也上网查了不少资料,也看了一些别人设计的小型超市信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中从学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,知识是无限的,我以后还会在这个领域不断的进行探索,掌握更多的知识。

八、参考文献

1. 数据库原理及应用使用教程姜代红蒋秀莲主编

3. 网上资源网友提供

4. 图书馆数据库相关资料学校提供

九、附件

相关SQL 语句及数据库文件见压缩文件中。