Pro SQL Server 2008 realtional database design and implementation
副标题:无
作 者:(美)Louis Davidson[等]著;程桦,张绪业等译
分类号:
ISBN:9787115215543
微信扫一扫,移动浏览光盘
简介
本书是关系型数据库设计与开发方面一本不可多得的好书。作者十年磨一剑,最早以SQL Server 2000为蓝本。其后经历了2005,再到2008,作品一版再版。不断推陈出新,内容也日益精炼、翔实,成为一本深得读者好评的经典著作。
本书虽然着眼于SQL Server 2008,但体现的是关系数据库设计的思想与理念。从业务人员可以理解的逻辑设计,到利用SQL Server进行物理实现的方方面面,本书贯穿始终的是融会关系数据库思想、设计高效率可伸缩的数据库。基于对关系数据库设计开发的“最佳实践”及相应理论的透彻理解,作者还阐述了怎样使用SQL Server做出优雅的设计,为充分利用宝贵的业务数据打下坚实的基础。通观全书,其写作思路清晰,观点简明实用,常能一针见血地指出要点。
本书是SQL Server开发者的必读书,对其他数据库开发者也有借鉴意义。对初级程序员来说,本书是数据库设计基础的完备教程。有经验的开发人员也可从本书中学到很多数据库开发的实用技巧。
目录
第1章 数据库概念简介. 1
1.1 数据库设计阶段 2
1.1.1 概念阶段 3
1.1.2 逻辑阶段 5
1.1.3 实现阶段 5
1.1.4 物理阶段 6
1.2 关系数据结构 6
1.2.1 数据库和模式 6
1.2.2 表、行和列 7
1.2.3 信息原则 10
1.2.4 域 12
1.2.5 元数据 13
1.2.6 键 13
1.2.7 未显式赋值的项(null) 18
1.3 实体之间的关系 20
1.3.1 二元关系 21
1.3.2 非二元关系 24
1.4 数据访问语言(sql) 24
1.5 理解依赖性 25
1.5.1 函数依赖性 26
.1.5.2 判定 26
1.6 总结 27
第2章 数据建模语言 28
2.1 数据建模介绍 28
2.2 实体 29
2.3 属性 32
2.3.1 主键 33
2.3.2 替代键 35
2.3.3 外键 35
2.3.4 域 36
2.3.5 命名 38
2.4 关系 39
2.4.1 识别性关系 40
2.4.2 非识别性关系 40
2.4.3 角色名字 43
2.4.4 关系基数 44
2.4.5 动词短语(关系名字) 49
2.5 描述信息 51
2.6 其他建模方法 52
2.6.1 信息工程 53
2.6.2 chen erd 54
2.6.3 visio 55
2.6.4 management studio数据库关系图 56
2.7 最佳实践 57
2.8 总结 57
第3章 概念阶段数据建模 59
3.1 理解需求 60
3.2 文档化过程 61
3.3 需求收集 62
3.3.1 客户访谈 63
3.3.2 要回答的问题 64
3.3.3 现存的系统和原型 67
3.3.4 其他类型的文档 67
3.4 识别对象和过程 69
3.4.1 识别实体 70
3.4.2 实体间关系 76
3.4.3 识别属性和域 82
3.5 识别业务规则和业务过程 90
3.5.1 识别业务规则 90
3.5.2 识别基础业务过程 92
3.6 完成概念模型 93
3.6.1 识别明显的、额外的数据需求 94
3.6.2 和客户一起评审 95
3.6.3 重复以上步骤直到客户同意你的模型 95
3.7 最佳实践 95
3.8 总结 96
第4章 规范化过程 97
4.1 为什么要规范化 98
4.1.1 消灭重复数据 98
4.1.2 避免编写不必要的代码 98
4.1.3 给表瘦身 98
4.1.4 最大化聚集索引的使用 99
4.1.5 降低每张表中索引的数量 99
4.2 规范化应该走多远 99
4.3 规范化过程 100
4.4 实体和属性的形式:第一范式 100
4.4.1 所有属性必须是原子的 101
4.4.2 实体的所有实例必须包含相同数量的值 104
4.4.3 实体中出现的所有实体类型都必须不同 106
4.4.4 第一范式所避免的不规则编程 106
4.4.5 当前设计不符合第一范式的线索 110
4.5 属性间的关系 111
4.5.1 第二范式 111
4.5.2 第三范式 116
4.5.3 boyce-codd范式 121
4.6 实体中的多值依赖 124
4.6.1 第四范式 124
4.6.2 第五范式 135
4.7 非规范化 136
4.8 最佳实践.. 136
4.9 总结 137
4.10 额外的例子 137
4.11 本书迄今为止所讲述的故事 142
第5章 实现基础的表结构 144
5.1 评审逻辑设计 147
5.2 变换设计 148
5.2.1 选择名字 148
5.2.2 处理子类型 151
5.2.3 决定树的实现方式 155
5.2.4 选择键的实现方式 156
5.2.5 决定域的实现方式 161
5.2.6 设置模式 172
5.2.7 评审“最终的”实现模型 172
5.3 实现设计 173
5.3.1 创建基本表结构 175
5.3.2 添加唯一性约束 183
5.3.3 构建默认约束 189
5.3.4 添加关系(外键) 195
5.3.5 处理排序规则和排序 205
5.3.6 计算列 209
5.3.7 实现用户定义的数据类型 212
5.3.8 文档化你的数据库 220
5.3.9 处理依赖信息 222
5.4 最佳实践 225
5.5 总结 226
第6章 保护数据的完整性 228
6.1 最佳实践 229
6.2 自动数据保护 231
6.2.1 声明性数据保护 231
6.2.2 基本语法 233
6.2.3 基于简单表达式的check约束 235
6.2.4 基于函数的check约束 237
6.2.5 约束引起的错误 242
6.2.6 dml触发器 244
6.2.7 处理来自触发器和约束的错误 277
6.3 手动数据保护 280
6.4 更多最佳实践 287
6.5 总结 287
第7章 模式与查询技术 289
7.1 预计算值 290
7.1.1 序列表 290
7.1.2 日期计算 297
7.2 二进制大型对象(blob) 305
7.3 存储用户自定义数据 307
7.3.1 一长串通用列 308
7.3.2 实体-属性-值(eav) 309
7.3.3 往表中增加列 313
7.4 通用实现对象 318
7.5 反模式 319
7.5.1 多用途键域 320
7.5.2 通用键引用 322
7.5.3 对非结构化数据的过度使用 325
7.6 总结 326
7.7 回顾与展望 326
第8章 数据访问安全 328
8.1 安全主体与安全对象 329
8.2 数据库安全概述 330
8.2.1 模拟 331
8.2.2 权限 333
8.2.3 控制对象访问 334
8.2.4 角色 338
8.2.5 模式 344
8.3 通过t-sql编程对象控制对象访问 345
8.3.1 存储过程和标量函数 346
8.3.2 对象内模拟 347
8.3.3 跨数据库边界 352
8.3.4 不同的服务器(分布式查询) 357
8.4 视图与表值函数 357
8.4.1 一般用法 358
8.4.2 使用视图实现可配置的行级安全 360
8.5 数据混淆 364
8.6 监视与审核 367
8.6.1 服务器与数据库审核 367
8.6.2 使用dml触发器查看表的变更历史 371
8.6.3 ddl触发器 374
8.6.4 分析器日志 377
8.7 最佳实践 379
8.8 总结 380
第9章 表结构与索引 382
9.1 数据库物理结构 383
9.1.1 文件与文件组 383
9.1.2 分区与页 386
9.1.3 页中的数据 388
9.1.4 分区 391
9.2 索引概览 393
9.3 基本索引结构 393
9.4 索引类型 395
9.4.1 聚集索引 395
9.4.2 非聚集索引 397
9.4.3 聚集表上的非聚集索引 398
9.5 索引创建的基本方法 400
9.6 基本的索引使用模式 402
9.6.1 使用聚集索引 403
9.6.2 使用非聚集索引 405
9.6.3 使用唯一索引 416
9.7 高级的索引使用案例 416
9.7.1 外键索引 416
9.7.2 索引视图 419
9.8 最佳实践 422
9.9 总结 423
第10章 并发编程 425
10.1 什么是并发 426
10.2 查询优化的基础知识 427
10.3 操作系统与硬件因素 428
10.4 事务 429
10.4.1 事务语法 430
10.4.2 已编译的sql server代码 437
10.5 sql server并发控制 444
10.5.1 锁 445
10.5.2 隔离级别 448
10.6 完整性与并发性编程 459
10.6.1 悲观锁定 459
10.6.2 实现单线程代码块 461
10.6.3 乐观锁定 463
10.6.4 基于行的锁定 464
10.6.5 逻辑工作单元 469
10.7 最佳实践 470
10.8 总结 471
第11章 数据访问策略 472
11.1 即席sql 473
11.1.1 优点 474
11.1.2 缺陷 480
11.2 存储过程 484
11.2.1 封装性 485
11.2.2 动态存储过程 486
11.2.3 安全性 488
11.2.4 性能 490
11.2.5 缺陷 491
11.2.6 观点 495
11.3 t-sql与clr(公共语言运行时) 497
11.3.1 选择t-sql的准则 500
11.3.2 选择.net的准则 501
11.3.3 clr对象类型 501
11.4 最佳实践 503
11.5 总结 504
附录a codd的rdbms十二法则 506
附录b 标量数据类型参考 511
索引... 538
1.1 数据库设计阶段 2
1.1.1 概念阶段 3
1.1.2 逻辑阶段 5
1.1.3 实现阶段 5
1.1.4 物理阶段 6
1.2 关系数据结构 6
1.2.1 数据库和模式 6
1.2.2 表、行和列 7
1.2.3 信息原则 10
1.2.4 域 12
1.2.5 元数据 13
1.2.6 键 13
1.2.7 未显式赋值的项(null) 18
1.3 实体之间的关系 20
1.3.1 二元关系 21
1.3.2 非二元关系 24
1.4 数据访问语言(sql) 24
1.5 理解依赖性 25
1.5.1 函数依赖性 26
.1.5.2 判定 26
1.6 总结 27
第2章 数据建模语言 28
2.1 数据建模介绍 28
2.2 实体 29
2.3 属性 32
2.3.1 主键 33
2.3.2 替代键 35
2.3.3 外键 35
2.3.4 域 36
2.3.5 命名 38
2.4 关系 39
2.4.1 识别性关系 40
2.4.2 非识别性关系 40
2.4.3 角色名字 43
2.4.4 关系基数 44
2.4.5 动词短语(关系名字) 49
2.5 描述信息 51
2.6 其他建模方法 52
2.6.1 信息工程 53
2.6.2 chen erd 54
2.6.3 visio 55
2.6.4 management studio数据库关系图 56
2.7 最佳实践 57
2.8 总结 57
第3章 概念阶段数据建模 59
3.1 理解需求 60
3.2 文档化过程 61
3.3 需求收集 62
3.3.1 客户访谈 63
3.3.2 要回答的问题 64
3.3.3 现存的系统和原型 67
3.3.4 其他类型的文档 67
3.4 识别对象和过程 69
3.4.1 识别实体 70
3.4.2 实体间关系 76
3.4.3 识别属性和域 82
3.5 识别业务规则和业务过程 90
3.5.1 识别业务规则 90
3.5.2 识别基础业务过程 92
3.6 完成概念模型 93
3.6.1 识别明显的、额外的数据需求 94
3.6.2 和客户一起评审 95
3.6.3 重复以上步骤直到客户同意你的模型 95
3.7 最佳实践 95
3.8 总结 96
第4章 规范化过程 97
4.1 为什么要规范化 98
4.1.1 消灭重复数据 98
4.1.2 避免编写不必要的代码 98
4.1.3 给表瘦身 98
4.1.4 最大化聚集索引的使用 99
4.1.5 降低每张表中索引的数量 99
4.2 规范化应该走多远 99
4.3 规范化过程 100
4.4 实体和属性的形式:第一范式 100
4.4.1 所有属性必须是原子的 101
4.4.2 实体的所有实例必须包含相同数量的值 104
4.4.3 实体中出现的所有实体类型都必须不同 106
4.4.4 第一范式所避免的不规则编程 106
4.4.5 当前设计不符合第一范式的线索 110
4.5 属性间的关系 111
4.5.1 第二范式 111
4.5.2 第三范式 116
4.5.3 boyce-codd范式 121
4.6 实体中的多值依赖 124
4.6.1 第四范式 124
4.6.2 第五范式 135
4.7 非规范化 136
4.8 最佳实践.. 136
4.9 总结 137
4.10 额外的例子 137
4.11 本书迄今为止所讲述的故事 142
第5章 实现基础的表结构 144
5.1 评审逻辑设计 147
5.2 变换设计 148
5.2.1 选择名字 148
5.2.2 处理子类型 151
5.2.3 决定树的实现方式 155
5.2.4 选择键的实现方式 156
5.2.5 决定域的实现方式 161
5.2.6 设置模式 172
5.2.7 评审“最终的”实现模型 172
5.3 实现设计 173
5.3.1 创建基本表结构 175
5.3.2 添加唯一性约束 183
5.3.3 构建默认约束 189
5.3.4 添加关系(外键) 195
5.3.5 处理排序规则和排序 205
5.3.6 计算列 209
5.3.7 实现用户定义的数据类型 212
5.3.8 文档化你的数据库 220
5.3.9 处理依赖信息 222
5.4 最佳实践 225
5.5 总结 226
第6章 保护数据的完整性 228
6.1 最佳实践 229
6.2 自动数据保护 231
6.2.1 声明性数据保护 231
6.2.2 基本语法 233
6.2.3 基于简单表达式的check约束 235
6.2.4 基于函数的check约束 237
6.2.5 约束引起的错误 242
6.2.6 dml触发器 244
6.2.7 处理来自触发器和约束的错误 277
6.3 手动数据保护 280
6.4 更多最佳实践 287
6.5 总结 287
第7章 模式与查询技术 289
7.1 预计算值 290
7.1.1 序列表 290
7.1.2 日期计算 297
7.2 二进制大型对象(blob) 305
7.3 存储用户自定义数据 307
7.3.1 一长串通用列 308
7.3.2 实体-属性-值(eav) 309
7.3.3 往表中增加列 313
7.4 通用实现对象 318
7.5 反模式 319
7.5.1 多用途键域 320
7.5.2 通用键引用 322
7.5.3 对非结构化数据的过度使用 325
7.6 总结 326
7.7 回顾与展望 326
第8章 数据访问安全 328
8.1 安全主体与安全对象 329
8.2 数据库安全概述 330
8.2.1 模拟 331
8.2.2 权限 333
8.2.3 控制对象访问 334
8.2.4 角色 338
8.2.5 模式 344
8.3 通过t-sql编程对象控制对象访问 345
8.3.1 存储过程和标量函数 346
8.3.2 对象内模拟 347
8.3.3 跨数据库边界 352
8.3.4 不同的服务器(分布式查询) 357
8.4 视图与表值函数 357
8.4.1 一般用法 358
8.4.2 使用视图实现可配置的行级安全 360
8.5 数据混淆 364
8.6 监视与审核 367
8.6.1 服务器与数据库审核 367
8.6.2 使用dml触发器查看表的变更历史 371
8.6.3 ddl触发器 374
8.6.4 分析器日志 377
8.7 最佳实践 379
8.8 总结 380
第9章 表结构与索引 382
9.1 数据库物理结构 383
9.1.1 文件与文件组 383
9.1.2 分区与页 386
9.1.3 页中的数据 388
9.1.4 分区 391
9.2 索引概览 393
9.3 基本索引结构 393
9.4 索引类型 395
9.4.1 聚集索引 395
9.4.2 非聚集索引 397
9.4.3 聚集表上的非聚集索引 398
9.5 索引创建的基本方法 400
9.6 基本的索引使用模式 402
9.6.1 使用聚集索引 403
9.6.2 使用非聚集索引 405
9.6.3 使用唯一索引 416
9.7 高级的索引使用案例 416
9.7.1 外键索引 416
9.7.2 索引视图 419
9.8 最佳实践 422
9.9 总结 423
第10章 并发编程 425
10.1 什么是并发 426
10.2 查询优化的基础知识 427
10.3 操作系统与硬件因素 428
10.4 事务 429
10.4.1 事务语法 430
10.4.2 已编译的sql server代码 437
10.5 sql server并发控制 444
10.5.1 锁 445
10.5.2 隔离级别 448
10.6 完整性与并发性编程 459
10.6.1 悲观锁定 459
10.6.2 实现单线程代码块 461
10.6.3 乐观锁定 463
10.6.4 基于行的锁定 464
10.6.5 逻辑工作单元 469
10.7 最佳实践 470
10.8 总结 471
第11章 数据访问策略 472
11.1 即席sql 473
11.1.1 优点 474
11.1.2 缺陷 480
11.2 存储过程 484
11.2.1 封装性 485
11.2.2 动态存储过程 486
11.2.3 安全性 488
11.2.4 性能 490
11.2.5 缺陷 491
11.2.6 观点 495
11.3 t-sql与clr(公共语言运行时) 497
11.3.1 选择t-sql的准则 500
11.3.2 选择.net的准则 501
11.3.3 clr对象类型 501
11.4 最佳实践 503
11.5 总结 504
附录a codd的rdbms十二法则 506
附录b 标量数据类型参考 511
索引... 538
Pro SQL Server 2008 realtional database design and implementation
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×