CAPITOLO V. DATABASE: Il modello relazionale



Documenti analoghi
Modello relazionale: Concetti Base. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Modulo 2 Data Base - Modello Relazionale

Il modello relazionale

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle

Le basi di dati. Lez. 3: Il Modello Relazionale

I modelli logici dei dati

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Unità 3. Modello Relazionale

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Structured Query Language

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

SQL. Lezione 1. Docente: Alberto Belussi

Progettazione concettuale di una base di dati

Il modello logico dei dati

Progettazione concettuale usando il modello Entità-Relazione (ER)

Indicare quale o quali delle seguenti affermazioni sono vere?

Modello Relazionale. Architettura a tre livelli di un DBMS

Strutture dati e loro organizzazione. Gabriella Trucco

Normalizzazione. Definizione

Transcript:

CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono originariamente proposti da Edward F. Codd nel 1970. Egli rilevò per primo che la matematica poteva essere usata per infondere alcuni solidi principi e rigore nel campo della gestione dei database. Il modello di Codd fa uso di termini come tupla, dominio, grado, attributo, dipendenza funzionale e forma normale, che sono alla base del modello relazionale e di cui bisogna comprendere il significato. Terminologia Sono di seguito introdotte alcune delle definizioni primitive più importanti: Una RELAZIONE corrisponde ad una Tabella. Una TUPLA (abbreviazione di n-tupla) della relazione corrisponde ad una riga della tabella. Un ATTRIBUTO della relazione è una colonna della tabella. Un DOMINIO è l insieme dei possibili valori che può assumere uno specifico attributo di una certa relazione. Il numero delle tuple è detto CARDINALITA della relazione. Il numero degli attributi è detto GRADO della relazione. Una PRIMARY KEY (Chiave primaria) è una colonna o una combinazione di colonne con la proprietà di non assumere mai lo stesso valore su righe diverse. E necessaria per la ricerca delle informazioni nella banca dati. Si fa notare che: Ogni riga (tupla) è omogenea con le altre. Pagina 1 di 7

I valori di una casella devono essere atomici, cioè non ulteriormente decomponibili in informazioni più semplici. L insieme di tutti i possibili valori che può assumere un attributo della relazione è detto dominio dell attributo. Più esattamente, ogni attributo deve essere definito su un dominio, ed il valore di ogni sua casella deve essere esclusivamente tra quelli offerti dal dominio. Questo significa anche che esistono valori ammissibili di un certo dominio che potrebbero non apparire mai come valori assunti dall attributo. Il sottoinsieme del dominio composto dai valori effettivamente assunti, il cosiddetto dominio efficace, è detto insieme delle valorizzazioni. TERMINI DEL MODELLO RELAZIONALE Relazione Tupla Attributo Cardinalità Grado Chiave primaria Dominio Esempio EQUIVALENTI INFORMALI Tabella Riga o Record Colonna o campo Numero di righe Numero di colonne Identificatore unico Insieme dei possibili valori Primary Key Attributi Relazione COD. IMP.TO CITTÀ QU.TA SPEDITA 001 Giulianova 12 002 Teramo 15 003 Pineto 12 Tuple 004 Roseto 14 Cardinalità = 4 grado = 3 L attributo CITTA ha per dominio l insieme di tutte le città italiane. L attributo COD_IMPIEGATO ha per dominio l insieme dei numeri interi positivi composti da tre cifre da 001 a 999 Il valore Roma è ammissibile per l attributo CITTA, ma non compare in tabella. Pagina 2 di 7

