Anteprima
Vedrai una selezione di 20 pagine su 146
Basi di dati - Appunti Pag. 1 Basi di dati - Appunti Pag. 2
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 6
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 11
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 16
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 21
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 26
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 31
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 36
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 41
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 46
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 51
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 56
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 61
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 66
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 71
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 76
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 81
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 86
Anteprima di 20 pagg. su 146.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti Pag. 91
1 su 146
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

DROP DOMAIN

Cancellazione del dominio (attributo)

DROP TABLE

Cancellazione della tabella

Due opzioni:

RESTRICT

un oggetto (dominio, tabella) non è rimosso se non è vuoto.

Opzione di default.

CASCADE rimosso l‘oggetto e tutto ciò coinvolto nella definizione dell‘ oggetto.

Viene che è

Esempio ISTRUZIONI SQL DI AGGIORNAMENTO

Inserimento di tuple INSERT

inserimento di nuove tuple in una tabella

Cancellazione di tuple DELETE

cancellazione di tuple da una tabella

Modifica di tuple UPDATE

modifica del contenuto di tuple in una tabella

Le operazioni di aggiornamento modificano lo stato della base di dati.

È necessario verificare che siano rispettati i vincoli di integrità.

Ogni istruzione può aggiornare il contenuto di una sola tabella.

126

Matilde Simonini Ingegneria Informatica anno 2022/2023

Istruzione di INSERT

Inserimento di una sola tupla: assegnazione di un valore costante ad ogni attributo.

lette da altre tabelle mediante un’istruzione SELECT.

Inserimento di più tuple:

Sono inserite in NomeTabella tutte le tuple selezionate dall’interrogazione Interrogazione.

Interrogazione è un’istruzione SELECT arbitraria, che non può contenere la clausola ORDER BY.

Istruzione DELETE

Cancellazione dalla tabella NomeTabella di tutte le tuple che soddisfano il predicato.

Occorre sempre verificare che la cancellazione non causi la violazione di vincoli di integrità referenziale.

Istruzione UPDATE

Tutti i record della tabella NomeTabella che soddisfano il predicato sono modificati in base alle assegnazioni

colonna=espressione nella clausola SET.

Esempio viste e query 127

Matilde Simonini Ingegneria Informatica anno 2022/2023

Forme normali

Una forma normale è una proprietà di uno schema di relazione che ne garantisce (da un certo punto di vista) la

“qualità”.

Quando una relazione non è normalizzata:

◆ presenta ridondanze

◆ dà luogo ad anomalie durante le operazioni di aggiornamento

Forme normali sono definite sul modello relazionale, ma possono essere applicate in altri contesti quali, ad

esempio il modello E-R.

La normalizzazione è la procedura che permette di trasformare schemi non normalizzati in schemi che soddisfano

una forma normale. Sostanzialmente si prende una relazione, si costruiscono delle relazioni più piccole che

risultano essere in forma normale e che se messe in join permettono di ricostruire la relazione originale.

Forme normali e normalizzazione si utilizzano per verificare i risultati della progettazione di una base di dati (ed

eventualmente migliorarli).

Si noti che se la progettazione concettuale è stata fatta bene allora è molto probabile che le relazioni di cui si

dispongono sono già in forma normale.

Esempio di relazione con anomalie relazione non normalizzata

Proprietà:

1. Lo stipendio di ciascun impiegato è unico ed è funzione del solo impiegato, indipendentemente dai

progetti cui partecipa

2. Il bilancio di ciascun progetto è unico ed è funzione del solo progetto, indipendentemente dagli

impiegati che vi partecipano

3. Ogni impiegato, in ciascun progetto cui partecipa, svolge una sola funzione eventualmente diversa da

progetto a progetto

Anomalie: –

1. Lo stipendio di ciascun impiegato è ripetuto in più ennuple ridondanza

2. Se lo stipendio di un impiegato varia, è necessario andarne a modificare il valore in tutte le ennuple

corrispondenti anomalia di aggiornamento

3. Se un impiegato interrompe la partecipazione a tutti i progetti, non è possibile conservare traccia del

suo nome e del suo stipendio anomalia di cancellazione

4. Se si hanno informazioni su un nuovo impiegato, non è possibile inserirle finché non partecipa a un

progetto anomalia di inserimento

avremmo a che fare con una tabella separata per l’impiegato e il suo

In una base di dati ben fatta

stipendio.

La ridondanza è presente anche sul bilancio del progetto: dove compare più volte il progetto, compare

anche più volte la stessa informazione relativa al bilancio.

Se, ad esempio, lo stipendio di un impiegato varia, non possiamo agire su una sola tupla: dobbiamo ciclare

tutta la tabella e ogni volta che troviamo un’occorrenza di tale impiegato dobbiamo modificare il valore dello

stipendio (anomalia di aggiornamento).

La terza anomalia è particolarmente grave.

Perché queste anomalie?

128

Matilde Simonini Ingegneria Informatica anno 2022/2023

Abbiamo usato un'unica relazione per rappresentare informazioni eterogenee:

→ gli impiegati con i relativi stipendi

→ i progetti con i relativi bilanci

→ le partecipazioni degli impiegati ai progetti con le relative funzioni

DIPENDENZA FUNZIONALE

Per formalizzare ci si deve basare su un vincolo di integrità aggiuntivo rispetto a quelli già visti in precedenza.

Questo ulteriore vincolo prende nome di dipendenza funzionale ed è intrarelazionale.

R(U) relazione e X, Y sottoinsiemi di U

r soddisfa la dipendenza funzionale (FD) da X a Y se, per ogni coppia di ennuple t e t di r con t [X] = t [X], risulta

1 2 1 2

anche t [Y] = t [Y]

