La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Basi di Dati e Sistemi Informativi Progettazione Logica Home page del corso:

Presentazioni simili


Presentazione sul tema: "Basi di Dati e Sistemi Informativi Progettazione Logica Home page del corso:"— Transcript della presentazione:

1 Basi di Dati e Sistemi Informativi Progettazione Logica Home page del corso:

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

3 Lobiettivo della progettazione logica e la realizzazione del modello logico (es. relazionale) a partire dalle informazioni del modello E-R. Progettazione logica DIAGRAMMA E-RTAVOLA VOLUMIANALISI COSTI PROGETTAZIONE LOGICA Modello Relazionale

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

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

6 Una possibilita ( sconsigliata, ma veloce) e 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 tradurre le generalizzazioni? Non esiste un costrutto equivalente nel modello E-R … Progettazione logica

7 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 … Progettazione logica

8 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 … Progettazione logica

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

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

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

12 Progettazione logica In questa fase, e necessario valutare cosa fare delle ridondanze … PERSONACITTA RESIDENTI Codice Fiscale Codice (1,1) Nome (1,N) Descrizione Numero Abitanti Il Numero Abitanti si puo ricavare contando le Persone SOLUZIONE1 : Eliminare lattributo NumeroAbitanti SOLUZIONE2 : Conservare lattributo nello schema.

13 Progettazione logica 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 loccupazione di memoria di entrambi gli schemi: e 3.Si confrontano c(S)/c(S rid ) e |m(s) – m(S rid )|

14 Progettazione logica Per effettuare lanalisi del modello E-R, e necessario disporre delle tavole dei volumi e delle operazioni. Operazione1: Memorizza una nuova persona con la relativa citta dappartenza (200 volte/giorno). Operazione2: Visualizza tutti i dati di una citta, incluso il numero di abitanti (5 volte/giorno) OperazioneTipoFrequenza Operazione1 I200 Operazione2 I5 TAVOLA delle OPERAZIONI

15 Progettazione logica Per effettuare lanalisi del modello E-R, e necessario disporre delle tavole dei volumi e delle operazioni. ConcettoTipoVolume Citta E100 Persona E Residenti R TAVOLA dei VOLUMI Assumiamo che le informazioni sui volumi siano contenute nelle specifiche dei dati …

16 Progettazione logica Analisi dello schema S rid ( caso con ridondanza ): Operazione 1: frequenza 200 volte/giorno ConcettoCostruttoAccessiTipo PersonaEntita 1 W ResidentiRelazione 1 W CittaEntita 1 R CittaEntita 1 W TAVOLA DEGLI ACCESSI c(Op1) = 200*1*(3*2 +1)= 1400 w I =1, w B =1 =2

17 Progettazione logica Analisi dello schema S rid ( caso con ridondanza ): Operazione 2: frequenza 5 volte/giorno ConcettoCostruttoAccessiTipo CittaEntita 1 L TAVOLA DEGLI ACCESSI c(Op2) = 5*1*(0*2 +1)= 5 w I =1, w B =1 =2

18 Progettazione logica Analisi dello schema S ( caso senza ridondanza ): Operazione 1: frequenza 200 volte/giorno ConcettoCostruttoAccessiTipo PersonaEntita 1 W ResidentiRelazione 1 W TAVOLA DEGLI ACCESSI c(Op1) = 200*1*(2*2 +0)= 800 w I =1, w B =1 =2

19 Progettazione logica Analisi dello schema S ( caso senza ridondanza ): Operazione 2: frequenza 5 volte/giorno ConcettoCostruttoAccessiTipo CittaEntita 1 L ResidenzaRelazione 5000 L TAVOLA DEGLI ACCESSI c(Op2) = 5*1*(0* )= w I =1, w B =1 =2

20 Progettazione logica Riassumendo: c(S rid ) = c(Op1) + c(Op2) = ~ 1400 c(S) = c(Op1) + c(Op2) = ~ Vediamo ora loccupazione di memoria: m(S) = X (byte) m(S rid ) = X *4 = X+ 400 (byte) Il campo aggiuntivo richiede 4 byte Volume dellentita Citta

21 Progettazione logica Riassumendo, la presenza della ridondanza : Introduce un overhead di memoria di 400 byte Migliora lo speedup delle operazioni di un fattore 26000/1400 ~ 18! Risultato dellanalisi delle ridondanze In questo caso, e conveniente conservare (o nel caso introdurre) lattributo Numero Abitanti !

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

