设计有效的数据库系统
作者 : Rebecca M.Riordan
译者 : 何玉洁 张俊超 等
丛书名 : 计算机科学丛书
出版日期 : 2006-05-10
ISBN : 7-111-18736-9
定价 : 29.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 211
开本 : 16开
原书名 : Designing Effective Database Systems
原出版社: Addison-Wesley
属性分类: 教材
包含CD :
绝版 :
图书简介

本书详细介绍关系数据库的设计原理,清晰地介绍了维度数据库建模,指导读者快速准确地掌握数据库设计的有效方法。书中指出了如何避免常见的设计结构隐患,这些隐患会使得数据库开发过程复杂化并降低可扩展性。本书作者是世界知名专家,已经帮助数以千计的专业人员掌握了数据库设计和开发技术。本书系统总结了作者多年开发数据库的经验,极具参考价值。

主要内容:
  ●理解数据库模型、结构、关系和数据完整性原则
  ●定义数据库系统目标、规则、范围和工作过程
  ●构造精确的概念模型??关系、实体、域分析和规范化
  ●构建有效、安全的数据库模式
  ●掌握联机分析处理 (OLAP) 设计的元素??事实表、维度表、雪花架构及其他
  ●组建和构造用于查询和报表的简单、有效的界面
  ●学习基于Microsoft的Northwind样板数据库的实际例子

图书特色

图书前言

关系数据库的确是一个繁杂的问题,相比之下,其他类型的商业软件理解起来要容易很多。文字处理软件实际上就是高技术的打字机,并且显然退格键要比修正液好用得多。电子表格软件提供了一个大家十分熟悉的模板,甚至不需要会计了;而电子邮件从易于理解的角度来看与一个邮政系统十分类似。
  但数据库与众不同。其他类型的软件都有一个现实世界的相似物。有时候,比如在Windows桌面系统中,这种相似物有一点空洞,但是它们都是十分亲近的,都触手可及。但是关系数据库则完全是虚构的。这就像几何学:虽然它们一般并不存在于现实世界中,但可以用来构建现实世界的模型。你最近一次为你和爱人倒上红酒,然后走到前廊上观赏湖面上“几何物的欢聚”是几时?
  现在,我们在这里谈论的是数据库,不是表格。现实世界中存在很多表格:从电话簿到字典。而关系数据库则不然。你也不可能在“湖面上的欢聚”中找到它们。图书馆里的卡片文档与数据库有些接近,它们包含作者、书名和主题文件,但是它们仍旧把数据的集合分开了,只有该馆的图书管理员才能将它们关联起来。
  这是一本关于设计数据库系统的书。初衷是想教读者一些如何将一个凌乱复杂的现实世界转变为有效的数据库设计的有关知识。我假定读者已经有一些开发经验,并且知晓有关计算机的常识,但读者可以没有数据库的知识背景。
  在阅读完本书之后,你仍旧没法观赏数据库“在湖面上欢聚”,但是如果我实现了我的写作初衷的话,那么读者将能够设计和实现一个有关鱼、海鸥以及浮游生物对二者的影响的关系模型。
  本书分为四部分。第一部分“关系数据库理论”包括关系模型的基本原理。这些的确是很枯燥的理论知识,但是不要担心,它们理解起来也很容易。第二部分“维度数据库理论”包含维度数据库的理论知识,维度数据库是一种用于分析的特殊类型的关系数据库。第三部分“设计数据库系统”介绍了分析和设计过程—如何将现实世界设计成一个可靠的数据库系统。最后,第四部分“设计用户界面”从用户的角度讨论了数据库系统中最重要的一个方面:用户界面。
  虽然书中谈论的都是有关实现的问题,但这并不是一本“如何编程”的书。书中有一些编码示例,但是我已经将它们减小到最少,即便读者以前从来没学过任何编程语言,也应当能够读懂它们。数据库的例子基于Microsoft Access的Northwind样板数据库(SQL Server中的Northwind版本也十分类似)。当你读完本书的时候,就能获得开始构建数据库系统的大部分知识,并且可以借助参考文献中的资料来学习更好的编程风格。同时你将十分坚信你的数据构架十分完善,不会在以后的项目中给你带来麻烦。


对本书的赞誉
  “设计数据库不是件简单的事情,是软件开发的基础部分,作者清晰地阐述了基本概念并介绍了其丰富的经验。”
—Patrick Birch,数据库和技术写作顾问
  “这本书十分专业地引导读者进行数据库开发,并且在第一次开发时就能做对!”
