| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7082 人关注过本帖
标题:学生选课系统数据库的设计与实现
只看楼主 加入收藏
liuyuanyang
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-5-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
学生选课系统数据库的设计与实现

学生选课系统数据库的设计与实现





数据库技术课程设计

一.    题目:

 学生选课系统数据库的设计与实现

 
二.    目的:
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的都收能力。
三.    要求和说明:
1.自己独立完成,最终提交课程设计报告和实验成果
2.课程设计报告格式:封面、题目、时间地点、要求、内容、详细步骤和过程、总结
3.指定时间必须在实验机房上机
4.最终成绩包括平时成绩(50%)和最终考核成绩(50%)
5.实验设计内容必须以老师指定的题目为准,老师指定的题目为最终检查的依据
四.    内容:
1.    对各个系统进行系统功能需求分析
2.    数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)
3.    设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定
4.    通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引
5.    根据系统功能需求设计相应的查询视图
6.    要求根据系统功能需求建立存储过程
7.    根据功能需求建立相应的触发器以保证数据的一致性
8.    通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)


学生选课系统数据库的设计与实现



[size=7]本人考研,没时间做这些了,况且学的不好,那位大侠有的话请帮帮忙吧~~  叩谢!!!!!!!!  急需!

收到的鲜花
  • 球球2009-09-09 16:43 送鲜花  -1朵   附言:请把格式调整好
搜索更多相关主题的帖子: 学生选课 课程设计 SQL 数据库 
2009-08-23 20:02
lyroge
Rank: 2
等 级:论坛游民
帖 子:11
专家分:82
注 册:2009-8-21
收藏
得分:20 
得有偿报酬就有人帮啦
2009-08-25 13:52
liuyuanyang
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-5-4
收藏
得分:0 
自己弄的 超级简单 选课管理系统
--
--创建数据库
--
create database 学生选课管理系统
on
(
    name = ChoiceCourse_dat,
    filename = 'C:\Documents and Settings\Administrator\桌面\yuanyangliu\ChoiceCourse.mdf',
    size = 5,
    maxsize= 10,
    filegrowth = 2
)
--创建日志文件
log on
(
    name=ChoiceCourse_log,
    filename='C:\Documents and Settings\Administrator\桌面\yuanyangliu\ChoiceCourse.ldf',
    size=3,
    maxsize=10,
    filegrowth=2
)

/*-----------------------------------------------------------------------------*/
--创建教师信息表
use 学生选课管理系统
go
create table 教师信息表
(
    教师号 char(10) constraint Teacher_Prim primary key not null,
    姓名   char(10) not null ,
    性别   char(2) not null default '男',
    年龄   int  check ( 年龄 between 20 and 100),
    职称   char(10) not null default '讲师',
    工资   smallmoney ,
    岗位津贴  smallmoney ,
    系别   char(10) not null
)
go
--为教师信息表创建索引
create index 教师 on 教师信息表(教师号)

--在教师信息表上创建视图
create view 教师信息视图
as
select 教师号,姓名,性别,年龄,职称,系别
from 教师信息表
--drop table 教师信息表

/*-----------------------------------------------------------------------------*/
--创建学生信息表

use 学生选课管理系统
go
create table 学生信息表
(
    学号 char(10) constraint Student_Prim primary key not null,
    姓名 char(10) not null,
    性别 char(2) not null  default '男',
    年龄 int not null,
    系别 char(10) not null ,
)
go
--为学生信息表创建索引
create index 学生 on 学生信息表(学号)

--创建学生信息视图
create view 学生信息视图
as
select * from 学生信息表

/*-----------------------------------------------------------------------------*/
--创建课程信息表
use 学生选课管理系统
go
create table 课程信息表
(
    课程号  char(10) constraint Course_Prim primary key not null,
    课程名  char(10) not null,
    课时    int
)
go

--索引在课程信息表
create index 课程 on 课程信息表(课程号)

--课程信息表视图
create view 课程信息视图
as
select * from 课程信息表

/*-----------------------------------------------------------------------------*/

--创建选课关系表
use 学生选课管理系统
go
create table 选课关系表
(
    学号 char(10) not null ,
    课程号 char(10) not null,
    成绩  numeric(6,2),
    constraint Choice_Prim primary key (学号,课程号),
)
go
--创建索引
create index 选课 on 选课关系表(学号)

