关键字 |
数据挖掘、水平聚合、主、SQL、情况下,数据集,查询集,动态查询。 |
我的介绍。 |
数据库模型(如RDBMS已经广泛用于存储和检索现实世界的业务数据。尽管数据库支持数据存储和检索机制,它们用于数据操作。消息灵通的业务决策,至关重要的是挖掘这些数据从数据中提取趋势或模式。然而,事务数据库不能直接用于数据挖掘。因此准备数据集数据挖掘目的假设的意义。然而,现有的聚合函数可以在SQL生成数据集不支持,因为他们只能生产单一行输出。业务数据的总结可以为数据挖掘的目的,而不是让整个业务数据。 |
这是准备数据挖掘数据背后的想法。纵聚合无法发货,有水平是至关重要的聚合。然而,SQL不支持他们[1]。但纵聚合是有用的在统计算法[2],[3]。随着数据挖掘的需求期望数据集水平布局(组行和列),生成的数据集与布局是很重要的。有数据挖掘技术如聚类、分类、回归、主成分分析等[4]。 |
水平代表一个扩展形式的传统SQL聚合,聚合返回一组值的水平布局而不是单个值每一行。水平聚合提供一些独特的特点和优势。首先,他们代表一个模板来生成SQL代码从数据挖掘工具。这个SQL代码减少手工工作在数据准备阶段的数据挖掘项目。第二,因为SQL代码是自动生成的,它可能会更有效率比SQL代码由最终用户写的。第三,在DBMS完全可以创建数据集。水平聚合只是需要一个小的语法扩展聚合函数一个SELECT语句。另外,横向聚合可用于生成SQL代码从数据挖掘工具来构建数据集进行数据挖掘分析。 |
二世。相关工作 |
存在许多提议扩展SQL语法。最接近的相关处理OLAP数据挖掘问题是关联规则挖掘[5]。SQL扩展定义聚合函数介绍了关联规则挖掘在[6]。在这种情况下,我们的目标是有效地计算项目集的支持。不幸的是,没有置换的结果因为事务的概念给出了垂直布局。编程与SQL查询聚类算法研究[9],这显示了数据集的水平布局使更容易和简单的SQL查询。介绍了选择SQL扩展执行电子表格的操作在[7]。他们的优化的目的,避免加入细胞表达公式,但不优化执行部分换位为每个组的结果行。主和案例的方法避免连接。 |
几个SQL原始运营商转型介绍了数据挖掘的数据集[10];我们最相似的一个操作员转置一个表,基于一个选择列。转置运算符[10]相当于透视运营商生产为一个输入行几行。一个重要的区别是,主相比,转置允许将两个或两个以上的列转置在同一个查询,减少表扫描。因此,透视和转置都是逆运营商对水平聚合。垂直布局可能会给更多的灵活性表达数据挖掘计算(如决策树)和SQL聚合和group by查询,但它通常是低效率的水平布局。 |
水平相关聚合水平比例聚合[8]。这两种方法之间的区别这一比例聚合需要聚集在两个分组的水平,需要将数字和需要照顾的数值问题(例如,除以零)。水平聚合更一般、更广泛的适用性,事实上,他们可以用作原始扩展算子来计算百分比。 |
三世。提出的方法 |
在本文中,F是一个表的聚合数据是必需的,其基数是d。阵线(垂直)和跳频(水平)是用来表示垂直和水平聚合表。假设有t + v组由列和聚合属性x纵聚合的结果包含t + v变成主键列和存储在阵线。水平聚合的目的是获取导致FH t + p n行和列,p的每一列代表一个独特的组合分组列。,一个小的语法扩展需要聚合函数调用在一个select语句。 |
答:例如: |
图1所示。显示了一个示例。F是基本表。纵聚合的结果存储在阵线和水平的聚合存储在FH [11]。SQL查询的阵线是写成: |
选择D1、D2 sum () |
从F |
集团通过D1, D2 |
ORDER BY D1, D2; |
如图1所示,样本数据输入表中给出。垂直聚合结果提出了(b)。事实上求和函数的SQL生成的结果提出了水平聚合(b)。研究的结果发表在(c)在艘,D2只包含两个不同的值X和Y,用于转置桌上。中使用的聚合操作这是sum ()。在D1重复的值,1出现了3次,第三行,4,行3 & 4 D2是X和y的价值所以D2X D2Y在FH新生成的列。 |
四、查询评价方法 |
一个新类的聚合,即;SQL标准聚合水平聚合有类似的行为,但生产水平布局表。公顷(水平聚合)可以使用三种不同的评估方法: |
SPJ Method |
CASE Method |
PIVOT Method |
下面的图显示了流程的数据集在水平布局评价方法使用三个不同的查询。 |
答:SPJ方法: |
答:SPJ方法:它是基于标准的关系代数操作符(SPJ查询)。基本的想法是创建一个表和一个垂直聚合每个结果列,然后连接所有这些表来生成另一个表。有必要引入一个附加的表F0将外与预计表来得到一个完整的结果集。 |
插入F0 |
选择不同的D1 |
从F; |
优化SPJ方法代码如下: |
插入跳频 |
选择F0。L1、F0.L2 .... F0.Lm, |
F1。F2。,……,Fn。 |
从F0 |
左外连接F1 |
F0。L1 = F1。L1和。和F0。Lm = F1。Lm |
左外连接F2 |
F0。L1 = F2。L1和。和F0。m = F2。Lm |
。 |
左外连接Fn |
F0。L1 = Fn。L1和。和F0。Lm = Fn。Lm |
例子:SPJ代码获得跳频如图1所示可以写成: |
插入F1 |
选择D1,(一个) |
从F |
在D2 = ' X ' |
通过D1组; |
插入F2 |
选择D1,(一个) |
从F |
在D2 = ' Y ' |
通过D1组; |
插入跳频 |
选择F0。D1, F1。作为D2_X F2。一个是D2_Y |
从F0左外连接F0 F1。D1 = F1。D1 |
左外连接F0 F2。D1 = F2。D1 |
b .案例教学法: |
它可以用在任何声明或条款,允许一个有效的表达。选择的case语句返回一个值从一组基于布尔表达式的值。每个case语句的布尔表达式的结合K平等的比较。查询评估需要把所需的聚合和“案例”声明为每个不同的组合值R1, R2……. .,家乡。优化案例方法代码如下: |
选择不同的R1, Rk…… |
从阵线; |
插入跳频 |
选择L1、L2 ...., Lm |
时,sum (R1 = v11和。Rk = vk1 |
然后其他null结束) |
.... |
时,sum (R1 = v1n和。Rk = vkn |
然后其他null结束) |
从阵线 |
组由L1、L2。, Lm; |
例子:代码使用案例教学法在FH如图1所示可以写成: |
插入跳频 |
选择 |
D1 |
时,SUM (D2 = ' X '然后 |
其他像D2_X null结束) |
时,SUM (D2 = ' Y '然后 |
其他像D2_Y null结束) |
从F |
通过D1组; |
c .主方法: |
主操作符是一个内置操作符,将行转换成列。内部需要确定有多少列商店调换所需的表和它可以结合GROUP BY子句。因为这个操作符可以执行换位它可以帮助在评估水平聚合。SQL优化的主方法如下: |
选择不同的R1 |
从F;/ *产生v1,………, vd * / |
选择 |
L1、L2…, Lm |
vd v1、v2… |
在跳频 |
从( |
选择L1、L2……、Lm、R1 |
从F)英国《金融时报》 |
主( |
V (A)为R1 (v1、v2,…, vd) |
)和P; |
示例:使用主方法的代码获得跳频如图1所示可以写成: |
插入跳频 |
选择 |
D1 |
,D2_X [X] |
,D2_Y [Y] |
从( |
选择D1, D2,从F |
),p |
主( |
SUM () |
对D2 ([X]、[Y]) |
pvt); |
诉生成的数据集的例子:SPJ和案例 |
我们现在对我们的数据集显示实际的SQL代码的图3和图4所示。这个SQL代码生成的数据集在水平布局使用SPJ和案例的方法。SPJ方法代码如下(从F计算): |
/ * * / SPJ方法 |
开始 |
集@Query = '选择C。store_name”; |
如果时间=“MONTHWISE” |
设置@Query = CONCAT (@Query, |
“截断(((当B。month_of_year = 1 ', Onvalue ')), 0) MONTH1, |
截断(((当B。month_of_year = 2 ', Onvalue ')), 2) MONTH2, |
截断(((当B。month_of_year = 3 ', Onvalue ')), 2) MONTH3, |
截断(((当B。month_of_year = 4 ', Onvalue ')), 2) MONTH4, |
截断(((当B。month_of_year = 5 ', Onvalue ')), 2) MONTH5, |
截断(((当B。month_of_year = 6 ', Onvalue ')), 2) MONTH6, |
截断(((当B。month_of_year = 7 ', Onvalue ')), 2) MONTH7, |
截断(((当B。month_of_year = 8 ', Onvalue ')), 2) MONTH8, |
截断(((当B。month_of_year = 9 ', Onvalue ')), 2) MONTH9, |
截断(((当B。month_of_year = 10 ', Onvalue ')), 2) MONTH10, |
截断(((当B。month_of_year = 11然后Onvalue,结束),2)MONTH11”); |
如果; |
如果时间=“QUARTERWISE” |
设置@Query = CONCAT (@Query, |
截断(((当B。季度= " Q1 "然后,Onvalue结束),0)QUARTER1, |
截断(((当B。季度= " Q2 "然后,Onvalue结束),2)QUARTER2, |
截断(((当B。季度=“第三季”那么,Onvalue结束),2)QUARTER3, |
截断(((当B。季度= "第四季度“然后,Onvalue结束),2)QUARTER4”); |
如果; |
如果时间=“YEARWISE” |
设置@Query = CONCAT (@Query截断((SUM (', Onvalue ')), 2)台北”); |
如果; |
设置@Query = CONCAT(从sales_fact_1998 @Query” |
离开加入time_by_day B B。time_id = A.time_id |
左连接存储在C。store_id = A.store_id |
GROUP BY A.store_id”); |
准备从@Query支撑; |
执行支撑; |
结束 |
案例研究法代码如下(从F计算): |
* / / *案例方法 |
选择C.store_name, |
(当B。month_of_year = 1然后。store_sales MONTH1结束), |
(当B。month_of_year = 2然后。store_sales MONTH2结束), |
(当B。然后month_of_year = 3。store_sales MONTH3结束), |
(当B。然后month_of_year = 4。store_sales MONTH4结束), |
(当B。month_of_year = 5之后。store_sales MONTH5结束), |
(当B。month_of_year = 6然后。store_sales MONTH6结束), |
(当B。month_of_year = 7然后。store_sales MONTH7结束), |
(当B。month_of_year = 8然后。store_sales MONTH8结束), |
(当B。month_of_year = 9然后。store_sales MONTH9结束), |
(当B。然后month_of_year = 10。store_sales MONTH10结束), |
(当B。11然后month_of_year =。store_sales) MONTH11 |
从sales_fact_1998 |
离开加入time_by_day B B。time_id = A.time_id |
左连接存储在C。store_id = A.store_id |
由A.store_id集团。 |
六。实验评价和分析 |
原型是基于web的应用程序使用环境包含一个PC与4 GB RAM,酷睿i3处理器运行Windows 8操作系统。应用程序使用XAMPP构建包,PHP是用作编码语言和MySQL服务器用作后端。MySQL服务器不支持主关键字。所以我们会看到聚合数据集使用SPJ和案例研究法。 |
如图3所示,SPJ操作的结果给出了在水平布局。这种类型的数据可以进一步用于数据挖掘操作。在这个图我们可以看到SPJ过程称为数据集,这个程序创建并存储在数据库中执行一次。通过这种方式,可以节省时间。同样的程序可以存储一组查询和无法查询也可以动态创建。 |
如图4所示,操作的结果提出了在横向布局。这种类型的数据可以进一步用于数据挖掘操作。在这种情况下,创建过程并不是解释的目的。在MySQL主关键字不可用,我们无法得到数据集使用主方法。 |
图5显示了查询设置,包括一些程序,当用户想要使用其中任何一个程序,只需点击执行查询和生成的数据集将显示在屏幕上。 |
如果程序没有提供一套需要查询在查询用户可以动态查询生成。动态查询生成用户必须选择一些参数,需要点击构建查询,各自的查询的数据集将显示在新选项卡中。如果用户想要保存动态生成的查询,还提供了选择。用户可以保存查询给任何名称和它将自动保存在可用的查询集。 |
上面图中显示屏幕生成动态查询。动态查询是那些并不在可用的查询设置只是通过参数所需的字段查询,用户可以查询在没有时间和查询的结果可以保存通过使用保存选项中提供相同的形式被显示在图7。 |
通过使用这种“保存”选项,用户可以保存查询数据集所以将在未来执行查询时,用户将总是刷新数据集。这些查询存储在可用的查询集。 |
这个屏幕显示了一个损益(损益表)选项卡来计算个体商店的利润或损失。这是上面提到的应用程序的数据集对分析的目的。的方式我们可以使用HA的方法来简化数据集的分析使用我们的查询集使得容易创建数据集内。 |
分析:在这个项目中我们有杰出的HA方法从垂直的聚合方法。虽然通过HA方法花费的时间更纵聚合,但产生的结果数据集使用HA方法可行且易于分析。因此,我们可以总结fig.9主题通过展示图,它显示了HA的准确性和时间复杂度以及垂直的聚合。 |
七世。结论和未来的工作 |
一个新类SQL调用聚合函数的水平聚合,帮助使数据集用于数据挖掘项目。这些函数用于创建查询集使合成数据集在水平布局,因为大多数的数据挖掘算法要求数据集在水平布局。主要是,现有SQL聚合在一列每个聚合组返回结果。但在水平聚合,它将返回一组每组数字而不是一个数字。三个查询提出了评价方法。 |
第一个方法关注的是在SQL关系运算符。第二种方法侧重于SQL构造。第三种方法侧重于主内置运营商商业DBMS。通过分析,可以看出HA方法更准确、可行的纵聚合方法相比。水平聚合生成表行更少但更列。传统的查询优化技术是不适合聚合的新类。所以下一个计划是制定最合适的查询优化技术水平聚合来实现更好的结果。然后我们还可以开发更完整的I / O成本模型。 |
数据乍一看 |
|
|
|
|
|
图1 |
图2 |
图3 |
图4 |
图5 |
|
|
|
|
图6 |
图7 |
图8 |
图9 |
|
|
引用 |
- c·德”数据集预处理和转换在数据库系统中,“智能数据分析,15卷,没有。4、613 - 631年,2011页。
- c .德和s . Pitchaimalai“贝叶斯分类器在SQL编程,IEEE反式。Eng知识和数据。,22卷,不。1,第144 - 139页,2010年1月。
- c·德“udf的统计模型计算,IEEE反式。Eng知识和数据。,22卷,不。12日,第1765 - 1752页,2010年12月。
- 汉和m . Kamber数据挖掘:概念与技术,第一个艾德。摩根考夫曼,2001。
- s . Sarawagi美国托马斯,r . Agrawal”将关联规则挖掘与关系数据库系统:替代品andImplications,“Proc。ACM SIGMOD如相依数据的管理(SIGMOD ' 98),页343 - 354,1998。
- c . h . Wang Zaniolo C.R.罗,”阿特拉斯:小但完整的SQL扩展数据挖掘和数据流,“Proc。第29届国际会议上。非常大的数据库(VLDB ' 03),第1116 - 1113页,2003年。
- Witkowski, s . Bellamkonda t . Bozkaya g·多尔曼n . Folkert a·古普塔l .盛和s .萨勃拉曼尼亚”电子表格在RDBMS forOLAP,“Proc。ACM SIGMOD如相依数据的管理(SIGMOD ' 03),页52 - 63,2003。
- 德“垂直和水平比例聚合”Proc。ACM SIGMOD如相依数据的管理(SIGMOD 04),第871 - 866页,2004年。
- 德”将k - means聚类与关系DBMS使用SQL中,“IEEE反式。Eng知识和数据。,18卷,不。2,pp.188 - 201, 2006年2月。
- j .清晰、d·邓恩,哈维,马丁Heytens, p·洛曼,“非停止SQL / MX原语对知识发现、“Proc。ACMSIGKDD第五国际会议。知识发现和数据挖掘(KDD ' 99),页425 - 429,1999。
- 卡洛斯·德和Zhibo Chen(2012),“水平聚合在SQL数据挖掘分析准备数据集”,IEEE反式。Eng知识和数据。,24卷,4号。,2012年4月。
|