润乾软件

创新技术推动应用进步

0
推荐
1507
阅读

【数据蒋堂】第38期:JOIN延伸 – 维度其它应用

明确维度定义后,还可以换一种更清晰的方式来审视数据库的结构。这是我们常见的E-R图:E-R图是个网状结构,实体(表)之间的外键关系直接画在图上,当实体较多时这个图就会显得非常零乱,关联线很随意,任何两个实体之间都有可能发生关联,表现出来的数据结构耦合度很高。在增加删除实体时就要考虑与之关联的所有其它实...

发表了文章 • 2018-02-02 11:13 • 0 条评论

0
推荐
1388
阅读

【数据蒋堂】第37期:JOIN延伸 – 维度查询语法

有了维度定义后,我们就可以来梳理前面讲过的简化JOIN语法了。先定义字段维度:维度字段的维度为其本身;外键字段的维度为相应外键表中关联字段的维度;测度字段没有维度;这是个递归定义。 然后再严格定义同维表和主子表:同维表:两个表的主键字段维度集合对应相同,则称两个表同维;主子表:某个表的主键字段维...

发表了文章 • 2018-02-02 11:12 • 0 条评论

0
推荐
1427
阅读

【数据蒋堂】第36期:JOIN延伸:维度概念

谈到数据分析时常常会用到维度这个词,针对数据立方体的钻取、旋转、切片等操作都是围绕维度进行的,几乎所有的数据分析人员都知道并会运用这个术语,但要问及它的定义,却几乎没有人能给出来。通俗来讲,我们把用来分类的属性(字段)称为维度,比如地区、年度、产品类型等;而另外一些用于聚合运算的属性则称为测度,...

发表了文章 • 2018-02-02 11:11 • 0 条评论

0
推荐
1524
阅读

【数据蒋堂】第35期:JOIN提速 – 有序归并

