Corso di Basi di Dati

Documenti analoghi
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Progettazione logica

Informatica Industriale

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

Un esempio di progettazione concettuale

Progettazione di basi di dati: Progettazione Concettuale e Progettazione Logica

Dr. C. d'amat LA PROGETTAZIONE LOGICA

REGIONE BASILICATA UFFICIO S. I. R. S.

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Traduzione dello schema E-R in modello logico relazionale

Numero di Componenti

LA PROGETTAZIONE CONCETTUALE

Schema Entità-Relazione n 1

Ciclo di vita di un sistema informativo

Progettazione di Basi di Dati

Basi di dati. Progettazione di basi di dati: Metodologie e modelli

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

BASI DATI INFORMATICA

IL MODELLO ENTITA - RELAZIONE

PROGETTAZIONE LOGICA. Prof. Ing. Alfredo GARRO 1/6. Artista. Cantante. DataDiNascita. Codice. Nazionalità

Laboratorio di Basi di Dati prova totale 20 febbraio 2013

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

I database. Introduzione alla teoria delle basi di dati

Progettazione di basi di dati

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una Software (SW) House:

Progettazione Logica. Progettazione Logica

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

Modello Entità-Relazione (E-R)

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 26 Giugno 07 Nome: Cognome: Matricola: Esercizio 1

Progettazione concettuale

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la comunità scientifica di ricerca paleontologica.

Progettazione concettuale

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Si considerino le seguenti specifiche per la realizzazione di un sito web per la gestione di abbonamenti a riviste di vario genere..

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

1. Dire cosa si intende per componente intensionale e componente estensionale di una base di dati.

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per un concessionario di automobili.

Basi di dati 19 dicembre 2016 Prova parziale Compito A Tempo a disposizione: un ora e quindici minuti. Libri chiusi.

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Capitolo 6. Esercizio 6.1

Fase di Analisi Class Diagram. Esercizi

Esercitazione 5 Progettazione Concettuale e logica

Componenti di un DBMS

Basi di Dati Relazionali

Basi di Dati. Il Modello Entità-Relazione. Il Modello Entità-Relazione

Corso di Basi di Dati

! Un arco multiplo corrisponde ad un associazione molti-a-molti: il padre (libro) non determina funzionalmente il figlio (autore)

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

Capitolo 8. Esercizio 8.1

GESTIONE VOTI SCOLASTICI

Alessandra Raffaetà. Schemi a oggetti -> Schemi relazionali

Equivalenza di Espressioni Algebriche

Vendite e affitti di immobili: specifica

Programmazione con Java

Progettazione logica relazionale (1/2)

Adattabilità fisica e inferenze nella visualizzazione

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio:

BASE DI DATI. Esercizio: Agenzia pubblicitaria Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

SPORT AGRO A PORTE APERTE I MARTEDÌ GRATIS PER I RAGAZZI DI ROCCAPIEMONTE

Lezione 5: Progettazione di Software e Database. Ingegneria del Software. Il Software 19/11/2011. Dr. Luca Abeti

Elena Baralis, Claudio Demartini

Laboratorio di Basi di Dati progettazione concettuale

Progettazione di Database

11 - Progettazione Logica

Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996

Normalizzazione. Definizione

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Esercitazione di Basi di Dati

Parte 6 Esercitazione sull accesso ai file

Basi di Dati. Corso di Informatica. Memorizzazione dei Dati. Accesso ai Dati. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Il modello relazionale

I modelli logici dei dati

TEORIA RELAZIONALE: INTRODUZIONE

Progettazione concettuale

Dal modello concettuale al modello logico

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Basi di dati. Progettazione concettuale. Analisi dei requisiti e progettazione concettuale ("Analisi dei dati") Requisiti. Acquisizione per interviste

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Basi di dati Appello del Compito B

Considerate lo schema ER in figura: lo schema rappresenta varie proprietà di uomini e donne. Copyright The McGraw-Hill Companies, srl

MONITOR440. Ti semplifica la vita

