Introduzione alle
Basi di Dati
Overview
Informazione = contenuto +
struttura

Informazione non strutturata
Molto contenuto, poca struttura
 Un romanzo e il suo indice (magari solo
capitoli numerati)


Informazione strutturata
Molta struttura, contenuto rigidamente
codificato
 I sistemi informativi delle organizzazioni,
le basi di dati

DBMS (database management
system)

Obiettivo: gestione strutturata di
dati, organizzati in modo omogeneo.

Base di dati:
Collezione di dati organizzati in modo
coerente (un insieme casuale di dati non
è una base di dati !)
 Modella alcuni aspetti del mondo reale
 Costruito con funzionalità ben precise,
note fin dall’inizio della progettazione.

Basi di dati: operazioni

Definizione della base di dati
quali informazioni (struttura)
 quali relazioni tra le informazioni


Manipolazione
inserimento di dati
 cancellazione di dati
 aggiornamento (update)
 interrogazione


Protezione e sicurezza dei dati
Esempio di Tabella
Nomi di Attributi
Schema
Nome
tuple
Cognome Telefono
Mario
Rossi
050 90… …
Luigi
Bianchi
06 499… …
Guido
La Vespa
02 009… …
…
Notazione:
La tabella Rubrica è anche indicata con la notazione:
Rubrica (Nome, Cognome, Telefono, …)
In ogni modello esistono

Lo schema: la descrizione della
struttura


stabile nel tempo
L‘istanza: i valori (cioè i dati)

variabile nel tempo
studenti
Matricola
6554
8765
9283
3456
Cognome
Pinco
Neri
Verdi
Rossi
Nome
Pallino
Paolo
Luisa
Maria
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Relazioni e Attributi: esempio
studenti
Matricola
6554
8765
9283
3456
Cognome
Pinco
Neri
Verdi
Rossi
Nome
Pallino
Paolo
Luisa
Maria
esami
Studente
3456
3456
9283
6554
corsi
Codice
01
02
04
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Voto
30
24
28
26
Corso
04
02
01
01
Titolo
Docente
Analisi Sempronio
Chimica
Bruni
Chimica
Verdi
Relazioni e Attributi: esempio…
Modello relazionale
Modello relazionale dei dati
i dati sono organizzati in “tabelle”
 la tabella è un insieme di “record”
(ennuple)

con un insieme di attributi
 di tipi opportuni (numeri, stringhe, date
…)


i dati in tabelle diverse sono correlati
sulla base dei valori (chiavi)
Modello relazionale
Relazione su due insiemi A e B
sottoinsieme del prodotto cartesiano
AxB
 Esempio


sposato_con incluso in
 Persone

figlio_di incluso in
 Persone

x Persone
x Persone
vive_a incluso in
 Persone
x Città
Esempio di relazione

Persone= {Paolo, Luca,Mario}
Città={Torino,Roma}

PersonexCittà

Persone
Città
Paolo
Paolo
Luca
Luca
Torino
Roma
Torino
Roma

Vive_a
Persone Città
Paolo
Luca
Torino
Roma
Relazioni e Attributi

Attributi: nomi che specificano un
ruolo in una relazione, esempi:
sposato_con(Marito, Moglie)
 figlio_di(Figlio, Genitore)
 vive_a(Nome,Citta,Provincia)
 libro(N.Inv, Autore, Titolo,
Anno_edizione, Casa_editrice,
Collocazione)


Gli attributi devono avere nomi
differenti
Vincoli
Vincoli sulle relazioni

I valori contenuti nelle tabelle
possono essere soggetti a vari tipi di
vincoli che dipendono dalla ‘realtà’
che si vuole rappresantare:
vincoli di dominio: valori dei singoli
Attributi
 vincoli di tupla: valori di attributi
correlati in una tupla
 vincoli di integrità valori di attributi in
tuple diverse (anche in relazioni diverse)

Vincoli di dominio

vincoli sui valori dei singoli attributi
(vincoli di dominio), es:

dato ESAMI(Studente,Voto, Lode,Corso)
deve essere:
 Voto

>=18 AND Voto <=30
Vincoli sul valore di un attributo data
Vincoli di tupla

vincoli sui valori di attributi correlati,
es

Data la relazione ESAMI come prima
deve essere:
 not

(Lode = Yes) OR Voto = 30
equivalente a
 Lode=

No OR Voto = 30
Data la relazione
PAGAMENTI(Data,Importo,Ritenute,Netto)
deve essere:
 Netto
= Importo - Ritenute
Esempio complesso di vincoli

Supponiamo che STUDENTE contenga
anche gli attributi
 Borsa
di Studio: valori {Yes, No}
 Reddito (della famiglia): euro
 Residente (nella città sede univ.): {Yes, No}

Uno studente ha diritto ad una borsa se:
 ha
una media >= 27 e un reddito <=
20000,
Oppure
 non è residente e ha una media >= 25 e un
reddito <=25000
Relazioni tra tabelle

In una base di dati relazionale le tabelle
sono collegate tra loro tramite attributi
comuni
Esempio:
 Il collegamento tra la relazione LIBRI e la
relazione CASE_EDITRICI può essere espressa
mediante l’ attributo “Numero di inventario”.
 Uso di chiavi primarie per evitare replicazione di
dati.
 Tabelle organizzate per contenere dati
omogenei di entità di informazioni ritenute
interessanti (Persone, Comuni…).
Funzionalità DBMS
Funzionalità DBMS

Funzioni per:
definizione della base di dati
 inserimento / rimozione /aggiornamento
di informazioni

 deve

soddisfare i vincoli!
Interrogazione
Creazione tabelle:
Chiavi primarie

CREATE TABLE Studenti
(
Matricola integer,
Cognome string,
Nome string,
Data di nascita integer,
Primary Key (Matricola);
);
Creazione Tabelle
Chiavi primarie: esempio
studenti
Matricola
Cognome
Nome
Data di nascita
Creazione tabelle:
Chiavi primarie

CREATE TABLE Corsi
(
Codice integer,
Titolo string,
Docente string,
Primary Key (Codice);
);
Creazione Tabelle
Chiavi primarie: esempio
studenti
Matricola
Cognome
corsi
Nome
Codice
Data di nascita
Titolo
Docente
Creazione tabelle:
Chiavi primarie e chiavi esterne

CREATE TABLE Esami
(
ID integer,
Studente integer,
Voto integer,
Corso integer,
Primary Key (ID),
Foreign Key (Studente) references
Studenti(Matricola),
Foreign Key (Corso) references
Corsi(Codice));
);
Creazione Tabelle
Chiavi esterne: esempio
studenti
Matricola
esami
Cognome
Id
corsi
Nome
Data di nascita
Studente
Voto
Corso
Codice
Titolo
Docente
Inserzione dati: esempio
studenti
Matricola
6554
8765
9283
3456
esami
Cognome
Pinco
Neri
Verdi
Rossi
Nome
Pallino
Paolo
Luisa
Maria
Studente
Id
1135622
3456
1135623
3456
9283
1135624
1135623
6554
corsi
Codice
01
02
04
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Voto
30
24
28
26
Corso
04
02
01
01
Titolo
Docente
Analisi Sempronio
Chimica
Bruni
Chimica
Verdi
Interrogazioni

Linguaggio SQL
Produce come risultato una tabella
 Agisce su insiemi (di tuple) e restituisce
insiemi (di tuple).

 Per
tale motivo le interrogazioni possono
essere annidate.

Clausola Base
 SELECT
“Lista di attributi”
FROM “Elenco relazioni”
WHERE “Condizione”
Esempi di query

SELECT Docente
FROM Corsi
WHERE Titolo=“Chimica”
Qual’e’ il nome di tutti
i docenti che insegnano chimica?
corsi
Codice
01
02
04
Titolo
Docente
Analisi Sempronio
Bruni
Chimica
Chimica
Verdi
Esempi di query
Qual’e’ il nome e il cognome
degli studenti
con numero di matricola >7000 ?
studenti
Matricola
6554
8765
9283
3456
Cognome
Pinco
Neri
Verdi
Rossi
Nome
Pallino
Paolo
Luisa
Maria
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Esempi di query

