• Non ci sono risultati.

Teoria delle dipendenze

N/A
N/A
Protected

Academic year: 2021

Condividi "Teoria delle dipendenze"

Copied!
33
0
0

Testo completo

(1)

Fondamenti di Teoria delle

Basi di Dati

Parte 8: Teoria delle dipendenze

(2)

Vincoli di integrità

„ Esistono istanze di basi di dati che, pur

sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse

(3)

Una base di dati "scorretta"

Studente Voto Lode Corso

32 01 276545 276545 30 e lode 02 787643 27 e lode 03 739430 24 04 Esami Matricola 276545 787643 787643 Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti 787643 787643 27 e lode

(4)

Vincolo di integrità

„ Proprietà che deve essere soddisfatta dalle

istanze che rappresentano informazioni corrette per l’applicazione

„ Un vincolo è una funzione booleana (un

predicato)

(5)

Tipi di vincoli

„ vincoli intrarelazionali

„ vincoli su valori (o di dominio) „ vincoli di tupla

(6)

Vincoli di tupla

„ Esprimono condizioni sui valori di ciascuna tupla,

indipendentemente dalle altre tuple

„ Caso particolare:

(7)

Sintassi ed esempi

„ Una possibile sintassi:

„ espressione booleana di atomi che confrontano valori di

attributo o espressioni aritmetiche su di essi

(Voto ≥ 18) AND (Voto ≤ 30)

(8)

Vincoli di tupla, altro esempio

Impiegato Rossi Neri Bruni Stipendi Lordo 55.000 45.000 47.000 Netto 42.500 35.000 36.000 Ritenute 12.500 10.000 11.000

(9)

Identificazione delle tuple

„ non ci sono due tuple con lo stesso valore sull’attributo

Matricola

„ non ci sono due tuple uguali su tutti e tre gli attributi

Cognome, Nome e Data di Nascita

Matricola 27655 78763 65432 Nome Mario Piero Mario 87654 67653 Mario Cognome Rossi Neri Neri Rossi Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 3/11/76 5/12/78

(10)

Chiave

„ Insieme di attributi che identificano le tuple di

una relazione

„ Formalmente:

„ un insieme K di attributi è superchiave per r se r

non contiene due tuple distinte t1 e t2 con t1[K] = t2[K]

„ K è chiave per r se è una superchiave minimale

(11)

Una chiave

„ Matricola, Cognome è una superchiave

„ Matricola è una chiave:

„ è superchiave

„ contiene un solo attributo e quindi è minimale

Matricola 27655 78763 65432 Nome Mario Piero Mario 87654 67653 Mario Cognome Rossi Neri Neri Rossi Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 3/11/76 5/12/78

(12)

Vincoli, schemi e istanze

„ i vincoli corrispondono a proprietà del mondo reale

modellato dalla base di dati

„ interessano a livello di schema (con riferimento cioè a

tutte le istanze)

„ ad uno schema associamo un insieme di vincoli e

consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli

(13)

Dipendenza funzionale

„ relazione r su R(X)

„ due sottoinsiemi non vuoti Y e Z di X

„ esiste in r una dipendenza funzionale (FD) da Y a

Z (in simboli Y→Z) se, per ogni coppia di ennuple

t1 e t2 di r con gli stessi valori su Y, risulta che t1 e

(14)

Esempio

→ Stipendio

Impiegato Stipendio Progetto Bilancio Funzione

Rossi 20 Marte 2 tecnico

Verdi 35 Giove 15 progettista Verdi 35 Venere 15 progettista

Neri 55 Venere 15 direttore Neri 55 Giove 15 consulente

Neri 55 Marte 2 consulente

Mori 48 Marte 2 direttore

Mori 48 Venere 15 progettista Bianchi 48 Venere 15 progettista Bianchi 48 Giove 15 direttore

(15)

Integrità referenziale

„ informazioni in relazioni diverse sono correlate

attraverso valori comuni in particolare, valori delle chiavi (primarie)

„ le correlazioni debbono essere "coerenti“