Esercitazione 3: progettazione logica

Progettazione del Software

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Capitolo 9. Esercizio 9.1. Esercizio 9.2

UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II. Laurea Magistrale in Ingegneria per l Ambiente e il Territorio

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

ESERCIZI DI MODELLAZIONE E-R

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

CONTABILITA DEI COSTI

Amplificatori in classe A con accoppiamento capacitivo

GUIDA PER LA COMPILAZIONE DELLA DOMANDA ON LINE DI PARTECIPAZIONE AL

FORMULARIO PER LA PRESENTAZIONE DI PROGETTI PER TIROCINI FINALIZZATI ALL OCCUPAZIONE

Fasi del ciclo di vita

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Progettazione di un DB....in breve

Guida per la personalizzazione dei modelli di stampa / salvataggio documenti

Transcript:

Corso di Basi di Dati Progettazione Logica Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Analisi dei requisiti e progettazione in dettaglio Studio/analisi dei requisiti Risultati SCHEMA CONCETTUALE SCHEMA LOGICO SCHEMA FISICO Fasi della progettazione Progettazione concettuale Progettazione logica Progettazione fisica

L obiettivo della progettazione logica è la realizzazione del modello logico (es. relazionale) a partire dalle informazioni del modello E-R. DIAGRAMMA E-R TAVOLA VOLUMI ANALISI COSTI PROGETTAZIONE LOGICA Modello Relazionale

Anno Assunzione (0,1) Dipendente (0,N) Direzione Partecipazione Titolo (1,1) Budget Progetto (0,N) (1,N) Tecnico Sviluppatore Mesi Uomo Versioni (1,1) Skill Release Programmatore Analista Numero Data

Anno Assunzione Titolo (1,1) Budget Direzione (0,1) Dipendente Progetto DIPENDENTE(, (0,N) AnnoAssunzione, Skill, Tipo) Partecipazione (0,N) (1,N) PROGETTO(Titolo, Budget, Direttore) Tecnico RELEASE(Numero, Sviluppatore TitoloProgetto, Mesi Uomo Data) Versioni (1,1) PARTECIPAZIONE(Dipendente, Progetto, Skill Release MesiUomo) Programmatore Analista Numero Data

Una possibilita (sconsigliata, ma veloce) è quella di tradurre ogni entita ed ogni relazione del modello E-R con una tabella corrispondente PROBLEMI: Efficienza à Quante tabelle sono generate? Efficienza delle operazioni sui dati? Correttezza à Come si possono tradurre le generalizzazioni? Non esiste un costrutto equivalente nel modello E-R

Per garantire la qualità dello schema prodotto, la progettazione logica tipicamente include due step: Ristrutturazione del modello concettuale à modificare lo schema E-R per semplificare la traduzione ed ottimizzare il progetto. Traduzione nel modello logico à traduzione dei costrutti del modello E-R nei costrutti del modello relazionale

Per garantire la qualità dello schema prodotto, la progettazione logica tipicamente include due step: Ristrutturazione del modello concettuale à modificare lo schema E-R per semplificare la traduzione ed ottimizzare il progetto. Traduzione nel modello logico à traduzione dei costrutti del modello E-R nei costrutti del modello relazionale

Prima di tradurre il modello E-R, è necessario ristrutturarlo per motivi di correttezza/efficienza: Eliminazione delle generalizzazioni Eliminazione degli attributi multi-valore Partizionamento/accorpamento di concetti Scelta degli identificatori Analisi delle ridondanze

A 01 A 02 E0 A TIPO A 01 A 02 E0 E1 E2 A 11 A 21 A 11 A 21 Attributo aggiunto SOLUZIONE 1: Accorpamento delle entità figlie nell entità genitore (con relativi attributi/relazione)

A 01 A 02 R1 E0 R1 A 01 A 02 R1 A 01 A 02 E1 E2 E1 E2 A 11 A 21 A 11 A 21 SOLUZIONE 2: Accorpamento delle entità genitore nelle entità figlie (con relativi attributi/relazione)