—Kenneth D. Snell博士,Access开发者,微软Access最有价值程序员(MVP)
  “本书的独特之处在于讲述关系数据库的设计方法既正统又通俗,并在此基础上有所深化!尤其是数据仓库的开发设计部分,很多数据库设计者都会受益匪浅。如果你正在寻觅一个设计事务数据库的框架,或者试图涉足分析数据库的领域,那么这本书都能给予你很大的帮助。”
—Paul Irvine,Via Training公司的副总裁,工程师
  “如果你只想买一本关于数据库设计的书,那么就买这本。作者十分擅长用浅显的语言来解释复杂的技术问题。”
—Brendan Reynolds,Dataset IT系统开发人员,微软Access最有价值程序员
  “Riordan选择了一个复杂的主题,但却使其简单化了。如果你对数据库设计项目一筹莫展的话,这本书一定能帮你摆脱困扰!”
—Mike Gunderloy,Application Development Trends资深编辑
  “本书以通俗的语言和良好的结构覆盖了数据库设计和数据建模主题的广泛内容。”
—Amy Sticksel,Sticksel Data Systems, Inc
  “在这本书中,Riordan的风格、才智和对细节的关注都是值得称道的。”
—Sandra Daigle,微软Access最有价值程序员
  “这不仅仅是一本关于数据库理论的书,从开发一个数据库应用程序的洽谈阶段到完成阶段,作者都给予了我们十分实际的指导。”
—Dirk Goldgar,DataGnostics总裁,微软Access最有价值程序员
  “这本书适合任何数据库设计和开发者,它囊括了各种核心技巧,包括规范化之类的基础技巧,以及如何构建系统以便生成报表和进一步扩展。这本书应当列为每位专业开发者的必读书目。”
—Duncan Mackenzie,微软MSDN开发人员

作者简介

Rebecca M.Riordan:Rebecca M.Riordan:  Rebecca M. Riordan已有15年以上的数据库设计、开发及应用经验。她获得了“微软最有价值程序员”的称号,并且经常在各种会议上发言,包括Microsoft TechEd。她还出版了多部著作,包括《Seeing Data: Designing User Interfaces for Database Systems Using .NET》(Addison-Wesley, 2005),《Designing Relational Database System》(Microsoft Press, 1999),《Microsoft SQL Server 2000 Programming Step by Step》(Microsoft Press, 2000),以及《ADO .NET Step by Step》(Microsoft Press, 2002)。

译者简介

何玉洁 张俊超 等:暂无简介

译者序

初次拿到本书原版时,原著的书名不禁让人有些许失望—又是一本数据库设计的书。随着数据库技术的迅速发展和广泛应用,市面上关于数据库设计的书籍比比皆是,其中的确不乏滥竽充数者。但是,当译者翻看完目录之后,就立刻被其吸引了。通读全书,其缜密的结构、丰富的内涵以及极具价值的指导意义确实让人无法释手。
  与其他一些介绍数据库设计的同类书籍相比,本书具有以下独到之处:
  第一,内容更丰富。这一点主要体现在两个方面。首先,作者打破了数据库设计仅仅针对面向事务的传统数据库的框架,而以新颖的角度引入了维度数据库的理论。这是数据仓库领域的基础,也是目前较前沿的面向分析的数据库应用技术。另外,在本书的最后部分,作者用较重的笔墨详尽阐述了设计用户界面的相关技术,不再局限于数据库的后台构建和设计。因为用户眼中的数据库系统就是一个“界面”,其成败直接关系到数据库系统的实用性。因此,这使得本书的实际参考价值更高。
  第二,专家指导意义更强。由于本书作者自身具有多年的数据库设计和项目开发经验,并且她还是微软的最有价值程序员(MVP),因此,书中随处可见其融入的指导性意见。特别是本书的第三和第四部分,作者以其丰富的专家经验,指明了在设计数据库的各个环节中容易出现的问题以及应对的方法。此外,作者经常针对一个问题,提出多种实际解决方案供读者参考选用。
  第三,语言亲切生动。与其他众多专业书籍不同的是,本书的语言读起来让人倍感亲切,大有与读者对话之感。作者在书中多处运用丰富的修辞表现手法,让本来生硬的理论和技术变得生动活泼,当然这也给译者造成了不小的翻译难度。译者在阅读过程中也不时为作者的幽默和智慧所叹服,这也是本书让人难以释手的主要原因之一。
  本书适合有一定数据库理论基础,又非常希望能将理论知识应用到实际使用过程中的读者。此外,本书可同时作为学习数据库理论知识和实用开发技术的书籍,也可作为数据库设计和开发人员的数据库设计参考书。
  本书由何玉洁负责组织翻译和审校,主要工作由何玉洁和张俊超完成,张帆、侯永胜、张俊、张丹丹、潘晓洁、黄婷儿、卢立能、李迎、崔晗等参加了本书部分章节的翻译。其中:张帆和侯永胜参加了第1章的翻译,张丹丹和潘晓洁参加了第2章的翻译,卢立能和黄婷儿参加了第3章的翻译,张俊参加了第6章的翻译,崔晗和李迎参加了第16章的翻译,张俊超负责第4、5、7章的翻译,其他章由何玉洁负责翻译。全书由何玉洁负责审校。是大家的认真工作使本书得以顺利完成,在此表示衷心的感谢。
  限于译者水平,译校过程中难免有疏漏和不妥之处,恳请读者批评指正。


