天天看點

資料架構簡史:轉換中的範式

資料架構簡史:轉換中的範式

據架構是一系列決定收集哪些資料,如何在資料庫系統中使用、處理和存儲資料的規則、政策以及模型。例如,資料內建是依賴于資料架構用于內建過程中的指令。如果沒有從程式設計範式轉換到資料架構範式,現代計算機将會變得更加笨拙遲鈍。

對于早期的計算機,建立過分簡單化的程式是為了處理特定類型的計算機問題,甚至沒有考慮過資料內建的概念,每個程式之間都是單獨分開的。二十世紀四十年代至七十年代,程式處理是最主要的問題,有關建立資料架構的問題根本考慮得少之又少,甚至不在考慮的範圍之内。程式員緻力于讓計算機通過執行特定的操作,以支援組織的短期目标。隻有定義為“程式需要”的資料被使用,計算機才不會被用于長期的資料存儲,恢複資料需要能夠編寫、檢索特定資訊的程式,而這相當耗費時間和金錢。

程式設計範式轉換為資料庫架構範式

1970年,edgar f. codd公開發表題為“大型共享資料庫資料的關系模型”的論文,文中提到了組織起資料的相關步驟,codd的理論基于運用于集合論裡面的數學運算,結合了一列規則,以確定資料被存儲在最小備援裡。他的方法成功的建立了資料庫架構,簡化了計算機的效能。在codd的理論之前,cobol程式和大多數其他的程式都是按等級排列的,這樣的排列使得搜尋有必要從總類别開始,然後再逐漸縮小搜尋類别。而codd提供的相關途徑則允許使用者更加有序、有效地利用二維表儲存資料。(codd 稱之為“關系法”)

1976年,在麻省理工學院工作的peter chen發表題為“實體-關系模型對資料的統一視圖”的論文,文中介紹了實體/關系模組化,也就是今天被廣泛熟知的“資料模組化”。他以圖表的形式生動形象地呈現了資料架構,兩年後,oracle宣布推出首款涉及業務的關系資料庫管理系統(rdbms)。

以計算機為工具工作的人們開始意識到資料架構比程式架構更加靠譜。它的穩定性源自重新設計系統的中間部分,并将程序彼此隔離(類似于程式員将程式隔離的方式),重新設計的關鍵在于添加了資料緩沖區。

緩沖區最初是一個臨時記憶儲存系統,旨在從原始計算機的記憶體中快速移除資料,這樣計算機就不會陷入運阻,并能繼續解決問題。 然後,資料從緩沖區傳輸到列印機,“慢慢”列印出最新的計算結果。今天的資料緩沖區的版本是一個由裝置共享的區域,或者一個程式的程序,它們以不同的速度運作,或者有不同的優先級。現代緩沖區允許每個程序(或裝置)在沒有沖突的情況下運作,與緩存類似,緩沖區充當“中間存儲空間”,但也有助于協調不同的活動,而不是簡單地簡化記憶體通路。

商業界很快就意識到edgar f. codd和peter chen的見解的優勢,新的資料架構設計顯而易見的比程式結構更快更靈活更穩定。此外,他們的見解促使計算機程式設計社群發生了文化上的轉變,資料結構現在被認為是遠比程式重要得多。

假設:資料在範式轉換中丢失

資料架構的進化需要消除三個基本的假設(假設的定義:一些被認為是理所當然的事情;一種缺乏有力證據的猜測,卻被當作事實來看待。)

假設1:每個程式必須和其他程式隔離開來。這種隔離論導緻了程式代碼、資料定義和資料條目的重複。codd的關系法解決了不必要的副本麻煩,他的模型将資料庫的模架或布局從實體資訊存儲中分離出來(成為資料庫系統的标準)。他的關系模型指出,資料不需要存儲在單獨的、孤立的程式中,資料條目和程式編碼不需要不必要地複制。一個單獨的關系資料庫足以用于存儲所有的資料,是以,一緻性可能(幾乎可以)得到保證,并且也更易于查找錯誤。

