数据库实习报告.docx

上传人:b****5 文档编号:6380194 上传时间:2023-01-05 格式:DOCX 页数:22 大小:1.06MB
下载 相关 举报
数据库实习报告.docx_第1页
第1页 / 共22页
数据库实习报告.docx_第2页
第2页 / 共22页
数据库实习报告.docx_第3页
第3页 / 共22页
数据库实习报告.docx_第4页
第4页 / 共22页
数据库实习报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数据库实习报告.docx

《数据库实习报告.docx》由会员分享,可在线阅读,更多相关《数据库实习报告.docx(22页珍藏版)》请在冰豆网上搜索。

数据库实习报告.docx

数据库实习报告

河南工程学院

实习报告

 

系(部)计算机科学与工程系

专业计算机科学与技术

班级0942班

负责人学号及姓名************井密

成员学号及姓名************孙晨康

200910913203尹蕊

2011年12月30日

数据库系统原理课程设计指导教师评分表

课程设计题目

学生信息管理系统

成员

姓名

学号

任务分工

井密

200910913247

实现登录、信息添加与查询界面

孙晨康

200910913213

实现JAVA程序与MYSQL数据库的连接、整个程序的调试与主要实习报告的撰写

尹蕊

200910913203

实现信息删除、修改界面

评分项目及分值要素

成绩评定

项目

最高分

评分要素

成绩

1.学习态度

20

上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等

2.软件设计质量

40

采用的算法、设计方案,设计结果,界面友好等方面进行综合评定

3.答辩过程

20

能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题

4.设计报告书写

10

内容按要求步骤书写,条理清晰,表述清楚、措词得当

5.实际动手能力

10

熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;组长全面负责,承担复杂的模块设计分值就高

总成绩

实习(训)报告评语

 

等级:

评阅人:

职称:

年月日

河南工程学院

实习(训)报告

 

实习目的(内容):

学习和掌握数据库原理及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(主码)

Char

学生学号,非空,唯一

Ssex

Char

性别

Sdept

Char

学生系别

Sbir

Char

学生出生年月

 

表3-2课程基本信息表

列名

数据类型

说明

Cno(主码)

Char

课程号,非空,唯一

Cname

Char

课程名

Ccredit

Char

学分

 

表3-3成绩信息表

列名

数据类型

说明

Sno

Char

学生学号

Cno

Char

课程号

Gra

Char

成绩

 

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

NAME=’Student’,

FILENAME=’C:

\programfiles\microsoft.sqlserver\mssql\data\Student_log.ldf’,

SIZE=1MB,

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');

insertintoStudent(Sno,Sname,Ssex,Sage,Sdept)

values('200215122','刘晨','女',19,'CS');

insertintoCourse(Cno,Cname,Cpno,Ccredit)

values('1','数据库',null,4);

insertintoCourse(Cno,Cname,Cpno,Ccredit)

values('2','数学',null,2);

insertintoGrade(Sno,Cno,Grade)

values('200215121','1',92);

insertintoGrade(Sno,Cno,Grade)

values('200215121','2',85);

(2)数据的更新语句:

updateCourse

setCpno='5'

whereCno='1';

updateCourse

setCpno='1'

whereCno='3';

(3)数据的查询语句

selectSno,SnamefromStudent

select*fromCoursewhereCnamein('数学','java')

select*fromGradewhereGrade<=90andGrade>=85

(4)数据的删除语句

deletefromstuview2whereSname='赵军'

(4)登录用户的创建

sp_addlogin'root'

sp_addrolemember'SystemAdministrators','root'

sp_adduser'root','root'

sp_helpuser'root'

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

{

sql="insertintostudentvalues('"+sno+"','"+sna+"','"+sde+"','"+ssex+"','"+sbir+"')";

inti=stm.executeUpdate(sql);

if(i>0)

JOptionPane.showMessageDialog(null,"添加成功!

");

else

JOptionPane.showMessageDialog(null,"添加失败!

");

}

}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删除学生信息界面

MYSQL语句与Java嵌套使用代码段如下:

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==JBDel||e.getSource()==JTNumber)

{

Stringsno=JTNumber.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())

{

Strings="select*fromgradewheresno='"+sno+"'";

Statementstatment=conn.createStatement();

ResultSetresult=statment.executeQuery(s);

if(result.next())JOptionPane.showMessageDialog(null,"有其他表使用该信息不能删除!

");

else{

sql="deletefromstudentwheresno='"+sno+"'";

intm=stm.executeUpdate(sql);

if(m>0)

JOptionPane.showMessageDialog(null,"删除成功!

");

else

JOptionPane.showMessageDialog(null,"删除失败!

");}

}

else

{

JOptionPane.showMessageDialog(null,"此用户不存在!

");

}

}

catch(Exceptioner){}

}

if(e.getSource()==JBNext)

JTNumber.setText(null);

if(e.getSource()==JBExit)

setVisible(false);

}

测试结果如下图5-5所示。

图5-6删除操作视图

(3)修改数据操作

输入要修改的学生的相关成绩,并按下“修改”键,可完成学生成绩的修改。

功能界面如图5-7所示。

图5-7修改学生成绩界面

MYSQL语句与Java嵌套使用代码段如下:

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==JBSet)

{

Stringsno=JTNumber.getText();

Stringsname=JTName.getText();

Stringsdept=JTSde.getText();

Stringssex="女",sql;

if(JRB1.isSelected())

ssex="男";

Stringsbir=JTBir.getText();

sql="select*fromstudentwhereSno='"+sno+"'";

try

{

Class.forName("com.mysql.jdbc.Driver");

Connectioncot=DriverManager.getConnection

("jdbc:

mysql:

//localhost/student?

user=root&password=root");

Statementstm=cot.createStatement(1005,1008);

ResultSetrs=stm.executeQuery(sql);//执行sql语句

if(rs.next())

{

sql="updatestudentsetsna='"+sname+"',sde='"+sdept+"',sex='"+ssex+"',bir='"+sbir+"'whereSno='"+sno+"'";

intn=stm.executeUpdate(sql);

//修改成功则返回修改失败信息

if(n>0)JOptionPane.showMessageDialog(null,"修改成功!

");

//else//修改失败则返回失败信息

elseJOptionPane.showMessageDialog(null,"修改失败!

");

}

else

{

//否则将提示不存在该学号学生

JOptionPane.showMessageDialog(null,"不存在该学号学生!

");

}

}

catch(Exceptioner){}

}

if(e.getSource()==JBNext)

{

JTNumber.setText(null);

JTName.setText(null);

JTSde.setText(null);

JTBir.setText(null);

}

if(e.getSource()==JBExit)

{

setVisible(false);

}

}

测试结果如下图5-8所示。

图5-8修改视图

 

6.系统详细设计及实现

6.1系统环境简介

本系统选用MYSQL数据库作为后台,与Java编写的前台界面相连接实现对于数据的查询、修

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

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

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