BASI DI DATI (teoria) • • • • • •
•
•
•
Sistema informaTIVO: organizza e gestisce le informazioni necessarie per perseguire gli scopi dell’organizzazione stessa. Sistema informaTICO: porzione automatizzata del sistema informativo. Informazione: notizia,dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere. Dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; elementi di informazione costituiti da simboli che debbono essere elaborati. Base di dati: collezione di dati, utilizzati per rappresentare le informazioni di interesse per un sistema informativo. DMBS: Sistema di gestione di basi di dati (software) in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, assicurando la loro affidabilità e privatezza. Un DBMS deve essere efficiente ed efficace. o Grandi: le bd possono avere dimensioni molto maggiori della memoria centrale disponibile. o Condivise: applicazioni e utenti diversi devono poter accedere a dati comuni(bd). o Persistenti: le bd hanno un tempo di vita che non è limitato a quello delle singole esecuzioni dei programmi che le utilizzano. o Affidabilità: capacità del sistema di conservare sostanzialmente intatto il contenuto della base di dati in caso di malfunzionamenti hw o sw. o Privatezza: ciascun utente, viene abilitato a svolgere solo determinate azioni sui dati. o Efficienza: capacità di svolgere le operazioni utilizzando un insieme di risorse che sia accettabile per gli utenti. o Efficacia: capacità di rendere produttive le attività dei suoi utenti. Relazione matematica: una relazione matimatica sugli insiemi D1 e D2 è un sottoinsieme di D1xD2. Il numero delle componenti (attributi) viene detto grado della relazione, mentre il numero delle n-uple viene detto cardinalità. Insieme di n-uple ordinate sulle colonne (non è possibile invertire l’ordine delle colonne); in compenso non è definito alcun ordinamento tra le n-uple e le stesse sono distinte una dall’altra. Relazione (nel modello relazionale): Non ha struttura posizionale (infatti assegnando un “nome” alle varie colonne è possibile scambiarle senza perdere il significato della base di dati), i nomi degli attributi devono essere diversi tra loro. Una funzione dom: X --> D, associa ad ogni attributo A X un dominio dom(A) D. Una tupla di attributi X è una funzione t che associa a ciascun attributo A X un valore del dominio dom(A). Una relazione su X è un insieme di tuple su X. Vincolo di integrità: proprietà che deve essere soddisfatta salle istanze che rappresentano le informazioni corrette per l’applicazione. Può essere visto come un predicato a cui si associa il valore booleano (true/false). o Vincolo INTRArelazionale: se il suo soddisfacimento è definito rispetto a singole relazioni della base di dati:
Vincolo di tupla: può essere valutato su ciascuna tupla, indipendentemente dalle altre.
Vincolo su valori: vincolo con riferimento a singoli valori. Vincolo di chiave: non ci possono essere valori identici per l’insieme di attributi che costituiscono la chiave: • Superchiave: un insieme K di attributi è superchiave di una relazione r se r non contiene tuple distinte t.c. t[K]=t’[K]. • Chiave: superchiave minimale di r.
o
Vincolo INTERrelazionale: se coinvolge più relazioni:
Vincolo di integrità referenziale: soddisfatto se i valori su X di ciascuna tupla dell’istanza R1(referente) compaiono come valori della chiave (primaria) dell’istanza R2(riferita). Unione: relazione su X contenente le tuple che appartengono a r1 oppure a r2. (relazioni con gli stessi attributi) Differenza: relazione su X contenentele tuple che appartengono a r1 e non appartengono a r2. (relazioni con gli stessi attributi) Intersezione: relazione su X contenente tuple che appartengono sia a r1 che a r2. (relazioni con gli stessi attributi) Ridenominazione: operatore che permette la ridenominazione degli attributi, lasciando invariati i valori presenti nelle tabelle. Selezione: Produce un sottoinsieme delle tuple, su tutti gli attributi (decomposizione orizzontale). Data una relazione r(X), una formula proposizionale F su X è una formula ottenuta combinando i connettivi logici e condizioni del tipo A θ B o A θ c dove:
• • • • •
• •
• •
Θ è un operatore di confronto; A e B sono attributi in X su cui valori il confronto θ abbia senso; C è una costante “compatibile” con il dominio di A.
Proiezione: insieme delle tuple su Y ottenute dalle tuple di r considerando solo i valori su Y, i contributi uguali collassano in una sola tupla. Join naturale: correla dati di relazioni diverse, sulla base di valori uguali in attributi con lo stesso nome. Il risultato è costituito da una relazione sull’unione degli insiemi attributi degli operandi e le sue tuple sono ottenute combinando le tuple degli operandi con valori uguali sugli attributi comuni. Join completi/incompleti: quando ciascuna tupla di ciascuno degli operandi contribuiscono ad almeno una tupla del risultato il join si dice completo. Join esterno: prevede che tutte le tuple diano un contributo al risultato, eventualmente estese con valori nulli ove non vi siano controparti opportune. (Sx estende solo il primo operando; Dx solo il secondo, Fullentrambe)
• •
•
Theta-join / Equi-join: prodotto cartesiano seguito da una selezione, se questa selezione è basata su una formula proposizionale di uguaglianza, si dice Equi-Join. Proprietà “ACIDE”: o Atomicità: una transazione è un’unità indivisibile di esecuzione, quindi, o vengono resi visibili tutti gli effetti della transazione, oppure questa non deve avere alcun effetto sulla base di dati. o Consistenza: l’esecuzione della transazione non deve violare i vincoli di integrità definiti sulla base di dati. o Isolamento: l’esecuzione di una transazione deve essere indipendente dalla contemporanea esecuzione di altre transazioni. o Persistenza(Durabilità): l’effetto di una transazione che ha seguito il commit non deve essere perso. Modello E-R: o Entita: Rappresentano classi di oggetti che hanno proprietà comuni ed esistenza “autonoma” ai fini dell’applicazione d’interesse. o Relazioni: Rappresentano legami logici, significativi per l’applicazione d’interesse, tra due o più entità. o Attributi: Descrivono le proprietà elementari di entità o relazioni che sono d’interese ai fini dell’applicazione. Un attributo associa a ciascuna occorrenza di entità (o relazione) un valore appartenente a un insieme detto dominio, che contiene i valori ammissibili per l’attributo.
•
View-serializzabilità: uno schedule è view-serializzabile se è view-equivalente ad uno schedule seriale. o ri(x) legge-da wj(x) in uno schedule S se wj(x) precede ri(x) in S e non c’è un wk(x) fra i due. o wj(x) in uno schedule S è scrittura finale se è l’ultima scrittura dell’oggetto x in S. o Schedule view-equivalenti hanno la stessa relazione legge-da e stesse scritture finali.
•
Conflict-serializzabilità: uno schedule è conflict-serializzabile se esiste uno schedule seriale conlict-equivalente ad esso. Uno schedule è in CSR se e solo se il suo grafo è aciclico. o Un’azione ai è in conflitto con un’azione aj se operano sullo stesso oggetto e almeno una di esse è una scrittura: Conflitto read-write (rw o wr); Conflitto write-write (ww); o Schedule conflict-equivalenti includono le stesse operazioni di conflitto e ogni coppia di operazioni(in conflitto) compare nello stesso ordine. B-tree: Albero in cui ogni nodo ha la seguente struttura: [p0(k1,r1)...pj-1(kj,rj)] dove:
•
o o
o
ri è un indirizzo al record chiave di ki; pi è un puntatore ad un figlio. Le chiavi ki in ogni nodo sono ordinate. Tutte le chiavi associate ad un figlio tramite il puntatore pi sono comprese strettamente tra ki e k(i+1) Fan-out: è l’ordine m del B-tree, questo implica ch l’albero abbia m puntatori ai figli e m-1 chiavi, per ogni nodo.