Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

3 – Progettazione concettuale 6

Con questo abbiamo modellato, attraverso 4 raffinamenti, tutte le specifiche connesse ai PARTECIPANTI in

uno schema E-R e quindi sostanzialmente abbiamo concluso una delle tre parti del nostro problema di

progettazione.

CORSO: adesso andiamo ad analizzare l’entità CORSO, una delle tre parti dello schema scheletro e

proseguiamo come abbiamo fatto per PARTECIPANTE attraverso raffinamenti successivi aggiungendo di

volta in volta i dettagli sulle specifiche.

1° raffinamento: aggiunta degli attributi

2° raffinamento: osservando le specifiche ci si rende conto che CORSO è l’entità di un concetto generale ed

esiste infatti, un concetto di EDIZIONE DI CORSO, cioè il fatto che un corso viene tenuto in un particolare

periodo di tempo (ci possono essere infatti diverse edizioni dello stesso corso). Mettiamo quindi quest’altra

entità nello schema, aggiungendo gli attributi che lo caratterizzano. Naturalmente esiste una relazione che

lega le due entità e tale relazione (associazione) è TIPOLOGIA: data un’edizione di corso, esiste una e una

sola tipologia di corso (cardinalità (1,1)) viceversa, dato un corso, possono esserci per esso o zero (nel caso

di un corso appena istituito) oppure N (nel caso di un corso ripetuto negli anni) edizioni del corso. Se

vogliamo identificare il concetto di edizione di corso, potremmo stabilire di prendere la data di inizio del

corso insieme al corso stesso e questo implica il fatto che non è possibile avere due corsi uguali nella stessa

edizione di corso [identificazione esterna].

Dario Fugale : Esercizio Completo – Società di Formazione 3 – Progettazione concettuale 7

3° raffinamento: sicuramente connesso (anche se indirettamente) al concetto di CORSO è il concetto di

LEZIONE del corso identificati dall’unione degli attributi “orario”, “aula”, “giorno”. L’entità LEZIONE è legata

a EDIZIONE CORSO mediante la relazione COMPOSIZIONE.

DOCENTE: passiamo quindi all’ultima parte dello schema scheletro e cerchiamo di dettagliarlo meglio.

1° raffinamento: aggiunta degli attributi

OSSERVA: la cardinalità associata all’attributo “telefono” indica che esso è un attributo multivalore.

2° raffinamento: possiamo rappresentare il fatto che per il DOCENTE consideriamo due casi particolari

ovvero il fatto che ci possono essere docenti che sono dei COLLABORATORI (esterni) oppure un docente

può anche essere INTERNO (un impiegato della società). Tutto questo può essere rappresentato attraverso

una generalizzazione.

Dario Fugale : Esercizio Completo – Società di Formazione 3 – Progettazione concettuale 8

3.3 – Integrazione

Con il precedente passo abbiamo descritto le diverse componenti, adesso quello che dobbiamo fare è

mettere insieme le varie parti. Con riferimento allo schema scheletro ci viene indicato che un

PARTECIPANTE lo dobbiamo collegare al CORSO attraverso un concetto di PARTECIPAZIONE e quindi

DOCENTE lo dobbiamo collegare al CORSO attraverso un concetto di DOCENZA generale.

Possiamo suddividere lo schema scheletro in tante parti quante sono le relazioni che legano le entità tra

loro. Nel nostro caso possiamo suddividere il problema (passo) di integrazione in due parti. Cominciamo

affrontando la relazione PARTECIPAZIONE:

zoomiamo nell’area selezionata (la linea tratteggiata significa che non sono state rappresentate tutte le

altre parti dello schema (che avevamo precedentemente individuato).

Come si può vedere, in realtà il concetto di partecipante non è legato al concetto di corso ma alla sua

edizione e quindi la relazione “partecipazione” viene sostituita da una “partecipazione corrente”. Dalle

specifiche, inoltre, appare chiara la necessità di dover modellare anche il fatto che i partecipanti hanno

partecipato in edizioni passate del corso pertanto, introduciamo una nuova relazione “partecipazione

passata”.

Dario Fugale : Esercizio Completo – Società di Formazione 3 – Progettazione concettuale 9

Passiamo adesso a dettagliare meglio la seconda parte dello schema scheletro cercando di collegare il

concetto di “corso” a quello di “docente”.

zoomiamo nell’area selezionata e ricordando che un docente insegna in un’edizione di corso e non un corso

in generale, possiamo modificare lo schema nel seguente modo:

Alla fine possiamo ancora distinguere le DOCENZE CORRENTI e le DOCENZE PASSATE poiché si vuole anche

modellare il fatto che un docente ha partecipato a diverse edizioni del corso.

Dario Fugale : Esercizio Completo – Società di Formazione 3 – Progettazione concettuale 10

infine possiamo anche introdurre una relazione diretta tra il DOCENTE e il CORSO tramite un concetto di

ABILITAZIONE al corso.

A questo punto colleghiamo il tutto e otteniamo lo schema ER finale:

Dario Fugale : Esercizio Completo – Società di Formazione 3 – Progettazione concettuale 11

3.4 – Documentazione allegata

Lo schema concettuale va documentato con:

• Dizionario dei dati

o Entità;

o Relazioni;

• Vincoli non esprimibili

o Dobbiamo descrivere, in forma testuale, tutti quei vincoli che non possono essere descritti

attraverso lo schema concettuale.

▪ Esempio 1: un docente può insegnare solo a un corso al quale è abilitato.

▪ Esempio 2: il numero dei partecipanti è pari alla somma degli iscritti.

▪ …

A questo punto abbiamo completato la progettazione concettuale e possiamo passare alla fase successiva.

Dario Fugale : Esercizio Completo – Società di Formazione Errore * 12

4 – Progettazione logica

È quella fase che consiste nel trasformare questa rappresentazione astratta (che non fa rifermento a

dettagli implementativi concreti) in una rappresentazione che tenga conto degli aspetti implementativi.

4.1 – Strumenti utili

Una cosa che dobbiamo tener conto nella progettazione logica, sono tutte le operazioni previste sullo

schema (quando la base di dati sarà operativa) che possono essere ad esempio:

1) Inserisci un nuovo partecipante indicando tutti i suoi dati;

2) Assegna un partecipante a una edizione di corso;

3) Inserisci un nuovo docente indicando tutti i suoi dati e i corsi che può insegnare;

4) Assegna un docente abilitato a una edizione di corso;

5) Stampa tutte le informazioni sulle edizioni passate di un corso con titolo, orari delle lezioni e numero

dei partecipanti;

6) Stampa tutti i corsi offerti, con informazioni sui possibili docenti;

7) Per ogni docente, trova i partecipanti a tutti i corsi da lui insegnati;

8) Effettua una statistica su tutti i partecipanti a un corso;

Un altro strumento che abbiamo a disposizione che ci servirà per valutare le prestazioni è la tavola dei

volumi che è ottenuta dal numero previsto di occorrenze che ci saranno per ogni costrutto dello schema

nella futura base di dati a regime.

Tabella 2: tavola dei volumi

Concetto Tipo Volume

Lezione E 8000

Edizione corso E 1000

Corso E 200

Docente E 300

Partecipante E 5000

Part. Passata R 10000

Part. Corrente R 500

Composizione R 8000

… … …

4.2 – Analisi delle ridondanze

Quella è la prima fase vera e propria nella progettazione logica.

Nel nostro schema c’è solo una ridondanza:

Dario Fugale : Esercizio Completo – Società di Formazione 4 – Progettazione logica 13

l’attributo numero di partecipanti dell’entità EDIZIONE CORSO è in effetti un dato che può essere ricavato:

basta tener conto dei partecipanti iscritti alle edizioni del corso e quindi contando le occorrenze di questa

associazione si può derivare quel dato.

Adesso dobbiamo scegliere se mantenere o meno tale ridondanza. Esaminiamo quindi le operazioni

coinvolte:

1) Inserisci un nuovo partecipante indicando tutti i suoi dati;

2) Assegna un partecipante a una edizione di corso;

• 50 volte al giorno

3) Inserisci un nuovo docente indicando tutti i suoi dati e i corsi che può insegnare;

4) Assegna un docente abilitato a una edizione di corso;

5) Stampa tutte le informazioni sulle edizioni passate di un corso con titolo, orari delle lezioni e

numero dei partecipanti;

• 10 volte al giorno.

6) Stampa tutti i corsi offerti, con informazioni sui possibili docenti;

7) Per ogni docente, trova i partecipanti a tutti i corsi da lui insegnati;

8) Effettua una statistica su tutti i partecipanti a un corso;

schema operazione 2:

Per fare questa operazione dobbiamo andare da PARTECIPANTE fino a EDIZIONE CORSO (perché dobbiamo

aggiornare il numero dei partecipanti) passando per l’associazione PARTECIPAZIONE CORRENTE.

schema operazione 5:

adesso dobbiamo valutare se è opportuno mantenere o meno la ridondanza, in relazione agli schemi di

navigazione relative alle due operazioni in questione. Esaminiamo quindi le tabelle delle operazioni

Dario Fugale : Esercizio Completo – Società di Formazione 4 – Progettazione logica 14

PRESENZA DI RIDONDANZA:

Tabella 3: tabella operazione 2

Concetto Costrutto Accessi Tipo

Partecipante Entità 1 L

Part. Corrente Relazione 1 S

