《DBA修炼之道 数据库管理员的第一本书 原书第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)CraigS.Mullins著;褚晓霞译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111473954
  • 页数:572 页
图书介绍:本书共24章,主要内容包括:第1~2章介绍了如何建立可用的企业数据库环境。第3~4章阐释如何制定合理的数据模型和数据库设计,并将其应用于企业生产中。第5~6章介绍应用创新的数据库功能,如时态数据和多级安全,以及部署运行良好并能保护数据完整性的应用程序。第7~8章介绍管理所有形式的数据库相关的变更和数据的可用性问题。第9~12章涉及系统优化性能和可用性的所有方面。第13~15章涉及部署现代数据安全程序和切实可行的数据管理策略。第16~17章介绍数据库备份/恢复和业务连续性规划。第18章介绍管理数据集和存储设备,适应数据的快速增长。第19章介绍数据库和分布数据的连接。第20~22章涉及数据仓库、数据集市和其他分析处理系统的管理。第23章介绍如何选用DBA工具,以节约时间和成本。第24章介绍DBA经验法则,帮助企业招聘顶级DBA人才,创建DBA职位描述。

第1章 什么是DBA 1

1.1 为什么学习数据库管理 2

1.2 独特的优势 3

1.2.1 DBA的薪资 3

1.2.2 数据库技术 5

1.3 DBA的管理准则 6

1.4 评估DBA的工作邀请 10

1.5 数据库管理、数据管理和系统管理 10

1.5.1 数据管理 10

1.5.2 数据库管理 13

1.5.3 系统管理 13

1.6 DBA的任务 14

1.6.1 数据库设计 14

1.6.2 性能监控和调优 15

1.6.3 保证可用性 16

1.6.4 数据库安全和授权 16

1.6.5 治理与合规性 17

1.6.6 备份和恢复 18

1.6.7 确保数据完整性 18

1.7 DBMS版本迁移 19

1.8 DBA的类型 21

1.8.1 系统DBA 21

1.8.2 数据库架构师 21

1.8.3 数据库分析师 22

1.8.4 数据建模师 22

1.8.5 应用程序DBA 22

1.8.6 面向任务的DBA 24

1.8.7 性能分析师 24

1.8.8 数据仓库管理员 24

1.9 人员配备的考虑 24

1.9.1 需要多少DBA 25

1.9.2 DBA报告结构 26

1.10 跨平台的DBA问题 28

1.11 生产环境与测试环境 29

1.12 新技术对DBA的影响 30

1.12.1 过程DBA:管理数据库逻辑 30

1.12.2 互联网:从DBA到eDBA 33

1.12.3 个人DBA与云计算 35

1.12.4 NoSQL、大数据和DBA 37

1.12.5 新技术对DBA的影响 37

1.13 DBA认证 38

1.14 本书的其余部分 39

1.15 回顾 39

第2章 创建数据库环境 40

2.1 定义企业的DBMS策略 40

2.1.1 DBMS选型 41

2.1.2 DBMS架构 45

2.1.3 DBMS集群 47

2.1.4 DBMS泛滥 48

2.1.5 硬件问题 49

2.1.6 云数据库系统 49

2.2 安装DBMS 50

2.2.1 DBMS安装基础 50

2.2.2 硬件需求 50

2.2.3 存储需求 51

2.2.4 内存需求 52

2.2.5 配置DBMS 53

2.2.6 连接DBMS与基础设施配套软件 54

2.2.7 安装验证 54

2.2.8 DBMS环境 55

2.3 升级DBMS的主版本和次版本 55

2.3.1 产品特性与复杂性 58

2.3.2 DBMS环境的复杂性 59

2.3.3 DBMS供应商的声誉 59

2.3.4 DBMS的支持条款 59

2.3.5 企业风格 60

2.3.6 DBA人员技能组合 60

2.3.7 平台支持 60

2.3.8 配套软件 61

2.3.9 回滚计划 61

2.3.10 迁移验证 62

2.3.11 DBMS升级策略 62

2.4 数据库标准与过程 62

2.4.1 数据库命名约定 62

2.4.2 其他数据库标准和过程 65

2.5 DBMS教育 69

