《自己动手设计数据库》主要讲述数据库的设计,讨论了如何建立表结构、确定主键、设置字段说明、建立表关系、确立业务规则、建立视图和各层次的数据完整性,以及如何避免不好的设计等问题。《自己动手设计数据库》提供的是数据库设计的一种概念性思路,因此与市面上众多的同类书籍相比,《自己动手设计数据库》有两个比较鲜明的特点。第一,作者采用简单易懂的语言,尽量清晰、全面地描述关系数据库设计的整个过程,没有过多专业的术语和复杂的数据库设计方法学,因此《自己动手设计数据库》既适合专业人士参考之用,也适合给初学者、数据库设计爱好者充当从入门到进阶的重要读物。第二,作者高度重视数据库的逻辑设计,严格区分逻辑设计和实现阶段,以确保高效、成功地设计良好的数据库。
《自己动手设计数据库》适合数据库初学者、有经验的数据库开发人员,以及所有对数据库设计感兴趣的读者阅读参考。
目录
- 第1部分 关系数据库设计 1
- 第1章 关系数据库 2
- 本章内容 2
- 数据库的类型 3
- 早期数据库模型 4
- 层次数据库模型 4
- 网状数据库模型 7
- 关系数据库模型 10
- 检索数据 12
- 关系数据库的优势 13
- 关系数据库管理系统 14
- 后关系模型 16
- 未来将会如何 17
- *后一点 17
- 小结 18
- 思考题 19
- 第2章 设计目标 20
- 本章内容 20
- 为什么要关注数据库设计 21
- 理论的重要性 22
- 学习优秀设计方法学的益处 23
- 优秀设计的目标 24
- 优秀设计的好处 25
- 数据库设计方法 25
- 传统设计方法 25
- 本书中所呈现的设计方法 27
- 规范化 27
- 小结 29
- 思考题 30
- 第3章 术语 31
- 本章内容 31
- 术语为何重要 32
- 关于值的术语 33
- 数据 33
- 信息 33
- 空值(null) 34
- Null的值 35
- Null所带来的问题 36
- 关于结构的术语 38
- 表 38
- 字段 40
- 记录 41
- 视图 42
- 键 43
- 索引 45
- 关于关系的术语 45
- 关系 45
- 关系类型 46
- 一对一关系 47
- 一对多关系 47
- 多对多关系 48
- 参与的类型 50
- 参与度 51
- 关于完整性的术语 52
- 字段说明 52
- 数据完整性 52
- 小结 53
- 思考题 54
- 第2部分 设计过程 57
- 第4章 概念性概述 58
- 本章内容 58
- 完成设计过程的重要性 59
- 明确宗旨和任务目标 60
- 分析现有数据库 60
- 创建数据结构 61
- 确定和建立表关系 62
- 确定和定义业务规则 63
- 确定和定义视图 63
- 审核数据完整性 64
- 小结 65
- 思考题 66
- 第5章 大幕开启 67
- 本章内容 67
- 开展访谈 68
- 参与者指南 69
- 采访者指南 70
- 案例分析:迈克自行车行 73
- 明确宗旨 74
- 优良的宗旨 74
- 制订宗旨 75
- 案例分析:为迈克自行车行制订宗旨 77
- 明确任务目标 78
- 优秀的任务目标 78
- 制订任务目标 79
- 案例分析:为迈克自行车行制订任务目标 82
- 小结 83
- 思考题 83
- 第6章 分析现有数据库 85
- 本章内容 85
- 了解现有数据库 85
- 纸质数据库 87
- 遗留数据库 88
- 开展分析 89
- 了解如何收集数据 89
- 了解如何呈现信息 92
- 开展访谈 95
- 基本访谈技巧 96
- 开始访谈之前 100
- 用户访谈 101
- 评审数据类型和用途 101
- 评审样本 102
- 评审信息要求 106
- 管理人员访谈 112
- 评审当前信息要求 112
- 评审附加信息要求 113
- 评审未来信息要求 113
- 评审总体信息要求 114
- 编辑完整字段列表 115
- 初始字段列表 115
- 计算字段列表 120
- 案例分析 121
- 小结 126
- 思考题 126
- 第7章 建立表结构 128
- 本章内容 128
- 定义初始表列表 129
- 确定隐含主题 129
- 使用主题列表 130
- 使用任务目标 134
- 定义*终表列表 136
- 改进表名称 137
- 指明表类型 140
- 编辑表描述 141
- 字段对应入表 145
- 精简字段 147
- 改进字段名称 147
- 使用理想字段解决异常现象 150
- 消除复合字段 152
- 消除多值字段 154
- 精简表结构 159
- 谈谈冗余数据和重复字段 159
- 参照理想表精简表结构 160
- 建立子集表 166
- 案例分析 170
- 小结 175
- 思考题 176
- 第8章 键 178
- 本章内容 178
- 键为何重要 179
- 为每个表建立键 179
- 候选键 179
- 主键 185
- 替换键 190
- 非键 191
- 表层次完整性 191
- 评审初始表结构 191
- 案例分析 192
- 小结 197
- 思考题 198
- 第9章 字段说明 199
- 本章内容 199
- 字段说明为何重要 200
- 字段级完整性 201
- 字段说明之剖析 202
- 一般元素 204
- 物理元素 209
- 逻辑元素 213
- 使用独特、通用和可复制的字段说明 219
- 定义每个字段的字段说明 225
- 案例分析 226
- 小结 228
- 思考题 229
- 第10章 表关系 231
- 本章内容 231
- 关系为何重要 232
- 关系的类型 233
- 一对一关系 234
- 一对多关系 235
- 多对多关系 237
- 自联结关系 244
- 识别现有关系 247
- 建立关系 255
- 一对一和一对多关系 255
- 多对多关系 260
- 自引用关系 265
- 评审表结构 269
- 改进所有外键 270
- 外键的要素 270
- 建立关系特征 275
- 为每个关系定义删除规则 275
- 识别每个表的参与类型 279
- 识别每个表的参与度 281
- 与用户和管理人员验证表关系 283
- 结语 284
- 关系层次完整性 284
- 案例分析 284
- 小结 289
- 思考题 290
- 第11章 业务规则 292
- 本章内容 292
- 什么是业务规则 293
- 业务规则类型 295
- 业务规则的分类 297
- 字段特有业务规则 297
- 关系特有业务规则 298
- 定义和建立业务规则 299
- 与用户和管理人员合作 299
- 定义和建立字段特有业务规则 300
- 定义和建立关系特有业务规则 307
- 验证表 312
- 什么是验证表 313
- 使用验证表支持业务规则 313
- 评审业务规则规范表 318
- 案例分析 318
- 小结 324
- 思考题 325
- 第12章 视图 326
- 本章内容 326
- 什么是视图 326
- 视图之剖析 328
- 数据视图 328
- 聚合视图 332
- 验证视图 335
- 确立视图 336
- 与用户和管理人员合作 336
- 定义视图 337
- 评审每个视图的文档记录 345
- 案例分析 345
- 小结 349
- 思考题 350
- 第13章 评审数据完整性 351
- 本章内容 351
- 为什么要评审数据完整性 352
- 评审和改进数据完整性 352
- 表层次完整性 353
- 字段级完整性 353
- 关系层次完整性 353
- 业务规则 354
- 视图 354
- 汇编数据库文档 355
- 大功告成 356
- 案例分析——总结 356
- 小结 356
- 第3部分 其他数据库设计事项 357
- 第14章 设计不当——禁忌事项 358
- 本章内容 358
- 平面文件设计 359
- 电子表格设计 360
- 摒弃电子表格视图思维定式 361
- 基于数据库软件设计数据库 362
- *后一点想法 363
- 小结 364
- 第15章 打破规则 365
- 本章内容 365
- 何种情况下可以打破规则 365
- 设计分析型数据库 366
- 提升处理性能 366
- 提升性能**其他方式 367
- 记录行动 368
- 小结 369
- 结束语 370
- 第4部分 附录 373
- 附录A 思考题答案 374
- 附录B 数据库设计过程中的示意图 392
- 附录C 设计指南 409
- 附录D 文档形式 417
- 附录E 数据库设计示意图符号 421
- 附录F 设计样本 423
- 附录G 关于规范化 430
- 附录H 推荐书目 437
- 术语表 439
-
参考文献 452