数据库实习报告Word文件下载.docx
- 文档编号:19391171
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:22
- 大小:1.06MB
数据库实习报告Word文件下载.docx
《数据库实习报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库实习报告Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
5.实际动手能力
熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;
组长全面负责,承担复杂的模块设计分值就高
总成绩
实习(训)报告评语
等级:
评阅人:
职称:
年月日
河南工程学院
实习(训)报告
实习目的(内容):
学习和掌握数据库原理及SQLServer2000
数据库开发工具,培养数据库程序开发能力。
实习时间:
自12月26日至12月30日
共5天。
实习地点:
3C411机房
实习单位:
计算机科学与工程系
指导教师:
李华系主任:
曲宏山
1.需求分析
1.1任务分析
现在高校学生信息的管理趋向于复杂化和多元化,计算机科学的发展使的人们已不满足于使用传统的信息管理方式来管理各种文档和数据。
人们的目光开始转向一种基于公共数据源的数据管理系统,即可以实现数据共享,又能像使用单机系统一样,进行便捷地各种数据添加、修改、删除、查询和统计等操作,并且具有相当的安全性和可靠性。
特别像学校系统显得非常有必要。
学生信息管理系统,不仅可以作为学生信息系统的一部分,也能在学生的信息管理方面发挥重要作用,如果使用这样的信息平台,那么学校各部门对学生信息管理将更加方便,且各部门之间的配合也将更加紧密,效率大大提高。
在这种情况下,开发学生信息管理为单独的一个系统,为了使学校管理人员在学生信息管理方面实现信息共享,对信息操作更加方便快捷。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与社会接轨的重要条件。
在该系统中,不仅可以对学生的信息进行添加、修改、删除和查询,还能对学生成绩与课程信息进行添加、修改、删除和查询,其功能如图1-1所示。
图1-1功能实现图
图1-2数据流图
1.2数据字典
(1)数据项:
Sno={Sno,学生学号,char,9,*******--*******,该数据项与另几个数据项一一对应}
Sna={Sname,学生姓名,char,20,该数据项与另几个数据项一一对应}
Sbir={Sbir,学生出生年月,char,30,0000.01—9999..12,该数据项对应Sno项与Sname项}
Ssex={Ssex,学生性别,char,2,‘男’‘女’}
Sdept={Sdept,学生系别,char,20,,该数据项与Sno项对应}
Cno={Cno,课程号,char,4,该数据项与Sno项对应}
Grade={Grade,学生成绩,smallint,2,0--100,该数据项与Sno项与Sname项对应}
Cname={Cname,课程名,char,40,该数据项Cno项对应}
Ccredit={Ccredit,学分,char,2,,该数据项与Cname项对应}
Uuser={Uuser,用户名,char,20}
Upassword={Upassword,密码,char,40,该数据项与Uuser项对应}
(2)数据结构:
学生信息={Student,学生个人信息,组成:
{Sno,Sname,Sbir,Ssex,Sdept}}
课程信息={Course,课程信息,组成:
{Cno,Cname,Ccredit}}
成绩信息={SC,成绩信息,组成:
{Sno,Cno,Grade}}
用户信息={User,用户个人信息,组成:
{Uuser,Upassword}}
3.有何安全性与完整性方面的要求(参照所给出的语义规则)。
如是否需要定义具有什么功能的存储过程、需定义具有什么功能的触发器、对不同的用户有何不同的系统使用权限等。
1.3创建数据表
经分析至少需要建立三个基本表,分别为学生基本信息表,课程基本信息表和学生课程关系表。
现设计其详细属性如下:
(1)学生基本信息表(Student):
学号(Sno)、姓名(Sname)、出生年月(Sbir)、性别(Ssex)、所在系(Sdept)。
(2)课程基本信息表(Course):
课程号(Cno)、课程名(Cname)、学分(Ccredit)。
(3)成绩信息表(Grade):
学号(Sno)、课程号(Cno)、成绩(Gra)。
1.4数据库完整性设计
(1)给每个关系表实施主键及外键约束,主键如学号、课程号。
(2)设置非空约束,如学生的姓名,性别等。
(3)实施CHECK约束,如性别只能为“男”或“女”两值。
(4)实施规则,如学号必须为8位数字,并前四位为2009等。
1.5小组分工
本组三名同学共同商讨完成需求分析、概念结构、逻辑结构及物理结构的设计部分。
然后三名同学分别使用JAVA语言编程实现各自界面:
井密负责实现登录、信息添加与查询界面;
尹蕊负责实现信息删除、修改界面;
孙晨康负责实现JAVA程序与MYSQL数据库的连接、整个程序的调试与主要实习报告的撰写。
2.概念结构设计
2.1设计方法
设计概念结构通常有四类方法:
(1)自顶向下即首先定义全局概念结构的框架,然后逐步细化。
(2)自底向上即首先定义各局部应用的概念结构,然后将其集合得到全局概念模式。
(3)逐渐扩张首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
(4)混合策略即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架继承由自底向上策略中设计的各局部概念结构。
2.2设计步骤
概念结构的设计分为两步:
第一步是抽象数据并设计局部视图,第二步是集成局部视图,得到全局的概念结构
2.3E-R图
(1)学生信息的E-R图如下:
图2-1学生实体E-R图
(2)课程信息的E-R图如下:
图2-2课程实体E-R图
(3)登录用户信息的E-R图如下:
图2-3用户信息E-R图
(4)学生信息管理的E-R图如下:
图2-4整体E-R图
3.逻辑结构设计
3.1E-R图向关系模型的转换
Student(Sno,Sname,Sbir,Ssex,Sdept)
此为学生实体对应的关系模式。
Course(Cno,Cname,Ccredit)
此为课程实体对应的关系模式。
Grade(Sno,Cno,Gra)
此为联系“主修”对应的关系模式。
3.2各个基本表的设计结果
表3-1学生基本信息表
列名
数据类型
说明
Sname
Char
学生姓名
Sno(主码)
学生学号,非空,唯一
Ssex
性别
Sdept
学生系别
Sbir
学生出生年月
表3-2课程基本信息表
Cno(主码)
课程号,非空,唯一
Cname
课程名
Ccredit
学分
表3-3成绩信息表
Sno
学生学号
Cno
课程号
Gra
成绩
4.物理结构设计
(1)确定数据的存储结构
确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。
这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。
因此在本系统中选择顺序存储结构。
(2)设计数据的存取路径
在关系数据库中,选择存取路径主要是指确定如何建立索引。
例如,应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚簇索引等。
在本系统中建立聚簇索引来存放数据库信息。
(3)确定数据的存放位置
为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。
学生信息一旦录入后,就很少改变,因此学生信息数据库应放在存取频率较低部分存放。
而成绩信息与课程信息在每学期末的的时候被大量的修改,因此将学生成绩表与课程信息表放入易变部分进行存放。
5.数据库设计实现及运行
5.1数据库的创建
CREATEDATABASEStudentON
(
NAME=’Student’,
FILENAME=’C:
\programfiles\microsoft.sqlserver\mssql\data\Student_data.mdf’,
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=10%
)
LOGON
(
\programfiles\microsoft.sqlserver\mssql\data\Student_log.ldf’,
MAXSIZE=10MB,
FILEGROWTH=1MB
5.2数据表的创建
CREATETABLEStudent
(SnameCHAR(20)NOTNULL,
SnoCHAR(20)PRIMARYKEY,
SsexCHAR(10)CHECK(SsexIN(‘男’,’女’)),
SdeptCHAR(10),
SbirCHAR(10)
)
CREATETABLECourse
CnoCHAR(6)PRIMARYKEY,
CnameCHAR(20)NOTNULL,
CcreditCHAR(5)
CREATETABLEGrade
(
SnoCHAR(20),
CnoCHAR(6),
GraCHAR(10)CHECK(Gra>
=0andGra<
=100),
FOREIGNKEY(Sno)REFENRENCESStudent(Sno),
FOREIGNKEY(Cno)REFENRENCESCourse(Cno)
5.3数据的插入、更新、查询、删除
(1)数据的插入语句:
insertintoStudent(Sno,Sname,Ssex,Sage,Sdept)
values('
200215121'
'
李勇'
男'
20,'
CS'
);
200215122'
刘晨'
女'
19,'
insertintoCourse(Cno,Cname,Cpno,Ccredit)
1'
数据库'
null,4);
2'
数学'
null,2);
insertintoGrade(Sno,Cno,Grade)
92);
85);
(2)数据的更新语句:
updateCourse
setCpno='
5'
whereCno='
;
3'
(3)数据的查询语句
selectSno,SnamefromStudent
select*fromCoursewhereCnamein('
java'
select*fromGradewhereGrade<
=90andGrade>
=85
(4)数据的删除语句
deletefromstuview2whereSname='
赵军'
(4)登录用户的创建
sp_addlogin'
root'
sp_addrolemember'
SystemAdministrators'
sp_adduser'
sp_helpuser'
5.4各模块涉及的操作语句
(1)插入数据操作
输入相关学生信息或成绩信息,然后点击“添加”键。
可将相关信息分别插入数据库中的Student表或Grade表。
功能界面如下图5-1及图5-2所示。
图5-1添加学生信息界面
图5-2添加学生成绩界面
MYSQL语句与Java嵌套使用代码段如下:
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==JBAdd||e.getSource()==JTSde)
Stringsno=JTNumber.getText();
Stringsna=JTName.getText();
Stringsde=JTSde.getText();
Stringssex="
女"
sql;
if(JRB1.isSelected())ssex="
男"
Stringsbir=JTBir.getText();
sql="
select*fromstudentwhereSno='
"
+sno+"
'
try
Class.forName("
com.mysql.jdbc.Driver"
Stringurl="
jdbc:
mysql:
//localhost/student?
user=root&
password=root"
Connectionconn=DriverManager.getConnection(url);
Statementstm=conn.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())
JOptionPane.showMessageDialog(null,"
该号已经存在!
else
insertintostudentvalues('
+sna+"
+sde+"
+ssex+"
+sbir+"
)"
inti=stm.executeUpdate(sql);
if(i>
0)
添加成功!
添加失败!
}
}catch(Exceptionee){}
if(e.getSource()==JBNext)
{
JTNumber.setText(null);
JTName.setText(null);
JTSde.setText(null);
JTBir.setText(null);
if(e.getSource()==JBExit)
System.exit(0);
测试结果如下图5-3所示。
图5-3添加视图界面
(2)删除数据操作
输入学生学号,即可实现删除该学号学生的相关信息的功能。
功能界面如图5-4所示。
图5-4删除学生信息界面
if(e.getSource()==JBDel||e.getSource()==JTNumber)
{
Stringsno=JTNumber.getText();
sql="
select*fromstudentwheresno='
+sno+"
try
{
Class.forName("
Stringurl="
Connectionconn=DriverManager.getConnection(url);
Statementstm=conn.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())
Strings="
select*fromgradewheresno='
Statementstatment=conn.createStatement();
ResultSetresult=statment.executeQuery(s);
if(result.next())JOptionPane.showMessageDialog(null,"
有其他表使用该信息不能删除!
else{
deletefromstudentwheresno='
intm=stm.executeUpdate(sql);
if(m>
0)
JOptionPane.showMessageDialog(null,"
删除成功!
else
删除失败!
}
}
{
此用户不存在!
}
}
catch(Exceptioner){}
}
if(e.getSource()==JBNext)
JTNumber.setText(null);
if(e.getSource()==JBExit)
setVisible(false);
测试结果如下图5-5所示。
图5-6删除操作视图
(3)修改数据操作
输入要修改的学生的相关成绩,并按下“修改”键,可完成学生成绩的修改。
功能界面如图5-7所示。
图5-7修改学生成绩界面
if(e.getSource()==JBSet)
Stringsname=JTName.getText();
Stringsdept=JTSde.getText();
Stringssex="
if(JRB1.isSelected())
ssex="
Stringsbir=JTBir.getText();
sql="
Class.forName("
Connectioncot=DriverManager.getConnection
("
Statementstm=cot.createStatement(1005,1008);
ResultSetrs=stm.executeQuery(sql);
//执行sql语句
if(rs.next())
{
updatestudentsetsna='
+sname+"
sde='
+sdept+"
sex='
bir='
whereSno='
intn=stm.executeUpdate(sql);
//修改成功则返回修改失败信息
if(n>
0)JOptionPane.showMessageDialog(null,"
修改成功!
//else//修改失败则返回失败信息
elseJOptionPane.showMessageDialog(null,"
修改失败!
//否则将提示不存在该学号学生
不存在该学号学生!
catch(Exceptioner){}
if(e.getSource()==JBNext)
{
if(e.getSource()==JBExit)
setVisible(false);
测试结果如下图5-8所示。
图5-8修改视图
6.系统详细设计及实现
6.1系统环境简介
本系统选用MYSQL数据库作为后台,与Java编写的前台界面相连接实现对于数据的查询、修
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实习 报告