Relational database management system: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 6:
== Storia del termine ==
Codd ha introdotto il termine nei primi anni del [[1970]]. L'espressione compare per la prima volta nel testo del seminario "''A Relational Model of Data for Large Shared Data Banks''" ("Un modello relazionale di dati per gestire grandi banche dati condivise)"<ref>[http://portal.acm.org/citation.cfm?id=362384.362685&coll=ACM&dl=ACM&CFID=83109698&CFTOKEN=48563162 A Relational Model of Data for Large Shared Data Banks].</ref>. In questo scritto ed in altri successivi, Codd definì cosa intendeva per "relazionale". Una nota definizione di ciò che costituisce un RDBMS è data dalle [[12 regole di Codd]]. Tuttavia, molte delle prime implementazioni del modello relazionale non erano conformi a tali regole, per cui il termine venne gradualmente cambiato fino a descrivere una più ampia classe di sistemi di basi di dati. I requisiti minimi per cui quei sistemi venissero chiamati RDBMS erano:
* deve presentare i [[dato|dati]] all'[[utente]] sotto forma di [[relazione (matematica)|relazioni]] (una presentazione a [[tabella (database)|tabelle]] può soddisfare questa proprietà)
Riga 24:
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.▼
▲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.
Aderendo perciò alla tesi "un database è relazionale perché ci sono relazioni fra tabelle" si giungerebbe ad una fondamentale [[contraddizione]], ovvero che non sarebbe un database relazionale quel database privo di vincoli interrelazionali (ovvero "connessioni" fra tabelle diverse). Poiché i database relazionali sono nati prima della possibilità di esplicitare i vincoli interrelazionali (in particolare il [[vincolo di integrità referenziale]]), si giungerebbe quindi all'assurda conclusione che Codd non avesse sviluppato un modello realmente relazionale, perché non faceva uso di tali vincoli. Tuttavia si è unanimemente concordi nell'attribuire a lui la paternità del modello relazionale, anche se è impossibile che Codd contemporaneamente sia e non sia il padre di tale modello. Compresa questa evidente contraddizione, si può quindi concludere che Codd sia effettivamente il padre del modello relazionale, inteso semplicemente come modello basato su relazioni matematiche, ovvero su tabelle, al di là degli sviluppi degli anni successivi.
|