学生信息管理系统数据库实验副本.docx
《学生信息管理系统数据库实验副本.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库实验副本.docx(16页珍藏版)》请在冰豆网上搜索。
学生信息管理系统数据库实验副本
某某大学
数据库原理及应用
课程设计报告
学习管理系统
学号:
姓名:
班级:
专业:
日期:
一、需求分析
随着社会的发展,学生数生的数量越来越多,老师的数量也在不断的增加,教室的数量也在增加,管理老师,学生以及课程,教室越来越麻烦。
因此,我设计学习管理系统来提高学生管理方面的通过这个系统可以使信息的管理更加规范,统计更科学。
模块功能分析:
(1)学生表:
用来管理学生的基本信息;
(2)老师表:
用来管理老师的基本信息;
(3)教室表:
用来安排教室,以及教室是否为空,来为以后安排做铺垫;
(4)课程表:
用来管理各门课程的基本信息,以及与老师之间的关系;
(5)选课表:
用来管理各门课程与老师,以及学生成绩之间的关系。
可以更容易的查询的到学生的最终成绩。
二、概念结构设计
经分析,本系统的E-R图
各实体间关系的e-r图如下:
学生表之间的关系:
老师表之间的关系:
课程表之间的关系:
选课表之间的关系:
教室表之间的关系:
各个表之间的关系:
列名
数据类型
长度
是否允空
备注
学号
char
9
否
主关键字
姓名
char
20
是
性别
char
2
是
年龄
Smallint
是
专业
Char
20
是
三、逻辑结构设计
1、基本表
1学生表
2老师表
列名
数据类型
长度
是否允许空
备注
教工号
char
9
否
主关键字
姓名
char
8
是
性别
char
2
是
年龄
smallint
是
学历
varChar
10
是
毕业院校
Char
40
是
3选课表
列名
数据类型
长度
是否允许空
备注
学号
char
9
否
主关键字
课程号
char
4
否
主关键字
学工号
char
9
是
成绩
smallint
是
4教室表
列名
数据类型
长度
是否允许空
备注
教室号
char
4
否
主关键字
容纳量
Smallint
是
是否空闲
char
2
是
⑤课程表
列名
数据类型
长度
是否允许空
备注
课程号
char
4
否
主关键字
课程名称
char
20
是
学分
smallint
2
是
教室号
smallint
4
是
2、学生管理基本数据
学生表数据:
学生表
学号
姓名
性别
年龄
专业
113060101
刘一'
女
20'
信管
113060102
王二
男
19
旅管
113060103
程飒
男
20
会计
113060104'
何似
女
21
市场营销
113060105'
李五
男
20
'信管
老师表数据:
老师表
学号
姓名
性别
年龄
学历
毕业院校
013061101
莉莉
女
40'
研究生
东华大学
013061102
周一
女
43
博士
郑州大学
013061103
张三
男
35
'研究生
东华理工大学
013061104
赵啊
男
31
研究生
'南昌大学
013061105
王六
男
46
硕士
清华大学
选课表数据:
选课表
学号
课程号
教工号
成绩
113060101
01
013061101
90
113060101
02
'013061103
80
113060102
01
013061101
55
113060103
01
013061101
75
113060105
'01
'013061101
100
课程表数据:
课程表
课程号
课程名称
学分
教室号
01
'数据库
4
'1101
02
数学
5
2101
03
数据结构
4
1102
04
c语言
3
2102
05
vb
'4
2103
教室表数据:
教室号
教室号
容纳量
是否空闲
1101
80
是
1102
100
是
2101
200
是
2102
200
是
3、创建数据库和表
createdatabase学生选课管理信息系统
createtable学生表
(学号char(9)primarykey,
姓名char(20),
性别char
(2),
年龄smallint,
专业char(20));
createtable老师表
(教工号char(9)primarykey,
姓名char(20)unique,
性别char
(2),
年龄smallint,
学历varchar(10),
毕业院校char(40));
createtable教室表
(教室号char(4)primarykey,
容纳量smallint,
空闲char
(2));
createtable课程表
(课程号char(4)primarykey,
课程名称varchar(40),
学分smallint,
教室号char(4)
foreignkey(教室号)references教室表(教室号))
createtable选课表
(学号char(9),
课程号char(4),
教工号char(9),
成绩int,
primarykey(学号,课程号),
foreignkey(学号)references学生表(学号),
foreignkey(课程号)references课程表(课程号),
foreignkey(教工号)references老师表(教工号)
)
插入数据:
insertinto学生表
values('113060101','刘一','女','20','信管')
insertinto学生表
values('113060102','王二','男','19','旅管')
insertinto学生表
values('113060103','程飒','男','20','会计')
insertinto学生表
values('113060104','何似','女','21','市场营销')
insertinto学生表
values('113060105','李五','男','20','信管')
insertinto老师表
values('013061101','莉莉','女','40','研究生','东华大学')
insertinto老师表
values('013061102','周一','女','43','博士','郑州大学')
insertinto老师表
values('013061103','张三','男','35','研究生','东华理工大学')
insertinto老师表
values('013061104','赵啊','男','31','研究生','南昌大学')
insertinto老师表
values('013061105','王六','男','46','硕士','清华大学')
insertinto教室表
values('1101','80','是')
insertinto教室表
values('1102','100','是')
insertinto教室表
values('2101','200','是')
insertinto教室表
values('2102','200','是')
insertinto教室表
values('2103','120','是')
insertinto课程表
values('01','数据库','4','1101')
insertinto课程表
values('02','数学','5','2101')
insertinto课程表
values('03','数据结构','4','1102')
insertinto课程表
values('04','c语言','3','2102')
insertinto课程表
values('05','vb','4','2103')
insertinto选课表
values('113060101','01','013061101','90')
insertinto选课表
values('113060101','02','013061103','80')
insertinto选课表
values('113060102','01','013061101','55')
insertinto选课表
values('113060103','01','013061101','75')
insertinto选课表
values('113060101','03','013061104','90')
insertinto选课表
values('113060105','01','013061101','100')
创建索引
createuniqueindex学号on学生表(学号);
createuniqueindex教工号on老师表(教工号);
createuniqueindex教室号on教室表(教室号);
createuniqueindex课程号on课程表(课程号);
createuniqueindex学号on选课表(学号,课程号);
dropindex学生表.学号
创建视图
createview学生表视图
as
select学号,姓名,年龄
from学生表
createview老师表视图
as
select教工号,姓名,年龄,学历
from老师表
createview教室表视图
as
select教室号,容纳量
from教室表
createview课程表视图
as
select课程号,课程名称,学分
from课程表
createview选课表视图
as
select学号,课程号,成绩
from选课表
存储过程
createprocedure学生信息
as
select学号,姓名,年龄
from学生表
where性别='女';
createprocedure老师信息
as
select教工号,姓名,年龄,学历,毕业院校
from老师表
where年龄between40and60
创建触发器
createtrigger学生信息情况on学生表
afterinsert
as
select*from学生表
select*frominserted
go
insertinto学生表(学号,姓名)
values('113060106','刘饿')
查询
select姓名,学号,年龄,专业
from学生表
更新
update学生表
set年龄=20
where姓名='刘饿'
删除
deletefrom学生表
where学号='113060106'
select学号,课程号,成绩
from选课表
orderby成绩desc
五、系统设计小结
通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。
以前不懂为何要创建触发器、视图等,现在终于知道它们的优点了。
根据自己数据库的特点,我自己一步一步做成了实验,得到了成功,心情很高兴。
在自己没做数据库课程设计以前,总是觉得自己什么都不懂什么都不会,但是现在做出来了,所以我觉得自己还是有能力做一些实际操作方面的东西。
我相信以后通过自己自学其它课程,我一定会做出一个更好的数据库。
六、参考资料
1.李红主编。
数据库原理与应用。
北京:
高等教育出版社,2003。
2.黄志球、李清等编著。
数据库应用技术基础。
北京:
机械工业出版社,2003。