• SQL反模式
  • SQL反模式
  • SQL反模式
  • SQL反模式
21年品牌 40万+商家 超1.5亿件商品

SQL反模式

50 8.5折 59 九五品

仅1件

陕西西安
认证卖家担保交易快速发货售后保障

作者Bill Karwin 著;谭振林 译

出版社人民邮电出版社

出版时间2011-09

版次01

装帧平装

货号6-4

上书时间2024-05-19

文博苑汇

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
图书标准信息
  • 作者 Bill Karwin 著;谭振林 译
  • 出版社 人民邮电出版社
  • 出版时间 2011-09
  • 版次 01
  • ISBN 9787115261274
  • 定价 59.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 254页
  • 字数 355千字
  • 正文语种 简体中文
  • 原版书名 SQL Antipatterns: Avoiding the Pitfalls of Database Programming
  • 丛书 图灵程序设计丛书
【内容简介】
《图灵程序设计丛书:SQL反模式》是一本广受好评的SQL图书。它介绍了如何避免在SQL的使用和开发中陷入一些常见却经常被忽略的误区。它通过讲述各种具体的案例,以及开发人员和使用人员在面对这些案例时经常采用的错误解决方案,来介绍如何识别、利用这些陷阱,以及面对问题时正确的解决手段。另外,《图灵程序设计丛书:SQL反模式》还涉及了SQL的各级范式和针对它们的正确理解。
【作者简介】
  Bill Karwin作为软件工程师、咨询师和管理者,他在20年间开发并支持了各种各样的应用、程序库以及服务器,如PHP5的Zend Framework, Interbase关系型数据库,以及EnhydraJava应用服务器等。他一直无私地分享他的专业知识,来帮助其他程序员提高效率、获得成功。他曾以各种方式回答了上千个关于SQL的疑问,其中不乏一些严重但又经常被忽略的问题。
【目录】
第1章引言
1.1谁需要这本书
1.2本书内容
1.2.1本书结构
1.2.2反模式分解
1.3本书未涉及的内容
1.4规约
1.5范例数据库
1.6致谢

第一部分逻辑型数据库设计反模式
第2章乱穿马路
2.1目标:存储多值属性
2.2反模式:格式化的逗号分隔列表
2.2.1查询指定账号的产品
2.2.2查询指定产品的账号
2.2.3执行聚合查询
2.2.4更新指定产品的账号
2.2.5验证产品ID
2.2.6选择合适的分隔符
2.2.7列表长度限制
2.3如何识别反模式
2.4合理使用反模式
2.5解决方案:创建一张交叉表
2.5.1通过账号查询产品和反过来查询
2.5.2执行聚合查询
2.5.3更新指定产品的相关联系人
2.5.4验证产品ID
2.5.5选择分隔符
2.5.6列表长度限制
2.5.7其他使用交叉表的好处

第3章单纯的树
3.1目标:分层存储与查询
3.2反模式:总是依赖父节点
3.2.1使用邻接表查询树
3.2.2使用邻接表维护树
3.3如何识别反模式
3.4合理使用反模式
3.5解决方案:使用其他树模型
3.5.1路径枚举
3.5.2嵌套集
3.5.3闭包表
3.5.4你该使用哪种设计

第4章需要ID
4.1目标:建立主键规范
4.2反模式:以不变应万变
4.2.1冗余键值
4.2.2允许重复项
4.2.3意义不明的关键字
4.2.4使用USING关键字
4.2.5使用组合键之难
4.3如何识别反模式
4.4合理使用反模式
4.5解决方案:裁剪设计
4.5.1直截了当地描述设计
4.5.2打破传统
4.5.3拥抱自然键和组合键

第5章不用钥匙的入口
5.1目标:简化数据库架构
5.2反模式:无视约束
5.2.1假设无瑕代码
5.2.2检查错误
5.2.3“那不是我的错!”
5.2.4进退维谷
5.3如何识别反模式
5.4合理使用反模式
5.5解决方案:声明约束
5.5.1支持同步修改
5.5.2系统开销过度?不见得