Quale traduzione utilizzare? Dipende SOL1 introduce valori nulli ed un attributo aggiuntivo, ma è conveniente quando non ci sono troppe distinzioni tra E0, E1 ed E2 SOL2 è possibile solo se la generalizzazione è totale, introduce valori nulli, ma è conveniente quando ci sono operazioni che coinvolgono solo E1 ed E2 ma non l entita genitore E0

A 01 A 02 R1 A 01 A 02 R1 E0 (0,1) E0 (0,1) (1,1) R01 (1,1) R02 E1 E2 E1 E2 A 11 A 21 A 11 A 21 SOLUZIONE 3: Sostituzione delle generalizzazione con relazioni tra entità genitore ed entità figlie

SOL3 non introduce valori nulli, ed è utile quando ci sono operazioni che si riferiscono solo ad entità di E1, E2 ed E0, ma si presenta la necessità di introdurre dei vincoli: Un occorrenza di E0 non può partecipare in contemporanea ad R01 ed R02. Se la generalizzazione è totale, ogni occorrenza di E0 deve appartenere ad R01 o R02

Anno Assunzione (0,1) Dipendente Tipo Skill (0,N) Direzione Partecipazione Titolo (1,1) Budget Progetto (0,N) (1,N) Tecnico Sviluppatore Mesi Uomo Versioni (1,1) Skill Release Programmatore Analista Numero Data

Prima di tradurre il modello E-R, e necessario ristrutturarlo per motivi di correttezza/efficienza: Eliminazione delle generalizzazioni Eliminazione degli attributi multi-valore Partizionamento/accorpamento di concetti Scelta degli identificatori Analisi delle ridondanze

Gli attributi multivalore non sono presenti nel modello logico, ma possono essere sostituiti introducendo una relazione uno-a-molti A 01 A 02 A 03 A 01 A 02 (1,N) E0 Non introduce valori nulli, ma aumenta il numero di entita presenti nel sistema (1,N) E0 R (1,1) A 03

Gli attributi multivalore non sono presenti nel modello logico, ma possono essere sostituiti introducendo una relazione uno-a-molti Cognome Telefono (1,N) PERSONA Cognome PERSONA (1,N) R (1,1) TELEFONO

Prima di tradurre il modello E-R, e necessario ristrutturarlo per motivi di correttezza/efficienza: Eliminazione delle generalizzazioni Eliminazione degli attributi multi-valore Partizionamento/accorpamento di concetti Scelta degli identificatori Analisi delle ridondanze

Per una dato modello E-R, è possibile ridurre il numero di accessi: separando attributi di un concetto che vengono acceduti separatamente à partizionamenti raggruppando attributi di concetti diversi acceduti insieme à accorpamenti E necessario avere indicazioni sul volume dei dati per effettuare partizionamenti/accorpamenti.

Gli accorpamenti di entità riguardano in genere associazioni uno-ad-uno Codice PERSONA Cognome Indirizzo Interno PROPRIETA (0,1) (1,1) ABITAZIONE Gli accessi all entità Persona riguardano sempre i dati dell Abitazione Codice Cognome PERSONA Indirizzo Interno

Partizionamento verticale di un entità sulla base dei suoi attributi Le operazioni che riguardano i dati anagrafici non riguardano i dati universitari CF Cognome STUDENTE Matricola Corso di Laurea CF Cognome DATI Matricola Corso di Laurea STUDENTE (1,1) (1,1) DATI UNIVERSITA

Prima di tradurre il modello E-R, e necessario ristrutturarlo per motivi di correttezza/efficienza: Eliminazione delle generalizzazioni Eliminazione degli attributi multi-valore Partizionamento/accorpamento di concetti Scelta degli identificatori Analisi delle ridondanze

Nei casi di entità con più identificatori, è necessario sceglierne uno: Evitare attributi con valori nulli. Scegliere l identificatore minimale. Preferire identificatori interni ad identificatori esterni che coinvolgono molte entità. Preferire identificatori utilizzati da molte operazioni per l accesso all entità.

