数据库课程设计报告
课程设计题目:学分管理系统
学生姓名:丁进波
专
班
学
业:软件工程
级:10211303
号:1021130301
指导教师:游胜玉
2011/12/1
东华理工大学
学分管理系统数据库课程设计
实验时间:2011.11.28-2010.12.01
实验地点:软件楼 503 室
实验目的:通过本次课程设计让学生能够综合运用所学的关系数
据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的
相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解
决问题的能力以及学生的动手能力。
实验要求:
假设每位学生必须完成基础课 50 学分,专业课 50 学分,选修课 24
学分,人文类课程 8 学分和实验性课程 20 学分才能毕业。完成系列
功能:
1. 录入某位学生的学分信息;
2. 给定学号,显示某位学生的学分完成情况;
3. 给定班号,显示该班所有学生的学分完成情况;
4. 给定学号,修改该学生的学分情况;
5. 按照某类课程的学分高低进行排序;
6. 给定学号,对该学生能否毕业进行确定。
实验思路:
一.学分管理系统的需求分析.
通过对两个班的同学学分成绩的调查,了解到两个班的同学学分管理
仍处于人工管理阶段,没有标准的学生学分存档信息。开发出合适的学生
学分管理系统,可以方便学生学分的管理,提高学分管理工作的效率。
Ⅰ需求分析阶段的目标.
1.录入某位学生的学分信息;
2.给定学号,显示某位学生的学分完成情况;
3.给定班号,显示该班所有学生的学分完成情况;
4.给定学号,修改该学生的学分情况;
5.按照某类课程的学分高低进行排序;
6.给定学号,对该学生能否毕业进行确定。
Ⅱ需求分析阶段的任务.
1.处理对象
系统要处理的对象包括学生基本信息、课程信息、教师信息三
个方面,各个信息包括如下信息
1) 学生基本信息:包括学生的姓名、学号、性别、系别、班级,
可以方便学生信息的查询和更新;
2) 课程基本信息:包括课程代号、课程名、课程种类、学分,
可以方便课程信息的查询与更新;
3) 成绩基本信息:包括学生的学号、学生选取的课程号、学生
的成绩及学分,这可以提高查询效率。
2.处理功能要求
系统主要完成以下几个功能:
1) 录入某位学生的学分信息;
2) 给定学号,显示某位学生的学分完成情况;
3) 给定班号,显示该班所有学生的学分完成情况;
4) 给定学号,修改该学生的学分信息;
5) 按照某类课程的学分高低进行排序;
6) 给定学号,对该学生能否毕业进行确定。
3.安全性和完整性要求
安全性先通过试图机制,不同的用户只能访问系统授权的视图,
这样可以满足系统数据一定程度上的安全性,在通过用户授权机制,
用用户登入来识别用户级,根据这个级别来分配用户权限,达到更高
层次的安全保密功能。
安全性要求用于描述学生基本信息、课程基本信息及教师基本
信息的数据项能否为 NULL,以及一些用户自定义是否符合实际要求。
实验过程:
二.概念设计阶段.
⒈学分管理系统的实体关系图及 E—R 图.
姓名
学号
课程号
成绩
性别
学生
选取
课程
课程类型
课程名
班级
系别
学分
2.E-R 图每个实体的属性.
学生:学号,班号,姓名,性别,年龄,系别
课程:课程名,课程号,课程类型
三.逻辑设计阶段.
将 E-R 图转换为关系模型:
学生:(学号,班号,姓名,性别,年龄,系别)
课程:(课程名,课程号,课程类型)
选取:(学分)
学生学分表
5
学生信息表
Course(课程信息表)
四.数据库实施阶段.
1. 创建数据库
create database 查询 --创建学分管理系统数据库
2.创建表:
create table 学生
(
班号 varchar(10),
学号 varchar(8),
姓名 char(4),
性别 char(2),
年龄 int,
5
系别 char(6)
)
create table 课程
(
课程名 char(8),
课程号 char(6),
课程类型 char(8)
)
create table 学分
(
学号 varchar(8),
课程号 char(8),
学分 int
)
3.创建视图:
create view show
as select 班号,学生.学号,姓名,年龄,性别,系别,学分.课程号,课程名,课程
类型,学分
from 学分,学生,课程
where 学生.学号=学分.学号 and 学分.课程号=课程.课程号
group by 学生.学号,班号,姓名,年龄,性别,系别,学分.课程号,课程名,课程类
型,学分
4.插入新信息
create procedure insertrecord
(
@学号 varchar(8),
@课程号 char(8),
@学分 int
)
as
insert into 学分 values(@学号,@课程号,@学分)
exec insertrecord @学号='1020106',@课程号='01',@学分='26'
exec insertrecord @学号='1020106',@课程号='02',@学分='26'
if not exists(select * from show where 学号='1020106')
begin
insert into 学生(学号,班号,姓名,年龄,性别,系别)
values('1020106','10201','李贵','18','男','计算机')
end