SELECT Cognome, Nome
FROM Studenti
WHERE Matricola <7000
Qual’e’ il nome e il cognome
degli studenti
con numero di matricola >7000 ?
studenti
Matricola
6554
8765
9283
3456
Cognome
Pinco
Neri
Verdi
Rossi
Nome
Pallino
Paolo
Luisa
Maria
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Esempi di query

SELECT Studente
FROM Esami
WHERE Corso=01
AND Voto>27
Qual’e’ lo studente
Che ha superato il corso 01
con voto >27 ?
esami
Studente
Id
1135622
3456
1135623
3456
9283
1135624
1135623
6554
Voto
30
24
28
26
Corso
04
02
01
01
Join



Join: combinare le tuple di più tabelle i cui
valori per attributi correlati soddisfano una
condizione di confronto
Il join di due relazioni è il sottoinsieme del
loro prodotto cartesiano specificato dalla
condizione di selezione
Relazioni tra tabelle e Join

Le relazioni tra tabelle sono espresse da valori
comuni di attributi correlati
Join: Example

SELECT Studenti.Nome, Studenti.Cognome
FROM Studenti, Esami
WHERE Studenti.Matricola=Esami.studenti
AND Esami.corso=01
AND Esami.voto>27
studenti
Matricola
6554
8765
9283
3456
esami
Cognome
Pinco
Neri
Verdi
Rossi
Nome
Pallino
Paolo
Luisa
Maria
Studente
Id
1135622
3456
1135623
3456
9283
1135624
1135623
6554
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Voto
30
24
28
26
Corso
04
02
01
01
Conclusioni
CONTROLLO DEI DATI: LE
TRANSAZIONI
Definizione
 Una transazione è una sequenza di azioni di lettura e
scrittura in memoria permanente e di elaborazioni di dati in
memoria temporanea, con le seguenti proprietà:
 Atomicità:
Le transazioni che terminano prematuramente
(aborted transactions) sono trattate dal sistema come se non
fossero mai iniziate; pertanto eventuali loro effetti sulla base di
dati sono annullati.
 Consistenza: i vincoli vengono rispettati.
 Serializzabilità (isolation): Nel caso di esecuzioni concorrenti
di più transazioni, l’effetto complessivo è quello di una
esecuzione seriale.
 Persistenza (durability): Le modifiche sulla base di dati di
una transazione terminata normalmente sono permanenti, cioè
non sono alterabili da eventuali malfunzionamenti.
FUNZIONALITÀ DEI DBMS:
MECCANISMI PER IL CONTROLLO DEI DATI
 Una
caratteristica molto importante dei DBMS è il
tipo di meccanismi offerti per garantire le
seguenti proprietà di una base di dati:
 Integrità,
sicurezza e affidabilità.
 Integrità:
mantenimento delle proprietà
specificate in modo dochiarativo nello schema
(vincoli d’integrità)
 Sicurezza: protezione dei dati da usi non
autorizzati
 Affidabilità: protezione dei dati da
malfunzionamenti hardware o software (fallimenti
di transazione, di sistema e disastri) e da
interferenze indesiderate dovute all’accesso
concorrente ai dati da parte di più utenti.
RIEPILOGO DEI VANTAGGI
DEI DBMS
 Indipendenza
dei dati
 Recupero efficiente dei dati
 Integrità e sicurezza dei dati
 Accessi interattivi, concorrenti e protetti dai
malfunzionamenti
 Amministrazione dei dati
 Riduzione dei tempi di sviluppo delle
applicazioni
 La riduzione dei costi della tecnologia e i
possibili tipi di DBMS disponibili sul mercato
facilitano la loro diffusione.
Scarica

Introduzione alle Basi di Dati