第6章实体-属性-值
6.1目标:支持可变的属性
6.2反模式:使用泛型属性表
6.2.1查询属性
6.2.2支持数据完整性
6.2.3无法声明强制属性
6.2.4无法使用SQL的数据类型
6.2.5无法确保引用完整性
6.2.6无法配置属性名
6.2.7重组列
6.3如何识别反模式
6.4合理使用反模式
6.5解决方案:模型化子类型
6.5.1单表继承
6.5.2实体表继承
6.5.3类表继承
6.5.4半结构化数据模型
6.5.5后处理

第7章多态关联
7.1目标:引用多个父表
7.2反模式:使用双用途外键
7.2.1定义多态关联
7.2.2使用多态关联进行查询
7.2.3非面向对象范例
7.3如何识别反模式
7.4合理使用反模式
7.5解决方案:让关系变得简单
7.5.1反向引用
7.5.2创建交叉表
7.5.3设立交通灯
7.5.4双向查找
7.5.5合并跑道
7.5.6创建共用的超级表

第8章多列属性
8.1目标:存储多值属性
8.2反模式:创建多个列
8.2.1查询数据
8.2.2添加及删除值
8.2.3确保唯一性
8.2.4处理不断增长的值集
8.3如何识别反模式
8.4合理使用反模式
8.5解决方案:创建从属表

第9章元数据分裂
9.1目标:支持可扩展性
9.2反模式:克隆表与克隆列
9.2.1不断产生的新表
9.2.2管理数据完整性
9.2.3同步数据
9.2.4确保唯一性
9.2.5跨表查询
9.2.6同步元数据
9.2.7管理引用完整性
9.2.8标识元数据分裂列
9.3如何识别反模式
9.4合理使用反模式
9.5解决方案:分区及标准化
9.5.1使用水平分区
9.5.2使用垂直分区
9.5.3解决元数据分裂列

第二部分物理数据库设计反模式
第10章取整错误
10.1目标:使用小数取代整数
10.2反模式:使用FLOAT类型
10.2.1舍入的必要性
10.2.2在SQL中使用FLOAT
10.3如何识别反模式
10.4合理使用反模式
10.5解决方案:使用NUMERIC类型

第11章每日新花样
11.1目标:限定列的有效值
11.2反模式:在列定义上指定可选值
11.2.1中间的是哪个
11.2.2添加新口味
11.2.3老的口味永不消失
11.2.4可移植性低下
11.3如何识别反模式
11.4合理使用反模式
11.5解决方案:在数据中指定值
11.5.1查询候选值集合
11.5.2更新检查表中的值
11.5.3支持废弃数据
11.5.4良好的可移植性

第12章幽灵文件
12.1目标:存储图片或其他多媒体大文件
12.2反模式:假设你必须使用文件系统
12.2.1文件不支持DELETE
12.2.2文件不支持事务隔离
12.2.3文件不支持回滚操作
12.2.4文件不支持数据库备份工具
12.2.5文件不支持SQL的访问权限设置
12.2.6文件不是SQL数据类型
12.3如何识别反模式
12.4合理使用反模式
12.5解决方案:在需要时使用BLOB类型

第13章乱用索引
13.1目标:优化性能
13.2反模式:无规划地使用索引
13.2.1无索引
13.2.2索引过多
13.2.3索引也无能为力
13.3如何识别反模式
13.4合理使用反模式
13.5解决方案:MENTOR你的索引
13.5.1测量
13.5.2解释
13.5.3挑选
13.5.4测试
13.5.5优化
13.5.6重建

第三部分查询反模式
第14章对未知的恐惧
14.1目标:辨别悬空值
14.2反模式:将NULL作为普通的值,反之亦然
14.2.1在表达式中使用NULL
14.2.2搜索允许为空的列
14.2.3在查询参数中使用NULL
14.2.4避免上述问题
14.3如何识别反模式
14.4合理使用反模式
14.5解决方案:将NULL视为特殊值
14.5.1在标量表达式中使用NULL
14.5.2在布尔表达式中使用NULL
14.5.3检索NULL值
14.5.4声明NOTNULL的列
14.5.5动态默认值

第15章模棱两可的分组
15.1目标:获取每组的最大值
15.2反模式:引用非分组列
15.2.1单值规则
15.2.2我想要的查询
15.3如何识别反模式
15.4合理使用反模式
15.5解决方案:无歧义地使用列
15.5.1只查询功能依赖的列
15.5.2使用关联子查询
15.5.3使用衍生表
15.5.4使用JOIN
15.5.5对额外的列使用聚合函数
15.5.6连接同组所有值

