成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

第32期:JOIN簡化 - 意義總結(jié)

企業(yè)動態(tài)
一個直接的效果顯然是讓語句書寫和理解更容易。外鍵屬性化、同維表等同化和主子表一體化方案直接消除了顯式的關(guān)聯(lián)運(yùn)算,也更符合自然思維;維度對齊則可讓程序員不再關(guān)心表間關(guān)系,降低語句的復(fù)雜度。

【數(shù)據(jù)蔣堂】第32期:JOIN簡化 - 意義總結(jié)

我們重新審視和定義了等值JOIN運(yùn)算,并簡化了語法。一個直接的效果顯然是讓語句書寫和理解更容易。外鍵屬性化、同維表等同化和主子表一體化方案直接消除了顯式的關(guān)聯(lián)運(yùn)算,也更符合自然思維;維度對齊則可讓程序員不再關(guān)心表間關(guān)系,降低語句的復(fù)雜度。

簡化JOIN的好處不僅在于此,還能夠降低出錯率。

我們知道,SQL允許用WHERE來寫JOIN運(yùn)算的過濾條件(回到原始的笛卡爾積式的定義),很多程序員也習(xí)慣于這么寫。當(dāng)JOIN表只有兩三個的時候,那問題還不大,但如果JOIN表有七八個甚至十幾個的時候,漏寫一個JOIN條件是很有可能的。而漏寫了JOIN條件意味著將發(fā)生多對多的完全叉乘,而這個SQL卻可以正常執(zhí)行,一方面計算結(jié)果會出錯(回憶一下以前說過的,發(fā)生多對多JOIN時,大概率是語句寫錯了),另一方面,如果漏寫條件的表很大,笛卡爾積的規(guī)模將是平方級的,這極有可能把數(shù)據(jù)庫直接“跑死”!

采用簡化后的JOIN語法,就不可能發(fā)生漏寫JOIN條件的情況了。因?yàn)閷OIN的理解不再是以笛卡爾積為基礎(chǔ),而且設(shè)計這些語法時已經(jīng)假定了多對多關(guān)聯(lián)沒有業(yè)務(wù)意義,這個規(guī)則下寫不出完全叉乘的運(yùn)算。

對于多個子表分組后與主表對齊的運(yùn)算,在SQL中要寫成多個子查詢的形式。但如果只有一個子表時,可以先JOIN再GROUP,這時不需要子查詢。有些程序員沒有仔細(xì)分析,會把這種寫法推廣到多個子表的情況,也先JOIN再GROUP,可以避免使用子查詢,但計算結(jié)果是錯誤的。

使用維度對齊的寫法就不容易發(fā)生這種錯誤了,無論多少個子表,都不需要子查詢,一個子表和多個子表的寫法完全相同。

重新看待JOIN運(yùn)算,最關(guān)鍵的作用在于實(shí)現(xiàn)關(guān)聯(lián)查詢。

當(dāng)前敏捷BI產(chǎn)品非常火熱,各家產(chǎn)品都宣稱能夠讓業(yè)務(wù)人員拖拖拽拽就完成想要的查詢報表。但實(shí)際應(yīng)用效果會遠(yuǎn)不如人意,業(yè)務(wù)人員仍然要經(jīng)常求助于IT部門。造成這個現(xiàn)象的主要原因在于大多數(shù)業(yè)務(wù)查詢都是有過程的計算,不大可能由直接不會編程的業(yè)務(wù)人員獨(dú)立完成。但是,仍有約三成左右的業(yè)務(wù)查詢并不涉及多步過程,而業(yè)務(wù)人員仍然無法完成。

這是由于大多數(shù)敏捷BI產(chǎn)品(以及多年前流行的OLAP產(chǎn)品)都不支持關(guān)聯(lián)查詢。這些產(chǎn)品的工作模式是先由技術(shù)人員構(gòu)建模型,再由業(yè)務(wù)人員基于模型在界面上進(jìn)行查詢。而所謂建模,其實(shí)就是生成一個邏輯上或物理上的單表,業(yè)務(wù)人員只能在這個單表的范圍內(nèi)查詢分析,無論界面做得多么流暢炫酷,在數(shù)據(jù)獲取層面都不可能超越這個事先構(gòu)建好的單表范圍。用戶的查詢需求一旦超出了這個單表,需要關(guān)聯(lián)到其它表中數(shù)據(jù)時,就要由技術(shù)人員再次建模。建模實(shí)際上要針對不同的關(guān)聯(lián)需求分別實(shí)現(xiàn),我們稱之為按需建模。但實(shí)際上,有意義的查詢絕大多數(shù)都有關(guān)聯(lián)需求,技術(shù)人員也不可能事先預(yù)測所有的關(guān)聯(lián),就算預(yù)測了也不可能把所有的關(guān)聯(lián)可能性都事先做好。結(jié)果是,要么建模動作頻頻發(fā)生,要么業(yè)務(wù)用戶沒法使用,無論如何,這些敏捷BI產(chǎn)品都會失去敏捷性。

