1.88k likes | 2.15k Vues
Sistemi per il recupero delle informazioni. RIASSUNTO. PROGETTAZIONE. Ricordiamo le fasi della progettazione di una Base di Dati. ESEMPIO. ESEMPIO. VIENE TRADOTTO NELLO SCHEMA MUSEI ( NomeM , Città, Indirizzo, Direttore) ARTISTI ( NomeA , Nazionalità, DataN, DataM)
E N D
PROGETTAZIONE • Ricordiamo le fasi della progettazionedi una Base di Dati
ESEMPIO VIENE TRADOTTO NELLO SCHEMA MUSEI (NomeM, Città, Indirizzo, Direttore) ARTISTI (NomeA, Nazionalità, DataN, DataM) OPERE (Codice, Anno, Titolo, NomeM*, NomeA*) 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 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 • 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) • L’ordine degli attributi non è significativo • dominio (di un attributo): è l’insieme dei valori che può assumere un attributo. • chiaveprimariadi una relazione: un attributo che identifica univocamente le ennuple della relazione. Gli attributi della chiave primaria vengono sottolineati
TERMINOLOGIA - II • 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(A1:T1, A2:T2,..., An:Tn) • R è il nome della relazione • A1, A2,... sono gli attributi della relazione • T1, T2,... sono i tipi degli attributi (interi, reali, booleani, stringhe) • Per semplicità omettiamo la specifica dei tipi, per cui lo schema di relazione è R(A1, A2,...,An)
Orario Chimica Insegnamento Sistemi inform. Analisi matem. I Fisica II Fisica I Basi di dati Piero Rossi Luigi Neri Docente Piero Rossi Mario Bruni Mario Bruni Nicola Mori N1 N3 N1 N2 N3 Aula N1 9:45 11:45 Ora 9:45 9:45 8:00 8:00 ORARIO (Insegnamento, Docente, Aula, Ora) RELAZIONE E TABELLA Relazione e tabella sono sinonimi
Orario Chimica Fisica II Basi di dati Analisi matem. I Fisica I Insegnamento Sistemi inform. Mario Bruni Piero Rossi Docente Piero Rossi Nicola Mori Luigi Neri Mario Bruni N1 Aula N2 N3 N1 N1 N3 9:45 11:45 8:00 9:45 Ora 9:45 8:00 ORARIO (Insegnamento, Docente, Aula, Ora) SCHEMA Le colonne della tabella formano lo schema della relazione Lo schema della relazione è la descrizione della struttura di una relazione
Orario Chimica Fisica II Basi di dati Analisi matem. I Fisica I Insegnamento Sistemi inform. Mario Bruni Piero Rossi Docente Piero Rossi Nicola Mori Luigi Neri Mario Bruni N1 Aula N2 N3 N1 N1 N3 9:45 11:45 8:00 9:45 Ora 9:45 8:00 ORARIO (Insegnamento, Docente, Aula, Ora) ISTANZE I contenuti delle righe della tabella formano le istanze della relazione • Un’istanza di uno schema di relazione è un insieme finito di ennuple. • osserviamo che tutte le ennuple di una relazione hanno la stessa struttura
Corsi Aule Docente Aula Corso Nome Edificio Piano DS3 OMI Terra Bruni Neri Rossi Bruni N3 N3 DS3 G Basi di dati Controlli Sistemi Reti N3 OMI Terra G Pincherle Primo Aula Edificio Piano Corso CorsiSedi Sistemi N3 OMI Terra N3 OMI Terra Reti G Pincherle Primo Controlli DATABASE Un database e’ un insieme di tabelle • Lo schema relazionale è la descrizione della struttura di una base di dati • insieme di schemi di relazione e insieme di vincoli
DA MODELLO A OGGETTI A MODELLO RELAZIONALE • La trasformazione di uno schema a oggetti in uno schema relazionale avviene eseguendo i seguenti passi: • 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 cui attributi sono quelli di C si traduce in Studenti(Matricola, Nome, AnnoImmatric)
2. Rappresentazione delle associazioni uno a uno e uno a molti Studenti(Matricola, Nome, AnnoImmatric, Codice*) CorsidiLa(Codice, Nome, Tipo) la chiave esterna Codice* rappresenta l’associazione è_iscritto N.B. È un grave errore fare il contrario. Lo schema: Studenti(Matricola, Nome, AnnoImmatric) CorsidiLa(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 CorsidiLa(Codice,Nome,Facoltà,Tipo) Docenti(CodDoc, Settore) Insegna(Codice*, CodDoc*) Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di oggetti in associazione. Il docente identificato dal CodDoc 1592 insegna ai corsi di laurea identificati dai codici Inf, SBC e Mat , il docente identificato dal CodDoc 3014 insegna al corso di laurea identificato dai codici Inf, ecc...
4. Rappresentazione delle gerarchie fra classiPartizionamento orizzontale • 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 Film(CodFilm,Titolo,Regista,Anno) Attori(CodFilm*, Attore)
Riassumendo Le regole di traduzione • Entità: diventano tabelle ed i loro identificatori chiavi primarie • 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. • Associazioni1-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”. • Associazioni N-N: diventano tabelle con chiave primaria formata dall’unione delle chiavi delle entità coinvolte
Informazione incompleta • 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 • I dati disponibili possono non corrispondere al formato previsto Es: PERSONE(Nome, SecondoNome, Cognome) Nome SecondoNome Cognome Franklin Delano Roosevelt Winston Churchill Charles De Gaulle Josip Stalin
Informazione incompleta: soluzioni? • 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 • 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
Vincoli, schemi e istanze • 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) • Ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli • Nel modello relazionale si possono esprimere i seguenti vincoli: • Vincolo di chiave • Vincolo di chiave esterna • Tipo di un attributo • Attributo obbligatorio • Vincoli strutturali delle associazioni (non completamente)
Esami Studente Voto Lode Corso 32 01 30 e lode 02 276545 787643 03 276545 739430 24 04 27 27 e lode e lode Studenti Matricola Cognome Nome 276545 Rossi Mario Neri Piero 787643 787643 787643 Bianchi Luca 787643 Una base di dati "scorretta" 32 739430
Tipi di vincoli • Vincoli intrarelazionali: coinvolgono una singola relazione del database. • Esempi • vincoli di ennupla • vincoli di chiave • vincoli su valore • Vincoli interrelazionali: coinvolgono diverse relazioni del database. • Esempio: vincoli di integrità referenziale
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 Vincoli di ennupla, esempio Lordo = (Ritenute + Netto) • Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple • Una possibile sintassi: • espressione booleana di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi
Importanza delle chiavi • L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati • Lechiavi permettono di correlare i dati in relazioni diverse: • il modello relazionale è basato su valori • In presenza di valori nulli, i valori della chiave non permettono • di identificare le ennuple • di realizzare facilmente i riferimenti da altre relazioni
Ing Inf 86765 NULL Mario 5/12/78 Corso Nascita Matricola Cognome Nome 78763 Mario Ing Civile Rossi 3/11/76 Neri Piero Ing Mecc 10/7/79 65432 NULL 87654 Neri Mario Ing Inf 5/12/78 NULL 43289 Neri Mario Chiave primaria • Chiave su cui non sono ammessi nulli • Notazione: sottolineatura
Integrità referenziale • Informazioni in relazioni diverse sono correlate attraverso valori comuni • in particolare, valori delle chiavi (primarie) • le correlazioni debbono essere "coerenti“ • Un vincolo di integrità referenziale (“foreignkey”) fra gli attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X in R1 di comparire come valori della chiave primaria di R2 • ES: vincoli di integrità referenziale fra: l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI
Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 3987 MI 39548K 3295 53524 4/3/95 3295 TO E39548 3295 64521 5/4/96 3295 PR 839548 73321 5/2/98 9345 9345 PR 839548 Vigili Matricola Cognome Nome 3987 Rossi Luca 3987 3295 Neri Piero 3295 9345 Neri Mario 9345 7543 Mori Gino 3987 3295 3295 9345
Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548K 53524 4/3/95 3295 TO E39548 TO E39548 64521 5/4/96 3295 PR 839548 73321 5/2/98 9345 PR 839548 Auto Prov Numero Cognome Nome MI E39548 Rossi Mario TO F34268 Rossi Mario E39548 PR 839548 Neri Luca TO Violazione di vincolo di integrità referenziale
Integrità referenziale e valori nulli Impiegati Matricola Cognome Progetto 34321 Rossi IDEA 53524 Neri XYZ 64521 Verdi NULL 73032 Bianchi IDEA Progetti Codice Inizio Durata Costo IDEA 01/2000 36 200 XYZ 07/2001 24 120 BOH 09/2001 24 150
Azioni compensative • Esempio: • Viene eliminata una ennupla causando una violazione • Comportamento “standard”: • Rifiuto dell'operazione • Azioni compensative: • Eliminazione in cascata • Introduzione di valori nulli
Impiegati Matricola Cognome Progetto 53524 Neri XYZ 34321 Rossi IDEA 53524 Neri XYZ 64521 Verdi NULL 73032 Bianchi IDEA Progetti Codice Inizio Durata Costo IDEA 01/2000 36 200 XYZ 07/2001 24 120 XYZ 07/2001 24 120 BOH 09/2001 24 150 XYZ 07/2001 24 120 XYZ 07/2001 24 120 Eliminazione in cascata
Impiegati Matricola Cognome Progetto 34321 Rossi IDEA 53524 Neri XYZ 64521 Verdi NULL 73032 Bianchi IDEA Progetti Codice Inizio Durata Costo IDEA 01/2000 36 200 XYZ 07/2001 24 120 XYZ 07/2001 24 120 BOH 09/2001 24 150 XYZ 07/2001 24 120 XYZ 07/2001 24 120 Introduzione di valori nulli NULL
Esercizio • La segreteria di un corso di laurea deve gestire alcune informazioni relative all’orario delle lezioni. • informazioni: aule, corsi, lezioni • 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 • alcune aule sono dotate di calcolatori, in questo caso interessa sapere il numero dei pc • i corsi sono identificati da un codice; di ogni corso interessa il nome e il docente • le lezioni sono caratterizzate da un’ora d’inizio, un’ora di fine, un giorno della settimana, il semestre • ogni lezione è tenuta in un’aula e si riferisce ad un corso
Sistemi per il recupero delle informazioni ALGEBRA RELAZIONALE
Accesso ai Dati nei Sistemi Relazionali • Una base di dati può essere utilizzata con due modalità: • interattivamente: l’utente interagisce direttamente con la base di dati presentando 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. • mediante programmi:questo uso è riservato ad utenti programmatori. Le interrogazioni fanno parte di un programma applicativo che può essere eseguito dal sistema numerose volte, ed il risultato delle interrogazioni può essere utilizzato dal programma per successive elaborazioni
LINGUAGGI RELAZIONALI • Come esempio di linguaggi per l’uso interattivo di basi di dati, relazionali, vediamo • l’algebra relazionale: insieme di operatori su relazioni che danno come risultato relazioni. Non si usa come linguaggio di interrogazione dei DBMS ma come rappresentazione interna delle interrogazioni. • il linguaggio SQL (Structured Query Language), che offre una sintassi per l’algebra relazionale. • Il termine algebra è dovuto al fatto che sono previsti operatori (query) che agiscono su relazioni e producono altre relazioni come risultato. Gli operatori possono essere combinati per formare espressioni complesse.
Algebra relazionale • Insieme di operatori • su relazioni • che producono relazioni (tabelle) • e possono essere composti per svolgere operazioni più complesse
OPERATORI FONDAMENTALI • Gli operatori fondamentali dell’algebra relazionale sono: • Ridenominazione; • Unione; • Intersezione; • Differenza; • Proiezione; • Restrizione (o Selezione); • Prodotto. • I simboli R,S,... denotano relazioni, A, B,…attributi e X,Y,…insiemi di attributi
Padre Figlio Adamo Abele Adamo Caino Abramo Isacco Padre Figlio Adamo Abele Adamo Caino Abramo Isacco RIDENOMINAZIONE • Operatore unario • 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’,… • DEFINIZIONE OPERATORIALE: AA’ (R) Paternità Genitore Padre (Paternità) Genitore
OPERATORI INSIEMISTICI • Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli insiemi • I risultati debbono essere relazioni • E’ possibile applicare unione, intersezione, differenza solo a relazioni definite sugli stessi attributi
UNIONE, INTERSEZIONE, DIFFERENZA • 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. • DEFINIZIONE OPERATORIALE • RS • RS • R - S
Maternità ESEMPIO: UNIONE? • “Paternita’” e “Maternità” sono attributi con nomi diversi ma entrambi sono “Genitori” • Soluzione: ridenominare gli attributi Madre ???
selezione proiezione • operatori "ortogonali“ • selezione: • decomposizione orizzontale • proiezione: • decomposizione verticale