--创建视图
create view 选课关系视图
as
select * from 选课关系表

/*-----------------------------------------------------------------------------*/
--创建授课关系表
use 学生选课管理系统
go
create table 授课关系表
(
    教师号 char(10) not null,
    课程号 char(10) not null,
    constraint Teaching_Prim primary key (教师号,课程号),
)
go

--drop table 授课关系表
--索引
create index 授课 on 授课关系表(教师号)
--视图
create view 授课关系视图
as
select * from 授课关系表

/*-----------------------------------------------------------------------------*/
--创建学生信息与学生选课信息汇总视图
--drop view 学生信息汇总视图
create view 学生信息汇总视图
as
select        学生信息表.学号,
              姓名,
              性别,
              年龄,
              系别,
              课程名,
              成绩   

from  学生信息表,课程信息表,选课关系表
where 学生信息表.学号 =选课关系表.学号 and 选课关系表.课程号 = 课程信息表.课程号

select * from 学生信息汇总视图

--====================================信息 (增,删,查,改)====================================

-------------教师信息表(增,删,查,改)存储过程----------------

--增
create Procedure 添加教师信息
(
     @教师号 char(10) ,
     @姓名 char(10),
     @性别 char(2),
     @年龄 int ,
     @职称 char(10),
     @工资 smallmoney,
     @岗位津贴 smallmoney,
     @系别 char(10)
)
as
insert into 教师信息表 values(@教师号,@姓名,@性别,@年龄,@职称,@工资 ,@岗位津贴,@系别)

--删

create Procedure 教师号删除教师信息
(
     @教师号 char(10)   
)
as
    begin
    if exists (select * from 授课关系表 where 教师号=@教师号)
        delete from 授课关系表 where 教师号=@教师号
        else
        print '此教师不存在'
    delete from 教师信息表 where 教师号=@教师号
    end
--exec 教师号删除教师信息 'T1'
--select * from 教师信息表

--查
--drop Procedure 姓名查找教师信息
create Procedure 姓名查找教师信息
(
     @姓名 char(10)   
)
as
    if (@姓名 is null)
    begin
        print '姓名不能为空,请重新输入姓名'
        return 13
    end
select *  from 教师信息表
where 姓名=@姓名
exec 姓名查找教师信息 '李力'

--drop Procedure 教师号查找教师信息
create Procedure 教师号查找教师信息
(
     @教师号 char(10)
   
)
as
    if (@教师号 is null)
    begin
        print '教师号不能为空,请重新输入教师号!'
        return 13
    end
select *
from 教师信息表
where 教师号=@教师号

exec 教师号查找教师信息 'T1'

--改
drop Procedure 教师号更新教师全部信息
create Procedure 教师号更新教师全部信息
(
     @教师号 char(10) ,
     @姓名 char(10),
     @性别 char(2),
     @年龄 int ,
     @职称 char(10),
     @工资 smallmoney  ,
     @岗位津贴 smallmoney ,
     @系别 char(10)
)
as
    if (@教师号 is null)
    begin
        print '教师号不能为空,请重新输入教师号!'
        return 13
    end
   
    begin
    update 教师信息表
    set 姓名=@姓名
    where 教师号=@教师号
    update 教师信息表
    set 性别=@性别
    where 教师号=@教师号
    update 教师信息表
    set 年龄=@年龄
    where 教师号=@教师号
    update 教师信息表
    set 职称=@职称
    where 教师号=@教师号
    update 教师信息表
    set 工资=@工资
    where 教师号=@教师号
    update 教师信息表
    set 岗位津贴=@岗位津贴
    where 教师号=@教师号
    update 教师信息表
    set 系别=@系别
    where 教师号=@教师号   

    end


exec 教师号更新教师全部信息 'T1','李王','男',57  ,'教授',2500  , 3000 ,'计算机'
exec 教师号更新教师全部信息 'T1','李力','男',47  ,'教授',1500  , 3000 ,'计算机'
select * from 教师信息表
delete  from 教师信息表

-------------学生信息(增,删,查,改)存储过程--------------------

