| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
译者序
Jon Kern序
Douglas K.Barry序
致谢
前言
第一部分 基础背景
第1章 敏捷数据方法
1.1 缘何当前难以相互合作
1.2 发现问题
1.3 敏捷运动
1.3.1 敏捷软件开发宣言
1.3.2 敏捷软件开发原则
1.4 敏捷数据的基本原理
1.5 敏捷数据概述
1.5.1 敏捷DBA
1.5.2 应用程序开发者
1.5.3 企业管理员
1.5.4 企业架构设计师
1.6 敏捷软件开发者
1.7 敏捷数据能解决我们的问题吗
1.8 总结
第2章 从用例到数据库——现实世界的UML
2.1 面向对象概念简述
2.2 UML介绍
2.2.1 核心UML图
2.2.2 辅助UML图
2.3 数据建模的UML档案
2.3.1 标识模型或存储机制的类型
2.3.2 建模表、实体和视图
2.3.3 建模关系
2.3.4 建模数据属性和列
2.3.5 建模键
2.3.6 建模约束和触发器
2.3.7 建模存储过程
2.3.8 建模数据库内的段
2.3.9 建模其他概念
2.4 总结
第3章 数据建模基础
3.1 敏捷DBA的角色
3.2 什么是数据建模
3.2.1 如何实际运用数据模型
3.2.2 基本标记:如何阅读数据模型
3.3 如何建模数据
3.3.1 识别数据实体
3.3.2 识别属性
3.3.3 应用数据命名规范
3.3.4 识别关系
3.3.5 应用数据建模模式
3.3.6 分配键
3.4 如何更好地先进行数据建模
3.5 总结
第4章 数据规范化
4.1 为什么需要数据规范化
4.2 敏捷DBA的角色
4.3 数据规范化的准则
4.3.1 第一范式(1NF)
4.3.2 第二范式(2NF)
4.3.3 第三范式(3NF)
4.3.4 超越3NF
4.4 总结
第5章 类规范化
5.1 如何将类规范化和基他面向对象的设计实践联系起来
5.2 敏捷DBA的角色
5.3 类规范化的准则
5.3.1 第一对象范式(1ONF)
5.3.2 第二对象范式(2ONF)
5.3.3 第三对象范式(3ONF)
5.3.4 超越3ONF
5.4 总结
第6章 关系数据库技术,无论你喜欢与否
6.1 关系数据库技术
6.1.1 关系数据库的简明特性
6.1.2 关系数据库的高级特性
6.2 耦合:你最大的敌人
6.3 关系数据库的额外挑战
6.4 封装:你最好的盟友
6.5 超越关系数据库:根据实际情况做出选择
6.6 总结
第7章 对象-关系的阻抗失配
7.1 敏捷DBA的角色
7.2 技术上的阻抗失配
7.2.1 虚假的相似性
7.2.2 微妙的差异性
7.3 文化上的阻抗失配
7.4 总结
第8章 遗留数据库——所有你需要了解却害怕应付的事物
8.1 敏捷DBA角色
8.2 遗留数据源
8.3 理解与遗留数据相关的常见问题
8.3.1 数据质量挑战
8.3.2 数据库设计问题
8.3.3 数据架构问题
8.3.4 过程错误
8.4 使用遗留数据的策略
8.4.1 尽量避免使用遗留数据
8.4.2 开发一种数据错误处理策略
8.4.3 迭代和增量式地工作
8.4.4 优先考虑只读的遗留数据访问
8.4.5 封装遗留数据访问
8.4.6 为简单的遗留访问引入数据适配器
8.4.7 为复杂的数据访问引入中间数据库
8.4.8 采用现有的工具
8.5 数据集成技术
8.6 总结
第二部分
第9章 革命万岁
9.1 方法灵活性的需要
9.2 谨防面向数据的BDUF
9.3 针对项目的渐进式开发
9.4 事物的“自然顺序”和渐进式开发
9.5 总结
第10章 敏捷模型驱动开发
10.1敏捷DBA的角色
10.2 什么是敏捷建模
10.2.1 AM价值观
10.2.2 AM原则
10.2.3 敏捷建模实践
10.3 什么时候模型才算敏捷
10.4 什么是敏捷模型驱动开发
10.5 敏捷文档
10.6 总结
第11章 测试驱动开发
11.1 TDD如何工作的
11.2 TDD的步骤
11.3 TDD与传统测试
11.4 TDD与文档
11.5 测试驱动的数据库开发
11.6 TDD与AMDD
11.7 总结
第12章 数据库重构
12.1 重构
12.2 数据库重构
12.2.1 保持语义
12.2.2 什么不是数据库重构
12.2.3 数据库重构类别
12.3 为什么数据库难以重构
12.4 如何重构数据库
12.4.1 步骤1:在开发沙箱中开始
12.4.2 步骤2:在集成沙箱中实现代码
12.4.3 步骤3:实地安装代码
12.5 常见的数据库重构味道
12.6 在你的组织机构内采用数据库重构
12.7 数据库重构最佳实践
12.8 现实中的数据库重构
12.9 总结
第13章 数据库封装策略
13.1 数据库封装层
13.2 敏捷DBA的角色
13.3 封装层的架构
13.4 封装层的实现策略
13.4.1 蛮力方式(并非一种封装策略)
13.4.2 数据访问对象
13.4.3 持久化框架
13.4.4 服务
13.4.5 每种策各的适用场合
13.4.6 策略间的转化
13.5 整编和数据验证
13.6 错误处理
13.7 总结
第14章 对象-关系数据库映射
14.1 敏捷DBA的角色
14.2 基本的映射概念
14.2.1 影子信息
14.2.2 映射元数据
14.3 映射继承结构
14.3.1 将整个类层次体系映射成一个表
14.3.2 将每个具体类映射成它自己的表
14.3.3 将每个类映射成它自己的表
14.3.4 将类映射成一个通用结构
14.3.5 映射策略的对比
14.3.6 多继承的映射
14.4 映射对象的关系
14.4.1 关系的类型
14.4.2 如何实现对象间的关系
14.4.3 如何在关系数据库内实现关系
14.4.4 关系映射
14.4.5 映射有序集合
14.4.6 映射递归关系
14.5 映射类作用范围的特性
14.6 为何数据方案不应该驱动对象方案
14.7 对对象的实现影响
14.8 模型驱动架构的启示
14.9 映射模式化
14.10 总结
第15章 性能优化
15.1 性能优化概述
15.2 敏捷DBA的角色
15.3 步骤1:识别性能问题
15.4 步骤2:剖析问题
15.5 步骤3:优化解决问题
15.5.1 系统优化
15.5.2 数据库访问优化
15.5.3 数据库优化
15.5.4 应用程序优化
15.6 总结
第16章 渐进式数据库开发的工具
16.1 工具
16.2 沙箱
16.3 脚本
16.4 总结
第三部分 实用的面向数据的开发方法
第17章 实现并发控制
17.1 敏捷DBA的角色
17.2 冲突
17.2.1 锁定类型
17.2.2 解决冲突
17.3 理解事和
17.3.1 事务的基本概念
17.3.2 实现事务
17.4 总结
第18章 在关系数据库内查找对象
18.1 敏捷DBA的角色
18.2 查找策略
18.2.1 蛮力方式(嵌入式SQL)
18.2.2 查询对象
18.2.3 元数据驱动
18.2.4 每种策略的应用时机
18.3 实现方法
18.3.1 使用原生的错误处理策略
18.3.2 能够预见“逻辑”错误
18.3.3 总是返回一个集合
18.3.4 针对查询列表采用代理和惰性初始化
18.3.5 对高开销的属性使用惰性读取
18.3.6 为他人编程
18.4 表示查找的结果
18.5 总结
第19章 实现引用完整性和共享
19.1 敏捷DBA角色
19.2 对象技术是如何将引用完整性复杂化的
19.2.1 多种实体/关系的表现形式
19.2.2 对象关系管理
19.2.3 惰式读取
19.2.4 缓存
19.2.5 聚合、组俣和关联
19.2.6 架构分层
19.2.7 从内存中移除与永久删除
19.3 应该在何处实现引用完整性
19.3.1 引用完整性的实现选择
19.3.2 业务逻辑的实现选择
19.3.3 通用实现策略
19.4 总结
第20章 实现安全访问控制
20.1 敏捷DBA角色
20.2 身份验证
20.3 授权
20.3.1 问题
20.3.2 数据库实现策略
20.3.3 安全设计模式
20.3.4 面向对象的实现策略
20.3.5 启示
20.4 有效的安全策略
20.5 总结
第21章 实现报表
21.1 敏捷DBA的角色
21.2 数据库部署架构
21.3 在应用程序内部进行报表统计
21.4 在应用程序外部进行报表统计
21.5 数据库设计策略
21.6 实现策略
21.7 使报表统计变难的挑战
21.8 总结
第22章 现实中的XML
22.1 敏捷DBA的角色
22.2 XML入门
22.2.1 XML的优势
22.2.2 XML的弱点
22.3 XML的实际应用
22.4 词汇表
22.5 如何建模XML
22.6 XML映射和数据绑定
22.7 如何在关系数据库中持久化XML
22.8 如何在XML数据库中持久化XML
22.9 XML开发策略
22.10 总结
第四部分 采用敏捷数据库方法
第23章 你如何才能变得敏捷
23.1 不必非要做一个超人
23.2 敏捷性其实只是一个思维集
23.3 成为一名博学型的专家
23.4 总结
第24章 将敏捷性带到你的组织机构中
24.1 改变你看待软件开发的方式
24.2 理解你所面对的挑战
24.3 实际去尝试它
24.4 阻止非敏捷的合作者
24.5 切合实际
24.6 临别感想
附录 数据库构目录
参考资料及推荐读物