Sistemi per il recupero delle informazioni PARTE V

  • Slides: 153
Download presentation
Sistemi per il recupero delle informazioni PARTE - V MODELLO RELAZIONALE DEI DATI

Sistemi per il recupero delle informazioni PARTE - V MODELLO RELAZIONALE DEI DATI

PROGETTAZIONE n Ricordiamo le fasi della progettazione di una Base di Dati

PROGETTAZIONE n Ricordiamo le fasi della progettazione di una Base di Dati

ESEMPIO

ESEMPIO

ESEMPIO VIENE TRADOTTO NELLO SCHEMA MUSEI (Nome. M, Città, Indirizzo, Direttore) ARTISTI (Nome. A,

ESEMPIO VIENE TRADOTTO NELLO SCHEMA MUSEI (Nome. M, Città, Indirizzo, Direttore) ARTISTI (Nome. A, Nazionalità, Data. N, Data. M) OPERE (Codice, Anno, Titolo, Nome. M*, Nome. A*) PERSONAGGI (Personaggio, Codice*) DIPINTI (Codice*, Tipo, Larghezza, Altezza) SCULTURE (Codice*, Materiale, Altezza, Peso)

ENNUPLA E RELAZIONE I meccanismi per definire una base di dati con il modello

ENNUPLA E RELAZIONE I meccanismi per definire una base di dati con il modello relazionale sono solo due: • l’ennupla • la relazione. Ennupla. È un insieme finito di coppie (Attributo, valore atomico) Relazione. È un insieme finito (eventualmente vuoto) di ennuple con la stessa struttura. I campi di un’ennupla sono atomici (numeri, stringhe o il valore NULL). Un’ennupla si usa per rappresentare entità e la relazione si usa per rappresentare classi di entità.

TERMINOLOGIA - I q attributo: corrisponde (non sempre) ad un attributo del modello E-R.

TERMINOLOGIA - I q attributo: corrisponde (non sempre) ad un attributo del modello E-R. Diversamente dal modello E-R, gli attributi sono sempre univoci (ad un sol valore) ed atomici (non composti) q L’ordine degli attributi non è significativo q dominio (di un attributo): è l’insieme dei valori che può assumere un attributo. q chiave primaria di una relazione: un attributo che identifica univocamente le ennuple della relazione. Gli attributi della chiave primaria vengono sottolineati

TERMINOLOGIA - II q Una relazione si definisce dandole un nome ed elencando fra

TERMINOLOGIA - II q Una relazione si definisce dandole un nome ed elencando fra parentesi tonde il tipo delle sue ennuple. La definizione di una relazione è detta schema della relazione R(A 1: T 1, A 2: T 2, . . . , An: Tn) q R è il nome della relazione q A 1, A 2, . . . sono gli attributi della relazione q T 1, T 2, . . . sono i tipi degli attributi (interi, reali, booleani, stringhe) q Per semplicità omettiamo la specifica dei tipi, per cui lo schema di relazione è R(A 1, A 2, . . . , An)

TERMINOLOGIA - III q Lo schema della relazione è la descrizione della struttura di

TERMINOLOGIA - III q Lo schema della relazione è la descrizione della struttura di una relazione q Un’istanza di uno schema di relazione è un insieme finito di ennuple. q osserviamo che tutte le ennuple di una relazione hanno la stessa struttura q Lo schema relazionale è la descrizione della struttura di una base di dati q insieme di schemi di relazione q insieme di vincoli

RELAZIONE E TABELLA Orario Insegnamento Analisi matem. I Basi di dati Chimica Fisica II

RELAZIONE E TABELLA Orario Insegnamento Analisi matem. I Basi di dati Chimica Fisica II Sistemi inform. Docente Luigi Neri Piero Rossi Nicola Mori Mario Bruni Piero Rossi Aula N 1 N 2 N 1 N 3 Ora 8: 00 9: 45 11: 45 9: 45 8: 00 ORARIO (Insegnamento, Docente, Aula, Ora) Relazione e tabella sono sinonimi

SCHEMA Orario Insegnamento Analisi matem. I Basi di dati Chimica Fisica II Sistemi inform.

SCHEMA Orario Insegnamento Analisi matem. I Basi di dati Chimica Fisica II Sistemi inform. Docente Luigi Neri Piero Rossi Nicola Mori Mario Bruni Piero Rossi Aula N 1 N 2 N 1 N 3 Ora 8: 00 9: 45 11: 45 9: 45 8: 00 ORARIO (Insegnamento, Docente, Aula, Ora) Le colonne della tabella formano lo schema della relazione

ISTANZE Orario Insegnamento Analisi matem. I Basi di dati Chimica Fisica II Sistemi inform.

ISTANZE Orario Insegnamento Analisi matem. I Basi di dati Chimica Fisica II Sistemi inform. Docente Luigi Neri Piero Rossi Nicola Mori Mario Bruni Piero Rossi Aula N 1 N 2 N 1 N 3 Ora 8: 00 9: 45 11: 45 9: 45 8: 00 ORARIO (Insegnamento, Docente, Aula, Ora) I contenuti delle righe della tabella formano le istanze della relazione

Schema di Base di dati R= {CORSI(Corso, Docente, Aula), AULE(Nome, Edificio, Piano), CORSISEDI(Corso, Aula,

Schema di Base di dati R= {CORSI(Corso, Docente, Aula), AULE(Nome, Edificio, Piano), CORSISEDI(Corso, Aula, Edificio, Piano)

DATABASE Corsi Corso Aule Nome Docente Aula Basi di dati Sistemi Reti Controlli Corsi.

DATABASE Corsi Corso Aule Nome Docente Aula Basi di dati Sistemi Reti Controlli Corsi. Sedi Rossi Neri Bruni DS 3 N 3 G Edificio Piano OMI Terra Pincherle Primo Corso Aula Edificio Piano Sistemi Reti N 3 OMI Terra Controlli G Pincherle Primo Un database e’ un insieme di tabelle

CHIAVI ESTERNE Le associazioni tra i dati sono rappresentate attraverso i valori di opportuni

CHIAVI ESTERNE Le associazioni tra i dati sono rappresentate attraverso i valori di opportuni campi, chiamati chiavi esterne, che assumono come valori quelli della chiave primaria di un’altra relazione. In altre parole una chiave esterna è un attributo (od un insieme di attributi) di una relazione R che assume i valori della chiave primaria di un’altra relazione S. Serve a rappresentare un’associazione tra R ed S

ESEMPIO

ESEMPIO

ESEMPIO n n n Il dominio di Sigla. CDS* nella relazione STUDENTI coincide col

ESEMPIO n n n Il dominio di Sigla. CDS* nella relazione STUDENTI coincide col dominio di Sigla. CDS nella relazione CDS Se in una istanza di STUDENTI l’attributo Sigla. CDS assume il valore “XYZ”, deve esistere, nella istanza di CDS una ennupla con Sigla. CDS = “XYZ”. Il motivo è ovvio; se una studente è iscritto a “XYZ”, deve esistere il Corso di Studi “XYZ” Tale proprietà si chiama Vincolo di integrità referenziale, e deve essere sempre soddisfatto da una chiave esterna:

DA MODELLO A OGGETTI A MODELLO RELAZIONALE La trasformazione di uno schema a oggetti

DA MODELLO A OGGETTI A MODELLO RELAZIONALE La trasformazione di uno schema a oggetti in uno schema relazionale avviene eseguendo i seguenti passi: 1. 2. 3. 4. 5. 6. rappresentazione delle classi rappresentazione delle associazioni uno a uno e uno a molti; rappresentazione delle associazioni molti a molti o non binarie; rappresentazione delle gerarchie di inclusione; rappresentazione degli attributi multivalore; appiattimento gli attributi composti

1. Rappresentazione delle classi Una classe C è rappresentata da una relazione R i

1. Rappresentazione delle classi Una classe C è rappresentata da una relazione R i cui attributi sono quelli di C si traduce in Studenti(Matricola, Nome, Anno. Immatric)

2. Rappresentazione delle associazioni uno a uno e uno a molti Come abbiamo già

2. Rappresentazione delle associazioni uno a uno e uno a molti Come abbiamo già visto nell’esempio degli studenti e dei corsi di studi, le associazioni uno a molti si rappresentano aggiungendo agli attributi della relazione rispetto a cui l’associazione è univoca una chiave esterna che riferisce l’altra relazione. ESEMPIO: la relazione tra corsi di studi e studenti, essendo univoca rispetto ai corsi di studi, si rappresenta aggiungendo agli studenti una chiave esterna Sigla. CDS. Quando l’associazione è uno ad uno la chiave esterna si aggiunge ad una qualunque delle due relazioni, preferendo quella rispetto a cui l’associazione è totale. Se l’associazione ha degli attributi, questi vanno aggiunti alla relazione a cui si aggiunge la chiave esterna.

ESEMPIO Studenti(Matricola, Nome, Anno. Immatric, Codice*) Corsidi. La(Codice, Nome, Tipo) la chiave esterna Codice*

ESEMPIO Studenti(Matricola, Nome, Anno. Immatric, Codice*) Corsidi. La(Codice, Nome, Tipo) la chiave esterna Codice* rappresenta l’associazione è_iscritto N. B. È un grave errore fare il contrario. Lo schema: Studenti(Matricola, Nome, Anno. Immatric) Corsidi. La(Codice, Nome, Tipo, Matricola*) rappresenta Corsi di Laurea ai quali può essere iscritto un solo studente!

3. Rappresentazione delle associazioni molti a molti o non binarie Un’associazione molti a molti

3. Rappresentazione delle associazioni molti a molti o non binarie Un’associazione molti a molti tra due classi si rappresenta aggiungendo allo schema una nuova relazione che contiene due chiavi esterne che riferiscono le due relazioni coinvolte. precisamente: se A è un’associazione multivalore da R ad S e da S ad R, A è rappresentata con uno schema di relazione in cui gli attributi sono le chiavi primarie pk. R di R e pk. S di S. A (pk. R*, pk. S*) Se l’associazione ha degli attributi, questi attributi vengono aggiunti alla nuova relazione, e non vanno a far parte della chiave della nuova relazione.

ESEMPIO Corsidi. La(Codice, Nome, Facoltà, Tipo) Docenti(Cod. Doc, Settore) Insegna(Codice*, Cod. Doc*) Una ennupla

ESEMPIO Corsidi. La(Codice, Nome, Facoltà, Tipo) Docenti(Cod. Doc, Settore) Insegna(Codice*, Cod. Doc*) Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di oggetti in associazione. Il docente identificato dal Cod. Doc 1592 insegna ai corsi di laurea identificati dai codici Inf, SBC e Mat , il docente identificato dal Cod. Doc 3014 insegna al corso di laurea identificato dai codici Inf, ecc. . .

4. Rappresentazione delle gerarchie fra classi Partizionamento orizzontale Si definiscono tre relazioni RA(XA), RB(XA,

4. Rappresentazione delle gerarchie fra classi Partizionamento orizzontale Si definiscono tre relazioni RA(XA), RB(XA, XB), RC(XA, XC), dove RA contiene solo gli elementi della classe A che non stanno in nessuna delle sottoclassi, mentre RB ed RC contengono tutti gli elementi di B e di C NOTA: se le sottoclassi costituiscono una copertura, la relazione RA(XA) non viene definita perché sarebbe sempre vuota. ESEMPIO: trattandosi di sottoclassi che non soddisfano il vincolo di copertura si definiscono le relazioni Persone con attributi Cod. Fisc, Nome, Telefono, Studenti con attributi Cod. Fisc, Nome, Telefono, Matricola e Facoltà e la relazione Lavoratori con attributi Cod. Fisc, Nome, Telefono, Attività e Reddito. La relazione Persone contiene le informazioni delle persone che non sono né studenti né lavoratori, la relazione Studenti contiene le informazioni degli studenti e la relazione Lavoratori contiene le informazioni dei lavoratori. Persone(Cod. Fisc, Nome, Telefono) Lavoratori(Cod. Fisc*, Attività, Reddito) Studenti(Cod. Fisc*, Matricola, Facoltà) 23

ESEMPIO n Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli attributi di

ESEMPIO n Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli attributi di ciascuna classe Anche con questa soluzione viene ignorata la gerarchia: si perde la superclasse Si osservi che con nessuna delle tre soluzioni è in generale possibile esprimere i vincoli strutturali della gerarchia, vale a dire i vincoli di disgiunzione e di totalità

5. Rappresentazione delle proprietà multivalore Una proprietà multivalore di una classe C si rappresenta

5. Rappresentazione delle proprietà multivalore Una proprietà multivalore di una classe C si rappresenta eliminando il corrispondente attributo da C e creando una relazione con due attributi: una chiave esterna che fa riferimento alla chiave primaria di C ed un attributo che corrisponde all’attributo multivalore da trasformare. Un oggetto con chiave primaria K ed in cui l’attributo assume valore A 1, . . . , An si rappresenta poi inserendo nella nuova relazione n coppie (K, A 1), . . . , (K, An). ESEMPIO: si immagini che un utente abbia attributi Codice, Cognome e Telefoni, con Telefoni multivalore. Applicando la trasformazione, si ottengono le due seguenti relazioni: Utenti(Codice, Cognome) Telefoni. Utenti(Codice*, Telefono)

ESEMPIO Film(Cod. Film, Titolo, Regista, Anno) Attori(Cod. Film*, Attore)

ESEMPIO Film(Cod. Film, Titolo, Regista, Anno) Attori(Cod. Film*, Attore)

6. Appiattimento degli attributi composti Se un attributo A di uno schema di relazione

6. Appiattimento degli attributi composti Se un attributo A di uno schema di relazione è di tipo strutturato con campi Ai, si sostituisce A con gli attributi Ai. Se A faceva parte della chiave primaria dello schema di relazione, si sostituisce A con gli attributi Ai nella chiave, e poi si verifica che non esista un sottoinsieme degli attributi della nuova chiave primaria che è esso stesso una chiave. Sullo schema relazionale ottenuto si ripetono questa trasformazione e la precedente finché esistono schemi di relazioni con proprietà composte e proprietà multivalore. ESEMPIO: se gli Utenti hanno un attributo strutturato Indirizzo con attributi Via, CAP e Città, applicando la trasformazione alla relazione Utenti(Codice, Cognome, Indirizzo) si ottiene lo schema di relazione Utenti(Codice, Cognome, Via, CAP, Città)

Riassumendo Le regole di traduzione n Entità: diventano tabelle ed i loro identificatori chiavi

Riassumendo Le regole di traduzione n Entità: diventano tabelle ed i loro identificatori chiavi primarie n Associazioni 1 -1: se obbligatorie si procede come per le 1 -N scegliendo il lato in cui includere gli attributi e la chiave esterna; se una opzionale si includono gli attributi e la chiave esterna sul lato“obbligatorio”; se entrambe opzionali si costruisce una tabella autonoma come per il caso N-N. n Associazioni 1 -N: gli attributi dell’associazione e la chiave primaria della tabella relativa all’entità dal lato “N” sono inclusi nella tabella relativa all’entità dal lato“ 1”. n Associazioni N-N: diventano tabelle con chiave primaria formata dall’unione delle chiavi delle entità coinvolte

Confronto tra modello E-R e modello Relazionale Nonostante una evidente analogia tra Classe e

Confronto tra modello E-R e modello Relazionale Nonostante una evidente analogia tra Classe e Relazione Oggetto e Ennupla Attributo(E-R) e Attributo(Rel) sussiste in realtà una significativa differenza tra i concetti nei due modelli n n n Non sempre una relazione rappresenta una classe: può rappresentare una associazione o un attributo multivalore Non sempre un’ ennupla rappresenta un oggetto: può rappresentare una coppia di oggetti in associazione o un possibile valore di un attributo multivalore Non sempre un attributo Rel rappresenta un attributo E-R: può rappresentare un oggetto di un’altra classe (chiave esterna)

Esercizio n La segreteria di un corso di laurea deve gestire alcune informazioni relative

Esercizio n La segreteria di un corso di laurea deve gestire alcune informazioni relative all’orario delle lezioni. ¨ informazioni: aule, corsi, lezioni n le aule sono identificate da un codice, di ogni aula interessa il numero dei posti, l’edificio in cui è situata, se ha o non ha proiettore n alcune aule sono dotate di calcolatori, in questo caso interessa sapere il numero dei pc n i corsi sono identificati da un codice; di ogni corso interessa il nome e il docente n le lezioni sono caratterizzate da un’ora d’inizio, un’ora di fine, un giorno della settimana, il semestre n ogni lezione è tenuta in un’aula e si riferisce ad un corso

Informazione incompleta n ll modello relazionale impone ai dati una struttura rigida: - le

Informazione incompleta n ll modello relazionale impone ai dati una struttura rigida: - le informazioni sono rappresentate per mezzo di ennuple - solo alcuni formati di ennuple sono ammessi: quelli che corrispondono agli schemi di relazione n I dati disponibili possono non corrispondere al formato previsto Es: PERSONE(Nome, Secondo. Nome, Cognome) Nome Franklin Winston Charles Josip Secondo. Nome Delano Cognome Roosevelt Churchill De Gaulle Stalin

Informazione incompleta: soluzioni? n Non conviene (anche se spesso si fa) usare valori del

Informazione incompleta: soluzioni? n Non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “ 99”, . . . ): potrebbero non esistere valori “non utilizzati” - in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del “significato” di questi valori - n Tecnica rudimentale ma efficace: - valore nullo: denota l’assenza di un valore del dominio (e non è un valore del dominio) - si possono (e debbono) imporre restrizioni sulla presenza di valori nulli

Troppi valori nulli studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978

Troppi valori nulli studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 9283 Verdi Luisa 12/11/1979 NULL Rossi Maria 01/02/1978 esami corsi Studente Voto Corso NULL 30 NULL 24 02 9283 28 01 Codice Titolo Docente 01 Analisi Mario 02 Chimica NULL Chimica Verdi

Tipi di valore nullo n (almeno) tre casi differenti ¨ valore sconosciuto ¨ valore

Tipi di valore nullo n (almeno) tre casi differenti ¨ valore sconosciuto ¨ valore inesistente ¨ valore senza informazione Citta’ Indirizzo. Prefettura Roma Genova Ovada Prato Via Quattro Novembre NULL

Vincoli, schemi e istanze n I vincoli corrispondono a proprietà del mondo reale modellato

Vincoli, schemi e istanze n I vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati ¨ interessano a livello di schema (con riferimento cioè a tutte le istanze) n Ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli n Un'istanza può soddisfare altri vincoli

La Conoscenza Astratta nel modello Relazionale n Nel modello relazionale si possono esprimere i

La Conoscenza Astratta nel modello Relazionale n Nel modello relazionale si possono esprimere i seguenti vincoli: ¨ Vincolo di chiave esterna ¨ Tipo di un attributo ¨ Attributo obbligatorio ¨ Vincoli strutturali delle associazioni (non completamente)

Una base di dati "scorretta" Esami Studente Voto Lode Corso 276545 32 276545 30

Una base di dati "scorretta" Esami Studente Voto Lode Corso 276545 32 276545 30 e lode 02 787643 27 e lode 03 739430 24 01 04 Matricola Cognome Nome 276545 Rossi Mario 787643 Neri Piero 787643 Bianchi Luca

Vincolo di integrità n n n Proprietà che deve essere soddisfatta dalle istanze che

Vincolo di integrità n n n Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione Un vincolo è una funzione booleana (un predicato): associa ad ogni istanza il valore vero o falso Perchè? ¨ descrizione più accurata della realtà ¨ contributo alla “qualità dei dati” ¨ utili nella progettazione (vedremo) ¨ usati dai DBMS nella esecuzione delle interrogazioni

Tipi di vincoli n Vincoli intrarelazionali: coinvolgono una singola relazione del database. ¨ Esempi

Tipi di vincoli n Vincoli intrarelazionali: coinvolgono una singola relazione del database. ¨ Esempi - vincoli di ennupla - vincoli di chiave - vincoli su valore n Vincoli interrelazionali: coinvolgono diverse relazioni del database. ¨ Esempio: vincoli di integrità referenziale

Vincoli di ennupla n n n Esprimono condizioni sui valori di ciascuna indipendentemente dalle

Vincoli di ennupla n n n Esprimono condizioni sui valori di ciascuna indipendentemente dalle altre ennuple Caso particolare: ¨ vincoli di dominio: coinvolgono un solo attributo Una possibile sintassi: ¨ espressione booleana di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi (Voto 18) AND (Voto 30) (Voto = 30) OR NOT (Lode = "e lode") ennupla,

Vincoli di ennupla, esempio Stipendi Impiegato Lordo Ritenute Netto Rossi 55. 000 12. 500

Vincoli di ennupla, esempio Stipendi Impiegato Lordo Ritenute Netto Rossi 55. 000 12. 500 42. 500 Neri 45. 000 10. 000 35. 000 Bruni 47. 000 11. 000 36. 000 Lordo = (Ritenute + Netto)

Importanza delle chiavi n L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base

Importanza delle chiavi n L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati n Le chiavi permettono di correlare i dati in relazioni diverse: ¨ il modello relazionale è basato su valori n In presenza di valori nulli, i valori della chiave non permettono ¨ di identificare le ennuple ¨ di realizzare facilmente i riferimenti da altre relazioni

 Chiave primaria n n Chiave su cui non sono ammessi nulli Notazione: sottolineatura

Chiave primaria n n Chiave su cui non sono ammessi nulli Notazione: sottolineatura Matricola Cognome Nome Corso Nascita 86765 NULL Mario Ing Inf 5/12/78 78763 Rossi Mario Ing Civile 3/11/76 65432 Neri Piero Ing Mecc 10/7/79 87654 Neri Mario Ing Inf NULL 43289 Neri Mario NULL 5/12/78

 Integrità referenziale n Informazioni in relazioni diverse sono correlate attraverso valori comuni ¨

Integrità referenziale n Informazioni in relazioni diverse sono correlate attraverso valori comuni ¨ in particolare, valori delle chiavi (primarie) ¨ le correlazioni debbono essere "coerenti"

Esempio Codice 34321 53524 64521 73321 Infrazioni Vigili Auto Data 1/2/95 4/3/95 5/4/96 5/2/98

Esempio Codice 34321 53524 64521 73321 Infrazioni Vigili Auto Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 9345 Prov Numero MI 39548 K TO E 39548 PR 839548 Matricola Cognome Nome 3987 Rossi Luca 3295 Neri Piero 9345 Neri Mario 7543 Mori Gino Prov Numero Cognome Nome MI 39548 K Rossi Mario Neri Luca TO E 39548 PR 10/29/2020 839548

Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548 K 53524 4/3/95

Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548 K 53524 4/3/95 3295 TO E 39548 64521 5/4/96 3295 PR 839548 73321 5/2/98 9345 PR 839548 Vigili Matricola Cognome Nome 3987 Rossi Luca 3295 Neri Piero 9345 Neri Mario 7543 Mori Gino

 Vincolo di integrità referenziale n Un vincolo di integrità referenziale (“foreign key”) fra

Vincolo di integrità referenziale n Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R 1 e un’altra relazione R 2 impone ai valori su X in R 1 di comparire come valori della chiave primaria di R 2 n ES: vincoli di integrità referenziale fra: l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI

Violazione di vincolo di integrità referenziale Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95

Violazione di vincolo di integrità referenziale Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548 K 53524 4/3/95 3295 TO E 39548 64521 5/4/96 3295 PR 839548 73321 5/2/98 9345 PR 839548 Auto Prov Numero Cognome Nome MI E 39548 Rossi Mario TO F 34268 Rossi Mario PR 839548 Neri Luca

Integrità referenziale e valori nulli Impiegati Progetti Matricola Cognome Progetto 34321 Rossi IDEA 53524

Integrità referenziale e valori nulli Impiegati Progetti Matricola Cognome Progetto 34321 Rossi IDEA 53524 Neri XYZ 64521 Verdi NULL 73032 Bianchi IDEA Codice Inizio Durata Costo IDEA 01/2000 36 200 XYZ 07/2001 24 120 BOH 09/2001 24 150

Azioni compensative n Esempio: ¨ Viene eliminata una ennupla causando una violazione n Comportamento

Azioni compensative n Esempio: ¨ Viene eliminata una ennupla causando una violazione n Comportamento “standard”: ¨ Rifiuto dell'operazione n Azioni compensative: ¨ Eliminazione in cascata ¨ Introduzione di valori nulli

Eliminazione in cascata Impiegati Progetti Matricola Cognome Progetto 34321 Rossi IDEA 53524 Neri XYZ

Eliminazione in cascata Impiegati Progetti Matricola Cognome Progetto 34321 Rossi IDEA 53524 Neri XYZ 64521 Verdi NULL 73032 Bianchi IDEA Codice Inizio Durata Costo IDEA 01/2000 36 200 XYZ 07/2001 24 120 BOH 09/2001 24 150

Introduzione di valori nulli Impiegati Progetti Matricola Cognome Progetto 34321 Rossi IDEA 53524 Neri

Introduzione di valori nulli Impiegati Progetti Matricola Cognome Progetto 34321 Rossi IDEA 53524 Neri NULL XYZ 64521 Verdi NULL 73032 Bianchi IDEA Codice Inizio Durata Costo IDEA 01/2000 36 200 XYZ 07/2001 24 120 BOH 09/2001 24 150

Sistemi per il recupero delle informazioni PARTE - VI ALGEBRA RELAZIONALE: operazioni

Sistemi per il recupero delle informazioni PARTE - VI ALGEBRA RELAZIONALE: operazioni

BASE DI DATI Una base di dati può essere utilizzata con due modalità: Ø

BASE DI DATI Una base di dati può essere utilizzata con due modalità: Ø interattivamente: l’utente interagisce direttamente con la base di dati. L’utente presenta al sistema una richiesta di dati. Tale richiesta prende il nome di interrogazione (query). L’interrogazione viene interpretata dal sistema, che in risposta restituisce i dati richiesti. Nella richiesta devono essere specificate le proprietà dei dati che interessano. Se ad es. vogliamo l’elenco dei libri scritti da Calvino, nella richiesta deve essere specificata questa proprietà. L’interrogazione deve essere formulata per mezzo di un linguaggio formale Ø

LINGUAGGI RELAZIONALI Come esempio di linguaggi per l’uso interattivo di basi di dati, relazionali,

LINGUAGGI RELAZIONALI Come esempio di linguaggi per l’uso interattivo di basi di dati, relazionali, vediamo Ø

ESEMPI DI QUERY

ESEMPI DI QUERY

Algebra relazionale n Insieme di operatori ¨ su relazioni ¨ che producono relazioni (tabelle)

Algebra relazionale n Insieme di operatori ¨ su relazioni ¨ che producono relazioni (tabelle) ¨ e possono essere composti per svolgere operazioni più complesse

OPERATORI FONDAMENTALI n Gli operatori fondamentali dell’algebra relazionale sono: ¨ Ridenominazione; ¨ Unione; ¨

OPERATORI FONDAMENTALI n Gli operatori fondamentali dell’algebra relazionale sono: ¨ Ridenominazione; ¨ Unione; ¨ Intersezione; ¨ Differenza; ¨ Proiezione; ¨ Restrizione (o Selezione); ¨ Prodotto. n I simboli R, S, . . . denotano relazioni, A, B, …attributi e X, Y, …insiemi di attributi

RIDENOMINAZIONE n Operatore unario n Modifica il nome di un attributo senza cambiarne il

RIDENOMINAZIONE n Operatore unario n Modifica il nome di un attributo senza cambiarne il valore: restituisce la relazione ottenuta sostituendo in R gli attributi A, B, … con gli attributi A’, B’, … n DEFINIZIONE OPERATORIALE: A A’ (R) ESAMI ESEMPIO ESAMI Matricola Codice Studente(Esami)

Paternità Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Genitore Padre (Paternità) Genitore Padre

Paternità Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Genitore Padre (Paternità) Genitore Padre Figlio Adamo Abele Adamo Caino Abramo Isacco

OPERATORI INSIEMISTICI n Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli

OPERATORI INSIEMISTICI n Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli insiemi n I risultati debbono essere relazioni n E’ possibile applicare unione, intersezione, differenza solo a relazioni definite sugli stessi attributi

UNIONE, INTERSEZIONE, DIFFERENZA n Siano R ed S relazioni dello stesso tipo allora L’unione

UNIONE, INTERSEZIONE, DIFFERENZA n Siano R ed S relazioni dello stesso tipo allora L’unione di R con S restituisce una relazione dello stesso tipo con le ennuple che stanno in R in S, o in entrambe. ¨ L’intersezione di R con S restituisce una relazione dello stesso tipo con le ennuple che stanno contemporaneamente sia in R sia in S. ¨ La differenza di R con S restituisce una relazione dello stesso tipo con le ennuple che stanno in R ma non in S. ¨ n DEFINIZIONE OPERATORIALE ¨ R S ¨ R-S

ESEMPIO DI UNIONE

ESEMPIO DI UNIONE

ESEMPIO DI INTERSEZIONE

ESEMPIO DI INTERSEZIONE

ESEMPIO DI DIFFERENZA

ESEMPIO DI DIFFERENZA

ESEMPIO: UNIONE? Maternità Madre ? ? ? n n “Paternita’” e “Maternità” sono attributi

ESEMPIO: UNIONE? Maternità Madre ? ? ? n n “Paternita’” e “Maternità” sono attributi con nomi diversi ma entrambi sono “Genitori” Soluzione: ridenominare gli attributi

ESEMPIO: RIDENOMINAZIONE E UNIONE

ESEMPIO: RIDENOMINAZIONE E UNIONE

Impiegati Operai Cognome Ufficio Stipendio Rossi Roma 55 Neri Milano 64 Cognome Fabbrica Salario

Impiegati Operai Cognome Ufficio Stipendio Rossi Roma 55 Neri Milano 64 Cognome Fabbrica Salario Bruni Monza 45 Verdi Latina 55 Sede, Retribuzione Ufficio, Stipendio (Impiegati) Sede, Retribuzione Fabbrica, Salario (Operai) Cognome Sede Retribuzione Rossi Roma 55 Neri Milano 64 Bruni Monza 45 Verdi Latina 55

selezione proiezione operatori "ortogonali“ selezione: decomposizione orizzontale proiezione: decomposizione verticale

selezione proiezione operatori "ortogonali“ selezione: decomposizione orizzontale proiezione: decomposizione verticale

PROIEZIONE n Produce risultati: ¨ su un sottoinsieme degli attributi dell’operando ¨ con valori

PROIEZIONE n Produce risultati: ¨ su un sottoinsieme degli attributi dell’operando ¨ con valori da tutte le n-uple della relazione n Data la relazione R su insieme di attributi X={A 1, A 2, …An} e un sottoinsieme Y di X, la proiezione di R su Y è la relazione ottenuta da R considerando solo i valori sugli attributi di Y n DEFINIZIONE OPERATORIALE: n La cardinalità di Y(R), cioè il numero degli elementi che lo compongono, puo’ essere minore di R nel caso di duplicati Y(R)

ESEMPIO PROIEZIONE n cognome e filiale di tutti gli impiegati Matricola Cognome Filiale Stipendio

ESEMPIO PROIEZIONE n cognome e filiale di tutti gli impiegati Matricola Cognome Filiale Stipendio 7309 Neri Napoli 55 5998 Neri Milano 64 9553 Rossi Roma 44 5698 Rossi Roma 64 Cognome, Filiale (Impiegati)

ESEMPIO PROIEZIONE - II per tutti gli impiegati: • matricola e cognome n Si

ESEMPIO PROIEZIONE - II per tutti gli impiegati: • matricola e cognome n Si riduce la cardinalita’ del risultato rispetto all’operando

SELEZIONE (o RESTRIZIONE) n Produce risultati: ¨ con lo stesso schema dell’operando ¨ con

SELEZIONE (o RESTRIZIONE) n Produce risultati: ¨ con lo stesso schema dell’operando ¨ con un sottoinsieme delle ennuple dell’operando: quelle che soddisfano la condizione n Data la relazione R la restrizione di R alla condizione C restituisce una relazione dello stesso tipo di R avente per valori gli elementi di R che soddisfano la condizione C. n La condizione di selezione è formata da ¨ operatori booleani (AND, OR, NOT) ¨ condizione atomiche: termini che possono contenere Ø confronti fra attributi (per esempio, Stipendio>Tasse, dove Stipendio e Tasse sono attributi) Ø confronti fra attributi e costanti (per esempio, Età 60, dove Età è un attributo) n DEFINIZIONE OPERATORIALE: Condizione(R)

ESEMPIO RESTRIZIONE Impiegati che • guadagnano più di 50 e lavorano a Milano •

ESEMPIO RESTRIZIONE Impiegati che • guadagnano più di 50 e lavorano a Milano • hanno lo stesso nome della filiale presso cui lavorano

Selezione: sintassi e semantica n sintassi Condizione (Operando) ¨ Condizione: espressione booleana (come quelle

Selezione: sintassi e semantica n sintassi Condizione (Operando) ¨ Condizione: espressione booleana (come quelle dei vincoli di ennupla) semantica ¨ il risultato contiene le ennuple dell'operando che soddisfano la condizione n

Operatori booleani n Connettivi logici ¨ (AND), ¨ (OR), ¨ (NOT) n Operatori di

Operatori booleani n Connettivi logici ¨ (AND), ¨ (OR), ¨ (NOT) n Operatori di confronto ¨ = (uguale) (diverso) ¨ (maggiore) (minore) ¨ (maggiore o uguale) ¨ (minore o uguale)

n impiegati che guadagnano più di 50 Impiegati Matricola Cognome Filiale Stipendio 7309 Rossi

n impiegati che guadagnano più di 50 Impiegati Matricola Cognome Filiale Stipendio 7309 Rossi Roma 55 5998 Neri Milano 64 9553 5698 Milano Neri Milano Napoli 44 64 5698 Neri Napoli 64 Stipendio > 50 (Impiegati)

n impiegati che guadagnano più di 50 e lavorano a Milano Impiegati Matricola Cognome

n impiegati che guadagnano più di 50 e lavorano a Milano Impiegati Matricola Cognome Filiale Stipendio 5998 7309 Rossi Neri Milano Roma 55 64 5998 Neri Milano 64 9553 Milano 44 5698 Neri Napoli 64 Stipendio > 50 AND Filiale = 'Milano' (Impiegati)

n impiegati che hanno lo stesso nome della filiale presso cui lavorano Impiegati Matricola

n impiegati che hanno lo stesso nome della filiale presso cui lavorano Impiegati Matricola Cognome Filiale Stipendio 7309 9553 Milano Rossi Milano Roma 55 44 5998 Neri Milano 64 9553 Milano 44 5698 Neri Napoli 64 Cognome = Filiale(Impiegati)

Selezione e proiezione n n Combinando selezione e proiezione, possiamo estrarre interessanti informazioni da

Selezione e proiezione n n Combinando selezione e proiezione, possiamo estrarre interessanti informazioni da una relazione matricola e cognome degli impiegati che guadagnano più di 50 Matricola Cognome 7309 Rossi 5998 Neri 9553 5698 Milano Neri 5698 Neri Filiale Roma Milano Napoli Stipendio 55 64 44 64 64 Matricola, Cognome ( Stipendio > 50 )(Impiegati)

PRODOTTO (Join) n Date le relazioni R ed S con attributi diversi, il prodotto

PRODOTTO (Join) n Date le relazioni R ed S con attributi diversi, il prodotto di R con S restituisce una relazione con attributi quelli di R e di S ed elementi la copia delle ennuple del prodotto cartesiano di R e S, ovvero ogni ennupla di R è concatenata con tutte le ennuple di S. n DEFINIZIONE OPERATORIALE: n Se R ha n elementi ed S ne ha m il prodotto ne ha m*n R x S

Numero Voto Numero Candidato 1 25 1 Mario Rossi 2 13 2 Nicola Russo

Numero Voto Numero Candidato 1 25 1 Mario Rossi 2 13 2 Nicola Russo 3 27 3 Mario Bianchi 4 28 4 Remo Neri Numero Candidato Voto 1 Mario Rossi 25 2 Nicola Russo 13 3 Mario Bianchi 27 4 Remo Neri 28

JOIN NATURALE n n operatore binario (generalizzabile) produce un risultato ¨ sull'unione degli attributi

JOIN NATURALE n n operatore binario (generalizzabile) produce un risultato ¨ sull'unione degli attributi degli operandi ¨ con ennuple costruite ciascuna a partire da una ennupla di ognuno degli operandi n Permette di combinare ennuple da relazioni diverse basandosi sui valori degli attributi n Sia R con attributi XY ed S con attributi YZ. Il join naturale produce una relazione di attributi XYZ; ennuple del risultato sono ottenute combinando le ennuple di R e S che hanno gli stessi valori negli attributi con lo stesso nome

ESEMPIO - I n join completo: ogni ennupla contribuisce al risultato

ESEMPIO - I n join completo: ogni ennupla contribuisce al risultato

ESEMPIO - II n Join non completo: alcuni valori tra gli attributi comuni non

ESEMPIO - II n Join non completo: alcuni valori tra gli attributi comuni non coincidono, quindi, alcune ennuple non partecipano al JOIN

ESEMPIO - III n Join vuoto: caso limite ¨ potrebbe anche succedere che nessuna

ESEMPIO - III n Join vuoto: caso limite ¨ potrebbe anche succedere che nessuna ennupla trovi il corrispettivo

ESEMPIO - IV n L’altro caso estremo del JOIN ¨ ogni ennupla di R

ESEMPIO - IV n L’altro caso estremo del JOIN ¨ ogni ennupla di R 1 si combina con ogni ennupla di R 2 ¨ la cardinalita’ del risultato e’ il prodotto delle cardinalita’

Cardinalità del join n n Il join di R 1 e R 2 contiene

Cardinalità del join n n Il join di R 1 e R 2 contiene un numero di ennuple compreso fra zero e il prodotto di |R 1| e |R 2| se il join coinvolge una chiave di R 2, allora il numero di ennuple è compreso fra zero e |R 1| se il join coinvolge una chiave di R 2 e un vincolo di integrità referenziale, allora il numero di ennuple è pari a |R 1| R 1(A, B) , R 2 (B, C) in generale 0 |R 1 JOIN R 2| |R 1| |R 2| ¨ se B è chiave in R 2 0 |R 1 JOIN R 2| |R 1| ¨ se B è chiave in R 2 ed esiste vincolo di integrità referenziale fra B (in R 1) e R 2: |R 1 JOIN R 2| = |R 1|

Join, una difficoltà n Impiegato Reparto Capo Rossi A B Mori Neri B C

Join, una difficoltà n Impiegato Reparto Capo Rossi A B Mori Neri B C Bruni Bianchi B Impiegato Reparto Capo Neri B Mori Bianchi B Mori alcune ennuple non contribuiscono al risultato: vengono "tagliate fuori"

Join esterno n n Il join esterno estende, con valori nulli, le ennuple che

Join esterno n n Il join esterno estende, con valori nulli, le ennuple che verrebbero tagliate fuori da un join (interno) esiste in tre versioni: ¨ sinistro, destro, completo

Join esterno sinistro: mantiene tutte le tuple del primo operando, estendendole con valori nulli,

Join esterno sinistro: mantiene tutte le tuple del primo operando, estendendole con valori nulli, se necessario ¨ destro: . . . del secondo operando. . . ¨ completo: … di entrambi gli operandi. . . ¨

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Impiegati

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Impiegati JOINLEFT Reparti Impiegato Reparto Neri B Bianchi B Rossi A Capo Mori NULL Capo Mori Bruni

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Impiegati

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Impiegati JOINRIGHT Reparti Impiegato Reparto Neri B Bianchi B NULL C Capo Mori Bruni

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Impiegati

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Reparto B C Impiegati JOINFULL Reparti Impiegato Reparto Neri B Bianchi B Rossi A NULL C Capo Mori NULL Bruni Capo Mori Bruni

Join e proiezioni Impiegato Reparto Rossi A Neri B Bianchi B Reparto B C

Join e proiezioni Impiegato Reparto Rossi A Neri B Bianchi B Reparto B C Impiegato Reparto Neri B Bianchi B Capo Mori Bruni Capo Mori Reparto B Capo Mori

Proiezioni e join Impiegato Reparto Capo Neri B Mori Bianchi B Bruni Verdi A

Proiezioni e join Impiegato Reparto Capo Neri B Mori Bianchi B Bruni Verdi A Bini Impiegato Reparto Capo Neri B B Mori Bianchi B B Bruni Verdi A A Bini Impiegato Neri Bianchi Verdi Reparto B B A Capo Mori Bruni Mori Bini

Join e proiezioni n R 1(X 1), R 2(X 2) PROJX 1 (R 1

Join e proiezioni n R 1(X 1), R 2(X 2) PROJX 1 (R 1 JOIN R 2 ) R 1 n R(X), X = X 1 X 2 (PROJX 1 (R)) JOIN (PROJX 2 (R)) R

Prodotto cartesiano un join naturale su relazioni senza attributi in comune ¨ contiene sempre

Prodotto cartesiano un join naturale su relazioni senza attributi in comune ¨ contiene sempre un numero di tuple pari al prodotto delle cardinalità degli operandi (le tuple sono tutte combinabili ) ¨

Impiegati Reparti Impiegato Reparto Codice Capo Rossi A A Mori Neri B B Bruni

Impiegati Reparti Impiegato Reparto Codice Capo Rossi A A Mori Neri B B Bruni Bianchi B Impiegati JOIN Reparti Impiegato Reparto Codice Capo Rossi A A Mori Rossi A B Bruni Neri B A Mori Neri B B Bruni Bianchi B A Mori Bianchi B B Bruni

n Il prodotto cartesiano, in pratica, ha senso (quasi) solo se seguito da selezione:

n Il prodotto cartesiano, in pratica, ha senso (quasi) solo se seguito da selezione: SELCondizione (R 1 JOIN R 2) n L'operazione viene chiamata theta-join e indicata con R 1 JOINCondizione R 2 n n La condizione C è spesso una congiunzione (AND) di atomi di confronto A 1 A 2 dove è uno degli operatori di confronto (=, >, <, …) se l'operatore è sempre l'uguaglianza (=) allora si parla di equi-join

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Codice A B Capo

Impiegati Impiegato Reparto Rossi A Neri B Bianchi B Reparti Codice A B Capo Mori Bruni Impiegati JOINReparto=Codice Reparti Impiegato Reparto Codice Rossi A A Rossi A Neri B B Neri A Bianchi B B Neri B B Bianchi B A Bianchi B B Capo Mori Bruni Mori Bruni

Esempi Impiegati Matricola Nome 7309 Rossi 5998 Bianchi 9553 Neri 5698 Bruni 4076 Mori

Esempi Impiegati Matricola Nome 7309 Rossi 5998 Bianchi 9553 Neri 5698 Bruni 4076 Mori 8123 Lupi Supervisione Età 34 37 42 43 45 46 Impiegato 7309 5998 9553 5698 4076 Stipendio 45 38 35 42 50 60 Capo 5698 4076 8123

n Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40

n Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40 milioni Matricola Nome 7309 Rossi 5698 Bruni 5998 Bianchi 4076 9553 Mori Neri 5698 Bruni 8123 Lupi 4076 Mori Lupi 8123 Età 34 43 37 45 42 43 46 45 46 SELStipendio>40(Impiegati) Stipendio 45 42 38 50 35 42 60 50 60

n Trovare matricola, nome ed età degli impiegati che guadagnano più di 40 milioni

n Trovare matricola, nome ed età degli impiegati che guadagnano più di 40 milioni Matricola Nome 7309 Rossi 5698 Bruni 5998 Bianchi 4076 9553 Mori Neri 5698 Bruni 8123 Lupi 4076 Mori Lupi 8123 Età 34 43 37 45 42 43 46 45 46 Stipendio 45 42 38 50 35 42 60 50 60 PROJMatricola, Nome, Età (SELStipendio>40(Impiegati))

Selezione con valori nulli Impiegati Matricola Cognome 7309 Rossi 5998 Neri 9553 Bruni Filiale

Selezione con valori nulli Impiegati Matricola Cognome 7309 Rossi 5998 Neri 9553 Bruni Filiale Roma Milano Età 32 45 NULL SEL Età > 40 (Impiegati) • la condizione atomica è vera solo per valori non nulli

Un risultato non desiderabile SEL Età>30 (Persone) SEL Età 30 (Persone) Persone n n

Un risultato non desiderabile SEL Età>30 (Persone) SEL Età 30 (Persone) Persone n n Perché? Perché le selezioni vengono valutate separatamente! Ma anche SEL Età>30 Età 30 (Persone) Persone n Perché? Perché anche le condizioni atomiche vengono valutate separatamente!

Selezione con valori nulli: soluzione n n n SEL Età > 40 (Impiegati) la

Selezione con valori nulli: soluzione n n n SEL Età > 40 (Impiegati) la condizione atomica è vera solo per valori non nulli per riferirsi ai valori nulli esistono forme apposite di condizioni: IS NULL IS NOT NULL si potrebbe usare (ma non serve) una "logica a tre valori" (vero, falso, sconosciuto)

n Quindi: SEL Età>30 (Persone) SEL Età IS NULL (Persone) = SEL Età>30 Età

n Quindi: SEL Età>30 (Persone) SEL Età IS NULL (Persone) = SEL Età>30 Età IS NULL (Persone) = Persone

Impiegati Matricola Cognome 7309 5998 Rossi Neri 5998 9553 Bruni Neri 9553 Bruni Filiale

Impiegati Matricola Cognome 7309 5998 Rossi Neri 5998 9553 Bruni Neri 9553 Bruni Filiale Milano Roma Milano Età 32 45 NULL SEL (Età > 40) OR (Età IS NULL) (Impiegati)

Sistemi per il recupero delle informazioni DATABASE MANAGEMENT SYSTEM (DBMS)

Sistemi per il recupero delle informazioni DATABASE MANAGEMENT SYSTEM (DBMS)

INTRODUZIONE In questa sezione chiariremo qual è il significato tecnico del termine basi di

INTRODUZIONE In questa sezione chiariremo qual è il significato tecnico del termine basi di dati e le funzionalità che offrono i sistemi che ne consentono la definizione e l’uso. Iniziamo col chiarire cosa si intende per “base di dati”, visto che spesso questo termine viene usato per riferirsi ad un qualsiasi insieme di dati archiviati con un calcolatore.

INTRODUZIONE n n Gli archivi costituiscono una memoria di lavoro indispensabile per gestire quantità

INTRODUZIONE n n Gli archivi costituiscono una memoria di lavoro indispensabile per gestire quantità ingenti di informazioni, per ordinare gli elementi utili, metterli in relazione e filtrare i dati che devono essere utilizzati nelle varie circostanze. Prima della diffusione dei sistemi informatici erano gestiti in forma cartacea, con schedari e registri, che permettevano di catalogare e ordinare i dati in base ad un unico criterio di ricerca e rendevano piuttosto disagevole il recupero e l’analisi dell’informazione. L’avvento dei computer nella gestione degli archivi ha notevolmente migliorato i processi di memorizzazione e recupero dei dati: la creazione di software specifici per la gestione di banche dati, chiamati DBMS (Data Base Management System), ha infatti permesso di unificare in un unico programma le funzionalità di archiviazione e gestione dei dati. Se all’inizio i software per la gestione di database occupavano grande spazio di memoria e risultavano abbastanza complessi da utilizzare, oggi programmi come Microsoft Access uniscono sofisticate funzioni di archiviazione, ricerca e analisi dei dati a un interfaccia amichevole, e consentono un utilizzo versatile adatto alle più svariate esigenze.

Archivi e basi di dati Gestione orario lezioni Database Gestione ricevimento

Archivi e basi di dati Gestione orario lezioni Database Gestione ricevimento

DATABASE Accezione generica, metodologica n Insieme organizzato di dati utilizzati per il supporto allo

DATABASE Accezione generica, metodologica n Insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda, ufficio, persona) Accezione specifica, metodologica e tecnologica n Insieme di dati gestito da un DBMS

COS’E’ UNA BASE DATI Una base di dati è una raccolta di dati permanenti

COS’E’ UNA BASE DATI Una base di dati è una raccolta di dati permanenti suddivisi in due categorie: Ø I METADATI Ø I DATI

COS’E’ UNA BASE DATI I METADATI i metadati, ovvero lo schema della base di

COS’E’ UNA BASE DATI I METADATI i metadati, ovvero lo schema della base di dati, sono una raccolta di definizioni che descrivono Ø la struttura di alcuni insiemi dati, Ø le restrizioni sui valori ammissibili dei dati Ø le relazioni esistenti fra gli insiemi. Lo schema va definito prima di creare i dati ed è indipendente dalle applicazioni che usano la base di dati.

COS’E’ UNA BASE DATI I DATI i dati, le rappresentazioni dei fatti conformi alle

COS’E’ UNA BASE DATI I DATI i dati, le rappresentazioni dei fatti conformi alle definizioni dello schema, con le seguenti caratteristiche: a) sono organizzati in insiemi omogenei, fra i quali sono definite delle relazioni. b) sono molti, in assoluto e rispetto ai metadati, e non possono essere gestiti in memoria temporanea; c) sono permanenti, cioè, una volta creati, continuano ad esistere finché non sono esplicitamente rimossi; d) sono accessibili mediante transazioni; e) sono protetti sia da accesso da parte di utenti non autorizzati, sia da corruzione dovuta a malfunzionamenti hardware e software; f) sono utilizzabili contemporaneamente da utenti diversi.

