Counting arguments very carefully? Nearly every SQL library does this for you.<p><pre><code>    cur.execute(&quot;INSERT INTO a (b,c) VALUES (%(a)s, %(b)s);&quot;,
        { &#x27;a&#x27; : a, &#x27;b&#x27; : b })
</code></pre>
Also, SQL is typed, so even if you did fail to count arguments there is a good chance you&#x27;d just detect it the first time you ran it.<p>The article acts as if treating the DB like native structures is somehow innovative and new - it&#x27;s not. <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Object_database" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Object_database</a><p>We mostly abandoned object databases because they sucked. SQL was a huge improvement over them. SQL is a great way to organize and preserve the integrity of a lot of business data.<p>It&#x27;s also a fantastic way to avoid repeated trips to the DB:<p><pre><code>    SELECT * FROM employees AS e 
        WHERE e.department_id = (SELECT id FROM departments WHERE name = &quot;engineering&quot;);
</code></pre>
In Mongo, I&#x27;m pretty sure you need to first lookup engineering, then lookup the employees in engineering. That could be O(# employees in engineering) queries rather than 1.