现代数据库系统具有大量功能。你同意我的意见,要学习一个数据库,你必须忘记在另一个数据库中学到的概念。例如,每个数据库都会实现与其他数据库不同的锁定。因此,将一个数据库的概念带到另一个数据库将是一个失败的方法。还有其他一些例子,两个数据库的表现非常不同。
因此,在开发数据库驱动的系统时,程序员是否需要详细了解数据库,以便他们对性能进行编码?我认为让DBA稍后要求性能是不合适的,因为他的工作是只维护数据库并在紧急情况下帮助开发人员,但不是定期。
您认为开发人员需要深入了解数据库的程度如何?
答案 0 :(得分:6)
我认为这些是最重要的事情(从最重要到最不重要的IMO):
幸运的是,今天有一些很棒的FOSS和免费商业数据库可以用来学习db基础知识。
答案 1 :(得分:3)
我认为开发人员应该很好地掌握他们的数据库系统是如何工作的,而不管它是哪一个。在做出设计和架构决策时,他们需要了解数据库的可能含义。
答案 2 :(得分:3)
就我个人而言,我认为你应该知道数据库是如何工作的,以及关系模型及其背后的修辞,包括所有形式的规范化(尽管我很少看到需要超越第三范式)。关系模型的核心概念不会从关系数据库变为关系数据库 - 实现可能会,但那又如何呢?
如果开发人员不了解数据库规范化,索引等背后的基本原理,那么如果他们从事非平凡的项目,他们将会受到影响。
答案 3 :(得分:3)
我认为这取决于你的工作。如果您是拥有专门DBA的大公司的开发人员,那么您可能不需要了解太多,但如果您在一家小公司,那么了解有关数据库的更多信息可能会非常有用。在小公司,你可以戴一顶以上的帽子。
在任何情况下都能了解更多信息。
答案 4 :(得分:3)
熟悉关系数据库理论,熟练掌握标准SQL语法,知道存储过程,触发器,视图和索引是什么,这当然不会有什么害处。显然,在开始使用该数据库之前,学习SQL的特定于数据库的扩展(T-SQL,PL / SQL等)并不是非常重要。
我认为在开发数据库应用程序时对数据库的基本理解非常重要,就像了解软件运行的硬件一样重要。您不必是专家,但您不应该完全不知道软件与之交互的任何内容。
也就是说,作为应用程序开发人员,您可能不需要做很多SQL。大多数与数据库的交互应该通过DBA开发的存储过程完成,我不是在应用程序代码中包含SQL代码的忠实粉丝。如果您的查询在存储过程中,那么DBA可以更改存储过程的实现,甚至是数据库模式,只要结果相同,就不需要对应用程序代码进行任何更改。
答案 5 :(得分:2)
如果您不确定如何最好地访问数据库,您应该使用经过试验和测试的解决方案,例如Microsoft的应用程序块 - http://msdn.microsoft.com/en-us/library/cc309504.aspx。通过检查代码的实现方式,它们也可以证明对您有所帮助。
答案 6 :(得分:0)
关于Sql查询的基本知识是必须的。那么你可以开发简单的系统。但是当你要实现复杂系统时,你应该知道规范化,程序,功能等。