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