被稱之為基礎軟件三駕馬車之一的數據庫,在經歷了層次型和網狀型、關系型數據型庫以及更加強大的數據管理功能等三個時期之后,其在未來的發展歷程中還有哪些更多的可能性?
基于此,卡內基梅隆大學計算機科學系數據庫學副教授 Andy Pavlo 曾于 2015 年為 CMU 計算機科學系 50 周年慶典上寫下了自己對于數據庫未來 50 年的構想。
在本文中,他提出了幾點:關系模型對于大多數應用而言仍將占據主導地位,開發框架和數據庫管理系統將更加緊密地耦合在一起,從而使所有數據庫交互都透明化,SQL 仍然是與 DBMS 交互的實際語言,但人類永遠都不會真正編寫 SQL,將以自然語言查詢相關數據問題,這將導致編程方式發生重大變化。無所不在的「物聯網」意味著每個設備都能收集其環境的數據,對于新硬件,更靈活和可編程的處理結構將更為普遍,人類作為數據庫管理員的角色將不復存在,DBMS 最終將完全自治和自我修復,星際設備的數據庫事務將興起,最終,「我將在 50 年后去世」。
數據庫的過去
第一個數據庫管理系統(DBMS)在1968年上線。IBM的IMS用于跟蹤土星5號和阿波羅太空探索項目的供應和零部件庫存。它引入了這樣一種思想,即應用程序的代碼應該與它所操作的數據分離。由此支持開發人員編寫只關注數據訪問和操作的應用程序,而不關注與執行這些操作和確保數據安全相關的復雜性和開銷。IMS之后,在20世紀70年代早期,IBM的System R和加州大學的INGRES率先開發了第一個關系型DBMS。
第一批系統的數據庫工作負載沒有今天那么復雜和多樣化。在這些早期的應用程序中,操作員通過終端啟動事務,然后手動向系統輸入新數據。此時,DBMS的預期峰值吞吐量僅為每秒數十到數百個事務,響應時間以秒為單位度量。這些早期DBMS的體系結構也基于當時流行的計算硬件。它們通常部署在只有一個CPU核心和少量主內存的計算機上。對于這些系統來說,磁盤是數據庫的主要存儲位置,因為磁盤能夠存儲比內存更大的數據,而且成本更低。
數據庫的現在
盡管在50年后,我們使用數據庫的方式發生了很大的變化,關系模型和SQL仍然是組織數據庫并與之交互的主要方式。許多互聯網應用程序需要每秒支持數十萬甚至數百萬個事務,每個事務的處理延遲以毫秒為單位。這是因為它們同時與數百萬用戶和其他計算機系統相連。現在,企業和組織能夠從這些應用程序中收集大量的數據,他們希望分析這些數據來推斷新的信息,以指導他們的決策。基于此,近年來我們看到了針對特定應用場景的專門系統的興起,這些應用場景的性能比基于1970年代架構的通用DBMS要好得多。現在有一些DBMS旨在為聯機事務處理(OLTP)應用程序快速獲取新信息,還有一些DBMS旨在為復雜的聯機分析處理(OLAP)程序存儲大量數據。
這些較新的DBMS還利用了近年來出現的三種主要硬件趨勢。首先是大內存計算機的出現,這使得現在可以部署少量的機器,這些機器有足夠的DRAM來存儲除了大的OLTP數據庫之外的所有數據。將數據存儲在內存中可以確保DBMS能夠以較低的延遲同時處理許多事務。根據我們的經驗,用于現代OLTP應用程序的數據庫的大小通常為幾百GB。與OLAP數據倉庫相比,DBMS可以管理幾個PB大小的數據庫。這是因為OLTP數據庫存儲應用程序的當前狀態(例如,最近90天的訂單),而OLAP數據庫存儲組織的所有歷史信息(例如,所有下過的訂單)。因此,OLAP DBMS仍然主要存儲在磁盤上,并使用一些優化,如壓縮或柱狀存儲,以克服它們較長的訪問時間。
第二個硬件趨勢是從提高單核CPU時鐘速度到多核CPU的轉變。時鐘頻率已保持了幾十年的增長,但現在增長已經停止,因為硬功率限制和復雜性的問題。復雜的、無序的、超標量的處理器正在被簡單的、有序的、單問題核心所取代。在DBMS中利用這種增加的并行性是很困難的,因為協調數百個線程的共享數據的訪問非常復雜。現代DBMS使用低開銷并發控制和其他無鎖技術來提高系統的可伸縮性。
第三個趨勢是商品硬件的成本降低。這在
云計算平臺中尤為明顯。現在可以部署一個大型集群,其處理和存儲能力只相當于十年前的一小部分。這種變化與1980-1990年代相比,過去十年中沒有共享的DBMS的數量在不斷增加。
盡管取得了這些進展,但仍然存在一些重大問題,由此阻礙了許多人部署數據密集型應用程序。所有這些的一個主要主題是,數據庫仍然是計算系統(例如,部署、配置、管理)的人工密集型組件。使用兩個獨立的DBMS分離OLTP和OLAP工作負載,以避免其中一個工作負載減慢另一個工作負載的速度,但是它需要額外的進程來將數據從系統傳輸到另一個工作負載。除此之外,調優DBMS以獲得特定應用程序的好性能是出了名的困難。許多組織求助于雇傭專家來為預期的工作量配置系統。但是,隨著數據庫的規模和復雜性的增長,優化DBMS以滿足這些應用程序的需求已經超出了人類的能力。
數據庫的未來
在接下來的50年里,就像之前一樣,我們將看到數據庫領域的重大變化。除了存儲的數據量和速度明顯增大之外,數據庫在應用程序中的使用方式以及它們所部署的硬件類型也將發生重大變化。很難預測該領域的主要范式轉變是什么,預測哪些數據庫公司和產品仍然可用也是不現實的。因此,我發表一下對幾個廣泛主題的看法。
關系模型仍將主導大多數應用程序,但開發人員將不再需要過于擔心其應用程序使用的數據模型。編程框架和DBMS之間的耦合將更加緊密,這樣所有的數據庫交互都將是透明的(并且是好的)。同樣,SQL(或它的某種方言)將仍然是與DBMS交互的實際語言,但人類真實上永遠不會編寫SQL。相反,他們會用自然語言詢問有關數據的問題。這些變化將導致我們編寫程序的方式發生重大轉變;開發人員以一種最容易被人類理解的方式對其數據進行建模,然后框架(與DBMS一起)將自動為其生成好存儲方案。所有程序都將使用強一致的ACID事務執行。也就是說,在當今基于Web的應用程序中使用的最終一致性方法將避免增加管理的復雜性。在網絡通信、并發控制和資源管理方面將會有重大的改進,這將使用ACID事務變得更好并具有可伸縮性。
將來會有越來越多的應用程序更自然地將數據存儲在數組或矩陣中。這是因為組織需要分析大量的非結構化信息,尤其是視頻。我們將掌握將所有非結構化數據轉換成半結構化格式的能力,這種格式在DBMS中更容易組織和索引。作為其中的一部分,時效性也將變得重要,因為它關系到信息如何隨時間的變化。目前的系統無法解釋這一點,因為在一個時間序列中存儲提取的每個視頻幀的信息的開銷很大。
無處不在的“物聯網”將意味著每臺設備都能夠收集有關其環境的數據。這將包括從小型嵌入式傳感器到大型自主機器人。小型設備將使用片上DBMS,就像手機現在包含片上視頻解碼器一樣。所有這些系統的數據庫將完全可以通過一些標準API(可能是SQL)進行組合和簡易的聯合。這意味著DBMS將以零配置彼此通信。你只需將兩個DBMS相互指向對方,它們就會立即傳遞它們的信息,并確保它們是同步的。某些管理器服務將能夠根據需要跨設備分發查詢執行。人們將不需要手動配置提取-轉換-加載實用程序或其他工具來保持不同系統上的數據一致。以這種方式使所有不同的DBMS可組合和可互操作將是一項重要的工程工作。因此,將會有一個使用人工智能或機器學習的工具包來自動地將不同的DBMS變體映射到彼此以進行相同的操作。
對于新的硬件,更靈活和可編程的制程將更普遍。DBMS將把程序的關鍵部分(例如鎖管理器)編譯到一個硬件加速器中。我們還將看到易失性和非易失性內存之間的二分法的消失。DBMS將假定所有內存都是快速和持久的,不需要維護變化無常的緩存。這種新存儲器將比今天可用的存儲器大幾個數量級。因此,DBMS將在預先計算的物化視圖中存儲其數據的多個副本,以便快速響應任何可能的查詢。
數據庫管理員的角色將不復存在。這些未來的系統太復雜了,人類無法推理。DBMS最終將完全自治和自修復。同樣,編程框架和DBMS之間的緊密耦合將支持系統在組織數據、提供資源和優化執行方面做出比人工生成計劃更好的決策。
我們將看到星際設備(如太空探測器)數據庫事務的增長。在這種情況下,在這些容器上運行的DBMS彼此之間的距離將比在地球上運行的系統要遠得多,并且會導致明顯較長的延遲(即延遲時間,分鐘或小時)。這意味著在今天基于web的應用程序中使用的弱一致性技術和實踐將被應用到這些星際系統中。
最后的最后,50年后我也已離開人世了吧。
網站標題:數據庫的前世今生
本文URL:http://m.newbst.com/news1/99051.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、標簽優化、網站設計公司、網站策劃、搜索引擎優化、面包屑導航
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