„ Un vincolo di integrità referenziale (“foreign key”)

fra gli attributi X di una relazione R1 e un’altra

relazione R2 impone ai valori su X in R1 di

(16)

Matricola 3987 3295

Vigili

Cognome Rossi Neri Nome Luca Piero

Infrazioni

Codice 34321 73321 64521 53524 Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 3295 9345 Prov Numero MI TO PR PR 39548K E39548 839548 839548 3295 3295 3987 3987 9345 3987 9345 3295 3295 3295

(17)

Auto

Prov Numero MI TO 39548K E39548 Cognome Rossi Rossi Nome Mario Mario

Infrazioni

Codice 34321 73321 64521 53524 Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 3295 9345 Prov Numero MI TO PR PR 39548K E39548 839548 839548 MI TO PR PR 39548K E39548 839548 839548 MI TO 39548K E39548

(18)

Infrazioni

Codice 34321 73321 64521 53524 Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 3295 9345 Prov Numero MI TO PR PR 39548K E39548 839548 839548

Auto

Prov Numero MI E39548 Cognome Rossi Nome Mario TO E39548 E39548

(19)

Azioni compensative

„ Esempio:

„ Viene eliminata una tupla causando una violazione

„ Comportamento “standard”:

„ Rifiuto dell'operazione

„ Azioni compensative:

„ Eliminazione in cascata „ Introduzione di valori nulli

(20)

Eliminazione in cascata

Impiegati

Matricola 34321 64521 53524 Cognome Rossi Neri Verdi Progetto IDEA XYZ NULL 73032 Bianchi IDEA

Progetti

Codice IDEA XYZ Inizio 01/2000 07/2001 Durata 36 24 Costo 200 120 XYZ 07/2001 24 120 XYZ 07/2001 24 120 XYZ 07/2001 24 120 53524 Neri XYZ

(21)

Introduzione di valori nulli

Impiegati

Matricola 34321 64521 53524 Cognome Rossi Neri Verdi Progetto IDEA XYZ NULL 73032 Bianchi IDEA

Progetti

Codice IDEA BOH XYZ Inizio 01/2000 07/2001 09/2001 Durata 36 24 24 Costo 200 120 150 XYZ 07/2001 24 120 XYZ 07/2001 24 120 XYZ 07/2001 24 120 NULL

(22)

Implicazione di vincoli

„ Un insieme di vincoli Γ implica un vincolo γ se

ogni istanza che soddisfa Γ soddisfa anche γ

„ L’insieme { Impiegato → Livello, Livello → Stipendio }

implica il vincolo Impiegato → Stipendio

„ La chiusura Γ+ di un insieme di vincoli Γ è

l’insieme di tutti i vincoli implicati da Γ.

„ Γ+ = { γ | Γ implica γ }

„ Proprietà:

„ Γ ⊆ Γ+

(23)

Equivalenza e ridondanza di insiemi di vincoli

„ Γ1 è equivalente a Γ2 se Γ1+ = Γ2+ (si dice anche

che Γ1 è una copertura di Γ2)

„ Lemma Γ1 + = Γ2 + sse Γ1 implica ogni vincolo di Γ2

e Γ2 implica ogni vincolo di Γ1

„ Un vincolo γ è ridondante in Γ se Γ+ = (Γ - {γ})+ „ Un insieme di vincoli Γ è ridondante se esiste γ

ridondante in Γ

„ Lemma γ è ridondante in Γ sse Γ - {γ} implica γ

(24)

Esempi con riferimento alle dip. funzionali

„ F1 = {A → B, AB → C, A → C} „ F2 = {A → B, AB → C} „ F3 = {A → B, A → C} „ F1 è ridondante „ perché { A → B, AB → C } implica A → C „ F1 è equivalente a F2 „ F2 è equivalente a F3

(25)

Approccio assiomatico

„ Si definisce un insieme di regole di inferenza

(proof system) che consentono di generare tutte (completezza) e solo (correttezza) le dipendenze implicate da un insieme dato.