我们再来看同维表和主子表的JOIN,这两种情况的优化提速手段是一样的。设两个关联表的规模(记录数)分别是N和M,则HASH分段技术的计算复杂度(关联字段的比较次数)大概是SUM(Ni*Mi),其中Ni和Mi分别是HASH值为i的两表记录数,满足N=SUM(Ni)和M=SUM(Mi),这大概率会比完全遍历时的复杂度N*M要小很多(运气较好的时候会...

发表了文章 • 2018-02-02 11:09 • 0 条评论

0
推荐
1234
阅读

【数据蒋堂】第34期:JOIN提速 – 外键指针的衍生

我们继续讨论外键JOIN,并延用 上一篇 的例子。当数据量大到无法全部放进内存时,前述的指针化方法就不再有效了,因为在外存无法保存事先算好的指针。一般来讲,外键指向的维表容量较小,而不断增长的事实表要大得多。如果内存还能把维表放下的话,我们可以采用临时指向的方法来处理外键。1. P=file(“products...

发表了文章 • 2018-02-02 11:07 • 0 条评论

0
推荐
1434
阅读

【数据蒋堂】第33期:JOIN提速 – 外键指针化

我们再来看重新定义JOIN后如何能够提高运算性能,先看外键式JOIN的情况。设有两个表:products商品信息表id        商品编号name  商品名称price   单价…sales商品销售记录seq            序号date          日期productid  ...

发表了文章 • 2018-02-02 11:06 • 0 条评论

0
推荐
1311
阅读

【数据蒋堂】第32期:JOIN简化 – 意义总结

蒋步星《JOIN运算的简化与提速》系列技术文章。【数据蒋堂】第29期:JOIN运算剖析【数据蒋堂】第30期:JOIN简化 – 消除关联【数据蒋堂】第31期:JOIN简化 – 维度对齐更多敬请期待…..我们重新审视和定义了等值JOIN运算,并简化了语法。一个直接的效果显然是让语句书写和理解更容易。外键属性化、同维表等同化和主子表一体...

发表了文章 • 2018-02-02 11:05 • 0 条评论

0
推荐
1344
阅读

【数据蒋堂】第31期:JOIN简化 – 维度对齐

蒋步星《JOIN运算的简化与提速》系列技术文章。【数据蒋堂】第29期:JOIN运算剖析【数据蒋堂】第30期:JOIN简化 – 消除关联更多敬请期待…..我们先把上一期中双子表对齐例子的SQL写出来:SELECT Orders.id, Orders.customer, A.x, B.y FROM OrdersLEFT JOIN (SELECT id,SUM(price) x FROM OrderDetail GROUP BY id ) A ON...

发表了文章 • 2018-02-02 11:04 • 0 条评论

0
推荐
1415
阅读

【数据蒋堂】第30期:JOIN简化 – 消除关联

近期,蒋步星在「天善智能」直播分享了《JOIN运算的简化与提速》,视频地址:https://edu.hellobi.com/course/197/lessons (主题二)。接下来的几期《数据蒋堂》将针对该问题进行详细的文字解读,帮助大家理解。我们将等值JOIN分成三种情况来分别讨论,分情况相当于加强了条件,我们可以充分利用每种情况下的特征。1. ...

发表了文章 • 2018-02-02 11:03 • 0 条评论

0
推荐
1231
阅读

【数据蒋堂】第29期:JOIN运算剖析

10月19日,蒋步星在「天善智能」直播分享了《JOIN运算的简化与提速》,视频地址:https://edu.hellobi.com/course/197/lessons  (章节2)。接下来几期《数据蒋堂》将针对该问题进行详细的文字解读,帮助大家理解。JOIN是SQL中用于多表关联的运算,无论从程序员编写还是数据库实现角度来看,JOIN都是SQL中最难的运...

发表了文章 • 2018-02-01 16:14 • 0 条评论

1
推荐
1607
阅读

趣味集算:两行搞定GREP搜索

What?两行代码搞定GREP搜索?如果不是经常使用Linux,估计你看到这个标题后会一脸不屑加满脸狐疑: GREP搜索是个什么鬼?又一个搜索引擎问世?比百度牛x吗?楼主你过来讲讲,你是如何只用两行代码就搞定搜索的。我给你一个关键字,你能还我一堆URL?误会误会,你就是给我十个关键字,我也还不了一个URL的。因为我说的搜...

发表了文章 • 2018-02-01 13:04 • 0 条评论

1
推荐
1581
阅读

【数据蒋堂】第28期:迭代聚合语法

我们讨论过的常规聚合运算如SUM/COUNT和非常规聚合运算如maxp/top,都是事先设计好的聚合函数。但如果我们想实现一个以前没有定义过的运算怎么办?是否可以用已有的语法和函数组合出来?比如想做连乘运算,显然这也算是一种聚合。(题外话:连乘可以用exp(SUM(ln(x)))来做,不过这有点耍赖了,而且这还对付不了成员是负...

发表了文章 • 2017-11-13 10:52 • 0 条评论

1
推荐
1546
阅读

【数据蒋堂】第27期:非常规聚合

标准SQL中提供了五种最常用的聚合运算:SUM/COUNT/AVG/MIN/MAX。观察这几个运算,我们发现它们都可以看成是一个以集合为参数返回单值的函数,我们就先把这个共同点理解为聚合运算的定义,把集合变成单值,多个值变成一个值,也就是发生了”聚合“,所以叫聚合运算。那么很显然,有集合的时候就可以应用聚合运算了,所以SUM...

发表了文章 • 2017-11-03 13:52 • 0 条评论

0
推荐
1312
阅读

【数据蒋堂】第26期:再谈有序分组

细心的读者可能会发现,我们在讨论有序分组时只研究了待分组集合的成员次序对分组运算可能的影响,但即然要考虑集合的有序性,那么结果集的成员次序是不是也有业务意义呢?确实有意义,不过重要程度不如原集有序性。 分组结果集的有序性有两个方面,一是这些分组子集以什么次序返回,二是分组子集的成员是什么次序...

发表了文章 • 2017-11-03 13:46 • 0 条评论

0
推荐
1357
阅读

【数据蒋堂】第25期:有序分组

我们知道,SQL延用了数学上的无序集合概念,所以SQL的分组并不关注过待分组集合中成员的次序。我们在前面讨论过的等值分组和非等值分组,也都没有关注过这个问题,分组规则都是建立在成员取值本身上。但如果我们要拓展SQL,以有序集合为考虑对象时,那就必须考虑成员次序对分组的影响了,而且,现实业务中有大量的有序分...

发表了文章 • 2017-10-25 15:58 • 0 条评论