integrità dei dati

annuncio pubblicitario
Parte IV Introduzione alle basi di
dati
Elisabetta Ronchieri
Università di Ferrara
Dipartimento di Economia e Management
Insegnamento di Informatica
Dicembre 1 e 11, 2015
Elisabetta
Ronchieri IV
alle basialle
di datibasi di dati
Elisabetta
Ronchieri
IVIntroduzione
Introduzione
Argomenti
•
•
•
•
•
•
Sistema Informativo vs Automazione
Basi di dati
Modello relazionale
Operazioni sulle relazioni
SQL
Integrità
Elisabetta Ronchieri IV Introduzione alle basi di dati
Sistema Informativo
Elisabetta Ronchieri IV Introduzione alle basi di dati
Cosa è un sistema informativo
• E’ un sistema di gestione delle informazioni che sono
necessarie al funzionamento di una organizzazione.
– Con il termine organizzazione si intende un insieme di
uomini, strumenti, attività coordinate per il
raggiungimento di obiettivi comuni.
– Esempi di organizzazioni sono aziende, ospedali,
biblioteche, Università e studi professionali.
• Tra le attività di gestione si trovano:
– raccolta, registrazione, elaborazione, conservazione e
comunicazione.
• La sua esistenza è indipendente dalla sua automazione
visto che è presente da prima della invenzione dei
calcolatori.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Tipo di Informazione
• Il sistema informativo raccoglie informazioni di tipo
omogeneo.
– Il sistema informativo della Università contiene informazioni
relative agli studenti, docenti, aule, esami ed insegnamenti.
– Il sistema informativo di uno studio commerciale contiene
informazioni sui clienti, aziende, liberi professionisti e bilancio.
– Il sistema informativo di una grande azienda contiene
informazioni sui dipendenti, inventario, vendita, buste paga e
clienti.
• Tra diversi sistemi informativi possono esistere delle
correlazioni.
– Nel caso del sistema informativo della Università esistono
correlazioni tra insegnamenti e aule, insegnamenti e docenti.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Cosa è un sistema informatico
• E’ la parte del sistema informativo che viene automatizzata
tramite l’uso di tecnologie informatiche per migliorarne
l’efficienza.
– Gli strumenti informatici includono calcolatori, software di base,
software applicativi.
• Recupera informazioni di diversa complessità.
• Esempio:
– nel sistema informativo di un conservatorio è possibile
individuare le opere tradotte dal tedesco a partire da una certa
data.
– nel sistema informativo di una Università è possibile estrarre
informazioni statistiche sugli studenti che hanno passato il
primo appello di matematica, determinare quanti studenti si
sono iscritti e laureati in un certo anno.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Sistema informatico
• Rappresenta le informazioni tramite dati su archivi o file.
• Gestisce l’inserimento, la cancellazione, la modifica e il
reperimento dei dati su di un archivio (file).
• Interpreta i dati che rappresentano le informazioni.
• Un dato è ciò che è noto prima di ogni elaborazione:
– Mario e Rossi sono due dati che possono non significare niente senza
un’adeguata elaborazione.
• Un dato opportunamente interpretato fornisce la
informazione che consente di avere conoscenza, più o meno
esatta, di fatti, situazioni o modi di essere.
– Dicendo che il Signor Rossi si chiama Mario, arricchiamo la nostra
conoscenza interpretando i dati singoli Mario e Rossi.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Archivio di dati – File
• La informazione è memorizzata su file.
• Il file è logicamente organizzato in record e
campi:
– i campi contengono informazioni complesse, quali
nomi e indirizzi;
– i record contengono campi con informazioni correlate.
• Le operazioni previste sono:
– aggiunta o cancellazione di record;
– aggiornamento di campi in record esistenti;
– reperimento di campi e valori corrispondenti nei
record.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Campi e record
• I campi contengono informazioni di tipo diverso
quali numeri, testo, date.
– Sono le colonne del file dati.
• I record contengono le informazioni correlate.
– Sono le righe del file dati
CAMPO a
CAMPO b
Record 1
Dato 1
Dato 2
Record 2
Dato 3
Dato 4
Elisabetta Ronchieri IV Introduzione alle basi di dati
Svantaggi dell’archivio di dati
• Duplicazione dei dati.
– Se ogni programma usa propri file per memorizzare dati, questi
ultimi vengono replicati su più file.
• Inconsistenza dei dati.
– La duplicazione dei dati implica che gli aggiornamenti dei dati
stessi vengono registrati su tutti i file in cui sono replicati e
questo può non avvenire sempre uniformemente.
• Maggiore occupazione di memoria.
– A seguito della duplicazione.
• Difficoltà nella protezione dei dati.
– Non è possibile proteggere singoli campi o singoli record in
modo differenziato ma solo file interi.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Accesso al file
• Accesso sequenziale: il sistema informatico
legge il file sequenzialmente dall’inizio alla
fine come se le informazioni fossero scritte su
di una sola riga.
– Il file è detto sequenziale.
– La fine di un file sequenziale è detta EOF o End of
File o fine del file
– Esempio di file sequenziale: File audio e video, e
documenti di testo.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Accesso al file
• Accesso diretto o random: il sistema
informatico si posiziona in un record ben
determinato del file.
– Il record può essere ottenuto ricercando la
corrispondente chiave nell’indice del file.
• Il file è detto indicizzato.
• L’indice contiene un elenco di chiavi ciascuna delle quali
contiene l’indicazione di dove è archiviato il record.
• Esempio: Scheda dipendenti di una azienda.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Accesso al file
• Accesso diretto o random: il sistema informatico
si posiziona in un record ben determinato del file.
– Il record può essere ottenuto ricercando la posizione
direttamente nella chiave.
• Il file è detto hash.
• Lo spazio di memorizzazione dei dati è divisa in sezioni detta
bucket o secchio.
• Ciascuna sezione può contenere diversi record.
• La funzione hash converte i valori chiave in numero di bucket
in cui viene archiviato l’elemento.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Basi di dati o database
Elisabetta Ronchieri IV Introduzione alle basi di dati
Cosa si intende per base di dati o
database
• Definizione generica: è una collezione di dati
organizzata per reperire le informazioni necessarie
allo svolgimento delle attività di una organizzazione.
– Rientra nella definizione di sistema informativo.
• Definizione specifica: è una collezione di dati gestita
da un particolare software che prende il nome di
DataBase Management System (DBMS) o sistema di
gestione della base di dati.
– Rientra nella definizione di sistema informatico.
• Non tutti i sistemi informatici sono basi di dati.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Esempio di sistema informativo:
non base di dati
• Agenda telefonica su carta o calcolatore
– Archivio: specifica i cognomi e i numeri telefonici
con prefisso.
– Possibili difetti:
• è specificato al posto del cognome una diversa
informazione, come casa o comune.
• è specificato direttamente il numero di telefono senza
prefisso.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Esempio di sistema informativo:
non base di dati
• Due archivi gestiti da due uffici distinti della
stessa Università
– Archivio 1 è gestito dall’ufficio A: contiene l’orario
delle lezioni, l’aula in cui si svolgerà la lezione, il nome
del docente e l’insegnamento del docente.
– Archivio 2 è gestito dall’ufficio B: contiene l’orario di
ricevimento dei docenti, il nome del docente e
l’insegnamento del docente.
– Possibili difetti:
• Ridondanza delle informazioni (come l’insegnamento del
docente).
• Incoerenza delle informazioni (come riportare sui due archivi
un insegnamento diverso per lo stesso docente).
Elisabetta Ronchieri IV Introduzione alle basi di dati
Perchè serve una base di dati
• Ogni organizzazione è divisa in settori e svolge
diverse attività.
• Ogni settore ha un proprio sistema informativo,
come quello per i dipendenti, inventario, vendita,
buste paga e clienti.
• Possono esistere sovrapposizioni tra i dati di
interesse dei vari settori.
• E’ quindi necessario creare una risorsa di
informazione integrata e condivisa tra i vari
settori di un’organizzazione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Base di dati o database
• E’ un insieme di dati multidimensionali.
• Contiene collegamenti interni tra gli elementi che
permettono di accedere alle informazioni da diverse
prospettive.
• Struttura le informazioni in modo da:
– garantirne la qualità dei dati;
– consentirne interrogazioni efficienti.
• Si differenzia dal file di dati tradizionale per due ragioni:
1. i file memorizzano dati monodimensionali;
2. le informazioni contenute in un file sono presentate
in un solo modo.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Base di dati
• In un file tradizionale possiamo memorizzare
sequenzialmente una lista di opere ordinate
per autore.
• In una base di dati con le stesse informazioni
possiamo ottenere:
– i lavori di un dato musicista,
– i compositori che hanno scritto un certo tipo di
musica.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Base di dati
• Il sistema informativo orientato ai file ha le
applicazioni con i dati ridondati.
• Il sistema informativo orientato alla base di
dati ha le applicazioni che condividono i dati,
centralizzati e integrati, riducendo la
ridondanza e la possibilità di inconsistenze.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Caratteristiche qualificanti di un
database
•
•
•
•
•
Condivisione dei dati
Coerenza dei dati
Integrità
Affidabilità
Sicurezza
Elisabetta Ronchieri IV Introduzione alle basi di dati
Condivisione e coerenza dei dati
• Pemette:
– l'indipendenza dei dati dal software di gestione,
quindi il database può essere condiviso;
– l'accesso ai dati da parte di programmi applicativi
e utenti;
– di non duplicare i dati;
– di aggiornare i dati con un'unica operazione;
– di eliminare il pericolo di incoerenza tra i dati.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Integrità
• Il database contiene tendenzialmente solo
dati corretti.
• Il controllo centralizzato da parte del DBMS
facilita il rispetto di determinati vincoli.
• Nel caso si debba inserire la data va inserito il
controllo per esempio a livello:
– di giorno che non sia maggiore di 31;
– di mese che non sia maggiore di 12.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Affidabilità
• Nel database i dati restano intatti anche in caso di
malfunzionamenti di hardware e/o di software.
• Il DBMS periodicamente memorizza una copia
completa della base di dati (operazione di
backup).
• Il DBMS in caso di perdita o deterioramento dei
dati sostituisce la copia originale (operazione di
recovery):
– possono andare persi gli ultimi aggiornamenti.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Sicurezza
• Nel database possono essere previste
autorizzazioni di accesso ai dati differenziate:
– sola lettura;
– lettura e scrittura;
– possibilità di modifica o cancellazione.
• L'accesso può essere negato.
• L'accesso differenziato può interessare sia gli
utenti che devono accedere ma anche i dati
che compongono l'informazione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Base di dati
• Richiede:
– meccanismi di autorizzazione per la protezione dei
dati condivisi in modo che l'accesso avvenga solo
da parte di soggetti autorizzati e secondo modalità
prestabilite;
– meccanismi di controllo della concorrenza per la
gestione contemporanea dell'accesso ai dati
condivisi da parte di più soggetti.
• Una base di dati necessita di un particolare
sistema di gestione detto DBMS.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Livelli concettuali della
implementazione di una base di dati
• Un sistema di base di dati si compone di più
livelli software.
• I livelli principali sono due:
– Software applicativo: gestisce la comunicazione
con l’utente e non manipola direttamente la base
di dati.
– DBMS: gestisce la base di dati operando su di essa
in risposta alle richieste del software applicativo.
Elisabetta Ronchieri IV Introduzione alle basi di dati
DBMS
• E’ un software in grado di creare e gestire collezioni di
dati, ossia database o basi di dati.
• Consente di avere visioni diverse degli stessi dati in
base alle esigenze dell'utente che vi accede.
• Controlla l’accesso alla base di dati
• Supporta:
– database distribuito: un database distribuito su più
computer, nascondendo questo dettaglio implementativo
agli utenti.
– l’indipendenza dai dati: la capacità di cambiare
l'organizzazione di un database senza cambiare le
applicazioni software che la usano.
Elisabetta Ronchieri IV Introduzione alle basi di dati
DBMS
• Garantisce:
– dati consistenti e non ridondati: uno stesso dato non è mai
ripetuto più volte in un database e questo lo rende consistente;
il dato non può assumere valori differenti in punti differenti del
database stesso.
– privatezza dei dati: i vari utenti o programmi possono accedere
ai dati solo se in possesso di adeguate credenziali di accesso;
– integrità dei dati: il valore di un dato può essre vincolato nel suo
ambito di variazione e il DBSM controlla che non violi tali vincoli;
– accesso concorrente ai dati: quando due utenti o programmi
vogliono accedere allo stesso dato (per una modifica ad
esempio), il DBMS sequenzializza gli accesi in modo da
garantirne la certezza sul valore del dato in ogni istante.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Schemi, sottoschemi e istanze
• Uno schema descrive la struttura di un intero
database, usata dal DBMS per mantenere la base
di dati, sostanzialmente invariante nel tempo.
• Un sottoschema descrive una porzione della base
di dati relativa alle esigenze di una certa categoria
di utenti.
– Il sottoschema consente di evitare che dati sensibili
siano acceduti da persone non autorizzate.
• L'istanza o stato del database identifica la parte
variabile nel tempo, costituita dai valori effettivi
dei dati.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Schemi, sottoschemi e istanze
• Per rappresentare i corsi attivati e i docenti
relativi si può usare il seguente schema
invariante nel tempo:
– Corso, Nome Docente.
• L’istanze dello schema precedente possono
variare nel tempo:
– Matematica, Ronzi
– Diritto, Azzurri
Elisabetta Ronchieri IV Introduzione alle basi di dati
Modello relazionale
Elisabetta Ronchieri IV Introduzione alle basi di dati
Modello dei dati
• I protagonisti di una base di dati sono i dati
relativi ad una certa realtà, quali quelli di
un'azienda e di un'Università.
• La base di dati permette il reperimento dei dati
che descrivono tale realtà.
• Un modello dei dati è un insieme di concetti
utilizzati per descrivere e rappresentare i dati
propri di una realtà di interesse e descriverne la
struttura.
• Il modello di dati denisce la struttura del
database.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Livelli di modellizzazione
• I livelli di modellizzazione dei dati di una certa
realtà di interesse di una base di dati sono tre:
– livello concettuale o modelli concettuali: vista dei
dati come sono organizzati per la fruizione da parte di
utenti o classi di utenti.
– livello logico o modelli logici: organizzazione dei dati
in termini della loro struttura e dei legami logici tra i
vari tipi di dati definiti.
– livello fisico o modelli fisici: organizzazione fisica dei
dati in file, distribuzione sui supporti di memoria e
modalità di memorizzazione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Livello logico
• Al livello logico si modellizzano i dati relativi ad una certa
realtà al fine di descrivere la loro organizzazione nella base
di dati.
• I modelli logici offrono i concetti e i costrutti che
permettono di organizzare i dati nella base di dati in modo
indipendente dalle strutture fisiche effettivamente
utilizzate per memorizzare i dati sul calcolatore.
• I modelli logici usati per le basi di dati sono:
– modello relazionale per le basi di dati relazionali e relativo
DBMS;
– modello gerarchico per le basi di dati gerarchici e relativo DBMS;
– modello reticolare per le basi di dati reticolari e relativo DBMS;
– modello ad oggetti per le basi di dati ad oggetti e relativo DBMS.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Modello relazionale
• Il modello relazionale è il modello logico più
diffuso per organizzare i dati di una base di dati.
• Utilizza il costrutto di relazione inteso come
concetto matematico proveniente dalla teoria
degli insiemi.
• Organizza i dati secondo relazioni.
• Una relazione può essere interpretata come una
tabella a struttura fissa.
• Una base di dati relazionale organizza
logicamente i dati in tabelle.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Modello relazionale
• La relazione è una tabella rettangolare.
• Questo modello prevede relazioni tra le
tabelle contenente dati.
• Una tabella raccoglie informazioni su
un'entità.
• I nomi dei campi o field individuano gli
attributi dell'entità, ossia le colonne della
tabella.
• La tupla o record è una riga della tabella.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Esempio di relazione
• Relazione sui DIPENDENTI:
– Ciascuna tupla contiene informazioni relative ad un singolo
dipendente;
– Le colonne descrivono una caratteristica dell’entità
rappresentata dalla tupla.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Esempio di relazione
• Relazione sugli studenti:
– Ciascuna tupla corrisponde ad uno studente
– Ogni colonna corrisponde alle informazioni associate ai
vari studenti, quali Matricola, Cognome, Nome e Nascita.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Campo chiave
• E’ un campo utile per individuare i singoli record.
• La chiave primaria è l'attributo o insieme di
attributi che definisce univocamente un record.
• Esempio:
– Nell'esempio della base di dati relazionale di
un'Università, la chiave è espressa dal numero di
matricola grazie alla sua univocità.
– Nessuno studente ha un numero di matricola uguale
all'altro.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Confronto tra database relazionale e
archivio su file
• Duplicazione dei dati nell'archivio unico, mentre
no nel database relazionale.
• Coerenza dei dati nel database relazionale
richiedendo eventualmente 1 solo
aggiornamento, mentre l'archivio unico può
necessitare di più modiche.
• Sicurezza dei dati nel databse relazione e gestita
l'autorizzazione degli accessi, mentre nell'archivio
unico si deve interdire l'intero file.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Progettare relazioni
• Significa progettare uno schema.
• Evitando di catturare piu concetti con la stessa
relazione:
– per evitare la ridondanza dei dati;
– per evitare di cancellare delle informazioni necessarie ma
non collegate.
• E’ possibile effettuare:
– Decomposizione: dividere le colonne di una relazione in
due o più relazioni, duplicando le colonne necessarie per
mantenere la relazione.
– Decomposizione senza perdita di dati: una
decomposizione corretta che non perde informazione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Tipi di relazioni tra due tabelle
• 1:1 (uno-a-uno) in cui le due chiavi primarie delle tabelle si
scambiano.
– Si ha univocità del record in entrambe le tabelle.
• 1:N (uno-a-molti) in cui la chiave primaria del lato 1 viene inserita
come chiave esterna nel lato N, aggiungendo eventuali attributi
della relazione.
– Si ottiene una nuova chiave primaria dal lato N fatta dalla chiave
primaria originale e dalla chiave esterna.
– Ogni record si riferisce ad una coppia di istanze delle due entità
originarie.
– La relazione 1:1 è un caso particolare di quella 1:N.
• N:M (molti-a-molti) in cui viene costruita una tabella di appoggio
che ha una chiave privata costituita da due chiavi esterne
provenienti rispettivamente dal lato N e dal lato M, aggiungendo
eventuali attributi della relazione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Scomposizione della relazione
Relazione scomposta
Elisabetta Ronchieri IV Introduzione alle basi di dati
Esempio di base di dati
1. Relazione
DIPENDENTE
2. Relazione INCARICO
3. Relazione
ASSEGNAZIONE che
contiene
–
–
il numero di Matricola
della relazione
DIPENDENTE
l’identificativo di
Incarico della
relazione INCARICO
Elisabetta Ronchieri IV Introduzione alle basi di dati
Esempio di base di dati
• A partire dalle relazioni
specificate:
– determinare il Reparto
in cui ha lavorato il
dipendente con
Matricola 34Y70
• Dalla relazione
ASSEGNAZIONE
estrarre IdIncarico per
poi recuperare il
Reparto.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Modello ad oggetti
• Consiste di ogetti collegati l’uno all’altro per
riflettere le loro relazioni.
• Data la relazione dipendenti, la base dei dati
secondo il modello object-oriented conterrà
tre classi:
– Dipendente
– Incarico
– Assegnazione
• I collegamenti sono gestiti dal DBMS.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Operazioni sulle relazioni
Elisabetta Ronchieri IV Introduzione alle basi di dati
Operazioni sulle relazioni
• Select opera sulle tuple (righe della tabella).
• Project opera sulle colonne.
• Join combina le informazioni tra due o più
relazioni.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Operazione SELECT
• La relazione
NUOVA
contiene sola
la
informazione
che soddisfa
la condizione
di
uguaglianza.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Operazione PROJECT
•
La relazione
POSTA
contiene solo
le
informazioni
relative alle
colonne
Nome e
Indirizzo della
relazione
DIPENDENTE.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Operazione JOIN
•
•
•
•
•
•
La relazione C è data dall’unione delle
relazioni A e B tale per cui la condizione
è rispettata.
La relazione C è costruita applicando la
condizione ad ogni cella della relazione
A che è confrontata con il valore della
cella della relazione B.
Terminate le righe nella relazione A,
termina la operazione di confronto.
La prima riga della relazione C è
ottenuta combinando la prima riga della
relazione A con la terza riga della
relazione B:
– A.W = B.X = 2
La seconda riga della relazione C è
ottenuta combinando la seconda riga
della relazione A con la seconda riga
della relazione B:
– A.W = B.X = 4
La terza riga della relazione C è ottenuta
combinando la seconda riga della
relazione A con la quarta riga della
relazione B:
– A.W = B.X = 4
Elisabetta Ronchieri IV Introduzione alle basi di dati
Operazione JOIN
•
•
•
•
La relazione C è data dall’unione delle relazioni
A e B tale per cui la condizione è rispettata.
La relazione C è costruita applicando la
condizione ad ogni cella della relazione A che è
confrontata con il valore della cella della
relazione B.
Terminate le righe nella relazione A, termina la
operazione di confronto.
La prima riga della relazione C è ottenuta
combinando la prima riga della relazione A con
la seconda riga della relazione B:
–
–
•
La seconda riga della relazione C è ottenuta
combinando la prima riga della relazione A con
la quarta riga della relazione B:
–
–
•
A.W = 2 < B.X = 4
La prima riga della relazione B viene scartata
non soddisfacendo la condizione.
A.W = 2 < B.X = 5
La terza riga della relazione B viene scartata
non soddisfacendo la condizione.
La terza riga della relazione C è ottenuta
combinando la seconda riga della relazione A
con la quarta riga della relazione B:
–
–
A.W = 4 < B.X = 5
Le prime tre righe della relazione B vengono
scartate perchè non soddisfano la
condizione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Operazione JOIN
•
•
La relazione
NUOVA1 è
data
dall’unione
delle relazioni
ASSEGNAZION
E e INCARICO
tale per cui la
condizione è
rispettata.
Il valore della
colonna
IdIncarico
nelle due
relazioni
specificate
deve
combaciare.
Elisabetta Ronchieri IV Introduzione alle basi di dati
SQL
Elisabetta Ronchieri IV Introduzione alle basi di dati
Structured Query Language (SQL)
• Costituisce l’ossatura per i sistemi di interrogazione
delle basi di dati relazionali.
• La implementazione più diffusa è quella MySQL.
• L’istruzione SQL descrive le informazioni desiderate.
• Operazioni per manipolare le tuple sono:
–
–
–
–
inserimento
aggiornamento
cancellazione
estrazione di nuove relazioni ottenute come combinazione
di quelle esistenti con l'utilizzo di SELECT, PROJECT e JOIN.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Relazioni su cui applicare
le operazioni SQL
• Date tre relazioni:
– la relazione IMPIEGATO con i campi IDimpiegato,
Nome e Indirizzo;
– la relazione ASSEGNAMENTO con i campi
IDimpiegato, IDlavoro, DataIniziale e DataFinale;
– la relazione LAVORO con i campi IDlavoro,
TitoloLavoro, Codice e Dipartimento.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire estrazione
• Relazione ASSEGNAMENTO, LAVORO e
IMPIEGATO
SELECT IDimpiegato, Dipartimento
FROM ASSEGNAMENTO, LAVORO
WHERE ASSEGNAMENTO.IDlavoro =
LAVORO.IDlavoro
AND ASSEGNAMENTO.DataFinale = "*";
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire inserimento
• Relazione IMPIEGATO
INSERT INTO IMPIEGATO
VALUES('43212, 'R. Bartolo', 'Via degli Esposti, 52');
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire cancellazione
• Relazione IMPIEGATO
DELETE FROM IMPIEGATO
WHERE Nome = 'P. Rossi'
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire aggiornamento
• Relazione IMPIEGATO
UPDATE IMPIEGATO
SET Indirizzo = 'Via Raffaeli, 52'
WHERE Nome = 'R. Bartolo';
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire estrazione
• Relazione IMPIEGATO
• I campi: ID, Nome, DataNascita, FasciaPaga, OreLavorate, Paga
• Estrarre tutti i dati relativi all'impiegato 'E. Arturi' avente ID pari a
10.
• 1 modo:
SELECT * FROM IMPIEGATO
WHERE ID=10;
• 2 modo:
SELECT ID, Nome, DataNascita, FasciaPaga,
OreLavorate, Paga FROM IMPIEGATO
WHERE Nome='E. Arturi';
• In entrambi i casi la nuova relazione contiene solo le informazioni
dell'impiegato 'E. Arturi'.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire estrazione
• Relazione IMPIEGATO
• I campi: ID, Nome, DataNascita, FasciaPaga,
OreLavorate, Paga
• Estrarre nomi e stipendi ordinati per ID.
SELECT Nome, Paga FROM IMPIEGATO ORDER BY ID;
• La nuova relazione contiente solo le
informazioni Nome e Paga estratte da
IMPIEGATO e ordinate per ID.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire estrazione
• Relazione IMPIEGATO
• I campi: ID, Nome, DataNascita, FasciaPaga,
OreLavorate, Paga
• Estrarre nomi e stipendi per gli impiegati con più
di 100 ore di lavoro.
SELECT Nome, OreLavorate, Paga
FROM IMPIEGATO
WHERE OreLavorate>100;
• La nuova relazione contiene solo le informazioni
Nome, OreLavorate e Paga estratte da IMPIEGATO
che rispettono la condizione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Eseguire estrazione
•
•
•
•
•
Relazione IMPIEGATO
I campi: ID, Nome, DataNascita, FasciaPaga, OreLavorate, Paga
Relazione POLICY
I campi: PianoTipo, Descrizione, Costo
La tabella ASSICURAZIONE e una relazione tra le tabelle POLICY e
IMPIEGATO, costruita sfruttando due chiavi esterne ID di IMPIEGATO e
PianoTipo di POLICY.
• I campi: ID, PianoTipo, DataStipula
• Estrarre il PianoTipo dell'assicurazione per un certo impiegato.
SELECT IMPIEGATO.Nome, ASSICURAZIONE.PianoTipo
FROM IMPIEGATO, ASSICURAZIONE
WHERE ((IMPIEGATO.Nome='E. Arturi') AND
(ASSICURAZIONE.ID=IMPIEGATO.ID));
• La nuova relazione contiene il Nome dell'impiegato e il codice del
PianoTipo.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Integrità
Elisabetta Ronchieri IV Introduzione alle basi di dati
Protocollo di commit e roll-back
• La transazione è una sequenza di operazioni che devono
essere eseguite tutte insieme.
– Esempio: trasferimento di danaro da un conto bancario ad un
altro
• Log (registro) delle transazioni registra, su memoria non
volatile, le attività di tutte le transazioni.
– Prima che la transazione alteri la base di dati, il log registra la
modifica da eseguire.
– Contiene una registrazione permanente delle azioni relative a
ogni transazione.
• Punto di commit o di affidamento è il punto in cui la
transazione è stata registrata nel log.
• Roll-back è il processo di annullare una transazione.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Protocollo di Lock
• Il protocollo di lock contrassegna con degli
indicatori gli elementi di una base di dai usati da
una transazione.
• Gli indicatori sono detti lock.
• Gli elementi contrassegnati sono detti locked
(bloccati).
• I lock condivisi o accesso condiviso previsto per
una transazione che non modifica i dati.
– Altre transazioni possono visualizzare i dati.
• I lock esclusivi o accesso esclusivo previsto per
una transazione che modifica i dati.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Protocollo di Wound-wait
• Il protocollo di wound-wait (colpisci/attendi)
assicura che a ogni transazione sarà
consentito completare il suo compito.
• Le vecchie transazioni colpiscono quelle
recenti che aspettano le vecchie.
• Permette di dare priorità alle transazioni più
vecchie.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Referenza
• Glenn Brookshear, Informatica una
panoramica generale, 11-esima versione,
Pearson, Cap 9.
Elisabetta Ronchieri IV Introduzione alle basi di dati
Scarica