In &quot;Concepts, Techniques, Methods of Computer Science&quot; (CTM), Peter Van Roy takes the approach of teaching programming not as one paradigm or another, but rather a hierarchy of features for which each new feature set or stratification, maps the whole set to a new paradigm. (He calls this abstract set of features the &quot;kernel language&quot;.) Thus you build up something like Object Oriented Programming from simple parts, the lowest of which is Declarative&#x2F;Functional Programming. Then you can negotiate the tradeoffs effectively.<p>Currently I&#x27;m diving into databases, and I&#x27;m nothing but confused. It seems easy to get lost in the myriad of technologies and their features. I&#x27;m having a difficult time negotiating the tradeoffs, particularly without a real, central model of what a database is or what it&#x27;s design space is. Is there an equivalent to a kernel language in the database world?<p>The cover graphic of the MIT OCW for databases (labeled 6.830 &#x2F; 6.814) seems to give away that there is a basic set of problems that databases need to solve. So I think that a &quot;kernel description&quot; of databases can exist. I&#x27;m wondering if anyone here has come across any.
Ask HN: CTM gave CS the “kernel language”. Is there a “kernel database”?