What is SQL?
Structured Query Language (SQL) is a highly popular domain specific language (DSL) used to communicate with relational database management systems (RDBMS). SQL is a standard that is based on the "relational model", defined by professor E.F. Codd, of IBM during the 1960's and 1970s. Codd defined both a relational algebra and a relational calculus as foundational models in his endeavor to reinvent database management systems. This led to his seminal 1970 paper "A Relational Model of Data for Large Shared Data Banks". Commonly used implementations of SQL include Oracle, IBM's DB2, Postgres, MySQL, and SQLite. Notably, SQLite is not a client/server system, but rather an embedded database that is used as a core application-level storage system in macOS, iOS, and Android. There has been much debate over what constitutes a "real" relational system, as some widely used database systems famously lacked features that Codd considered foundational to the relational model, such as "foreign keys". The flexibility of SQL has proven so powerful that many non-relational systems (e.g. Apache Spark) have implemented subsets or variants of the language to make it easier for people to draw upon their capabilities.