ESEMPIO DATI e METADATI Si consideri la base di dati degli studenti ed esami

ESEMPIO DATI e METADATI Si consideri la base di dati degli studenti ed esami superati definiti dagli schemi di relazioni: Studenti(Matricola, Cognome, Città, Anno. Nascita) Esami(Materia, Candidato, Voto, Data) Dovrebbe essere chiaro che una base di dati contiene i dati immessi, meno ovvio è il fatto che in una base di dati si memorizzano anche informazioni sui dati definiti, chiamati metadati. Esempi di queste informazioni sono: 1. i nomi delle relazioni definite; 2. il tipo delle ennuple delle relazioni; 3. le chiavi primarie ed esterne definite; 4. i vincoli sui valori ammissibili degli attributi. Queste informazioni sono memorizzate in tabelle predefinte che sono gestite automaticamente dal sistema.

RIEPILOGO I dati sono strutturati, cioè hanno un formato predefinito I dati sono raggruppati

RIEPILOGO I dati sono strutturati, cioè hanno un formato predefinito I dati sono raggruppati in insiemi omogenei, in relazione fra loro, e sono previsti operatori per estrarre elementi da un insieme e per conoscere quelli che, in altri insiemi, sono in relazione con essi. I dati sono molti e sono memorizzati in una memoria permanente, tipicamente a dischi magnetici. I dati sono una risorsa condivisa e disponibile per usi molteplici che spesso hanno un’importanza relativa variabile nel tempo. I dati sono protetti da usi non autorizzati e da malfunzionamenti hardware e software.

