欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库课程大作业——数据分析与数据管理系统实践

程序员文章站 2022-05-10 08:01:03
...

数据分析与数据管理系统实践

一、数据介绍

公司员工信息 ,Excel文件

提供 44 名员工 姓名、所在部门工作职务车的编号

数据库课程大作业——数据分析与数据管理系统实践

公司员工的信用卡刷记录(两周) ,Excel 文件

约 1400 行信用卡刷记录,内容包括:员工姓名、地点称金额时间

数据库课程大作业——数据分析与数据管理系统实践

二、大作业要求

1、根据自己所学数据库操作和管理知识,创建一个数据库,把两个Excel表导入这个数据库,并对应建立两个表;对两个表创建主键、外键、索引,还可以自己增加一些列,或者做一些视图;

2、综合运用自己所学的查询语句和SQL开发技巧对数据进行统计分析,并要求回答如下问题;

问题一:员工的消费有一些什么有趣的模式和规律,请写出你分析的SQL语句,并截取分析结果,说明你是如何找到的这些模式和规律的;(不少于5个模式)

问题二:员工的消费有什么异常现象,你是如何找到这个异常的,请写出你得到分析的SQL语句,并截取分析结果。(不少于3个异常)

3、学习一门开发工具,开发一个小型数据库管理系统

系统基本功能1:增加、删除和修改这两个表的记录

系统基本功能2:提供输入框接受用户手动输入SQL查询语句,能输出用户任意输入的SQL查询语句的查询结果。

系统基本功能3:能够按人、按消费地点、按天这三种组合,设计并输出几个统计报表。

 

三、实验过程及结果

1、创建“大数据作业”数据库后,右键点击该数据库,选择【任务】—>【导入数据】,如右图所示:

数据库课程大作业——数据分析与数据管理系统实践
2、选择导入的数据源,下一步,选择导入的数据库目标,如下图所示:

数据库课程大作业——数据分析与数据管理系统实践

3、在指定表复制或查询中应该可以选择【编写查询已指定要传输的数据】对数据进行清洗,尝试着写SQL语句过滤到脏数据,但没有成功,所以就选择直接先全将数据导入到数据库,再对数据进行过滤。

数据库课程大作业——数据分析与数据管理系统实践

4、通过对数据的查询,我们可以发现creditcard表中存在一些类似“Katerina抯 Caf?28”的奇字符,下面在数据库里对表中数据进行清洗。

数据库课程大作业——数据分析与数据管理系统实践

5、新建查询对数据清洗,并将新的数据建立一张新表。

将employee表中FirstName和LastName合并,创建newemployee表

select FirstName+' '+LastName as name,CurrentEmploymentType,CurrentEmploymentTitle

into newemployee

from employee

将creditcard表中FirstName和LastName合并,创建newcreditcard表

select FirstName+' '+LastName as name,timestamp,location,price

into newcreditcard

from creditcard

通过对两张表的name查询,可以发现newemployee表共44名员工,newcreditcard表去掉为NULL共55人

select distinct name

from newemployee



select distinct name

from newcreditcard

在这里我们对存在newemployee表中的44名员工进行对他们的消费记录的查询,可以发现creditcard表中错误不会影响,当然也可以尝试清洗一下数据

select *

into newcreditcard1

from newcreditcard

where name in (

select name

from newemployee

)

清洗数据:

select *

into newcreditcard

from credtcard

where location not like '%[0-9]%'and FirstName is not NULL and LastName is not NULL


6、设置表中数据的数据类型、主键,newemployee表中FirstName、LastName没有重复项,可以设置为主键,而newcreditcard1表中有重复项,如果要设置主键,就必须FirstName、LastName、timestamp、location都设置为主键。

数据库课程大作业——数据分析与数据管理系统实践

7、分析数据:

(1)模式和规律

① 查询每个人两周内的消费总金额和职业,可以发现卡车司机职业的消费金额比其他人都高,Valeria Morlun消费最多。

数据库课程大作业——数据分析与数据管理系统实践
② 查询所有消费地点的消费人次,可以发现Hippokampos、Guy's Gyros、Brew've Been Served普遍比其他地方消费次数高,比较受欢迎。

数据库课程大作业——数据分析与数据管理系统实践
③ 查询每个人到某个地点的消费次数,可以发现大部分人两周内基本每天都去某个地方消费一次。

数据库课程大作业——数据分析与数据管理系统实践

④ 查询每天所有人的消费次数总和,可以发现6号至10号五天和13号至17号五天,消费次数比11、12号和18、19号要多,可以猜想工作日出门次数比周末次数多,消费次数多。

数据库课程大作业——数据分析与数据管理系统实践

⑤ 查询每天某一时间段内的消费次数,将一天分24小时为【00:00:00-03:00:00】、【03:00:00-06:00:00】、【06:00:00-09:00:00】、【09:00:00-12:00:00】、【12:00:00-15:00:00】、【15:00:00-18:00:00】、【18:00:00-21:00:00】、【21:00:00-24:00:00】八个时间段,发现【00:00:00-03:00:00】、【03:00:00-06:00:00】、【15:00:00-18:00:00】这几个时间段消费次数较少,大多数消费集中在其他时间段:早餐、午餐、下午茶、晚餐。

【06:00:00-09:00:00】

数据库课程大作业——数据分析与数据管理系统实践
【09:00:00-12:00:00】

数据库课程大作业——数据分析与数据管理系统实践
【12:00:00-15:00:00】

