數(shù)據(jù)庫的前世今生

2021-02-04    分類: 網(wǎng)站建設(shè)

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

新聞名稱:數(shù)據(jù)庫的前世今生
本文地址:http://www.bm7419.com/news/99051.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、企業(yè)網(wǎng)站制作、定制網(wǎng)站網(wǎng)站設(shè)計(jì)公司、Google云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)