数据库系统课程设计
学 号:
学生姓名:
班 号:
指导教师:
中国地质大学信息工程学院
20##年 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.登陆界面代码:
Private Sub Command1_Click()
Dim rpt As Integer
If Text1.Text = "20121003818" Then
If Text2.Text = "123456" Then
If Text3.Text = Label4.Caption Then
Form5.Hide
Form1.Show
Else
rpt = MsgBox("验证码错误", vbRetryCancel + vbExclamation, "验证码")
If rpt = vbRetry Then
Text3.Text = ""
Text3.SetFocus
End If
End If
Else
rpt = MsgBox("密码错误", vbRetryCancel + vbExclamation, "密码")
If rpt = vbRetry Then
Text2.Text = ""
Text2.SetFocus
End If
End If
Else
rpt = MsgBox("用户名错误", vbRetryCancel + vbExclamation, "用户名")
If rpt = vbRetry Then
Text1.Text = ""
Text1.SetFocus
End If
End If
End Sub
Private Sub Command2_Click()
Form7.Show
Form5.Hide
End Sub
Private Sub Form_Load()
Label5.FontSize = 15
Label5.ForeColor = vbRed
Randomize
Dim x As Long
x = Int(90000 * Rnd(0)) + 10000
Label4.Caption = x
End Sub
2.学生信息界面代码:
Private sqlcon As New ADODB.Connection
Private sqlres As New ADODB.Recordset
Private sqlcmd As New ADODB.Command
Dim sqlstr As String
Private Sub Command1_Click()
MakeSqlStr
Adodc1.RecordSource = "select *from 学生 where 学号=" & sqlstr
Adodc1.Refresh
End Sub
Private Sub Command2_Click()
ret = MsgBox("是否要删除" + Adodc1.Recordset("学号") + "号学生的记录", vbYesNo, "提示")
If ret = vbYes Then
sqlcmd.ActiveConnection = sqlcon
sqlcmd.CommandText = "delete from 学生 where 学号=" + Adodc1.Recordset("学号")
sqlcmd.Execute
Adodc1.RecordSource = "select * from 学生"
Adodc1.Refresh
End If
End Sub
Private Sub Command3_Click()
Dim sqlupstr As String
sqlupstr = "select * from 学生 where 学号=" & Trim(Text1.Text)
sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimistic
If Not sqlres.EOF Then
Else
sqlres.AddNew
sqlres("学号") = Text1.Text
sqlres("姓名") = Text2.Text
sqlres("性别") = Text3.Text
sqlres("出生日期") = Text4.Text
sqlres("系代号") = Text5.Text
sqlres.Update
End If
sqlres.Close
Adodc1.RecordSource = "select * from 学生"
Adodc1.Refresh
End Sub
Private Sub Command4_Click()
Dim sqlupstr As String
sqlupstr = "select *from 学生 where 学号=" & Trim(Text1.Text)
sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimistic
If Not sqlres.EOF Then
Else
sqlres.AddNew
sqlres("学号") = Text1.Text
sqlres("姓名") = Text2.Text
sqlres("性别") = Text3.Text
sqlres("出生日期") = Text4.Text
sqlres("系代号") = Text5.Text
sqlres.Update
End If
sqlres.Close
Adodc1.RecordSource = "select * from 学生"
Adodc1.Refresh
End Sub
Private Sub Form_Load()
sqlcon.Provider = "SQLOLEDB"
sqlcon.Open "Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
End Sub
Private Sub Form_Unload(Cancel As Integer)
sqlcon.Close
End Sub
Public Sub MakeSqlStr()
sqlstr = ""
If Trim(Text6.Text) <> "" Then
sqlstr = Trim(Text6.Text)
End If
If Trim(Text6.Text) = "" Then
sqlstr = Text1.Text
End If
End Sub
3.学生课程成绩代码:
Private sqlcon As New ADODB.Connection
Private sqlres As New ADODB.Recordset
Private sqlcmd As New ADODB.Command
Dim sqlstr As String
Private Sub Command1_Click()
MakeSqlStr
Adodc1.RecordSource = "select *from 选修,学生 where 选修.学号=" & sqlstr
Adodc1.Refresh
End Sub
Private Sub Form_Load()
sqlcon.Provider = "SQLOLEDB"
sqlcon.Open "Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
End Sub
Public Sub MakeSqlStr()
sqlstr = ""
If Trim(Text5.Text) <> "" Then
sqlstr = Trim(Text5.Text)
End If
If Trim(Text5.Text) <> "" Then
sqlstr = Text2.Text
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
sqlcon.Close
End Sub
Private Sub Image1_Click()
Form1.Picture = LoadPicture(picturefile)
End Sub
4.教师信息代码:
Private sqlcon As New ADODB.Connection
Private sqlres As New ADODB.Recordset
Private sqlcmd As New ADODB.Command
Dim sqlstr As String
Private Sub Command1_Click()
MakeSqlStr
Adodc1.RecordSource = "select *from 教师 where 工作证号=" & sqlstr
Adodc1.Refresh
End Sub
Private Sub Command2_Click()
ret = MsgBox("是否要删除" + Adodc1.Recordset("工作证号") + "号教师的记录", vbYesNo, "提示")
If ret = vbYes Then
sqlcmd.ActiveConnection = sqlcon
sqlcmd.CommandText = "delete from 教师 where 工作证号=" + Adodc1.Recordset("工作证号")
sqlcmd.Execute
Adodc1.RecordSource = "select * from 教师"
Adodc1.Refresh
End If
End Sub
Private Sub Command3_Click()
Dim sqlupstr As String
sqlupstr = "select * from 教师 where 工作证号=" & Trim(Text1.Text)
sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimistic
If Not sqlres.EOF Then
Else
sqlres.AddNew
sqlres("工作证号") = Text1.Text
sqlres("姓名") = Text2.Text
sqlres("职称") = Text3.Text
sqlres("电话") = Text4.Text
sqlres("系代号") = Text5.Text
sqlres.Update
End If
sqlres.Close
Adodc1.RecordSource = "select * from 教师"
Adodc1.Refresh
End Sub
Private Sub Command4_Click()
Dim sqlupstr As String
sqlupstr = "select *from 教师 where 工作证号=" & Trim(Text1.Text)
sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimistic
If Not sqlres.EOF Then
Else
sqlres.AddNew
sqlres("工作证号") = Text1.Text
sqlres("姓名") = Text2.Text
sqlres("职称") = Text3.Text
sqlres("电话") = Text4.Text
sqlres("系代号") = Text5.Text
sqlres.Update
End If
sqlres.Close
Adodc1.RecordSource = "select * from 教师"
Adodc1.Refresh
End Sub
Private Sub Form_Load()
sqlcon.Provider = "SQLOLEDB"
sqlcon.Open "Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
End Sub
Private Sub Form_Unload(Cancel As Integer)
sqlcon.Close
End Sub
Public Sub MakeSqlStr()
sqlstr = ""
If Trim(Text6.Text) <> "" Then
sqlstr = Trim(Text6.Text)
End If
If Trim(Text6.Text) = "" Then
sqlstr = Text1.Text
End If
End Sub
5.课程信息代码:
Private sqlcon As New ADODB.Connection
Private sqlres As New ADODB.Recordset
Private sqlcmd As New ADODB.Command
Dim sqlstr As String
Private Sub Command1_Click()
MakeSqlStr
Adodc1.RecordSource = "select *from 选修 where 课程号&学号=" & sqlstr
Adodc1.Refresh
End Sub
Private Sub Form_Load()
sqlcon.Provider = "SQLOLEDB"
sqlcon.Open "Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
End Sub
Private Sub Form_Unload(Cancel As Integer)
sqlcon.Close
End Sub
Public Sub MakeSqlStr()
sqlstr = ""
If Trim(Text7.Text) <> "" Then
sqlstr = Trim(Text7.Text)
End If
If Trim(Text7.Text) = "" Then
sqlstr = Text1.Text
End If
End Sub
6.学生选课:
Private sqlcon As New ADODB.Connection
Private sqlres As New ADODB.Recordset
Private sqlcmd As New ADODB.Command
Dim sqlstr As String
Dim sqlupstr As String
Private Sub Command2_Click()
Form8.Hide
End Sub
Private Sub Command3_Click()
ret = MsgBox("是否要删除学生" + Adodc1.Recordset("学号") + "的" + Adodc1.Recordset("课程号") + "号课程的记录", vbYesNo, "提示")
If ret = vbYes Then
sqlcmd.ActiveConnection = sqlcon
sqlcmd.CommandText = "delete from 选修 where 课程号=" + Adodc1.Recordset("课程号")
sqlcmd.Execute
Adodc1.RecordSource = "select * from 选修"
Adodc1.Refresh
End If
End Sub
Private Sub Command1_Click()
Dim sqlupstr As String
sqlupstr = "select * from 选修 where 学号=" & Trim(Text1.Text)
sqlres.Open sqlupstr, sqlcon, adOpenDyamic, adLockPessimistic
If Not sqlres.EOF Then
Else
sqlres.AddNew
sqlres("课程号") = Text2.Text
sqlres("学号") = Text1.Text
sqlres.Update
End If
sqlres.Close
Adodc1.RecordSource = "select * from 选修"
Adodc1.Refresh
End Sub
Private Sub Form_Load()
sqlcon.Provider = "SQLOLEDB"
sqlcon.Open "Server=Y500-X64\SQLEXPRESS;DataBase=教务管理系统;UID=sa;PWD=;"
End Sub
Private Sub Form_Unload(Cancel As Integer)
sqlcon.Close
End Sub
中原工学院经济管理学院数据库应用实习实习报告专业:信息管理与信息系统目录一、前言3二、实习目的与要求3三、实习内容与过程41、需求…
数据库实习报告目录1前言2实习时间3实习内容及过程A主要写实习过程中遇到的问题及解决的过程B内容和过程应该是具体的是你具体做了些什…
***********大学本科生实习报告书教学单位****学院专业***********班级***********学生姓名学号指导…
数据库系统及应用实训报告设计题目学生姓名系别专业班级学号指导教师年日月目录一概述11项目背景312课程设计目的313题目名称314…
数据库实训报告专业计算机科学与技术班级计091姓名xxx任课教师20xx年11月5日1目录第一章概述311引言312摘要3第二章需…
AbstractPracticeisthesecondclassofuniversitylife,isasourceofinnov…
C10英语1班章鑫栋中文数据库实习报告1010323101一.检索馆藏中外文数据库的情况(一)中文数据库一:CNKI系列资源库课题…
网站维护实习报告摘要网站维护,一个好的网站需要定期或不定期地更新内容,才能不断地吸引更多的浏览者,增加访问量。网站维护是为了让您的…
经济与管理学院电子商务专业电实子商训务数据报库技告术姓名孟高源学号20xx15021编写日期20xx年1月电子商务数据库技术实训网…
河南工程学院实习报告系部计算机科学与工程系专业计算机科学与技术班级1041班负责人学号及姓名成员学号及姓名20xx年01月11日数…
***********大学本科生实习报告书教学单位****学院专业***********班级***********学生姓名学号指导…