2.6 小结 70

2.7 回顾 70

2.8 推荐书目 71

第3章 数据建模与规范化 72

3.1 数据建模的概念 73

3.2 数据模型的组件 77

3.2.1 实体 77

3.2.2 属性 78

3.2.3 码 82

3.2.4 关联 82

3.3 发现实体、属性和关联 84

3.4 概念、逻辑和物理数据模型 85

3.5 什么是规范化 87

3.6 范式 87

3.6.1 第一范式 87

3.6.2 第二范式 89

3.6.3 第三范式 90

3.6.4 一个规范化的数据模型 91

3.6.5 进一步的范式 91

3.7 规范化实践 92

3.8 其他数据建模问题 92

3.9 小结 93

3.10 回顾 93

3.11 推荐书目 94

第4章 数据库设计 96

4.1 从逻辑模型到物理数据库 96

4.1.1 实体转换成表 97

4.1.2 属性转换成列 97

4.1.3 为所有关联建立引用约束 100

4.1.4 建立物理数据结构 100

4.2 数据库性能设计 102

4.2.1 索引设计 102

4.2.2 散列 107

4.2.3 集群 108

4.2.4 交叉数据 109

4.3 非规范化 109

4.3.1 何时进行非规范化 109

4.3.2 预连接表 111

4.3.3 报告表 111

4.3.4 镜像表 112

4.3.5 拆分表 112

4.3.6 组合表 114

4.3.7 冗余数据 114

4.3.8 重复组 114

4.3.9 可导性数据 115

4.3.10 层次结构 116

4.3.11 特殊物理实施需求 117

4.3.12 非规范化小结 117

4.4 视图 118

4.5 数据定义语言 119

4.6 时态数据支持 120

4.6.1 时态的例子 120

4.6.2 业务时间和系统时间 120

4.7 小结 121

4.8 回顾 122

4.9 推荐书目 123

第5章 应用程序设计 124

5.1 数据库应用程序开发和SQL 124

5.1.1 SQL 125

5.1.2 Set-at-a-Time处理和关系闭包 127

5.1.3 在程序中嵌入SQL语句 128

5.1.4 SQL中间件和API 129

5.1.5 应用程序基础架构 130

5.1.6 面向对象与SQL 134

5.1.7 SQL类型 135

5.1.8 SQL性能编码 136

5.1.9 查询XML数据 137

5.2 定义事务 138

5.2.1 事务指南 139

5.2.2 工作单元 140

5.2.3 事务处理系统 140

5.2.4 应用程序服务器 141

5.3 锁 142

5.3.1 锁的类型 143

5.3.2 锁超时 144

5.3.3 死锁 144

5.3.4 锁定持续时间 145

5.3.5 锁升级 148

5.3.6 最小化锁定问题的编程技术 148

5.3.7 锁定小结 149

5.4 批处理 149

5.5 小结 150

5.6 回顾 150

5.7 推荐书目 151

第6章 设计审查 153

6.1 什么是设计审查 153

6.1.1 交战规则 154

6.1.2 设计审查的参与者 154

6.1.3 所需的知识与技能 156

6.2 设计审查的类型 157

6.2.1 概念设计审查 158

6.2.2 逻辑设计审查 158

6.2.3 物理设计审查 159

6.2.4 组织设计审查 159

6.2.5 SQL与应用程序代码设计审查 160

6.2.6 部署前的设计审查 160

6.2.7 部署后的设计审查 161

6.3 设计审查输出 161

6.4 其他注意事项 161

6.4.1 应对远程工作人员 162

6.4.2 制度和知识迁移 162

6.5 小结 162

6.6 回顾 162

6.7 推荐书目 163

第7章 数据库变更管理 164

7.1 变更管理要求 165

7.2 变更的类型 167

7.2.1 DBMS软件 167

7.2.2 硬件配置 167

7.2.3 逻辑和物理设计 167

7.2.4 应用程序 168

7.2.5 物理数据库结构 168

7.3 数据库结构变更的影响 169

7.3.1 ALTER的限制 170

7.3.2 数据库变更业务场景 171

7.3.3 比较数据库结构 173

7.3.4 请求数据库变更 174