Data. Base Management System (DBMS) - I Le caratteristiche delle basi di dati sono

Data. Base Management System (DBMS) - I Le caratteristiche delle basi di dati sono garantite da un sistema per la gestione di basi di dati (DBMS, Data Base Management System), che ha il controllo dei dati e li rende accessibili agli utenti autorizzati. Un DBMS è un sistema centralizzato o distribuito che offre opportuni linguaggi a) per definire lo schema della base di dati, b) per scegliere le strutture dati per la memorizzazione dei dati, c) per usare la base di dati interattivamente o da programmi.

Data. Base Management System (DBMS) - II n Un sistema di gestione di basi

Data. Base Management System (DBMS) - II n Un sistema di gestione di basi di dati è un sistema software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, assicurando la loro affidabilità e privatezza. n Un DBMS deve essere efficiente ed efficace. ¨ Esempi di prodotti software disponibili sul mercato: Access, DB 2, Oracle, Informix, Sybase, SQLServer

I DATABASE SONO. . . n n n grandi ¨ dimensioni (molto) maggiori della

I DATABASE SONO. . . n n n grandi ¨ dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati ¨ il limite deve essere solo quello fisico dei dispositivi persistenti ¨ hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano condivisi ¨ ogni organizzazione è divisa in settori o comunque svolge diverse attività. Ciascun settore/attività ha un (sotto) sistema informativo (non necessariamente disgiunto) ¨ Una base di dati e' una risorsa integrata, condivisa fra applicazioni ¨ Conseguenze: n Attivita' diverse su dati condivisi: meccanismi di autorizzazione n Accessi di più utenti ai dati condivisi: controllo della concorrenza

