数据库课程设计实验报告3

时间:2024.5.13

数据库课程设计报告

课程设计题目学分管理系统

业:网络工程

级:10211302

名:胡志雁

: 1021130204

指导教师:黄燕

20##121

学分管理系统数据库课程设计

实验时间:2010.11.28-2010.12.01

实验地点:软件楼501室

实验目的:通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。

实验要求:

假设每位学生必须完成基础课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图每个实体的属性.

学生:学号,姓名,性别,班级,系别

课程:课程号,课程名,学分,课程类型Student(学生信息表)

三.逻辑设计阶段.

将E-R图转换为关系模型:

学生:(s_no,s_name,sex,class,dept)

课程:(c_no,c_name,score,type)SC(学生选课情况表)

选取:(grade)

Course(课程信息表)



四.数据库实施阶段.

1.创建数据库

create database Credit --创建学分管理系统数据库

on

( name=Credit_data,

filename='c:\CreditData.mdf',

size=10,

maxsize=50,

filegrowth=5 )

2.创建表:

create table Course --创建课程信息表

( c_no char(20) primary key not null,

c_name char(20),

score float, /*学分*/

type char(20) )

insert into Course values('001','C语言','30','基础课')

insert into Course values('002','数据结构','32','专业课')

insert into Course values('003','操作系统','30','基础课')

insert into Course values('004','计算机网络','28','选修课')

insert into Course values('005','Java语言','32','专业课')

insert into Course values('006','网络基础','32','专业课')

insert into Course values('007','大学英语','30','基础课')

insert into Course values('008','现代通信','28','选修课')

insert into Course values('009','数据库','32','专业课')

insert into Course values('010','网络安全','30','基础课')

insert into Course values('011','数据库实验','24','实验课')

insert into Course values('012','马列主义','10','人文类')

insert into Course values('013','思修品德','10','人文类')

create table Student --创建学生信息表

( s_no char(20) primary key not null,

s_name char(20),

sex char(10),

class char(20),

dept char(20) )

insert into Student values(' 1021130201','邬佳娜','女','10211302','网络工程')

insert into Student values(' 1021130204','胡志雁','男','10211302','网络工程')

insert into Student values(' 1021130207','汪小青','女','10211302','网络工程')

insert into Student values(' 1021130209','王军','男','10211302','网络工程')

create table SC --学生选课情况表

( s_no char(20) not null,

c_no char(20) not null,

grade int,

score float

constraint sc_prim primary key(s_no,c_no) )

insert into SC values('1021130201','001','80','28')

insert into SC values('1021130201','002','85','31')

insert into SC values('1021130201','010','87','27')

insert into SC values('1021130201','011','80','20')

insert into SC values('1021130201','012','87','10')

insert into SC values('1021130204','001','81','29')

insert into SC values('1021130204','003','89','30')

insert into SC values('1021130204','005','98','31')

insert into SC values('1021130204','007','95','29')

insert into SC values('1021130204','008','88','26')

insert into SC values('1021130204','011','80','23')

insert into SC values('1021130209','013','90','10')

insert into SC values('1021130207','001','81','27')

insert into SC values('1021130207','002','85','28')

insert into SC values('1021130207','006','83','29')

insert into SC values('1021130207','011','85','24')

insert into SC values('1021130209','001','83','27')

insert into SC values('1021130209','003','80','28')

insert into SC values('1021130209','006','92','30')

insert into SC values('1021130209','007','86','28')

insert into SC values('1021130209','009','87','20')

insert into SC values('1021130209','011','87','19')

insert into SC values('1021130209','012','87','9')

create unique index SC_ind on SC(s_no,c_no) --创建索引


3.创建视图:

create view show --创建视图,提供基本查询

as select sc.s_no,class,s_name,Course.c_no,c_name,sc.score,type

from SC,Student,Course

where SC.s_no=Student.s_no and SC.c_no=Course.c_no

4.简单查询:

select s_no,class,s_name,c_name,score,type --查询信息

From show

order by class, s_no

select s_no,s_name,c_name,class,score --根据名字查询

from show

where s_name='邬佳娜'


5.创建触发器,保证数据一致性:

create trigger c_insert --在Course表上创建插入触发器

on Course

for insert

as

select * from show

order by s_no

create trigger c_delete --在Course表上创建删除触发器

on Course

for delete

as

