数据库课程设计报告Word格式文档下载.docx
《数据库课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。
需求分析内容:
1一个学生可以选修多门课程,一门课程可供多名学生选修;
一个学生选修一门课程会有一个成绩。
2一个教师教授多门课程,一门课程由一名教师教授。
2.数据流图
3.数据字典
数据项是数据库的关系中不可再分的数据单位,以下分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQLServer2005建立“学生选课”数据库,其基本表清单及表结构描述如下:
1)课程信息(course):
|课程号(cno)char(10)primarykey定义为主键
|课程名cname)char(10)非空
|课时(hour)char(10)非空
|学分(credit)char(4)非空
2学生信息(student):
|学号(sno)char(10)primarykey定义主键
|(sname)char(10)非空
|性别(ssex)char
(2)非空
|年龄(sage)char
(2)非空
|专业(smajor)char(10)非空
|系别(sdepart)char(10)非空
3)成绩信息(score):
|课程号(cno)char(10)非空
|成绩(degree)char(10)非空
|课程名(ame)char(10)非空
三概念结构设计阶段
概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
1.数据库的局部E-R图
学生信息表
课程信息图
成绩图
2.数据库完整E-R图
四逻辑结构设计阶段
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、成绩三个关系,其关系模式中对每个实体定义的属性如下:
课程信息表:
(课程号,课程名,教师号,学分)
此为联系“课程信息表”所对应的关系模式。
课程名为该关系的候选码。
学生信息表:
(学号,,性别,年龄,专业,系别)
此为联系“学生信息表”所对应的关系模式。
学号为该关系的候选码。
成绩表:
(学号,课程号,课程名,成绩)
此为联系“输入”所对应的关系模式。
题目编号、管理号为该关系的候选码
数据库中包含3个表,即课程信息(course),学生信息(student),成绩信息(score)。
数据库中用到的表:
数据库表名
关系模式名称
备注
Student
学生
学生学籍信息表
Course
课程
课程基本信息表
Score
成绩
选课成绩信息表
Student基本情况数据表,结构如下:
字段名
数据类型
约束控制
说明
Student_sno
Char
Primarykey
学号
Student_sn
char
NotNull
Student_sex
‘男’或‘女’
性别
Student_depart
系别
Student_age
年龄
Student_major
专业
course数据表,结构如下:
course_cno
主键(primarykey)
课程号
course_cname
notnull
课程名
course_hour
int
课时
course_score
numeric(2,1)
学分
score情况数据表,结构如下:
score_cno
course_sname
student_sno
外部键
score
五数据库的物理设计
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存储模式。
数据库物理设计内容包括记录存储结构的设计,存储路径的设计。
1.系统结构设计
1.1系统功能模块
六数据库实施
创建数据库
createdatabaseSTUDENT
创建表
在此学生成绩管理系统中需要创建三个表,即课程信息表、学生信息表和成绩表。
创建数据库后,为STUDENT数据库添加数据表,步骤如下。
(1)新建查询窗口
(2)在查询窗口中键入下列SQL语句
createtablecourse(
ochar(10)primarykey,
amechar(10)notnull,
teanochar(10)Notnull
creditchar(4),Notnull
)
执行上述SQL语句即可创建课程信息表相关表格
createtablestudent(
snochar(10)primarykey,
snamechar(10)notnull,
ssexchar
(2)notnull,
Sagechar
(2)notnull,
Majorchar(10)notnull,
Departchar(10)notnull,
)
执行上述SQL语句即可创建学生信息表相关表格
createtablescore(
snochar(10),
ochar(10),
cdegreechar(10),
amechar(10),
执行上述SQL语句即可创建成绩表相关表格
学生信息相关表格
Sno
sname
ssex
sage
major
depart
0901
薛克强
男
22
软件
计算机系
0902
陈波
23
通信
0903
宋丹丹
女
20
会计
金融系
0904
王恒文
男
园林
土木系
0905
沈网中
课程信息相关表格
Cno
cname
tname
credit
0301
C语言
王月敏
2
0302
信号与系统
杜鹃
2.5
0303
微积分
王可
0304
高等数学
刘甸宝
4
成绩信息表
cdegree
90
84
81
79
85
94
七数据库的运行和维护
1、当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,因为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在SQLSERVER中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。
当然也可以利用其他各种方法进行数据维护。
2、数据操作
数据库查询操作
A.单表查询:
(1)查询sno为09901学生的sname
selectsname
fromstudent
wheresno='
0901'
结果:
(2)查询ssex为’女’并且sdepart为’金融系’的sname
wheressex='
女'
and
sdepart='
金融系'
(3)查询所有学生的姓名和系别。
selectsname,Depart
fromstudent
(4)查询Depart为计算机系的sname。
selectsname
whereDepart='
计算机系'
(5)查询所有学生所在院系名称
selectdistinctDepart
(6)查询学生信息表中年龄小于21和年龄大于21的学生的姓名和系别
selectsname,Depart
fromstudent
wheresage>
21orsage<
21
B.嵌套查询
查询选修了0304这门课的所有学生的学号、、年龄、院系
Selectsno,sname,sage,Depart
Fromstudent
Wheresnoin
(selectsno
Fromscore
Whereo=’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
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
王恒文'
八总结
设计心得
经过数据库的课程设计,我对数据库的理解又加深了一步,从简单的理论到实际上机操作中的种种困难,都必须自己去摸索和克服。
而当解决了困难以后,我发现自己基本能将书本上的章节都融会贯通了,从而也达到了复习的效果。
纵观整个设计,要想完成一个数据库系统,最重要的的是要彻底理解数据库设计的六个基本步骤,及每个基本步骤要完成的任务,要实现的内容。
此外,在设计整体和局部E-R图时,实体和属性的选择,以及实体于实体间的联系时,都是在经过了几次修改,不断的研究系统性能的情况下才完成的。
而这每一次的修改,又牵动了后续的进行,经过这样反复的修改和思考,才使得系统的模型基于成熟,所以说一个好的系统是需要不断修改不断完善才能成功的。
最后,此次的课程设计确实让我受益匪浅。
起码在已有的水平上,我的理论与实践都有了长足的进步。
这对以后的设计也是一笔宝贵的财富。