Structured Query Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m La transazione: link interni per MySql e DBMS
m Annullata la modifica 97707716 di MarcoMazzon94 (discussione) overlinking
Etichetta: Annulla
Riga 34:
L'SQL nasce nel [[1974]] ad opera di [[Donald Chamberlin]], nei laboratori dell'[[IBM]]. Nasce come strumento per lavorare con [[database]] che seguano il [[modello relazionale]]. A quel tempo però si chiamava [[SEQUEL]] (per questo la corretta pronuncia [[Alfabeto fonetico internazionale|IPA]] di SQL è [ˈɛsˈkjuˈɛl] e quella informale [ˈsiːkwəl]). Nel [[1975]] viene sviluppato un prototipo chiamato [[SEQUEL-XRM]]; con esso si eseguirono sperimentazioni che portarono, nel [[1977]], a una nuova versione del linguaggio, che inizialmente avrebbe dovuto chiamarsi SEQUEL/2 ma che poi divenne, per motivi legali, SQL. Su di esso si sviluppò il prototipo [[System R]], che venne utilizzato da IBM per usi interni e per alcuni suoi clienti. Ma, dato il suo successo, anche altre società iniziarono subito a sviluppare prodotti basati su SQL. Nel [[1981]] IBM iniziò a vendere alcuni prodotti relazionali e nel [[1983]] rilasciò [[DB2]], il suo [[DBMS]] relazionale diffuso {{chiarire|ancor oggi|quando?}}. SQL divenne subito lo standard industriale per i software che utilizzano il modello relazionale.
 
L'[[ANSI]] lo adottò come standard fin dal [[1986]], senza apportare modifiche sostanziali alla versione inizialmente sviluppata da IBM. Nel [[1987]] la [[ISO]] fece lo stesso. Questa prima versione standard è denominata SQL/86. Negli anni successivi si realizzarono altre versioni, che furono SQL/89, SQL/92 e SQL/2003. Tale processo di standardizzazione mirava alla creazione di un linguaggio che funzionasse su tutti i [[Database management system|DBMS (Data Base Management Systems)]] relazionali, ma questo obiettivo non fu raggiunto. Infatti, i vari produttori implementarono il linguaggio con numerose variazioni e, in pratica, adottarono gli standard ad un livello non superiore al minimo, definito dall'Ansi come Entry Level.
 
==Caratteristiche==
Riga 245:
Fino a quando una transazione non ha esito positivo, le modifiche che apporta sono visibili solo per la sessione che ha avviato la transazione. A seconda nel livello di isolamento gli altri utenti potranno accedere a una versione più vecchia dei dati, oppure essere messi in attesa fino al termine della transazione.
 
Non tutti i [[Database management system|DBMS]] supportano le transazioni, mentre altri le supportano solo in determinate condizioni (ad esempio in [[MySQL]] sono supportate solo per alcuni tipi di tabelle). Inoltre il [[Database management system|DBMS]] può limitare le transazioni ad un sottoinsieme dell'SQL (ad esempio, in [[MySQL]], se si lancia un comando DDL la transazione corrente termina).
 
Alcuni DBMS inoltre consentono le transazioni annidate. Le modifiche effettuate da una transazione contenuta in un'altra non sono effettive finché la transazione più esterna non termina con successo.
Riga 404:
* [[Trigger (basi di dati)|Trigger]]
 
Inoltre alcuni DBMS, come [[MySQL]], permettono di creare procedure SQL che vengono eseguite a una data ora una sola volta, oppure ripetutamente a un certo intervallo temporale, come i Cron Job dei sistemi Unix.
 
== Critiche a SQL ==