Prima di tradurre il modello E-R, e necessario ristrutturarlo per motivi di correttezza/efficienza: Eliminazione delle generalizzazioni Eliminazione degli attributi multi-valore Partizionamento/accorpamento di concetti Scelta degli identificatori Analisi delle ridonanze

Nel modello E-R, potrebbero essere presenti ridondanze sui dati, ossia informazioni significative ma derivabili da altre già presenti nel modello E-R. Vantaggi delle ridondanze: Operazioni sui dati (spesso) più efficienti Svantaggi delle ridondanze: Maggiore occupazione di memoria Maggiore complessità degli aggiornamenti

Le ridondanze in un diagramma E-R possono presentarsi in varie forme: Lordo Netto Tasse STIPENDIO ATTRIBUTI DERIVABILI Lo stipendio netto si può ricavare dal lordo e dalle tasse. Codice Fiscale Il Numero Abitanti si può ricavare contando le Persone Codice Descrizione Numero Abitanti PERSONA (1,1) RESIDENTI (1,N) CITTA

In questa fase, è necessario valutare cosa fare delle ridondanze Codice Fiscale Il Numero Abitanti si puo ricavare contando le Persone Codice Descrizione Numero Abitanti PERSONA (1,1) RESIDENTI (1,N) CITTA SOLUZIONE1: Eliminare l attributo NumeroAbitanti SOLUZIONE2: Conservare l attributo nello schema.

Per scegliere cosa fare di un attributo ridondante, si puo utilizzare l analisi del modello E-R che abbiamo visto nella progettazione concettuale. 1. Sia S lo schema E-R senza ridondanze 1. Sia S rid lo schema E-R con ridondanze 2. Si calcolano il costo e l occupazione di memoria di entrambi gli schemi: <c(s),m(s)> e <c(s rid ), m(s rid )> 3. Si confrontano c(s)/c(s rid ) e m(s) m(s rid )

Per effettuare l analisi del modello E-R, è necessario disporre delle tavole dei volumi e delle operazioni. Operazione1: Memorizza una nuova persona (200 volte/ giorno). Operazione2: Visualizza tutti i dati di una città, incluso il numero di abitanti (5 volte/giorno) TAVOLA delle OPERAZIONI Operazione Tipo Frequenza Operazione1 I 200 Operazione2 I 5

Per effettuare l analisi del modello E-R, è necessario disporre delle tavole dei volumi e delle operazioni. TAVOLA dei VOLUMI Concetto Tipo Volume Citta E 100 Persona E 500000 Residenti R 500000 Assumiamo che le informazioni sui volumi siano contenute nelle specifiche dei dati

Analisi dello schema S rid (caso con ridondanza): Operazione 1: frequenza 200 volte/giorno TAVOLA DEGLI ACCESSI Concetto Costrutto Accessi Tipo Persona Entita 1 W Residenti Relazione 1 W Citta Entita 1 W w I =1 α=2 c(op1)= 200*1*(3*2)=1200

Analisi dello schema S rid (caso con ridondanza): Operazione 2: frequenza 5 volte/giorno TAVOLA DEGLI ACCESSI Concetto Costrutto Accessi Tipo Citta Entita 1 L w I =1 α=2 c(op2)= 5*1*(0*2 +1)=5

Analisi dello schema S (caso senza ridondanza): Operazione 1: frequenza 200 volte/giorno TAVOLA DEGLI ACCESSI Concetto Costrutto Accessi Tipo Persona Entita 1 W Residenti Relazione 1 W w I =1 α=2 c(op1)= 200*1*(2*2 +0)=800

Analisi dello schema S (caso senza ridondanza): Operazione 2: frequenza 5 volte/giorno TAVOLA DEGLI ACCESSI Concetto Costrutto Accessi Tipo Citta Entita 1 L Residenza Relazione 5000 L w I =1 α=2 c(op2)= 5*1*(0*2 +5001)=25005

