Sistemi per il recupero delle informazioni RIASSUNTO Sistemi

  • Slides: 151
Download presentation
Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni RIASSUNTO

Sistemi per il recupero delle informazioni DATABASE

Sistemi per il recupero delle informazioni DATABASE

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 Nella nostra accezione i database sono: n un supporto digitale in cui i dati sono immagazzinati n un software che permetta il recupero dei dati n 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

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

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

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.

ESEMPIO DATI e METADATI n Per rappresentare i corsi attivati ed i relativi docenti

ESEMPIO DATI e METADATI n 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, n mentre le coppie (Informatica Generale, Righi) (Basi di Dati e Sistemi Informativi, Leoni) ¨ sono istanze dello schema precedente e possono variare nel tempo

Data. Base Management System (DBMS) Le caratteristiche delle basi di dati sono garantite da

Data. Base Management System (DBMS) 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 programmi d) memorizzare i dati rispettando i vincoli definiti nello schema; n 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. 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

Sistemi per base di dati - DBMS n Diverse categorie di persone possono interagire

Sistemi per base di dati - DBMS n Diverse categorie di persone possono interagire con una base di dati tramite un DBMS. ¨ Amministratore della base di dati (DBA). n responsabile della progettazione, controllo e amministrazione della base di dati. ¨ I progettisti e programmatori di applicazioni. n 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à.

Sistemi per il recupero delle informazioni MODELLI INFORMATICI DIAGRAMMI E-R

Sistemi per il recupero delle informazioni MODELLI INFORMATICI DIAGRAMMI E-R

MODELLI L’informatica offre metodologie e strumenti per la costruzione di modelli di situazioni reali

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 simbolica Una tale descrizione costituisce un modello della realtà

MODELLI INFORMATICI Sono modelli simbolici: rappresentazione formale delle idee e conoscenze relative ad un

MODELLI INFORMATICI Sono modelli simbolici: rappresentazione formale delle idee e conoscenze relative ad un fenomeno Si 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

IL MODELLO Nella costruzione di un modello informatico, q prima si “definisce” il modello,

IL MODELLO Nella costruzione di un modello informatico, q prima si “definisce” il modello, descrivendo conoscenza concreta e conoscenza astratta q 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.

ESEMPIO Per costruire un modello informatico per la gestione di informazioni sui libri, prima

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.

IL MODELLO DEI DATI A OGGETTO Per rappresentare in maniera naturale e diretta l’idea

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

IL MODELLO DEI DATI A OGGETTO questioni terminologiche

IL MODELLO DEI DATI A OGGETTO questioni terminologiche

OGGETTO E TIPO DI OGGETTO Un oggetto è un’entità software con stato ed identità,

OGGETTO E TIPO DI OGGETTO 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 o multivalore, totale o parziale, costante o modificabile.

CLASSI E ASSOCIAZIONI La classe modella un insieme di oggetti dello stesso tipo del

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

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

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

DIAGRAMMI E-R Nel formalismo grafico che si adotta, una classe si rappresenta con un

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. 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 quadratino dal quale escono archi verso ovali in numero pari ai campi del valore strutturato. 3. se l’attributo ha valori unione, si procede come nel caso precedente sostituendo il quadratino con un cerchietto; 4. proprietà che possono avere valori non specificati rappresentano si con un taglio sull’arco; 5. gli attributi della chiave primaria si sottolineano.

Esempi Una classe con gli attributi. Cognome e’ la chiave primaria Una classe Studenti

Esempi Una classe con gli attributi. Cognome e’ la chiave primaria Una classe Studenti

ASSOCIAZIONI Un’associazione binaria tra classi si rappresenta con un rombo collegato con degli archi

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

ASSOCIAZIONI: caratteristiche n n univocità: ad un oggetto di una classe può essere associato

ASSOCIAZIONI: caratteristiche n n 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 n multivalore: ad un oggetto di una classe possono essere associati più oggetti dell’altra classe n parziale: ad un oggetto di una classe non è sempre associato qualche oggetto dell’altra classe

ASSOCIAZIONI: esempio

ASSOCIAZIONI: esempio

ASSOCIAZIONI: esempio n n Afferisce è univoca da Docenti a Dipartimenti: ad un oggetto

ASSOCIAZIONI: esempio n n 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

GERARCHIA FRA CLASSI n Tra due classi E ed F può essere stabilita una

GERARCHIA FRA CLASSI n 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 ¨ n 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)

GERARCHIA FRA CLASSI: esempio Lo schema a sinistra e’ piu’ espressivo di quello di

GERARCHIA FRA CLASSI: esempio Lo schema a sinistra e’ piu’ espressivo di quello di destra

DIAGRAMMI E-R: esempio A titolo di esempio, mostriamo, ad un primo livello di dettaglio,

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. 2. 3. 4. 5. dell’opera, l’editore, l’anno di pubblicazione e un insieme di termini usati per la classificazione del contenuto dell’opera. Di un libro interessano la collocazione e il numero della copia. Di un autore interessano il nome e cognome, la nazionalità, la data di nascita Di un utente interessano il nome, il cognome, l’indirizzo e i recapiti telefonici. Di un prestito interessano la data del prestito e la data di restituzione.

DIAGRAMMI E-R: esempio Le associazioni interessanti sono: 1. 2. Ha. Scritto (N: M) tra

DIAGRAMMI E-R: esempio Le associazioni interessanti sono: 1. 2. Ha. Scritto (N: M) tra autori e descrizioni bibliografiche, che collega un autore con le descrizioni bibliografiche delle opere che ha scritto. Ogni autore ha scritto almeno un libro e ogni descrizione bibliografica riguarda almeno un autore; Descrive (N: 1) tra descrizioni bibliografiche e libri, che collega una descrizione 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;

DIAGRAMMI E-R: esempio

DIAGRAMMI E-R: esempio

DIAGRAMMI E-R: esempio

DIAGRAMMI E-R: esempio

Sistemi per il recupero delle informazioni COME SI PROCEDE

Sistemi per il recupero delle informazioni COME SI PROCEDE

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

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 requisiti 2. progettazione concettuale 3. progettazione logica 4. progettazione fisica

ANALISI DEI REQUISITI Scopo dell’analisi dei requisiti è la definizione dei bisogni informativi del

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.

Esempio Si vuole progettare una base di dati per gestire informazioni su musei, le

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.

PROGETTAZIONE CONCETTUALE Scopo della progettazione concettuale è di tradurre la specifica dei requisiti in

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. 2. 3. 4. identificazione delle classi; descrizione delle associazioni fra le classi; definizione di sottoclassi; definizione delle proprietà degli elementi delle classi.

PROGETTAZIONE CONCETTUALE Identificazione delle classi Si produce una lista preliminare delle classi di oggetti

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.

PROGETTAZIONE CONCETTUALE Descrizione delle associazioni fra le classi Si individuano le possibili associazioni fra

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.

PROGETTAZIONE CONCETTUALE Definizione di sottoclassi Per definire le sottoclassi si esaminano tutte le classi

PROGETTAZIONE CONCETTUALE Definizione di sottoclassi Per definire le sottoclassi si esaminano tutte le classi già definite per capire 1. se può essere utile definirne di nuove per caratterizzare particolari sottoinsiemi 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

PROGETTAZIONE CONCETTUALE Definizione delle proprietà degli elementi delle classi Per ogni tipo di oggetto

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 va prestata molta attenzione alla possibilità se convenga introdurre nuove classi, o viceversa eliminarne alcune sostituendole da attributi.

Esempio

Esempio

PROGETTAZIONE LOGICA Scopo della terza fase della metodologia, la progettazione logica, è di tradurre

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.

Esempio MUSEI (Nome. M, Città, Indirizzo, Direttore) ARTISTI (Nome. A, Nazionalità, Data. N, Data.

Esempio MUSEI (Nome. M, Città, Indirizzo, Direttore) ARTISTI (Nome. A, Nazionalità, Data. N, Data. M: optional) OPERE (Codice, Anno, Titolo, Nome. M*, Nome. A*) PERSONAGGI (Personaggio, Codice*) DIPINTI (Codice*, Tipo, Larghezza, Altezza) SCULTURE (Codice*, Materiale, Altezza, Peso)

Progettazione fisica Consiste nel completamento, o modifica, dello schema logico in funzione della organizzazione

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)

Sistemi per il recupero delle informazioni MODELLO RELAZIONALE DEI DATI

Sistemi per il recupero delle informazioni MODELLO RELAZIONALE DEI DATI

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

PROGETTAZIONE n Ricordiamo le fasi della progettazione di una Base di Dati n Ci occuperemo adesso della progettazione logica

PROGETTAZIONE LOGICA n La descrizione del modello da realizzare è fatta in funzione delle

PROGETTAZIONE LOGICA n 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). n Il modello dei dati, detto modello logico, rappresentazione informatica dei dati. n 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 è “più vicino” alla

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)

INTRODUZIONE Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali

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

ENNUPLA E RELAZIONE Ennupla. È un insieme finito di coppie (Attributo, valore atomico) Relazione.

ENNUPLA E 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). 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à.

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)

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

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

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

RELAZIONE: TRE ACCEZIONI q Relazione matematica: come nella teoria degli insiemi q Relazione secondo

RELAZIONE: TRE ACCEZIONI q Relazione matematica: come nella teoria degli insiemi q Relazione secondo il modello relazionale dei dati q 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)

RELAZIONE MATEMATICA - I n D 1, …, Dn (n insiemi anche non distinti)

RELAZIONE MATEMATICA - I n D 1, …, Dn (n insiemi anche non distinti) n prodotto cartesiano D 1×…×Dn: l’insieme di tutte le n-uple (d 1, …, dn) tali che d 1 D 1, …, dn Dn relazione matematica su D 1, …, Dn: - un sottoinsieme di D 1×…×Dn. - D 1, …, Dn sono i domini della relazione - n è il grado n n il numero di elementi della relazione si dice cardinalità

ESEMPIO D 1={a, b} D 2={x, y, z} prodotto cartesiano D 1 × D

ESEMPIO D 1={a, b} D 2={x, y, z} prodotto cartesiano D 1 × D 2 = {(a, x); (a, y); (a, z); (b, x); (b, y); (b, z)} n relazione r 1 D 1 × D 2 t. c. : r 1 = {(a, x); (a, z); (b, y)}

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

RELAZIONE MATEMATICA - II n Una relazione matematica è un insieme di n-uple ordinate: (d 1, …, dn) tali che d 1 D 1, …, dn Dn n 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)

RELAZIONI E TABELLE - I Le relazioni possono essere rappresentate graficamente, in maniera utilmente

RELAZIONI E TABELLE - I Le relazioni possono essere rappresentate graficamente, in maniera utilmente espressiva, sotto forma di tabelle Esempio (precedente): D 1={a, b} D 2={x, y, z} a x a y a z a x b x a z b y b z prodotto cartesiano D 1 × D 2 Relazione r 1

ESEMPIO D 1={x, y} D 2={a, b, c} D 3={3, 5} x x x

ESEMPIO D 1={x, y} D 2={a, b, c} D 3={3, 5} x x x y y y a a b b c c 3 5 3 5 3 5 prodotto cartesiano D 1 × D 2 × D 3 x x x y y y a a c c 3 5 5 3 3 5 Relazione

NON C’E ORDINAMENTO VERTICALE x x x y y y a a c c

NON C’E ORDINAMENTO VERTICALE x x x y y y a a c c 3 5 5 3 3 5 x y x y a a c c 3 3 5 5 Rappresentano la stessa relazione y y x x x y c c a a c a 3 5 5 3

LE RIGHE SONO DISTINTE x x x y y y a a c c

LE RIGHE SONO DISTINTE x x x y y y a a c c 3 5 5 3 3 5 Relazione valida x x x y a a c c 3 3 5 5 Relazione non valida y y x x y y c c a a c c 3 5 5 5 Relazione non valida

C’E’ ORDINAMENTO ORIZZONTALE x x x y y y a a c c 3

