0 0 0

SQL反模式.pdf

你挺带劲
15小时前 100
我用夸克网盘分享了「 SQL反模式.pdf」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
作者: [美] Bill Karwin 出版社: 人民邮电出版社 原作名: SQL Antipatterns: Avoiding the Pitfalls of Database Programming 译者: 谭振林/Push Chen 出版年: 2011-9 页数: 253 定价: 59.00元 装帧: 平装 丛书: 图灵程序设计丛书·数据库系列 ISBN: 9787115261274

内容简介

《SQL反模式》是一本广受好评的SQL图书。它介绍了如何避免在SQL的使用和开发中陷入一些常见却经常被忽略的误区。它通过讲述各种具体的案例,以及开发人员和使用人员在面对这些案例时经常采用的错误解决方案,来介绍如何识别、利用这些陷阱,以及面对问题时正确的解决手段。另外,《SQL反模式》还涉及了SQL的各级范式和针对它们的正确理解。 《SQL反模式》适合SQL数据库开发人员与管理人员阅读。

作者简介

Bill Karwin作为软件工程师、咨询师和管理者,他在20年间开发并支持了各种各样的应用、程序库以及服务器,如PHP 5的Zend Framework, Interbase关系型数据库,以及Enhydra Java应用服务器等。他一直无私地分享他的专业知识,来帮助其他程序员提高效率、获得成功。他曾以各种方式回答了上千个关于SQL的疑问,其中不乏一些 严重但又经常被忽略的问题。

网友热评

Fenng: 好像关注者不多,但真是一本很有价值的图书。 deniro: 【1】所谓专家,就是在一个很小的领域里把所有错误都犯过了的人。 【2】简约律:当你有两个相互竞争的理论能得出同样的结论,那么简单的那个更好。 【3】软件开发人员需要不断地在简单和灵活之间进行取舍。 fcicq: 拿到也就翻翻吧. 站读, 前面讲某树形结构的一章, 偶是想到了更好的方法... 就真没仔细考虑更新代价?! 哪有说的那么小.

图书目录

