图书介绍
SQL反模式【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (美)卡尔文著 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115261274
- 出版时间:2011
- 标注页数:254页
- 文件大小:59MB
- 文件页数:266页
- 主题词:
PDF下载
下载说明
SQL反模式PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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
第一部分 逻辑型数据库设计反模式10
第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验证产品ID13
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验证产品ID16
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章 需要ID34
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
第二部分 物理数据库设计反模式94
第10章 取整错误94
10.1 目标:使用小数取代整数94
10.2反模式:使用FLOAT类型95
10.2.1舍入的必要性95
10.2.2在SQL中使用FLOAT96
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文件不支持DELETE109
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
第三部分 查询反模式126
第14章 对未知的恐惧126
14.1 目标:辨别悬空值127
14.2反模式:将NULL作为普通的值,反之亦然127
14.2.1在表达式中使用NULL127
14.2.2搜索允许为空的列128
14.2.3在查询参数中使用NULL128
14.2.4避免上述问题128
14.3如何识别反模式130
14.4合理使用反模式130
14.5解决方案:将NULL视为特殊值131
14.5.1在标量表达式中使用NULL131
14.5.2在布尔表达式中使用NULL132
14.5.3检索NULL值132
14.5.4声明NOT NULL的列133
14.5.5动态默认值134
第15章 模棱两可的分组135
15.1 目i标:获取每组的最大值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使用J0IN141
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自动生成SQL168
第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
第四部分 应用程序开发反模式178
第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使用GUID206
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寻找证据:源代码版本控制20
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
第五部分 附录240
附录A规范化规则240
附录B参考书目252
热门推荐
- 2720137.html
- 3019471.html
- 1675648.html
- 1902484.html
- 2964948.html
- 1632932.html
- 38175.html
- 565142.html
- 49365.html
- 1763867.html
- http://www.ickdjs.cc/book_437209.html
- http://www.ickdjs.cc/book_3817377.html
- http://www.ickdjs.cc/book_2963728.html
- http://www.ickdjs.cc/book_2758729.html
- http://www.ickdjs.cc/book_432713.html
- http://www.ickdjs.cc/book_3115938.html
- http://www.ickdjs.cc/book_1175730.html
- http://www.ickdjs.cc/book_1385720.html
- http://www.ickdjs.cc/book_3556633.html
- http://www.ickdjs.cc/book_3840390.html