ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:1.43MB ,
资源ID:24484872      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24484872.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中国地质大学武汉数据库实习报告.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

中国地质大学武汉数据库实习报告.docx

1、中国地质大学武汉数据库实习报告数据库系统课程设计学生姓名:孙国欢班 学 号:113131-05指导老师:刘福江中国地质大学信息工程学院2015年6月1. 需求分析1.1 需求说明该系统包括教师、学生、班级、系和课程等信息,基本情况如下:教师有工作证号、姓名、职称、电话等;学生有学号、姓名、性别、出生年月等;班级有班号、最低总学分等;系有系代号、系名和系办公室电话等;课程有课序号、课名、学分、上课时间及名额等。每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系 l 每个班的班主任都由一名教师担任。一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一门课其课序号是不同的

2、(课序号是唯一的)。一名同学可以选多门课,一门课可被若干同学选中。一名同学选中的课若已学完,应该记录有相应成绩。本单位学生、教师都有重名,工作证号、学号可以作为标识。教学系统主要提供数据维护、选课和信息查询。其中常见的查询有:系统中各对象的基本信息查询。 查询指定班、系的学生信息(名单、人数等)。查询学生的成绩、学分情况。查询教师授课情况和学生选课情况。等等。1.2 需求理解设计一个教务管理系统需要实现以下三个功能:数据维护:数据内容的维护(无错漏、无冗余、无有害数据)、数据更新、数据逻辑一致性等方面的维护。选课:学生对学校所开设的课程有一定的选择自由,包括选择课程、任课教师和上课时间,选择适

3、合自己的学习量和学习进程。信息查询:点击教务系统进行信息的获取与咨询。信息查询的需要实现以下四个功能:查询系统中各对象的基本信息查询指定班、系的学生信息(名单、人数等)查询学生的成绩、学分情况查询教师授课情况和学生选课情况整个教务系统中各个对象的分析:学生:正在学校、学堂或其他学习地方受教育的人。每个学生有一个唯一的确定其身份的学号,学号由11位数字组成。前四位为其入学年份,中间三位为数字“100”,后四位为随机编号。每位学生有自己的姓名,姓名为20个字节,但不同的同学可能姓名相同。学生分为两种性别:“男”和“女”。学生还记录有出生年月的信息,为20个字节的长度。每个学生都属于一个班级,学生的

4、别名为student。教师:受过专门教育和训练的人,并在学校中担任教育教学工作的人。每个教师都有一个唯一确定其身份的工作证号,工作证号为6位字符型。每位老师都有自己的名字,姓名为字符型,10个字符,不同的老师可能姓名相同。每位老师都有一个职称,职称分为:助教、讲师、副教授、教授。职称是字符型,三个字符。每位教师都在教务科留下其电话号码,字符型11位。每位教师都属于一个系,教师的别名是teacher。系:高等院校按照专业性质设置的教学行政单位。每个系都有唯一表示它的系代号,为三位数字。系有系名,不同的系的系名不相同。系办公室有电话号码,7位。系下属班级,系的别名是depart。班级:学校的基本单

5、位,通常由一位或几位学科教师与一群学生共同组成。班级有一个唯一识别它的班级序号,共六位。前三位是专业代号,中间两位是班级成立的年份,最后一位是同专业的班级序号。每个班级对应有一个应修最低总学分,班级隶属于系。每个班都有一名担任班主任的教师,班级的别名是class。课程:学校学生所应学习的学科总和及其进程与安排。课程有一个唯一的课序号(8位),课程名称(30位),学分(2位),上课时间(10个字符)及名额(5位)。课程的别名是course。1.3 系统结构图1.4 数据字典1.5 数据流图 2. 概念设计2.1 分E-R图2.2 总E-R图 3. 逻辑结构设计3.1 E-R模型转换3.1.1 实

6、体间的联系分析(1)系和班级间的联系是1:N的联系,可以转化为一个独立的关系模式,也可以与N端对应的关系模式合并。这里选择将该联系与N端对应的关系模式合并,则在班级实体中加一个“所在系号”的属性。(2)班级和学生间的联系是1:N的联系,可以转化为一个独立的关系模式,也可以与N端对应的关系模式合并。这里选择将该联系与N端对应的关系模式合并,则在学生实体中加一个“所在班号”的属性。(3)系和教师间的联系是1:N的联系,可以转化为一个独立的关系模式,也可以与N端对应的关系模式合并。这里选择将该联系与N端对应的关系模式合并,则在教师实体中加一个“所在系号”的属性。(4)班级和教师间的联系是1:1的联系