L insieme delle valorizzazioni dell attributo CITTA è composto dai valori: Giulianova, Teramo, Pineto, Roseto. L insieme delle valorizzazioni dell attributo COD_IMPIEGATO è composto dai valori: 001, 002, 003, 004. Riassumendo: Una relazione non può avere più di due attributi con lo stesso nome, indipendentemente dal fatto che abbiano lo stesso dominio o domini distinti. Relazioni diverse, cioè tabelle diverse, possono avere colonne con lo stesso nome, indipendentemente dal loro dominio. Un attributo è univocamente identificato dalla relazione a cui appartiene. Per identificarlo, è sufficiente farlo precedere dal nome della relazione. Ad esempio, l attributo NOME della relazione IMPIEGATI è univocamente identificato dalla sequenza IMPIEGATI.NOME. Domini di attributi diversi non devono essere necessariamente distinti. E logico pensare che attributi diversi della stessa relazione possano essere definiti su di uno stesso dominio. Esempio Due attributi (di una relazione) ETA e NUM_SCARPA condividono lo stesso dominio, formato da tutti i numeri di due cifre da 000 a 100. Cambia, invece, l insieme delle valorizzazioni per ogni attributo, cioè l interpretazione dei dati forniti dal dominio: mentre è accettabile ETA =78, è inaccettabile NUM_SCARPA=78. La stessa osservazione è estendibile se gli attributi che condividono lo stesso dominio sono su tabelle diverse. E evidente che è possibile confrontare solo dati omogenei, che condividono, cioè, lo stesso dominio. Data Type Il linguaggio utilizzato dai più diffusi DBMS Relazionali per la ricerca delle informazioni è chiamato System Query Language (SQL). Questo deve gestire diverse tipologie di dati che l utente può assegnare ad un attributo. Si elencano alcune delle più diffuse: INTEGER: Numeri Interi FLOAT: Numeri con la virgola CHARACTER: Singoli caratteri alfanumerici o loro composizione non interpretati come numero Pagina 3 di 7

Osservazione E errato associare il data type al concetto di dominio. Il concetto di Dominio è più sofisticato, perché è legato al significato dell attributo. Infatti se è definito un attributo di tipo CHARACTER, non significa che vi appartiene qualunque valida stringa di caratteri. Se in una relazione l attributo CITTA è di tipo CHAR(15), cioè composto da stringhe di lunghezza massima di 15 lettere, il DBMS accetta come valore valido anche la stringa xyzq, che però non appartiene al dominio, poiché non è un nome possibile di città. Tuple E chiaro che un attributo è un insieme di dati omogenei scelti in un insieme più grande detto dominio. Una tupla è identificata come una riga della tabella e costituisce l informazione fornita dalla relazione. L informazione è anche detta istanza. Si dice che una tupla è quella parte della relazione che ne descrive univocamente un istanza. Quindi la tupla è una successione di attributi atomici nel numero necessario e sufficiente a descrive univocamente un istanza. Una relazione è allora un insieme di tuple. Per chiarire ulteriormente il concetto di relazione e tupla è necessario definire l operazione matematica di prodotto cartesiano tra insiemi. Prodotto Cartesiano tra Insiemi (Approfondimento matematico) La definizione matematica di Relazione è sviluppata partendo dai concetti di Dominio operazione di Prodotto Cartesiano tra insiemi. Per definire elementarmente il Prodotto Cartesiano tra insiemi, si ricorre ad un esempio. Esempio Dati 3 insiemi S={s1, s2}, P={p1, p2, p3} e W={w1, w2} il prodotto cartesiano SxP è un insieme i cui elementi sono le seguenti coppie ordinate: SxP={(s1,p1), (s1,p2), (s1,p3), (s2,p1), (s2,p2), (s2,p3)}. Pagina 4 di 7

Il prodotto cartesiano SxPxW genera invece terne ordinate Possibili combinazioni 1 s1 p1 w1 2 s1 p1 w2 3 s1 p2 w1 4 s1 p2 w2 5 s1 p3 w1 6 s1 p3 w2 7 s2 p1 w1 8 s2 p1 w2 9 s2 p2 w1 Ogni terna ordinata (s i, p j, w k ) è un elemento dell insieme SxPxW ed è una possibile tupla della relazione di domini S, P e W. Il numero massimo di terne ordinate = numero massimo di tuple è calcolabile dal prodotto tra i numeri di elementi che ciascun insieme contiene: 2x3x2=12. 12 è il numero massimo di tuple che la relazione può contenere, 12 è quindi la cardinalità massima della relazione. 10 s2 p2 w2 11 s2 p3 w1 12 s2 p3 w2 Definizione di Relazione Data una collezione di Attributi A1, A2,, An che hanno rispettivamente i Domini D1, D2,, Dn (non necessariamente distinti), una Relazione di grado n è un sottoinsieme del prodotto cartesiano D1xD2x...xDn. Quindi una Relazione è un sottoinsieme dell insieme generato dal Prodotto Cartesiano fra i Domini dei suoi Attributi. Il numero degli Attributi della Relazione è detto GRADO e il numero delle tuple è detto CARDINALITA della Relazione. Dalla definizione di Relazione si evince un importante proprietà: una relazione non può mai presentare tuple duplicate. Nella tabella seguente, alcuni attributi hanno valori duplicati in colonna, però non esiste alcuna tupla identica. Cod.Part. Descrizione Colore Peso Città P1 Dado Rosso 12 Londra P2 Vite Blu 17 Parigi P3 Vite Verde 14 Roma P4 Bullone Blu 19 Londra Pagina 5 di 7

