30Settembre_Quarta-DeMitri - corsi tenuti dal prof. m. bochicchio e

CORSO DI DATABASE
A.A 2015/2016
Prof. Mario Bochicchio
APPUNTI DEL GIORNO 30/09/2015
Sommario
RAPPRESENTAZIONE INTENSIONALE E ESTENSIONALE: ...............................................................2
RELAZIONI N-ARIE ......................................................................................................................3
RELAZIONE TERNARIA ........................................................................................................................ 3
REIFICAZIONE..................................................................................................................................... 4
CARDINALITA’ DELLA RELAZIONE TERNARIA ....................................................................................... 5
DESIGN PATTERN PER APPLICAZIONI DATA-CENTRIC ..................................................................8
PRESENTATION LAYER ........................................................................................................................ 8
BUSINESS RULES ................................................................................................................................ 9
VALIDATORE.............................................................................................................................................. 9
FSM (Macchina a stati finiti) ................................................................................................................... 10
PATTERN DATA-LAYER...................................................................................................................... 10
Angelo Quarta
[email protected]
Omar De Mitri
[email protected]
RAPPRESENTAZIONE INTENSIONALE E ESTENSIONALE:
Considerando un generico problema esso è rappresentabile dal punto di vista intensionale o
estensionale.
Un esempio di rappresentazione intensionale è il modello E-R:
Figura 1
dove A e B sono le Entità ed R la relazione tra A e B.
La rappresentazione estensionale può essere schematizzata attraverso diagrammi di Venn:
Figura 2
dove apA e bqB e l’elemento ri={ap,bq} rappresenta la singola istanza della relazione che lega ap
con bq.
Un database contiene diversi tipi di informazione e la quantità di esse, nella rappresentazione
estensionale, è misurata dalla quantità di dati contenuti nel database mentre la rappresentazione
intensionale è meta-informazione, cioè informazione sull’informazione contenuta nel diagramma.
Ad esempio, come si vede nel diagramma sottostante, l’aggiunta di una relazione nella
rappresentazione intensionale comporta l’aggiunta di un ulteriore insieme nella rappresentazione
estensionale e quindi un aumento di informazione.
2
Figura 3
RELAZIONI N-ARIE
Vengono chiamate relazioni N-arie delle relazioni in cui le entità partecipanti sono N.
Un caso particolare di tali relazioni è la relazione ternaria.
RELAZIONE TERNARIA
Il modello in figura 4 rappresenta una relazione ternaria tra le entità PARTE,FORNITORE e
PROGETTO.
Figura 4
FORNITORE fornisce PARTE relativa a PROGETTO
In questo caso, la relazione FORNIRE in rappresentazione estensionale sarà la terna delle istanze
delle entità coinvolte nella relazione.
3
E’ possibile dimostrare che la quantità di informazione contenuta all’interno di una relazione
ternaria è maggiore rispetto a quella contenuta in 3 relazioni binarie del tipo:
(1.5)
Figura 5
La differenza fondamentale tra i due diagrammi è legata alla tracciabilità della parte. Mentre nel
diagramma rappresentante la relazione ternaria si può stabilire il fornitore relativo alla singola
parte impiegata in un progetto, nel diagramma contenente le tre relazioni binarie ciò non è
possibile.
REIFICAZIONE
Viene chiamata REIFICAZIONE il processo che permette di trasformare una relazione in un entità.
Nel caso in esame:
Figura 6
utilizzando il concetto di FORNITURA abbiamo trasformato il tipo di relazione in un tipo di entità.
In questo modo troviamo tutta l’informazione contenuta nella ternaria con l’aggiunta di quella
relativa all’insieme di oggetti che costituiscono la singola fornitura.
4
CARDINALITA’ DELLA RELAZIONE TERNARIA
Nell’esempio portato avanti finora è stata omessa la cardinalità. Essa, per una relazione ternaria è
stabilita eliminando a turno un’entità e fissandola cardinalità della relazione rimanente.
Nel caso specifico:
- Eliminando l’entità PROGETTO, quante coppie (PARTE, FORNITORE) vedo?
Figura 7
-
(1.7a)
Eliminando l’entità PARTE, quante coppie (FORNITORE, PROGETTO) vedo?
Figura 8
5
-
Eliminando l’entità FORNITORE, quante coppie(PARTE,PROGETTO) vedo?
Figura 9
si ottiene quindi il diagramma E-R seguente completo delle cardinalità associate ad ogni relazione:
Figura 10
Reificando la relazione ternaria, supponendo di contenere lo stesso contenuto di informazione del
diagramma precedente abbiamo:
6
Figura 11
Come accennato precedentemente, la reificazione potrebbe consentire una rappresentazione
contenente maggiori informazioni rispetto a quelle contenute nella relazione ternaria.
Ipotizzando, nel modello considerato, di voler gestire forniture contenenti più parti, le
informazioni contenute nella relazione ternaria non sono sufficienti a stabilire quante parti sono
state acquistate in relazione ad un'unica fornitura. Ciò è possibile invece, nel modello con
relazione reificata, prevedendo una relazione tra PARTE e FORNITURA con cardinalità P:Q.
(1.9b)
Figura 12
7
DESIGN PATTERN PER APPLICAZIONI DATA-CENTRIC
Viene chiamato Design pattern una soluzione usualmente utilizzata per la risoluzione di problemi
ricorrenti.
Nelle applicazioni data-centric, i design pattern aiutano a ridurre errori legati alla progettazione.
Considerando il modello standard di architettura a 3 livelli:
(2.0)
Figura 13
in ogni livello è possibile evidenziare problematiche ricorrenti che richiedono design pattern
appropriati.
(2.2)
Figura 14
PRESENTATION LAYER
Nelle applicazioni odierne viene utilizzata un interfaccia navigazionale che può essere
schematizzata attraverso una struttura ad albero detta “albero di navigazione” contenenti le unità
macroscopiche di informazione cioè le pagine su cui è possibile navigare.
8
Figura 15
All’interno di esse sono presenti oggetti informativi detti WIDGET.
La navigazione può essere suddivisa in due categorie:
- “In-The-Large” (ITL): relativa ad albero di navigazione
- “In-The-Small” (ITS): relativa a pagina e widget
Gli oggetti informativi possono presentarsi come:
- Vista Elenco
- Vista di dettaglio
Ognuno di essi possiede dei metodi di interazione che li contraddistinguono.
I metodi di gestione dell’elenco sono ad esempio pagginatore, filtraggio, ricerca, ordinamento,
acceleratore, ecc.. Di particolare rilievo sono i metodi CRUD: CREATE (per copia1), UPDATE ( solo
per cambiamenti massivi), DELETE2.
Nella vista di dettaglio sono utilizzati meccanismi di navigazione ITS e metodi CRUD nella loro
accezione più classica: CREATE (from scratch), READ , UPDATE, DELETE (logica).
BUSINESS RULES
A livello di business rules, i due pattern più utilizzati sono i VALIDATORI e le FSM(macchine a stati
finiti).
VALIDATORE
Vengono chiamati VALIDATORI delle regole di business che ci consentono di capire se un dato
appartiene o meno ad un dato dominio.
Esistono tre tipi di validatori:
- LOCALE: Regola che discrimina i dati ammissibili.
- GLOBALE: Regola che discrimina l’ammissibilità di un dato in relazione ad altri dati
correlati. Esso richiede una query per la validazione del criterio di scelta.
- PAGINA: Organizza i messaggi provenienti dai validatori di tipo locale e globale.
1
Esistono due tipi di creazione: FROM SCRATCH (ex-novo) e PER COPIA. Nel primo viene creato un
oggetto vuoto, nel secondo viene effettuata una copia di un oggetto esistente e modificato
opportunamente
2 Esistono due tipi di cancellazione: CANCELLAZIONE LOGICA e CANCELLAZIONE FISICA. Nella
prima, l’oggetto non è visualizzato ma permane nel database, nel secondo l’oggetto viene
fisicamente cancellato dal database. Nella progettazione di una base di dati E’ BUONA NORMA
EFFETTUARE SOLO CANCELLAZIONI LOGICHE.
9
FSM (Macchina a stati finiti)
Ci permette di scrivere in maniera atemporale i possibili stati in cui può trovarsi l’applicazione
progettata.
Figura 16
PATTERN DATA-LAYER
Nella modellazione di una base di dati ci sono due approcci differenti per affrontare il medesimo
problema. E’ possibile studiare lo specifico dominio applicativo oppure utilizzare un dominio
applicativo più ampio che permette di evidenziare alcune caratteristiche comuni. Ad esempio, nel
caso in cui si dovesse progettare una base di dati per una banca, si potrebbe studiare il contesto
singolarmente oppure ricondursi al fatto che in generale le applicazioni di Industria e commercio
effettuano principalmente la vendita di prodotti o vendita di servizi.
Figura 17
Figura 18
10