第1章引言  1 1.1谁需要这本书  2 1.2本书内容  2 1.2.1本书结构  3 1.2.2反模式分解  4 1.3本书未涉及的内容  4 1.4规约  5 1.5范例数据库  6 1.6致谢  8 第一部分逻辑型数据库设计反模式 第2章乱穿马路  10 2.1目标:存储多值属性  11 2.2反模式:格式化的逗号分隔列表  11 2.2.1查询指定账号的产品  11 2.2.2查询指定产品的账号  12 2.2.3执行聚合查询  12 2.2.4更新指定产品的账号  12 2.2.5验证产品ID  13 2.2.6选择合适的分隔符  13 2.2.7列表长度限制  13 2.3如何识别反模式  14 2.4合理使用反模式  14 2.5解决方案:创建一张交叉表  14 2.5.1通过账号查询产品和反过来查询  15 2.5.2执行聚合查询  16 2.5.3更新指定产品的相关联系人  16 2.5.4验证产品ID  16 2.5.5选择分隔符  17 2.5.6列表长度限制  17 2.5.7其他使用交叉表的好处  17 第3章单纯的树  18 3.1目标:分层存储与查询  18 3.2反模式:总是依赖父节点  19 3.2.1使用邻接表查询树  20 3.2.2使用邻接表维护树  21 3.3如何识别反模式  22 3.4合理使用反模式  23 3.5解决方案:使用其他树模型  24 3.5.1路径枚举  24 3.5.2嵌套集  26 3.5.3闭包表  29 3.5.4你该使用哪种设计  33 第4章需要ID  34 4.1目标:建立主键规范  35 4.2反模式:以不变应万变  36 4.2.1冗余键值  36 4.2.2允许重复项  37 4.2.3意义不明的关键字  38 4.2.4使用USING关键字  38 4.2.5使用组合键之难  39 4.3如何识别反模式  39 4.4合理使用反模式  40 4.5解决方案:裁剪设计  40 4.5.1直截了当地描述设计  40 4.5.2打破传统  41 4.5.3拥抱自然键和组合键  41 第5章不用钥匙的入口  43 5.1目标:简化数据库架构  43 5.2反模式:无视约束  44 5.2.1假设无瑕代码  44 5.2.2检查错误  45 5.2.3“那不是我的错!”  45 5.2.4进退维谷   46 5.3如何识别反模式  46 5.4合理使用反模式  47 5.5解决方案:声明约束  47 5.5.1支持同步修改  48 5.5.2系统开销过度?不见得  48 第6章实体—属性—值  50 6.1目标:支持可变的属性  50 6.2反模式:使用泛型属性表  51 6.2.1查询属性  53 6.2.2支持数据完整性  53 6.2.3无法声明强制属性  53 6.2.4无法使用SQL的数据类型  53 6.2.5无法确保引用完整性  54 6.2.6无法配置属性名  55 6.2.7重组列  55 6.3如何识别反模式  56 6.4合理使用反模式  56 6.5解决方案:模型化子类型  57 6.5.1单表继承  57 6.5.2实体表继承  58 6.5.3类表继承  60 6.5.4半结构化数据模型  61 6.5.5后处理  61 第7章多态关联  64 7.1目标:引用多个父表  65 7.2反模式:使用双用途外键  65 7.2.1定义多态关联  65 7.2.2使用多态关联进行查询  66 7.2.3非面向对象范例  67 7.3如何识别反模式  68 7.4合理使用反模式  69 7.5解决方案:让关系变得简单  69 7.5.1反向引用  69 7.5.2创建交叉表  69 7.5.3设立交通灯  70 7.5.4双向查找  71 7.5.5合并跑道  71 7.5.6创建共用的超级表  72 第8章多列属性  75 8.1目标:存储多值属性  75 8.2反模式:创建多个列  76 8.2.1查询数据  76 8.2.2添加及删除值  77 8.2.3确保唯一性  78 8.2.4处理不断增长的值集  78 8.3如何识别反模式  79 8.4合理使用反模式  79 8.5解决方案:创建从属表  80 第9章元数据分裂   82 9.1目标:支持可扩展性  83 9.2反模式:克隆表与克隆列  83 9.2.1不断产生的新表  84 9.2.2管理数据完整性  84 9.2.3同步数据  85 9.2.4确保唯一性  85 9.2.5跨表查询  86 9.2.6同步元数据  86 9.2.7管理引用完整性  86 9.2.8标识元数据分裂列  87 9.3如何识别反模式  87 9.4合理使用反模式  88 9.5解决方案:分区及标准化  89 9.5.1使用水平分区  89 9.5.2使用垂直分区  89 9.5.3解决元数据分裂列  91 第二部分物理数据库设计反模式 第10章取整错误  94 10.1目标:使用小数取代整数  94 10.2反模式:使用FLOAT类型  95 10.2.1舍入的必要性  95 10.2.2在SQL中使用FLOAT  96 10.3如何识别反模式  98 10.4合理使用反模式  98 10.5解决方案:使用NUMERIC类型  98 第11章每日新花样  100 11.1目标:限定列的有效值  100 11.2反模式:在列定义上指定可选值  101 11.2.1中间的是哪个  102 11.2.2添加新口味  103 11.2.3老的口味永不消失  103 11.2.4可移植性低下  103 11.3如何识别反模式  104 11.4合理使用反模式  104 11.5解决方案:在数据中指定值  104 11.5.1查询候选值集合  105 11.5.2更新检查表中的值  105 11.5.3支持废弃数据  105 11.5.4良好的可移植性  106 第12章幽灵文件  107 12.1目标:存储图片或其他多媒体大文件  107 12.2反模式:假设你必须使用文件系统  108 12.2.1文件不支持DELETE  109 12.2.2文件不支持事务隔离  109 12.2.3文件不支持回滚操作  109 12.2.4文件不支持数据库备份工具  110 12.2.5文件不支持SQL的访问权限设置  110 12.2.6文件不是SQL数据类型  110 12.3如何识别反模式  111 12.4合理使用反模式  111 12.5解决方案:在需要时使用BLOB类型  112 第13章乱用索引  114 13.1目标:优化性能  115 13.2反模式:无规划地使用索引  115 13.2.1无索引  115 13.2.2索引过多  116 13.2.3索引也无能为力  117 13.3如何识别反模式  118 13.4合理使用反模式  119 13.5解决方案:MENTOR你的索引  119 13.5.1测量  120 13.5.2解释  121 13.5.3挑选  122 13.5.4测试  123 13.5.5优化  123 13.5.6重建  123 第三部分查询反模式 第14章对未知的恐惧  126 14.1目标:辨别悬空值  127 14.2反模式:将NULL作为普通的值,反之亦然  127 14.2.1在表达式中使用NULL  127 14.2.2搜索允许为空的列  128 14.2.3在查询参数中使用NULL  128 14.2.4避免上述问题  128 14.3如何识别反模式  130 14.4合理使用反模式  130 14.5解决方案:将NULL视为特殊值  131 14.5.1在标量表达式中使用NULL  131 14.5.2在布尔表达式中使用NULL  132 14.5.3检索NULL值  132 14.5.4声明NOTNULL的列  133 14.5.5动态默认值  134 第15章模棱两可的分组  135 15.1目标:获取每组的最大值  135 15.2反模式:引用非分组列  136 15.2.1单值规则  136 15.2.2我想要的查询  137 15.3如何识别反模式  138 15.4合理使用反模式  139 15.5解决方案:无歧义地使用列  140 15.5.1只查询功能依赖的列  140 15.5.2使用关联子查询  140 15.5.3使用衍生表  140 15.5.4使用JOIN  141 15.5.5对额外的列使用聚合函数  142 15.5.6连接同组所有值  142 第16章随机选择  144 16.1目标:获取样本记录  144 16.2反模式:随机排序  145 16.3如何识别反模式  146 16.4合理使用反模式  146 16.5解决方案:没有具体的顺序  146 16.5.1从1到最大值之间随机选择  146 16.5.2选择下一个最大值  147 16.5.3获取所有的键值,随机选择一个  147 16.5.4使用偏移量选择随机行  148 16.5.5专有解决方案  149 第17章可怜人的搜索引擎  150 17.1目标:全文搜索  150 17.2反模式:模式匹配断言  151 17.3如何识别反模式  152 17.4合理使用反模式  152 17.5解决方案:使用正确的工具  152 17.5.1数据库扩展  153 17.5.2第三方搜索引擎  157 第18章意大利面条式查询  162 18.1目标:减少SQL查询数量  162 18.2反模式:使用一步操作解决复杂问题  163 18.2.1副作用  163 18.2.2那好像还不够????  164 18.3如何识别反模式  165 18.4合理使用反模式  165 18.5解决方案:分而治之  166 18.5.1一步一个脚印  166 18.5.2寻找UNION标记  167 18.5.3解决老板的问题  167 18.5.4使用SQL自动生成SQL  168 第19章隐式的列  170 19.1目标:减少输入  171 19.2反模式:捷径会让你迷失方向  171 19.2.1破坏代码重构  171 19.2.2隐藏的开销  172 19.2.3你请求,你获得  172 19.3如何识别反模式  173 19.4合理使用反模式  173 19.5解决方案:明确列出列名  174 19.5.1预防错误  174 19.5.2你不需要它  175 19.5.3无论如何你都需要放弃使用通配符  175 第四部分应用程序开发反模式 第20章明文密码   178 20.1目标:恢复或重置密码  178 20.2反模式:使用明文存储密码  179 20.2.1存储密码  179 20.2.2验证密码  180 20.2.3在E-mail中发送密码  180 20.3如何识别反模式  181 20.4合理使用反模式  181 20.5解决方案:先哈希,后存储  182 20.5.1理解哈希函数  182 20.5.2在SQL中使用哈希  183 20.5.3给哈希加料  183 20.5.4在SQL中隐藏密码  185 20.5.5重置密码,而非恢复密码  186 第21章SQL注入  188 21.1目标:编写SQL动态查询  189 21.2反模式:将未经验证的输入作为代码执行  189 21.2.1意外无处不在  190 21.2.2对Web安全的严重威胁  190 21.2.3寻找治愈良方  191 21.3如何识别反模式  195 21.4合理使用反模式  196 21.5解决方案:不信任任何人  196 21.5.1过滤输入内容  196 21.5.2参数化动态内容  197 21.5.3给动态输入的值加引号  197 21.5.4将用户与代码隔离  198 21.5.5找个可靠的人来帮你审查代码  200 第22章伪键洁癖  202 22.1目标:整理数据  202 22.2反模式:填充角落  203 22.2.1不按照顺序分配编号  203 22.2.2为现有行重新编号  204 22.2.3制造数据差异  204 22.3如何识别反模式  205 22.4合理使用反模式  205 22.5解决方案:克服心里障碍  205 22.5.1定义行号  205 22.5.2使用GUID  206 22.5.3最主要的问题  207 第23章非礼勿视  209 23.1目标:写更少的代码  210 23.2反模式:无米之炊  210 23.2.1没有诊断的诊断  210 23.2.2字里行间  211 23.3如何识别反模式  212 23.4合理使用反模式  213 23.5解决方案:优雅地从错误中恢复  213 23.5.1保持节奏  213 23.5.2回溯你的脚步  214 第24章外交豁免权  215 24.1目标:采用最佳实践  215 24.2反模式:将SQL视为二等公民  216 24.3如何识别反模式  216 24.4合理使用反模式  217 24.5解决方案:建立一个质量至上的文化  217 24.5.1陈列A:编写文档  218 24.5.2寻找证据:源代码版本控制  220 24.5.3举证:测试  222 24.5.4例证:同时处理多个分支  223 第25章魔豆  225 25.1目标:简化MVC的模型  226 25.2反模式:模型仅仅是活动记录  227 25.2.1活动记录模式连接程序模型和数据库结构  228 25.2.2活动记录模式暴露了CRUD系列函数  228 25.2.3活动记录模式支持弱域模型  229 25.2.4魔豆难以进行单元测试  231 25.3如何识别反模式  232 25.4合理使用反模式  232 25.5解决方案:模型包含活动记录  232 25.5.1领会模型的意义  233 25.5.2将领域模型应用到实际工作中  234 25.5.3测试简单对象  236 25.5.4回到地球  237 第五部分附录 附录A规范化规则  240 附录B参考书目  252

SQL反模式.pdf"网盘下载"

版权说明

1、本站不保存、不存储任何实质资源,以上二维码指向为网盘资源链接,其内容归对应版权方所有
2、如有侵犯版权的情况,请点击下面举报/反馈按钮反馈或发送邮件76556431@qq.com投诉说明情况
3、我们核实后将第一时间删除相关页面内容,谢谢理解和配合

这些人下载过 (12)
  • 对称唱戏
  • 男霸
  • 她成了我不可磨灭的伤
  • 梦五年
  • 王温柔
  • i生嘚承诺
  • 不值挽留
  • 不乱性
  • 今夜带你回家
  • 林间鹿
  • 江心雾
  • 无拖欠
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!