In una Relazione NON esistono tuple duplicate Le Tuple non sono ordinate (dall alto al basso) Gli attributi NON sono ordinati (da sinistra a destra) I valori degli attributi sono atomici NON esistono tuple duplicate Questa proprietà deriva dal fatto che la relazione è un insieme matematico (di tuple) e gli insiemi matematici, per definizione, non includono elementi duplicati. Da ciò si osserva che una tabella ed una relazione non sono esattamente la stessa cosa, in quanto una tabella (in generale) potrebbe contenere righe duplicate, mentre invece una Relazione non può proprio contenere tuple duplicate (per definizione). Un importante conseguenza del fatto che non esistono tuple duplicate è che in una relazione esiste sempre una primary key. Infatti le tuple sono univoche, ne segue che al più la combinazione di tutti gli attributi della relazione (l insieme di tutte le colonne) ha la proprietà di essere univoca e quindi può fungere da Primary Key. Nella realtà non è sempre necessario coinvolgere tutti gli attributi, poiché una combinazione minore è generalmente sufficiente per determinare la Primary Key. Le Tuple non sono ordinate (dall alto al basso) Questa proprietà deriva dal fatto che la relazione è un insieme matematico (di tuple) e gli insiemi matematici non sono ordinati. Pertanto si ha sempre la stessa relazione qualunque sia l ordine delle sue tuple. Quindi non ha senso parlare di quarta tupla, prima tupla o tupla successiva di una relazione, perché non esiste il concetto di posizione della tupla. Anche questa proprietà ci permette di osservare che una relazione ed una tabella non sono esattamente la stessa cosa: le righe di una tabella hanno un ordinamento dall alto al basso, mentre le tuple di una relazione non lo hanno. Pagina 6 di 7

Gli attributi NON sono ordinati (da sinistra a destra) Anche questa proprietà deriva dal fatto che l insieme degli attributi di una relazione è un insieme matematico e che gli insiemi matematici non sono ordinati. Quindi non ha senso parlare di quinto attributo, primo attributo o attributo successivo di una Relazione. Gli attributi sono sempre referenziati per nome e mai per posizione. Anche questa proprietà permette di osservare un ulteriore differenza tra relazione e tabella: le colonne di una tabella hanno un ordinamento da sinistra a destra, mentre gli attributi di una relazione non lo hanno. I valori degli attributi sono atomici Dire che i valori di tutti gli attributi sono atomici significa che non sono ulteriormente decomponibili. È una conseguenza diretta del fatto che i domini contengono valori atomici. I valori atomici sono anche detti scalari. Questa proprietà delle Relazioni si può anche enunciare nel seguente modo: All incrocio fra una qualunque riga e una qualunque colonna della Tabella si trova esattamente uno ed un solo valore e mai una collezione di valori. Una Relazione che soddisfa questa condizione si dice NORMALIZZATA o IN PRIMA FORMA NORMALE. Definizione di Database Relazionale Un Database Relazionale è un database percepito dall utente come un insieme di Relazioni Normalizzate di vario grado. Da quanto detto si deduce che tutte le relazioni sono sempre normalizzate almeno in Prima Forma Normale. Nel contesto del Modello Relazionale, il termine Relazione deve sempre essere inteso come Relazione Normalizzata. Pagina 7 di 7