茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671179 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
HoneyMoon_Day2_00038.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2020/5/3 7:13:47

SQL-99標準

SQL99是數據庫的一個ANSI/ISO標準。這個標準的前身是SQL92 ANSI/ISO標準,而SQL92之前還有一個SQL89 ANSI/ISO標準。它定義了一種語言(SQL)以及數據庫的行為(事務、隔離級別等)。你知道許多商業數據庫至少在某種程度上是符合SQL99的嗎?不過,這對於查詢和應用的可移植性沒有多大的意義,這一點你也清楚嗎?
SQL92標準有4個層次:

  • 入門級(Entry level)。
    這是大多數開發商符合的級別。這一級只是對前一個標準SQL89稍做修改。所有數據庫開發商都不會有更高的級別,實際上,美國國家標準和技術協會NIST(National Institute of Standards and Technology,這是一家專門檢驗SQL合規性的機構)除了驗證入門級外,甚至不做其他的驗證。 Oracle 7.0於1993年通過了NIST的SQL92入門級合規性驗證,那時我也是小組中的一個成員。如果一個數據庫符合入門級,它的特性集則是Oracle 7.0的一個功能子集。
  • 過渡級。
    這一級在特性集方面大致介於入門級和中間級之間。
  • 中間級。
    這一級增加了許多特性,包括(以下所列並不完整):
    • 動態SQL
    • 級聯DELETE以保證引用完整性
    • DATE和TIME數據類型
    • 變長字符串
    • CASE表達式
    • 數據類型之間的CAST函數
  • 完備級。
    增加了以下特性(同樣,這個列表也不完整):
    • 連接管理
    • BIT串數據類型
    • 可延遲的完整性約束
    • FROM子句中的導出表
    • CHECK子句中的子查詢
    • 臨時表


入門級標準不包括諸如外聯結(outer join)、新的內聯結(inner join)語法等特性。過渡級則指定了外聯結語法和內聯結語法。中間級增加了更多的特性,當然,完備級就是SQL92全部。有關SQL92的大多數書都沒有區別這些級別,這就會帶來混淆。這些書只是說明了一個完整實現SQL92的理論數據庫會是什麼樣子。所以無論你拿起哪一本書,都無法將書中所學直接應用到任何SQL92數據庫上。關鍵是,SQL92最多只達到入門級,如果你使用了中間級或更高級裡的特性,就存在無法“移植”應用的風險。
SQL99只定義了兩級一致性:核心(core)一致性和增強(enhanced)一致性。 SQL99力圖遠遠超越傳統的“SQL”,並引入了一些對象—關係構造(數組、集合等)。它包括SQL MM(多媒體,multimedia)類型、對象—關係類型等。還沒有哪個開發商的數據庫經認證符合SQL99核心級或增強級,實際上,據我所知,甚至沒有哪個開發商聲稱他們的產品完全達到了某級一致性。
對於不同的數據庫來說,SQL語法可能存在差異,實現有所不同,同一個查詢在不同數據庫中的性能也不一樣,不僅如此,還存在並發控制、隔離級別、查詢一致性等問題。我們將在第7章詳細討論這些問題,並介紹不同數據庫的差異對你會有什麼影響。
SQL92/SQL99試圖對事務應如何工作以及隔離級別如何實現給出一個明確的定義,但最終,不同的數據庫還是有不同的結果。這都是具體實現所致。在一個數據庫中,某個應用可能會死鎖並完全阻塞。但在另一個數據庫中,同樣是這個應用,這些問題卻有可能不會發生,應用能平穩地運行。在一個數據庫中,你可能利用了阻塞(物理串行化),但在另一個數據庫上部署時,由於這個數據庫不會阻塞,你就會得到錯誤的答案。要將一個應用部署在另一個數據庫上,需要花費大量的精力,付出艱辛的勞動,即使你100%地遵循標準也不例外。
關鍵是,不要害怕使用開發商特有的特性,畢竟,你為這些特性花了錢。每個數據庫都有自己的一套“技巧”,在每個數據庫中總能找到一種完成操作的好辦法。要使用最適合當前數據庫的做法,移植到其他數據庫時再重新實現。要使用合適的編程技術,從而與這些修改隔離,我把這稱為防禦式編程(defensive programming)。


轉譯 : http://codex.wordpress.org.cn/SQL99 


原文出處: SQL-99標準 @ 彥霖 實驗筆記 :: 痞客邦 ::
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|