SQL編程風格

所属分类:數據庫  
出版时间:2008-10   出版时间:人民郵電出版社   作者:塞科   页数:194   译者:米全喜  

前言

  本书不是一本SQL入门书。真的,如果你需要的是学习如何使用SQL进行编程,有其他更好的书。本书应该是你买的第二本书,而不是第一本。  本书假设你已经能够编写一定水平的SQL,并且希望进一步提高。如果你想要学习SQL编程技巧,可以买一本我编写的Joe Celkos SQL FOR Smarties(2005年第3版)①。在本书中,我想教给读者的,是如何以逻辑和说明性的方式编程,而不是以过程化或面向对象的方式——也就是要“用查询的思维看数据库”②。  绝大多数sQL程序员都是在有了几年的过程化语言或面向对象语言编程经验之后才开始接触SQL的。他们拿到某个SQL产品,然后只能自学,使用的书都是“sQL forBrain-Dead Morons(SQL傻瓜书)”、“Le锄SQL in ten:Easy Lessons or Five Hard Ones(用10节容易的或5节复杂的课程学会SQL)”或其他更烂的书。  这太荒唐了!成为熟练的木匠或厨师都至少需要5年。为什么你会相信人们在一个周末内就能变成SQL高手?他们会变成糟糕的SQL程序员,只会使用本地SQL产品中的方言,并带有他们从前使用的编程语言的浓重口音。  可怕的是这些人常常不知道自己是拙劣的程序员。一个极端情况是,整个公司的人都做得很差,他们从来没有见过高手。

内容概要

  《图灵程序设计丛书·SQL编程风格》针对数据库的设计与编程提出了一系列规则和建议,内容涵盖命名规范、代码版式、键的设计、数据编码方案、编码风格、视图和存储过程的使用以及SQL 中的思考方式和一些试探法等多方面。这些规则都给出了原理说明和例外情况,并列举了大量示例。通过阅读《图灵程序设计丛书·SQL编程风格》,读者可以加深对SQL 思维方式的理解,改善SQL 编程风格,并编写出可读性强、可移植且易于维护的SQL 代码。此外,书中的规则对于公司内部制定编程规范也具有很好的借鉴作用。  《图灵程序设计丛书·SQL编程风格》适合数据库管理人员和开发人员阅读,也可作为高等院校计算机专业师生的参考教材。

作者简介

  Joe Celko世界著名的數據庫專家,曾經擔任ANSI SQL標準委員會成員達10年之久,他也是世界上讀者數量最多的SOL圖書作者之一。他曾撰寫過一系列專欄,並通過他的新聞組支持了數據庫編程技術以及ANSIISO標準的發展。除本書外,他還撰寫了多部SQL經典著作,包括《SQL解惑(第2版)》(人民郵電出版社,2008)和《SOL權威指南》(即將由人民郵電出版社出版)。

书籍目录