第16章随机选择
16.1目标:获取样本记录
16.2反模式:随机排序
16.3如何识别反模式
16.4合理使用反模式
16.5解决方案:没有具体的顺序
16.5.1从1到最大值之间随机选择
16.5.2选择下一个最大值
16.5.3获取所有的键值,随机选择一个
16.5.4使用偏移量选择随机行
16.5.5专有解决方案

第17章可怜人的搜索引擎
17.1目标:全文搜索
17.2反模式:模式匹配断言
17.3如何识别反模式
17.4合理使用反模式
17.5解决方案:使用正确的工具
17.5.1数据库扩展
17.5.2第三方搜索引擎

第18章意大利面条式查询
18.1目标:减少SQL查询数量
18.2反模式:使用一步操作解决复杂问题
18.2.1副作用
18.2.2那好像还不够……
18.3如何识别反模式
18.4合理使用反模式
18.5解决方案:分而治之
18.5.1一步一个脚印
18.5.2寻找UNION标记
18.5.3解决老板的问题
18.5.4使用SQL自动生成SQL

第19章隐式的列
19.1目标:减少输入
19.2反模式:捷径会让你迷失方向
19.2.1破坏代码重构
19.2.2隐藏的开销
19.2.3你请求,你获得
19.3如何识别反模式
19.4合理使用反模式
19.5解决方案:明确列出列名
19.5.1预防错误
19.5.2你不需要它
19.5.3无论如何你都需要放弃使用通配符

第四部分应用程序开发反模式
第20章明文密码
20.1目标:恢复或重置密码
20.2反模式:使用明文存储密码
20.2.1存储密码
20.2.2验证密码
20.2.3在E-mail中发送密码
20.3如何识别反模式
20.4合理使用反模式
20.5解决方案:先哈希,后存储
20.5.1理解哈希函数
20.5.2在SQL中使用哈希
20.5.3给哈希加料
20.5.4在SQL中隐藏密码
20.5.5重置密码,而非恢复密码

第21章SQL注入
21.1目标:编写SQL动态查询
21.2反模式:将未经验证的输入作为代码执行
21.2.1意外无处不在
21.2.2对Web安全的严重威胁
21.2.3寻找治愈良方
21.3如何识别反模式
21.4合理使用反模式
21.5解决方案:不信任任何人
21.5.1过滤输入内容
21.5.2参数化动态内容
21.5.3给动态输入的值加引号
21.5.4将用户与代码隔离
21.5.5找个可靠的人来帮你审查代码

第22章伪键洁癖
22.1目标:整理数据
22.2反模式:填充角落
22.2.1不按照顺序分配编号
22.2.2为现有行重新编号
22.2.3制造数据差异
22.3如何识别反模式
22.4合理使用反模式
22.5解决方案:克服心里障碍
22.5.1定义行号
22.5.2使用GUID
22.5.3最主要的问题

第23章非礼勿视
23.1目标:写更少的代码
23.2反模式:无米之炊
23.2.1没有诊断的诊断
23.2.2字里行间
23.3如何识别反模式
23.4合理使用反模式
23.5解决方案:优雅地从错误中恢复
23.5.1保持节奏
23.5.2回溯你的脚步

第24章外交豁免权
24.1目标:采用最佳实践
24.2反模式:将SQL视为二等公民
24.3如何识别反模式
24.4合理使用反模式
24.5解决方案:建立一个质量至上的文化
24.5.1陈列A:编写文档
24.5.2寻找证据:源代码版本控制
24.5.3举证:测试
24.5.4例证:同时处理多个分支

第25章魔豆
25.1目标:简化MVC的模型
25.2反模式:模型仅仅是活动记录
25.2.1活动记录模式连接程序模型和数据库结构
25.2.2活动记录模式暴露了CRUD系列函数
25.2.3活动记录模式支持弱域模型
25.2.4魔豆难以进行单元测试
25.3如何识别反模式
25.4合理使用反模式
25.5解决方案:模型包含活动记录
25.5.1领会模型的意义
25.5.2将领域模型应用到实际工作中
25.5.3测试简单对象
25.5.4回到地球
第五部分附录
附录A规范化规则
附录B参考书目
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP