Introduzione alle Basi di Dati
-
Upload
nicholas-madden -
Category
Documents
-
view
31 -
download
0
description
Transcript of Introduzione alle Basi di Dati
Introduzione alleBasi 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
Nome Cognome
Telefono
…
Mario Rossi 050 90…
…
Luigi Bianchi 06 499…
…
Guido La Vespa
02 009…
…
Nomi di AttributiSchema
tuple
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
Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Sempronio02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Relazioni e Attributi: esempio
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 A x B
Esempio sposato_con incluso in
Persone x Persone figlio_di incluso in
Persone x Persone vive_a incluso in
Persone x Città
Esempio di relazione
Persone= {Paolo, Luca,Mario} Città={Torino,Roma}
Persone
Città
Paolo Torino
Luca Roma
PersonexCittà Vive_aPersone Città
Paolo Torino
Paolo Roma
Luca Torino
Luca 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 comuniEsempio: 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); );
Matricola Cognome Nome Data di nascitastudenti
Creazione TabelleChiavi primarie: esempio
Creazione tabelle:Chiavi primarie
CREATE TABLE Corsi (Codice integer,Titolo string, Docente string, Primary Key (Codice); );
Matricola Cognome Nome Data di nascitastudenti
Codice Titolo Docentecorsi
Creazione TabelleChiavi primarie: esempio
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)););
Matricola Cognome Nome Data di nascitastudenti
Codice Titolo Docentecorsi
Studente Voto Corsoesami
Creazione TabelleChiavi esterne: esempio
Id
Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Sempronio02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Inserzione dati: esempio
Id1135622
113562311356241135623
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 DocenteFROM CorsiWHERE Titolo=“Chimica”
Docente01 Analisi Sempronio
Bruni
Codice Titolo
02 Chimica04 Chimica Verdi
corsi
Qual’e’ il nome di tutti i docenti che insegnano chimica?
Esempi di query
Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/1978
3456 Rossi Maria 01/02/1978
8765 Neri Paolo 03/11/19769283 Verdi Luisa 12/11/1979
studenti
Qual’e’ il nome e il cognome degli studenti
con numero di matricola >7000 ?
Esempi di query
SELECT Cognome, NomeFROM StudentiWHERE Matricola <7000
Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/1978
3456 Rossi Maria 01/02/1978
8765 Neri Paolo 03/11/19769283 Verdi Luisa 12/11/1979
studenti
Qual’e’ il nome e il cognome degli studenti
con numero di matricola >7000 ?
Esempi di query
SELECT StudenteFROM EsamiWHERE Corso=01
AND Voto>27
Studente
9283
esami3456 30 043456 24 02
1135622
1135623
Voto Corso
28 01
Id
11356246554 26 011135623
Qual’e’ lo studenteChe ha superato il corso 01
con voto >27 ?
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.CognomeFROM Studenti, EsamiWHERE Studenti.Matricola=Esami.studenti
AND Esami.corso=01 AND Esami.voto>27
Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Id1135622
113562311356241135623
Conclusioni
CONTROLLO DEI DATI: LE TRANSAZIONIDefinizione 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 DBMSIndipendenza dei datiRecupero efficiente dei dati Integrità e sicurezza dei datiAccessi interattivi, concorrenti e
protetti dai malfunzionamenti Amministrazione dei datiRiduzione 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.