Tvärtemot vad folk tror är SQL och noSQL egentligen bara två sidor av samma mynt. NoSQL-databaser, som drivs av deras löfte att lösa problemet med att destillera värdefull information och affärsinsikt från big data på ett skalbart och programvänligt sätt, har nyligen varit ett av de hetaste ämnena inom vårt område. Med en uppsjö av öppen källkod och kommersiella erbjudanden (Membase, CouchDB, Cassandra, MongoDB, Riak, Redis, Dynamo, BigTable, Hadoop, Hive, Pig,...) och en omgivande kakofoni av tekniska termer (Paxos, CAP, Merkle träd, skvaller, vektor klockor, slarviga beslutförhet, MapReduce,...), dock är det svårt för företag och utövare att se skogen för träden. Den nuvarande noSQL-marknaden uppfyller de tre egenskaperna hos en monopolistiskt konkurrensutsatt marknad: hindren för inträde och utträde är låga, det finns många små leverantörer och dessa leverantörer tillverkar tekniskt heterogena och mycket differentierade produkter. 12 Monopolistiskt konkurrensutsatta marknader är oförenliga med förutsättningarna för perfekt konkurrens. På lång sikt kommer därför monopolistiskt konkurrenskraftiga företag att göra en nollvinst på ekonomin. I början av 1970-talet befann sig databasvärlden i ett liknande bedrövligt tillstånd. 14 Ett överflöd av databasprodukter avslöjade många detaljer om genomförandet på låg nivå och, som databaspersoner brukar säga, tvingade programmerare att arbeta på den fysiska nivån i stället för på den logiska nivån. Landskapet förändrades radikalt när Ted Codd föreslog en ny datamodell och ett strukturerat frågespråk (SQL) baserat på det matematiska begreppet relationer och utländska/primära nyckelrelationer. 4 I relationsmodellen lagras data i konceptuellt enkla behållare (tabeller av rader), och frågor om dessa data uttrycks deklarativt utan kunskap om den underliggande fysiska lagringsorganisationen. Codds relationsmodell och SQL tillät implementationer från olika leverantörer att vara (nära) perfekta substitut, och gav därmed förutsättningar för perfekt konkurrens. Standardisering på relationsmodellen och SQL skapade en sekundär nätverkseffekt kring kompletterande producenter som utbildare, verktygsleverantörer, konsulter, etc., alla inriktade på samma underliggande matematiska principer. Skillnaderna mellan faktiska implementationer av relationsdatabaser och SQL-dialekter blev i stor utsträckning irrelevanta. Idag är den relationella databasmarknaden ett klassiskt exempel på ett oligopol. Marknaden har några stora aktörer (Oracle, IBM, Microsoft, MySQL), hindren för inträde är höga, och alla befintliga SQL-baserade relationsdatabasprodukter är till stor del oskiljaktiga. Oligopolier kan behålla höga vinster i det långa loppet; idag databasindustrin är värd uppskattningsvis $ 32 miljarder och fortfarande växer i dubbla siffror. I den här artikeln presenterar vi en matematisk datamodell för de vanligaste noSQL-databasernananamely, nyckel/värderelationer-och visar att denna datamodell är den matematiska dualen av SQL:s relationella datamodell av utländska/primära nyckelrelationer. Efter etablerade matematiska nomenklatur, hänvisar vi till dualen av SQL som coSQL. Vi visar också hur en enda generalisering av relational algebra över uppsättningar-namely, monader och monadförståelser-
Till exempel, Meijer och Bierman REF visade att en enda generalisering av relational algebra över uppsättningar-namely, monader och monadförståelser-formar grunden för ett gemensamt frågespråk för både SQL och noSQL.
A co-Relational Model of Data for Large Shared Data Banks