7.3.5 标准化的变更请求 174

7.3.6 沟通 175

7.3.7 协调数据库和应用程序变更 175

7.3.8 合规性 176

7.3.9 DBA脚本和变更管理 176

7.4 小结 177

7.5 回顾 177

7.6 推荐书目 177

第8章 数据可用性 178

8.1 定义可用性 179

8.2 停机成本 182

8.3 可用性问题 184

8.3.1 数据中心的丢失 184

8.3.2 网络问题 185

8.3.3 服务器硬件的丢失 185

8.3.4 磁盘相关的中断 187

8.3.5 操作系统故障 187

8.3.6 DBMS软件故障 188

8.3.7 应用程序问题 188

8.3.8 安全和授权问题 188

8.3.9 数据损坏 189

8.3.10 数据库对象丢失 189

8.3.11 数据丢失 190

8.3.12 数据复制和传播故障 190

8.3.13 严重的性能问题 191

8.3.14 恢复问题 191

8.3.15 DBA错误 191

8.3.16 计划内和计划外中断 193

8.4 确保可用性 193

8.4.1 系统正常运行时执行日常维护 194

8.4.2 自动化DBA任务 195

8.4.3 利用高可用性功能 196

8.4.4 利用集群技术 196

8.4.5 数据库架构和NoSQL 199

8.5 小结 200

8.6 回顾 200

8.7 推荐书目 201

第9章 性能管理 202

9.1 性能定义 202

9.2 监测与管理 205

9.2.1 被动与主动 206

9.2.2 生产前的性能评估 207

9.2.3 历史趋势 208

9.3 服务级别管理 208

9.4 性能调优的类型 210

9.4.1 系统调优 210

9.4.2 数据库调优 210

9.4.3 应用程序调优 211

9.5 性能调优工具 211

9.6 DBMS的性能基础 212

9.7 小结 213

9.8 回顾 213

9.9 推荐书目 214

第10章 系统性能 215

10.1 大环境 215

10.1.1 与操作系统交互 216

10.1.2 联合代理 216

10.1.3 硬件配置 217

10.1.4 DBMS组件 218

10.2 DBMS安装和配置问题 220

10.2.1 配置类型 221

10.2.2 内存使用 221

10.2.3 数据高速缓存 224

10.2.4 “开放的”数据对象 227

10.2.5 数据库日志 227

10.2.6 锁定与争用 231

10.2.7 系统目录 231

10.2.8 其他配置选项 232

10.2.9 一般性建议 233

10.3 系统监测 233

10.4 小结 234

10.5 回顾 234

10.6 推荐书目 235

第11章 数据库性能 236

11.1 优化数据库的技术 236

11.1.1 分区 237

11.1.2 原始分区与文件系统 237

11.1.3 索引 238

11.1.4 非规范化 240

11.1.5 集群 241

11.1.6 交叉数据 243

11.1.7 可用空间 243

11.1.8 压缩 244

11.1.9 文件放置与分配 245

11.1.10 页面大小(块大小) 246

11.2 数据库重组 247

11.2.1 决定何时进行重组 250

11.2.2 自动化 251

11.3 小结 251

11.4 回顾 251

11.5 推荐书目 252

第12章 应用程序性能 253

12.1 设计关系访问的应用程序 253

12.2 关系优化 254

12.2.1 CPU和I/O成本 255

12.2.2 数据库统计信息 255

12.2.3 查询分析 257

12.2.4 连接 257

12.2.5 访问路径选择 259

12.3 其他优化考虑 266

12.3.1 视图访问 266

12.3.2 查询重写 267

12.3.3 基于规则的优化 267

12.4 访问路径的审查 268

12.5 SQL的编码和调优效率 272

12.5.1 SQL经验法则一箩筐 272

12.5.2 其他SQL调优技巧 277

12.5.3 识别性能低下的SQL 277

12.6 小结 278

12.7 回顾 278

12.8 推荐书目 278

第13章 数据完整性 280

13.1 完整性的类型 280

13.2 数据库结构完整性 281

13.2.1 结构性问题的类型 281

13.2.2 管理结构性问题 281

13.3 语义数据的完整性 284

13.3.1 实体完整性 285