--增
create Procedure 添加学生信息
(
     @学号 char(10) ,
     @姓名 char(10),
     @性别 char(2),
     @年龄 int ,
     @系别 char(10)
)
as
insert into 学生信息表 values(@学号,@姓名,@性别,@年龄,@系别)
--删

create Procedure 删除学生信息
(
     @学号 char(10)   
)
as
    begin
    if exists (select * from 选课关系表 where 学号=@学号)
        delete from 选课关系表 where 学号=@学号
        else
        print '此学生不存在'
    delete from 学生信息表 where 学号=@学号
    end
exec 删除学生信息 'S1'
select * from 学生信息表
select * from 学生信息汇总视图

exec 添加学生信息 'S1','赵义','女', 17 ,'计算机'
exec 添加选课信息 'S1','C1',90
exec 添加选课信息 'S1','C2',85
select * from 选课关系表


--查
--drop Procedure 学号查找学生信息
create Procedure 学号查找学生信息
(
     @学号 char(10)

)
as
    if (@学号 is null)
    begin
        print '学号不能为空,请重新输入学号!'
        return 13
    end
select *
from 学生信息表
where 学号=@学号
exec 学号查找学生信息 'S1'


--drop Procedure 姓名查找学生信息
create Procedure 姓名查找学生信息
(
     --@学号 char(10) output,
     @姓名 char(10)
     --@性别 char(2) output,
     --@年龄 int output,
     --@系别 char(10) output
)
as
    if (@姓名 is null)
    begin
        print '姓名不能为空,请重新输入姓名!'
        return 13
    end
select *
from 学生信息汇总视图
where 姓名=@姓名

exec 姓名查找学生信息 '钱尔'

--改
create Procedure 学号更新学生全部信息
(
     @学号 char(10) ,
     @姓名 char(10),
     @性别 char(2),
     @年龄 int ,
     @系别 char(10)   
)
as
    if (@学号 is null)
    begin
        print '学号不能为空,请重新输入学号!'
        return 13
    end
   
    begin
    update 学生信息表
    set 姓名=@姓名
    update 学生信息表
    set 性别=@性别
    update 学生信息表
    set 年龄=@年龄
    update 学生信息表
    set 系别=@系别
    where 学号=@学号   
    end


-------------课程信息表(增,删,查,改)存储过程--------------------
--增
create Procedure 添加课程信息
(
     @课程号 char(10) ,
     @课程名 char(10),   
     @课时 int
   
)
as
insert into 课程信息表 values(@课程号,@课程名,@课时)


--查
create Procedure 课程名查找课程信息
(
     @课程名 char(10)
)
as
        if (@课程名 is null)
    begin
        print '课程名不能为空,请重新输入课程名!'
        return 13
    end
select *  from 课程信息表
where (课程名=@课程名)


create Procedure 课程号查找课程信息
(
     @课程号 char(10)
)
as
        if (@课程号 is null)
    begin
        print '课程号不能为空,请重新输入课程号!'
        return 13
    end
select *  from 课程信息表
where (课程号=@课程号)

--改
create Procedure 课程号更新课程全部信息
(
     @课程号 char(10) ,
     @课程名 char(10),   
     @课时 int
)
as
        if (@课程号 is null)
    begin
        print '课程号不能为空,请重新输入课程号!'
        return 13
    end
   
    begin
    update 课程信息表
    set 课程名=@课程名
    update 课程信息表
    set 课时=@课时
    where 课程号=@课程号   
    end

-------------选课关系(增,删,查,改)存储过程--------------------
--增
create Procedure 添加选课信息
(
     @学号 char(10) ,
     @课程号 char(10),   
     @成绩  numeric(6,2)
   
)
as
  insert into 选课关系表 values(@学号,@课程号,@成绩)

--删
create Procedure 删除选课信息
(
     @学号 char(10),
     @课程号 char(10)
)
as
 delete from 选课关系表 where(学号=@学号 and 课程号=@课程号)

--查

--改



-------------授课关系(增,删,查)存储过程--------------------
--增
create Procedure 添加授课信息
(
     @教师号 char(10) ,
     @课程号 char(10)  
)
as
  insert into 授课关系表 values(@教师号,@课程号)

--删
create Procedure 删除授课信息
(
     @教师号 char(10),
     @课程号 char(10)   
)
as
 delete from 授课关系表 where(教师号=@教师号 and 课程号=@课程号)

