新書推薦:
《
潜能觉醒
》
售價:NT$
395.0
《
初平:汉末群雄混战(190—195)
》
售價:NT$
245.0
《
建安:官渡大决战(196—200)
》
售價:NT$
245.0
《
权力的图像——近代的中国海图与交流
》
售價:NT$
840.0
《
中亚民族史
》
售價:NT$
840.0
《
人工智能与智能制造:概念与方法 [美]马苏德·索鲁什 [美]理查德·D.布拉茨
》
售價:NT$
640.0
《
中平:东汉王朝大崩溃(184—189)
》
售價:NT$
245.0
《
基于鲲鹏的分布式图分析算法实战
》
售價:NT$
495.0
|
編輯推薦: |
不管你采用的是何种关系数据库系统,作者会帮助你设计一个健全且性能稳定的数据库。刚开始设计数据库?补救糟糕的设计?现有数据库需要完善?从本书开始,一一解决这些问题!
|
內容簡介: |
理解数据库类型、模型、设计,以及设计的术语;发现良好的数据库设计能为你带来什么好处,以及为什么不好的数据库设计会给你带来痛苦;为你的数据库设定目标,并将其付诸实际的设计;分析一个现有的数据库,以便于你掌握改进它的方法;创建表结构和表关系,设定主键,设置字段说明,并设定视图;确保每一个应用有恰当水平的数据完整性;明确和建立业务规则。
|
目錄:
|
第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
|
內容試閱:
|
我们为什么要学数据库——代序
我从小就很喜欢读书,但不明白书有好坏之分,恰好父亲淘了两大箱子文化宫处理的旧书,于是我就背着父亲一本一本从箱子里面偷书出来看,看完了之后再胡乱塞回去。刚开始偷书看的时候也就三四岁,应该也看过很多“少儿不宜”的书,我记得小学一年级前就开始看梁羽生的《弹指惊雷》,也不记得那个时候看懂了多少。看完之后的书塞回箱子顶部,也从来没有整理过,所以到后来伸手进去摸(箱子搬不出来),顶上都是些看过的书,要找到一本还没有看过的书,是越来越不容易。
后来离开家出去读书,不管是在中国科学技术大学还是在瑞士弗里堡大学,我都有让同学艳羡的“藏书”。那时候一箱一箱搬运到弗里堡大学的中文书,应该还在造福来自中国的学弟学妹。和父亲越来越乱的大书箱一样,因为没有条件,所以喜欢不喜欢的书,课外课内的书,看过没看过的书,都杂乱地堆在一起。只是因为是自己选过、买过、品过的东西,总是能够很快找到所需要的书,若是换了另外一个人找我借一本教材,恐怕是很难从“垃圾山”一般的书堆中自己找到想要的教材。
2013年,我**次有了一个自己独立的办公室。办公室面积不大,但是在我的坚持下,配备了一个很大的书柜。书柜有4层书架,可以放一百二三十本书,这些书放在书架上,直接就可以取阅,来办公室的客人也能够看到书的名字。书架两侧还各有一扇木头的拉门,里面是柜子和架子,挤挤各自可以放两百来本书,但是从外面看不到,取阅也不太方便。我选了三类书放在明面的书架上,一是自己特别喜欢,也特别能表达自己兴趣的书;二是短期内可能就会阅读的书,一般都是新近购买的书籍;三是经常使用的工具书。其他用得相对较少的书,或者刚刚看过的一些书,就只能退让一步,躲到拉门后面了。
对于一个爱书的人,怎么样排列自己的书,成了一个幸福的问题。书排列得好,既方便一下子找到想要的书,也方便购买新书后能够一下子插入到合适的位置,不至于书越多越乱。可以用来排列图书的办法很多,例如按照出版社的名字、按照作者的名字、按照图书的题目等,甚至可以按照图书书脊的颜色、图书的重量、页码、定价、字数等。我有一次到一个朋友家,看到他家卧室里面一个很小的书柜,也就五十本书的规模吧,竟然是按照颜色排列的。我好奇地问他为什么如此,他说是小女儿排的,而且非要如此,一旦有些变动,就又哭又闹的。
图书的重量、字数等,其实是很好的标识,因为重量或者字数完全一样的书很少,基本上可以**确定一本书。但是用这个来排列图书并不合适,一是要随时确定图书的重量和字数并不容易,尤其是后者,难道我新买一本书都要数一数字数吗?二是每次找书的时候,一般都是和书的内容有关,例如想找一本图论方面的研究生教材,查阅一个定理的文献出处,而不会想找一本二十一万一千零四十九个字的书。一般而言,连续的几次找书,可能出于类似的目的(找离散数学的相关教材和专著用于备课),或者相近的兴趣(这两月专攻沧月的小说及相似的玄幻作品),而不太可能一段时间内主要都找白色封皮的书或者按照从重到轻的顺序读书。
所以我想了又想,还是按照图书内容的分类来进行排列,包括小说、散文、诗歌、传记、历史、社会学、经济学、哲学、科普、科学专著、教材、工具书……同一类的图书,再按照作者姓名的字母序进行排列。后者倒是很好办,因为作者的名字是明确的,不会有误差。前者却不是图书固有的特征,而是经过某种非标准化的手段处理得到的,因为有很多个人的因素在里面——一本书可能属于很多不同的类别,既可以看成科学专著,也可以看成教材,取决于我自己的判断。不过不管怎样,这种符合使用习惯的分类,让我的书架变得非常清晰整齐,查书换书也非常方便。
因为把图书分多少类,怎么进行分类,都有个人的因素在里面,所以也会带来一些不便。我中学的时候有一个很好的朋友,曾经给我介绍过很多作者,既包括当时刚刚崛起的黄易的连载,也包括那个时候还不太出名的昆德拉和村上春树。现在快二十年过去了,我很想知道我们俩买书和看书的习惯还一样吗?遗憾的是,当你的书多到一定程度后,如果你没有办法直接记得哪些书你买过,要想计算有多少比例的书是重复的,就是件麻烦的事情——因为两个人对图书的分类和排列的方式不同,找起来特别费劲。这个时候,如果有一个人是按照页码进行排列,那就方便了,因为页码一翻就知道,而且一本书在甲手上是二百四十九页,到了乙手上不可能变成二百五十页。
自从开始打点自己的书柜,我租住的房子都变得更加干净了,也终于明白为什么需要采用中国图书分类号才能够管理一个图书馆。我真正梦想中的书柜,是按照图书的喜爱程度排序的。如果大家都这样排序,当我新遇到一个女孩子的时候,我就可以问她*喜欢的十本书,然后在我“心中的书柜”中查查这十本书的顺序。如果排名都比较靠前,那就可以继续交往了。这种方法可以避免我每次见到一个女孩子,总是忍不住询问“你是做什么方向的?”,“有没有简历可以给我简单看看?”等等尴尬的问题。
所以说,都按照中图分类号排列,是一种美;都按照自己心中喜欢的程度排列,也是一种美。两种美不知道哪个更美的时候,就不妨兼而得之。
周涛
电子科技大学互联网科学中心主任、教授、博士生导师
|
|