何玉洁
2005年11月

图书目录

第一部分  关系数据库理论
第1章 基本概念 1
1.1 什么是数据库 1
1.2 数据库工具 3
1.2.1 数据库引擎 3
1.2.2 数据访问对象模型 4
1.2.3 数据定义环境 5
1.2.4 前端开发 5
1.3 关系模型 5
1.4 关系术语 6
1.5 数据模型 7
1.5.1 实体 8
1.5.2 属性 8
1.5.3 域 11
1.5.4 联系 12
1.5.5 实体联系图 13
1.6 小结 14
第2章 数据库结构 15
2.1 消除冗余 15
2.2 保证灵活性 17
2.3 基本原则 19
2.3.1 无损分解 19
2.3.2 候选码和主码 20
2.3.3 函数依赖 21
2.4 第一范式 22
2.5 第二范式 23
2.6 第三范式 25
2.7 进一步的规范化 26
2.7.1 Boyce/Codd范式 26
2.7.2 第四范式 27
2.7.3 第五范式 28
2.8 小结 29
第3章 联系 30
3.1 术语 30
3.2 联系建模 31
3.3 一对一联系 33
3.4 一对多联系 36
3.5 多对多联系 36
3.6 一元联系 37
3.7 三元联系 37
3.8 已知基数的联系 39
3.9 小结 40
第4章 数据完整性 41
4.1 完整性约束 41
4.1.1 域完整性 41
4.1.2 转换完整性 43
4.1.3 实体完整性 43
4.1.4 参照完整性 44
4.1.5 数据库完整性 45
4.1.6 事务完整性 45
4.2 实现数据完整性 46
4.2.1 未知值和不存在的值 46
4.2.2 冲突响应 48
4.2.3 声明的和过程的完整性 48
4.2.4 域完整性 48
4.2.5 实体完整性 49
4.2.6 参照完整性 52
4.2.7 其他类型的完整性 52
4.3 小结 53
第5章 关系代数 54
5.1 Null值和三值逻辑 55
5.2 关系运算 56
5.2.1 选择 56
5.2.2 投影 56
5.2.3 连接 57
5.2.4 除 60
5.3 集合运算符 60
5.3.1 并 60
5.3.2 交 61
5.3.3 差 61
5.3.4 笛卡儿积 63
5.4 特殊的关系运算符 63
5.4.1 总结 63
5.4.2 扩展 64
5.4.3 重命名 64
5.4.4 变换 64
5.4.5 上卷 65
5.4.6 立方体 66
5.5 小结 66

第二部分 维度数据库理论
第6章 维度的基本概念 67
6.1 维度数据库模型 67
6.2 术语 70
6.3 商务智能的浓缩历史 71
6.4 小结 72
第7章 事实表 73
7.1 事实表的结构 73
7.2 事实属性的特征 74
7.2.1 粒度 75
7.2.2 事实表的类型 76
7.2.3 异类事实 77
7.3 小结 79
第8章 维度表 80
8.1 维度表的结构 80
8.2 雪花化 83
8.3 改变维度 84
8.4 小结 86

