2010-01-19 51 views

回答

1

试着用你最喜欢的编程语言做一些使用数据库的简单应用程序。通过实践学习。当你遇到问题时,阅读DBMS文档并学习。

2
 
1) choose a target database, Oracle, MySQL, MS SQL... 
2) buy a good book, 
3) participate discussion in community. 
0) of course, setup an env to play around... 
+1

在开始做之前,您需要在THEORY上找到一本好书!您可以了解每种RDBMS实现的具体情况,但如果没有良好的信息设计和建模基础,这样做会让您感觉不好。 – 2010-01-19 20:32:40

3

不要别人怎么建议 “边干边学”。

这是猴子式的学习。

人类智力/知识已经远远超出了对于大多数物种标本而言,“通过犯错学习”仍然是可能的/有成效的。

相信我,如果你只是走下“专心学习”的道路,你最终会做的唯一事情就是重复几百万人在你面前犯的同样的错误。

在这里,我可以第二个其他答案建议的唯一事情是“买一本好书”。但是“成为一本好书”的确意味着它应该全面涵盖理论。否则,你很可能最终建立像罗马人建造他们的aquaducts一样的数据库应用程序:过度某些事情“只是为了安全起见”。 (这正是那些罗马工程师在建造那些通常仍然存在于今天的纪念碑时所完成的工作,因为没有任何对重力和混凝土跨度等事物的认识/理解:他们投入几十块多余的砖块,但并不真正知道它们是否真的需要它们,但它们的世界并不像我们的那样具有经济竞争力。)

1

我也建议你拿一本好书(或更多,性能调整是一个非常复杂的主题,它通常在一个单独的书中介绍)在一个主要数据库上(无论你选择哪一个首先学习)。你需要学习

主题是(至少):

查询包括使用的连接(如果你不完全理解加入,你不能做任何事情,除了最简单的查询,否则你可能得到结果集是不正确。你不能对联接如果数据具有意义学习太多。

,你必须了解如何判断你是生产的结果是正确的结果。

正常化 - 如果你不理解规范化,你不能设计一个有效的关系数据库ry和外键。千万不要设计一个数据库表,没有办法唯一标识一条记录。

集合论 - 你必须学会​​如何操纵记录组而不是循环记录。

性能 - 如果无法及时获得结果,则没有人会使用您的软件。数据库中的设计应仔细考虑性能,因为数据库在执行不良时不容易重构,而且有许多技术比其他技术能够产生相同的结果更快。你应该知道这些是什么,而不是使用表现不佳的人,因为你发现他们更容易理解。

数据完整性 - 如果你不能依赖数据是正确的,你没有一个有用的数据库。您应该知道如何确保数据与其他数据具有正确的值和关系。这还包括使用正确的数据类型(例如,存储日期作为日期时间或日期数据类型)。

安全性 - 包括防止SQL注入攻击和可能的内部欺诈。

约束和触发器以及存储过程和用户​​定义的函数。

最后,在数据库设计中不要使用面向对象的思想。关系数据库通常使用您在面向对象编程中不会使用的工具和技术。这是一个不同的主题,因此受到不同的规则和限制。

3

我不是一个没有一个真正的应用程序应用它的学习的忠实粉丝。

关于建模和设计的书籍都很好,但所有这些建议都需要放在应用程序的上下文中。

我已经看到了我的“可怕”数据模型的份额,可以很好地适用于应用程序。虽然有一个“好设计”的纯洁性,但简单的事实是,并非所有事情都需要“好设计”。或者,更好地说,对于一个应用程序的“优秀设计”可能与另一个应用程序完全不同。

很多简单的应用程序在“愚蠢”,“笨”,“坏”设计中表现良好。

很多学习都是从做错事情发生的。

为了解释托马斯爱迪生,“进步,我取得了很多进展,我知道有一千件事情不起作用。”

很多东西在“现实世界”中应用时都比较容易学习,然后根据该标准判断它是否正常工作,而不是简单地将其固定在书中读取的东西上,但未应用。

“优秀设计”的好处是它可以很好地与“代码有动量”模型配合使用,具体而言,一个糟糕的设计一旦根深蒂固,难以重构或移除并用一个好的设计替代,所以你想要先从一个好的设计开始。这就是说,作为一个必然结果,特别是如果你盲目地追随许多关于建模和体系结构的书籍,你最终会遇到一些简单的应用程序,这些应用程序在工程设计上是非常糟糕的。对于在应用程序中根本不存在或不存在的情况,有许多不必要的代码。

游戏在“完美”解决方案和“可行解决方案”之间找到了平衡点。

因此,阅读您喜欢的所有书籍,并将其应用于对您有价值的东西,然后在您成长的过程中修复错误。不是每个人都应该从零开始,你想要“站在巨人的肩膀上”,但重要的是要理解巨人们首先要了解的原因,以便更好地理解为什么以及在什么情况下他们提倡他们选择。