国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

統(tǒng)治50年:為什么SQL在如今仍然很重要?

數(shù)據(jù)庫
SQL是如今最普遍使用的編程語言之一,我們不該忘記它悠久的歷史。它的旅程始于現(xiàn)代計算的黎明,在兩位圖靈獎得主的努力下煥發(fā)生機。

本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)

1971年3月,英特爾公司推出了世界上第一個通用微處理器,即英特爾4004,它有2300個晶體管,售價60美元。將時間快進50年左右,最新的蘋果手機有將近120億個晶體管(可惜比60美元更貴一些)。

直至90年代,許多我們目前使用的編程語言才被引入(Java是1996年引入的)。然而,有一種編程語言50年前就被引入,但熱度仍然不減當年,那就是SQL。

早期數(shù)據(jù)庫管理史——IDS和CODASYL

 

[[391146]]

 

1962年,查爾斯·W·巴赫曼(Charles W.Bachman)(與硅谷的埃里希·巴赫曼[ErlichBachman]非親)是通用電氣公司一個小團隊的成員。一年后,巴赫曼的團隊推出了集成數(shù)據(jù)儲存系統(tǒng)(IDS),該系統(tǒng)后來被公認為首個數(shù)據(jù)庫管理系統(tǒng)。

10年后,巴赫曼獲得了眾人向往不已的圖靈獎,也稱為計算機科學領域的諾貝爾獎,以此表彰他對IDS計算的貢獻。

什么是IDS?

20世紀60年代初,計算機科學才剛剛開始成為一個學術(shù)領域。在這樣的大背景下,美國信息交換標準代碼(ASCII)直到1963年才被引入。要想理解IDS,我們得先了解促進其發(fā)展的兩個主要動力:

  • 磁盤存儲器的引入
  • 向高水平編程的轉(zhuǎn)變

磁盤存儲器

 

[[391147]]

 

圖:工人正在搬動一臺RAMAC305

1956年,IBM推出了第一個商用硬盤驅(qū)動器——RAMAC 305。磁盤驅(qū)動器的引入,使程序員能直接跳轉(zhuǎn)到磁盤的某個位置來檢索和更新數(shù)據(jù)。相比它的前身磁帶驅(qū)動器,這是一個巨大的進步,后者需要在磁帶中順序移動來檢索一個特定片段的數(shù)據(jù)。

但目前開發(fā)者必須找出磁盤上存儲記錄的位置。由于早期操作系統(tǒng)中的文件管理系統(tǒng)具有局限性,這是一項只有經(jīng)驗豐富的程序員才能完成的高級任務。開發(fā)者需要一個解決方案,以簡化磁盤驅(qū)動器的運作。

高水平編程

與此同時,在采用曲線上,計算機科學開始從創(chuàng)新者向早期采用者轉(zhuǎn)變。像Assembly這樣的低級編程語言在早期學術(shù)領域內(nèi)很流行,但普通程序員會轉(zhuǎn)而使用更高級的編程語言,如COBOL,因為其更易使用。

什么是IDS?IDS解決了磁盤存儲和高級編程問題,允許開發(fā)者使用COBOL之類的高級編程語言,以此來構(gòu)建應用程序,從磁盤存儲中輸入及檢索數(shù)據(jù)。由于這個功能,IDS成為了第一個數(shù)據(jù)庫管理系統(tǒng)。

CODASYL——數(shù)據(jù)庫管理的新標準

1969年,數(shù)據(jù)系統(tǒng)語言委員會(CODASYL)發(fā)布了一份報告,提出了一個數(shù)據(jù)庫管理的標準。巴赫曼是該委員會的一員,且該報告大量引用了IDS。

CODASYL數(shù)據(jù)模型引入了許多如今數(shù)據(jù)庫管理系統(tǒng)的核心特性:

  • 模式數(shù)據(jù)定義語言(DDL)
  • 數(shù)據(jù)操作語言(DML)

最重要的是,IDS和CODASYL引入了一種新的數(shù)據(jù)建模方法,這種方法影響了SQL的最終開發(fā),即網(wǎng)絡數(shù)據(jù)模型。

網(wǎng)絡數(shù)據(jù)模型——比如今的關(guān)系模型更勝一籌?

 

統(tǒng)治50年:為什么SQL在如今仍然很重要?

 

圖:網(wǎng)絡模型范例

數(shù)據(jù)模型是用于描述(模擬)世界(數(shù)據(jù))的標準方法。

