数据库课程设计.docx

上传人:b****4 文档编号:24405067 上传时间:2023-05-27 格式:DOCX 页数:27 大小:388.82KB
下载 相关 举报
数据库课程设计.docx_第1页
第1页 / 共27页
数据库课程设计.docx_第2页
第2页 / 共27页
数据库课程设计.docx_第3页
第3页 / 共27页
数据库课程设计.docx_第4页
第4页 / 共27页
数据库课程设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数据库课程设计.docx

《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(27页珍藏版)》请在冰豆网上搜索。

数据库课程设计.docx

数据库课程设计

大连交通大学信息工程学院

数据库课程设计

 

题目职工信息管理系统

 

学生姓名专业班级网络工程08-2

指导教师宋旭东职称  讲师

所在单位电气工程系 

教学部主任 李峻

 

完成日期2010年12月09日

《数据库课程设计》任务书

一、课程设计的目的

《数据库课程设计》是软件工程专业(本科)教学大纲要求的重要实践性环节之一,是学习完《数据库原理及应用》和《Oracle数据库应用》两门课程后进行的一次数据库方面的综合练习。

其目的在于:

配合《数据库原理及应用》和《Oracle数据库应用》课程的教学,使学生能巩固和加深对数据库基础理论和基本知识的理解;掌握使用数据库进行软件设计的基本思想和方法;提高学生运用数据库理论解决实际问题的能力;培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

二、课程设计的内容及要求

内容:

用一种高级语言和当前流行的数据库管理系统相结合,完成一个小型管理系统的设计与开发。

所设计的小型管理系统应包含两个以上(不多于4个)的模块以及输入输出、查询、插入、删除等基本功能。

根据课程设计2周时间的安排选择适当大小的设计课题,课题的选择可以是实际问题,也可以是虚构的问题。

根据题目的基本需求,画出系统结构图,并对数据库进行详细设计,编写程序,同时写出关于本数据库管理系统的报告书。

要求:

(1)要求学生按照《数据库原理及应用》和《Oracle数据库应用》相关知识以及《数据库课程设计》教学大纲完成一个数据库设计,并撰写相应的课程设计报告。

(2)提交课程设计报告。

要求完成课程设计报告大约15页-20页,包括相应的模块设计文档、数据库设计文档、所承担模块的核心代码、测试过程分析与运行结果等。

分组进行的同学共同完成基本设计与数据库设计,但每个人至少必须独立完成一个模块设计与实现,并写入课程设计报告中。

三、课程设计时间

课程设计时间为2周(10个工作日)

四、课程设计分组

一人一组

五、课程设计的成果和形式

1.报告一篇

建议论文按下列的提纲书写

2.符合设计要求的数据库应用系统一个

指导教师签字:

年月日

 

1系统需求分析1

1.1需求描述1

1.2技术可行性1

1.3操作可行性2

1.4数据流图2

1.5数据字典2

2数据库概念结构设计4

2.1全局E-R图4

2.2局部E-R图5

3数据库逻辑结构设计6

3.1初始关系模式6

3.2规范化处理7

4数据库物理结构设计7

4.1基于SQLServer的部分数据表设计7

4.2用户8

5数据库实施8

5.1关系图8

6系统(界面)设计8

6.1部分界面设计及主要代码8

参考文献15

附件一所有SQL运行代码16

附件二18

 

1系统需求分析

1.1需求描述

随着本世纪以来科学技术的突飞猛进和社会生产力的迅速发展,人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,特别是企业间日趋剧烈的竞争形势,一个人、一个企业要在现代社会中求生存,求发展,必须具备足够的信息和强有力的信息收集与处理手段。

电子计算机以强大的信息处理能力作为人类脑力劳动的有力助手登上历史舞台以后,出现了把人类从繁琐的脑力劳动下解放出来的现代信息革命。

为了适应现代企业或公司经营发展的需要,为提高企业工作效率、保证企业职工信息管理质量、快而准确地为企业制定好的经营方针与决策,我们有必要开发一个职工信息管理系统。

该系统应具备以下功能:

—增加—

增加员工的基本信息、培训信息、奖罚信息、薪资信息

—删除—

