Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 为什么应用程序开发人员可以做数据库的工作,而数据库开发人员却试图避开应用程序的工作?_Database_Database Design_Oop - Fatal编程技术网

Database 为什么应用程序开发人员可以做数据库的工作,而数据库开发人员却试图避开应用程序的工作?

Database 为什么应用程序开发人员可以做数据库的工作,而数据库开发人员却试图避开应用程序的工作?,database,database-design,oop,Database,Database Design,Oop,根据我的经验,“后端”(数据库开发人员)和“前端”(应用程序开发人员、客户端和服务器端)之间一直存在争议 关于这个问题,酒吧里进行了许多热烈的讨论 我只是想知道,是因为人们的思维方式不同,还是因为懒惰而想学习更多知识,并对自己所知道的东西感到舒服,还是因为其他原因。我相信这是因为用sql编程看起来很简单,要想开始,你必须具备少量的知识(对于程序员来说,学习SELECT*FROM Table非常简单)。应用程序编程的方式不同。它在很短的时间内变得非常复杂,这让很多人感到沮丧。现在我并不是说数据库人

根据我的经验,“后端”(数据库开发人员)和“前端”(应用程序开发人员、客户端和服务器端)之间一直存在争议

关于这个问题,酒吧里进行了许多热烈的讨论


我只是想知道,是因为人们的思维方式不同,还是因为懒惰而想学习更多知识,并对自己所知道的东西感到舒服,还是因为其他原因。

我相信这是因为用sql编程看起来很简单,要想开始,你必须具备少量的知识(对于程序员来说,学习
SELECT*FROM Table
非常简单)。应用程序编程的方式不同。它在很短的时间内变得非常复杂,这让很多人感到沮丧。现在我并不是说数据库人员的智能有所下降,只是他们做的事情看起来比构建应用程序更容易。

因为程序员经常必须理解数据库并与之交互ses可以完成他们的工作,但是DBA通常不需要做任何编程(在DBMS之外)来完成他们的工作。

如果你开发应用程序,那么很有可能你迟早要将应用程序连接到后端


相反,情况并非如此。

这是关于抽象级别的。数据库是典型业务应用程序(软件方面)中的最低抽象级别。在抽象的外层工作的开发人员比在内层工作的开发人员更可能了解内层

这是因为当抽象的内层不知道依赖它们的外层时,它们的性能最好


这样,一个网站的演示文稿中的设计者可以知道他们所依赖的服务器端代码,因为它们与服务器交互。但是服务器上的开发人员根本不需要知道任何设计。

< P>我认为它源于必要性。如果你考虑每个人的角色,程序员需要去数据库。se相关的东西远远超过数据库工作人员需要做的编程任务。

我可能会重新表述这个问题:为什么(一些)应用程序开发人员认为他们可以做“数据库东西”,而实际上不必费心去正确理解它?而数据库开发人员(通常)不这样做假设他们可以在没有培训和经验的情况下编写一个好的应用程序!

我想说这是基于需要知道的基础。应用程序开发人员通常需要知道如何连接到数据库、添加记录、删除记录等。这一点在诸如LINQ之类的新技术中得到了进一步发展,在LINQ中,开发人员可以在自己的数据库中编写数据库查询实际代码


另一方面,数据库开发人员只需要知道如何编写数据库查询,因为这是他们的工作,可能不需要担心应用程序级别的代码。

根据我的经验,开发了“数据库”和“应用程序”(按照您的命名法…),我想州政府的管理有很大的不同

正确设计的数据库总是处于“干净”状态,并且每个事务都保持这种一致性。因此,在开发数据库时,必须非常清楚地将数据抽象到表中,以及哪些更新是合法的等等


我发现大多数应用程序开发人员(包括我自己:)在保持应用程序中的一致状态方面做得非常草率。任何一个非平凡的接口都比一个普通的数据库有更多的可能状态需要管理,而且要确保它始终处于干净状态并不容易。分析用户将要执行的每一个可能的步骤序列也比较困难。

根据我的经验,应用程序开发人员并没有完成所有的数据库工作。考虑与数据库、备份、复制等相关的所有管理:

典型的DBA(至少在我参与过的大多数项目中)负责与项目数据库相关的所有事务—所有管理、与应用程序开发人员合作进行性能调整、提供应用程序使用的SQL的建议、执行一些存储过程编码、创建(或至少审查和咨询)物理数据库设计等


那么,仅仅从应用程序开发人员的角度来看,数据库人员不是“懒惰”吗,或者“对他们已经知道的一切都很好”吗?我自己也是一名应用程序开发人员,对于我们在项目中使用的DBs,有很多事情我都不知道。

我所受教育的一部分确保了我对数据库的工作原理有了相当的了解。我进入这个领域是希望做数据库工作,而且很多。我是一个网络应用的家伙;我想这是一片领土

作为一名开发人员,我的两份工作是在两家商店,最好用tiny(包括我自己两人,然后只有我)和tiny(3名开发人员,短暂地拥有第四名)来形容。我没有观察到立即的业务需求,也没有在任何有资源雇佣专门的DB人员的地方工作过。我可以设想一些情况下会发生变化(包括一份新工作:P)

至于其他方面,我同意抽象也是一个因素,而作为开发人员,我们是处于领先地位的。我无法想象在没有数据库技术的情况下做Web应用程序开发,我认为SQL/DB管理既是一个重要工具,也是一个需要保持敏锐的领域。

我要补充的是,我将数据库端视为自己的字段。有一些技能可以在两者之间转换,但是我需要掌握很多专业知识才能更好地使用它,而且作为一个好的程序员并不一定意味着我在后端也做得很好(幸运的是,我不是一个好的程序员;)。另外,我很肯定她是这么说的。

2个原因:

  • DB供应商促进了坏SQL,并且
  • SQL是