Edizione corso Entità 1 L

Edizione corso Entità 1 S

Siccome qui volevamo fare un aggiornamento e quindi aggiungere un partecipante a un corso dobbiamo

fare:

- 1 accesso in lettura all’entità PARTECIPANTE per trovare il partecipante

- 1 accesso in scrittura alla relazione PARTECIPAZIONE CORRENTE per aggiungere questa

informazione ovvero che un partecipante è iscritto a un corso

- 1 accesso in lettura all’entità EDIZIONE CORSO perché dobbiamo trovare il corso in questione

- 1 accesso in scrittura all’entità EDIZIONE CORSO perché dobbiamo aggiornare l’attributo “numero

partecipanti”

N.B: gli ultimi due accessi sono causati proprio per effetto della presenza del dato ridondante!

Tabella 4: tabella operazione 5

Concetto Costrutto Accessi Tipo

Edizione corso Entità 1 L

Tipologia Relazione 1 L

Corso Entità 1 L

Composizione Relazione 8 L

Lezione Entità 8 L

- 1 accesso in lettura all’entità EDIZIONE CORSO per avere le informazioni sull’edizione del corso;

- 1 accesso in lettura alla relazione TIPOLOGIA;

- 1 accesso in lettura all’entità CORSO per avere l’informazione sul titolo;

- 8 accessi in lettura (guardando la tabella dei volumi in genere dato un corso ci sono in media 8

lezioni) alla relazione COMPOSIZIONE;

- 8 accessi in lettura all’entità LEZIONI per avere le informazioni riguardo orari, aule etc…;

ASSENZA DI RIDONDANZA:

Tabella 5: tabella operazione 2 (assenza di ridondanza)

Concetto Costrutto Accessi Tipo

Partecipante Entità 1 L

Part. Corrente Relazione 1 S

- 1 accesso in lettura all’entità PARTECIPANTE per trovare il partecipante

- 1 accesso in scrittura alla relazione PARTECIPAZIONE CORRENTE per aggiungere questa

informazione ovvero che un partecipante è iscritto a un corso

Dario Fugale : Esercizio Completo – Società di Formazione 4 – Progettazione logica 15

Tabella 6: tabella operazione 5 (assenza di ridondanza)

Concetto Costrutto Accessi Tipo

Edizione corso Entità 1 L

Tipologia Relazione 1 L

Corso Entità 1 L

Composizione Relazione 8 L

Lezione Entità 8 L

Part. Corrente Relazione 10 L

- 1 accesso in lettura all’entità EDIZIONE CORSO per avere le informazioni sull’edizione del corso;

- 1 accesso in lettura alla relazione TIPOLOGIA;

- 1 accesso in lettura all’entità CORSO per avere l’informazione sul titolo;

- 8 accessi in lettura (guardando la tabella dei volumi in genere dato un corso ci sono in media 8

lezioni) alla relazione COMPOSIZIONE;

- 8 accessi in lettura all’entità LEZIONI per avere le informazioni riguardo orari, aule etc…;

- 10 accessi in lettura alla relazione PARTECIPAZIONE CORRENTE (secondo la stima fatta sulla base

della tabella dei volumi secondo la quale ci sono in media 10 partecipanti);

CONFRONTO:

- L’operazione 2 richiede 3 accessi in più in caso di presenza di ridondanza;

- L’operazione 5 richiede 10 accessi in più in caso di assenza di ridondanza;

Normalizzando rispetto alla frequenza:

3×50 = 150 accessi

10×10 = 100 accessi

Ci conviene togliere la ridondanza!

Togliendo la ridondanza otteniamo un sistema più efficiente perché abbiamo un numero di accessi minore

che devono essere fatti per svolgere le operazioni in questione.

4.3 – Eliminazione delle gerarchie

Le gerarchie devono essere eliminate o meglio, devono essere trasformate in modo diverso attraverso l’uso

di sole entità e relazioni come costrutti ER dal momento che esse non potranno essere tradotte nel modello

logico (relazionale).

Abbiamo in generale a disposizione tre modi di eliminare le gerarchie ma, sulla base delle operazioni che

devono essere svolte sulla base di dati, conviene accorpare le entità figlie della generalizzazione nell’entità

Dario Fugale : Esercizio Completo – Società di Formazione


ACQUISTATO

1 volte

PAGINE

23

PESO

1.35 MB

PUBBLICATO

+1 anno fa


DETTAGLI
Esame: Basi di dati
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
Università: Catania - Unict
A.A.: 2017-2018

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher dariofugale di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Catania - Unict o del prof Giordano Daniela.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Basi di dati

Appunti SQL
Appunto
Elettrotecnica Parte 1
Appunto
Elettrotecnica parte 2
Appunto
Appunti di Basi di Dati - Progettazione
Appunto