Anteprima
Vedrai una selezione di 4 pagine su 12
Basi di dati Pag. 1 Basi di dati Pag. 2
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 6
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 11
1 su 12
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

TOP DOWN:

partendo da uno schema astratto che riassume l’intero modelli in pochi costrutti

si applicano trasformazioni per precisare il modello, utilizzando anche i design

pattern.

Recensione:requisiti soddisfatti e visione globale dello schema ma non si presta

al lavoro di gruppo e devi partire con una chiara visione di insieme.

BOTTOM UP:

si modellano concetti elementari per poi iterativamente fonderli tra di loro per

schemi più complessi.

Recensione: anche se si presta bene ad un lavoro di gruppo presenta delle

difficoltà nell’aggregazione degli schemi.

INSIDE OUT:

porre al centro il core della base dati ed espandersi a macchia d’olio per definire

la periferia dello schema.

Recensione: si presta bene al lavoro di gruppo e semplifica notevolmente

l’aggregazione degli schemi.

Come si procede alla traduzione?

Per poter utilizzare il modello concettuale deve essere tradotto in una forma più vicina

a quella usata dai DBMS; ciò comporta l’inesistenza di alcuni costrutti e necessità di

garantire prestazioni ottimali.

Si deve procedere alla riorganizzazione del modello concettuale che soddisfi efficienza

e traducibilità.

Come calcolare l’efficienza?

Attraverso la quantità di memoria occupata e al tempo necessario per

rispondere alle interrogazioni. Esse si calcolano rispettivamente con

l’occupazione di memoria( quantità di spazio occorrente per memorizzare) e col

costo di esecuzione( numero di entità e relazioni coinvolte).

Come stimare l’occupazione della memoria?

Attraverso la tavola dei volumi che stima per ogni costrutto la taglia, ovvero il

peso che occupano i vari record al suo interno.

Come stimare l’efficienza del tempo?

Attraverso la tavola delle operazioni si osservano le operazioni da eseguire

osservando la frequenza, l’entità coinvolte e se è procrastinabile o meno.

Come muoversi in queste situazioni per ottimizzare il modello concettuale?

Affidarsi alla regola dell’80-20; cioè?

La riorganizzazione di un modello concettuale deve essere

prevalentemente finalizzata all'ottimizzazione delle operazioni più

pesanti(80% del carico applicativo) che in pratica sono solo una parte di

tutte le operazioni (il 20% delle operazioni).

Come individuare queste operazioni critiche?

Attraverso la tavola degli accessi che ha il compito di riportare il

costrutto( entità o relazione) e il tipo di accesso( scrittura o lettura) per

una certa operazione.

Come ristrutturare il modello concettuale?

Analisi delle ridondanze:

se un dato è presente più volte allora è ridondante implicitamente o

esplicitamente.

Anche se all’apparenza è un concetto negativo gode della possibilità di accesso

diretto ad un informazione evitando di appesantire un’operazione frequente.

In questi casi posso pensare di tenere questa ridondanza se le operazioni su

quel particolare dato son altamente frequenti e calcolarla passando da altri

costrutti porterebbe un costo di esecuzione troppo elevato.

Per calcolare la convenienza sfrutto le tabelle prima introdotte.

a) Attributi derivabili da altri attributi.

b) Attributi derivabili da attributi di altri concetti.

c) Attributi derivabili mediante conteggio delle occorrenze di una relazione.

d) Attributi derivabili mediante partecipazioni a relazioni ridondanti( due

percorsi per arrivare allo stesso risultato).

Eliminazione delle generalizzazioni:

Il modello relazionale non può rappresentare direttamente le generalizzazioni

per compensare a ciò ci sono tre strade:

Accorpamento delle figlie nella generalizzazione del genitore:

l’entità padre acquista la somma degli attributi delle figlie e le distingue

tra di loro con un attributo.

Recensione: va ad ottimizzare le operazioni svolte su tutte le istanze ma

occupa molto spazio ed ammette dati inutili o impossibili.

Accorpamento dell’entità padre nelle entità figlie:

si va ad eliminare l’entità padre con le sue proprietà( attributi e

partecipazioni a relazioni) che sono replicate su ciascuna entità figlia.

Recensione: va ad ottimizzare operazioni svolte sulle singole entità figlie

ed occupa poco spazio perché evita attributi vuoti ma di contro aumenta

la complicatezza delle relazioni e penalizza operazioni su tutte le istanze.

Sostituzione della generalizzazione con una relazione:

trasformo la generalizzazione in relazioni 1 a 1 con ciascun delle entità

figlie con struttura che rimane immutata.

Recensione: ottimizza operazioni sugli attributi comuni e sugli attributi

specifici di una entità figlia; ma rende complicate le operazioni miste tra

attributi comuni e attributi specifici.

Partizionamento/accorpamento di entità e associazioni:

il tempo di esecuzione di una operazione è proporzionale al lavoro da fare per

circoscrivere una certa regione di dati in una tabella. Come è possibile

ottimizzare questo lavoro?

Attraverso un partizionamento dell’entità con decomposizione verticale;

ovvero? Dividere gli attributi dell’entità mettendo in evidenza gli attributi

richiesti frequentemente per poi associarli con relazioni 1 a 1.

Quando è che si parla di decomposizione orizzontale? Nel caso in cui sono