從前的分層數(shù)據(jù)模型使用樹狀結(jié)構(gòu)來描述數(shù)據(jù),但其僅限于一對多的關(guān)系。新的網(wǎng)絡模型允許子記錄有多個父記錄,從而創(chuàng)建一個圖形結(jié)構(gòu)。通過允許多個父記錄,網(wǎng)絡模型能對多對一和多對多的關(guān)系進行建模。

在網(wǎng)絡模型中,表之間的關(guān)系存儲于集合中。每個集合都有一個所有者(即教師)和一個或多個成員(即班級和學生)。

網(wǎng)絡模型的一個關(guān)鍵優(yōu)勢是,集合中的相關(guān)記錄是通過指針直接連接的。集合是通過next,prior,以及owner指針實現(xiàn)的,能像鏈表一樣方便遍歷。

網(wǎng)絡數(shù)據(jù)模型的底層特性提供了性能上的益處,但這是有代價的。網(wǎng)絡數(shù)據(jù)模型增加了存儲成本,因為每條記錄都必須存儲額外指針,這些指針指向先前的記錄和父記錄。

關(guān)系模型的來臨

 

統(tǒng)治50年:為什么SQL在如今仍然很重要?

 

圖:關(guān)系模型的范例

1970年,在IDS之后的8年, 埃德加· F· 科德(Edgar F. Codd)在他的開創(chuàng)性論文《大型共享數(shù)據(jù)庫的數(shù)據(jù)關(guān)系模型》中引入了關(guān)系模型(這篇論文也讓他和巴赫曼一樣,成為了圖靈獎得主)。

科德表明,數(shù)據(jù)庫里所有的數(shù)據(jù)都能用元組(SQL中的行)表示,這些元組被分組為關(guān)系(SQL中的表)。為了描述數(shù)據(jù)庫查詢,他發(fā)明了一階謂語邏輯的形式,叫元組關(guān)系演算。

元組關(guān)系演算引入了一種用于查詢數(shù)據(jù)的聲明式語言。聲明式編程語言使程序員可以在不描述“如何做”的情況下,直接說出他們“想做什么”。

這種新的聲明式語言對開發(fā)者來說更容易使用。關(guān)系模型公開展示了所有數(shù)據(jù)。開發(fā)者能從表中檢索所有數(shù)據(jù),或在單個命令中讀取單個行(多虧查詢優(yōu)化器)。跟著指針迷宮尋找數(shù)據(jù)的日子已經(jīng)一去不復返了。

關(guān)系數(shù)據(jù)模型vs.網(wǎng)絡數(shù)據(jù)模型

通過規(guī)范數(shù)據(jù),關(guān)系數(shù)據(jù)庫能降低網(wǎng)絡數(shù)據(jù)庫的高存儲成本。規(guī)范化是一個分解表以消除冗余的過程,從而減少數(shù)據(jù)占用的磁盤空間。

然而,關(guān)系數(shù)據(jù)庫增加了CPU成本。為了運行規(guī)范化數(shù)據(jù),關(guān)系數(shù)據(jù)庫必須將表加載到內(nèi)存中,并使用計算能力將表“連接”在一起。讓我們通過一個關(guān)系模型來完成為某個特定教師找到所有班級和學生這一過程。

數(shù)據(jù)庫系統(tǒng)首先會執(zhí)行一個操作來檢索所有相關(guān)的班級。接著,它的第二步操作就是檢索學生數(shù)據(jù)。所有的數(shù)據(jù)都會被存儲到內(nèi)存中,在返還結(jié)果前,它會進行第三步操作來合并數(shù)據(jù)。

 

統(tǒng)治50年:為什么SQL在如今仍然很重要?

 

關(guān)系模型和網(wǎng)絡模型性能對比圖

在使用真實數(shù)據(jù)的性能案例研究中,雷瑪數(shù)據(jù)管理公司(Raima)發(fā)現(xiàn),網(wǎng)絡數(shù)據(jù)庫模型的插入性能優(yōu)于實際數(shù)據(jù)23倍,且查詢數(shù)據(jù)的速度比實際數(shù)據(jù)快123倍。

所以,為什么關(guān)系數(shù)據(jù)庫會成為領先的數(shù)據(jù)庫解決方案呢?

  • 易用性

關(guān)系模型能更加靈活地應對變化,而且它的聲明句法簡化了程序員的工作。摩爾定律在其背后發(fā)揮著神奇的作用。計算成本持續(xù)降低,最終,關(guān)系模型中增加的計算成本與生產(chǎn)力提高所帶來的收益相抵消。時間再快進50年,如今,數(shù)據(jù)中心最昂貴的資源就是CPU。

  • SQL時代的崛起

 

