Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
IL MODELLO RELAZIONALE
Prof. Aniello Cimitile
T Tipo di dati
O Operazioni
R Regole Integrità
DBR: … che tipo di dati?
• Le collezioni di dati permanenti di una DBR vengono logicamente realizzate attraverso il tipo strutturato
RELAZIONE
• Questa Relazione «informatica» è direttamente mutuata dalla Relazione «matematica»
• … con alcune varianti …
• … varianti dovute alla necessità di sostituire entità matematiche con informazioni
• … varianti legate alla necessità di introdurre vincoli di integrità
NB. Come già abbiamo avuto modo di osservare il termine Relazione viene anche usato col significato di «relationship» nella progettazione concettuale dei dati
RELAZIONE matematica
…esempi ….
…esempi ..
Relazione di grado n
…esempi…
Dette C1, C2, …, Cn le cardinalità dei domini, per la cardinalità CPC del prodotto cartesiano si avrà: CPC = C1 x C2 x … Cn Per la cardinalità CR di R si avrà: CR ≤ CPC
• Ad entrare in ..relazione .. non sono generici insiemi ma … informazioni – Al nome dei domini si sostituisce l’Attributo/Nome
delle informazioni
– Al dominio ( insieme di elementi) si sostituisce il Tipo delle informazioni ( insieme dei valori che l’informazione può assumere)
• Il Prodotto cartesiano è naturalmente il prodotto cartesiano dei Tipi delle informazioni coinvolte
Dalla Relazione matematica alla Relazione DB
.. Esempio ..
• Def. Date n informazioni Info1 di tipo T1, Info2 di tipo T2, …,Infon di tipo Tn, una Relazione fra esse è una Informazione strutturata il cui tipo è un sottoinsieme del prodotto cartesiano
T1 X T2 X ….. Tn
Esempio Date le informazioni :
CORSO di Tipo {insieme dei corsi universitari attivi}; DOCENTE di Tipo {insieme dei docenti universitari}; AULE di Tipo {insieme delle aule disponibili}; GIORNO di Tipo {Lunedì, Martedì. Mercoledì, Giovedì, Venerdì}; ORARIO di Tipo {9-11, 11-13, 14-16, 16-18}
La relazione ORARIO LEZIONI è un sottoinsieme del prodotto cartesiano
CORSO X DOCENTE X AULA X GIORNO X ORARIO La quintupla ( Data Base, Cimitile, G12, Mercoledì, 9-11) è una tupla della relazione
• In matematica gli insiemi possono essere a cardinalità infinita, in Informatica no – I Domini della relazione DB corrispondono a TIPI di
informazioni, e pertanto sono finiti
– Ogni relazione DB sarà, di conseguenza, costituita da un numero finito di tuple
• Il numero di tuple di una relazione viene chiamato CARDINALITA’ della Relazione
• Il numero dei Domini viene chiamato GRADO della Relazione
… dalla semantica astratta della matematica, a quella informatica
• Sia i domini che la relazione sono Informazioni
– Ad un dominio D corrisponde un Tipo T e una relazione viene definita attraverso il Prodootto cartesiano dei Tipi
– …ma per una relazione informatica il TIPO è del tutto inadeguato per la sua definizione semantica e quindi per la sua identificazione e comprensione
… recupero, in parte, del significato di relationship
… cade la relazione d’ordine fra i domini e quindi nelle tuple …
• Come abbiamo visto, in matematica due relazioni R1 ed R2 che differiscono unicamente per l’ordine col quale i domini si distribuiscono nel prodotto cartesiano, sono due relazioni diverse
• Nelle relazioni DB tale ordine NON CARATTERIZZA le relazioni, per cui R1 ed R2 coincidono
Carlo Rossi Benevento 03/01/ 1990 Carlo Rossi 03/01/1990 Benevento
Juventus Lazio 3 1
... Cambiano completamente le operazioni di accesso … da accesso per posizione … ad accesso per attributo
… funzioni di accesso alla tupla …
Impossibile l’accesso per posizione …. Perché ….
XT (2) XT (i)
XT ( Squadra Casa) = Lazio XT ( Reti Casa) = 3
Ma anche …..
XT ( Squadra Casa, Reti Casa) = ( Lazio, 3)
…le tabelle …
• Ogni relazione è rappresentabile con una tabella
NOME Cognome Data Nascita Città Nascita
Paolo Bianchi 20 10 1980 Benevento
Carla Rossi 01 01 1991 Roma
Pompilio Greco 13 04 1948 Solopaca
Generalità
LUI LEI
Paolo Maria
Carlo Marta
Gino Lucia
Squadra Casa Ospitata Reti casa Reti Ospitata
Roma Lazio 3 1
Napoli Juventus 4 0
Inter Fiorentina 0 2
Bologna Milan 2 2
COPPIA
PARTITE
Nome 1 Nome 2 …………………. Nome n
datot1 datot2 ………………… datotn
datot1 datot2 ………………… datotn
…………….. ………………. ………………… …………..
…………….. ………………. ………………… …………..
datot1 datot2 ………………… datotn
Intestazione Tabella Schema Relazione
Riga Tabella Tupla Relazione
TABELLA ISTANZA RELAZIONE
Def. Una Base di Dati Relazionali è un insieme finito di Relazioni Def. Diremo Schema di un Data Base Relazionale l’insieme degli schemi delle relazioni che lo compongono Def. Diremo Istanza di un Data Base Relazionale l’insieme delle istanze delle relazioni che lo compongono
RDB
… esempio …
MATRICOLA NOME COGNOME E_MAIL
863000412 Emiliya Hrabova [email protected]
863000447 Elio Del vecchio [email protected]
STUDENTI DB
BLOCCO TITOLO N.Ro Slides
B1 INTRODUZIONE 63
SLIDES DB
CODICE CONTENUTO DATA DOCENTE
DB1 Dati, Basi, Sistemi Informativi
25 09 2013 Cimitile
DB2 Sistemi Informatici, DBMS e DB
26 09 2013 Cimitile
DB3 Modello di Dati e Tipi di DBMS
02 10 2013 Cimitile
DB4 Modello relazionale: Relazione
03 10 2013 Cimitile
LEZIONI DB
… esercizio … • La mia carta di credito USA Express • Ogni mese mi invia una comunicazione con la
quale mi dice quanti euro ho speso nel mese precedente ( es. dal 6 Agosto al 5 Settembre hai speso in tutto 102,35 Euro)
• Se voglio dettagli, mi da l’elenco delle singole Movimentazioni ( in qualsiasi periodo degli ultimi 5 anni), e per ogni movimentazione mi da la data in cui è stata fatta, descrizione breve del movimento ( es. Ristorante da Nunzia), e quanto ho pagato
Definire Relazioni e Schema di un mio DB
T Tipo di dati
O Operazioni
R Regole Integrità
… cominciamo con un esempio …
• … la mia agenda telefonica …
– … mi ispiro al mio i-phone
• Trovo:
– Nome, Cognome, Azienda, Cellulare, i-phone, Casa
• Posso aggiungere:
– Prefisso, Nome Fonetico, Cognome Fonetico, Secondo Nome, Suffisso, Soprannome, Qualifica, Dipartimento
… a proposito, I contatti i-phone sono una relazione …?
Nome Cognome Amicale Qualifica Cellulare1
Cellulare2/ufficio
Ph Casa
Sergio Mattarella Pres Repubblica
1111111111
Vincenzo De Luca Vincenzo Pres Regione
9993333033
5555555555
Luigi Nicolais Gino Pres CNR 8888888999
6666666777
0000004321
Andrea Mugione ArciVo - eccellenza
2222222222
Filippo De Rossi capo Rettore 7777777777
44444444431
8008008001
.............. ............... …………… ………….. …………… …………….. --------------
… incompletezza …
• … in alcune tuple vi sono campi in cui manca il dato … ( … campi vuoti …)
• le ragioni sono diverse; almeno 3 : – Il dato è inesistente
• Non esiste un mio amicale per il Presidente Mattarella e per l’Arcivescovo Mugione
– Il dato è sconosciuto • Vincenzo De Luca ha un telefono di casa ma non ne
conosco il numero
– Non si sa se il dato esiste ( «inesistente» or «sconosciuto») • Non si sa se l’Arcivescovo abbia un telefono di casa
• Cè subito da rispondere alla domanda
– … è ammissibile l’assenza di un dato in una tupla, ovvero che vi siano dei «campi vuoti» nelle tuple?
– … e la risposta non può che essere si, altrimenti saremmo di fronte ad una rigidità non sostenibile nella pratica.
• …allora, si pongono subito altre due questioni
– Per una Informazione il «vuoto» non esiste, ovvero è ammissibile se e solo se diventa uno dei possibili valori dell’informazione stessa e sia conseguentemente rappresentabile in un Dato ( concretamente: in tabella, li dove adesso c’è «il vuoto», ci sarebbe una stringa di simboli che lo rappresenta)
– …. ammesso e rappresentato il vuoto, è sempre possibile e per qualsiasi Attributo ( campo di tupla) ) avere il valore «vuoto» ?
il valore « NULL»
• … è improponibile il ricorso ad uno dei valori del Tipo per rappresentare il Valore Nullo ed evitare di aggiungere un elemento estraneo al tipo stesso
Esempio: utilizzare valori del dominio mai usati o dei quali si pensa che non saranno mai usati ( 0 negli interi, stringa vuota, «NULL», «NULLO», ……, la maglia di Maradona: 10 , …)
Possibili sorprese, e poi chi avvisa i programmatori ?
Il valore nullo non è sempre ammissibile
• … posso avere una tupla di tutti valori nulli ? • … nell’agenda telefonica può essere nullo il
Cognome ? – Possono essere nulli contemporaneamente sia Nome
che Cognome?
• … nulli contemporaneamente Cellulare1, Cellulare2/ufficio, PHCasa ?
• … nella relazione dichiarazione dei redditi può essere nullo il Codice fiscale?
……………………………………………………………………………
Vincoli di Integrità
• … la inaccettabilità di valori nulli in alcune situazioni, non è l’unico caso che rende inammissibili alcune istanze di una relazione
• … vi possono essere molteplici proprietà ( … e non solo dettate dal mondo applicativo …. ma anche strutturali …) che rendono inaccettabili alcune istanze
Def. Diremo Vincoli di Integrità le proprietà che debbono essere soddisfatte dall’ istanza di una relazione , di un insieme di relazioni o di un DB
Classificazione Vincoli di Integrità
• Un vincolo di integrità può riguardare una sola relazione di un data base, ed in questo caso lo classificheremo come Intra-relazionale
• … o può invece coinvolgere più relazioni, ed in questo caso lo classificheremo come Inter-relazionale
MATRICOLA NOME COGNOME E_MAIL
863000412 Emiliya Hrabova [email protected]
863000447 Elio Del vecchio [email protected]
863000447 Pinco Pallino [email protected]
STUDENTI DB
STUDENTE VOTO LODE DATA
863000412 40 no 09/01/2014
863000447 28 Si 09/10/2013
863001449 30 Si 09/10/2013
ESAMI DB
?
• Intra-relazionali – Nella relazione STUDENTI DB , due tuple, comunque scelte, non
possono avere Dati uguali per l’attributo MATRICOLA
• è un VINCOLO INTERTUPLE
– Nella relazione ESAMI una tupla può avere il dato «SI» per l’attributo LODE se e solo se per l’attributo VOTO il dato è «30»
• è un VINCOLO DI TUPLA
– Nella Relazione ESAMI per l’attributo VOTO non si può avere un Dato maggiore di 30
• è un VINCOLO DI DOMINIO
– Caso tipico: il tipo dell’attributo del mondo reale è un sottoinsieme di quello informatico
• Inter-relazionali
– Nella Relazione ESAMI per l’attributo STUDENTE un Dato è ammesso se e solo se lo stesso dato è presente in una tupla della Relazione STUDENTE DB per l’attributo MATRICOLA
Il vincolo intra-relazionale di CHIAVE
Def. Un sottoinsieme S degli attributi dello schema di una relazione R è detto CHIAVE se:
• Nessuna istanza di R può possedere due tuple che abbiano gli stessi valori in tutti gli attributi di S (UNIVOCITA’)
• Non esiste un sottoinsieme degli attributi di S che goda della proprietà precedente (MINIMALITA’)
… superchiave …
• Def.: Un sottoinsieme S degli attributi dello schema di una relazione R è detto SUPERCHIAVE se gode della proprietà di univocità ma non di quella di minimalità:
NB. L’esistenza di una superchiave implica l’esistenza di una chiave
• Poiché tutte le tuple di una relazione sono, per definizione, un insieme, non vi possono essere due tuple uguali
• … dunque l’insieme degli attributi di una relazione gode della proprietà di Univocità
• … l’insieme degli attributi di una relazione è o una Superchiave o una Chiave
• Dunque:
OGNI RELAZIONE HA UNA CHIAVE
Teorema dell’Esistenza di una chiave
esercizio
Definire le chiavi di tali relazioni
Chiavi ed Accesso alle Relazioni
• Fondamentale funzione di accesso è quella che applicata ad una Relazione R restituisce come risultato una sua tupla tu
• … per realizzare una simile operazione è necessario individuare UNIVOCAMENTE la tupla da estrarre come risultato
• L’istanza di una chiave è un identificatore univoco di tupla
• ….. do il valore della chiave …. ed ottengo la tupla associata ….
tu = F ( R, Key) o anche tu=R(key)
MATRICOLA NOME COGNOME E_MAIL
863000412 Emiliya Hrabova [email protected]
863000447 Elio Del Vecchio [email protected]
STUDENTI DB
Il risultato di STUDENTIDB ( 863000447) è ( 863000447 Elio Del Vecchio [email protected])
FUNZIONE DI ACCESSO ALLA TUPLA
MATRICOLA NOME COGNOME E_MAIL
863000412 Emiliya Hrabova [email protected]
863000447 Elio Del vecchio [email protected]
863000944 Pinco Pallino [email protected]
863000946 Caio Sempronio [email protected]
863000947 Teresa La Vispa [email protected]
863000998 Sisto Sesto [email protected]
863000999 Tal Dei Tali [email protected]
STUDENTI DB
STUDRIF STUDENTE1 STUDENTE2
863000412 863000947 NULL
86300447 863000944 863000946
863000998 NULL NULL
GRUPPI DB
… nessuno lo vuole e non vuole fare lo Studente di riferimento
CHIAVE PRIMARIA
Def. Diremo Chiave Primaria la chiave che viene adottata nell’accesso alle tuple della relazione
Vincolo di Integrità: gli attributi di una chiave primaria non debbono avere valori nulli.
Vincoli di INTEGRITA’ REFERENZIALE
• Sono vincoli Interrelazionali
MATRICOLA NOME COGNOME E_MAIL
863000412 Emiliya Hrabova [email protected]
863000447 Elio Del vecchio [email protected]
863000944 Pinco Pallino [email protected]
863000946 Caio Sempronio [email protected]
863000947 Teresa La Vispa [email protected]
863000998 Sisto Sesto [email protected]
863000999 Tal Dei Tali [email protected]
STUDRIF STUDENTE1 STUDENTE2
863000412 863000947 NULL
86300447 863000944 863000946
863000998 NULL NULL
• … nella relazione GRUPPIDB l’attributo Sudente1 fa riferimento alla chiave Matricola della relazione STUDENTIDB
• … diremo GRUPPDB Relazione Referente e STUDENTIDB Relazione Riferita
• … in particolare, il valore assunto da Studenti1 in una qualsiasi tupla della relazione referente, se non è NULL deve comparire come valore di Matricola in una tupla della relazione riferita