7、,可以转化为一个独立的关系模式,也可以与任意一端端对应的关系模式合并。这里选择与班级对应的关系模式合并,则需要在班级的关系模式中加入关系模式的码,及在班级实体中加入一个“班主任工作证号”的属性。(5)学生与课程间的联系为M:N的联系,需要转换成一个关系模式,与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。在这里建立一个学生课程关系模式,将学号和课程号作为该关系模式的主码,成绩也是该关系模式的一个属性。即 学生课程(学号,课程号,成绩)。(6)教师与课程间的联系为M:N的联系,需要转换成一个关系模式,与该联系相连的各实体的码及联系本身的属性均转

8、换为关系的属性,各实体的码组成关系的码或关系码的一部分。在这里建立一个教师课程关系模式,将教师工作证号和课程号为该关系模式的主码。即教师课程(工作证号,课程号)。3.1.2 关系模式(1)Student(S_Num,S_Birth,S_Name,S_Sex)在此关系模式中,U= S_Num,S_Birth,S_Name,S_Sex F= S_Num - S_Birth , S_Num - S_Name , S_Num - S_Sex 因为S_Num- S_Num,S_Birth,S_Name,S_Sex 所以S_Num为关系模式的主码因此该关系模式为Student(S_Num,S_Birth,

9、S_Name,S_Sex)(2)Teacher(T_Num,T_Name,T_Title,T_Phone)在此关系模式中,U= T_Num,T_Name,T_Title,T_Phone F= T_Num T_Name , T_Num T_Title , T_Num T_Phone 因为T_Num T_Num,T_Name,T_Title,T_Phone 所以T_Num为关系模式的主码因此该关系模式为Teacher(T_Num,T_Name,T_Title,T_Phone)(3)Depart(X_Num,X_Name,X_Phone)在此关系模式中,U= X_Num,X_Name,X_Phone

10、 F= X_Num -X_Name, X_Num - X_Phone 因为X_Num -X_Num,X_Name,X_Phone所以该关系模式为Depart(X_Num,X_Name,X_Phone)(4)Class(C_Num,C_Credit)在此关系模式中,U= C_Num,C_Credit因为C_Num- C_Num,C_Credit所以该关系模式为Class(C_Num,C_Credit)3.2 模型优化3.3 用户子模式设计由用户的需求分析和概念结构设计,最终设计了名为教务管理数据库的数据库,数据库中的表如下所示:表1:登录信息表记录号字段名称数据类型字段大小属性(是否可为空)1用

11、户名text16否2密码text16否3权限text16否表2:系别信息表记录号字段名称数据类型字段大小属性(是否可为空)1系编号int4主键2系名nvarchar50是3系主任nvarchar50是表3:学生信息表记录号字段名称数据类型字段大小属性(是否可为空)1学生编号char10主键2学生姓名nvarchar50是3学生性别char10是4年龄int4是5身份证号nvarchar50是6所在系nvarchar50是表4:课程信息表记录号字段名称数据类型字段大小属性(是否可为空)1课程编号Int4主键2课程名nvarchar50否3任课老师nvarchar50是4课程学分float8是5开