13.3.2 唯一约束 286

13.3.3 数据类型 286

13.3.4 默认值 287

13.3.5 检查约束 287

13.3.6 触发器 292

13.3.7 参照完整性 296

13.4 时态数据库系统 304

13.5 小结 305

13.6 回顾 306

13.7 推荐书目 306

第14章 数据库安全 308

14.1 数据泄露 308

14.2 数据库安全基础 309

14.3 授予和撤销授权 313

14.3.1 权限类型 313

14.3.2 授予PUBLIC 315

14.3.3 撤销权限 316

14.3.4 基于标签的访问控制 317

14.3.5 安全报告 319

14.4 授权角色和组 319

14.4.1 角色 319

14.4.2 组 320

14.5 其他数据库安全机制 321

14.5.1 安全使用视图 321

14.5.2 安全使用存储过程 322

14.6 加密 322

14.6.1 静态数据加密 323

14.6.2 传输过程的数据加密 324

14.6.3 加密技术 324

14.7 SQL注入攻击 325

14.8 审计 327

14.9 外部安全 328

14.9.1 作业调度和安全 329

14.9.2 非DBMS的DBA安全 329

14.10 DBMS补丁包和维护 330

14.11 小结 330

14.12 回顾 330

14.13 推荐书目 331

第15章 合规性和数据库管理 332

15.1 实现合规性的协作方法 334

15.2 元数据管理、数据质量和数据治理 335

15.2.1 元数据 335

15.2.2 数据质量 336

15.2.3 数据治理 336

15.3 数据库审计和数据访问跟踪 336

15.3.1 数据库审计技术 338

15.3.2 特权用户审计 340

15.4 数据屏蔽和模糊 341

15.5 用于长期数据保留的数据库归档 342

15.5.1 数据的生命周期 342

15.5.2 数据库归档 343

15.5.3 数据库归档解决方案的构成 346

15.5.4 e-Discovery对DBA的影响 347

15.6 密切跟踪传统的DBA任务 348

15.6.1 数据库变更管理 348

15.6.2 数据库备份和恢复 349

15.7 小结 350

15.8 回顾 351

15.9 推荐书目 351

第16章 数据库备份和恢复 353

16.1 备份和恢复的重要性 353

16.2 问题的准备工作 354

16.3 备份 354

16.3.1 完整备份与增量备份 357

16.3.2 数据库对象和备份 358

16.3.3 DBMS控制 359

16.3.4 并发访问问题 360

16.3.5 备份的一致性 361

16.3.6 日志归档和备份 362

16.3.7 确定备份计划 363

16.3.8 DBMS实例备份 365

16.3.9 设计恢复的DBMS环境 365

16.3.10 数据库备份的替代途径 365

16.3.11 记录备份策略 367

16.3.12 数据库对象定义备份 367

16.4 恢复 368

16.4.1 确定恢复选项 368

16.4.2 数据库对象恢复的一般步骤 370

16.4.3 恢复的类型 371

16.4.4 索引恢复 377

16.4.5 测试恢复计划 377

16.4.6 恢复删除的数据库对象 378

16.4.7 恢复损坏的块和页面 379

16.4.8 填充测试数据库 379

16.5 替代性备份和恢复 379

16.5.1 备用数据库 380

16.5.2 复制 380

16.5.3 磁盘镜像 381

16.6 小结 381

16.7 回顾 381

16.8 推荐书目 382

第17章 防灾规划 383

17.1 计划的必要性 383

17.2 一般灾难恢复指南 386

17.2.1 远程站点 386

17.2.2 书面计划 386

17.2.3 人员 389

17.3 为灾难恢复备份数据库 389

17.3.1 磁带备份 390

17.3.2 存储管理备份 391

17.3.3 其他方法 392

17.3.4 一些指导 392

17.4 灾难防治 393

17.5 小结 394

17.6 回顾 394

17.7 推荐书目 395

第18章 数据和存储管理 396

18.1 存储管理基础 396

18.2 文件和数据集 399

18.2.1 磁盘上的文件放置 399

18.2.2 原始分区和文件系统 401

18.2.3 临时数据库文件 401

18.3 空间管理 401

