數(shù)據(jù)庫語言包括:過程性語言和非過程語言。以關(guān)系代數(shù)為基礎(chǔ)設(shè)計(jì)的數(shù)據(jù)庫語言,是一種過程性語言,即用戶不但要說明需要什么數(shù)據(jù),還要說明獲取這些數(shù)據(jù)的過程;非過程語言只說明需要什么數(shù)據(jù),如何獲得這些數(shù)據(jù)不必由語言來描述,而由DBMS系統(tǒng)來實(shí)現(xiàn)。關(guān)系數(shù)據(jù)庫上應(yīng)用最廣泛的結(jié)構(gòu)化數(shù)據(jù)查詢語言(Structured Query Language,簡(jiǎn)稱SQL)就是非過程語言。
SQL語言的前身是SEQUEL(Structured English Query Language),它是20世紀(jì)70年代IBM公司San Jose研究室研制的關(guān)系數(shù)據(jù)庫原型系統(tǒng)System R上的查詢語言。由于SQL功能豐富、語言簡(jiǎn)捷,備受用戶及計(jì)算機(jī)工業(yè)界歡迎,被眾多計(jì)算機(jī)公司和軟件公司所采用。經(jīng)各公司的不斷修改、擴(kuò)充和完善,SQL語言最終發(fā)展成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。1986年10月美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)公布了第一個(gè)SQL標(biāo)準(zhǔn),即SQL-86,并將SQL解釋為Structured Query Language的縮寫。1987年國際標(biāo)準(zhǔn)化組織(ISO)也通過了這一標(biāo)準(zhǔn)。經(jīng)過增補(bǔ)和修訂,ISO于1989年公布了SQL-89標(biāo)準(zhǔn),1992年公布了SQL-92標(biāo)準(zhǔn),即SQL2。目前最新的是SQL-2011。
按照功能可以把SQL分為四大部分:①數(shù)據(jù)定義語言(Data Definition Language,簡(jiǎn)稱DDL),用于定義、撤銷和修改關(guān)系模式。②查詢語言(Query Language,簡(jiǎn)稱QL),用于查詢數(shù)據(jù)。③數(shù)據(jù)操縱語言(Data Manipulation Language,簡(jiǎn)稱DML),用于增刪改數(shù)據(jù)。④數(shù)據(jù)控制語言(Data Control Language,簡(jiǎn)稱DCL),用于數(shù)據(jù)訪問權(quán)限的控制。
除了關(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫語言之外,在其他數(shù)據(jù)模型(如層次數(shù)據(jù)模型、圖數(shù)據(jù)模型、流數(shù)據(jù)模型等)上都有各自的數(shù)據(jù)庫語言。①半結(jié)構(gòu)化數(shù)據(jù)(Semi-structured Data)是一類重要的數(shù)據(jù),此類數(shù)據(jù)是自描述的,自身攜帶了模式信息,介于結(jié)構(gòu)化的關(guān)系數(shù)據(jù)和非結(jié)構(gòu)化的文本數(shù)據(jù)之間一類數(shù)據(jù)。常用的查詢語言XQuery(XML Query Language的簡(jiǎn)稱),目前的版本是3.0,它是截至2014年4月11日的W3C推薦規(guī)范。XQuery關(guān)鍵組件是XPath,它本身就是W3C的一個(gè)規(guī)范。XPath是一些有關(guān)如何在XML文檔中進(jìn)行定位,即如何很快找出XML文檔中具有某種特征標(biāo)簽的一種語言。②圖數(shù)據(jù)也是一類應(yīng)用廣泛的數(shù)據(jù)類型,比如社交網(wǎng)絡(luò)圖、知識(shí)圖譜、語義網(wǎng)等都是圖數(shù)據(jù)模型。已有很多圖查詢語言,其中面向語義網(wǎng)的SPARQL (SPARQL Protocol and RDF Query Language,簡(jiǎn)稱SPARQL)是一種重要的查詢語言和數(shù)據(jù)獲取協(xié)議,它是為W3C所開發(fā)的RDF數(shù)據(jù)模型所定義,但是可以用于任何可以用RDF來表示的信息資源。SPARQL于2008年1月15日正式成為一項(xiàng)W3C推薦標(biāo)準(zhǔn)。
流數(shù)據(jù)的查詢語言也被廣泛研究。CQL(Continuous Query Language,簡(jiǎn)稱CQL) 是一個(gè)針對(duì)流式數(shù)據(jù)的查詢語言,相對(duì)于傳統(tǒng)的SQL來說,CQL中增加了window 窗口的概念,數(shù)據(jù)存儲(chǔ)在內(nèi)存中,因此內(nèi)存中的計(jì)算可以快速的完成。
聯(lián)系客服