需要一本数据库设计书

Gan*_*alf 23 database-design

我正在设计一个数据库,它在我的表之间有很多关系,我需要一本很好地教授数据库设计的书。我正在寻找一本书,其中广泛涵盖了简单和复杂的表关系,也许书中有案例研究。

Eri*_*elp 11

这两个人都写了几本书,但如果你想要更直接的东西,我会链接到他们的博客。

路易斯戴维森:http : //drsql.org
保罗尼尔森:http : //www.sqlserverbible.com/


Dav*_*ett 9

SQL Antipatterns值得一读,以了解您不应该做什么以及为什么不应该做的一些提示(以及在什么情况下可以合理地忽略这些规则)。


小智 8

Database in Depth: Relational Theory for Practitioners , by CJ Date 对数据库设计提供了一个很好的、简短的、信息量很大的介绍。


Tod*_*ett 5

区分设计的概念、逻辑和物理级别很重要。

概念层面

两个优秀且互补的资源是:

  1. David Hay 的企业模型模式。本书列出了大多数企业中的基本模式,并提供了清晰思考如何建模世界的精彩指导。它主要侧重于发现实体类型和关系。
  2. Fabian Pascal 的论文Business Modeling For Database Design。这篇论文是 Fabian 实用数据库基础系列的第一篇,是 David 的书的完美伴侣,因为它主要关注所有各种业务规则的发现和分类,以及它们如何映射到逻辑数据库设计中的约束。

逻辑层

关系模型与所有其他数据模型的区别在于,它是一个逻辑模型,它描述了用于呈现数据的逻辑结构(关系)、一组操作该逻辑结构的运算符(关系代数)以及一组数据完整性规则,以确保存储在 DBMS 中的数据尽可能忠实地代表现实世界。学习逻辑数据库设计的三个优秀资源是:

  1. Fabian Pascal 的实用数据库基础系列(如上所述)。本系列的其余论文对逻辑数据库设计的各个部分进行了简明易懂的介绍。Fabian 的天赋是他能够将非常复杂的主题正确地提炼成我们其他人可以理解的语言。
  2. Toon Koppelaars 和 Lex deHaan 的数据库专业人员应用数学。这本精彩的书为植根于集合论和逻辑的逻辑数据库设计提供了合理的方法论。它介绍了基础知识,然后还介绍了如何应用它们在 Oracle 中创建功能齐全的数据库。
  3. CJ Date 的计算专业人员关系理论。CJ Date 的工作量很大,你可以从中受益。这本特别的书是最近(2013 年)修订版,取代了早期作品,真正阐述了关系数据库模型的基础知识。

身体水平

身体水平是唯一的性能、磁盘和内存存储结构以及可扩展性所在的地方。我不擅长这个领域,但可以说掌握这个级别主要是努力掌握您正在使用的给定 DBMS。DBMS 是一个如此复杂的软件,如果您认为自己可以掌握整个事物,更不用说掌握多个,那您就是在自欺欺人。出于这个原因,我建议坚持概念和逻辑级别并创建一个合理的逻辑数据库设计,然后与专门研究目标 DBMS 的优秀 DBA 一起开发物理设计。然而,一个非常好的物理设计来源是 Sam Lightstone、Toby Teorey 和 Tom Nadeau 的Physical Database Design,它列出了大多数 DBMS 共有的基本主题和选项。