Riassumendo: c(s rid ) = c(op1) + c(op2) = 1200 + 5 ~ 1200 c(s) = c(op1) + c(op2) = 800 + 25005 ~ 26000 Vediamo ora l occupazione di memoria: m(s) = X (byte) m(s rid ) = X + 100 *4 = X+ 400 (byte) Volume dell entita Citta Il campo aggiuntivo richiede 4 byte

Riassumendo, la presenza della ridondanza: Introduce un overhead di memoria di 400 byte Migliora lo speedup delle operazioni di un fattore 26000/1200 ~ 20 Risultato dell analisi delle ridondanze à In questo caso, è conveniente conservare (o nel caso introdurre) l attributo Numero Abitanti

Per garantire la qualita dello schema prodotto, la progettazione logica tipicamente include due step: Ristrutturazione del modello concettuale à modificare lo schema E-R per semplificare la traduzione ed ottimizzare il progetto. Traduzione nel modello logico à traduzione dei costrutti del modello E-R nei costrutti del modello relazionale

La progettazione logica deve tradurre i costrutti del modello E-R nei costrutti del modello relazionale, garantendo l equivalenza dei modelli In pratica: Le entità diventano tabelle sugli stessi attributi. Le relazioni del modello E-R diventano tabelle sugli identificatori delle entità coinvolte (più gli attributi propri),.. ma sono possibili traduzioni differenti sulla base delle cardinalità in gioco

Traduzione di entità con identificatore interno Matricola Cognome IMPIEGATO Data Nascita IMPIEGATO(Matricola,, Cognome, DataNascita) Le entità del modello E-R si traducono in tabelle del modello relazionale. L identificatore del modello E-R diventa la chiave primaria della tabella.

Traduzione di entità con identificatore esterno Cognome Matricola Citta Indirizzo STUDENTE (1,1) (1,N) UNIVERSITA Le entità con identificatore esterno si traducono in una tabella che include tra le chiavi gli identificatori dell entita esterna.

Traduzione di entità con identificatore esterno Cognome Matricola Citta Indirizzo STUDENTE (1,1) (1,N) UNIVERSITA STUDENTE(Matricola, Universita,, Cognome) UNIVERSITA(, Citta, Indirizzo)

Traduzione di relazioni molti-a-molti Matricola Cognome Data Codice Descrizione Budget IMPIEGATO (0,N) LAVORO (0,N) PROGETTO Ogni entita diventa una tabella con lo stesso nome, stessi attributi e per chiave il suo identificatore. Ogni relazione diventa una tabella, con gli stessi attributi e come chiave gli identificatori delle entita coinvolte.

Traduzione di relazioni molti-a-molti Matricola Cognome Data Codice Descrizione Budget IMPIEGATO (0,N) LAVORO (0,N) PROGETTO IMPIEGATO(Matricola, Cognome) PROGETTO(Codice, Descrizione, Budget) LAVORO(Matricola,Codice, Data) Vincoli di integrita tra gli attributi

Traduzione di relazioni molti-a-molti Matricola Cognome Data Codice Descrizione Budget IMPIEGATO (0,N) LAVORO (0,N) PROGETTO IMPIEGATO(Matricola, Cognome) PROGETTO(Codice, Descrizione, Budget) LAVORO(MatImpiegato,CodProgetto, Data) E possibile ridenonimare gli attributi della relazione

Traduzione di relazioni uno-a-molti Cognome Ruolo Ingaggio Citta Sede GIOCATORE (1,1) CONTRATTO (0,N) SQUADRA Sono possibili due traduzioni: 1. Traducendo la relazione come una tabella separata (come nel caso delle relazioni molti-a-molti). 2. Inglobando la relazione nell entita con card. massima 1.

Traduzione di relazioni uno-a-molti Cognome Ruolo Ingaggio Citta Sede GIOCATORE (1,1) CONTRATTO (0,N) SQUADRA TRADUZIONE 1 GIOCATORE(, Cognome, Ruolo) SQUADRA(, Citta, Sede) CONTRATTO(, Cognome, Squadra,Ingaggio)