第三部分 设计数据库系统
第9章 设计过程 87
9.1 生命周期模型 87
9.2 数据库设计过程 90
9.2.1 定义系统参数 90
9.2.2 定义工作过程 90
9.2.3 构建概念数据模型 90
9.2.4 准备数据库模式 90
9.2.5 设计用户界面 91
9.3 关于设计方法和标准的提示 91
第10章 定义系统参数 92
10.1 定义系统目标 92
10.2 开发设计标准 95
10.2.1 直接衡量标准 96
10.2.2 环境标准 96
10.2.3 一般设计策略 97
10.3 定义系统范围 98
10.4 小结 100
第11章 定义工作过程 101
11.1 确定当前工作过程 101
11.1.1 与用户交流 101
11.1.2 确定任务 102
11.2 分析工作过程 105
11.3 将工作过程文档化 106
11.4 用户情景 107
11.5 小结 108
第12章 概念数据模型 109
12.1 确定数据对象 109
12.2 定义联系 112
12.2.1 联系的基数 113
12.2.2 联系的可选性 114
12.2.3 联系的属性 114
12.2.4 联系的附加约束 114
12.3 复查实体 114
12.3.1 实体和问题域之间的联系 115
12.3.2 影响实体的工作过程 115
12.3.3 实体间的交互 115
12.3.4 业务规则和约束 116
12.3.5 属性 116
12.4 域分析 117
12.5 限制值的范围 118
12.6 规范化 119
12.7 小结 119
第13章 数据库模式 120
13.1 系统架构 120
13.1.1 编码架构 120
13.1.2 数据架构 124
13.2 数据库模式组件 130
13.2.1 定义表和联系 130
13.2.2 视图和查询 131
13.3 安全性 132
13.4 小结 134
第14章 交流设计 135
14.1 读者和目标 135
14.2 文档结构 135
14.3 执行小结 136
14.4 系统概貌 137
14.5 工作过程 137
14.6 概念数据模型 138
14.7 数据库模式 139
14.8 用户界面 139
14.8.1 界面原型法 140
14.8.2 界面说明书 140
14.9 修订管理 141
14.10 小结 141

第四部分 设计用户界面
第15章 作为中间媒介的用户界面 143
15.1 有效的界面 143
15.2 界面模型 144
15.3 用户层次 145
15.3.1 初学者 145
15.3.2 中级用户 145
15.3.3 专业用户 145
15.4 让用户管理 146
15.5 减轻记忆的负担 147
15.6 保持一致性 148
15.7 小结 150
第16章 用户界面架构 151
16.1 支持工作过程 151
16.2 文档架构 152
16.2.1 单文档界面 152
16.2.2 多文档界面 154
16.3 小结 159
第17章 在窗体设计中描述实体 160
17.1 简单实体 160
17.2 一对一联系 162
17.3 一对多联系 162
17.4 层次 165
17.5 多对多联系 166
17.6 小结 168
第18章 选择Windows控件 169
18.1 表达逻辑数据 170
18.2 表达多个值的集合 170
18.2.1 从一组值中获取单个值 171
18.2.2 获取一组值 172
18.3 表达数字和日期 173
18.4 表达文本数据 175
18.5 小结 176
第19章 维护数据库的完整性 177
19.1 完整性约束的类别 177
19.2 内在约束 178
19.2.1 数据类型 178
19.2.2 格式 179
19.2.3 长度 179
19.2.4 空值 179
19.2.5 范围 180
19.2.6 实体和参照完整性约束 180
19.3 业务约束 182
19.3.1 偶然输入 183
19.3.2 现实与系统模型的对比 183
19.4 小结 185
第20章 报表 186
20.1 排序、检索和过滤数据 186
20.1.1 排序数据 187
20.1.2 通过选择过滤 187
20.1.3 通过窗体过滤 187
20.1.4 高级过滤和排序 188
20.1.5 微软自然语言查询 189
20.2 生成标准报表 189
20.2.1 清单报表和明细报表 189
20.2.2 总结报表 190
20.2.3 基于窗体的报表 190
20.2.4 报告界面 190
20.2.5 处理打印机错误 191
20.2.6 自动和随选打印 192
20.3 生成特殊报表 193
20.3.1 报表设计器 193
20.3.2 自定义的报表设计 193
20.3.3 标准信件 196
20.4 小结 197
第21章 用户帮助 198
21.1 用户级别 198
21.2 被动帮助机制 199
21.2.1 帮助记忆的访问键 199
21.2.2 工具提示 200
21.2.3 状态栏 201
21.3 反应帮助机制 202
21.3.1 联机帮助 202
21.3.2 “What誷 This?”提示 203
21.3.3 可听见的反馈 204
21.3.4 错误消息 205
21.4 主动帮助机制 206
21.5 用户培训 206
21.6 小结 207
术语表 208
参考文献 212

教学资源推荐
作者: 郭晓平 朱鸣华 著
作者: 丁兆云 周鋆 杜振国 著
作者: Jeffrey D.Ullman Jennifer Widom
作者: 主编 李丹 赵占坤 丁宏伟 石建国 副主编 赵尔丹 钟莲 石彦芳
参考读物推荐
作者: 潘晓 霍峥 孟小峰 编著
作者: 陈畅亮 吴一晴 著