60
IL MODELLO RELAZIONALE Prof. Aniello Cimitile

IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova [email protected] 863000447 Elio Del vecchio [email protected] 863000944 Pinco Pallino

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

IL MODELLO RELAZIONALE

Prof. Aniello Cimitile

Page 2: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

T Tipo di dati

O Operazioni

R Regole Integrità

Page 3: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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 …

Page 4: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• … 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

Page 5: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

RELAZIONE matematica

Page 6: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

…esempi ….

Page 7: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 8: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

…esempi ..

Page 9: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 10: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

Relazione di grado n

Page 11: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

…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

Page 12: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• 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

Page 13: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

.. Esempio ..

Page 14: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• 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

Page 15: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• 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

Page 16: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… 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

Page 17: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 18: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… recupero, in parte, del significato di relationship

Page 19: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 20: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… 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

Page 21: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 22: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… funzioni di accesso alla tupla …

Page 23: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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)

Page 24: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

…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à

Page 25: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 26: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 27: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 28: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… esempio …

Page 29: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

MATRICOLA NOME COGNOME E_MAIL

863000412 Emiliya Hrabova [email protected]

863000447 Elio Del vecchio [email protected]

STUDENTI DB

Page 30: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

BLOCCO TITOLO N.Ro Slides

B1 INTRODUZIONE 63

SLIDES DB

Page 31: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 32: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… 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

Page 33: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

T Tipo di dati

O Operazioni

R Regole Integrità

Page 34: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… 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 …?

Page 35: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

.............. ............... …………… ………….. …………… …………….. --------------

Page 36: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… 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

Page 37: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• 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» ?

Page 38: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

il valore « NULL»

Page 39: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• … è 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 ?

Page 40: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 41: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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?

……………………………………………………………………………

Page 42: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 43: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 44: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 45: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

?

Page 46: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• 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

Page 47: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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’)

Page 48: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 49: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

… 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

Page 50: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• 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

Page 51: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

esercizio

Definire le chiavi di tali relazioni

Page 52: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 53: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 54: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• ….. 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

Page 55: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 56: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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.

Page 57: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 58: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino
Page 59: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

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

Page 60: IL MODELLO RELAZIONALE · 2018. 6. 4. · MATRICOLA NOME COGNOME E_MAIL 863000412 Emiliya Hrabova hra@unisannio.it 863000447 Elio Del vecchio elio@uning.it 863000944 Pinco Pallino

• … 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