可根据员工的编号及姓名等资料的删除

—修改—

用户可以对员工的姓名和编号、进行修改。

—查询—

用户可以根据姓名、编号,准确的查到要找的员工,也可以选择部门,查看选中的部门的所有员工。

1.2技术可行性

1.Java简介

Java是1995年6月有Sun公司引进到这个世界的革命性的编程语言,它被美国的著名杂志《PCMagazine》评为1995年十大优秀科技产品。

之所以称Java为革命性的编程语言,是因为传统的软件往往与具体的是想环境有关,一旦环境有所变化就需要对软件进行一番改动,耗时费力,而Java编写的软件能在执行码上兼容。

这样,只要计算机提供了Java解释器,Java编写的软件就能在其上运行。

2.SQLServer2000简介

SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的一个版本。

该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。

 

1.3操作可行性

对于用户来说,本系统只要求使用者掌握一定的上网经验,经过仔细设计和测试之后的系统具有操作简单,方便灵活等优点,足可以满足各种用户的不同需求,同时也方便了公司的内部管理。

管理人员及用户一定会在短时间内掌握并熟练使用。

只要动一动鼠标键盘就可以达到想要的效果。

1.4数据流图

1.5数据字典

表1.1数据字典

库名(EmployeeInformationMS)

用户信息表(UserInformation)

字段

类型

说明

大小

是否为空

User_ID

Int

员工编号

NOTNULL

User_Name

varchar

员工姓名

20

NOTNULL

Password

varchar

密码

20

NOTNULL

Popedom

varchar

权限

20

NOTNULL

部门信息管理(DepartmentInformation)

字段

类型

说明

大小

是否为空

D_Number

int

部门编号

NOTNULL

D_Count

varchar

部门人数

20

NOTNULL

D_Name

varchar

部门名称

20

NOTNULL

员工基本信息表(EmployeeInformation)

字段

类型

说明

大小

是否为空

E_Number

int

员工编号

NOTNULL

E_Name

varchar

姓名

20

NOTNULL

E_Sex

varchar

性别

2

NOTNULL

E_BornDate

varchar

出生日期

30

NOTNULL

E_Marriage

varchar

婚姻状态

4

NOTNULL

E_PoliticsVisage

varchar

政治面貌

20

NOTNULL

E_SchoolAge

varchar

学历

20

NOTNULL

E_EnterDate

varchar

进入公司时间

30

NOTNULL

E_InDueFormDate

varchar

转正时间

30

NOTNULL

E_Department

varchar

部门

20

NOTNULL

E_Headship

varchar

职务

20

NOTNULL

E_Estate

varchar

状态

20

NOTNULL

E_Remark

varchar

备注

500

NOTNULL

培训信息表(TrainInformation)

字段

类型

说明

大小

是否为空

T_Number

varchar

培训编号

20

NOTNULL

T_Content

varchar

培训内容

100

NOTNULL

T_Name

varchar

培训员工姓名

20

NOTNULL

T_Date

int

培训天数

NOTNULL

T_Money

int

培训费用

NOTNULL

奖罚信息表(EncouragementPunishInformation)

字段

类型

说明

大小

是否为空

EP_Number

int

员工编号

NOTNULL

EP_Name

varchar

员工姓名

30

NOTNULL

EP_Date

varchar

奖罚时间

30

NOTNULL

EP_Address

varchar

奖罚地点

50

NOTNULL

EP_Causation

varchar

奖罚原因

200

NOTNULL

EP_Remark

varchar

备注

500

NOTNULL

薪资信息表(WageInformation)

字段

类型

说明

大小

是否为空

W_Number

int

员工编号

NOTNULL

W_Name

varchar

员工姓名

30

NOTNULL

W_BasicWage

int

基本工资

NOTNULL

W_Boon

int

福利

NOTNULL

W_Bonus

int

奖金

NOTNULL

W_CountMethod

varchar

计算方法

50

NOTNULL

W_FactWage

int

实发工资

NOTNULL

2数据库概念结构设计

2.1全局E-R图

2.2局部E-R图

3数据库逻辑结构设计

3.1初始关系模式

用户(员工编号,员工姓名,密码,权限)