假設2:輸入和輸出是對等的,設計上應該讓他們相比對。目前,輸出和輸入裝置的資料處理速率有很大差異,這與預想着兩者以相同速度運作的期望是完全不同的。緩沖區的使用開啟了實作輸出、輸入的差別對待,peter chen的革新揭示了資料創造者和資料使用者之間的差異。資料使用者通常希望從潛藏在資料庫下的不同部分看到大量的資訊以作比較,并從中提取最有用的資訊。資料創造者,從另外一方面來說,則專注于處理資料,一次一個程序。資料創造者(輸入)和資料使用者(輸出)兩者的目的是截然不同的。

假設3:企業組織應該反應在他們的計算機程式裡面。随着緩沖區和關系資料庫的運用,“程式”這個概念應該會逐漸模仿公司的結構,更加靈活的資料庫取代了企業在提供有用結構方面的角色,同時收集和處理資訊。現代資料模型既反映了企業的組織結構,也反映了用于實作目标的工具。

sql和資料架構

codd的關系法導緻結構化的查詢語言(sql),在上世紀八十年代成為了标準的查詢語言。關系資料庫變得非常受歡迎,促進了資料庫市場的發展,這反過來又導緻了等級資料庫模型的沒落。

二十世紀九十年代早期,許多主要的計算機公司仍然專注于程式,試圖銷售昂貴而複雜的資料庫産品。回以他們的則是新的、更具競争力的企業開始釋出工具和軟體(如:oracle開發人員、powerbuilder)用來增強系統資料架構。二十世紀九十年代中期,網際網路的使用推進了資料庫行業的顯著增長以及計算機的總體銷售情況。

資料庫架構性的設計,引領了資料管理的蓬勃發展。企業已經發現了資訊本身對公司的價值,二十世紀九十年代以後,諸如“資料管理者”、“資料庫管理者”的标題開始出現。資料管理者的職責在于保證資料使用中的高品質和完整性。

關系資料庫管理系統使建立一個呈現概念模式(某種類型的映射)的資料庫成為可能,然後提供資料庫的不同透視圖,這是為資料建立者和資料使用者設計的。另外,每個資料庫管理系統都可以将其實體存儲參數與列結構和表分開。

nosql和資料架構

nosql不是一個程式,它是一個資料庫管理系統,使用的是相當簡單的架構。在處理大資料和不需要關系模型時,它是很有用的。nosql資料庫系統在管理和存儲資料的方法和過程中是非常多樣化的。sql系統在功能方面通常比nosql系統具有更大的靈活性,但是缺乏nosql系統的可伸縮性。但是,現在有許多商業軟體包可以結合“兩個世界的最佳方式”,而且更多的軟體包将會一直進入市場。

最近,一些機構組織在dataversity的文章和訪談中(還有許多其他的可能性)提供了一種資料架構解決方案,利用關系資料庫中常見的工具來處理大資料。kyvos insights公司銷售與hadoop存儲系統相容的軟體,它們的“hadoop/olap ”組合在不同程度上促進了非結構化和結構化資料的處理,使得人們可以相對輕松地對大資料進行分析。

hackolade公司也銷售一款軟體包,采用一種使用者友好資料模型提供了“高功能”的工具來處理nosql。該軟體将nosql融合了可視化圖形的簡明性,結合hackolade其他工具一起使用,既減少開發時間,又提高了應用程式的品質。他們的軟體目前和couchbase、dynamodb、mongodb 模式相容(他們計劃未來能囊括更多nosql資料庫)。

redislabs将他們的雲計算與他們的軟體包redis pack結合在一起,提供另一個架構解決方案。redis pack和它的雲計算提供了三種優勢:速度、持久性(儲存您的資訊),以及他們提供的資料類型的多樣性。從本質上來說,redis是一個“非常快”的nosql、鍵值資料存儲,同時可以充當資料庫、緩存和消息代理。

reltio提供服務。他們已經建立了一個雲管理平台,并提供完成處理大資料所需的工具和服務。他們提供研究人員,将來自多個來源的大資料與主資料管理(mdm)合并在一起,并開發統一的目标。reltio的系統支援多種行業領域,包括零售、生命科學、娛樂、醫療保健和政府。

資料架構從早期就完全改變了,并且很可能是由于一些新的趨勢,例如物聯網、雲計算、微服務、進階分析、機器學習和人工智能,以及像blockchain這樣的新興技術,将會繼續改變未來的發展方向。

本文作者:佚名

來源:51cto