Traduzione di relazioni uno-a-molti Cognome Ruolo Ingaggio Citta Sede GIOCATORE (1,1) CONTRATTO (0,N) SQUADRA TRADUZIONE 2 GIOCATORE(, Cognome, Ruolo, Squadra, Ingaggio) SQUADRA(, Citta, Sede)

Traduzione di relazioni uno-a-molti Cognome Ruolo Ingaggio Citta Sede GIOCATORE (_,1) CONTRATTO (0,N) SQUADRA Cosa accade se vario la cardinalità min. di GIOCATORE? cardmin=0 à Soluzione 1 preferibile cardmin=1 à Soluzione 2 preferibile

Traduzione di relazioni uno-a-uno Cognome Stipendio Data Citta Sede IMPIEGATO (_,1) DIREZIONE (_,1) UFFICIO Sono possibili 3 diverse alternative, in base alla cardinalità minima delle due entità in gioco

Traduzione di relazioni uno-a-uno Cognome Stipendio Data Citta Sede IMPIEGATO (1,1) DIREZIONE (1,1) UFFICIO Caso 1: Cardinalità obbligatorie per entrambe le entità (cardmin pari ad 1 per entrambe). Si traduce il modello inglobando la relazione in una delle due entità (traduzioni simmetriche).

Traduzione di relazioni uno-a-uno Cognome Stipendio Data Citta Sede IMPIEGATO (1,1) DIREZIONE (1,1) UFFICIO IMPIEGATO(, Cognome, Stipendio, Data, Ufficio) UFFICIO(, Citta, Sede) In alternativa, è possibile inglobare la relazione DIREZIONE nell entita UFFICIO

Traduzione di relazioni uno-a-uno Cognome Stipendio Data Citta Sede IMPIEGATO (0,1) DIREZIONE (1,1) UFFICIO Caso 2: Partecipazione obbligatoria per una delle entità (cardmax=1 per una delle due). Si traduce il modello inglobando la relazione nell entità che ha partecipazione obbligatoria

Traduzione di relazioni uno-a-uno Cognome Stipendio Data Citta Sede IMPIEGATO (0,1) DIREZIONE (1,1) UFFICIO IMPIEGATO(, Cognome, Stipendio) UFFICIO(, Citta, Sede, Data, Direttore, CognomeDirettore,)

Traduzione di relazioni uno-a-uno Cognome Stipendio Data Citta Sede IMPIEGATO (0,1) DIREZIONE (0,1) UFFICIO Caso 3: Partecipazione facoltativa per entrambe le entità (cardmin pari a 0 per entrambe). Si traduce il modello traducendo la relazione come una tabella a sè stante (analogo del caso uno-a-molti).

Traduzione di relazioni uno-a-uno Cognome Stipendio Data Citta Sede IMPIEGATO (0,1) DIREZIONE (0,1) UFFICIO IMPIEGATO(, Cognome, Stipendio) UFFICIO(, Citta, Sede) DIREZIONE(Ufficio, Direttore, CognomeDirettore, Data)

Come per la fase di progettazione concettuale, è necessario corredare lo schema logico di opportuna documentazione perchè non tutti i vincoli sono esprimibili nello schema logico: Tabella delle business rules (vista in precedenza) Insieme dei vincoli di integrità referenziali Rappresentati attraverso tabella Rappresentati in maniera grafica (diagramma logico).

IMPIEGATO(, Cognome, Stipendio) DIREZIONE( NumUfficio, Dir, CognomeDir, Data) cammino di join cammino di join UFFICIO(, Citta, Sede) Esempio di diagramma logico, con vincoli di integrità

Ricapitolando: STEP2: Progettazione Logica STEP 2.1: Analisi delle ridondanze STEP 2.2: Eliminazione delle generalizzazioni e di attributi multi-valore STEP 2.3: Accorpamenti/partizionamenti di concetti STEP 2.4: Scelta degli identificatori STEP 2.5: Traduzione nel modello logico