学习关系数据库设计有哪些好的参考资料?

时间:2011-04-08 17:50:24

标签: mysql relational-database

所以说你已经知道如何用数据库做基本的事情,例如创建它们... :)并且您了解基本概念,例如视图和连接......以及基本的SQL语法......但是您只是不觉得您的解决方案遵循“最佳实践”或甚至“正确”。

在哪里可以阅读一些相对严谨的内容,但直接指向某人试图构建数据库驱动的网站?可以说什么时候/为什么连接是坏的,何时缓存,什么类型的查询是昂贵的,可能有一些练习和提示/解决方案?还有一点点数学的东西?

像电子书或一些讲义一样的东西可能是最合适的,但欢迎任何建议!

5 个答案:

答案 0 :(得分:5)

  1. 与比你更有经验的人合作
  2. 犯了很多错误......并确保你向他们学习!
  3. 开始阅读有关关系数据库的书籍
  4. 了解特定dbms(特别是优化器)的内部详细信息
  5. 唯一真正的捷径是#1。

    一旦开始对建模充满信心,就可以开始利用特定dbms内部的知识。以适合您的特定dbms的方式倾斜次要设计选择可能是一个巨大的回报。 (在MySQL中会想到固定长度的记录和聚类)。

    你还需要一本关于关系数据库设计基础的厚厚无聊的书,以打动你的朋友和同事。我找到的最好的书就是C.J Date的An Introduction to Database Systems。除了与作者一样厚重和乏味之外,遗憾的是它还有一些关于规范化和关系理论主题的最佳材料。

    我对Celko的书籍提出了第二次@Cade Roux建议,特别推荐“适用于Smarties的SQL”或“数据和数据库”。

答案 1 :(得分:0)

A Developer's Guide to Data Modeling for SQL Server: Covering SQL Server 2005 and 2008

现在我知道这不是直接针对MySQL的,但这本书很容易理解,并且只是在整体设计问题上提供了非常丰富的信息。我还假设信息从一个服务器到另一个服务器有一些基本的转移。 (您可以将其作为电子书和普通书籍获取)

希望这有帮助。

答案 2 :(得分:0)

问题是在数据库中没有任何东西被切割和干燥(就像它在其他地方一样)。

这完全取决于背景。

大多数例子通常都是玩具问题,可能会或可能不符合您的实际情况。

一切都取决于。

查询中的JOIN很少执行与执行数据库的额外访问一样糟糕的操作。毕竟,如果您查看执行计划,它将告诉您数据库根据键/索引/等检索行的最有效方式。除非您的SQL错误或您的数据库设计特别毛茸茸且非规范化(允许多个路径),否则优化程序不太可能做出比您的应用程序代码更差的决策,并且它将在一个地方完成所有操作。

为了理解数据库设计,我会指向Celko's books

答案 3 :(得分:0)

许多大学使用的书是“Silberschatz”的“数据库系统概念”:

http://www.amazon.com/Database-System-Concepts-Abraham-Silberschatz/dp/0073523321/

答案 4 :(得分:0)

我无法相信没人提及The manga guide to databases