数据库课程大作业——数据分析与数据管理系统实践
【15:00:00-18:00:00】

数据库课程大作业——数据分析与数据管理系统实践

【18:00:00-21:00:00】

数据库课程大作业——数据分析与数据管理系统实践
【21:00:00-24:00:00】

数据库课程大作业——数据分析与数据管理系统实践
【00:00:00-03:00:00】

数据库课程大作业——数据分析与数据管理系统实践
【03:00:00-06:00:00】

数据库课程大作业——数据分析与数据管理系统实践

(2)异常现象

① Adan Morlun和Claudio Nant两人消费次数都比较少且平均消费金额比较大,最大单笔消费也比较多。

select FirstName,LastName,COUNT(*)as '消费次数',SUM(price)as '总金额',AVG(price)as '平均消费金额',MAX(price)as '单笔最大消费'

from newcredtcard

group by FirstName,LastName 

order by AVG(price)desc

数据库课程大作业——数据分析与数据管理系统实践

② 13号的凌晨【00:00:00-03:00:00】和12、13号【03:00:00-06:00:00】有消费记录

数据库课程大作业——数据分析与数据管理系统实践

数据库课程大作业——数据分析与数据管理系统实践

③ Maximum Iron and Steel、Abila Scrapyard这几个地点,消费次数少,且金额大,平均金额也很大。

select location,COUNT(*)as '消费次数',SUM(price)as '总金额',AVG(price)as '平均消费金额',MAX(price)as '单笔最大消费'

from newcreditcard

group by location

order by AVG(price)desc

数据库课程大作业——数据分析与数据管理系统实践

8、数据库开发

开发工具:Delphi 2010

开发环境:Windows XP(在虚拟机上完成的,SQL Server Management Studio也在XP里,因为我的主机Win10安装不成功)

数据库课程大作业——数据分析与数据管理系统实践

开始选择Delphi 7 ,但感觉界面不太友好,就又重新选了Delphi 2010安装,安装网上有教程,**也有,但没有**出来,且只有14天的试用期。DevExpress VCL 13.1.4是后面网上找教程安装的插件,主要是一些控件的使用会用到,根据网上教程以及《Delphi程序开发范例宝典》进行数据库开发,具体实验截图见下:

主界面:

数据库课程大作业——数据分析与数据管理系统实践

主体框架结构:

Ucreadtcard.pas:对creditcard表(这里命名错了)的增删改操作的主程序;

UDMmain.pas:数据库连接模块,后面会看到;

Uemployee.pas:对employee表的增删改操作的主程序;

Ugroup.pas:对creditcard表分组查询操作(按人、地点、天)的主程序;

Umain.pas:主窗口程序;

USQL.pas:SQL查询的主程序

数据库课程大作业——数据分析与数据管理系统实践
主窗口:设置了SQL查询、employee表、creditcard表、统计,四个按钮,通过dxBarManager进行管理,点击触发通过ActionList管理,dxSkinController界面皮肤管理控件。

数据库课程大作业——数据分析与数据管理系统实践
按钮触发事件代码如下:

数据库课程大作业——数据分析与数据管理系统实践

Employee表的窗口界面,一张表控件和数据库导航控件,导航控件可以对数据库进行增删改操作,creditcard表一样。

数据库课程大作业——数据分析与数据管理系统实践
ADOConnection连接数据库,ADOQuery查询数据库,DataSource查询后的数据源

数据库课程大作业——数据分析与数据管理系统实践

SQL查询界面,Memo接收SQL语句,查询按钮触发事件进行查询,表输出结果。

数据库课程大作业——数据分析与数据管理系统实践
设计代码如下:

数据库课程大作业——数据分析与数据管理系统实践

分组查询,设置查询条件,按人、地点、时间进行查询。

数据库课程大作业——数据分析与数据管理系统实践
给ComboBox设置选项,即查询列下的所有数据对象,代码如下图:

数据库课程大作业——数据分析与数据管理系统实践
按钮触发,进行查询,代码如下:

数据库课程大作业——数据分析与数据管理系统实践

实验测试结果如下:

启动主界面;

数据库课程大作业——数据分析与数据管理系统实践

点击SQL查询按钮,输入SQL语句,点击查询。

数据库课程大作业——数据分析与数据管理系统实践
点击employee表,进行对该表的增删改,增是“+”,删是“-”,改直接在表中改,然后点击“√”

数据库课程大作业——数据分析与数据管理系统实践

增加数据的效果,SQL Sever数据库中增加了这么一行,如下图:

数据库课程大作业——数据分析与数据管理系统实践
删除数据的效果,选中某行数据,点击“-”按钮,删除数据。

数据库课程大作业——数据分析与数据管理系统实践

改,直接在表中改就行,然后点击“√”按钮。

点击统计按钮,进行分组查询,从下拉框中选出查询的对象,点击查询就可以进行条件查询。

数据库课程大作业——数据分析与数据管理系统实践

 

四、总结

通过本次数据库大作业实验,进一步巩固了我对数据库的基本操作,同时锻炼了对数据的分析能力,以及初步认识和学习数据库开发,掌握了一些数据库开发的基本操作。对于语言,无论是SQL语言、数据库开发语言,还是C、Java,都有其固定的结构,和类似的语法,函数调用、参数传递,可能一看就知道它在做什么,还有网上****资源很多,对于语言、开发的学习有很大帮助,希望在今后学习中能提升更多。

相关标签: 数据库大作业