



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Estrema sintesi appunti Basi di dati
Tipologia: Appunti
Caricato il 03/09/2020
1 documento
1 / 5
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Il modello relazionale è basato sui valori e presenta diversi vantaggi nel suo utilizzo:
Una chiave è un insieme di attributi che serve ad identificare in modo univoco le tuple di una relazione. Formalmente valgono le seguenti due:
Incorriamo in ridondanza, anomalie di aggiornamento, anomalie di cancellazione e anomalie di inserimento se stiamo utilizzando un’unica relazione per rappresentare informazioni eterogenee. È possibile che alcuni dati debbano essere ripetuti in diverse tuple, senza aggiungere informazioni significative. Se alcune informazioni sono ripetute in modo ridondante il relativo aggiornamento deve essere ripetuto per ciascuna occorrenza dei relativi dati. La cancellazione di una tupla può comportare l’eliminazione di tutti i concetti in questione (non è può valido l’insieme dei concetti). L’inserimento di informazioni relative ad uno solo dei concetti di pertinenza per una relazione non è possibili se non esiste un intero insieme di concetti in grado di costituire una tupla completa. Dipendenza funzionale: particolare vincolo di integrità che descrive legami di tipo funzionale tra gli attributi di una relazione. Data una relazione r su uno schema R(X) e due sottoinsiemi di attributi non vuoti Y e Z di X, diremo che esiste su r una dipendenza funzionale tra Y e Z se per ogni coppia di tuple t1 e t2 di r aventi gli stessi valori sugli attributi di Y, risulta che t1 e t2 hanno gli stessi valori anche su Z. Se prendiamo una chiave K di una relazione r si può verificare che esiste una dipendenza funzionale tra K e ogni altro attributo dello schema r. Il vincolo di dipendenza funzionale generalizza il vincolo di chiave. Una dipendenza funzionale Y - > Z su uno schema R(X) degenera nel vincolo di chiave se l’unione di Y e Z è pari a X quindi se Y è una (super)chiave per R(X). Le ridondanze e le anomalie sono causate dalle dipendenza funzionali X - > A che permettono la presenza di più tuple tra loro uguali sugli attributi di X, cioè sono causate dalle dipendenze funzionali X - > A tali che X non contiene una chiave. Una relazione r è in forma normale di Boyce – Codd se per ogni dipendenza funzionale non banale X - > A definita su di essa, X contiene una chiave K di r, cioè X è una superchiave per r. Decomposizione: se una relazione rappresenta più concetti indipendenti allora va decomposta in relazioni più piccole, una per ogni concetto. Decomposizione senza perdita (lossless): data una relazione r su un insieme di attributi X, se X1 e X2 sono due sottoinsiemi di X, la cui unione sia pari a X stesso, allora il join delle due relazioni ottenuto per proiezione da r su X1 e X2 rispettivamente, è una relazione che contiene tutte le tuple di r più eventualmente altre che possiamo chiamare “spurie”. Diremo che r si decompone senza perdita su X1 e X2 se, il join delle due proiezioni è uguale a r stessa, cioè se non contiene spurie. Condizione sufficiente ma non strettamente necessaria: sia r una relazione su X e siano X1 e X2 sottoinsiemi di X per cui X1 U X2 = X e sia Xo = X1 ꓵ X2; r si decompone senza perdita su X1 e X2 se soddisfa la dipendenza funzionale Xo - > X1 oppure la dipendenza funzionale Xo - > X2. Dunque, r si decompone senza perdita su due relazioni se l’insieme degli attributi comuni alle due relazioni è chiave per almeno una delle relazioni decomposte.
Ogni volta che decomponiamo una relazione in due parti, se l’insieme degli attributi comuni è chiave per una delle due relazioni allora possiamo essere certi che tutte le istanze della relazione si decompongano senza perdita. Conservazione delle dipendenze: in ogni decomposizione ciascuna delle dipendenze funzionali dello schema originario dovrebbe coinvolgere attributi che compaiono tutti insieme in uno degli schemi decomposti. Ciò significa garantire sullo schema decomposto il soddisfacimento degli stessi vincoli, il cui soddisfacimento è garantito dallo schema originario. Se tale proprietà è soddisfatta allora garantiamo la conservazione delle dipendenze dello schema originario. RECAP: le decomposizioni devono sempre soddisfare le proprietà di decomposizione senza perdita e conservazione delle dipendenze. Decomposizione senza perdita: garantisce che le informazioni nella relazione originaria siano visualizzabili con precisione a partire da quelle rappresentate nelle relazioni decomposte. Questo significa che interrogando le relazioni decomposte otteniamo gli stessi risultati che otterremmo interrogando la relazione originaria. Conservazione delle dipendenze: le relazioni decomposte hanno la stessa capacità della relazione originaria di rappresentare vincoli di integrità e quindi di rilevare aggiornamenti illeciti. Sono dunque possibili ulteriori aggiornamenti sulle relazioni decomposte, legati ai singoli concetti rappresentati da ciascuna di esse che, non hanno un corrispettivo sulla relazione originaria, senza però corrispondere a violazioni di vincoli.