23 E0 E1 Progettazione logica E2 A 01 A 02 A 11 A 21 SOLUZIONE 1 : Accorpamento delle entita figlie nellentita genitore (con relativi attributi/relazione)… E0 A 01 A 02 A 11 A 21 A TIPO Attributo aggiunto …

24 E0 E1 Progettazione logica E2 A 01 A 02 A 11 A 21 SOLUZIONE 2 : Accorpamento delle entita genitore nelle entita figlie (con relativi attributi/relazione)… R1 E1E2 A 11 A 21 A 01 A 02 R1 A 01 A 02 R1

25 E0 E1 Progettazione logica E2 A 01 A 02 A 11 A 21 SOLUZIONE 3 : Sostituzione delle generalizzazione con relazioni tra entita genitore ed entita figlie… R1 E0 E1E2 A 01 A 02 A 11 A 21 R1 R01R02 (0,1) (1,1)

26 Quale traduzione utilizzare? Dipende … SOL1 introduce valori nulli, ed un attributo aggiuntivo, ma e conveniente quando non ci sono troppe distinzioni tra E0, E1 ed E2 … SOL2 e possibile solo la generalizzazione e totale, introduce valori nulli, e conveniente quando ci sono operazioni che coinvolgono solo E1 ed E2 ma non lentita genitore E0 … Progettazione logica

27 SOL3 non introduce valori nulli, ed e utile quando ci sono operazioni che si riferiscono solo ad entita di E1, E2 ed E0, ma ha necessita di introdurre dei vincoli: Unoccorrenza di E0 non puo partecipare in contemporanea ad R01 ed R02 Se la generalizzazione e totale, ogni occorrenza di E0 deve appartenere ad R01 o R02 … Progettazione logica

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

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

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

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

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

33 Per una dato modello E-R, e possibile ridurre il numero di accessi: separando attributi di un concetto che vengono acceduti separatamente partizionamenti raggruppando attributi di concetti diversi acceduti insieme accorpamenti Necessario avere indicazioni sul volume dei dati per effettuare partizionamenti/accorpamenti … Progettazione logica

34 Gli accorpamenti di entita riguardano in genere associazioni uno-ad-uno … Progettazione logica PERSONA ABITAZIONE (1,1) (0,1) Codice Nome PROPRIETA Cognome Indirizzo Interno PERSONA Codice Nome Cognome Indirizzo Interno Gli accessi allentita Persona riguardano sempre i dati dellAbitazione …

35 Partizionamento verticale di unentita sulla base dei suoi attributi … Progettazione logica STUDENTE DATI UNIVERSITA (1,1) CF Nome DATI Cognome Matricola Corso di Laurea STUDENTE CFNome Cognome Matricola Corso di Laurea Le operazioni che riguardano i dati anagrafici non riguardano i dati universitari …

36 Nei casi di entita con piu identificatori, e necessario sceglierne uno : Evitare attributi con valori nulli. Scegliere l identificatore minimale. Preferire identificatori interni ad identificatori esterni che coinvolgono molte entita. Preferire identificatori utilizzati da molte operazioni per laccesso allentita. Progettazione logica

37 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 … Progettazione logica

38 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 relazioni sugli stessi attributi Le relationship diventano relazioni sugli identificatori delle entità coinvolte (più gli attributi propri) Progettazione logica

39 IMPIEGATO Matricola Nome Traduzione di entita con identificatore interno Cognome Data Nascita IMPIEGATO (Matricola, Nome, Cognome, DataNascita) Le entita del modello E-R si traducono in relazioni del modello relazionale. Lidentificatore del modello E-R diventa la chiave primaria della relazione.

40 Progettazione logica Traduzione di entita con identificatore esterno Le entita con identificatore esterno si traducono in una relazione che include tra le chiavi gli identificatori dellentita esterna. STUDENTEUNIVERSITA Nome (1,1) Cognome (1,N) Citta Indirizzo Matricola

41 Progettazione logica Traduzione di entita con identificatore esterno STUDENTEUNIVERSITA Nome (1,1) Cognome (1,N) Citta Indirizzo Matricola STUDENTE (Matricola, NomeUniversita, Nome, Cognome) UNIVERSITA (Nome, Citta, Indirizzo)

