学生成绩管理系统数据库设计报告.docx
《学生成绩管理系统数据库设计报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统数据库设计报告
E-R图如下
课程信息图
成绩图
学生信息表
2.1.2数据库完整E-R图
3.数据库逻辑设计
(1)关系模式
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教成绩三个关系,其关系模式中对每个实体定义的属性如下:
课程信息表:
(课程号,课程名,教师号,学分)
此为联系“课程信息表”所对应的关系模式。
课程名为该关系的候选码。
学生信息表:
(学号,姓名,性别,年龄,专业,系别)
此为联系“学生信息表”所对应的关系模式。
学号为该关系的候选码。
成绩表:
(学号,课程号,课程名,成绩)
此为联系“输入”所对应的关系模式。
题目编号、管理号为该关系的候选码
数据库中包含3个表,即课程信息(classinformation),学生信息(studentinformation),成绩信息(scoreinformation)。
(2)关系模式的规范化
(3)数据库中表结构
1)课程信息(classinformation):
|课程号(cno)char(10)primarykey定义为主键
|课程名cname)char(10)非空
|教师号(teano)char(10)非空
|学分(credit)char(4)非空
2)学生信息(studentinformation):
|学号(sno)char(10)primarykey定义主键
|姓名(sname)char(10)非空
|性别(ssex)char
(2)非空
|年龄(sage)char
(2)非空
|专业(major)char(10)非空
|系别(depart)char(10)非空
3)成绩信息(scoreinformation):
|学号(sno)char(10)primarykey定义主键
|课程号(cno)char(10)非空
|成绩(degree)char(10)非空
|课程名(cname)char(10)非空
三、系统操作说明及运行结果
1.数据定义:
基本表的创建、修改及删除;索引的创建和删除;视图的创建和删除
(1)基本表的创建,建表语句
createtablestudents(
stunochar(10)primarykey,
stunamevarchar(40)notnull,
stusexchar
(2)notnull,
stuagechar(10)notnull,
stumajorchar(10)notnull,
studepartchar(10)notnull,
)
(2)基本表的删除
droptablestudents
2.数据查询操作
A.单表查询:
(1)查询sno为09901学生的sname
selectsname
fromstudent
wheresno='0901'
结果:
(2)查询ssex为’女’并且sdepart为’金融系’的sname
selectsname
fromstudent
wheressex='女'and
sdepart='金融系'
结果:
(3)查询所有学生的姓名和系别。
selectsname,Depart
fromstudent
结果:
(4)查询Depart为计算机系的sname。
selectsname
fromstudent
whereDepart='计算机系'
结果:
(5)查询所有学生所在院系名称
selectdistinctDepart
fromstudent
结果:
(6)查询学生信息表中年龄小于21和年龄大于21的学生的姓名和系别
selectsname,Depart
fromstudent
wheresage>21orsage<21
结果:
B.嵌套查询
查询选修了0304这门课的所有学生的学号、姓名、年龄、院系
Selectsno,sname,sage,Depart
Fromstudent
Wheresnoin
(selectsno
Fromscore
Wherecno=’0304’)
查询结果
3.数据库更新操作
A.插入数据
向Student表中添加一项记录:
姓名:
杨昇昇,学号:
0907,性别:
男,年龄:
22专业:
信息管理,系别:
金融系
Insert
Into
Student1(Sno,Sname,Ssex,sage,major,depart)
Values('0907','杨昇昇','男','22','信息管理','金融系')
B.修改数据
修改的学号为0908:
UpdateStudent
SetSno=’0908’
WhereSname=’陈波’;
C.删除数据
删除所有金融学生的记录
Delete
fromstudent
Where(depart=’金融系’);
4.视图的操作:
数据库视图的定义(创建和删除)、查询和更新
A.查询所有学生选课的信息,包括学号、姓名、课程号、课程名、成绩
createviewscore1
as
selectstudent.sno'学号',student.sname'学生名',o'课程号',ame'课程名',score.degree'成绩'
fromstudent,class,score
wherestudent.sno=score.snoando=o
Go
查询结果
B.更新视图:
(1)修改信息:
将宋丹丹的名字改为宋丹
Updatescore1
set学生名='宋丹丹'
where学生名='宋丹'
(2)删除信息:
删除视图score1中王恒文的记录
delete
fromscore
where学生名='王恒文'
四、程序清单
1.创建数据库
createdatabasestuDB
创建表
在此学生成绩管理系统中需要创建三个表,即课程信息表、学生信息表和成绩表。
创建数据库后,为stuDB数据库添加数据表,步骤如下。
(1)新建查询窗口
(2)在查询窗口中键入下列SQL语句
createtableClass(//创建课程信息表
cnochar(10)primarykey,//课程号
cnamechar(10)notnull,//课程名
teanochar(10)Notnull//教师号
creditchar(4),Notnull//学分
)
执行上述SQL语句即可创建课程信息表相关表格
createtablestudent1(//创建学生信息表
snochar(10)primarykey,//学号
snamechar(10)notnull,//姓名
ssexchar
(2)notnull,//性别
Sagechar
(2)notnull,//年龄
Majorchar(10)notnull,//专业
Departchar(10)notnull,//系别
)
执行上述SQL语句即可创建学生信息表相关表格
createtablescore(//创建成绩表
snochar(10),//学号
cnochar(10),//课程号
cdegreechar(10),//学分
cnamechar(10),//课程名
执行上述SQL语句即可创建成绩表相关表格
学生信息相关表格
Sno
sname
ssex
sage
major
depart
0901
薛克强
男
22
软件
计算机系
0902
陈波
男
23
通信
计算机系
0903
宋丹丹
女
20
会计
金融系
0904
王恒文
男
22
园林
土木系
0905
沈网中
男
20
软件
计算机系
课程信息相关表格
Cno
cname
tname
credit
0301
C语言
王月敏
2
0302
信号与系统
杜鹃
2.5
0303
微积分
王可
2.5
0304
高等数学
刘甸宝
4
成绩信息表
Sno
Cno
cdegree
cname
0901
0303
90
微积分
0902
0304
84
高等数学
0902
0301
81
C语言
0903
0302
79
信号与系统
0903
0304
85
高等数学
0904
0304
94
高等数学
2.组织数据入库
学生信息表
课程信息表
成绩信息表