18.3.1 数据页面布局 402

18.3.2 索引页面布局 404

18.3.3 事务日志 406

18.4 碎片和存储 407

18.5 存储选项 407

18.5.1 RAID 408

18.5.2 JBOD 414

18.5.3 存储区域网络 414

18.5.4 网络附加存储 414

18.5.5 分层存储 415

18.6 规划未来 416

18.7 小结 417

18.8 回顾 417

18.9 推荐书目 418

第19章 数据移动与分布 419

19.1 装卸数据 419

19.1.1 LOAD实用程序 420

19.1.2 UNLOAD实用程序 422

19.1.3 维护应用程序测试台 425

19.2 导出与导入 426

19.3 批量数据移动 426

19.3.1 ETL软件 426

19.3.2 复制和传播 427

19.3.3 消息软件 427

19.3.4 其他方法 428

19.4 分布式数据库 428

19.4.1 建立分布式环境 430

19.4.2 数据分布的标准 431

19.4.3 访问分布式数据 432

19.4.4 两阶段COMMIT 433

19.4.5 分布式性能问题 433

19.5 小结 434

19.6 回顾 434

19.7 推荐书目 435

第20章 数据仓库管理 436

20.1 什么是数据仓库 436

20.2 管理数据仓库 438

20.2.1 太专注于技术 439

20.2.2 数据仓库设计 439

20.2.3 数据移动 441

20.2.4 数据清理 441

20.2.5 数据仓库的可扩展性 444

20.2.6 数据仓库的性能 444

20.2.7 数据新鲜度 447

20.2.8 数据内容 447

20.2.9 数据使用 448

20.2.10 财务退款 448

20.2.11 备份与恢复 449

20.2.12 不要凭空操作 449

20.3 小结 450

20.4 回顾 450

20.5 推荐书目 450

第21章 数据库连接 452

21.1 多层、分布式计算 452

21.1.1 回顾历史 452

21.1.2 业务问题 453

21.1.3 C/S计算简介 453

21.1.4 C/S应用程序的类型 456

21.2 网络流量 459

21.2.1 数据库网关 459

21.2.2 数据库驱动程序 460

21.2.3 连接池 461

21.3 数据库、互联网和Web 461

21.3.1 接入互联网的数据库 462

21.3.2 Web开发和Web服务 465

21.4 小结 466

21.5 回顾 466

21.6 推荐书目 467

第22章 元数据管理 469

22.1 元数据简介 469

22.1.1 从数据到知识,再到更多 470

22.1.2 元数据策略 471

22.1.3 数据仓库和元数据 471

22.2 元数据的类型 471

22.3 资源库和数据字典 473

22.3.1 资源库的好处 474

22.3.2 资源库的挑战 475

22.3.3 数据字典 476

22.4 小结 476

22.5 回顾 477

22.6 推荐书目 477

第23章 DBA工具 479

23.1 DBA工具的类型和好处 479

23.1.1 数据建模和设计 479

23.1.2 数据库变更管理 480

23.1.3 表编辑器 484

23.1.4 性能管理 485

23.1.5 备份与恢复 489

23.1.6 数据库实用程序 490

23.1.7 数据保护、治理、风险和合规性工具 491

23.1.8 数据仓库、分析和商业智能 494

23.1.9 编程和开发工具 496

23.1.10 杂项工具 497

23.2 研究原生DBA工具 499

23.3 评估DBA工具供应商 500

23.4 小结 502

23.5 回顾 503

第24章 DBA的经验法则 504

24.1 记录每一件事 504

24.2 一切都井然有序 504

24.3 自动化 505

24.4 知识共享 507

24.5 分析、简化和专注 508

24.6 不要惊慌 509

24.7 测量两次,切割一次 509

24.8 了解业务,不只是技术 510

24.9 不要成为隐士 511

24.10 任意使用所有的资源 511

24.11 不断更新 512

24.12 投资自己 512

24.13 小结 513

24.14 最后的检验 513

附录A 数据库基本原理 516

附录B DBMS供应商 521

附录C DBA工具供应商 526

附录D DBA的网络资源 531

附录E DBA公开招聘样本 538

参考书目 542

术语表 563