42 Progettazione logica IMPIEGATOPROGETTO LAVORO Matricola Codice (0,N) Data Cognome (0,N) Descrizione Budget Traduzione di relazioni molti-a-molti 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.

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

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

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

46 Progettazione logica GIOCATORESQUADRA CONTRATTO Nome (1,1) Ingaggio Cognome (0,N) Citta Sede Traduzione di relazioni uno-a-molti GIOCATORE (Nome, Cognome, Ruolo) SQUADRA (Nome, Citta, Sede) CONTRATTO (Nome, Cognome, NomeSquadra,Ingaggio) TRADUZIONE 1 Ruolo

47 Progettazione logica GIOCATORESQUADRA CONTRATTO Nome (1,1) Ingaggio Cognome (0,N) Citta Sede Traduzione di relazioni uno-a-molti GIOCATORE (Nome, Cognome, Ruolo, NomeSquadra, Ingaggio) SQUADRA (Nome, Citta, Sede) TRADUZIONE 2 Ruolo

48 Progettazione logica GIOCATORESQUADRA CONTRATTO Nome (_,1) Ingaggio Cognome (0,N) Citta Sede Traduzione di relazioni uno-a-molti Cosa accade se vario la cardinalita min. di GIOCATORE? cardMin=0 Soluzione 1 preferibile cardMin=1 Soluzione 2 preferibile Ruolo

49 Progettazione logica IMPIEGATOUFFICIO DIREZIONE Nome (_,1) Data Cognome (_,1) Citta Sede Traduzione di relazioni uno-a-uno Sono possibili 3 diverse alternative, in base alla cardinalitaminima delle due entita in gioco … Stipendio

50 Progettazione logica IMPIEGATOUFFICIO DIREZIONE Nome (1,1) Data Cognome (1,1) Citta Sede Traduzione di relazioni uno-a-uno Caso 1 : Cardinalita obbligatorie per entrambe le entita Si traduce il modello inglobando la relazione in una delle due entita (in pratica, ci sono due traduzioni simmetriche). Stipendio

51 Progettazione logica IMPIEGATOUFFICIO DIREZIONE Nome (1,1) Data Cognome (1,1) Citta Sede Traduzione di relazioni uno-a-uno IMPIEGATO (Nome, Cognome, Stipendio, Data, NomeUfficio) UFFICIO (Nome, Citta, Sede) Stipendio In alternativa, e possibile inglobare la relazione DIREZIONE nellentita UFFICIO …

52 Progettazione logica IMPIEGATOUFFICIO DIREZIONE Nome (0,1) Data Cognome (1,1) Citta Sede Traduzione di relazioni uno-a-uno Caso 2 : Partecipazione obbligatoria per una delle entita Si traduce il modello inglobando la relazione nellentita che ha partecipazione obbligatoria … (perche?) Stipendio

53 Progettazione logica IMPIEGATOUFFICIO DIREZIONE Nome (0,1) Data Cognome (1,1) Citta Sede Traduzione di relazioni uno-a-uno IMPIEGATO (Nome, Cognome, Stipendio) UFFICIO (Nome, Citta, Sede, Data, NomeDirettore, CognomeDirettore,) Stipendio

54 Progettazione logica IMPIEGATOUFFICIO DIREZIONE Nome (0,1) Data Cognome (0,1) Citta Sede Traduzione di relazioni uno-a-uno Caso 3 : Partecipazione facoltativa per entrambe le entita Si traduce il modello traducendo la relazione come una tabella a se stante (analogo del caso uno-a-molti) Stipendio

55 Progettazione logica IMPIEGATOUFFICIO DIREZIONE Nome (0,1) Data Cognome (0,1) Citta Sede Traduzione di relazioni uno-a-uno IMPIEGATO (Nome, Cognome, Stipendio) UFFICIO (Nome, Citta, Sede) DIREZIONE (NomeUfficio, NomeDirettore, CognomeDirettore, Data) Stipendio

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

57 Progettazione logica IMPIEGATO ( Nome, Cognome, Stipendio) DIREZIONE ( NumUfficio, NomeDir, CognomeDir, Data) UFFICIO ( Nome, Citta, Sede) Esempio di diagramma logico, con vincoli di integrita … cammino di join

58 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 Progettazione logica


Scaricare ppt "Basi di Dati e Sistemi Informativi Progettazione Logica Home page del corso:"

Presentazioni simili


Annunci Google