C’E’ ORDINAMENTO ORIZZONTALE x x x y y y a a c c 3 5 5 3 3 5 x x x y y y a a c c Rappresentano relazioni diverse a a c c 3 5 5 3 3 5 x x x y y y

ATTRIBUTI - I A ciascun dominio si associa un nome (attributo), che ne descrive

ATTRIBUTI - I A ciascun dominio si associa un nome (attributo), che ne descrive il "ruolo" Casa Fuori Reti. Casa Reti. Fuori Juve Lazio 3 1 Lazio Milan 2 0 Juve Roma 0 2 Roma Milan 0 1

ATTRIBUTI - II L’ordinamento degli attibuti e’ irrilevante Fuori Casa Reti. Fuori Reti. Casa

ATTRIBUTI - II L’ordinamento degli attibuti e’ irrilevante Fuori Casa Reti. Fuori Reti. Casa Lazio Juve 1 3 Milan Lazio 0 2 Roma Juve 2 0 Milan Roma 1 0 Casa Juve Fuori Lazio Reti. Casa 3 Reti. Fuori 1 Lazio Milan 2 0 Juve Roma 0 2 Roma Milan 0 1 Stile americano Stile europeo

FORMALISMO - I n Corrispondenza Attributi - Domini dom: X D funzione che associa

FORMALISMO - I n Corrispondenza Attributi - Domini dom: X D funzione che associa a ogni attributo A X un dominio D n Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo A X 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

FORMALISMO - II Casa Juve Fuori Lazio Reti. Casa 3 Reti. Fuori 1 Lazio

FORMALISMO - II Casa Juve Fuori Lazio Reti. Casa 3 Reti. Fuori 1 Lazio Milan 2 0 Juve Roma 0 2 Roma Milan 0 1 Notazione per le ennuple: n L‘ennupla rappresentata dalla prima riga t[Fuori] = Lazio t[Reti. Casa] = 3 n Notazione estesa ad insieme di attributi t[Fuori, Reti. Casa] Relazione

RELAZIONI E DATABASE n Di solito non è sufficiente una sola relazione per organizzare

RELAZIONI E DATABASE n Di solito non è sufficiente una sola relazione per organizzare tutti i dati n Un database è costituito (in generale) da più relazioni n Le ennuple contengono valori comuni per stabilire corrispondenze

FORMALISMO - III n Schema di relazione: un simbolo R, detto nome della relazione,