部门(部门编号,部门人数,部门名称)

员工(员工编号,姓名,性别,出生日期,婚姻状态,政治面貌,学历,进入公司时

间,转正时间,部门,职务,状态,备注)

培训(培训编号,培训内容,培训员工姓名,培训天数,培训费用)

奖罚(员工编号,员工姓名,奖罚时间,奖罚原因,备注)

薪资(员工编号,员工姓名,基本工资,福利,奖金,计算方法,实发工资)

3.2规范化处理

经过对初始关系模式的规范化处理以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。

(=代表主码,≈代表外码)

用户(员工编号,员工姓名,密码,权限)

部门(部门编号,部门人数,部门名称)

员工(员工编号,姓名,性别,出生日期,婚姻状态,政治面貌,学历,进入公司时

间,转正时间,部门,职务,状态,备注)

培训(培训编号,培训内容,培训员工姓名,培训天数,培训费用)

奖罚(员工编号,员工姓名,奖罚时间,奖罚原因,备注)

薪资(员工编号,员工姓名,基本工资,福利,奖金,计算方法,实发工资)

4数据库物理结构设计

4.1基于SQLServer的部分数据表设计

图4-1部门表

图4-2员工表

4.2用户

建立了管理员和admin两个用户。

图4-3用户表

5数据库实施

5.1关系图

图5-1关系图

6系统(界面)设计

6.1部分界面设计及主要代码

1.登陆界面及代码

图6-1登陆界面

//用户登陆类部分代码

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.sql.*;