第1章 名稱與數據元素1.1 名稱1.1.1 注意名稱長度1.1.2 在名稱中避免使用所有特殊字符1.1.3 避免使用引號分隔標識符1.1.4 實施大寫規則以避免大小寫區分問題1.2 遵循ISO-11179標準命名規範1.2.1 SQL的ISO-111791.2.2 抽象級別1.2.3 避免使用描述性前綴1.2.4 制定標準化的後綴1.2.5 表和視圖名稱應當是遵循業界標準的、集合、類或復數名稱1.2.6 相關名基本上也要遵循與其他名稱相同的命名規則1.2.7 關系表名應當是常用描述術語1.2.8 元數據模式訪問對象的名稱可以包含結構信息1.3 命名數據元素時遇到的問題1.3.1 避免模糊名稱1.3.2 避免名稱在不同的地方改變1.3.3 不要使用專有暴露的物理定位符第2章 字體、標點和間距2.1 版式與代碼2.1.1 名稱中只使用大小寫字母、數字和下劃線2.1.2 列名、參數和變量等標量小寫2.1.3 模式對象名首字母大寫2.1.4 保留字大寫2.1.5 避免使用駝峰命名法2.2 單詞間距2.3 遵循規範標點規則2.4 使用完全保留字2.5 如果在使用的SQL產品中有標準保留字,就不要使用專有保留字2.6 如果有標準語句,就不要使用專有語句2.7 疏排版面的隔空白道和垂直間距2.8 縮進2.9 使用行間距將語句分組第3章 數據定義語言3.1 將默認值放到合適的地方3.2 默認值的類型應當與列的類型相同3.3 不要使用專有數據類型3.4 將PRIMARYKEY聲明放在CREATETABLE語句的開頭3.5 將列按照邏輯順序排列並按照邏輯組聚合3.6 將參考約束和操作在數據類型下面縮進3.7 在產品代碼中為約束命名3.8 將CHECK()約束放在所檢查的內容附近3.8.1 對數值考慮使用範圍約束3.8.2 對于字符值考慮使用LIKE和SIMILARTO約束3.8.3 時間值是有長短的3.8.4 避免使用REAL和FLOAT數據類型3.9 將多列約束盡可能靠近這些列3.10 將表級別的CHECK()約束放到表聲明的最後3.11 對多表約束使用CREATEASSERTION3.12 使CHECK()約束的目的唯一3.13 每個表都必須有鍵才能稱為表3.13.1 自動編號不是關系型鍵3.13.2 文件不是表3.13.3 鍵的屬性3.14 不要分割屬性3.14.1 分割為多個表3.14.2 分割為多個列3.14.3 分割為多個行3.15 不要對RDBMS使用面向對象的設計3.15.1 表不是對象實例3.15.2 對RDBMS不要使用EAV設計第4章 尺度與測量4.1 測度論4.1.1 範圍與顆粒度4.1.2 範圍4.1.3 顆粒度、準確度和精度4.2 尺度類型4.2.1 名義尺度4.2.2 種類尺度4.2.3 絕對尺度4.2.4 順序尺度4.2.5 級別尺度4.2.6 間距尺度4.2.7 比例尺度4.3 使用尺度4.4 尺度轉換4.5 導出單位4.6 標點與標準單位4.7 在數據庫中使用尺度的一般準則第5章 數據編碼方案5.1 不好的編碼方案5.2 編碼方案類型5.2.1 枚舉編碼5.2.2 測量編碼5.2.3 縮寫編碼5.2.4 算法編碼5.2.5 層次編碼5.2.6 向量編碼5.2.7 拼接編碼5.3 設計編碼方案的一般準則5.3.1 現有的編碼標準5.3.2 允許擴展5.3.3 使用顯式的丟失值避免NULL5.3.4 為終端用戶轉換編碼5.3.5 在數據庫中保存編碼5.4 多字符集第6章 編碼選擇6.1 選擇標準構造,不要選擇專有構造6.1.1 使用標準OUTERJOIN語法6.1.2 中綴INNERJOIN和CORSSJOIN語法是可選的,但是很好用6.1.3 使用ISO時間語法6.1.4 使用標準和可移植的函數6.2 選擇緊湊格式,不要選擇松散格式6.2.1 避免使用多余的括號6.2.2 使用CASE系列表達式6.2.3 避免使用冗余表達式6.2.4 尋找緊湊格式6.3 使用注釋6.3.1 存儲過程6.3.2 控制語句注釋6.3.3 對子句的注釋6.4 避免優化器提示6.5 觸發器的優先級不應當高于DRI操作6.6 使用SQL存儲過程6.7 避免在數據庫中使用用戶定義函數和擴展6.7.1 多語言問題6.7.2 可移植性問題6.7.3 優化問題6.8 避免使用過度的輔助索引6.9 避免使用關聯子查詢6.10 避免使用UNION6.11 測試SQL6.11.1 測試NULL所有可能的組合6.11.2 檢查並測試所有的CHECK()約束6.11.3 注意字符列6.11.4 測試大小第7章 如何使用視圖7.1 視圖的命名規範與表一樣7.2 視圖提供行和列級別的安全性7.3 視圖確保了有效訪問路徑7.4 視圖對用戶隱藏了復雜性7.5 視圖確保了正確的數據派生7.6 視圖將表和或列重新命名7.7 視圖實施復雜的完整性約束7.8 可更新的視圖7.8.1 WITHCHECKOPTION子句7.8.2 INSTEADOF觸發器7.9 每個視圖都要有創建的原因7.10 避免視圖的數量快速增長7.11 將視圖與基表同步7.12 不恰當地使用視圖7.12.1 用于域支持的視圖7.12.2 單個解決方案的視圖7.12.3 不要為每個基表都創建視圖7.13 學習使用物化的視圖第8章 如何編寫存儲過程8.1 大多數SQL4GL都不是用于應用程序的8.2 基本軟件工程8.2.1 內聚8.2.2 耦合8.3 使用傳統的結構化編程8.4 避免可移植性問題8.4.1 避免創建臨時表8.4.2 避免使用游標8.4.3 面向集合的構造優于過程化代碼8.5 標量與結構化參數的對比8.6 避免使用動態SQL8.6.1 性能8.6.2 SQL注入第9章 試探法9.1 將規格說明表達為清晰的語句9.2 在名詞的後面加上“……的集合”9.3 從問題語句中刪除行為動詞9.4 仍然可以使用存根9.5 不要擔心數據的顯示9.6 第一次嘗試需要特別處理9.6.1 不要舍不得扔掉你對DDL的第一次嘗試9.6.2 保存你對DML的第一次嘗試9.7 不要以方框和箭頭的方式思考9.8 畫圓圈和集合圖9.9 學習方言9.10 假設WHERE子句是“巨型變形蟲”9.11 使用新聞組和因特網第10章 以SQL的方式思考10.1 不好的SQL編程方式與過程化語言10.2 把列當作字段思考10.3 以過程化而不是說明性的方式思考10.4 模式應該看起來像輸入格式附錄A 資源附錄B 參考文獻索引