FORMALISMO - III n Schema di relazione: un simbolo R, detto nome della relazione, e un insieme di attributi A 1, . . . , An: R(A 1, . . . , An) n Schema di base di dati: insieme di schemi di relazione con nomi diversi: R = {R 1(X 1), . . . , Rk(Xk)} n Istanza di relazione su uno schema R(X): insieme r di ennuple su X n Istanza di base di dati su uno schema R= {R 1(X 1), . . . , Rn(Xn) insieme di relazioni r = {r 1, . . . , rn} (con ri relazione su Ri)

ESEMPIO n Schema di Base di dati: R= {STUDENTI (Matricola, Cognome, Nome, di nascita),

ESEMPIO n Schema di Base di dati: R= {STUDENTI (Matricola, Cognome, Nome, di nascita), ESAMI(Studente, Voto, Corso), CORSI(Codice, Titolo, Docente) R= {CORSI(Corso, Docente, Aula), AULE(Nome, Edificio, Piano), CORSISEDI(Corso, Aula, Edificio, Piano) Data

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

CARATTERISTICA FONDAMENTALE Il modello relazionale è basato su valori Ovvero: i riferimenti fra dati

CARATTERISTICA FONDAMENTALE 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

VALORI VS PUNTATORI - I studenti Matricola 6554 8765 9283 3456 esami corsi Cognome

VALORI VS PUNTATORI - I studenti Matricola 6554 8765 9283 3456 esami corsi Cognome Rossi Neri Verdi Rossi Nome Mario Paolo Luisa Maria Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978 Studente Voto Corso 3456 9283 6554 30 24 28 26 04 02 01 01 Codice 01 02 04 Titolo Analisi Chimica Docente Mario Bruni Verdi

VALORI VS PUNTATORI - II studenti Matricola Cognome Nome Data di nascita 6554 8765

VALORI VS PUNTATORI - II studenti Matricola Cognome Nome Data di nascita 6554 8765 9283 3456 Rossi Neri Verdi Rossi Mario Paolo Luisa Maria 05/12/1978 03/11/1976 12/11/1979 01/02/1978 voti Studente Voto Corso 30 24 28 26 corsi Codice 01 02 10/29/2020 04 Titolo Analisi Docente Mario Chimica Bruni Verdi

VANTAGGI n n n indipendenza dalle strutture fisiche possono cambiare dinamicamente si rappresenta solo

VANTAGGI n n n indipendenza dalle strutture fisiche 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

RAPPRESENTAZIONE GRAFICA - I PERSONE(Cod. Fiscale, Nome, Telefono) o più accuratamente PERSONE(Cod. Fiscale: string(16),

RAPPRESENTAZIONE GRAFICA - I PERSONE(Cod. Fiscale, Nome, Telefono) o più accuratamente PERSONE(Cod. Fiscale: string(16), Nome: string(30), Telefono: optional integer) L’attributo sottolineato è la chiave primaria

RAPPRESENTAZIONE GRAFICA - II n Una (istanza della) relazione Persone, conforme a tale schema,

RAPPRESENTAZIONE GRAFICA - II n Una (istanza della) relazione Persone, conforme a tale schema, è ad es. la seguente: n 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. n

TIPI Due relazioni hanno lo stesso tipo se hanno uguali il numero degli attributi,

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. Impiegati(Matricola : string, Cognome : string, Anno. Nascita : integer, Provincia : string) stesso tipo Studenti( Cognome : string, Matricola : string, Provincia : string, Anno. Nascita : integer) tipo diverso Docenti( Cognome : string, Matricola : integer, Provincia : string, Anno. Nascita : integer) Docenti ha tipo diverso perché Matricola è di tipo intero e non stringa.

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 - I n Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di Studi).

ESEMPIO - I n Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di Studi). STUDENTI(Nome: string, Matricola: string, Provincia: string, Anno. Nascita: int, Sigla. CDS*: string) CDS(Sigla. CDS: string, Nome. CDS: string, Tipo: string) n n 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è Sigla. CDS. Sigla. Cd. S* è chiave esterna nella relazione STUDENTI, e serve a rappresentare un’associazione univoca da STUDENTI a Cd. S

ESEMPIO - II

ESEMPIO - II

ESEMPIO - III n n n Il dominio di Sigla. CDS* nella relazione STUDENTI

ESEMPIO - III 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 - I Data una descrizione di una

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.

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - II Nella conversione di uno schema

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. 2. 3. rappresentare le stesse informazioni; minimizzare la ridondanza; 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.

DA MODELLO A OGGETTI A MODELLO RELAZIONALE - III La trasformazione di uno schema

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. 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 - I Studenti(Matricola, Nome, Anno. Immatric, Codice*) Corsidi. La(Codice, Nome, Tipo) la chiave

ESEMPIO - I 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!

ESEMPIO - II Se l’associazione è 1 a 1, cioè univoca in entrambi i

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*) n La prima soluzione è migliore, ma entrambe sono corrette

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 - I Corsidi. La(Codice, Nome, Facoltà, Tipo) Docenti(Cod. Doc, Settore) Insegna(Codice*, Cod. Doc*)

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

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

ESEMPIO - II Corsidi. La(Codice, Nome, Facoltà, Tipo) Docenti(Cod. Doc, Settore) Insegna(Codice*, Cod. Doc*, Num. Ins)

4. Rappresentazione delle gerarchie fra classi Sia data una classe A con due sottoclassi

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

4. Rappresentazione delle gerarchie fra classi Relazione unica Si definisce un’unica relazione con attributi

4. Rappresentazione delle gerarchie fra classi Relazione 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)

ESEMPIO n Un solo schema di relazione, che contiene tutti gli attributi Con questa

ESEMPIO n Un solo schema di relazione, che contiene tutti gli attributi Con questa soluzione viene ignorata la gerarchia: si perdono le sottoclassi

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

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

ESEMPIO Persone(Cod. Fisc, Nome, Telefono) Lavoratori(Cod. Fisc*, Attività, Reddito) Studenti(Cod. Fisc*, Matricola, Facoltà)

ESEMPIO Persone(Cod. Fisc, Nome, Telefono) Lavoratori(Cod. Fisc*, Attività, Reddito) Studenti(Cod. Fisc*, Matricola, Facoltà)

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 , Nome, Telefono) Studenti(Cod. Fisc*, Matricola, Facoltà , Nome, Telefono)

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)

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)

