2010-09-20 5 views
8

Per la maggior parte delle attività di programmazione, hai una buona scelta di lingue tra cui scegliere, e buone comunità solide dietro a molte di esse. Ma quando hai bisogno di lavorare con un database, c'è davvero una sola scelta praticabile al giorno d'oggi: SQL. Certo, ci sono diverse aziende con diverse implementazioni e dialetti, ma siete ancora alla ricerca le cose conIn che modo SQL è diventato il linguaggio dominante del database?

SELECT columns 
FROM table 
JOIN other_table ON criteria 
WHERE other_criteria 

Non è stato sempre così, però. Ancora nei primi anni '90, non c'era un unico modo ovvio per interagire con un database. Ma oggi c'è. E con il modo in cui i linguaggi dei computer tendono a proliferare piuttosto che a convergere, lo trovo un po 'strano. Quali fattori storici e tecnici hanno portato al dominio quasi completo di SQL del dominio di accesso al database?

risposta

6

E 'come questa citazione di Winston Churchill:

In effetti, è stato detto che la democrazia è la peggior forma di governo, eccezion fatta tutte quelle altre forme che sono stati provati di volta in volta.

Esistevano tecnologie di database alternative prima del 1970, quando fu proposto per la prima volta il modello relazionale. Ci sono state alternative per tutto il tempo da allora, e ci sono new alternatives today.

Ma di tutte le alternative, nessuna soluzione oltre SQL offre un buon equilibrio per:

  • standardizzazione diffuso
  • prodotti popolari e longevi come Oracle
  • Gioca bene con molti di programmazione delle applicazioni lingue
  • supporto per la modellazione dei dati formali, forte l'integrità dei dati, transazioni ACID
1

Codd e Churchill a parte, SQL non è un linguaggio orribilmente brutto per la definizione e l'interrogazione di set di dati basati su tabelle. Come un altro generale ha detto, "È arrivato il primo con il più alto".

0

Un fattore è che i dati persistono. È molto più difficile sostituire/migrare i dati di una società rispetto alle sue applicazioni. Le applicazioni possono andare e venire, codificate nell'ultimo linguaggio del "sapore del mese", ma la piattaforma di database continua a vivere. Questo è un po 'come un effetto QWERTY. Mentre il layout della tastiera QWERTY è noto per essere inefficiente, persiste perché ci sarebbe un costo enorme nel passaggio a qualsiasi altra cosa.

In secondo luogo, c'è una massiccia dominazione del mercato da parte di Oracle e IBM (e più recentemente Microsoft). Anche se potrebbero non essere d'accordo su ogni dettaglio, nessuno dei due ha visto un vantaggio per un'interfaccia non SQL ai propri database. Ho usato Ingres nei primi anni '90 quando il suo QUEL era stato eliminato da SQL.

In terzo luogo, c'è un vantaggio per gli sviluppatori di applicazioni (in particolare SAP e Oracle) di avere una piattaforma standard (ish) su cui sedersi.

Suppongo che il rovescio della medaglia di questa domanda sia perché abbiamo bisogno/vogliamo così tanti linguaggi di programmazione diversi.

Problemi correlati