publicclassLandextendsJFrame{

JFramejf;

JTextFieldtextName=newJTextField();

JPasswordFieldtextage=newJPasswordField();

JLabellabel=newJLabel("员工管理系统");

JLabellabelName=newJLabel("用户名:

");

JLabellabelage=newJLabel("密码:

");

JButtonbuttonEnter=newJButton("登录");

JButtonbuttoncancel=newJButton("清空");

publicLand(){

jf=this;

setTitle("登录");

Fontf=newFont("新宋体",Font.PLAIN,12);

Containercon=getContentPane();

con.setLayout(null);

label.setBounds(95,10,110,20);

label.setFont(newFont("新宋体",Font.PLAIN,14));

con.add(label);

labelName.setBounds(45,40,55,20);

labelName.setFont(f);

con.add(labelName);

textName.setBounds(95,40,120,20);

con.add(textName);

labelage.setBounds(45,70,45,20);

con.add(labelage);

labelage.setFont(f);

textage.setBounds(95,70,120,20);

con.add(textage);

buttonEnter.setBounds(90,110,60,20);

buttonEnter.setFont(f);

con.add(buttonEnter);

publicstaticvoidmain(Stringargs[]){

newLand();

}

}

2.主界面及代码

图6-2主界面

//菜单添加及系统菜单的添加部分代码

publicMain(){//构造函数

setTitle("员工管理系统");//设置窗体标题

Containercon=getContentPane();

con.setLayout(newBorderLayout());//创建一个布局

con.add(deskpane,BorderLayout.CENTER);//实例虚拟桌面的布局

Fontf=newFont("新宋体",Font.PLAIN,12);//设置一个字体

JMenuBarmb=newJMenuBar();//实例化菜单栏

//实例化菜单开始

JMenusystemM=newJMenu("系统管理");

systemM.setFont(f);

JMenumanageM=newJMenu("信息管理");

manageM.setFont(f);

JMenuemployeeMM=newJMenu("员工信息管理");//这个是信息管理的二级菜单

employeeMM.setFont(f);

JMenuselectM=newJMenu("信息查询");

selectM.setFont(f);

JMenuemployeeSM=newJMenu("员工信息查询");//这个是信息查询的二级菜单

employeeSM.setFont(f);

JMenuaboutM=newJMenu("关于");

aboutM.setFont(f);

//实例化系统管理菜单的菜单项

JMenuItempassword=newJMenuItem("密码修改");

password.setFont(f);

JMenuItemland=newJMenuItem("重新登陆");

land.setFont(f);

JMenuItemaddDelete=newJMenuItem("添加/删除用户");

addDelete.setFont(f);

JMenuItemexit=newJMenuItem("退出系统");

exit.setFont(f);

systemM.add(password);

systemM.add(land);

systemM.add(addDelete);

systemM.add(exit);

//为系统管理菜单加事件

password.addActionListener(newActionListener(){//密码修改监听

publicvoidactionPerformed(ActionEvente){

System.out.println("AmendPassword");

deskpane.add(newAmendPassword());

}

});

land.addActionListener(newActionListener(){//重新登陆监听

publicvoidactionPerformed(ActionEvente){

System.out.println("Land");

setVisible(false);

newLand();

}

});

addDelete.addActionListener(newActionListener(){//添加/删除用户监听

publicvoidactionPerformed(ActionEvente){

deskpane.add(newAddDeleteUser());

}

});

exit.addActionListener(newActionListener(){//退出系统监听

publicvoidactionPerformed(ActionEvente){

setVisible(false);

}

});

}

}

3.系统管理

图6-3系统管理

系统管理部分主要完成了4部分主要功能,分别是密码修改、重新登录、添加/删除用户、退出系统。

这部分功能主要方便管理员对账户的管理以及普通用户对整个系统的操作。

4.信息管理

图6-4信息管理

信息管理部分可以分解为员工信息管理和部门信息管理两方面。

其中员工信息管理方面又分为培训信息管理、基本信息管理、奖罚信息管理、薪资信息管理。

这部分功能主要在于方便管理员对信息的管理,可以对数据库进行必要的添加、删除、修改操作。

5.信息查询

图6-5信息查询

信息查询部分可以分解为员工信息查询和部门信息查询两方面。

其中员工信息查询方面又分为培训信息查询、基本信息查询、奖罚信息查询、薪资信息查询。

这部分功能主要在于方便普通用户对信息的查询,可以对自身信息进行查询操作。

6.数据库联接

//数据库联接代码

importjava.sql.*;

publicclassDatabase{

publicstaticConnectioncn;

publicstaticStatementst;

publicstaticResultSetrs;

publicstaticbooleanjoinDB(){

booleanjoinFlag;

try{

joinFlag=true;

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

cn=DriverManager.getConnection("jdbc:

odbc:

EmployeeInformationMS","","");

System.out.println("数据库连接成功");

st=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

returnjoinFlag;

}

catch(SQLExceptionsqlEx){

System.out.println(sqlEx.getMessage());

joinFlag=false;

returnjoinFlag;

}

catch(ClassNotFoundExceptionnotfoundEX){

System.out.println(notfoundEX.getMessage());

joinFlag=false;

returnjoinFlag;

}

}

publicstaticbooleanexecuteSQL(StringsqlString){

booleanexecuteFlag;

try{

st.execute(sqlString);

executeFlag=true;

}catch(Exceptione){

executeFlag=false;

System.out.println("sqlexception:

"+e.getMessage());

}

returnexecuteFlag;

}

publicstaticbooleanquery(StringsqlString){

try{

rs=null;

rs=st.executeQuery(sqlString);

}catch(ExceptionEx){

System.out.println("sqlexception:

"+Ex);

returnfalse;

}

returntrue;

}

}

 

参考文献

[1]耿祥义,张跃平.Java2实用教程[M].北京:

清华大学出版

社,2006.8

[2]钱雪忠,黄建华.数据库原理及应用[M].北京:

北京邮电大

学出版社,2007

[3]钱雪忠,陶向东.数据库原理及应用实践指导[M].北京:

北京邮电

大学出版社,2005

[4]达尔文.Java经典实例[M].北京:

中国电力出版社,2009

[5]布鲁诺.Java实时编程[M].北京:

机械工业出版社,2010.1

 

 

附件一:

所有SQL运行代码

1.CREATEDATABASEEmployeeInformationMS//创建数据库

2.CREATETABLEUserInformation

User_IDINTIDENTITY(1,1),

User_NameVARCHAR(20)NOTNULL,

PasswordVARCHAR(20)NOTNULL,

PopedomVARCHAR(20)DEFAULT'B',--权限

)//创建用户信息表

3.CREATETABLEDe

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

当前位置:首页 > 农林牧渔 > 林学

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

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