--查
create Procedure 教师号查询授课信息
(
    @教师号 char(10)
)
as
  select * from 授课关系表 where (教师号=@教师号)



----------------------------------------------触发器----------------------------------------------
--为教师信息表创建触发器
create trigger 教师
on 教师信息表
for insert , update , delete
as
select * from 教师信息表
exec 添加教师信息 'T6','洋洋','男',30 ,'教授',3300 , 5000 ,'信息'
exec 教师号删除教师信息 'T6'


--为学生信息表创建触发器
create trigger 学生
on 学生信息表
for insert , update , delete
as
select * from 学生信息表
exec 添加学生信息 'S7','洋洋','男', 20 ,'计算机'
exec 删除学生信息 'S7'

--课程信息表创建触发器
create trigger 课程
on 课程信息表
for insert , update , delete
as
select * from 课程信息表

exec 添加课程信息 'C9','UML',80

--添加选课关系表触发器
create trigger 选课
on 选课关系表
for insert , update , delete
as
select * from 选课关系表

exec 添加选课信息 'S6','C9',89
exec 删除选课信息 'S6','C9'

--授课关系触发器
create trigger 授课
on 授课关系表
for insert , update , delete
as
select * from 授课关系表
exec 添加授课信息 'T6','C9'
exec 删除授课信息 'T6','C9'
select * from 授课关系表


----------------------------------------------数据添加---------------------------------------------
--添加教师信息
exec 添加教师信息 'T1','李力','男',47  ,'教授',1500  , 3000 ,'计算机'
exec 添加教师信息 'T2','王平','女',28  ,'讲师', 800  , 1200 ,'信息'
exec 添加教师信息 'T3','刘伟','男',30  ,'讲师', 900  , 1200 ,'计算机'
exec 添加教师信息 'T4','张雪','女',51  ,'教授',1600  , 3000 ,'自动化'
exec 添加教师信息 'T5','张兰','女',39 ,'副教授',1300 , 2000 ,'信息'
--select * from 教师信息视图
--select * from 教师信息表

--添加学生信息
exec 添加学生信息 'S1','赵义','女', 17 ,'计算机'
exec 添加学生信息 'S2','钱尔','男', 18 ,'信息'
exec 添加学生信息 'S3','孙珊','女', 20 ,'信息'
exec 添加学生信息 'S4','李思','男', 21 ,'自动化'
exec 添加学生信息 'S5','周武','男', 19 ,'计算机'
exec 添加学生信息 'S6','吴丽','女', 20 ,'自动化'

--select * from 学生信息表
--select * from 学生信息视图

--添加课程信息表
exec 添加课程信息 'C1','程序设计',60
exec 添加课程信息 'C2','微机原理',80
exec 添加课程信息 'C3','数字逻辑',60
exec 添加课程信息 'C4','数据结构',80
exec 添加课程信息 'C5','数据库',60
exec 添加课程信息 'C6','编译原理',60
exec 添加课程信息 'C7','操作系统',60
--select * from 课程信息表
--select * from 课程信息视图
--添加选课信息
exec 添加选课信息 'S1','C1',90
exec 添加选课信息 'S1','C2',85
exec 添加选课信息 'S2','C5',57
exec 添加选课信息 'S2','C6',80
exec 添加选课信息 'S2','C7',95
exec 添加选课信息 'S2','C4',70
exec 添加选课信息 'S3','C1',75
exec 添加选课信息 'S3','C2',70
exec 添加选课信息 'S3','C4',85
exec 添加选课信息 'S4','C1',93
exec 添加选课信息 'S4','C2',85
exec 添加选课信息 'S4','C3',83
exec 添加选课信息 'S5','C2',89
--select * from 选课关系表

--添加授课信息
exec 添加授课信息 'T1','C1'
exec 添加授课信息 'T1','C4'
exec 添加授课信息 'T2','C5'
exec 添加授课信息 'T3','C1'
exec 添加授课信息 'T3','C5'
exec 添加授课信息 'T4','C2'
exec 添加授课信息 'T4','C3'
exec 添加授课信息 'T5','C5'
exec 添加授课信息 'T5','C7'
select * from 授课关系表
2009-09-02 08:54
快速回复:学生选课系统数据库的设计与实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029607 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved