↔ Introduzione ↔
Una base di dati è un un insieme organizzato di dati utilizzati per il supporto allo svolgimento delle
attività di un ente. Questo insieme di dati viene gestito da un DBMS.
Un DataBase Menagement System (DBMS) è :
Sistema che gestisce collezioni di dati :
• Grandi : il limite alla grandezza dei dati è limitato da quello fisico dei calcolatori ;
• Persistenti : hanno un tempo di vita indipendente dai programmi che le utilizzano ;
• Condivise : ogni settore dell'azienda deve poter accedere alle informazione di cui
• necessità ;
Devono garantire :
• Privatezza : meccanismi di autenticazione ;
• Controllo della concorrenza ;
• Affidabilità : resistenza a malfunzionamenti hardware e software, tramite anche un
• meccanismo fondamentale chiamato transazione.
Efficienza : rapidità e quantità di memoria
• Efficacia : quanto il DBMS semplifica la vita alle applicazioni e agli utenti che vogliono
• accedere ai dati.
Problemi :
• Ridondanza : informazioni ripetute.
• Rischio di incoerenza : versioni che non coincidono.
•
Una transazione su una base dati è un insieme di operazioni da considerare indivisibile, corretto
anche in presenza di concorrenza con effetti definitivi. Regole delle transazioni :
La sequenza di operazioni di una transazione o viene eseguita per intero o non viene
• eseguita affatto.
L'effetto di transazioni concorrente deve essere coerente.
• Le transazioni devono essere permanenti, ossia, se concluse positivamente, devono
• mantenere traccia del loro risultato anche in presenza di guasti.
DBMS vs File System
Entrambi offrono la gestione di grandi quantità di dati persistenti.
• Anche i file system offrono forme rudimentali di condivisione : o tutto o niente.
• I DBMS offrono la stessa funzionalità dei file system fornendo più servizi.
• Nei programmi tradizionali che accedono ad un file, ogni programma ha la descrizione del
• file stesso, questo può portare a incoerenze tra programmi e file stessi.
Nel DBMS esiste invece una porzione dello stesso che mantiene una descrizione
• centralizzata della descrizione dei dati che contiene, la quale può essere utilizzata dai vari
programmi.
Nei DBMS i dati vengono rappresentati su diversi livelli, questo permette l'indipendenza dei dati
dalla rappresentazione fisica, e comporta la possibilità di modificare la struttura sottostante senza
modificare i programmi che vi accedono.
Modello di dati (Esempio : modello di relazione) :
Insieme di costrutti utilizzati per organizzare i dati di interesse e descriverne la dinamica.
• Meccanismi di strutturazione.
• Possibilità di definire nuovi tipi.
•
In ogni base di dati esistono :
Lo scema : ne descrive la struttura (sostanzialmente invariante nel tempo).
• L'istanza dei valori attuali : dati possono cambiare anche molto rapidamente.
•
Ci sono due tipi principali di modelli :
Modelli logici :
• vengono adottati nei DBMS esistenti per l'organizzazione dei dati, sono utilizzati dai
programmi e sono indipendenti dalle strutture fisiche.
Ad esempio il modello relazionale, reticolare, gerarchico e ad oggetti.
Modelli concettuali :
• permettono di rappresentare i dati in maniera indipendente da ogni sistema, cercano di
descrivere i concetti del mondo reale, e vengono usati nelle fasi preliminari di progettazione,
un esempio di questo modello è l'EntityRelationship.
Un DBMS è diviso in più livelli :
Schema Logico :
• descrizione della base di dati nel modello logico.
Schema Interno, o fisico :
• rappresentazione dello schema logico mediante strutture di memorizzazione.
Schema Esterno :
• descrizione di una parte della base di dati in un modello logico, viste, indipendenti dal
modello logico.
Il livello logico è indipendente da quello fisico, la tabella viene utilizzata indipendentemente dalla
sua memorizzazione fisica.
A causa dell'articolazione su livello l'accesso ai dati avviene solamente tramite il modello esterno,
questo porta a due tipi di indipendenza dei dati :
Indipendenza Fisica :
• il livello logico e quello esterno sono indipendenti da quello fisico, una relazione viene
quindi utilizzata indipendentemente da come è salvata in memoria, oltretutto la relazione
fisica può cambiare senza che i programmi debbano cambiare il modo con il quale accedono
al DBMS.
Indipendenza Logica :
• il livello esterno è indipendente da quello logico, aggiungere o modificare viste non
comporta cambiamenti nel modello logico, e modifiche allo schema logico lasciano
inalterate le viste.
Linguaggi che interagiscono con la base di dati:
DML (Data Manipulation Language) :
• usato per l'interrogazione e l'aggiornamento di istanze di basi si dati.
DDL (Data Definition Language) :
• per la definizioni di schemi e altre operazioni generali.
Personaggi e interpreti :
Progettisti e realizzatori di DBMS.
• Progettisti della base di dati e amministratori della base di dati (DBA).
• Progettisti e programmatori di applicazioni.
• Utenti :
• Utenti finali : eseguono applicazioni predefinite (transazioni).
• Utenti casuali: eseguono operazioni non previste a priori, usando linguaggi
• interattivi.
Vantaggi e svantaggi del DBMS :
Pro :
• Base di dati come modello della realtà.
• Gestione centralizzata con possibilità di standardizzazione.
• Disponibilità di servizi integrati.
• Riduzione di ridondanze e inconsistenze.
• Indipendenza dei dati.
•
Contro :
• Costo.
• Riduzione di efficienza.
• ↔ Modello Relazionale ↔
Caratteristiche dei modelli logici :
Gerarchico e Reticolare :
• utilizza riferimenti espliciti (puntatori) tra i diversi record.
Relazionale :
• è basato sui valori, i riferimenti tra i dati in strutture (relazione) diverse sono rappresentati
per mezzo dei valori stessi.
Siano (n insiemi anche non distinti) :
1,−,Dn
Prodotto Cartesiano
• D1×…×Dn
è l'insieme di tutte le nuple tali che .
(1,−,dn) d1∈D1,…,dn∈Dn
Relazione Matematica su
• 1,−,Dn
è un sottoinsieme di .
D1×…×Dn
Sono i domini della relazione.
• 1,−,Dn
Un relazione matematica è un insieme di nuple ordinate tali che , una
(1,−,dn) d1∈D1,…,dn∈Dn
relazione è quini un insieme. Le nuple sono distinte e ordinate,
l'iesimo valore proviene dall'iesimo dominio. Se ad un dominio si assegna un nome (attributo) per
descriverne il ruolo, riusciamo ad avere nuple il cui ordine è indifferente.
Una tabella rappresenta una relazione, i valori di ogni colonna sono tra loro omogenei, le righe sono
diverse tra loro. In una tabella l'ordine delle righe e delle colonne è indifferente.
I riferimenti tra dati in relazioni diverse sono dati da domini che compaiono nelle nuple.
Vantaggi della struttura basata su valori :
Indipendenza dalle strutture fisiche.
• Si rappresenta solo ciò che è rilevante da un punto di vista dell'applicazione.
• L'utente finale vede gli stessi dati del programmatore.
• I dati sono facilmente trasferibili tra diversi sistemi.
• I puntatori sono direzionali.
•
→ Schema di relazione :
è costituito da un simbolo R detto nome della relazione e da un insieme di
attributi ciascuno con un nome distinto : ;
X={1,−,An} R(1,−,An)
→ Schema di base di dati :
insieme di schemi di relazioni : ;
R={1(X1),…,k(Xk)}
→ Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X
un valore del dominio di A. denota il valore dell'ennupla t sull'attributo A.
t[A]
→ Istanza di :
relazione su uno schema :
• R(X)
insieme r di ennuple su X ;
base di dati su uno schema :
• R={1(X1),…,k(Xk)}
insieme di relazioni (con
relazione su
).
r={r1,...,rn} ri Ri
Il modello relazionale impone ai dati una struttura rigida, le informazioni sono rappresentate per
mezzo di ennuple, e solo alcuni formati di queste sono ammessi, i dati disponibili possono non
corrispondere a questo formato.
Quando siamo in presenza di una informazione incompleta è possibile sostituirla con un valore
nullo, che denoti l'assenza del valore, quindi per ogni attributo A è un valore del
t[A]
dominio o un valore nullo detto NULL.
dom(A)
Naturalmente è necessario imporre delle restrizioni all'utilizzo di tale valore.
Tale valore può essere usato almeno in tre casi :
Valore sconosciuto.
• Valore inesistente.
• Valore senza informazione.
•
naturalmente i DBMS non riesco a distinguere questi tre casi.
→ Vincoli di integrità
esistono istanza di basi di dati che pur sintatticamente corrette non rappresentano informazioni
possibili per l'applicazione di interesse.
Un vincolo è una proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni
corrette per l'applicazione, nella pratica è una funzione booleana che associa ad ogni istanza il
valore di vero o falso.
I vincoli di integrità nascono per avere una descrizione più accurata della realtà, per un contributo
alla qualità dei dati, sono utili nella progettazione e sono usati dal DBMS nell'esecuzione delle
interrogazioni. Non tutte le proprietà di interesse sono rappresentabili per mezzo di vincoli
formulabili.
Tipi di vincoli :
Vincoli intrarelazionali :
• vincoli su valori (o di dominio) ;
• vincoli di ennupla :
• Esprimono condizioni sui valori di ciascuna ennupla indipendentemente dalla altre.
• Il vincolo di dominio, un caso particolare del vincolo di ennupla che coinvolge un
• solo valore.
vincoli interrelazionali
•
i vincoli possono essere espressi come espressioni booleane atomiche che confrontano valori di un
attributo o espressioni aritmetiche su di essi.
I vincoli
corrispondono a proprietà nel mondo reale modellato dalla base di dati.
• interessano a livello di schema, ad uno schema viene associato un insieme di vincoli e
• vengono considerate corrette le istanze che rispettano tale insieme di vincoli.
per puro caso un'istanza può soddisfare anche altri vincoli non definiti.
•
Chiavi Insieme di attributi che identificano le ennuple di una relazione.
• Formalmente :
• Un insieme K di attributi è superchiave per r se r non contiene due ennuple
• distinte con ;
t1et2 1[K]=t2[K]
Un insieme K è chiave per r se è una superchiave minimale per r (ossia non contiene
• un'altra superchiave);
Chiavi :
Una relazione non può contenere ennuple distinte ma uguali.
• Ogni relazione ha come superchiave l'insieme degli attributi su cui è definita.
• E quindi ha almeno una chiave.
• L'esistenza delle chiavi garantisce l'accessibilità a ciascun dato.
• Le chiavi permettono di correlare dati in relazioni diverse, dato che il modello relazionale è
• basato sui valori.
In presenza di valori nulli, i valori della chiave non permettono :
• Di identificare le ennuple.
• Di realizzare facilmente i riferimenti da altre relazioni.
•
Una chiave primaria è una chiave sulla quale non sono ammessi valori nulli (viene
• sottolineata per distinguerla).
→ Integrità referenziale
Informazioni in relazioni diverse sono correlate attraverso valori comuni, definiti nelle chiavi
primarie, le correlazioni devono essere coerenti.
Vincolo di Integrità Referenziale :
Un vincolo di integrità referenziale fra gli attributi X di una relazione e un'altra
• R1
relazione impone ai valori su X in di comparire come valori della chiave primaria di .
R2 R1 R2
Note :
• Giocano un ruolo fondamentale nel concetto di modello basato sui valori.
• In presenza di valori nulli i vincoli sono molto restrittivi.
• Son possibili meccanismi per il supporto alla loro gestione.
• Bisogna stare attenti ai vincoli su più attributi.
•
Esempi di azioni compensative nel caso dell'eliminazione di una ennupla :
• Rifiuto dell'operazione.
• Eliminazione in cascata.
• Introduzione di valori nulli.
•
Possono esistere vincoli multipli su più attributi, l'ordine di tali vincoli è importante.
• ↔ Algebra Relazionale ↔
→ Linguaggi per Basi di Dati
Per le operazioni sullo schema viene usato il DDL (Data Definition Language).
Per le operazioni sui dati viene usato il DML(Data Manipulation Language).
Ci sono due tipi di linguaggi per l'interrogazione per basi di dati relazionali :
Dichiarativi : specificano le proprietà del risultato ;
• Procedurali : specificano le modalità di generazione del risultato.
•
Esempi di linguaggi di interrogazione sono :
Algebra relazionale : procedurale.
• Calcolo relazionale : dichiarativo teorico.
• SQL (Structured Query Language) : parzialmente dichiarativo (reale).
• QBE(Query by Example) : dichiarativo (reale).
•
L'algebra relazionale è costituita da un insieme di operatori su relazioni che come risultato
producono relazioni, tali operazioni possono essere combinate insieme per formulare interrogazioni
più complesse.
Operatori:
Insiemistici :
• Unione.
• Intersezione
• differenza.
•
Monadici :
• Ridenominaizone.
• Selezione.
• Proiezione.
•
Join :
• Join Naturale.
• Prodotto Cartesiano.
• Join Destro e Sinistro
• ThetaJoin.
• → Operatori Insiemistici ←
Le relazioni sono insiemi, i risultati debbono essere insiemi, ed è possibili eseguire le operazioni di
unione, intersezione e differenze solo su relazioni definite sugli stessi attributi.
Unione :
• tra due insiemi definiti sullo stesso insieme di attributi X è indicata con , il
R1,R2 R1∪R2
risultato è una relazione su X contenente le nuple che appartengono a , a o ad entrambe.
R1
R2
Grado : è lo stesso delle due relazioni.
• Cardinalità : il minimo è quello del maggiore, il massimo è la somma, ossia
• .
MAX((R1),(R2))≤
(R1∪R2)≤
(R1)+(R2)
Intersezione :
• tra due insiemi definite sullo stesso insieme di attributi X è indicata con , il
R1,R2 R1∩R2
risultato è una relazione contenente le nuple che appartengono sia ad che ad .
R1 R2
Grado : è lo stesso delle due relazioni.
• Cardinalità : da un minimo di 0 ad un massimo costituito dal minimo della cardinalità
• dei due insiemi, ossia .
≤
0 (R1∩R2)≤
MIN((R1),(R2))
Differenza :
• tra due insiemi definiti sullo stesso insieme di attributi X è indicata con , il
R1,R2 R1−R2
risultato è una relazione su X contenente le nuple di che non appartengono ad ,
R1 R2
l'operazione non è commutativa.
Grado : è lo stesso delle due relazioni.
• Cardinalità : da un minimo di 0 ad un massimo pari alla cardinalità di ,
• R1
ossia .
≤
0 (R1−R2)≤
(R1) → Operatori Monadici ←
Ridenominazione :
• data una relazione R su un insieme di attributi X, la ridenominazione di in
si indica
⊆X
A A'
con . Nella pratica questo operatore cambia il nome di un attributo. Tramite questa
A'←A(R)
operazione non è possibile dare ad un nuovo attributo il nome di uno già esistente.
Grado : è lo stesso della relazione.
• cardinalità : è lo stesso della relazione.
•
Selezione :
• una condizione di selezione su un insieme di attributi X è una formula proposizionale su X
ottenuta combinando con i connettivi logici (AND, OR, NOT) condizioni atomiche, la si
indica con . Il risultato contiene le nuple che soddisfano la
condizione(operatore)
relazione. Tale operazione è sempre falsa se il campo coinvolto ha valore NULL, di
conseguenza è necessario introdurre gli operatori IS NULL e IS NOT NULL per poter
gestire anche questi casi.
Grado : è lo stesso della relazione.
• Cardinalità : da un minimo di 0 ad un massimo pari alla cardinalità dell'insieme iniziale,
• ossia .
≤
0 (F(R))≤
(R)
Proiezione :
• data una relazione ed un insieme la proiezione di R su Y si indica con ed è una
⊂X
R(X) Y Y(R)
relazione
definita su Y e contenente le nuple di R considerandone solo i valori su
R'
Y, .
Y(R)={t[Y]∣
t∈R}
Grado : .
≤
• 1 Grado(Y(R))≤
Grado(R)
Cardinalità : , alcune nuple possono scomparire se uguali, a meno che la
≤
• 1 (Y(R))≤
(R)
proiezione non sia su una superchiave.
→ Join ←
Il join è un operatore che combina dati contenuti in tabelle diverse, le righe del risultato del join
sono ottenute concatenando le tuple degli operandi dove il valore del camp
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Basi di dati, prof. Pietro Pala
-
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 2)…
-
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 1)…
-
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 3)…