統(tǒng)治50年:為什么SQL在如今仍然很重要?

 

在科德的文章發(fā)表4年后,唐納德·張伯倫(Donald Chamberlin)和雷蒙德·博伊斯(Raymond Boyce)發(fā)表了《SEQUEL:結(jié)構(gòu)化英語查詢語言》。

他們將SEQUEL描述為“一組在一階謂語演算冪上的…關(guān)于表格結(jié)構(gòu)的簡單操作”。IBM發(fā)現(xiàn)了這種潛力,并在20世紀70年代初迅速開發(fā)了第一版SEQUEL,作為其System R項目的一部分。

后來之所以更名為SQL,是因為與英國供應商霍克西德利飛機公司(Hawker Siddeley)存在商標糾紛。SQL的下一次飛躍是在近十年后了。1986年,美國國家標準協(xié)會(ANSI)和國際標準化組織(ISO)發(fā)布了第一個官方的SQL標準:SQL-86。該標準將SQL分割成以下幾個部分:

  • 數(shù)據(jù)定義語言(DDL):用于定義和修改模式和關(guān)系的命令。
  • 數(shù)據(jù)操作語言(DML):用于從數(shù)據(jù)庫中查詢、插入和刪除信息的命令。
  • 事務控制:指定事務時間的命令。
  • 完整性:在數(shù)據(jù)庫信息中設置約束的命令。
  • 視圖:用于定義視圖的命令。
  • 權(quán)限:指定用戶訪問的命令
  • 嵌入式SQL:指定如何在其他語言中嵌入SQL的命令。

1974年至今,無數(shù)競爭者試圖從占統(tǒng)治地位的查詢語言SQL手中奪取市場份額。這些新的句法通常針對特定的新技術(shù):

 

  1. Lisp -> CLSQL.NET -> LINQRuby on Rails -> ActiveRecord 

35年之后,SQL仍然在數(shù)據(jù)庫中無所不在。它是如何保持其作為查詢語言的統(tǒng)治地位的,我們又能從它的故事中學到什么?

SQL統(tǒng)治50年的秘訣——我們能從中學到什么?

 

統(tǒng)治50年:為什么SQL在如今仍然很重要?

 

圖:2017年堆棧溢出開發(fā)者調(diào)查

我們從巴赫曼引入第一個數(shù)據(jù)庫管理系統(tǒng)IDS講起,討論了從磁盤存儲向高級編程轉(zhuǎn)變,催生了對處理數(shù)據(jù)新方法的需求。接著迎來了CODASYL和標準化數(shù)據(jù)庫管理。IDS和CODASYL引入了新的網(wǎng)絡數(shù)據(jù)模型。最終,科德放棄了關(guān)系模型。這一切發(fā)展用了超過8年的時間。

SQL是如何成功在后來的50年間保持流行的?我認為有4個主要原因:

  • 建立在基本原則之上

基本原則是一個基本命題,不能從其他任何命題或假設中推導出來。例如,將碳氫化合物和氧氣結(jié)合,產(chǎn)生化學反應,這仍然是驅(qū)動每輛汽車內(nèi)燃機的原理。

1970年,科德創(chuàng)造了新的數(shù)據(jù)庫基本原則:元組關(guān)系演算。這個新邏輯的創(chuàng)建產(chǎn)生了關(guān)系模型,之后引出了SQL。元組關(guān)系演算就是化學反應,關(guān)系模型就是內(nèi)燃機,而SQL就是汽車。

  • 布什內(nèi)爾定理

僅僅建立在基本原則的基礎上不能保證成功。Assembly是程序員能做出的最接近1和0的程序,但仍然被COBOL(以及后來的C)所取代,其中缺失的成分就是易用性。

無獨有偶,在從網(wǎng)絡模型到關(guān)系模型的轉(zhuǎn)變中,網(wǎng)絡模型性能更好,但如今每家公司都在使用關(guān)系數(shù)據(jù)庫,因為它更容易(上手)。

Assembly不僅精通難,入門也很難。SQL在二者之間達到了完美的平衡。通過10個左右的SQL命令,任何人都能學會20%,然后進階到80%,但要想成為一名大師,需要經(jīng)過長期的索引、視圖和優(yōu)化過程。

  • 傾聽和適應

查詢語言不是永恒的單一語言,而是一組與時俱進的適應性標準。SQL標準一直在隨時間進行調(diào)整,并吸收來自用戶的反饋。

從最初的概念以來,我們已經(jīng)看到了10種不同的SQL標準,每種都做出了重要的改變。以下是其中的3大更新:

1.SQL:1999:添加了正則表達式匹配、遞歸查詢(如傳遞閉包)、觸發(fā)器、對過程語句和流控制語句的支持、非標量類型(數(shù)組)和一些面向?qū)ο筇匦?如結(jié)構(gòu)化類型)。支持在Java中嵌入SQL(SQL/OLB),反之亦然(SQL/JRT)。

2.SQL:2003:引入了與XML相關(guān)的特性(SQL/XML)、窗口函數(shù)、標準化序列和自動生成值的列(包括標識列)。

3.SQL:2016:增加行模式匹配、多態(tài)表函數(shù)、JSON。

SQL還展示了創(chuàng)造軌道的能力,且其他產(chǎn)品都建立在該軌道之上。SQL沒有需要強制執(zhí)行的語法,而是為每個數(shù)據(jù)庫提供一個標準,讓其完成自我實現(xiàn)(T-SQL, MySQL, PSQL, etc)。

  • API的采用

SQL成功的最后一個秘訣,是應用程序編程接口(API)的興起。API通過抽象底層操作簡化了編程,只公開開發(fā)人員需要的對象或操作。API使SQL得以使用特定句法來持續(xù)適應新科技。

2006年,Hadoop引入了分布式文件系統(tǒng)(HDFS),起初SQL句法無法訪問該系統(tǒng)。然而到了2013年,Apache創(chuàng)建了Apache Impala,使開發(fā)者可以使用SQL來查詢HDFS數(shù)據(jù)庫。

SQL是如今最普遍使用的編程語言之一,我們不該忘記它悠久的歷史。它的旅程始于現(xiàn)代計算的黎明,在兩位圖靈獎得主的努力下煥發(fā)生機。

 

 

責任編輯:華軒 來源: 讀芯術(shù)
相關(guān)推薦

2021-09-23 09:35:00

編程技能開發(fā)

2014-07-16 09:45:36

DOS

2020-08-11 11:51:47

標準物聯(lián)網(wǎng)IOT

2023-02-13 11:06:58

決策智能數(shù)據(jù)分析

2024-04-11 07:00:00

人工智能

2021-02-14 13:38:17

Python開發(fā)函數(shù)

2022-07-15 13:43:40

網(wǎng)絡安全黑客

2024-01-08 13:28:00

5G低延遲

2022-11-07 11:22:33

2022-01-10 23:39:18

Java測試開發(fā)

2023-05-23 16:08:19

2020-12-30 13:30:38

數(shù)據(jù)中心計算機超級計算機

2022-05-11 15:08:16

加密貨幣私鑰安全

2022-08-24 15:03:21

數(shù)據(jù)智能數(shù)據(jù)分析

2013-01-08 14:58:48

Firefox OS

2015-10-19 17:57:33

容器OpenStack微服務

2013-09-02 10:05:06

C編程語言

2022-12-29 10:16:12

觀察性系統(tǒng)監(jiān)視

2010-10-26 13:44:15

2024-04-22 15:31:02

物聯(lián)網(wǎng)
點贊
收藏

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

