CAPITOLO V. DATABASE: Il modello relazionale
|
|
|
- Enrico Brescia
- 9 anni fa
- Visualizzazioni
Transcript
1 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 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
2 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 Teramo 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
3 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
4 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
5 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= è 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
6 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
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
Modello relazionale: Concetti Base. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
Modello relazionale: Concetti Base Schema di una Relazione Lo schema di una relazione specifica: Il nome della relazione Il nomediognicampo(o colonna o attributo) e il dominio di ciascun campo Esempio:
Modulo 2 Data Base - Modello Relazionale
Modulo 2 Data Base - Modello Relazionale Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Modello Relazionale
Il modello relazionale
Il modello relazionale Il modello relazionale Modello logico dei dati Basato sul concetto di relazione o tabella Relazione: da teoria degli insiemi 2 Il modello relazionale Garantisce indipendenza fisica
LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle
LE BASI DI DATI Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle LA PROGETTAZIONE LOGICA Lo scopo della fase di progettazione logica è quello
Le basi di dati. Lez. 3: Il Modello Relazionale
Le basi di dati Lez. 3: Il Modello Relazionale Il modello Relazionale Il modello relazionale è il modo più semplice e naturale di rappresentare i dati. Inventato da Edward Codd nel 1970 ricercatore presso
I modelli logici dei dati
I modelli logici dei dati I modelli logici tradizionali sono tre: gerarchico reticolare relazionale I modelli gerarchio e reticolare sono più vicini alle strutture fisiche di memorizzazione. Quello relazionale
Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 010/011 Basi di dati Le presenti slide sono tratte dalle slide del libro di
Unità 3. Modello Relazionale
Unità 3 Modello Relazionale Modello Logico Modelli logico che deriva da concetti Matematici Permette di descrivere in modo corretto ed efficiente tutte le informazioni contenute nel modello E/R Meno astrato
INTRODUZIONE ALLE BASI DATI RELAZIONALI
INTRODUZIONE ALLE BASI DATI RELAZIONALI RELAZIONI E TABELLE Nelle BASI DI DATI RELAZIONALI le informazioni sono organizzate in TABELLE; Le tabelle sono rappresentate mediante griglie suddivise in RIGHE
Structured Query Language
IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un
BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono
BASI DI DATI Una base di dati (database) è un insieme organizzato di informazioni caratterizzate da alcuni aspetti fondamentali: tra esse esiste un nesso logico (cioè sono in qualche modo inerenti ad un
SQL. Lezione 1. Docente: Alberto Belussi
LaboratoriodiBasidiDatieWeb Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio SQL è
Progettazione concettuale di una base di dati
Progettazione concettuale di una base di dati Progettazione concettuale Analisi dei requisiti I requisiti devono innanzitutto essere acquisiti Le fonti possono essere molto diversificate tra loro: utenti,
Il modello logico dei dati
Il modello logico dei dati A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Come organizzare i dati Realtà Modello Concettuale Modello Logico
Progettazione concettuale usando il modello Entità-Relazione (ER)
Progettazione concettuale usando il modello Entità-Relazione (ER) 1 Introduzione alla progettazione delle basi di dati Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità
Indicare quale o quali delle seguenti affermazioni sono vere?
Domanda 1 Indicare quale o quali delle seguenti affermazioni sono vere? L indipendenza dei dati permette di scrivere programmi senza conoscere le strutture fisiche dei dati L indipendenza dei dati permette
Modello Relazionale. Architettura a tre livelli di un DBMS
Modello Relazionale Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970. modello dei dati insieme di strutture dati e regole ) logico strutture disponibili su
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
Normalizzazione. Definizione
Normalizzazione Definizione Le forme normali 2 Una forma normale è una proprietà di una base di dati relazionale che ne garantisce la qualità, cioè l'assenza di determinati difetti Quando una relazione