declare @oldcno varchar(20)

select @oldcno=c_no from deleted

delete from SC where c_no=@oldcno

create trigger c_update --在Course表上创建修改触发器

on Course

for update

as

declare @oldcno varchar(20),@newcno varchar(20)

if update(c_no)

begin

select @oldcno=c_no from deleted

select @newcno=c_no from inserted

update SC set c_no=@newcno where c_no=@oldcno

select * from show

end

update Course --在Course表上修改数据

set c_no='016'

where c_name='C语言'

create trigger sc_insert --在SC表上创建插入触发器

on SC

for insert

as

select *

from show

order by s_no

create trigger sc_delete --在SC表上创建删除触发器

on SC

for delete

as

select *

from show

order by s_no

create trigger sc_update --在SC表上创建修改触发器

on SC

for update

as

select *

from show

order by s_no

create trigger s_delete --在Student表上创建删除触发器

on Student

for delete

as

declare @oldsno varchar(20)

select @oldsno=s_no from deleted

delete from SC where s_no=@oldsno

create trigger s_update --在Student表上创建修改触发器

on Student

for update

as

declare @newsno varchar(20)

update SC

set s_no=@newsno

where s_no in(select s_no from deleted)

6.创建存储过程,实现功能要求:

create procedure luru --创建存储过程,在SC表中插入信息(录入某位学生

( 的学分信息)

@sno char(20),

@cno char(20),

@grade int,

@score float

)

as

insert into SC(s_no,c_no,grade,score)

values(@sno,@cno,@grade,@score)

exec luru '1021130201','007','85','28.5' --录入信息

create procedure sno --创建存储过程,按给定学号,显示某位学生的学分

(@sno char(20)) 完成情况

as

select s_no,class,s_name,c_name,type,score

from show

where s_no=@sno

order by s_no,type

exec sno '1021130204' --给定一个学号查询

create procedure sum_score --创建存储过程,按给定学号,显示某位学生

(@sno char(20)) 的各个课程类型获得学分情况

as

select s_no,s_name,type,sum(score) as score

from show

where s_no=@sno

group by s_no,type,s_name

exec sum_score '1021130201' --给定一个学号查询

create procedure class --创建存储过程,按给定班号,显示该班所有学生

(@class char(20)) 的学分完成情况

as

select *

from show

where class=@class

order by class

exec class '10211302' --给定一个班号查询

create procedure score_update --给定学号,修改该学生的学分情况

(

@sno char(20),

@cno char(20),

@grade int,

@score float

)

as

update SC

set c_no=@cno,grade=@grade,score=@score

where s_no=@sno

exec score_update @sno='09110902',@cno='016',@grade='75',@score='25' --给定学号及学分情况,执行修改

create procedure paixu --创建存储过程,按照某类课程的学分高低进行排序

(@cno char(20))

as

select *

from show

where c_no=@cno

order by score desc

exec paixu '002' --给定一门课程的课程号

7.判定毕业

create view graduation --创建视图,用于判定学生是否毕业

as select s_no,s_name,type,sum(score) as score

from show

group by s_no,type,s_name

create procedure judge --判定毕业

(@sno char(10))

as

declare @jc float

declare @rw float

declare @sy float

declare @xx float

declare @zy float

declare @x int

set @x=0

select @jc=score from graduation where @sno=s_no and type='基础课'

if @jc>=50

begin

set @x=1

select @rw=score from graduation where @sno=s_no and type='人文类'

if @rw>=8

begin

set @x=2

select @sy=score from graduation where @sno=s_no and type='实验课'

if @sy>=20

begin

set @x=3

select @xx=score from graduation where @sno=s_no and type='选修课'

if @xx>=24

begin

set @x=4

select @zy=score from graduation where @sno=s_no and type='专业课'

if @zy>=50

begin

set @x=5

end

end

end

end

end

if @x!=5

print '学号为'+@sno+',该生学分未修满,不准毕业!'

else

print '学号为'+@sno+',该生学分修满,准许毕业!'

EXEC judge @sno='09110902' --给定一个学号

8.创建用户权限:

创建登陆账号:

exec sp_addlogin'mikecai','123','Credit',null

创建当前数据库的登录账号:

exec sp_adduser'mikecai','mikecai','db_owner'

对象权限与角色的授予:

grant update(score),select,delete

on Course

to mikecai

