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

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_DPP_0004.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [轉貼]SQL-99標準

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15766
[轉貼]SQL-99標準

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標準 @ 彥霖 實驗筆記 :: 痞客邦 ::
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15766
[轉貼]SQL-92 - WiKi

SQL-92

SQL-92 was the third revision of the SQL database query language. Unlike SQL-89, it was a major revision of the standard. Aside from a few minor incompatibilities, the SQL-89 standard is forward-compatible with SQL-92.


The standard specification itself grew about five times compared to SQL-89. Much of it was due to more precise specifications of existing features; the increase due to new features was only by a factor of 1.5–2. Many of the new features had already been implemented by vendors before the new standard was adopted. However, most of the new features were added to the "intermediate" and "full" tiers of the specification, meaning that conformance with SQL-92 entry level was scarcely any more demanding than conformance with SQL-89.

Later revisions of the standard include SQL:1999 (SQL3), SQL:2003, SQL:2008,
SQL:2011 and SQL:2016.

New features

Significant new features include:

  • New data types defined: DATE, TIME, TIMESTAMP, INTERVAL, BIT string, VARCHAR strings, and NATIONAL CHARACTER strings.
  • Support for additional character sets beyond the base requirement for representing SQL statements.
  • New scalar operations such as string concatenation and substring extraction, date and time mathematics, and conditional statements.
  • New set operations such as UNION JOIN, NATURAL JOIN
    , set differences, and set intersections.
  • Conditional expressions with CASE. For an example, see Case (SQL).
  • Support for alterations of schema definitions via ALTER and DROP.
  • Bindings for C, Ada, and MUMPS.
  • New features for user privileges.
  • New integrity-checking functionality such as within a CHECK constraint.

  • A new information schema—read-only views about database metadata like what tables it contains, etc. For example, SELECT * FROM INFORMATION_SCHEMA.TABLES;.
  • Dynamic execution of queries (as opposed to prepared).
  • Better support for remote database access.
  • Temporary tables; CREATE TEMP TABLE etc.
  • Transaction isolation levels.
  • New operations for changing data types on the fly via CAST (expr AS type).
  • Scrolled cursors.
  • Compatibility flagging for backwards and forwards compatibility with other SQL standards.

Extensions

Two significant extensions were published after standard (but before the next major iteration.)

References

  1. Jim Melton; Alan R. Simon (1993). Understanding The New SQL: A Complete Guide. Morgan Kaufmann. pp.  11–12. ISBN 
    978-1-55860-245-8.
  2. C. J. Date with Hugh Darwen: A Guide to the SQL standard : a users guide to the standard database language SQL, 4th ed., Addison Wesley, USA 1997, ISBN  978-0-201-96426-4

原文出處:SQL-92 - Wikipedia
前一個主題 | 下一個主題 | 頁首 | | |



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