章节摘录

  第1章 名稱與數據元素  1.1 名稱  以前,每個程序員都有一套自己的命名規範。但是,他們常常都太有創造性了。我特別喜歡舉的一個例子是,有一個人使用某類主題詞作為他的COBOL段名︰一段程序可能使用國家名,另外一段可能使用花卉,等等。即使就程序員而言,這顯然也是很奇怪的行為,但是很多程序員的個人命名系統只有他們自己明白,別人都無法理解。  例如,我使用的第一個FORTRAN版本只允許6個字母的名稱,所以我變得善于使用和發明6個字母的名稱。開始編程時使用弱類型或無類型語言的程序員們都喜歡使用匈牙利表示法(參見Leszynski和Reddick)。老的習慣很難放棄。  當軟件工程變成規範後,每個公司都制定了自己的命名規範,並使用某種數據字典實施這些規範。使用最廣泛的一套規則可能要算是由美國國防部建立的MIL STD8320.1,但它在聯邦政府之外卻從未流行起來。這與先前缺乏有效組織的體系相比,已經有了很大進步,但是每個公司都有很大的不同︰有些對于名稱構造有正式的規則,而另外一些則只是將賦予數據元素的第一個名稱登記一下。  現在,我們有了ISO-11179標準,它正變得越來越普遍,是某些政府工作所需要的,並且正在被放入到數據儲存庫產品中。一些工具和大量標準化編碼方案也被放入到了這個標準中。考慮到這一點,並考慮到XML是一種標準交換格式,ISO-11179在今後將成為元數據參考的方法。

媒体关注与评论

  “Joe Celko是当今数据库界最著名的代表之一,他已经写了不少SQL编程的畅销书。但是。本书非常与众不同,它将教你如何转变思维方式,以逻辑和说明性的方式编程。成为一流的SQL开发人员。”  ——sQL-Server-Performance.corn

编辑推荐

  《图灵程序设计丛书·SQL编程风格》中,世界级SQL专家Joe Celko针对数据库的设计与编程提出了一系列规则和建议,内容涵盖命名规范、代码版式、键的设计、数据编码方案、编码风格、SQL中的思考方式等多个方面。可以作为软件公司内部编程规范的基础。书中讲述了如何编写标准、高效、易于维护的SQL代码。更重要的是。还教授读者如何像优秀的SQL程序员那样思考,用查询的思维方式来理解数据库,从而大大改善SQL编程风格并提高SQL编程水平。  世界级大师的SQL编程规范,讲述如何编写标准、高效、易于维护的SQL代码,教你像优秀的SQL程序员那样思考。  数据库作为现代软件应用的核心之一,正在发挥越来越重要的作用。很自然地,SQL在广大程序员的日常工作中也成了不可或缺的技术。学会SQL并不难,但是要成为优秀的SQL程序员就绝非易事了。大部分程序员都是在学习并从事了过程化或面向对象编程之后才转到SQL。因此往往带有浓重的口音,而且常常缺乏自知之明。

图书封面




    SQL編程風格下載



用户评论 (总计0条)

 
 

 

計算機與互聯網 PDF免费下载,數據庫PDF免费下载。 计算机教程网 

计算机教程网 @ 2018