反关系数据库anti-RDBMS“邪教”


在21世纪初,许多网络公司意识到DBA并不了解新公司的需求,因此 "阻碍 "了 "快速发展和突破 "的进程。因此,他们开始避开RDBMS和/或DBA,在应用程序代码中重新创造许多功能。RDBMS开始仅仅被用作 "哑巴存储",其他功能被转移到应用程序代码中。

有一个文化错位的问题,我对此没有异议。
但这不是一个技术问题,而是一个管理和培训问题。

DBA需要接受关于启动实践和需求的教育。

RDBMS的技能因此而萎缩,这样的存储逐渐习惯于通过应用程序和应用程序接口(网络服务和微服务)来做一切事情。我对新的想法持开放态度,但我不认为他们以应用为中心的数据方法是一种改进。

RDBMS能更好地完成大多数面向数据的事情,因为它们是以数据为中心建立的。把所有的东西都JSON化也只是浪费了大量的工作,有更多的代码,更多的层次,以及更多的东西需要管理和破坏。

例如,一个存储过程通常是最简单的解决方案,但他们却把它变成了一个JSON网络服务。
KISS通常决定了一个存储过程。

而数据库也经常被用作许多 "子应用程序"(非单体)之间的通信管道,这样一来,JSON接口层就成了白忙活了。
YAGNI要求 "跳过它!"。

许多支持者会说 "微服务可以做X,但RDBMS不能"。我向他们证明了这一点,他们说,"嗯,嗯,但是在RDBMS中更难"。结果通常是 "更难",因为他们是应用程序员,而不是DBA,或者不想雇用DBA,因为他们习惯于应用程序和以应用为中心的思维。

(也许对于巨头公司来说,RDBMS并不适合,但我的观察主要集中在非巨头公司。以应用为中心的方法可能更适合 "Web规模",我不知道也不能说,但大多数读者可能不在Netflix规模的公司工作。JSON的粉丝们还声称JSON-wrapping使得交换DB数据变得更容易,但我持怀疑态度;另外,它也很罕见,不需要在前面花上几层:YAGNI。当他们大修数据库时,通常也会大修应用程序,使1对1的互换变得毫无意义)。

此外,许多目前的IT经理是作为一个程序员成长起来的,因此他们认为应用第一,而不是数据库第一,因此不理解如何利用数据库。至少,我感觉到一种文化冲突:应用者与数据库者。有时候,他们暗示DB是过时的,而我只是一个怀旧的老古董。然而,我不认为JSON方式是一个净简化器。

年轻人只是不习惯于充分利用数据库。