interessato solo su un sottoinsieme di istanze con un dato attributo

cosicché divida l’entità in tante entità quante sono le forme con cui

questo attributo si manifesta.

Il tempo di esecuzione di una operazione è proporzionale al numero di concetti

coinvolti. Come è possibile ottimizzare questo lavoro?

Attraverso un accorpamento delle entità; ovvero? Fonde due entità in una

sola nella quale le occorrenze della prima entità sono fuse con le

occorrenze della seconda entità con cui erano in relazione.

Ciò risulta utile quando esistono operazioni che accedono

simultaneamente agli attributi di entrambe le entità cosicché l’operazione

venga svolta accedendo ad una sola entità.

Tuttavia le istanze dell’entità accorpata si ripetono per ogni istanza

precedentemente associata, non risulta un problema per relazioni 1 a 1

ma è inapplicabile per relazioni 1 a N o N a N.

Come per l’entità lo stesso ragionamento si applica con le relazioni.

Scelta degli identificatori primari:

La traduzione dal modello concettuale al modello logico richiede, per ciascuna

entità, la traduzione in chiave primaria di uno degli identificatori.

Come passare al modello logico?

Una volta ottimizzato questo modello concettuale bisogna tradurlo nel modello logico;

vediamo come può essere strutturato questo modello logico:

per capire il modello relazionale bisogna prima introdurre i concetti matematici

di relazione ed ennupla.

Dati due domini il prodotto cartesiano è definito come l’insieme di tutte le

possibili coppie tra elementi dei due domini( ogni singola combinazione è detta

ennupla). Un sottoinsieme ordinato di questo prodotto cartesiano è definito

relazione matematica che deve rispettare delle stringenti proprietà:

Non esiste un ordinamento tra diverse ennuple.

 Ciascuna ennupla è distinta in almeno un campo da un’altra.

 Ciascuna ennupla è ordinata secondo i vari domini.

Detto ciò possiamo osservare la limitatezza di questo sistema dal momento in

cui è la posizione a determinare il ruolo del dominio, quindi se si ignora il

significato delle diverse posizioni si stravolge il significato dell’informazione.

Per facilitare ciò si è ideato il modello relazione che, dalla fine degli anni 70, è il

modello logico maggiormente diffuso.

Su cosa si basa?

Ciascuna relazione può essere rappresentata attraverso una tabella, e

viceversa. Inoltre i riferimenti tra dati in tabelle diverse sono espressi per mezzo

di valori, cosicché sia trasferibile facilmente anche su diversi archivi.

Andiamo a osservare nel dettaglio questo modello relazione:

data una tabella per prima cosa associamo ad essa un nome( esso identifica la

relazione) e per ogni colonna, e quindi per ogni dominio, associamo un nome

distinto( esso identifica l’attributo).

In comune con la relazione matematica si può osservare come non esiste un

ordinamento tra diverse ennuple e come ciascuna di esse sia distinta in almeno

un campo da un’altra. In più questo modello relazione ha la qualità che la

struttura può essere alterata cambiando l’ordine delle colonne.

Il ruolo delle ennuple cambia radicalmente; infatti esse diventano delle funzioni che

associano a ciascun attributo un valore del proprio dominio di appartenenza.

Identifichiamo con schema di relazione di nome R un insieme di attributi e lo

indichiamo :

R rappresenta il nome della relazione ed i diversi A sono gli attributi della

relazione R. Essa rappresenta la parte intensionale della relazione ed ha il

compito di descrive i nomi degli attributi.

Identifichiamo con relazione un insieme di r ennuple.

Essa rappresenta l’informazione presente nella relazione ed è anche detta parte

estensionale.

Identifichiamo con schema di base di dati un insieme di schemi di relazione; mentre

identifichiamo con istanza di base di dati un insieme di relazioni.

Quando è necessario l’utilizzo di tabelle multiple?

Nel caso in cui i dati da rappresentare facciano riferimento a concetti diversi è

preferibile rappresentarli utilizzando più tabelle, tra loro collegate. Tuttavia La

strutturazione in tabelle multiple deve però essere realizzata senza perdita di

informazione ed è necessario ipotizzare di mettere in correlazione dati di tabelle

diverse.

Numerosi modelli logici prevedono dei puntatori espliciti per creare dei

riferimenti tra diverse tabelle, ciò rende difficoltoso il trasferimento della

base dati in un diverso archivio.

Nel modello relazionale i riferimenti sono espressi implicitamente

mediante l’uso di valori, cosicché sia possibile determinare la riga di

un’altra tabella cui si intende fare riferimento.

Quali valori scegliere?

Un insieme di attributi che identifica univocamente una ennupla è definito super

chiave, ovviamente possono esistere più super chiavi in una relazione( ad

esempio dati degli attributi che rappresentano una super chiave,

aggiungendone un altro attributo rimane comunque un super chiave).

Formalmente: r non contiene due ennuple distinte t1 e t2 tali che i valori

che t1 assume sugli attributi K (t1[K]) sono identici ai valori che t2

assume sugli attributi K (t2[K]) .

Identifichiamo con chiave di una relazione una super chiave che non contiene al

suo interno un’altra super chiave.

Non esistendo

Dettagli
Publisher
A.A. 2022-2023
12 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Dinamo02 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à Università degli Studi di Roma La Sapienza o del prof Ferraro Petrillo Umberto.