Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Semplicit e potenza
Informatica IV anno
Origini del modello La maggior parte dei sistemi odierni si basa sul modello relazionale Il modello relazionale nasce nel 70 su solide basi matematiche
Lestrema astrazione del modello lo rende di fatto poco utilizzato per i primi 10 anni Si afferma comunque perch il primo modello che porta ad avere la propriet di indipendenza dei dati
Il modello Relazionale
-2-
Informatica IV anno
Concetti fondamentali
Il modello relazionale si basa su due concetti fondamentali:
Relazione ! concetto matematico, teoria degli insiemi ! Potenza Tabella ! concetto semplice ed intuitivo ! Semplicit
I due concetti sono riconducibili luno allaltro e questo ne ha decretato il successo: anche gli utenti finali ne comprendono il significato Indipendenza dei dati: gli utenti e i programmatori vedono solo il livello logico (ci non era possibile con gli altri modelli)
Il modello Relazionale -3Informatica IV anno
Relazione matematica
Dati due insiemi D1 e D2, si chiama prodotto cartesiano D1xD2 linsieme di tutte le coppie ordinate di valori provenienti da tali insiemi Una relazione matematica un sottoinsieme delle coppie
Il modello Relazionale -4-
Esempio di prodotto A={1,2,4} B={a,b} AxB = {(1,a),(1,b),(2,a), (2,b),(4,a),(4,b)} Esempi di relazione R1 = {(1,a),(4,a)} R2 = {(1,b),(4,a),(4,b)}
NOTA: Tutte le definizioni NOTA: Tutte le definizioni possono essere generalizzate possono essere generalizzate aapi insiemi pi insiemi
Informatica IV anno
Tabelle
Le relazioni possono essere rappresentate in modo efficace tramite tabelle R1 = {(1,a),(4,a)} R2 = {(1,b),(4,a),(4,b)} Definizioni
Domini: insiemi su cui definita la relazione Grado: numero delle componenti del prodotto (e quindi di ogni n-upla) Cardinalit: numero di elementi della relazione (= numero di n-uple)
Il modello Relazionale -5-
1 4
a a
1 4 4
b a b
Informatica IV anno
Esempio
Le relazioni possono essere usate per rappresentare i dati di interesse per qualche applicazione Es: Dati relativi ad un insieme di partite di calcio Inter Lazio Inter Bari Juventus Roma Milan Milan 2 0 6 0 0 0 0 1
Si pu vedere come un sottoinsieme del prodotto cartesiano String x String x Intero x Intero
Il modello Relazionale -6Informatica IV anno
Il modello Relazionale
-7-
Informatica IV anno
Squadra di Casa
Inter Lazio Inter Bari
Squadra Ospitata
Juventus Roma Milan Milan
Reti Reti SC SO
2 0 5 0 0 0 0 1
Il modello Relazionale
-8-
Informatica IV anno
Tabelle e Relazioni
Una tabella rappresenta una relazione se i valori di ciascuna colonna sono fra loro omogenei (dallo stesso dominio) le righe sono diverse fra loro ( uninsieme) le intestazioni delle colonne sono diverse tra loro (attributi) Inoltre, in una tabella che rappresenta una relazione lordinamento tra le righe irrilevante lordinamento tra le colonne irrilevante
Squadra di Casa
Inter Lazio Inter Bari
Squadra Ospitata
Juventus Roma Milan Milan
Reti Reti SC SO
2 0 5 0 0 0 0 1
Relazioni e basi di dati In una base di dati relazionale, le relazioni (una o pi) sono utilizzate per organizzare i dati Si possono creare corrispondenze fra relazioni con valori comuni degli attributi In questo modo possiamo organizzare in modo estremamente efficace le informazioni provenienti dal mondo reale Vediamo un esempio
Il modello Relazionale
- 10 -
Informatica IV anno
Esami
Studente 276545 485745 937653 28 25 30 Voto 01 05 01 Corso Codice 01 02 05
Corsi
Titolo Analisi Chimica Chimica Docente Dozio Colombo Pepe
NOTA. Esami crea una corrispondenza fra Corsi e Studenti NOTA. Esami crea una corrispondenza fra Corsi e Studenti
Il modello Relazionale - 11 Informatica IV anno
Indipendenza fisica dei dati Lesempio visto mostra che il modello logico relazionale basato sui valori
I riferimenti fra dati in relazioni diverse sono rappresentati per mezzo dei valori dei domini che compaiono nelle tuple
In questo modo la rappresentazione logica dei dati non fa alcun riferimento alla loro rappresentazione fisica: indipendenza fisica dei dati
Ci non valeva per i modelli reticolare e gerarchico che richiedevano puntatori
Il modello Relazionale - 12 Informatica IV anno
Esami
Studente 276545 485745 937653 28 25 30 Voto 01 05 01 Corso
Il modello Relazionale
- 13 -
Informatica IV anno
Esami
Studente 276545 485745 937653 28 25 30 Voto 01 05 01 Corso
Se t=(276545,28,01) allora
t[Studente]=(276545) t[Voto,Corso]=(28,01)
Informatica IV anno
Il modello Relazionale
- 14 -
Esempio 1
R={STUDENTI(Matricola, Cognome, Nome, Data di Nascita), ESAMI(Studente, Voto, Corso), CORSI(Codice, Titolo, Docente)}
NOTE
La definizione consente anche relazioni con un solo attributo
Studenti
Matricola 602495 612835 672231
Il modello Relazionale
Lavoratori
Nome Data Nascita 29/08/71 22/07/73 12/12/80
Informatica IV anno
Come rappresento le ricevute in un DBMS relazionale?... Si nota che la struttura non fissa, perci...
Il modello Relazionale
- 16 -
Informatica IV anno
Dettaglio
Qta 3 2 3 2 2 1 2 2 2 Descr Coperti Antipasti Primi Bistecche Coperti Antipasti Primi Orate caff Importo 6000 12000 27000 36000 4000 6000 15000 50000 3000
Informatica IV anno
Il modello Relazionale
Si estende il concetto di relazione prevedendo che una tupla possa assumere, su ciascun attributo, un valore speciale aggiuntivo detto valore nullo
Il modello Relazionale - 18 Informatica IV anno
Ricevute
Num 2357 2334 Data Totale Num 2357 Qta 3 2 5/5/1992 81000 4/7/1992 78000
Dettaglio
Descr Coperti Antipasti Importo 6000 12000
NULL
Il modello Relazionale
Vincoli di Integrit
Propriet che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per lapplicazione Possiamo classificare i vincoli a seconda degli elementi di una base di dati che coinvolge
Vincoli intrarelazionali: il loro soddisfacimento definito allinterno di una singola relazione
Esempio: il Voto di ESAMI deve essere inferiore a 30
Nel seguito vediamo le tipologie principali: vincolo di tupla, chiave, vincolo integrit referenziale
Il modello Relazionale - 20 Informatica IV anno
Vincoli di tupla
Esprimono condizioni sui valori di ciascuna tupla indipendentemente dalle altre tuple Possono essere espressi con espressioni booleane: le tuple che non verificano la condizione non vengono accettate dal DBMS Esempio ESAMI
Matricola 602495 612835 672231 Voto 36 28 30 Lode null lode lode Corso Analisi Chimica Analisi 2
Il modello Relazionale
- 21 -
Informatica IV anno
Chiave 1/2
Una chiave un particolare insieme di attributi che identificano univocamente le tuple di una relazione (definizione intuitiva)
Esempio
STUDENTI(Matricola, Codice Fiscale, Nome, Cognome, Nascita, Corso)
Si noti che esiste sempre almeno una chiave, al pi costituita da TUTTI gli attributi
Una relazione un insieme: non possono esserci due righe uguali!
Chiave 2/2
Definizione formale Un insieme K di attributi superchiave di una relazione r se r non contiene due tuple distinte t1 e t2 con t1[K]=t2[K]
Il modello Relazionale
- 23 -
Informatica IV anno
Chiave primaria
Matricola NULL 602495 NULL Cod_Fis NULL NULL NRILC Cognome Rossi Neri Neri Nome Mario Luca Luca
Chiavi: {Matricola} e {Cod_Fis} La prima riga ha valori nulli su tutte le chiavi, le righe non sono identificabili e non posso fare corrispondenze Le ultime due righe sono identificabili da una delle due chiavi, ma i due studenti non sono comunque distinguibili
SU UNA DELLE CHIAVI SI VIETANO VALORI NULLI: tale chiave detta CHIAVE PRIMARIA (si indica con la sottolineatura)
Per evitare questi problemi
Il modello Relazionale - 24 Informatica IV anno
Esempio
E grazie al fatto che Codice chiave di corso che posso creare una corrispondenza fra le tabelle Esami e Corsi
Esami
Studente 276545 28 Voto 01 Corso Codice 01
Corsi
Titolo Analisi Docente Dozio
Il modello Relazionale
- 25 -
Informatica IV anno
Codice
Data
Prov Numero B07347 394769 Prov Numero Cognome LC CO B07347 394769 Colombo Colombo
Auto
Nome Cesare Max
Infrazioni
Si deve definire un vincolo fra gli attributi Provincia e Numero della tabella Infrazioni con Provincia e Numero della tabella Auto NOTA: attenzione al verso delle frecce!
Il modello Relazionale - 27 Informatica IV anno
Esercizio
Rappresentare per mezzo di una o pi relazioni le informazioni contenute nellorario delle partenze da una stazione ferroviaria: numero, orario, destinazione finale, categorie e fermate intermedie di ciascuno dei treni in partenza Fermate
Treno Stazione Ora
Numero
Ora
Destinazione Categoria
Partenze
Il modello Relazionale
- 28 -
Informatica IV anno
Operazioni di interrogazione
Abbiamo fino a questo punto visto come sono organizzate le informazioni in una base di dati relazionale Per completare il modello relazionale necessario definire le operazioni Il fondamento matematico/intuitivo ci consente di definire in modo semplice anche le operazioni sui dati Operazioni di aggiornamento: funzione che, data una istanza di base di dati, produce unaltra base di dati, sullo stesso schema Operazioni di interrogazione: funzione che, data una base di dati, produce una relazione su un dato schema Fra tutte le operazioni, ne esamineremo a livello teorico solo le principali operazioni di interrogazione per poter comprendere al meglio il linguaggio SQL
Il modello Relazionale - 29 Informatica IV anno
Operazione 1: SELECT
Esprime una selezione orizzontale su una tabella, cio genera in uscita una parte delle righe della tabella originale
Studente 276545 485745 937653 28 25 30 Voto 01 05 01 Corso
Voto 30 01
Corso
Informatica IV anno
Operazione 2: PROJECT
Esprime una selezione verticale: genera in uscita una tabella con un numero ridotto di attributi
Codice 01 02 05 Titolo Analisi Chimica Chimica Docente Dozio Colombo Pepe
Docente
Operazione 3: JOIN Esprime tutte le combinazioni fra le righe di due tabelle che verificano una particolare condizione
Il caso pi semplice il NATURAL JOIN: condizione di uguaglianza fra attributi eliminando i campi uguali
In pratica
E un sottoinsieme del prodotto cartesiano fra due insiemi Si prendono tutte le combinazioni sensate fra le righe di due tabelle
Il modello Relazionale - 32 Informatica IV anno
Esempio di operazione 1/4 Individuare nomi e cognomi di tutti gli studenti che hanno preso 28 agli esami
Studenti
Matricola 276545 485745 937653 Cognome Rossi Neri Bruni Nome Maria Fabio Mario Studente 276545 485745 937653
Esami
Voto 28 28 30 Corso 01 05 01
Il modello Relazionale
- 33 -
Informatica IV anno
A questo punto devo trovare i nomi... Uso loperatore di JOIN ponendo come attributi uguali Matricola e Studente...
Il modello Relazionale - 34 Informatica IV anno
Esami
Nome
Maria Fabio Mario
Cognome
Rossi Neri Bruni
Studente
276545 485745 28 28
Voto
Corso
01 05
Voto 28 28 28 28 28 28
Corso 01 05 01 05 01 05
Informatica IV anno
Il modello Relazionale
Voto 01 05
Corso
Con una proiezione scopro che Rossi Maria e Neri Fabio sono gli studenti che hanno preso 28 Si intuisce che complicando e combinando a piacere le interrogazioni possibile utilizzare in modo produttivo la base di dati
Il modello Relazionale - 36 Informatica IV anno
Commento allesempio
Confronta due possibili soluzioni Selezione!Join!Proiezione Join!Selezione!Proiezione Ci sono differenze? Notiamo che la seconda soluzione meno efficiente (ce lo dice la teoria matematica alla base del modello relazionale) Quindi: lordine delle operazioni importante! Per evitare problemi di questo tipo esistono linguaggi DICHIARATIVI che consentono di specificare le operazioni da fare senza specificare lordine (sar il DBMS a decidere come implementarle) Il linguaggio pi diffuso lSQL
Il modello Relazionale
- 37 -
Informatica IV anno
Tale comando viene passato ad un interprete che lo analizza e formula un comando equivalente utilizzando il linguaggio procedurale dello specifico DBMS
Il modello Relazionale - 38 Informatica IV anno
Standardizzazione di SQL
La standardizzazione stata cruciale per la diffusione di SQL (nellambito di ANSI e ISO)
Dal 1983, standard de facto Prima versione ufficiale nel 1986 (SQL-1), rivista nel 1989 (SQL-89) Seconda versione nel 1992 (SQL-2 o SQL-92) Terza versione nel 1999 (SQL-3 o SQL:1999)
Il modello Relazionale
- 39 -
Informatica IV anno
DML
INSERT UPDATE DELETE SELECT
DCL
GRANT REVOKE
NOTA. Anche se sono diffuse interfacce di tipo grafico, la conoscenza di SQL rimane molto importante per lavorare con i DB (soprattutto per chi deve sviluppare SW)
Il modello Relazionale - 41 Informatica IV anno
Esempio di operazione
Nome Angelo Marco Piero Et 27 26 19 Reddito 48 45 50
Persone Individuare nomi e Individuare nomi e redditi delle persone redditi delle persone che guadagnano pi che guadagnano pi di 45 di 45 Proiezione Proiezione
Nome Angelo Reddito 48 50
Informatica IV anno
Piero
Bibliografia di approfondimento Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone
CAPITOLO 2
Il modello Relazionale
- 43 -
Informatica IV anno