Relational database management system: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 18:
 
== Cosa non è un database relazionale ==
Come già detto, oggi non esiste ancora uno [[standard]] che definisca esaurientemente il significato del termine "relazionale" riferito ai database, tuttavia si è concordi nell'affermare quanto segue: un database ''non'' può essere detto relazionale solo perché ci sono relazioni fra [[tabella (database)|tabelle]].
 
Dal punto di vista matematico una [[relazione (matematica)|relazione]] è un [[insieme]] formato da elementi distinti fra loro; ciascun elemento è una [[n-upla]] dove ciascuna delle n componenti dell'elemento è presa da un determinato dominio (numeri interi, numeri decimali, stringhe, caratteri...). A livello di database si riprende (con poche e sottili differenze) la definizione matematica di relazione.
 
Un database è relazionale se basato su tabelle: la tabella in effetti rappresenta una relazione.
A conferma di ciò il fatto che il modello relazionale nasce nel 1970 per opera di Codd, mentre le "relazioni" fra tabelle (implementate ad esempio mediante una ''[[foreign key]]'') sono un'aggiunta al modello relazionale, tanto che la possibilità di CREARE a livello software delle "connessioni" fra due o più tabelle è stata messa a disposizione dai RDBMS solo un paio di decenni dopo.
 
Inoltre se si aderisse aderendo alla errata teoria che "un database è relazionale perché ci sono relazioni fra tabelle" si giungegiungerebbe ad una fondamentale [[contraddizione]], ovvero che un database in cui non sono presenti vincoli interrelazionali (ovvero "connessioni" fra tabelle diverse) non può essere un database relazionale. Dato che però i database relazionali nascono ben prima della possibilità di esplicitare i vincoli interrelazionali (in particolare il [[vincolo di integrità referenziale]]), si giungerebbe all'assurda conclusione che Codd avrebbe sbagliato perché il modello di database da lui progettato, che non faceva uso di tali vincoli, non era relazionale. Contemporaneamente, però, tutti sono concordi nell'attribuire a lui la paternità del modello relazionale. È impossibile dunque che Codd contemporaneamente sia e non sia il padre di tale modello. La spiegazione di questa contraddizione è che Codd è effettivamente il padre del modello relazionale inteso come modello basato su relazioni matematiche, ovvero su tabelle.
Dato che però i database relazionali nascono ben prima della possibilità di esplicitare i vincoli interrelazionali (in particolare il vincolo di integrità referenziale), si giunge all'assurda conclusione che Codd avrebbe preso un buco nell'acqua perché il modello di database da lui progettato non faceva uso di tali vincoli e quindi non era relazionale. Contemporaneamente, però, tutti sono concordi nell'attribuire a lui la paternità del modello relazionale.
È impossibile dunque che Codd contemporaneamente SIA e NON SIA il padre di tale modello. La spiegazione di questa contraddizione è che Codd è effettivamente il padre del modello relazionale inteso come modello basato su relazioni matematiche, ovvero su tabelle.
 
== Note ==