数据库实习报告.docx
- 文档编号:5354730
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:16
- 大小:75.35KB
数据库实习报告.docx
《数据库实习报告.docx》由会员分享,可在线阅读,更多相关《数据库实习报告.docx(16页珍藏版)》请在冰豆网上搜索。
数据库实习报告
数据库系统课程设计
学号:
学生姓名:
班号:
指导教师:
中国地质大学信息工程学院
2012年3月3日
=数据库实习报告
——教务管理系统
一、需求分析
1、首先要明确各个实体间的属性:
a.教师:
工作证号,姓名,职称,电话,系别;
b.学生:
学号,性别,班级,系别,出生年月;
d.系别:
系代号,系名,系办,公室电话;
e.课程:
课序号,课名,学分,上课时间,名额。
2、各个实体之间的联系:
a.每个学生都属于一个班;
.每个教师也都属于一个系,每个班的班主任都由一名教师担任;
d.一名教师可以教多门课,一门课可以有几位主讲老师;
e.一名同学可以选多门课,一门课可被若干同学选中,一名同学选中的课若已学完,应该记录有相应成绩。
3、总需求:
本单位学生、教师都有重名,工作证号、学号可以作为标识。
教学系统主要提供数据维护、选课和信息查询。
常见的查询有:
系统中各对象的基本信息查询;查询指定班、系的学生信息(名单、人数等);查询学生的成绩、学分情况;查询教师授课情况和学生选课情况等。
二、概念设计
1、概念模型(E-R图):
a.授课关系E-R图
b.选课关系E-R图
c.总E-R图
2、数据字典:
a.数据项
系名:
{Dname,char,20}
系代号:
{Dno,char,3}
系办公室电话:
{Dtelephont,char,11}
职称:
{Ttitle,char,20}
工作证号:
{Tno,char,10}
姓名:
{Tname,char,20}
电话:
{Ttelephont,char,11}
学号:
{Sno,char,10}
性别:
{Ssex,char,2}
出生年月:
{Sbirthday,date,}
姓名:
{Sname,char,20}
课序号:
{Cno,char,10}
课名称:
{Cname,char,20}
上课时间:
{Ctime,datetime}
名额:
{Cnumber,int}
学分:
{Credit,float,2}
成绩:
{Grade,int}
b.数据结构
学生={学号、姓名、性别、出生年月}
教师={工作证号、教师姓名、职称、电话、所在系的系号}
系={系代号、系名、系办公室电话}
课程={课序号、课名、学分、上课地点、名额、授课教师的工作证号}
选课={学号、课序号、成绩}
c.数据流(说明,数据流来源,数据流去向)
变更系信息={变更系信息,变更信息,系信息}
查询系信息={查询系信息,系代号,系信息}
变更教师信息={变更教师信息,变更信息,教师信息}
查询教师信息={查询教师信息,工作证号,教师信息}
变更学生信息={变更学生信息,变更信息,学生信息}
查询学生信息={查询学生信息,学号,学生信息}
变更课程信息={变更课程信息,变更信息,课程信息}
查询课程信息={查询课程信息,课序号,课程信息}
学生选课={课程号,学号}
查询选课信息={查询选课信息,学号或课序号,选课信息}
查询授课信息={查询授课信息,工作证号,授课信息}
查询成绩={查询成绩,学号&课程号,选课信息}
三、逻辑结构设计
1、关系模型
教师(工作证号,姓名,职称,电话,系代号)
学生(学号,姓名,性别,出生年月)
系(系代号,系名,系办公室电话)
课程(课序号,课名,学分,上课时间,名额,工作证号)
选课(学号,课序号,成绩)
2、用户视图
教师信息视图(工作证号,教师姓名,职称,电话,负责班级)
学生信息视图(学号,姓名,性别,出生年月,班号)
系信息视图(系代号,系名,系办公室电话)
选课信息(课程号,学号)
课程信息(课程号,课程名称,学分,上课时间,名额,授课老师)
五、系统实施
完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序设计和物理设计结果严格的描述出来,成为DMBMS可以接受的源代码,再经过调试产生目标模式。
然后就可以组织数据入库了,这就是数据库实施阶段。
数据库实施阶段包括两项重要的工作:
1.数据的载入:
直接在SQL2012中建立教师,学生,选课,系,课程六个表。
运用ODBC,建立mysql的服务器,关联到VB中。
六、运行维护
1、数据库试运行
数库的试运行阶段要实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求。
如果不满足,对应用程序部分则要修改、调整,知道达到设计要求为止。
这一阶段特别强调两点,第一该是分期分批的组织数据入库,先输入少量数据做调试用,待试运行基本合格后,再大批量的输入数据。
第二首先调试运行数据库管理系统的恢复功能,做好数据库的转储和恢复工作,一旦故障发生,能使数据库尽快恢复,尽量减少数据库的破坏。
2、数据库的维护
数据库的转储和恢复试系统正式运行后最重要的维护工作之一。
要针对不同的应用要求制定不同的转储计划,以保证一旦发生故障能够尽快将数据库恢复到某种一致状态,并尽可能减少对数据库的破坏。
数据库运行阶段,主要是由数据库管理员完成经常性的维护工作。
主要包括:
a.数据库的转储和恢复;
b.数据库的安全性、完整性控制;
c.数据库性能的监督、分析和改造;
d.数据库的重组织与重构造。
七、小结
两个周的数据库实习课程结束了,虽然数据库的设计工作完成的并不好,但是在这个过程中还是有些收获。
首先,我知道了数据库的设计工作是有章可循的,可以按照一定的步骤、有规律的进行设计。
数据库可以按阶段进行设计,在各个阶段有不同的目标,应遵循的原则和方法也各不相同,还有一些应该注意的事项等等。
其中的重点是概念结构的设计和逻辑结构的设计,这也是整个数据库设计过程中最重要的两个环节。
人们在评述数据库的特点时说,“三分技术,七分管理,十二分的基础数”,在数据库建设中不仅涉及技术,还涉及管理,要建设好一个数据库应用系统,开发技术固然重要,但是相比之下管理更为重要。
其次,对数据库设计的各个阶段也有了初步认识。
在需求分析阶段,主要的任务是通过详细的调查现实世界重要处理的对象,明确用户的各种需求,然后在此基础上确定新系统的功能,简单地说,也就是分析用户的需求,它是设计数据库的起点,需求分析的准确与否直接关系到后面各个阶段的设计。
在概念结构设计阶段,要根据需求分析的结果抽象为信息结构,主要就是通过E—R图来表现,不仅要考虑整个数据库的结构,还要注意子模式仕途的细节,它是整个数据库设计的关键。
在逻辑结构的设计阶段,主要任务就是把概念结构设计阶段设计好的基本E-R图转换为数据库管理系统产品所支持的数据模型相符合的逻辑结构,是独立于任何一种数据模型的信息结构。
在物理结构设计阶段,通常分为两步,先确定数据库的存取方法和存储结构,后对物理结构进行评价,评价重点是在时间和空间效率,如果评价的结果满足设计要求,则可进入物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至需要逻辑设计阶段修改数据模型。
完成数据库的物理设计之后,就要用数据库管理系统提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格的表示出来,这是还需要进行调试。
这些都是一些理论方法,还是需要在实际工作中运用这些思想,遵守设计原则,注意各阶段工作的细节,才能完成好数据库设计工作。
在以后的学习中会更加注意这些细节问题,这样才会有所提高。
八、附录
VB源代码:
1.登陆界面代码:
PrivateSubCommand1_Click()
DimrptAsInteger
IfText1.Text="20121003818"Then
IfText2.Text="123456"Then
IfText3.Text=Label4.CaptionThen
Form5.Hide
Form1.Show
Else
rpt=MsgBox("验证码错误",vbRetryCancel+vbExclamation,"验证码")
Ifrpt=vbRetryThen
Text3.Text=""
Text3.SetFocus
EndIf
EndIf
Else
rpt=MsgBox("密码错误",vbRetryCancel+vbExclamation,"密码")
Ifrpt=vbRetryThen
Text2.Text=""
Text2.SetFocus
EndIf
EndIf
Else
rpt=MsgBox("用户名错误",vbRetryCancel+vbExclamation,"用户名")
Ifrpt=vbRetryThen
Text1.Text=""
Text1.SetFocus
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Form7.Show
Form5.Hide
EndSub
PrivateSubForm_Load()
Label5.FontSize=15
Label5.ForeColor=vbRed
Randomize
DimxAsLong
x=Int(90000*Rnd(0))+10000
Label4.Caption=x
EndSub
2.学生信息界面代码:
PrivatesqlconAsNewADODB.Connection
PrivatesqlresAsNewADODB.Recordset
PrivatesqlcmdAsNewADODB.Command
DimsqlstrAsString
PrivateSubCommand1_Click()
MakeSqlStr
Adodc1.RecordSource="select*from学生where学号="&sqlstr
Adodc1.Refresh
EndSub
PrivateSubCommand2_Click()
ret=MsgBox("是否要删除"+Adodc1.Recordset("学号")+"号学生的记录",vbYesNo,"提示")
Ifret=vbYesThen
sqlcmd.ActiveConnection=sqlcon
sqlcmd.CommandText="deletefrom学生where学号="+Adodc1.Recordset("学号")
sqlcmd.Execute
Adodc1.RecordSource="select*from学生"
Adodc1.Refresh
EndIf
EndSub
PrivateSubCommand3_Click()
DimsqlupstrAsString
sqlupstr="select*from学生where学号="&Trim(Text1.Text)
sqlres.Opensqlupstr,sqlcon,adOpenDyamic,adLockPessimistic
IfNotsqlres.EOFThen
Else
sqlres.AddNew
sqlres("学号")=Text1.Text
sqlres("姓名")=Text2.Text
sqlres("性别")=Text3.Text
sqlres("出生日期")=Text4.Text
sqlres("系代号")=Text5.Text
sqlres.Update
EndIf
sqlres.Close
Adodc1.RecordSource="select*from学生"
Adodc1.Refresh
EndSub
PrivateSubCommand4_Click()
DimsqlupstrAsString
sqlupstr="select*from学生where学号="&Trim(Text1.Text)
sqlres.Opensqlupstr,sqlcon,adOpenDyamic,adLockPessimistic
IfNotsqlres.EOFThen
Else
sqlres.AddNew
sqlres("学号")=Text1.Text
sqlres("姓名")=Text2.Text
sqlres("性别")=Text3.Text
sqlres("出生日期")=Text4.Text
sqlres("系代号")=Text5.Text
sqlres.Update
EndIf
sqlres.Close
Adodc1.RecordSource="select*from学生"
Adodc1.Refresh
EndSub
PrivateSubForm_Load()
sqlcon.Provider="SQLOLEDB"
sqlcon.Open"Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
EndSub
PrivateSubForm_Unload(CancelAsInteger)
sqlcon.Close
EndSub
PublicSubMakeSqlStr()
sqlstr=""
IfTrim(Text6.Text)<>""Then
sqlstr=Trim(Text6.Text)
EndIf
IfTrim(Text6.Text)=""Then
sqlstr=Text1.Text
EndIf
EndSub
3.学生课程成绩代码:
PrivatesqlconAsNewADODB.Connection
PrivatesqlresAsNewADODB.Recordset
PrivatesqlcmdAsNewADODB.Command
DimsqlstrAsString
PrivateSubCommand1_Click()
MakeSqlStr
Adodc1.RecordSource="select*from选修,学生where选修.学号="&sqlstr
Adodc1.Refresh
EndSub
PrivateSubForm_Load()
sqlcon.Provider="SQLOLEDB"
sqlcon.Open"Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
EndSub
PublicSubMakeSqlStr()
sqlstr=""
IfTrim(Text5.Text)<>""Then
sqlstr=Trim(Text5.Text)
EndIf
IfTrim(Text5.Text)<>""Then
sqlstr=Text2.Text
EndIf
EndSub
PrivateSubForm_Unload(CancelAsInteger)
sqlcon.Close
EndSub
PrivateSubImage1_Click()
Form1.Picture=LoadPicture(picturefile)
EndSub
4.教师信息代码:
PrivatesqlconAsNewADODB.Connection
PrivatesqlresAsNewADODB.Recordset
PrivatesqlcmdAsNewADODB.Command
DimsqlstrAsString
PrivateSubCommand1_Click()
MakeSqlStr
Adodc1.RecordSource="select*from教师where工作证号="&sqlstr
Adodc1.Refresh
EndSub
PrivateSubCommand2_Click()
ret=MsgBox("是否要删除"+Adodc1.Recordset("工作证号")+"号教师的记录",vbYesNo,"提示")
Ifret=vbYesThen
sqlcmd.ActiveConnection=sqlcon
sqlcmd.CommandText="deletefrom教师where工作证号="+Adodc1.Recordset("工作证号")
sqlcmd.Execute
Adodc1.RecordSource="select*from教师"
Adodc1.Refresh
EndIf
EndSub
PrivateSubCommand3_Click()
DimsqlupstrAsString
sqlupstr="select*from教师where工作证号="&Trim(Text1.Text)
sqlres.Opensqlupstr,sqlcon,adOpenDyamic,adLockPessimistic
IfNotsqlres.EOFThen
Else
sqlres.AddNew
sqlres("工作证号")=Text1.Text
sqlres("姓名")=Text2.Text
sqlres("职称")=Text3.Text
sqlres("电话")=Text4.Text
sqlres("系代号")=Text5.Text
sqlres.Update
EndIf
sqlres.Close
Adodc1.RecordSource="select*from教师"
Adodc1.Refresh
EndSub
PrivateSubCommand4_Click()
DimsqlupstrAsString
sqlupstr="select*from教师where工作证号="&Trim(Text1.Text)
sqlres.Opensqlupstr,sqlcon,adOpenDyamic,adLockPessimistic
IfNotsqlres.EOFThen
Else
sqlres.AddNew
sqlres("工作证号")=Text1.Text
sqlres("姓名")=Text2.Text
sqlres("职称")=Text3.Text
sqlres("电话")=Text4.Text
sqlres("系代号")=Text5.Text
sqlres.Update
EndIf
sqlres.Close
Adodc1.RecordSource="select*from教师"
Adodc1.Refresh
EndSub
PrivateSubForm_Load()
sqlcon.Provider="SQLOLEDB"
sqlcon.Open"Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
EndSub
PrivateSubForm_Unload(CancelAsInteger)
sqlcon.Close
EndSub
PublicSubMakeSqlStr()
sqlstr=""
IfTrim(Text6.Text)<>""Then
sqlstr=Trim(Text6.Text)
EndIf
IfTrim(Text6.Text)=""Then
sqlstr=Text1.Text
EndIf
EndSub
5.课程信息代码:
PrivatesqlconAsNewADODB.Connection
PrivatesqlresAsNewADODB.Recordset
PrivatesqlcmdAsNewADODB.Command
DimsqlstrAsString
PrivateSubCommand1_Click()
MakeSqlStr
Adodc1.RecordSource="select*from选修where课程号&学号="&sqlstr
Adodc1.Refresh
EndSub
PrivateSubForm_Load()
sqlcon.Provider="SQLOLEDB"
sqlcon.Open"Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
EndSub
PrivateSubForm_Unload(CancelAsInteger)
sqlcon.Close
EndSub
PublicSubMakeSqlStr()
sqlstr=""
IfTrim(Text7.Text)<>""Then
sqlstr=Trim(Text7.Text)
EndIf
IfTrim(Text7.Text)=""Then
sqlstr=Text1.Text
EndIf
EndSub
6.学生选课:
PrivatesqlconAsNewADODB.Connection
PrivatesqlresAsNewADODB.Recordset
PrivatesqlcmdAsNewADODB.Command
DimsqlstrAsString
DimsqlupstrAsString
PrivateSubCommand2_Click()
Form8.Hide
EndSub
PrivateSubCommand3_Click()
ret=MsgBox("是否要删除学生"+Adodc1.Recordset("学号")+"的"+Adodc1.Recordset("课程号")+"号课程的记录",vbYesNo,"提示")
Ifret=vbYesThen
sqlcmd.ActiveConnection=sqlcon
sqlcmd.CommandText="deletefrom选修where课程号="+Adodc1.Recordset("课程号")
sqlcmd.Execute
Adodc1.RecordSource="select*from选修"
Adodc1.Refresh
EndIf
EndSub
PrivateSubCommand1_Click()
DimsqlupstrAsString
sqlupstr="select*from选修where
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)