2010-09-20 71 views
8

對於大多數編程任務來說,您可以選擇多種語言,並且有很多強大的社區。但是當你需要使用數據庫時,現在真的只有一個可行的選擇:SQL。當然,也有不同的公司有不同的實現和方言,但是你還在尋找的東西了SQL如何成爲主要的數據庫語言?

SELECT columns 
FROM table 
JOIN other_table ON criteria 
WHERE other_criteria 

它並不總是這樣,雖然。直到90年代初,還沒有一種明顯的方式與數據庫進行交互。但是今天,有。隨着計算機語言的普及而不是融合,我覺得有點奇怪。哪些歷史和技術因素導致SQL在數據庫訪問域中幾乎佔據統治地位?

回答

6

是這樣的溫斯頓·丘吉爾名言:

事實上,有人說,民主是政府的,除了已經嘗試不時所有其他形式的惡劣形式。

1970年以前,當關系模型被首次提出時,還有其他數據庫技術。自那時以來,一直有替代品,並且有new alternatives today

所有的選擇,但是,除了SQL沒有解決方案提供了良好的平衡爲:

  • 廣泛標準化
  • 流行和長壽命的產品,如Oracle
  • 播放很好地與許多應用程序編程語言
  • 支持正式數據建模,強大的數據完整性,ACID交易
1

Codd和Churchill不談,SQL在定義和查詢基於表格的數據集方面並不是一種可怕的語言。正如另一位將軍說的那樣,「它以最快的速度到達那裏。」

0

一個因素是數據依然存在。替換/遷移公司數據比其應用程序要困難得多。應用程序可以來來去去,以最新的'月味'編碼,但數據庫平臺依然存在。這有點像QWERTY效果。雖然QWERTY鍵盤佈局被稱爲效率低下,但它仍然存在,因爲切換到其他任何東西都會產生巨大的成本。其次,甲骨文和IBM(以及最近的微軟)佔據着巨大的市場支配地位。雖然他們可能不同意每一個細節,但他們的數據庫都沒有看到非SQL接口的好處。我在90年代早期使用Ingres時,它的QUEL被SQL推出。第三,應用程序開發人員(尤其是SAP和Oracle等)有一個好處,使其擁有一個標準(ish)平臺。

我想這個問題的另一面是爲什麼我們需要/想要這麼多不同的編程語言。

相關問題