為什么這些BI產(chǎn)品不能支持關(guān)聯(lián)查詢呢?因?yàn)椴⒉蝗菀祝涓淳驮谟赟QL對JOIN的定義過于簡單,導(dǎo)致表間關(guān)聯(lián)過于繁瑣,超出業(yè)務(wù)人員的理解能力,直接把數(shù)據(jù)結(jié)構(gòu)暴露出來由業(yè)務(wù)用戶自己完成JOIN運(yùn)算是不可能的。有些BI產(chǎn)品的界面協(xié)助下有一些改善,在事先定義好維度后,可以讓業(yè)務(wù)人員正確處理沒有形成環(huán)的關(guān)聯(lián)關(guān)系以及同表內(nèi)沒有相同維度的關(guān)聯(lián)情況,全自關(guān)聯(lián)(形成環(huán))和同表多同維字段仍需要再建模去解決,這些細(xì)節(jié)我們也留到講述維度概念時來再詳細(xì)討論。

但是,如果改變了對JOIN運(yùn)算的看法,關(guān)聯(lián)查詢可以從根本上得到解決。回憶前面講過的三種JOIN及其簡化手段,我們事實(shí)上把這幾種情況的多表關(guān)聯(lián)都看成了單表查詢,而業(yè)務(wù)用戶對于單表查詢并沒有理解障礙。無非就是表的屬性(字段)稍復(fù)雜了一些:可能有子屬性(外鍵字段指向的外鍵表),子屬性可能還有子屬性(多層的外鍵表),有些字段取值是集合而非單值(子表看作為主表的字段)。發(fā)生自關(guān)聯(lián)也不會影響理解(前面的例子就是個自關(guān)聯(lián)),同表有相同維度也不礙事(各自有各自的子屬性)。在這種關(guān)聯(lián)機(jī)制下,技術(shù)人員只要一次性把數(shù)據(jù)結(jié)構(gòu)(元數(shù)據(jù))定義好,在合適的界面下,由業(yè)務(wù)人員可以自己實(shí)現(xiàn)JOIN運(yùn)算,不再需要技術(shù)人員的參與。數(shù)據(jù)建模只發(fā)生于數(shù)據(jù)結(jié)構(gòu)改變的時刻,而不需要為新的關(guān)聯(lián)需求建模,這也就是非按需建模。

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2017-11-15 06:36:25

JOINSQL運(yùn)算

2017-12-12 22:48:21

JOIN維度運(yùn)算

2017-11-08 06:18:43

JOINSQL運(yùn)算

2018-01-01 23:28:37

JOIN維度數(shù)據(jù)分析

2017-12-26 15:33:24

JOINSQL運(yùn)算

2018-01-10 15:25:43

JOIN維度SQL

2018-01-10 15:19:59

JOIN維度SQL

2017-12-10 22:48:53

JOIN運(yùn)算外鍵

2017-12-12 22:58:57

JOIN外鍵運(yùn)算

2013-11-11 11:11:21

Linux運(yùn)維趨勢電子雜志

2011-09-06 14:59:32

開發(fā)技術(shù)周刊

2017-10-09 22:33:56

SQL等值分組有序分組

2012-01-10 09:10:03

百度技術(shù)沙龍數(shù)據(jù)挖掘

2013-01-21 13:41:59

IBMdW

2011-10-21 15:23:38

網(wǎng)絡(luò)安全技術(shù)周刊

2018-01-18 20:47:18

CPU數(shù)據(jù)線程

2018-01-24 07:45:51

數(shù)據(jù)倍增分段列存

2017-09-13 08:45:33

遍歷SQL運(yùn)算

2016-08-08 10:55:20

2013-01-21 10:53:57

面試技術(shù)周刊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久精品网站 | 精品一级 | 特级毛片爽www免费版 | www.操.com | 男女羞羞视频大全 | 91福利网| 亚洲精品欧美 | 四虎国产 | 久久中文字幕在线 | 欧美日韩精品一区 | 九九九精品视频 | 久久影音先锋 | 国产亚洲精品精品国产亚洲综合 | 亚洲在线电影 | 久久精品视频网站 | 中日字幕大片在线播放 | 国产精品一区二区欧美黑人喷潮水 | 免费观看一级特黄欧美大片 | 5060网一级毛片 | 色综合天天综合网国产成人网 | 国产蜜臀 | 久久久久av| 在线三级电影 | 日韩伦理一区二区 | 欧美精品成人一区二区三区四区 | 在线看成人av| 91文字幕巨乱亚洲香蕉 | 久久久国产精品一区 | 天天综合国产 | 伊人网91| 午夜免费电影 | 狠狠操天天操 | 99成人在线视频 | www.日韩系列 | 国产一区二区三区精品久久久 | 久久毛片 | 久久久国产一区二区三区 | 狠狠骚 | 久久久不卡网国产精品一区 | av日日操 | 91精品国产色综合久久不卡98口 |