„ Per le FD si può dimostrare che le tre regole:

„ Y ⊆ X ⇒ X → Y (trivial)

„ X → Y ⇒ XZ → YZ (augmentation) „ X → Y e Y → Z ⇒ X → Z (transitivity)

„ forniscono un insieme corretto e completo

Armstrong (1974)

(26)

Chiusura di un insieme di attributi

„ Approccio alternativo al problema dell’implicaz.

„ Siano dati uno schema di relazione R(U) e un

insieme di dipendenze funzionali F definite sugli attributi in U. Sia X un insieme di attributi

contenuti in U (cioè X ⊆ U);

„ La chiusura di X rispetto a F, indicata con X+F , è

l’insieme degli attributi che dipendono funzionalmente da X (esplicitamente o implicitamente):

„ X+F = { A | A ⊆ U e F implica X → A }

(27)

Algoritmo di chiusura

„ Input: un insieme X di attributi e un insieme F di

dipendenze

„ Output: un insieme XP di attributi

1) Inizializziamo XP con l’insieme di input X

2) Esaminiamo le dipendenze in F; se esiste una

dipendenza Y → Z con Y ⊆ XP e Z non

contenuto in XP allora aggiungiamo gli attributi di

Z a XP.

3) Ripetiamo il passo 2 fino al momento in cui non

(28)

Esempi

R(Impiegato,Stipendio,Progetto,Bilancio,Funzione)

Impiegato → Stipendio

Progetto → Bilancio

Impiegato Progetto → Funzione

„ IP+ = ISPBF

„ I+ = IS

(29)

Dimostrazione di correttezza

Teorema Sia X un insieme di attributi ed F un insieme di

dipendenze su attributi in X. Al termine della esecuzione dell’algoritmo risulta XP = X+

(30)
(31)
(32)

Applicazione dell’algoritmo di chiusura

„ L’algoritmo può essere utilizzato per verificare se

un insieme di attributi è chiave

„ Lemma Siano dati uno schema di relazione R(U)

e un insieme di dipendenze funzionali F definite sugli attributi in U. Sia K un insieme di attributi contenuti in U (cioè K ⊆ U):

„ K è superchiave per R sse K+ = U

„ K è chiave per R sse per ogni attributo A ∈ K risulta

(33)

Esempio

R(Impiegato,Stipendio,Progetto,Bilancio,Funzione)

Impiegato → Stipendio

Progetto → Bilancio

Impiegato Progetto → Funzione

„ IPB+ = ISPBF

„ quindi IPB è superchiave per R

„ IP+ = ISPBF

„ anche IP è superchiave per R

Riferimenti

Documenti correlati

(specificare il tipo di vincolo e allegare copia dell’istanza presentata alla competente autorità per il rilascio dell’autorizzazione ai sensi

Parte della dottrina ha ritenuto conferibili in fondo patrimoniale le quote di partecipazione in una società a responsabilità limitata, riconducendo tali beni alla categoria dei

• Vendita di 49 strutture ospedaliere mettendo a carico della regioni affitto e manutenzione ( senza nessun miglioramento del rating delle varie agenzie

Collocare l’antenna in posizione centrale ha posto un problema nuovo di natura estetica: rispetto alla soluzione con due antenne, adesso questo elemento verticale

acquisto di macchine agricole, mezzi di trasporto, macchinari, impianti tecnologici o attrezzature per razionalizzare i mezzi di produzione aziendale, ridurre i costi di

“Figli” associati viene impostata a NULL(ovviamente se non ho specificato il vincolo che debba essere NOT NULL). Esempio: se cancello un cliente, l' id_cliente degli

La Misura riguarda le indennità per le zone soggette a vincoli naturali o ad altri vincoli specifici e mira a compensare gli agricoltori degli svantaggi a cui la produzione agricola

Tale compensazione consente agli agricoltori di proseguire nell’uso dei terreni agricoli, nella manutenzione del pae- saggio nonché nel mantenimento e nella promozione di sistemi