国产99一区视频免费| 亚洲天堂网站在线观看视频| 亚洲精品人成| 欧美黄污视频| 97在线视频国产| 日韩欧美专区| 欧美大片在线观看| 国产精品99999| 五月天精品一区二区三区| 亚洲高清免费在线观看| 91免费在线视频观看| 国产内射老熟女aaaa| 天堂在线一区二区| 黑人中文字幕一区二区三区| 中文字幕一区二区三区在线视频| 国产精品久久久久久久电影 | 中文字幕 久热精品 视频在线 | 欧美激情日韩| 成人av蜜桃| 亚洲情侣在线| 国产高清在线一区二区| 亚洲网站视频| 女同一区二区| 看国产成人h片视频| 综合视频免费看| 麻豆高清免费国产一区| 亚洲一区二区精品在线| 久久精品国产亚洲aⅴ| 椎名由奈jux491在线播放| 麻豆一区二区99久久久久| 日韩 欧美 自拍| 成人动漫视频在线| 免费无遮挡无码永久视频| 久久久久久久久岛国免费| 一级片视频免费观看| 亚洲精品视频观看| 又黄又www| 欧美性少妇18aaaa视频| 国产在线观看网站| 日韩三级中文字幕| 自拍偷拍欧美视频| 久久天堂av综合合色| 国产毛片久久久| 国产在线拍偷自揄拍精品| 欧美激情在线| 视频在线99| 91视频在线观看免费| 四虎4hutv紧急入口| 亚洲国产日韩在线一区模特| 国产一区二区三区不卡在线| 精品久久久网站| 精品精品视频| 国产在线拍揄自揄视频不卡99| 国产精品www.| 黄色特一级视频| 亚洲男同1069视频| 伊人在线视频| 中文字幕精品久久| 国产欧美日韩视频在线| 精品蜜桃传媒| 成人高清视频免费观看| 成年人黄色电影| 欧美一区二区三区在线观看| 在线观看精品| 国产成人精品一区二区| 国产精品人人爽人人做我的可爱| 黄网站色视频免费观看| 亚洲一区二区三区影院| 亚洲卡一卡二| 久久免费视频网站| 亚洲人体大胆视频| 91视频最新入口| 五月婷婷综合在线| 亚洲美女尤物影院| 国产精品黄页免费高清在线观看| 青娱乐精品视频| 久草免费在线播放| 日韩欧美国产综合| 久久男人av| 伊甸园精品99久久久久久| 国产精品二三区| 俺来俺也去www色在线观看| 91精品国产91久久久久久最新 | 日韩a在线观看| 奇米4444一区二区三区| 国产精品拍拍拍| 色94色欧美sute亚洲线路一久| 在线视频自拍| 久久影院在线观看| 欧美黄色一区| 97公开免费视频| 精品剧情在线观看| 久久一本综合| 欧美aⅴ在线观看| 日韩一区二区影院| 日本国产精品| 精品无码av无码免费专区| 色激情天天射综合网| 日韩精品成人| 五月天亚洲综合小说网| 精品国产1区2区| 一区二区在线视频观看| 日韩免费一区二区三区| 亚洲国产va精品久久久不卡综合| 日韩在线短视频| 欧美日韩精品免费观看| 亚洲综合视频网| 亚洲欧美久久精品| 国产a级片免费看| 91精品久久久久久久99蜜桃| 黄色不卡一区| 国产高清视频网站| 一区二区av在线| 亚洲国产专区校园欧美| 日韩伦理片在线观看| 欧美黑人国产人伦爽爽爽| 国产一区二区三区综合| 男人资源在线播放| 91久久精品国产91久久| 亚洲私人黄色宅男| 97品白浆高清久久久久久 | 欧亚一区二区| 一道精品一区二区三区| 欧美日免费三级在线| 亚洲成人一区| 四虎精品成人影院观看地址| 日本视频久久久| 中文字幕在线免费不卡| 国产精品一区二区精品视频观看| 精品无码国模私拍视频| 日韩中文在线视频| 久久亚洲综合色一区二区三区| 国产一区二区三区朝在线观看| 亚洲高清资源综合久久精品| 欧美一卡二卡三卡四卡| 天堂资源在线中文精品| 成人在线高清免费| 国产尤物av一区二区三区| 成人一区视频| 欧美视频小说| 色婷婷狠狠综合| 欧洲激情综合| 午夜视频99| 国产成人精品优优av| 中文字幕欧美三区| 国产不卡精品在线| 男人天堂999| 麻豆乱码国产一区二区三区| 国产传媒久久文化传媒| 欧美影视资讯| www黄色日本| 欧美成人精品在线| 亚洲国产电影在线观看| 福利在线一区| 免费观看视频www| 日本国产一区二区三区| 一区二区日韩电影| 日韩一区二区在线| 久久精品a一级国产免视看成人| 亚洲www在线| 欧美熟乱第一页| 另类av一区二区| 漫画在线观看av| 黄色a级片免费看| 欧美激情欧美激情在线五月| 国产精品国产三级国产普通话三级| 精品女人视频| 日本一卡二卡四卡精品| 成人欧美一区二区三区在线观看| 欧洲色大大久久| 国产精品主播| 中文字幕不卡三区视频| 亚洲自偷自拍熟女另类| 欧美专区在线视频| 在线精品亚洲一区二区不卡| 日本最新不卡在线| 亚洲成人精品综合在线| 独立日3在线观看完整版| 成人福利网站在线观看| 欧美日韩视频一区二区| 九九久久精品视频 | 婷婷久久综合九色国产成人| 在线成人www免费观看视频| 日韩在线伦理| 啊啊啊啊啊啊啊视频在线播放| 不卡视频一区二区| 日本女优一区| 在线国产视频| 中文字幕久久一区| 久久久久久久一区二区三区| 午夜视频在线观看一区二区| 日本午夜精品一区二区三区电影| 精品视频一区二区三区在线观看| 在线欧美成人| a级黄色片免费| 国产专区欧美专区| 日韩av在线导航| 亚洲一级在线观看| 国产高清不卡一区二区| 成人一区不卡|