1 2

è un’istanza della relazione, ossia una riga della tabella.

Dove r

ad ogni chiave K corrisponde una dipendenza funzionale da K verso tutti gli attributi (e insiemi di attributi) della

relazione

Si noti che tale vincolo non è solo legato alla normalizzazione ma può essere utilizzato indipendentemente da

essa.

Sostanzialmente uno o più attributi all’interno di una relazione sono funzione di uno o più attributi della stessa

relazione. Fissati degli attributi della relazione, altri attributi sono automaticamente fissati.

Si noti che se C dipende dalla combinazione di A e B, i quali (A e B) costituiscono una chiave allora è sempre vero

il vincolo in quanto non esistono due tuple che hanno lo stesso valore per A e B ma che hanno diverso C.

Notazione X→Y

X determina funzionalmente Y

Esempio

Quando due tuple coincidono sul nome dell’impiegato allora coincidono sullo stipendio.

Osservazione

Sulla base della definizione è valida anche la seguente FD: →

Impiegato Progetto Progetto

Si tratta però di una FD banale (sempre soddisfatta).

X A è non banale se A (singolo attrib.) non appartiene a X

estensione: X Y è non banale se non tutti gli attributi in Y appartengono a X (Y⊈ X)

Una volta evidenziate le dipendenze funzionali viste sopra, ci si chiede quando ci si può fermare nel cercare le

dipendenze funzionali. Quando posso essere sicuro di aver trovato tutte le dipendenze funzionali?

Dipendenze funzionali implicate

Come facciamo a trovare ulteriori dipendenze da quelle già trovate? Come possiamo arrivare ad un insieme

completo di dipendenze?

Sia (R,F) uno schema di relazione con dipendenze funzionali, dove R è lo schema di relazione e F è l’insieme delle

dipendenze funzionale definite in R.

Si vuole capire se F è completo.

Una istanza r di R si dice legale rispetto ad F (ovvero, una istanza r di (R,F) si dice legale) se r soddisfa F,

cioè se r soddisfa tutte le dipendenze funzionali in F.

129

Matilde Simonini Ingegneria Informatica anno 2022/2023

Una dipendenza funzionale f si dice logicamente implicata da F se ogni istanza legale di R che soddisfa

tutte le dipendenze funzionali in F soddisfa anche f.

Se F è un insieme di dipendenze funzionali, allora l’insieme delle dipendenze funzionali logicamente implicate da F

+

si indica con F , e si chiama la chiusura di F.

delle ulteriori dipendenze funzionali, quelle implicate, all’insieme base delle

Sostanzialmente si aggiungono

dipendenze. Quando non riesco più ad estendere F allora ho raggiunto la chiusura di F.

Regole di inferenza di Armstrong +

Dato F, come possiamo calcolare F , cioè tutte le dipendenze funzionali logicamente implicate da F?

Mediante le regole di inferenza di Armstrong:

 →

1. Riflessività: Se Y X, allora X Y (dipendenza banale)

→ →

2. Aggiunta: Se X Y, allora X Z Y Z, per qualunque Z

→ → →

3. Transitività: Se X Y e Y Z, allora X Z

Dove X,Y,Z sono sottoinsiemi di U.

Forma normale di Boyce e Codd (BCNF) →

Una relazione r è in forma normale di Boyce e Codd se, per ogni dipendenza funzionale (non banale) X Y

definita su di essa, X contiene una chiave K di r.

Se viene rispettata da una relazione, ci assicura che questa non presenti nessuna delle anomalie vista in

precedenza. Cosa possiamo fare se una relazione non soddisfa la BCNF?

La sostituiamo con altre relazioni che soddisfano la BCNF:

Decomponendo sulla base delle dipendenze funzionali, al fine di separare i concetti.

La relazione originale viene quindi sostituita da relazioni più piccole (con meno colonne), una per ogni concetto,

ottenute tramite proiezioni sugli attributi delle dip. funzionali.

Esempio

Si tratta delle tre relazioni che si ottengono dall’esempio fatto all’inizio del paragrafo.

Si nota che tali relazioni risultano normalizzate non presentano anomalie.

Le tre dipendenze funzionali evidenziate in precedenza si sono distribuite sulle nuove relazioni create.

Tuttavia, non è sempre così facile ↓↓

Ci sono alcune relazioni che sono ingarbugliate. Se si applica la normalizzazione di Boyce e Codd non si

ottiene comunque una buona relazione. 130

Matilde Simonini Ingegneria Informatica anno 2022/2023

Il significato di tale relazione è che sia l’impiegato che il progetto è legato ad una sede particolare.

Tali dipendenze funzionali sono rispettate dalla relazione.

Non è in forma normale di Boyce e Codd.

Compaiono le anomalie viste prime.

Tentiamo di operare nello stesso modo fatto in precedenza:

Le due relazioni sono in forma normale di Boyce-Codd. Le due dipendenze funzionali si sono ridistribuite

sulle due nuove relazioni. di strano. L’unica

Si noti però che se facciamo il join fra le due relazioni ottenute accade qualcosa

è l’unica

informazione comune alle due relazioni è la Sede, che ci consente di fare il join:

Le ultime due righe non sono presenti nella relazione di partenza!!

Tali tuple prendono nome di tuple spurie.

Questo vuol dire che la decomposizione messa in atto non va bene.

Di seguito formalizziamo tale problema: decomposizione con perdita.

Decomposizione senza perdita 

Una relazione r su X si decompone senza perdita su X e X (con X= X X ) se il join delle due proiezioni è

1 2 1 2

uguale a r stessa cioè non c

Dettagli
A.A. 2022-2023
146 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher matilde simonini 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 Brescia o del prof Rula Anisa.