I DBMS GARANTISCONO… n PRIVATEZZA ¨ Si possono definire meccanismi di autorizzazione n l'utente

I DBMS GARANTISCONO… n PRIVATEZZA ¨ Si possono definire meccanismi di autorizzazione n l'utente A è autorizzato a leggere tutti i dati e a modificare quelli sul ricevimento n l'utente B è autorizzato a leggere X e a modificare Y n AFFIDABILITA` (per le basi di dati): ¨ resistenza a malfunzionamenti hardware e software ¨ una base di dati è una risorsa pregiata e quindi deve essere conservata a lungo termine

I DBMS DEVONO ESSERE … n EFFICIENTI ¨ Cercano di utilizzare al meglio le

I DBMS DEVONO ESSERE … n EFFICIENTI ¨ Cercano di utilizzare al meglio le risorse di spazio di memoria (principale e secondaria) e tempo (di esecuzione e di risposta) ¨ I DBMS, con tante funzioni, rischiano l'inefficienza e per questo ci sono grandi investimenti e competizione ¨ L’efficienza è anche il risultato della qualità delle applicazioni n EFFICACI ¨ Cercano di rendere produttive le attività dei loro utilizzatori, offrendo funzionalità articolate, potenti e flessibili: n il corso è in buona parte dedicato ad illustrare come i DBMS perseguono l'efficacia

DBMS VS FILESYSTEM n n n La gestione di insiemi di dati grandi e

DBMS VS FILESYSTEM n n n La gestione di insiemi di dati grandi e persistenti è possibile anche attraverso sistemi più semplici — gli ordinari file system dei sistemi operativi I file system prevedono forme rudimentali di condivisione: "tutto o niente" I DBMS estendono le funzionalità dei file system, fornendo più servizi ed in maniera integrata Nei programmi tradizionali che accedono a file, ogni programma contiene una descrizione della struttura del file stesso, con i conseguenti rischi di incoerenza fra le descrizioni (ripetute in ciascun programma) e i file stessi Nei DBMS, esiste una porzione della base di dati (il catalogo o dizionario) che contiene una descrizione centralizzata dei dati, che può essere utilizzata dai vari programmi

FUNZIONALITA’ DEI DBMS Un DBMS offre specifiche funzionalità per i seguenti scopi: – definizione

FUNZIONALITA’ DEI DBMS Un DBMS offre specifiche funzionalità per i seguenti scopi: – definizione di basi di dati; – uso dei dati; – controllo dei dati; – amministrazione della base di dati; – distribuzione dei dati.

ARCHITETTURA STANDARD - I utente Livello esterno Livello logico Livello interno database utente Livello

ARCHITETTURA STANDARD - I utente Livello esterno Livello logico Livello interno database utente Livello esterno

ARCHITETTURA STANDARD - II Nei DBMS la base di dati è descritta separatamente dai

ARCHITETTURA STANDARD - II Nei DBMS la base di dati è descritta separatamente dai programmi applicativi che ne fanno uso ed è utile distinguere tre diversi livelli di descrizione dei dati: livello logico: descrizione dell’intera base di dati nel modello logico “principale” del DBMS livello interno (o fisico): rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione (es. : files) livello esterno (di vista logica): descrizione di parte della base di dati in un modello logico (“viste” parziali, derivate, anche in modelli diversi)

ESEMPIO: differenze fra le descrizioni dei dati Si consideri una base di dati per

ESEMPIO: differenze fra le descrizioni dei dati Si consideri una base di dati per gestire informazioni sui docenti di un’università, di supporto alle attività dell’ufficio stipendi e della biblioteca. Al livello di vista logica, l’ufficio stipendi richiede una vista dei dati sui docenti che include i seguenti campi: Nome e cognome, Codice fiscale, Parametro e Stipendio. La biblioteca richiede invece una vista dei dati sui docenti che include i seguenti campi: Nome e cognome, Recapito telefonico. Al livello logico, i dati sui docenti sono descritti da un unico insieme di ennuple che includeranno i campi diversi che occorrono nelle due viste. Grazie al meccanismo degli schemi esterni, ogni applicazione vedrà poi solo i dati di sua competenza. Infine, al livello fisico, il progettista della base di dati fisserà un’organizzazione fisica per l’insieme dei dati dei docenti descritto al livello logico, scegliendone una fra quelle previste dal DBMS.

Corsi LIVELLO ESTERNO: ESEMPIO Aule Docente Aula Corso Basi di dati Rossi DS 3

Corsi LIVELLO ESTERNO: ESEMPIO Aule Docente Aula Corso Basi di dati Rossi DS 3 Neri N 3 Sistemi Bruni N 3 Reti Bruni G Controlli Corsi. Sedi Nome DS 3 N 3 G Edificio Piano OMI Terra Pincherle Primo Corso Aula Edificio Piano Sistemi Reti N 3 OMI Terra Controlli G Pincherle Primo

INDIPENDENZA DEI DATI n L‘approccio con tre livelli di descrizione dei dati è stato

INDIPENDENZA DEI DATI n L‘approccio con tre livelli di descrizione dei dati è stato proposto come un modo per garantire le proprietà di indipendenza logica e fisica dei DBMS n l’accesso avviene solo tramite il livello esterno (che può coincidere con il livello logico) n due forme: ¨ indipendenza fisica ¨ indipendenza logica

INDIPENDENZA FISICA n indipendenza delle applicazioni dall‘organizzazione fisica dei dati; i programmi applicativi non

INDIPENDENZA FISICA n indipendenza delle applicazioni dall‘organizzazione fisica dei dati; i programmi applicativi non devono essere modificati in seguito a modifiche dell‘organizzazione fisica dei dati n il livello logico e quello esterno sono indipendenti da quello fisico ¨ una relazione è utilizzata nello stesso modo qualunque sia la sua realizzazione fisica ¨ la realizzazione fisica può cambiare senza che debbano essere modificati i programmi

INDIPENDENZA LOGICA n indipendenza delle applicazioni dall‘organizzazione logica dei dati; i programmi applicativi non

INDIPENDENZA LOGICA n indipendenza delle applicazioni dall‘organizzazione logica dei dati; i programmi applicativi non devono essere modificati in seguito a modifiche dello schema logico. Le modifiche possono essere l‘aggiunta di nuove definizioni, la modifica o l’eliminazione di alcune di quelle esistenti ¨ il livello esterno è indipendente da quello logico ¨ aggiunte o modifiche alle viste non richiedono modifiche al livello logico ¨ modifiche allo schema logico che lascino inalterato lo schema esterno sono trasparenti

Uso dei dati Come conseguenza dell’integrazione dei dati, un DBMS deve prevedere più modalità

Uso dei dati Come conseguenza dell’integrazione dei dati, un DBMS deve prevedere più modalità d’uso per soddisfare le esigenze delle diverse categorie di utenti che possono accedere alla base di dati. Distinguiamo tre categorie di utenti con differente approccio ai dati. Un programmatore delle applicazioni ha bisogno di accedere alla base di dati da programmi sviluppati con linguaggi di programmazione diversi. Gli utenti non programmatori sono coloro che richiedono un linguaggio interattivo a sè stante, di facile uso, per fare principalmente ricerche di dati. Infine, gli utenti delle applicazioni sono coloro che richiedono delle modalità molto semplici per attivare un numero predefinito di operazioni, senza avere nessuna competenza informatica: l’utente agisce selezionando una delle possibili scelte proposte (menu), e fornisce i valori degli argomenti riempendo campi di opportune “maschere”.

LINGUAGGI PER DATABASE n Un altro contributo all’efficacia: disponibilità di vari linguaggi e interfacce

LINGUAGGI PER DATABASE n Un altro contributo all’efficacia: disponibilità di vari linguaggi e interfacce linguaggi testuali interattivi (SQL) comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C . . . ) comandi (SQL) immersi in un linguaggio ad hoc, con anche altre funzionalità (p. es. per grafici o stampe strutturate) con interfacce amichevoli (senza linguaggio testuale) 138 10/29/2020

Controllo dei dati Una caratteristica molto importante dei DBMS è il tipo di meccanismi

Controllo dei dati Una caratteristica molto importante dei DBMS è il tipo di meccanismi offerti per garantire le seguenti proprietà di una base di dati: Ø integrità Ø affidabilità Ø sicurezza

Controllo dei dati: integrità I DBMS prevedono dei meccanismi per controllare che i dati

Controllo dei dati: integrità I DBMS prevedono dei meccanismi per controllare che i dati inseriti, o modificati, siano conformi alle definizioni date nello schema, in modo da garantire che la base di dati si trovi sempre in uno stato che rispetti i vincoli dichiarati. Esempi di vincoli discussi in precedenza sono le chiavi primarie ed esterne. 140

Controllo dei dati: affidabilità I DBMS devono disporre di meccanismi per proteggere i dati

Controllo dei dati: affidabilità I DBMS devono disporre di meccanismi per proteggere i dati da malfunzionamenti hardware o software e da interferenze indesiderate dovute all’accesso contemporaneo ai dati da parte di più utenti. Per quanto riguarda la protezione da malfunzionamenti, un DBMS prevede che le interazioni con la base di dati avvengano per mezzo di transazioni, cioè con un meccanismo che garantisce il buon esito delle operazioni delle applicazioni nel caso di funzionamento normale, e che esclude effetti parziali dovuti all’interruzione delle applicazioni per una qualsiasi ragione.

Controllo dei dati: affidabilità Una transazione è un programma sequenziale costituito da un insieme

Controllo dei dati: affidabilità Una transazione è un programma sequenziale costituito da un insieme di azioni di lettura e scrittura in memoria permanente e di elaborazioni di dati in memoria temporanea, con le seguenti proprietà: – Atomicità: solo le transazioni che terminano normalmente fanno transitare la base di dati in un nuovo stato. Le transazioni che terminano prematuramente sono trattate dal sistema come se non fossero mai iniziate; pertanto eventuali loro effetti sulla base di dati sono annullati. – Serializzabilità: l’effetto sulla base di dati dell’esecuzione contemporanea di più transazioni è equivalente ad una esecuzione seriale delle transazioni, cioè ad una esecuzione in cui le transazioni vengono eseguite una dopo l’altra in un qualche ordine. – Persistenza: le modifiche sulla base di dati di una transazione terminata normalmente sono permanenti, cioè non sono alterabili da eventuali malfunzionamenti.

TRANSAZIONI (PER L‘UTENTE) n Esempi: ¨ versamento presso uno presso sportello bancario ¨ emissione

TRANSAZIONI (PER L‘UTENTE) n Esempi: ¨ versamento presso uno presso sportello bancario ¨ emissione di certificato anagrafico ¨ dichiarazione presso l’ufficio di stato civile ¨ prenotazione aerea n Due accezioni ¨ Per l'utente: n programma a disposizione, da eseguire per realizzare una funzione di interesse ¨ Per il sistema: n sequenza indivisibile di operazioni

Controllo dei dati: affidabilità Un malfunzionamento è un evento a causa del quale la

Controllo dei dati: affidabilità Un malfunzionamento è un evento a causa del quale la base di dati può trovarsi in uno stato scorretto. Si distinguono tre tipi di malfunzionamenti: Ø fallimenti di transazioni: interruzioni di transazioni che non comportano perdite di dati in memoria temporanea o permanente. Ø fallimenti di sistema: interruzioni del suo funzionamento dovuti ad un’anomalia hardware o software dell’unità centrale o di una periferica, conseguente interruzione di tutte le transazioni attive. Si assume che il contenuto della memoria permanente sopravviva, mentre si considera perso il contenuto della memoria temporanea. Ø disastri: sono malfunzionamenti che danneggiano la memoria permanente contenente la base di dati

FUNZIONALITA’ DEI DBMS Controllo dei dati: affidabilità Quando si verifica un malfunzionamento vengono attivate,

FUNZIONALITA’ DEI DBMS Controllo dei dati: affidabilità Quando si verifica un malfunzionamento vengono attivate, in modo utomatico o semi-automatico, opportune procedure per garantire che la base di dati contenga soltanto quelle modifiche apportate dalle transazioni terminate con successo prima dell’occorrenza del malfunzionamento. Per poter eseguire queste procedure un DBMS mantiene una copia di sicurezza della base di dati e tiene traccia di tutte le modifiche fatte sulla base di dati dal momento in cui è stata eseguita l’ultima copia di sicurezza. Grazie a questi dati, quando si verifica un malfunzionamento il DBMS può ricostruire una versione corretta dei dati utilizzando l’ultima copia e rieseguendo tutte le operazioni che hanno 145 modificato i dati e di cui ha mantenuto traccia.

Controllo dei dati: affidabilità - ESEMPIO Si supponga che Antonio e Giovanna condividano un

Controllo dei dati: affidabilità - ESEMPIO Si supponga che Antonio e Giovanna condividano un conto corrente contemporaneamente facciano un prelievo e un versamento da sportelli diversi. e che Sia 350 il saldo, 400 la somma che Giovanna versa e 50 la somma che Antonio preleva. Supponiamo che sulla base di dati si verifichino i seguenti eventi, nell’ordine mostrato: – il cassiere di Giovanna legge il saldo 350, – il cassiere di Antonio legge il saldo 350, – il cassiere di Giovanna modifica il saldo in 750, – il cassiere di Antonio modifica il saldo in 300. L’effetto dell’operazione di Giovanna è annullato da quello dell’operazione di Antonio e il saldo finale è di 300 Per evitare interferenze indesiderate il DBMS deve, invece, coordinare opportunamente l’esecuzione concorrente di un insieme di transazioni T 1, …, Tn, intercalando opportunamente nel tempo le azioni sulla base di dati di ogni transazione, in modo che l’effetto dell’esecuzione sia quello ottenibile eseguendo le transazioni isolatamente, in un qualche ordine.

Controllo dei dati: sicurezza I DBMS prevedono meccanismi sia per controllare che solo persone

Controllo dei dati: sicurezza I DBMS prevedono meccanismi sia per controllare che solo persone autorizzate accedano ai dati, sia per restringere i dati accessibili e le operazioni che si possono fare su di essi. Esempi del primo tipo sono la “identificazione” degli utenti autorizzati, con parole di riconoscimento, oppure la possibilità di proteggere i dati da furti mediante crittografia.

Amministrazione della base di dati L’amministratore della base di dati (Data Base Administrator (DBA))

Amministrazione della base di dati L’amministratore della base di dati (Data Base Administrator (DBA)) è una persona (o un gruppo di persone) che dopo aver partecipato allo studio di fattibilità per decidere l’impiego di un DBMS, ne seleziona uno, lo mette in funzione, lo mantiene in esercizio e segue ogni applicazione dalla progettazione all’impiego. L’amministratore della base di dati ha bisogno di: – analisi dei requisiti di nuove applicazioni e progettazione, sviluppo e manutenzione di basi di dati e delle applicazioni che ne fanno uso; – definizione degli schemi di basi di dati (logici, fisici ed esterni), delle autorizzazioni e modalità di accesso ai dati per ogni classe di utenti e delle politiche per la sicurezza dei dati; – definizione delle procedure per il caricamento dei dati, la creazione di copie di sicurezza, il ripristino dei dati dopo malfunzionamenti di sistema o dei dischi; – controllo del funzionamento del sistema per decidere eventuali riorganizzazioni della struttura logica e fisica dei dati al fine di migliorare le prestazioni delle applicazioni.

Distribuzione dei dati Un DBMS moderno deve garantire la possibilità di distribuire i dati

Distribuzione dei dati Un DBMS moderno deve garantire la possibilità di distribuire i dati gestiti dal sistema su più elaboratori collegati tra di loro da una rete locale o geografica, eventualmente replicando alcuni dati. La distribuzione dei dati su reti locali è molto utile per sostituire i costosi calcolatori di grandi dimensioni, tradizionalmente usati per i DBMS, con reti di calcolatori di costo più ridotto. La distribuzione dei dati su reti geografiche è utile ad aziende con più sedi per poter gestire in ogni sede i dati di interesse locale, mantenendo la possibilità di accedere a tutti i dati dell’organizzazione. Infine, entrambi i tipi di distribuzione, se combinati con la replicazione di alcuni dati, permettono di continuare ad operare sui dati anche quando un elaboratore sia fuori servizio. La distribuzione dei dati aumenta la complessità dei DBMS che devono essere in grado di gestire transazioni eseguite su nodi diversi della rete e garantire la 149 coerenza di eventuali dati duplicati.

FUNZIONALITA’ DEI DBMS Da questa rapida presentazione delle funzionalità dei DBMS si dovrebbe intuire

FUNZIONALITA’ DEI DBMS Da questa rapida presentazione delle funzionalità dei DBMS si dovrebbe intuire come essi siano dei prodotti complessi e costosi. Attualmente i DBMS relazionali sono disponibili su tutte le categorie di calcolatori con differenze che riguardano: – la quantità di dati memorizzabili; – il numero di utenti che possono accedere contemporaneamente ai dati; – i meccanismi offerti per il controllo dei dati, per l’integrità e l’affidabilità; – le tecniche per la gestione dei dati nelle memorie permanenti; – i tipi di linguaggi per l’uso dei dati da parte degli specialisti; – i tipi di prodotti per l’utente finale; – le prestazioni 150 – gli strumenti per l’amministrazione della base di dati.

PERSONAGGI E INTERPRETI n n progettisti e realizzatori di DBMS progettisti del database e

PERSONAGGI E INTERPRETI n n progettisti e realizzatori di DBMS progettisti del database e amministratori del database progettisti e programmatori di applicazioni utenti ¨ utenti finali (terminalisti): eseguono applicazioni predefinite (transazioni) ¨ utenti casuali: eseguono operazioni non previste a priori, usando linguaggi interattivi

DATABASE ADMINISTRATOR (DBA) n Persona o gruppo di persone responsabile del controllo centralizzato e

DATABASE ADMINISTRATOR (DBA) n Persona o gruppo di persone responsabile del controllo centralizzato e della gestione del sistema, delle prestazioni, dell’affidabilità, delle autorizzazioni n Le funzioni del DBA includono quelle di progettazione, anche se in progetti complessi ci possono essere distinzioni

VANTAGGI E SVANTAGGI DEI DBMS - I Pro n dati come risorsa comune, database

VANTAGGI E SVANTAGGI DEI DBMS - I Pro n dati come risorsa comune, database come modello della realtà n gestione centralizzata con possibilità di standardizzazione ed “economia di scala” n disponibilità di servizi integrati n riduzione di ridondanze e inconsistenze n indipendenza dei dati (favorisce lo sviluppo e la manutenzione delle applicazioni) Contro n costo dei prodotti e della transizione verso di essi n non scorporabilità delle funzionalità (con riduzione di efficienza)