Estratto del documento

↔ 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'Entity­Relationship.

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 n­uple​ tali che​ .

(1,−,dn)​ d1∈D1,…,dn∈Dn​

Relazione Matematica su​

• 1,−,Dn

è un sotto­insieme di​ .

D1×…×Dn​

Sono i domini della relazione.

• 1,−,Dn​

Un relazione matematica è un insieme di n­uple ordinate​ tali che​ , una

(1,−,dn)​ d1∈D1,…,dn∈Dn​

relazione è quini un insieme. Le n­uple sono distinte e ordinate,

l'i­esimo valore proviene dall'i­esimo dominio. Se ad un dominio si assegna un nome (attributo) per

descriverne il ruolo, riusciamo ad avere n­uple 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 n­uple.

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 è super­chiave per r se r non contiene due ennuple

• distinte​ con​ ;

t1et2​ 1[K]=t2[K]​

Un insieme K è chiave per r se è una super­chiave minimale per r (ossia non contiene

• un'altra super­chiave);

Chiavi :

Una relazione non può contenere ennuple distinte ma uguali.

• Ogni relazione ha come super­chiave 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

• Theta­Join.

• → 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 n­uple 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 n­uple 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 n­uple 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 n­uple 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 n­uple di R considerandone solo i valori su

R'​

Y,​ .

Y(R)={t[Y]∣

t∈R}​

Grado :​ .

• 1 Grado(Y(R))≤

Grado(R)​

Cardinalità :​ , alcune n­uple possono scomparire se uguali, a meno che la

• 1 (Y(R))≤

(R)​

proiezione non sia su una super­chiave.

→ 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

Anteprima
Vedrai una selezione di 18 pagine su 85
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 1 Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 2
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 6
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 11
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 16
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 21
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 26
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 31
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 36
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 41
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 46
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 51
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 56
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 61
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 66
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 71
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 76
Anteprima di 18 pagg. su 85.
Scarica il documento per vederlo tutto.
Appunti/Riassunto completo esame Basi Di Dati, Pietro Pala Pag. 81
1 su 85
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher unifi_student 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 Firenze o del prof Pala Pietro.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community