La Conoscenza Astratta nel modello Relazionale n Rispetto al modello E-R, non è possibile

La Conoscenza Astratta nel modello Relazionale n 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.

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 Chiave: insieme di attributi che identificano univocamente le ennuple di

Importanza delle chiavi n Chiave: insieme di attributi che identificano univocamente le ennuple di una relazione 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

Un'altra chiave Matricola Cognome Nome 27655 Rossi Mario 78763 Rossi Neri Piero 65432 87654

Un'altra chiave Matricola Cognome Nome 27655 Rossi Mario 78763 Rossi Neri Piero 65432 87654 Neri Mario 67653 Rossi Piero Rossi n Corso Ing Inf Ing Mecc {Cognome, Nascita} è un’altra chiave: Nascita 5/12/78 3/11/76 10/7/79 3/11/76 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

ESEMPI ESERCIZI

ESEMPI ESERCIZI

Esempio: Noleggio DVD n Un negozio noleggia film in DVD ¨ il negozio dispone

Esempio: Noleggio DVD n 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, indirizzo, telefono.

Come si procede? Si individuano n le classi n le associazioni n gli attributi

Come si procede? Si individuano n le classi n le associazioni n gli attributi n le chiavi n le gerarchie

Individuare le classi n Le entità presenti nella realtà e che sono interessanti nel

Individuare le classi n Le entità presenti nella realtà e che sono interessanti nel modello sono i film, i dvd, gli attori, i clienti; ¨ le classi individuate sono: Film Attori DVD Clienti 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 ¨

Individuare le associazioni DVD Film contiene N: 1 recita N: M Attori èNoleggiato: 1:

Individuare le associazioni DVD Film contiene N: 1 recita N: M Attori èNoleggiato: 1: N Clienti è 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

Individuare attributi e chiavi Attori DVD Film nome nazionalità collocazione data noleggio codice DVD

Individuare attributi e chiavi Attori DVD Film nome nazionalità collocazione data noleggio codice DVD titolo regista anno lingua sottotitoli/no-sottotitoli termini Clienti codice cliente cognome telefono indirizzo(città, via)

Schema relazionale n n n FILM( codice. DVD, titolo, regista, anno, lingua, sottotitoli) ¨

Schema relazionale n n n FILM( codice. DVD, titolo, regista, anno, lingua, sottotitoli) ¨ rappresenta la classe FILM; l’attributo Termini non è rappresentato perchè è multivalore. Attori( nome, nazionalità) ¨ rappresenta la classe Attori Recita( codice. DVD*, nome* ) ¨ rappresenta l’associazione N: M recita DVD( collocazione, data. Noleggio, codice. DVD*, codice. Cliente*) ¨ rappresenta la classe DVD e le associazioni contiene e èNoleggiato Clienti( codice. Cliente, cognome, telefono, città, via)

Film In Lingua Individuare le gerarchie DVD noleggiati Film contiene N: 1 recita N:

Film In Lingua Individuare le gerarchie DVD noleggiati Film contiene N: 1 recita N: M Attori èNoleggiato: 1: N Clienti

Individuare attributi e chiavi Attori DVD Film In Lingua nome nazionalità Clienti collocazione codice

Individuare attributi e chiavi Attori DVD Film In Lingua nome nazionalità Clienti collocazione codice DVD titolo regista anno termini lingua sottotitoli/no-sottotitoli DVD noleggiati codice cliente cognome telefono indirizzo(città, via) data noleggio

Esempio n Un impiegato ha codice, cognome ed uno stipendio; può partecipare ad un

Esempio n 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à

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