grant update(grade,score),select,delete

on SC

to mikecai

grant update(s_name,sex,class,dept),select,delete

on Student

to mikecai

实验总结:

通过这次课程设计的实际调查与操作,我了解了目前学分管理的现状,学习并掌握了学分管理系统的设计思路,以及相应SQL语言的编写,同时,可以熟练运用流程控制语句来完成一些较为复杂的设计,存储过程和触发器也基本掌握。

心得体会:

掌握了SQL Server 2000的功能与特点以及相应的SQL语言,让我们可以很好地运用触发器和存储过程等模块,去解决一些生活中的实际问题,而不光是纸上谈兵;同时,可以使我们对一个完整数据库系统的设计过程有了更深入的了解和体会。

更多相关推荐:
数据库课程设计报告范例

数据库课程设计报告课题名称:图书管理统专业:信息与计算科学班级:信计071班小组人员:***一.背景资料在高校中,学生的数量较多,图书的数量也比较多,每天图书的借阅量比较大,采用手工的处理方式已经不能满足这种需…

数据库课程设计实验报告

11课题意义21世纪是信息化的时代信息化以更快捷更方便为目标来融入各行各业学校也不能例外当前我国的学校正在加紧实施信息化建设其中学生管理是相当重要的一部分12课题开发的目的本课题为了适应信息时代发展提高学院工作...

数据库课程设计实验报告

数据库课程设计报告课程名称数据库课程设计题目教务管理系统指导教师卢益清设计起止日期20xx515至20xx62学院信息管理学院专业电子商务组号组长陈哲1北京信息科技大学计算机信息系统系课程设计实验报告课程名称数...

数据库课程设计实验报告

西安???W院数据库课程设计报告书系部名称学生姓名专业名称班级时间计算机20xx年12月20日至20xx年12月30日一本课程设计的目的熟悉数据库的语句语法将数据库运用到实际的项目中体会前台与后台的联系二选定的题...

数据库课程设计实验报告

数据库课程课程设计实验报告题目学生基本信息管理系统院系计算机学院班级软件1002班学号04103064姓名张芳莉指导老师乔平安一需求分析1基本功能要求1学生基本信息管理学生对自己的基本信息进行查询管理员对学生的...

数据库课程设计报告扉页及格式软件

课程设计报告课程名称数据库课程设计设计题目教材管理系统专业班级软件0941姓名***学号03指导教师***起止时间20**年6月20日-6月24日成绩评定电气与信息学院课程设计考核和成绩评定办法1.课程设计的考…

数据库课程设计报告090247

北京广播电视大学数据库应用课程设计报告书题目:出版社图书管理系统姓名:学号:班级:09春计算机分校:通州电大指导教师:设计日期:20##年7月北京广播电视大学课程设计任务书题目出版社图书管理系统专业、班级09春…

数据库课程设计报告

徐州工程学院信电学院计算机网络专业数据库课程设计教学管理系统的设计1概述11设计目的用户请求经应用程序的转化化为对数据库中的相应的表或视图的操作数据库再把处理的结果或都是错误信息返回结应用程序应用程序把结果返回...

数据库课程设计报告

数据库课程设计报告学号20xx1004357姓名李世荣班级19xx23指导老师胡霍真邮件管理系统摘要21世纪是网络飞速发展的时代电子邮件已经成为热门话题随着网络技术的不断发展网络应用已经渗透到人类社会的各个角落...

数据库课程设计报告

南京理工大学泰州科技学院计算机科学与技术系信管专业10信管2班级大型数据库课程设计报告书姓名赵敏学号指导老师职称讲师设计地点起讫时间完成报告书时间20xx年12月5日第1页课程设计要求各专业学生应根据课程任教老...

数据库课程设计报告

湖南文理学院数据库课程设计1数据库原理与应用课程设计报告题目仓库管理系统设计专业班级电信0801班设计学生蒋文福设计时间20xx年6月20日7月1日湖南文理学院物理与电子科学学院湖南文理学院数据库课程设计摘要随...

数据库课程设计实验报告(宾馆客房管理系统)

数据库原理课程设计题目宾馆客房管理系统学院数学与信息工程学院专业信息管理和信息系统班级信息071学号学生姓名指导教师编写日期20##年01月21日目录1系统前期分析设计.....................…

数据库课程设计实验报告(17篇)