IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova...

Preview:

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 hra@unisannio.it

863000447 Elio Del vecchio elio@uning.it

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 hra@unisannio.it

863000447 Elio Del vecchio elio@uning.it

863000447 Pinco Pallino pinco@mio.it

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 hra@unisannio.it

863000447 Elio Del Vecchio elio@uning.it

STUDENTI DB

Il risultato di STUDENTIDB ( 863000447) è ( 863000447 Elio Del Vecchio elio@uning.it)

FUNZIONE DI ACCESSO ALLA TUPLA

MATRICOLA NOME COGNOME E_MAIL

863000412 Emiliya Hrabova hra@unisannio.it

863000447 Elio Del vecchio elio@uning.it

863000944 Pinco Pallino pinco@mio.it

863000946 Caio Sempronio caio@uning.it

863000947 Teresa La Vispa ter@santi.it

863000998 Sisto Sesto sis@ioio.it

863000999 Tal Dei Tali tal@tale.it

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 hra@unisannio.it

863000447 Elio Del vecchio elio@uning.it

863000944 Pinco Pallino pinco@mio.it

863000946 Caio Sempronio caio@uning.it

863000947 Teresa La Vispa ter@santi.it

863000998 Sisto Sesto sis@ioio.it

863000999 Tal Dei Tali tal@tale.it

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