151
Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni RIASSUNTO

Embed Size (px)

Citation preview

Page 1: Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni

RIASSUNTO

Page 2: Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni

DATABASE

Page 3: Sistemi per il recupero delle informazioni RIASSUNTO

DATABASE

Accezione generica, metodologica Insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un

ente (azienda, ufficio, persona)

Accezione specifica, metodologica e tecnologica Insieme di dati gestito da un DBMS

Nella nostra accezione i database sono: un supporto digitale in cui i dati sono immagazzinati un software che permetta il recupero dei dati una rete che permetta un’accessibilita` condivisa ai dati

DEFINIZIONE. Una base di dati è una raccolta di dati permanenti suddivisi in due categorie: I METADATI I DATI

Page 4: Sistemi per il recupero delle informazioni RIASSUNTO
Page 5: Sistemi per il recupero delle informazioni RIASSUNTO

COS’E’ UNA BASE DATII 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.

Page 6: Sistemi per il recupero delle informazioni RIASSUNTO

COS’E’ UNA BASE DATII DATI

i dati, le rappresentazioni dei fatti conformi alle definizioni dello schema, con le seguenti caratteristiche:

I dati sono strutturati, cioè hanno un formato predefinito

a) sono organizzati in insiemi omogenei, fra i quali sono definite delle relazioni e sono previsti operatori per estrarre elementi da un insieme e per conoscere quelli che, in altri insiemi, sono in relazione con essi.

b) sono molti, in assoluto e rispetto ai metadati, e non possono essere gestiti in memoria temporanea; sono memorizzati in una memoria permanente.

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.

Page 7: Sistemi per il recupero delle informazioni RIASSUNTO

TRANSAZIONI (PER L‘UTENTE)

Esempi: versamento presso uno presso sportello bancario emissione di certificato anagrafico dichiarazione presso l’ufficio di stato civile prenotazione aerea

Due accezioni Per l'utente:

programma a disposizione, da eseguire per realizzare una funzione di interesse

Per il sistema: sequenza indivisibile di operazioni

Page 8: Sistemi per il recupero delle informazioni RIASSUNTO

Si consideri la base di dati degli studenti ed esami superati definiti dagli schemi di relazioni:

Studenti(Matricola, Cognome, Città, AnnoNascita)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.

ESEMPIO DATI e METADATI

Page 9: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO DATI e METADATI

Per rappresentare i corsi attivati ed i relativi docenti si può usare uno schema del tipo

(Corso, Nome Docente) questo e’ uno schema invariante nel tempo,

mentre le coppie

(Informatica Generale, Righi)

(Basi di Dati e Sistemi Informativi, Leoni) sono istanze dello schema precedente e possono variare nel

tempo

Page 10: Sistemi per il recupero delle informazioni RIASSUNTO

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 (lo schema va definito prima di creare dati)

b) per scegliere le strutture dati per la memorizzazione dei dati,c) per usare la base di dati interattivamente o da programmid) memorizzare i dati rispettando i vincoli definiti nello schema;

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. Un DBMS deve essere efficiente ed efficace.

Esempi di prodotti software disponibili sul mercato: Access, DB2, Oracle, Informix, Sybase, SQLServer

DataBase Management System (DBMS)

Page 11: Sistemi per il recupero delle informazioni RIASSUNTO

I DATABASE SONO... 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:

Attivita' diverse su dati condivisi: meccanismi di autorizzazione Accessi di più utenti ai dati condivisi:controllo della concorrenza

Page 12: Sistemi per il recupero delle informazioni RIASSUNTO

I DBMS GARANTISCONO…

PRIVATEZZA Si possono definire meccanismi di autorizzazione

l'utente A è autorizzato a leggere tutti i dati e a modificare quelli sul ricevimento

l'utente B è autorizzato a leggere X e a modificare Y

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

Page 13: Sistemi per il recupero delle informazioni RIASSUNTO

I DBMS DEVONO ESSERE …

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

EFFICACI Cercano di rendere produttive le attività dei loro utilizzatori,

offrendo funzionalità articolate, potenti e flessibili: il corso è in buona parte dedicato ad illustrare come i DBMS

perseguono l'efficacia

Page 14: Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per base di dati - DBMS

Diverse categorie di persone possono interagire con una base di dati tramite un DBMS. Amministratore della base di dati (DBA).

responsabile della progettazione, controllo e amministrazione della base di dati.

I progettisti e programmatori di applicazioni. realizzano i programmi che accedono e interrogano la base di

dati. Gli utenti non programmatori che utilizzano la base di dati per le

proprie attività.

Page 15: Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni

MODELLI INFORMATICI

DIAGRAMMI E-R

Page 16: Sistemi per il recupero delle informazioni RIASSUNTO

MODELLI

L’informatica offre metodologie e strumenti per la costruzione di modelli di situazioni reali che ricorrono in ogni campo che richiede un’attività di progettazione. Essi permettono di riprodurre le caratteristiche essenziali di fenomeni reali, omettendo dettagli che costituirebbero inutili complicazioni.

Per poter gestire un sistema informativo con strumenti informatici dobbiamo realizzare una descrizione della realtà d’interesse per mezzo di simboli

Un modello di dati e’ un insieme di concetti utilizzati per organizzare i dati e descriverne la struttura in modo che essa risulti comprensibile a un elaboratore

Ad es per poter gestire una biblioteca è necessario dare al calcolatore una sua descrizione simbolicaUna tale descrizione costituisce un modello della realtà

Page 17: Sistemi per il recupero delle informazioni RIASSUNTO

MODELLI INFORMATICI

Sono modelli simbolici: rappresentazione formale delle idee e conoscenze relative ad un fenomenoSi hanno diverse categorie di modelli informatici che differiscono per i tipi di fatti che si considerano, ossia per i diversi livelli di astrazione a cui si opera

• modelli concettuali: sono considerati solo i fatti relativi alla realtà senza alcun riferimento agli strumenti informatici che dovranno usare il modello

• modelli logici: sono considerati anche fatti relativi agli strumenti informatici; il modello è adeguato alle caratteristiche del DBMS, in modo che possa essere da questo interpretato

• modelli fisici: sono considerate le strutture fisiche usate dal calcolatore per rappresentare i dati

Page 18: Sistemi per il recupero delle informazioni RIASSUNTO
Page 19: Sistemi per il recupero delle informazioni RIASSUNTO

IL MODELLO

Nella costruzione di un modello informatico,

prima si “definisce” il modello, descrivendo conoscenza concreta e conoscenza astratta

poi si “costruisce” la rappresentazione della conoscenza concreta.

Per la definizione del modello si possono usare diversi tipi di formalismi, che si differenziano per il “modello dei dati” che supportano, cioè per meccanismi di astrazione offerti per rappresentare la realtà.

Nel seguito si presentano due tipi di modelli dei dati: il

- modello a oggetti, usato come esempio di formalismo per la progettazione di una basi di dati

- modello relazionale, usato come esempio di formalismo per la realizzazione di una base di dati.

Page 20: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

Per costruire un modello informatico per la gestione di informazioni sui libri, prima si devono definire quelle che interessano ai fini dell’applicazione (titolo, autore, editore ecc.).

Una volta definite le proprietà interessanti comuni a tutti i possibili libri, si passa a costruire per ogni entità “libro” della realtà oggetto di studio una rappresentazione nel modello informatico.

Page 21: Sistemi per il recupero delle informazioni RIASSUNTO

IL MODELLO DEI DATI A OGGETTO

Per rappresentare in maniera naturale e diretta l’idea che il progettista si fa del mondo osservato, il modello dei dati a oggetti prevede i seguenti meccanismi d’astrazione:

oggetto tipo di oggetto classe gerarchie fra classi

Verranno dati esempi di utilizzo di questi meccanismi tramite un formalismo grafico che serva a definire lo schema di una base di dati, ovvero la struttura della conoscenza concreta, che chiameremo schema concettuale.

Il formalismo grafico viene chiamato diagramma entità-relazione

Page 22: Sistemi per il recupero delle informazioni RIASSUNTO

IL MODELLO DEI DATI A OGGETTO

questioni terminologiche

Page 23: Sistemi per il recupero delle informazioni RIASSUNTO

Un oggetto è un’entità software con stato ed identità, che modella un’entità dell’universo del discorso.

. Lo stato è costituito da un insieme di campi, che

- sono valori costanti o variabili associati ad un nome, detto attributo.

- possono assumere valori di qualsiasi complessità

- modellano le proprietà dell’entità

Come accade per le proprietà delle entità, un attributo di un oggetto puòavere valori di tipo atomico o strutturato, semplice o unione, univoco omultivalore, totale o parziale, costante o modificabile.

OGGETTO E TIPO DI OGGETTO

Page 24: Sistemi per il recupero delle informazioni RIASSUNTO

CLASSI E ASSOCIAZIONI

La classe modella un insieme di oggetti dello stesso tipo del mondo reale è costruita col processo di astrazione detto classificazione: entità

diverse vengono unificate per costituire un nuovo concetto. Si astrae dalle differenze fra le entità per evidenziare ciò che le accomuna.

tutti gli oggetti di una classe sono caratterizzati dagli stessi attributi.

L’ associazione modella una correlazione fra entità del mondo reale è una corrispondenza tra classi, e stabilisce una correlazione logica fra

oggetti appartenenti a classi diverse (o anche alla stessa classe).

Page 25: Sistemi per il recupero delle informazioni RIASSUNTO

CONCETTI IMPORTANTI

dominio di un attributo: è l’insieme dei valori che può assumere l’attributo stesso

esempio: il dominio dell’attributo mese è costituito dall’insieme{gennaio, febbraio, marzo, ....,dicembre} oppure dall’insieme {01, 02,

03, ....,12}

chiave di una classe: è un attributo (o un insieme di attributi) che identifica univocamente gli oggetti di una classe K è chiave della classe C se non esistono due oggetti in C che hanno lo

stesso valore di K

esempio: l’attributo matricola è chiave della classe STUDENTI

Page 26: Sistemi per il recupero delle informazioni RIASSUNTO

DIAGRAMMI E-R

Nel formalismo grafico che si adotta, una classe si rappresenta con un rettangolo etichettato con il nome della classe.

Per gli attributi si usano le seguenti convenzioni:1. attributi con valori atomici sono rappresentati con ovali collegati alla

classe da un arco che termina con una freccia singola, se l’attributo è univoco, oppure con una freccia doppia, se l’attributo è multivalore;

2. se l’attributo ha valori strutturati, l’ovale si sostituisce con un quadratinodal quale escono archi verso ovali in numero pari ai campi del valorestrutturato.

3. se l’attributo ha valori unione, si procede come nel caso precedentesostituendo il quadratino con un cerchietto;

4. proprietà che possono avere valori non specificati si rappresentano con un taglio sull’arco;

5. gli attributi della chiave primaria si sottolineano.

Page 27: Sistemi per il recupero delle informazioni RIASSUNTO

Esempi

Una classe con gli attributi.

Cognome e’ la chiave primaria

Studenti

Una classe

Page 28: Sistemi per il recupero delle informazioni RIASSUNTO

ASSOCIAZIONI

Un’associazione binaria tra classi si rappresenta con un rombo collegato con degli archi alle classi associate.

Il rombo è etichettato con il nome dell’associazione

Studenti Corsi

segue

Page 29: Sistemi per il recupero delle informazioni RIASSUNTO

ASSOCIAZIONI: caratteristiche

univocità: ad un oggetto di una classe può essere associato un solo oggetto dell’altra classe

totale: ad un oggetto di una classe è sempre associato qualche oggetto dell’altra classe

multivalore: ad un oggetto di una classe possono essere associati più oggetti dell’altra classe

parziale: ad un oggetto di una classe non è sempre associato qualche oggetto dell’altra classe

Page 30: Sistemi per il recupero delle informazioni RIASSUNTO

ASSOCIAZIONI: esempio

Page 31: Sistemi per il recupero delle informazioni RIASSUNTO

ASSOCIAZIONI: esempio

Afferisce è univoca da Docenti a Dipartimenti: ad un oggetto della classe Docenti è associato un solo oggetto della classe Dipartimenti; si modella il fatto che un docente possa afferire ad un solo dipartimento

Afferisce è multivalore da Dipartimenti a Docenti: ad un oggetto della classe Dipartimenti possono essere associati più oggetti della classe Docenti; si modella il fatto che ad un dipartimento possano afferire molti docenti

Insegna è totale da Corsi di Laurea a Docenti: ad un oggetto della classe Corsi di Laurea è sempre associato qualche oggetto della classe Docenti; si modella il fatto che in un corso di laurea debbano necessariamente insegnare dei docenti

Insegna è parziale da Docenti a Corsi di Laurea: ad un oggetto della classe Docenti non è sempre associato qualche oggetto della classe Corsi di Laurea ; si modella il fatto che un docente potrebbe non insegnare

Page 32: Sistemi per il recupero delle informazioni RIASSUNTO

GERARCHIA FRA CLASSI

Tra due classi E ed F può essere stabilita una gerarchia

E è detta sottoclasse o specializzazione di F F è detta superclasse o generalizzazione di E

Proprietà delle gerarchie Vincolo di struttura: se E è sottoclasse di F , E ha tutti gli attributi di F,

e partecipa a tutte le associazioni cui partecipa F (ereditarietà). E può avere altri attributi, e partecipare ad altre associazioni

Vincolo di insieme: se E è specializzazione di F, ogni oggetto di E è anche un oggetto di F (cioè E è un sottoinsieme di F)

Page 33: Sistemi per il recupero delle informazioni RIASSUNTO

GERARCHIA FRA CLASSI: esempio

Lo schema a sinistra e’ piu’ espressivo di quello di destra

Page 34: Sistemi per il recupero delle informazioni RIASSUNTO

DIAGRAMMI E-R: esempio

A titolo di esempio, mostriamo, ad un primo livello di dettaglio, la rappresentazione con il formalismo grafico di alcuni fatti riguardanti una biblioteca universitaria: descrizioni bibliografiche, libri, autori, utenti e prestiti.

Delle entità interessano le seguenti proprietà:

1. Di una descrizione bibliografica interessano il codice, il titolo dell’opera, l’editore, l’anno di pubblicazione e un insieme di termini usati per la classificazione del contenuto dell’opera.2. Di un libro interessano la collocazione e il numero della copia.3. Di un autore interessano il nome e cognome, la nazionalità, la data di

nascita4. Di un utente interessano il nome, il cognome, l’indirizzo e i recapiti

telefonici.5. Di un prestito interessano la data del prestito e la data di restituzione.

Page 35: Sistemi per il recupero delle informazioni RIASSUNTO

DIAGRAMMI E-R: esempio

Le associazioni interessanti sono:

1. HaScritto (N:M) tra autori e descrizioni bibliografiche, che collega un

autore con le descrizioni bibliografiche delle opere che ha scritto. Ogniautore ha scritto almeno un libro e ogni descrizione bibliografica riguarda almeno un autore;

2. Descrive (N:1) tra descrizioni bibliografiche e libri, che collega unadescrizione bibliografica alle copie dei libri presenti in biblioteca. Ogni libro ha una descrizione bibliografica e ogni descrizione bibliografica descrive una o più copie di libri, supporremo inoltre che possa

descrivere anche un libro ordinato ma non ancora acquisito dalla biblioteca;

3. HaFatto (N:1) tra utenti e prestiti, che collega gli utenti ai prestiti che ha fatto e che non sono ancora scaduti. Ogni utente della biblioteca può avere nessuno, uno o più prestiti, ma un prestito ha sempre associato l’utente che lo ha fatto;4. Riguarda (1:1) tra prestiti e libri, che collega i prestiti alle copie dei libri

interessati. Una copia di un libro può essere coinvolta in al più un prestito e un prestito riguarda una copia di un libro.

Page 36: Sistemi per il recupero delle informazioni RIASSUNTO

DIAGRAMMI E-R: esempio

Page 37: Sistemi per il recupero delle informazioni RIASSUNTO

DIAGRAMMI E-R: esempio

Page 38: Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni

COME SI PROCEDE

Page 39: Sistemi per il recupero delle informazioni RIASSUNTO

INTRODUZIONE

Finora si è visto come definire lo schema concettuale di una base di dati.

Nella pratica non è così semplice ed occorre un lungo procedimento di analisi e studio della situazione da modellare per poter produrre una progettazione concettuale della base di dati e poi una sua realizzazione.

Per dare un’idea di come si procede, si considera una tipica metodologia a più fasi in cui gli aspetti del problema vengono considerati gradualmente per ottenere una realizzazione soddisfacente.

Quattro fasi:

1. analisi dei requisiti2. progettazione concettuale3. progettazione logica4. progettazione fisica

Page 40: Sistemi per il recupero delle informazioni RIASSUNTO
Page 41: Sistemi per il recupero delle informazioni RIASSUNTO

ANALISI DEI REQUISITI

Scopo dell’analisi dei requisiti è la definizione dei bisogni informativi del committente.

Il progettista deve capire di “cosa si parla”. Poi si passa ad un’analisi del problema per raccogliere una descrizione dei bisogni informativi e formulare la cosiddetta specifica dei requisiti in linguaggio naturale.

Quando il problema è di limitata complessità, e basta interagire con una sola persona, il procedimento può essere relativamente veloce, ma quando il problema è complesso e sono coinvolte persone diverse, il procedimento diventa lungo e comporta un lavoro di unificazione dei concetti coinvolti.

Lo scopo dell’analisi dei requisiti è, in altre parole, proprio quello di chiarire la corretta interpretazione dei fatti descritti, riformulando la specifica in modo chiaro.

Page 42: Sistemi per il recupero delle informazioni RIASSUNTO

Esempio

Si vuole progettare una base di dati per gestire informazioni su musei, le opere conservate, gli artisti che hanno creato tali opere.

Di un museo interessano il nome, che lo identifica, la città, l’indirizzo e il nome del direttore.

Un artista è identificato dal nome; di lui interessano la nazionalità, la data di nascita, la eventuale data di morte.

Di un’opera, identificata da un codice, interessano, l’anno di creazione, il titolo, il nome dei personaggi rappresentati.

Un’opera può essere un dipinto od una scultura; se è un dipinto interessano il tipo di pittura e le dimensioni; se è una scultura interessano il materiale, l’altezza ed il peso.

Page 43: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE CONCETTUALE

Scopo della progettazione concettuale è di tradurre la specifica dei requisiti in un progetto della struttura concettuale dei dati descritta utilizzando un formalismo grafico.

Lo schema concettuale si definisce procedendo con i seguenti passi:

1. identificazione delle classi;2. descrizione delle associazioni fra le classi;3. definizione di sottoclassi;4. definizione delle proprietà degli elementi delle classi.

Page 44: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE CONCETTUALE

Identificazione delle classi

Si produce una lista preliminare delle classi di oggetti che interessa modellare e si assegna ad ognuna di esse un nome appropriato. Questo elenco iniziale ha un grado di completezza e di significatività che dipende dal grado di comprensione del problema e, in generale, sarà soggetto a modifiche mano a mano che si procede.

Page 45: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE CONCETTUALE

Descrizione delle associazioni fra le classi

Si individuano le possibili associazioni fra le classi finora definite e le loro proprietà strutturali. L’analisi delle associazioni può portare ad eliminare una classe che può essere rappresentata da un’associazione, o ad aggiungere una nuova classe per rappresentare un’associazione.

Page 46: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE CONCETTUALE

Definizione di sottoclassi

Per definire le sottoclassi si esaminano tutte le classi già definite percapire

1. se può essere utile definirne di nuove per caratterizzare particolarisottoinsiemi di alcune classi

2. se esistono classi che sono un sottoinsieme di altre e quindi possono essere ridefinite

3. se esistono oggetti di classi che possono assumere nel tempo stati significativi per l’applicazione

Page 47: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE CONCETTUALE

Definizione delle proprietà degli elementi delle classi

Per ogni tipo di oggetto si elencano le proprietà interessanti,specificando, per ognuna di esse, il nome e il tipo. In questo passo vaprestata molta attenzione alla possibilità se convenga introdurre nuoveclassi, o viceversa eliminarne alcune sostituendole da attributi.

Page 48: Sistemi per il recupero delle informazioni RIASSUNTO

Esempio

Page 49: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE LOGICA

Scopo della terza fase della metodologia, la progettazione logica, è di tradurre lo schema concettuale nello schema logico espresso nel modello dei dati del sistema scelto per la realizzazione della base di dati.

Page 50: Sistemi per il recupero delle informazioni RIASSUNTO

Esempio

MUSEI (NomeM, Città, Indirizzo, Direttore)

ARTISTI (NomeA, Nazionalità, DataN, DataM:optional)

OPERE (Codice, Anno, Titolo, NomeM*, NomeA*)

PERSONAGGI (Personaggio, Codice*)

DIPINTI (Codice*, Tipo, Larghezza, Altezza)

SCULTURE (Codice*, Materiale, Altezza, Peso)

Page 51: Sistemi per il recupero delle informazioni RIASSUNTO

Progettazione fisica

Consiste nel completamento, o modifica, dello schema logico in funzione della organizzazione fisica dei dati ed i meccanismi per operare su di essi.

Realizzazione

Consiste nel costruire la rappresentazione del fatti specificati nel progetto (schema dei dati, procedure), utilizzando strumenti informatici (linguaggi di programmazione, SGBD)

Page 52: Sistemi per il recupero delle informazioni RIASSUNTO
Page 53: Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni

MODELLO RELAZIONALE DEI DATI

Page 54: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE

Ricordiamo le fasi della progettazione di una Base di Dati

Ci occuperemo adesso della progettazione logica

Page 55: Sistemi per il recupero delle informazioni RIASSUNTO

PROGETTAZIONE LOGICA

La descrizione del modello da realizzare è fatta in funzione delle caratteristiche del DBMS che sarà utilizzato (il modello dei dati, il linguaggio per sviluppare le applicazioni).

Il modello dei dati, detto modello logico, è “più vicino” alla rappresentazione informatica dei dati.

Vedremo l’uso del Modello dei Dati Relazionale. Lo schema risultante è detto schema relazionale, ed è rappresentato con un formalismo testuale. è un modello dei dati “compreso” dal DBMS si ottiene con una traduzione dello schema E-R

Page 56: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

Page 57: Sistemi per il recupero delle informazioni RIASSUNTO

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)

Page 58: Sistemi per il recupero delle informazioni RIASSUNTO

INTRODUZIONE

Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi centrali quanto sugli elaboratori personali.

I meccanismi per definire una base di dati con il modello relazionale sono solo due:

• l’ennupla • la relazione.

Si basa sul concetto matematico di relazione. Le relazioni hanno una rappresentazione naturale per mezzo di tabelle

Page 59: Sistemi per il recupero delle informazioni RIASSUNTO

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

Si tenga presente che non si possono rappresentare proprietà strutturate, o multivalore e vedremo più avanti come risolvere questi problemi di rappresentazione.

Un’ennupla si usa per rappresentare entità e la relazione si usa per rappresentare classi di entità.

ENNUPLA E RELAZIONE

Page 60: Sistemi per il recupero delle informazioni RIASSUNTO

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.

chiave primaria di una relazione: un attributo che identifica univocamente le ennuple della relazione. Gli attributi della chiave primaria vengono sottolineati

Page 61: Sistemi per il recupero delle informazioni RIASSUNTO

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)

Page 62: Sistemi per il recupero delle informazioni RIASSUNTO

RELAZIONE E TABELLA

Orario

Insegnamento Docente Aula Ora

Analisi matem. I Luigi Neri N1 8:00Basi di dati Piero Rossi N2 9:45

Chimica Nicola Mori N1 9:45Fisica I Mario Bruni N1 11:45Fisica II Mario Bruni N3 9:45

Sistemi inform. Piero Rossi N3 8:00

ORARIO (Insegnamento, Docente, Aula, Ora)

Relazione e tabella sono sinonimi

Page 63: Sistemi per il recupero delle informazioni RIASSUNTO

TERMINOLOGIA - III

Lo schema della relazione è la descrizione della struttura di una 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

Lo schema relazionale è la descrizione della struttura di una base di dati

insieme di schemi di relazione insieme di vincoli

Page 64: Sistemi per il recupero delle informazioni RIASSUNTO

SCHEMAOrario

Insegnamento Docente Aula Ora

Analisi matem. I Luigi Neri N1 8:00Basi di dati Piero Rossi N2 9:45

Chimica Nicola Mori N1 9:45Fisica I Mario Bruni N1 11:45Fisica II Mario Bruni N3 9:45

Sistemi inform. Piero Rossi N3 8:00

ORARIO (Insegnamento, Docente, Aula, Ora)

Le colonne della tabella formano lo schema della relazione

Page 65: Sistemi per il recupero delle informazioni RIASSUNTO

ISTANZEOrario

Insegnamento Docente Aula Ora

Analisi matem. I Luigi Neri N1 8:00Basi di dati Piero Rossi N2 9:45

Chimica Nicola Mori N1 9:45Fisica I Mario Bruni N1 11:45Fisica II Mario Bruni N3 9:45

Sistemi inform. Piero Rossi N3 8:00

ORARIO (Insegnamento, Docente, Aula, Ora)

I contenuti delle righe della tabella formanole istanze della relazione

Page 66: Sistemi per il recupero delle informazioni RIASSUNTO

RELAZIONE: TRE ACCEZIONI

Relazione matematica: come nella teoria degli insiemi

Relazione secondo il modello relazionale dei dati

Relazione (relationship): costrutto del modello Entita’-Relazione utilizzato nel modello concettuale per descrivere legami tra entita’ nel mondo reale (tradotto anche con associazione o correlazione)

Page 67: Sistemi per il recupero delle informazioni RIASSUNTO

RELAZIONE MATEMATICA - I

D1, …, Dn (n insiemi anche non distinti)

prodotto cartesiano D1×…×Dn: l’insieme di tutte le n-uple (d1, …, dn) tali

che d1D1, …, dn Dn

relazione matematica su D1, …, Dn: - un sottoinsieme di D1×…×Dn.

- D1, …, Dn sono i domini della relazione

- n è il grado

il numero di elementi della relazione si dice cardinalità

castella
- Occhio alla terminologia!!Stressa il significato di ogni termine:- prodotto cartesiano- il simbolo di appartenenza- n-upla- relazione matematica- domini- grado- cardinalitàFai l'esempio delle patate colorate e della comunita' europea, dei numeri pari
Page 68: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

relazione r1 D1 × D2 t. c.:

r1 = {(a,x); (a,z); (b,y)}

D1={a,b} D2={x,y,z}

prodotto cartesiano

D1 × D2 = {(a,x); (a,y); (a,z); (b,x); (b,y); (b,z)}

castella
- improvvisa altri esempi (un paio)scrivendo direttamente sul lucido- dire il grado la cardinalita
Page 69: Sistemi per il recupero delle informazioni RIASSUNTO

RELAZIONE MATEMATICA - II

Una relazione matematica è un insieme di n-uple ordinate:

(d1, …, dn) tali che d1D1, …, dn Dn

Una relazione è un insieme; quindi:

- non c'è ordinamento fra le n-uple (ordinamento verticale) - le n-uple sono distinte - ciascuna n-upla è ordinata: l’ i-esimo valore proviene dall’ i-esimo

dominio (ordinamento orizzontale)

Page 70: Sistemi per il recupero delle informazioni RIASSUNTO

RELAZIONI E TABELLE - I

Le relazioni possono essere rappresentate graficamente, in maniera utilmente espressiva, sotto forma di tabelle

Esempio (precedente): D1={a,b} D2={x,y,z}

a

a

a

b

b

b

x

y

z

x

y

z

prodotto cartesiano D1 × D2

a

a

b

x

z

y

Relazione r1

Page 71: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIOD1={x,y} D2={a,b,c} D3={3,5}

xxxx

xx

aabbcc

353535

yyyy

yy

aabbcc

353535

prodotto cartesiano D1 × D2 × D3

xxxy

yy

aacacc

355335

Relazione

Page 72: Sistemi per il recupero delle informazioni RIASSUNTO

NON C’E ORDINAMENTO VERTICALE

xxxy

yy

aacacc

355335

xyxy

yx

aacccc

335355

xxxy

yy

aaca

cc

3553

35

Rappresentano la stessa relazione

Page 73: Sistemi per il recupero delle informazioni RIASSUNTO

LE RIGHE SONO DISTINTE

xxxy

yy

aacacc

355335

xxxy

yx

aacccc

335555

xxyy

yy

aacc

cc

3555

35

Relazione valida

Relazione non valida

Relazione non valida

Page 74: Sistemi per il recupero delle informazioni RIASSUNTO

C’E’ ORDINAMENTO ORIZZONTALE

xxxy

yy

aacacc

355335

Rappresentano relazioni diverse

xxxy

yy

aacacc

355335

xxxy

yy

aacacc

355335

Page 75: Sistemi per il recupero delle informazioni RIASSUNTO

ATTRIBUTI - I

3

2

0

0

1

0

2

1

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

A ciascun dominio si associa un nome (attributo), che ne descrive il "ruolo"

RetiCasa RetiFuoriCasa Fuori

castella
Dire che una relazione è un insieme di record omogenei, cioè definiti sugli stessi campi.Nella rappresentazione tabellare l'attributo (ovvero il nome del campo) sono le intestazioni delle colonne.Nota che i gli attributi devono avere nomi diversi
Page 76: Sistemi per il recupero delle informazioni RIASSUNTO

ATTRIBUTI - II

3

2

0

0

1

0

2

1

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

RetiCasa RetiFuoriCasa Fuori

1

0

2

1

3

2

0

0

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

RetiCasaRetiFuoriCasaFuori

Stile americano

Stile europeo

L’ordinamento degli attibuti e’ irrilevante

Page 77: Sistemi per il recupero delle informazioni RIASSUNTO

FORMALISMO - I

Corrispondenza Attributi - Domini

dom: X D

funzione che associa a ogni attributo AX un dominio D

Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo AX un elemento di dom(A):

t[A] denota il valore della ennupla t sull'attributo A

Una relazione su X e’ un insieme di ennuple

Page 78: Sistemi per il recupero delle informazioni RIASSUNTO

Notazione per le ennuple: L‘ennupla rappresentata dalla prima riga

t[Fuori] = Lazio

t[RetiCasa] = 3

Notazione estesa ad insieme di attributi

t[Fuori, RetiCasa]

3

2

0

0

1

0

2

1

Juve

Lazio

Juve

Roma

Lazio

Milan

Roma

Milan

RetiCasa RetiFuoriCasa Fuori

Relazione

FORMALISMO - II

castella
Fare altri esempi di tuple e campiChiarire con Barbara il concetto di insieme di attributi:es: Lazio 3 è una tupla o un suo sottoinsieme?
Page 79: Sistemi per il recupero delle informazioni RIASSUNTO

RELAZIONI E DATABASE

Di solito non è sufficiente una sola relazione per organizzare tutti i dati

Un database è costituito (in generale) da più relazioni

Le ennuple contengono valori comuni per stabilire corrispondenze

Page 80: Sistemi per il recupero delle informazioni RIASSUNTO

FORMALISMO - III

Schema di relazione: 

un simbolo R, detto nome della relazione, e un insieme di attributi A1, ..., An:

R(A1,..., An)

Schema di base di dati: 

insieme di schemi di relazione con nomi diversi:

R = {R1(X1), ..., Rk(Xk)}

Istanza di relazione su uno schema R(X):

insieme r di ennuple su X

Istanza di base di dati su uno schema R= {R1(X1), ..., Rn(Xn)

insieme di relazioni r = {r1,..., rn}

(con ri relazione su Ri)

Page 81: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

Schema di Base di dati:

R= {STUDENTI (Matricola, Cognome, Nome, Data di nascita),

ESAMI(Studente, Voto, Corso),

CORSI(Codice, Titolo, Docente)

R= {CORSI(Corso, Docente, Aula),

AULE(Nome, Edificio, Piano),

CORSISEDI(Corso, Aula, Edificio, Piano)

Page 82: Sistemi per il recupero delle informazioni RIASSUNTO

DATABASE

Corso AulaDocente

RossiBasi di dati DS3

BruniReti N3

NeriSistemi N3

BruniControlli G

Corsi

Nome PianoEdificio

OMIDS3 Terra

PincherleG Primo

OMIN3 Terra

Aule

CorsiSedi Corso Aula

Reti N3

Sistemi N3

Controlli G

PianoEdificio

OMI Terra

Pincherle Primo

OMI Terra

Un database e’ un insieme di tabelle

Page 83: Sistemi per il recupero delle informazioni RIASSUNTO

Il modello relazionale è basato su valori

Ovvero: i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di

valori dei domini che compaiono nelle ennuple

CARATTERISTICA FONDAMENTALE

Page 84: Sistemi per il recupero delle informazioni RIASSUNTO

Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi

corsi

Studente Voto Corso

3456 30 04

3456 24 02

9283 28 01

esami

6554 26 01

VALORI VS PUNTATORI - I

Page 85: Sistemi per il recupero delle informazioni RIASSUNTO

11/04/23

Matricola Cognome Nome Data di nascita

6554 Rossi Mario 05/12/1978

8765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/1978

9283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente

01 Analisi Mario

02 Chimica Bruni

04 Chimica Verdi

corsi

Studente Voto Corso

30

24

28

voti

26

VALORI VS PUNTATORI - II

Page 86: Sistemi per il recupero delle informazioni RIASSUNTO

VANTAGGI

indipendenza dalle strutture fisiche che possono cambiare dinamicamente

si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione

l’utente finale vede gli stessi dati dei programmatori i dati sono portabili piu' facilmente da un sistema ad un altro i puntatori sono direzionali

Page 87: Sistemi per il recupero delle informazioni RIASSUNTO

RAPPRESENTAZIONE GRAFICA - I

PERSONE(CodFiscale,Nome,Telefono)

o più accuratamente

PERSONE(CodFiscale:string(16),Nome:string(30), Telefono: optional integer)

L’attributo sottolineato è la chiave primaria

Page 88: Sistemi per il recupero delle informazioni RIASSUNTO

RAPPRESENTAZIONE GRAFICA - II

Una (istanza della) relazione Persone, conforme a tale schema, è ad es. la seguente:

E’ d’uso visualizzare una relazione come una tabella bidimensionale, con le colonne identificate dagli attributi e le righe contenenti i valori dei campi, nell’ordine indicato dall’intestazione delle colonne.

La proprietà di essere chiave è riferita allo schema piuttosto che ad una particolare tabella: una chiave è tale (identifica le righe) in una qualunque istanza di un determinato schema.

Page 89: Sistemi per il recupero delle informazioni RIASSUNTO

Impiegati(Matricola :string,Cognome :string,AnnoNascita :integer,Provincia :string)

Studenti( Cognome :string,Matricola :string,Provincia :string,AnnoNascita :integer)

Docenti( Cognome :string,Matricola :integer,Provincia :string,AnnoNascita :integer)

stesso

tipo

Docenti ha tipo diverso perché Matricola è di tipo intero e non stringa.

tipo diverso

TIPI

Due relazioni hanno lo stesso tipo se hanno uguali il numero degli attributi, gli attributi e il tipo degli attributi con lo stesso nome.

Page 90: Sistemi per il recupero delle informazioni RIASSUNTO

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

Page 91: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO - I

Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di Studi).

STUDENTI(Nome:string, Matricola: string, Provincia: string, AnnoNascita:int, SiglaCDS*:

string)

CDS(SiglaCDS: string, NomeCDS: string, Tipo: string)

Il fatto che un corso di studi è associato ad uno studente si modella prevedendo nello schema della relazione STUDENTI un campo che assume come valori la chiave primaria di CDS, cioè SiglaCDS.

SiglaCdS* è chiave esterna nella relazione STUDENTI, e serve a rappresentare un’associazione univoca da STUDENTI a CdS

Page 92: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO - II

Page 93: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO - III

Il dominio di SiglaCDS* nella relazione STUDENTI coincide col dominio di SiglaCDS nella relazione CDS

Se in una istanza di STUDENTI l’attributo SiglaCDS assume il valore “XYZ”, deve esistere, nella istanza di CDS una ennupla con SiglaCDS = “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:

Page 94: Sistemi per il recupero delle informazioni RIASSUNTO

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - I

Data una descrizione di una base di dati con i meccanismi di astrazione del modello a oggetti, la sua trasformazione con il modello relazionale è alquanto laboriosa perché bisogna trattare

• la descrizione delle associazioni• la descrizione delle gerarchie di classi• le eventuali proprietà strutturate e multivalore e passare ad una loro descrizione con attributi atomici.

Inoltre, essendo il modello relazionale meno espressivo del modello a oggetti, in generale si può procedere in più modi nella trasformazione e la scelta fra possibili alternative va fatta cercando di ottimizzare lo spazio di memoria occupata dalla base di dati e le prestazioni delle applicazioni.

Page 95: Sistemi per il recupero delle informazioni RIASSUNTO

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - II

Nella conversione di uno schema espresso con il modello a oggetti gli obiettivi da perseguire sono:

1. rappresentare le stesse informazioni;2. minimizzare la ridondanza;3. agevolare il recupero dei dati in relazione.

In generale nella conversione occorre duplicare delle informazioni e non si possono sempre rappresentare direttamente tutti i vincoli imposti dai meccanismi del modello a oggetti.

Per garantire la coerenza dei dati duplicati, e il rispetto dei vincoli non esprimibili nel modello relazionale, occorre quindi definire opportunamente le operazioni che modificano la base di dati.

Page 96: Sistemi per il recupero delle informazioni RIASSUNTO

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - III

La trasformazione di uno schema a oggetti in uno schema relazionale avviene eseguendo i seguenti passi:

1. rappresentazione delle classi2. rappresentazione delle associazioni uno a uno e uno a molti;3. rappresentazione delle associazioni molti a molti o non binarie;4. rappresentazione delle gerarchie di inclusione;5. rappresentazione degli attributi multivalore;6. appiattimento gli attributi composti

Page 97: Sistemi per il recupero delle informazioni RIASSUNTO

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)

Page 98: Sistemi per il recupero delle informazioni RIASSUNTO

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 SiglaCDS.

Quando l’associazione è uno ad uno la chiave esterna si aggiunge ad unaqualunque 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.

Page 99: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO - IStudenti(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!

Page 100: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO - II

Se l’associazione è 1 a 1, cioè univoca in entrambi i versi, allora sono corrette entrambe le soluzioni.

Dipartimenti(Nome, Facoltà, Cod*)

Docenti(Cod, Settore)

o

Dipartimenti(Nome, Facoltà)

Docenti(Cod, Settore, Nome*)

La prima soluzione è migliore, ma entrambe sono corrette

Page 101: Sistemi per il recupero delle informazioni RIASSUNTO

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 pkR di R e pkS di S.

A (pkR*, pkS*)

Se l’associazione ha degli attributi, questi attributi vengono aggiunti alla nuova relazione, e non vanno a far parte della chiave della nuova relazione.

Page 102: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO - I

Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di oggetti in associazione.

CorsidiLa(Codice,Nome,Facoltà,Tipo)Docenti(CodDoc, Settore)Insegna(Codice*, CodDoc*)

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

Page 103: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO - II

CorsidiLa(Codice,Nome,Facoltà,Tipo)

Docenti(CodDoc, Settore)

Insegna(Codice*, CodDoc*, NumIns)

Page 104: Sistemi per il recupero delle informazioni RIASSUNTO

4. Rappresentazione delle gerarchie fra classi

Sia data una classe A con due sottoclassi B e C, tali che i tipi associati alle tre classi abbiano, rispettivamente, attributi (XA), (XA XB) e (XA XC), e sia KA la chiave primaria di A.

Nel modello relazionale vi sono almeno tre modi diversi di rappresentare questa situazione:

1. Relazione unica

2. Partizionamento verticale

3. Partizionamento

Page 105: Sistemi per il recupero delle informazioni RIASSUNTO

4. Rappresentazione delle gerarchie fra classiRelazione unica

Si definisce un’unica relazione con attributi (XA XB XC D) che raccoglie tutti gli elementi delle tre classi; gli attributi XB e XC possono assumere il valore nullo, e l’attributo D serve a indicare la classe a cui appartiene l’elemento.

ESEMPIO: Consideriamo la classe Persone con attributi CF, Nome e Tel e due sottoclassi: Studenti, con attributi Matricola e Facoltà, e Lavoratori, con attributi Attività e Reddito

Secondo la relazione unica definiremo un’unica relazione Persone con tutti gli attributi

Persone(CF, Nome, Tel, Matricola, Facoltà, Attività e Reddito)

Page 106: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

Un solo schema di relazione, che contiene tutti gli attributi

Con questa soluzione viene ignorata la gerarchia: si perdono le sottoclassi

Page 107: Sistemi per il recupero delle informazioni RIASSUNTO

4. Rappresentazione delle gerarchie fra classiPartizionamento verticale

Si definiscono tre relazioni RA(XA), RB(KA*, XB), RC(KA*, XC), dove RA contiene tutti gli elementi della classe A, anche se stanno in qualche sottoclasse, mentre RB ed RC contengono solo quegli attributi, degli elementi di B e di C, che non sono in XA (attributi propri delle sottoclassi), ed una chiave esterna KA* che permette di ritrovare in RA il valore degli altri attributi.

ESEMPIO si definiscono le relazioni Persone, con attributi CodFisc, Nome e Tel, Studenti con attributi CodFisc, Matricola e Facoltà e la relazione Lavoratoricon attributi CodFisc, Attività e Reddito. La relazione Persone contiene il codice fiscale il nome ed il telefono di tutte le persone, mentre le altre due relazioni contengono gli attributi propri delle sottoclassi, nonché il codice fiscale, che permette di risalire al nome;

Persone(CodFisc, Nome, Telefono)Lavoratori(CodFisc*, Attività, Reddito)Studenti(CodFisc*, Matricola, Facoltà)

Page 108: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

Persone(CodFisc, Nome, Telefono)Lavoratori(CodFisc*, Attività,

Reddito)Studenti(CodFisc*, Matricola,

Facoltà)

Page 109: Sistemi per il recupero delle informazioni RIASSUNTO

4. Rappresentazione delle gerarchie fra classiPartizionamento 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 CodFisc, Nome, Telefono, Studenti con attributi CodFisc, Nome, Telefono, Matricola e Facoltà e la relazione Lavoratori con attributi CodFisc, 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(CodFisc, Nome, Telefono)Lavoratori(CodFisc*, Attività, Reddito , Nome, Telefono)Studenti(CodFisc*, Matricola, Facoltà , Nome, Telefono)

Page 110: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

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à

Page 111: Sistemi per il recupero delle informazioni RIASSUNTO

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 A1, ..., An si rappresenta poi inserendo nella nuova relazione n coppie (K, A1), ..., (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)TelefoniUtenti(Codice*, Telefono)

Page 112: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIO

Film(CodFilm,Titolo,Regista,Anno)

Attori(CodFilm*, Attore)

Page 113: Sistemi per il recupero delle informazioni RIASSUNTO

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

Page 114: Sistemi per il recupero delle informazioni RIASSUNTO

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

Page 115: Sistemi per il recupero delle informazioni RIASSUNTO

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

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)

Page 116: Sistemi per il recupero delle informazioni RIASSUNTO

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

Franklin RooseveltDelano

Nome CognomeSecondoNome

Winston Churchill

Charles De Gaulle

Josip Stalin

Es: PERSONE(Nome, SecondoNome, Cognome)

Page 117: Sistemi per il recupero delle informazioni RIASSUNTO

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

Page 118: Sistemi per il recupero delle informazioni RIASSUNTO

Matricola Cognome Nome Data di nascita

6554 Rossi Mario 05/12/1978

NULL Rossi Maria 01/02/1978

9283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente

01 Analisi Mario

02 Chimica NULL

NULL Chimica Verdi

corsi

Studente Voto Corso

NULL 30 NULL

NULL 24 02

9283 28 01

esami

Troppi valori nulli

castella
Dire che il valore nullo sul Secondonome è ammissibile, mentre non sono ammissibili valori nulli sul campo matricola o codice.- ultimi 2 tuple di corsi ambigueDire che i valori nulli sono ammissibile solo su alcuni attributi.
Page 119: Sistemi per il recupero delle informazioni RIASSUNTO

Tipi di valore nullo

(almeno) tre casi differenti valore sconosciuto valore inesistente valore senza informazione

Citta’ IndirizzoPrefettura

Roma Via Quattro Novembre

Genova NULL

Ovada NULL

NULLPrato

castella
sconosciuto: es colore degli occhiinesistente: secondo nomesenza informazione: es
Page 120: Sistemi per il recupero delle informazioni RIASSUNTO

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

Un'istanza può soddisfare altri vincoli

Page 121: Sistemi per il recupero delle informazioni RIASSUNTO

La Conoscenza Astratta nel modelloRelazionale

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)

Page 122: Sistemi per il recupero delle informazioni RIASSUNTO

La Conoscenza Astratta nel modelloRelazionale

Rispetto al modello E-R, non è possibile rappresentare i vincoli delle gerarchie, mentre è possibile, solo in parte, rappresentare i vincoli strutturali delle associazioni

Questo schema E-R si traduce nello schema relazionale

S(h, a, k*)

T(k, b)

che rappresenta l’univocità e la totalità di R da S a T, ma non consente di esprimere la sua totalità da T ad S.

Page 123: Sistemi per il recupero delle informazioni RIASSUNTO

Una base di dati "scorretta"

Studente Voto Lode Corso

32 01276545

276545 30 e lode 02

787643 27 e lode 03

739430 24 04

Esami

Matricola

276545

787643

787643

Cognome

Rossi

Neri

Bianchi

Nome

Mario

Piero

Luca

Studenti

787643

787643

32

27 e lode

739430

castella
Gli errori sono:- voto >30- 27 e lode impossibile- c'è un riferimento nella relazione esami ad uno studente inesistente- ci sono due studenti che hanno la stessa matricola
Page 124: Sistemi per il recupero delle informazioni RIASSUNTO

Vincolo di integrità

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

Page 125: Sistemi per il recupero delle informazioni RIASSUNTO

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

Page 126: Sistemi per il recupero delle informazioni RIASSUNTO

Vincoli di ennupla

Esprimono condizioni sui valori di ciascuna ennupla, 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")

Page 127: Sistemi per il recupero delle informazioni RIASSUNTO

Vincoli di ennupla, esempio

Impiegato

Rossi

Neri

Bruni

Stipendi Lordo

55.000

45.000

47.000

Netto

42.500

35.000

36.000

Ritenute

12.500

10.000

11.000

Lordo = (Ritenute + Netto)

Page 128: Sistemi per il recupero delle informazioni RIASSUNTO

Importanza delle chiavi

Chiave: insieme di attributi che identificano univocamente le ennuple di una relazione

L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati

Le chiavi 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

Page 129: Sistemi per il recupero delle informazioni RIASSUNTO

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

Matricola

78763

65432

Nome

Piero

Mario87654

43289

Mario

Cognome

Neri

Neri

Rossi

Neri Mario

Corso

Ing Mecc

Ing Inf

Ing Civile

NULL

Nascita

86765 MarioNULL Ing Inf 5/12/78

10/7/79

NULL

3/11/76

5/12/78

Page 130: Sistemi per il recupero delle informazioni RIASSUNTO

{Cognome, Nome, Nascita} è un’altra chiave:

Matricola276557876365432

Nome

PieroMario87654

67653

Cognome

NeriNeri

MarioMario

RossiRossi

Rossi Piero

CorsoIng Inf

Ing MeccIng Inf

Ing Inf

Ing Mecc

Nascita5/12/78

10/7/793/11/76

3/11/76

5/12/78

MarioMario

RossiRossi

Rossi

5/12/78

5/12/78

Rossi

Mario 3/11/76

3/11/76Mario

Un'altra chiave

Page 131: Sistemi per il recupero delle informazioni RIASSUNTO

Informazioni in relazioni diverse sono correlate attraverso valori comuni in particolare, valori delle chiavi (primarie)

le correlazioni debbono essere "coerenti"

Integrità referenziale

Page 132: Sistemi per il recupero delle informazioni RIASSUNTO

11/04/23

Esempio

InfrazioniCodice

34321

73321

64521

53524

Data

1/2/95

4/3/95

5/4/96

5/2/98

Vigile

3987

3295

3295

9345

Prov Numero

MI

TO

PR

PR

39548K

E39548

839548

839548

Matricola

3987

3295

9345

Vigili Cognome

Rossi

Neri

Neri

Nome

Luca

Piero

Mario

Mori Gino7543

Auto Prov Numero

MI

TO

PR

39548K

E39548

839548

Cognome

Rossi

Rossi

Neri

Nome

Mario

Mario

Luca

Page 133: Sistemi per il recupero delle informazioni RIASSUNTO

Matricola

3987

3295

9345

VigiliCognome

Rossi

Neri

Neri

Nome

Luca

Piero

Mario

Mori Gino7543

Infrazioni

Codice

34321

73321

64521

53524

Data

1/2/95

4/3/95

5/4/96

5/2/98

Vigile

3987

3295

3295

9345

Prov Numero

MI

TO

PR

PR

39548K

E39548

839548

839548

3295

3295

3987

3987

9345

3987

9345

9345

3295

3295

3295

annuzza
base di dati di un ufficio dei vigili (polizia urbana)- chiedere ogni attributo se puo' essere chiave- E' corretta l'istanza? SI
Page 134: Sistemi per il recupero delle informazioni RIASSUNTO

Un vincolo di integrità referenziale (“foreign key”) 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

Vincolo di integrità referenziale

Page 135: Sistemi per il recupero delle informazioni RIASSUNTO

Infrazioni

Codice

34321

73321

64521

53524

Data

1/2/95

4/3/95

5/4/96

5/2/98

Vigile

3987

3295

3295

9345

Prov Numero

MI

TO

PR

PR

39548K

E39548

839548

839548

Auto Prov Numero

MI

TO

PR

E39548

F34268

839548

Cognome

Rossi

Rossi

Neri

Nome

Mario

Mario

Luca

TO E39548

TO

E39548

Violazione di vincolo di integrità referenziale

annuzza
nota che c'e' sia TO che E3...ma non sono nella stessa tupla
Page 136: Sistemi per il recupero delle informazioni RIASSUNTO

Integrità referenziale e valori nulli

Impiegati Matricola

34321

64521

53524

Cognome

Rossi

Neri

Verdi

Progetto

IDEA

XYZ

NULL

Progetti Codice

IDEA

BOH

XYZ

Inizio

01/2000

07/2001

09/2001

Durata

36

24

24

Costo

200

120

150

73032 Bianchi IDEA

Page 137: Sistemi per il recupero delle informazioni RIASSUNTO

Azioni compensative

Esempio: Viene eliminata una ennupla causando una violazione

Comportamento “standard”: Rifiuto dell'operazione

Azioni compensative: Eliminazione in cascata Introduzione di valori nulli

Page 138: Sistemi per il recupero delle informazioni RIASSUNTO

Eliminazione in cascata

Impiegati Matricola

34321

64521

53524

Cognome

Rossi

Neri

Verdi

Progetto

IDEA

XYZ

NULL

73032 Bianchi IDEA

Progetti Codice

IDEA

BOH

XYZ

Inizio

01/2000

07/2001

09/2001

Durata

36

24

24

Costo

200

120

150

XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120

53524 Neri XYZ

Page 139: Sistemi per il recupero delle informazioni RIASSUNTO

Introduzione di valori nulli

Impiegati Matricola

34321

64521

53524

Cognome

Rossi

Neri

Verdi

Progetto

IDEA

XYZ

NULL

73032 Bianchi IDEA

Progetti Codice

IDEA

BOH

XYZ

Inizio

01/2000

07/2001

09/2001

Durata

36

24

24

Costo

200

120

150

XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120

NULL

Page 140: Sistemi per il recupero delle informazioni RIASSUNTO

ESEMPIESERCIZI

Page 141: Sistemi per il recupero delle informazioni RIASSUNTO

Esempio: Noleggio DVD Un negozio noleggia film in DVD

il negozio dispone di un catalogo dei film; ogni film è identificato dal codice DVD

nel catalogo sono specificati il titolo del film, il regista, gli attori principali, la loro nazionalità ed il personaggio interpretato nel film, l’anno di produzione

ciascun film è indicizzato da un insieme di termini (una lista di parole che descrivono sinteticamente il contenuto del film)

I film possono essere anche in lingua originale (diversa dall’italiano); in tal caso nel catalogo è detto di che lingua si tratta, e se il film è sottotitolato.

di ogni film presente nel catalogo il negozio dispone di uno o più DVD, ciascuno identificato dalla sua collocazione; se un DVD è noleggiato, interessa sapere il cliente che l’ha noleggiato e la data del noleggio.

i clienti sono identificati da un codice; di essi interessa inoltre cognome, nome, indirizzo, telefono.

Page 142: Sistemi per il recupero delle informazioni RIASSUNTO

Come si procede?

Si individuano le classi le associazioni gli attributi le chiavi le gerarchie

Page 143: Sistemi per il recupero delle informazioni RIASSUNTO

Individuare le classi

Le entità presenti nella realtà e che sono interessanti nel modello sono i film, i dvd, gli attori, i clienti; le classi individuate sono:

gli attori costituiscono una classe in quanto interessano delle loro proprietà (nazionalità,…), mentre del regista interessa solo il nome, e quindi va considerato un attributo

i dvd costituiscono una classe; sono concettualmente distinti dai film, e interessa sapere a chi sono noleggiati, ed in quale data

Film Attori DVD Clienti

Page 144: Sistemi per il recupero delle informazioni RIASSUNTO

Individuare le associazioni

Film

Attori

DVD

Clienti

contiene N:1

recita N:M èNoleggiato: 1:N

è parziale su film: ad un film possono non essere associati attori

contiene è un’associazione N:1 perché un dvd rappresenta solo un film,mentre ad un film possono essere associati più dvd

Page 145: Sistemi per il recupero delle informazioni RIASSUNTO

Individuare attributi e chiavi

Film

Attori

DVD Clienti

nomenazionalità

collocazionedata noleggio

codice DVDtitoloregistaannolinguasottotitoli/no-sottotitolitermini

codice clientecognomenometelefonoindirizzo(città, via)

Page 146: Sistemi per il recupero delle informazioni RIASSUNTO

Schema relazionale

FILM( codiceDVD, titolo, regista, anno, lingua, sottotitoli) rappresenta la classe FILM; l’attributo Termini non è rappresentato

perchè è multivalore. Attori( nome, nazionalità)

rappresenta la classe Attori Recita( codiceDVD*, nome* )

rappresenta l’associazione N:M recita DVD( collocazione, dataNoleggio, codiceDVD*, codiceCliente*)

rappresenta la classe DVD e le associazioni contiene e èNoleggiato Clienti( codiceCliente, cognome, nome, telefono, città, via)

Page 147: Sistemi per il recupero delle informazioni RIASSUNTO

Individuare le gerarchie

Film

Attori

DVD

Clienti

contiene N:1

recita N:M èNoleggiato: 1:N

Film In Lingua

DVDnoleggiati

Page 148: Sistemi per il recupero delle informazioni RIASSUNTO

Individuare attributi e chiavi

Film

Attori

DVD

Clientinomenazionalità

collocazione

codice DVDtitoloregistaannotermini

codice clientecognomenometelefonoindirizzo(città, via)

Film In Lingualinguasottotitoli/no-sottotitoli

DVDnoleggiati

data noleggio

Page 149: Sistemi per il recupero delle informazioni RIASSUNTO

Esempio

Un impiegato ha codice,cognome ed uno stipendio;può partecipare ad un progetto definito da un budget e da un nome;l’impiegato può dirigere un solo dipartimento definito da un nome e dal telefono ma può afferire in date differenti a più dipartimenti; il dipartimento ha una sede composta da un indirizzo e da una città

Page 150: Sistemi per il recupero delle informazioni RIASSUNTO
Page 151: Sistemi per il recupero delle informazioni RIASSUNTO

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