12、课院系nvarchar50是6课程简介nvarchar16是表5:成绩信息表记录号字段名称数据类型字段大小属性(是否可为空)1学生编号char10主键2课程编号Int4主键3平时成绩char8是4考试成绩char8是 4. 物理设计4.1物理设计阶段的目标与任务数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。4.2 建立数据表4.2.1 学生信息基本表的建立:CREATE TABLE Student( Sno CHAR

13、( 8 ) PRIMARY KEY , Uname CHAR ( 8 ) UNIQUE, Sex CHAR ( 2 ), Sdept(8 ), Classno ( 8 ), Connect tel ( 11 ), Enter date (8 ),Family add (50 ); 4.2.2 课程信息表的建立:CREATE TABLE Course ( Course code CHAR (20 ) PRIMARY KEY , Course type CHAR ( 8 ) , Course grade CHAR ( 8) ;4.2.3 教师信息表的建立:CREATE TABLE Teacher

14、( Tno CHAR ( 8 ) PRIMARY KEY , Tname CHAR ( 8 ) UNIQUE, Tdepartment(8 ),Tmoible( 11 ),);4.2.4考试信息表的建立:CREATE TABLE Exam ( Sno CHAR ( 8 ) , Course code CHAR (20 ) , PRIMARY KEY ( Sno , Course code ) , FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ) , FOREIGN KEY (Course code) REFERENCES Course (Course

15、 code) ); 4.2.5讲授信息表的建立:CREATE TABLE Teaching ( Tno CHAR ( 8 ) , Course code CHAR (20 ) , PRIMARY KEY (Tno , Course code ) , FOREIGN KEY (Tno ) REFERENCES Teacher (Tno ) , FOREIGN KEY (Course code) REFERENCES Course (Course code) ); 5. 系统实施与系统维护1、针对不同的应用要求制定不同的转储计划,一旦发生故障尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的

16、破坏;2、根据实际情况修改数据库原有的安全性、完整性控制;3、在数据库运行过程中,监督系统运行,对监测数据进行分析,找出改进系统性能的方法;4、数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低数据的存取效率,数据库性能下降。这时应按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。当原有的数据库设计不能满足新的需求,需要重构造数据库,调整数据库的模式和内模式。 6. 附录(1)登录界面的设计本系统的登录界面上主要有用户名、密码和用户权限三部分内容。用户若想进入系统,就必须给出正确的用户名和密码,而且要选择正确的用户权限。如果用户输入的用户名不存在

17、或者密码与用户名不一致或者与用户权限不一致,都会给出相应的提示信息,告诉用户出现的错误输入。而且,如果用户进行错误的输入超过三次时,系统会自动退出。实现这一功能的说明如下: 函数开始:建立连接,利用Fill()函数在Systerm.Data.DataSet的指定范围中添加或刷新行,以与使用Systerm.Data.DataSet名称中的数据源中的行相匹配。 OleDbDataAdapter1.Fill(dt) 利用For循环,判断循环次数是否小于所有记录的个数 For i = 0 To dt.Rows.Count - 1If (用户名、密码和用户权限三者匹配时 ) Then Me.Hide()

18、 Me.Finalize() Me.AddOwnedForm(myform) 显示主窗体 If ( 用户权限 = 用户 ) Then 隐藏主窗体中的部分功能 myform.系统用户管理ToolStripMenuItem.Enabled = False myform.教务信息管理ToolStripMenuItem.Enabled = False myform.学生资料查询ToolStripMenuItem.Enabled = False Else 什么也不做 End If 退出For循环 End If Next If ( i = dt.Rows.Count 即在所有记录中都没有找到与用户输入的值

19、相同的) Then说明在所有记录中都没有找到与之匹配的用户名、密码和用户权限 Then 弹出MsgBox,警告用户出现错误 MsgBox(用户名与密码与用户权限不匹配!请验证后重新输!, MsgBoxStyle.Exclamation, 警告) 将密码对应的文本框中的内容置空 End If If ( 重复输入的次数超过3次) Then 弹出弹出MsgBox,警告用户出现错误 MsgBox(你输入的次数已经超过了3次!系统将退出!, MsgBoxStyle.Exclamation, 警告)退出 End If 函数结束(2)信息管理模块的设计:信息管理模块的三种操作,主要是添加记录,修该记录,删除

20、记录三大功能。而且在执行各项功能时都会给出足够的提示信息,例如进入时的提示信息,有些信息不能为空的提示,以及操作成功的提示信息。(a) 下面以系别管理模块中添加院系来说明如何添加记录的,说明如下: 函数开始: 添加记录时给出提示信息,等待用户确认 S = MsgBox(您确定要增加记录吗?, 36, 提示) If (S 6 即用户选择的是取消按钮) Then 退出函数 End If If (系名对应的文本框为空) Then MsgBox(系名不能为空!) 退出函数 End If If (系主任对应的文本框为空) Then . ElseIf ( S = 6 即用户选择的是确定按钮) Then利用

21、count()函数来返回所有记录的个数然后让个数加1作为下一个记录的编号 i = Me.BindingContext(DataSet1, 系别信息).Count + 1 新建一个表示内存中数据的一个表tmptable tmptable = DataSet1.Tables(系别信息) 打开连接 OleDbConnection1.Open() 构造插入语句 Dim tmpcommand As New System.Data.OleDb.OleDbCommand(insert into 系别信息 (系编号,系名,系主任) values( & i & , & TextName.Text & , & T

22、extMan.Text & ), OleDbConnection1) 异常处理 Try tmpcommand.ExecuteNonQuery() Catch fillException As System.Exception MsgBox(获得错误信息: & fillException.Message) End Try 将数据集中的记录清空 DataSet1.Clear() 将更改后的所有记录在填入数据集 OleDbDataAdapter1.Fill(DataSet1, 系别信息) 关闭连接 OleDbConnection1.Close() 添加成功后弹出MsgBox提示用户已完成 MsgBo

23、x(添加记录成功!, MsgBoxStyle.OkOnly, 提示) End If 函数结束(b) 下面以课程管理模块中修改课程来说明是如何修改记录的,说明如下: 函数开始: 修改记录时给出提示信息,等待用户确认 If (S 6 即用户选择的是取消按钮) Then 退出函数 End If If (课程名对应的文本框为空) Then MsgBox(课程名不能为空!) 退出函数 End If If (任课老师对应的文本框为空) Then . ElseIf ( S = 6 即用户选择的是确定按钮) Then 新建一个表示内存中数据的一个表tmptable tmptable = DataSet1.Ta

24、bles(课程信息) 打开连接 构造更新语句,来完成对数据的修改操作 Dim tmpcommand As New System.Data.OleDb.OleDbCommand(Update 课程信息 set 课程编号= & TextID.Text & ,课程名= & TextName.Text & ,任课老师= & TextTeacher.Text & ,课程学分= & TextPoint.Text & ,开课院系= & ComDepart.Text & ,课程简介= & TextAbout.Text & where 课程编号= & TextID.Text & , OleDbConnectio

25、n1) 异常处理 清空DataSet对象并重新赋值 关闭连接 MsgBox(您的修改以被受理,更新成功!, MsgBoxStyle.OkOnly, 提示) End If 函数结束(c) 下面以学生管理模块中删除学生资料来说明是如何删除记录,说明如下: 函数开始: 删除记录时给出提示信息,等待用户确认S = MsgBox(您确定要删除记录吗?, 36, 提示) If (S = 6 即用户选择了确定按钮) Then 新建一个表示内存中数据的一个表tmptable tmptable = DataSet1.Tables(学生信息) 打开连接 构造删除语句,来完成对数据的删除操作 Dim tmpcomm

26、and As New System.Data.OleDb.OleDbCommand(delete from 学生信息 where 学生编号= & TextID.Text & , OleDbConnection1) 异常处理 清空DataSet对象并重新赋值 关闭连接 MsgBox(记录已经成功删除!, MsgBoxStyle.OkOnly, 提示) End If 函数结束(3)信息查询模块的功能设计查询模块主要包括学生资料查询和学生资料查询两个子模块。而且查询时会给出相应的信息来告诉用户如何来做,什么不能为空,查询成功时也会给出相应的提示信息(a)学生资料查询是一种模糊查询,可以根据给出部分信

27、息进行查询,说明如下: 函数开始: If (所有的可输入条件的文本框的内容都为空) 则弹出提示的Msgbox,告诉用户条件不能都为空 MsgBox(请选择一种查询条件!不能都为空!) Else 新建一个表示内存中数据的一个表tmptable 打开连接 tmptable = DataSet5.Tables(学生信息) 构造查询语句,选择出满足条件的记录 Dim tmpcommand As New System.Data.OleDb.OleDbCommand(select * from 学生信息 where 学生编号 LIKE % & Textid.Text & %AND 学生姓名 LIKE %

28、& Textname.Text & %AND 学生性别 LIKE % & Textsex.Text & %AND 年龄 LIKE% & Textage.Text & %AND 身份证号 LIKE % & Textcard.Text & %AND 所在系 LIKE % & TextDepartment.Text & %, OleDbConnection1) 执行SQL语句并返回受影响的行数 tmpcommand.ExecuteNonQuery() 将查询对话框中的所有文本框的内容都置空 清空DataSet对象并重新赋值 DataSet5.Clear() OleDbDataAdapter1.Sel

29、ectCommand = tmpcommand OleDbDataAdapter1.Fill(DataSet5) 关闭连接 MsgBox(查询成功!, MsgBoxStyle.OkOnly, 提示) End If 函数结束(b)学生成绩查询是选择条件进行查询,说明如下: Private Sub BtQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtQuery.Click 函数开始: If (依据对应的组合框的内容为空) Then . Else 新建一个表示内存中数据的一个表tmptable 打开连接 tmptable = DataSet6.Tables(成绩信息) 构造查询语句,查询出满足条件的记录 Dim tmpcommand

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1