出版時間:2010-8 出版社:清華大學出版社 作者:戴特 頁數:400 譯者:周成興
Tag標簽:無
前言
SQL語言使用非常廣泛。但是SQL又是難以使用的:它非常復雜,并且很令人費解,而且更容易出錯。為了使你能確信寫出的SQL代碼是精確的(換句話說,這些SQL代碼只做你希望做的事情,不多也不少),因此你就必須遵循適當的規(guī)則,這就是本書需要論述的問題,即關系地使用SQL語言就是你需要遵循的規(guī)則。但這又意味著什么呢?難道SQL不是相關的嗎?當然在關系數據庫中,SQL是事實上的標準,但事實上SQL自己并不是相關的。不幸的是,在很多方面SQL都是從關系理論分離開的,如重復的行和空行就是兩個明顯的例子,但并不是只有這兩個例子。其結果就是,就像它給了你一根繩子把你自己捆住一樣。因此如果你不想捆住自己,就需要理解關系理論(是什么和為什么);你需要了解SQL是如何從這個理論分離開來的;并且需要了解如何避免可能產生的問題??傊阈枰P系地使用SQL,然后你才能把SQL看作是關系型的那樣行事,這樣你就能獲得它事實上的好處,從而實現一個真正的關系系統(tǒng)?,F在,如果每個人都已經關系地使用SQL語言,那么類似于本書這種類型的書就不需要了,但事實上并非如此。相反地,在當前的SQL使用中,我看到了非常多的糟糕的例子。甚至在一些教科書和類似的出版物中,作者所推薦的實踐中都存在這樣的糟糕的例子,這些作者本應知道得更好;事實上,在這方面對這些文獻資料的回顧是非常的令人沮喪的。在1969年,關系模型就首先令人看到了曙光,然而到現在為止,已經過去40年了,在數據庫社區(qū),關系模型看上去還是沒有被普遍地理解。部分地因為這種原因,所以本書使用關系模型本身作為組織的原則;本書將會深入解釋關系模型的各種特性,并且在每一個例子中都會說明如何最好地使用SQL來實現那些令人懷疑的特性。
內容概要
在關系數據庫系統(tǒng)中,SQL已經成為了事實標準。SQL語言使用非常廣泛,現在流行的所有數據庫系統(tǒng)幾乎都支持SQL。但是,SQL難以使用,它非常復雜,并且很令人費解。本書主要介紹了關系數據庫的原理與SQL的內在關系,闡述了該如何把關系理論直接應用到SQL的應用中,并通過大量的例子以及對其背后理論解釋,幫助讀者編寫出高效而精確的SQL代碼。全書由12章和4個附錄組成,每章后面都給出了一定的練習題,幫助讀者鞏固所學的內容,并在附錄C中給出了這些練習題的答案,因此極大地方便了讀者的學習和使用。
作者簡介
作者:(美國)戴特(Date C.J.) 譯者:周成興 等C.J. Date個獨立的作者、演講者、研究者和技術顧問,其研究領域為關系數據庫技術。他最著名的圖書“An Introduction to Database Systems”(8th edition,Addison·Wesley,2004)以銷售25萬多冊,被全世界幾百所大學用作教材。他還編寫了很多數據庫管理方面的其他圖書:Temporal Data and the Relational Model (Morgan Kaufmann, 2003)Database in Depth: Relational Theory for Practitioners (O'Reilly, 2005)Database, Types, and the Relational Model: The Third Manifesto (3rd edition, Addison-Wesley, 2006)The Relational Database Dictionary (O'Reilly, 2006)Date on O'Reilly, 2005: Writing 2000-2006 (Apress, 2007)Logic and Database: The Roots of Relational Theory (Trafford, 2007)The Relational Database Dictionary, Extended Edition (Apress, 2006)Date于2004年進入了“計算機工業(yè)”名人堂。對其評語是,他具有以清晰而易懂的方式闡述復雜技術內容的突出能力。
書籍目錄
前言第1章 設置場景 關系模式是非常容易被誤解的 一些術語的注釋 法則,而不是產品 最初模式的一個回顧 模型和實現 關系的特性 基礎關系和產生的關系 關系和關系變量 值和變量 結論 練習第2章 類型與域 類型和關系 等式比較 數據值的原子性 什么是類型 標量和非標量類型 SQL中的標量類型 SQL中的類型檢查和強制類型轉換 SQL中的一些整序 SQL中的行和表類型 結論 練習第3章 元組與關系、行和表 什么是元組 SQL中的行 什么是關系 關系和它們的關系體 關系是n維的 關系比較 TABLE—DUM和TABLE—DEE SQL中的表 SQL中列的命名 結論 練習第4章 無重復與無空值 重復有什么問題 復行:進一步討論 在SQL中避免復行 空值有什么錯 在SQL中避免空值 對外連接的評論 結論 練習第5章 基本關系變量與基本表 數據定義 更新是集合級別的 關系賦值 更多關于候選鍵的內容 關于外鍵更多的討論 關系變量和斷言 關系和類型 練習第6章 SQL與關系代數Ⅰ:原始的操作符 一些預備知識 有關閉包的更多討論 約束 投影 連接 并、交和差 哪些操作符是原始的 每次都形成表達式的一小步 關系表達式的意思是什么 求一個表表達式的值 表達式轉換 屬性名字上的依賴 練習第7章 SQL與關系代數Ⅱ:附加的操作符 半連接和半差 擴展 映像關系 除 聚集操作符 映像關系再討論 概要 概要再論 分組和不分組 what if查詢 ORDER BY如何 練習第8章 SQL與約束 類型約束 SQL中的類型約束 數據庫約束 SQL中數據庫約束 事務 為什么數據庫約束的檢測必須是實時的 難道某些檢測不是不得不被推遲嗎 約束和謂詞 各種各樣的問題 練習第9章 SQL與視圖 視圖是關系變量 視圖和謂詞 獲取操作 視圖和約束 更新操作 視圖是為了什么 視圖和快照 練習第10章 SQL與邏輯 簡單和復合的命題 簡單和復合的謂詞 定量 關系計算 更多的關于量化 一些等價形式. 結論 練習第11章 使用邏輯來形式化SQL表達式 一些轉換規(guī)則 例子1:邏輯隱含 例子2:普遍的限定 例子3:隱含和一般的限制 例子4:相關的子查詢 例子5:命名子查詢 例子6:更多的關于命名子表達式 例子7:處理不確定性 例子8:使用COUNT 例子9:連接查詢 例子10:唯一限制 例子11:ALL或者ANY比較 例子12:GROUP BY和HAVING 練習第12章 SQL主體雜項 SELECT 顯表 名字限定 范圍變量 子查詢 “可能的非確定”表達式 空集 SQL表表達式的BNF范式語法 練習附錄A 關系模式附錄B 數據庫設計理論附錄C 練習答案附錄D 進一步閱讀
章節(jié)摘錄
插圖:視圖是為了什么到目前為止,本章都是假設你已經知道視圖為的是什么——但是盡管如此我還是想就這個主體說上一些。事實上,視圖有兩個截然不同的目的:·那些定義視圖V什么的用戶,顯然是知道相應的視圖定義表達式x的。因此這個用戶可以在任何期望使用表達式x的地方使用名字y,但是這樣的用法只是基本縮寫,并且明顯地這個正在討論的用戶理解這個縮寫?!は喾?,那些僅是被通知嗍實存在以及這個,是可用的用戶是被假設(至少理想情況下)不知道這個表達式x的,對于這些用戶,事實上,v是被假設成看上去并且感覺像是一個基關系變量,就像我已經詳細地解釋的那樣。并且這是視圖的第二個事實上非常重要的用法,這也是本章到目前為止我的焦點所在。邏輯數據獨立前面介紹的第二個目的與邏輯數據的獨立這個問題密切相關?;貞浺幌碌?章中物理數據上的獨立的意思是我們可以改變數據的物理存儲的方式并且由用戶感覺到的數據的訪問方式不需要做相應的改變。因此,相當的足夠,邏輯數據的獨立意味著我們可以改變數據邏輯上的存儲方式并且用戶感覺到的數據的訪問方式不需要做相應的改變。并且視圖被假設用來提供的就是這個邏輯數據的獨立。
編輯推薦
《SQL與關系數據庫理論》是由清華大學出版社出版的。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載