Upload
trinhngoc
View
217
Download
0
Embed Size (px)
Citation preview
1
Laboratorio di Informatica AA 2006/2007
1
Basi di dati (database)
Laboratorio di Informatica AA 2006/2007
2
Scopo
• Gestione dell’informazione• Informazione: difficile da definire ma a tutti
è chiara l’importanza della sua gestione in diversi tipi di attività
• Esempi: aziende, banche, anagrafi, università, compagnie aeree, ...
2
Laboratorio di Informatica AA 2006/2007
3
Gestione dei dati
• Aggiunta nuovi dati;• Aggiornamento dati esistenti;• Cancellazione;• Richiesta di informazioni relative ad un utente;• Elaborazioni statistiche…
• Per eseguire tali operazioni, devono essere allocate delle risorse.
Laboratorio di Informatica AA 2006/2007
4
Sistema informativo
• Insieme delle risorse di un’organizzazione dedicate alla gestione dell’informazione
• Gestione: acquisizione, elaborazione, conservazione, produzione
• Il concetto di sistema informativo esiste da secoli (es.: anagrafi)
3
Laboratorio di Informatica AA 2006/2007
5
Sistema informatico
• Parte del sistema informativo che gestisce l’informazione automaticamente (calcolatori, reti, software, ...)
SistemainformaticoSiste
ma informativo
Laboratorio di Informatica AA 2006/2007
6
Dati e informazione
• Dati: stringhe di caratteri, numeri, immagini, suoni, ...
• Informazione: veicolata dai dati opportunamente interpretati
• Esempio:“Paolo”, “Rossi”, 1100 nome, cognome del direttore, stipendio
dati
interpretazione
4
Laboratorio di Informatica AA 2006/2007
7
L’informazione nei sistemi informatici
Rappresentazione Interpretazione
Informazione InformazioneDATI
Sistema informatico
• Basi di dati: collezione di dati che rappresentano informazioni di interesse per un certo sistema informativo
Laboratorio di Informatica AA 2006/2007
8
Problemi con la gestione dei dati
• I programmi tradizionali operano indipendentemente su copie di dati
Prog1
copia1
Prog2
copia2
Prog3
copia3
• Problemi: inconsistenzaridondanza
5
Laboratorio di Informatica AA 2006/2007
9
Inconsistenza e ridondanza• sia D un database che contiene i nomi degli N studenti
Unimi al tempo t;• l’utente A usa il programma A per aggiungere un nuovo
studente a D;• nel frattempo, l’utente B usa il programma B per
aggiungere due nuovi studenti a D;• Quanti studenti ha Unimi al tempo t+1?• Secondo A ne ha N+1;• Secondo B ne ha N+2;• In realtà ne ha N+3!
• Informazioni ridondanti (N studenti replicati) sui PC di A e di B.
Laboratorio di Informatica AA 2006/2007
10
Soluzione ottimale
• Unica risorsa dati accessibile a piùprogrammi
Prog2
Prog1
Prog3
6
Laboratorio di Informatica AA 2006/2007
11
DBMS Data Base Management System
• Sistemi software per la gestione di collezioni di dati che siano: grandi, condivise, persistentiassicurando: affidabilità e privatezza
• BASE DI DATI = collezione di dati gestita da un DBMS
Laboratorio di Informatica AA 2006/2007
12
Modello logico e fisico dei dati
• Modello logico: regole per strutturare i dati secondo certe proprietà + operazioni sui dati
• Modello fisico: rappresentazione delloschema logico mediante strutture fisiche dimemorizzazione. Es.: file, liste, alberi, ...
DATIBASE DI DATI
=DATI + DBMS
7
Laboratorio di Informatica AA 2006/2007
13
DBMS: Architettura ANSI/SPARC
Schema esterno
Schema logico
Schema fisico
DATI
utente
Schema esternoutente
Schema esternoutente
Laboratorio di Informatica AA 2006/2007
14
I linguaggi nei DBMS
• DDL: data definition languagedefinisce gli schemi esterni, logici, fisici e le autorizzazioni d’accesso
• DML: data manipulation languageconsente di interrogare e di aggiornare la base di dati
• Nelle basi di dati relazionali (che vedremo), SQL contiene entrambe le funzionalità
8
Laboratorio di Informatica AA 2006/2007
15
Progettazione di basi di dati
• Problema: quali informazioni inserire in una base di dati e quali legami esistono tra di esse?
• Schema concettuale di una base di dati da cui ricavare la struttura dei dati secondo il modello logico del DBMS (schema logico)
• Uno strumento per esprimere schemi concettuali: i diagrammi Entità-Relazione(E-R)
Laboratorio di Informatica AA 2006/2007
16
I diagrammi E-R
• Entità: classi di oggetti rilevanti
• Relazioni: legami tra entità
• Attributi: descrivono proprietàrilevanti di entità e relazioni
ENTITA’
RELAZIONE
attributo
9
Laboratorio di Informatica AA 2006/2007
17
Uno schema concettuale
• E-R per una base di dati in cui archiviare studenti, materie e relativi esami
ESAME MATERIASTUDENTEmatricola
cognomenome
nome
titolare
data voto
Laboratorio di Informatica AA 2006/2007
18
Identificatori
• Gruppi di attributi che identificano univocamente le occorrenze di un’entità
ESAME MATERIASTUDENTEmatricola
cognomenome
nome
titolare
data voto
identificatore singolo
identificatore multiplo
10
Laboratorio di Informatica AA 2006/2007
19
Cardinalità delle relazioni
• molti a molti (N-N):
ESAME MATERIASTUDENTEN N
• Ogni studente può aver sostenuto più esami• Ogni esame può essere stato dato da più
studenti
Laboratorio di Informatica AA 2006/2007
20
Cardinalità delle relazioni
• uno a molti (1-N):
ISCR CdLSTUDENTE1 N
• Ogni studente è iscritto ad un corso di laurea
• Ogni corso di laurea può avere più iscritti
11
Laboratorio di Informatica AA 2006/2007
21
Cardinalità delle relazioni
• uno a uno (1-1):
DIRIGE DIPARTDIRETTORE1 1
• Ogni direttore dirige un dipartimento• Ogni dipartimento ha un direttore
Laboratorio di Informatica AA 2006/2007
22
Il modello relazionale
• I dati vengono strutturati in tabelle
Record: righe della tabella
Campi: colonne della tabellamatr nome cognome
305011 Carlo Rossi356433 Mario Verdi345553 Franco Verdi345434 Daniele Rossi
STUDENTI
Tabella: STUDENTI(matr, nome, cognome)
12
Laboratorio di Informatica AA 2006/2007
23
Schema e istanze
Matricola Cognome Nome Data di Nascita 6554 Rossi Mario 5/12/1978 8765 Neri Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 1/2/1978
Codice Titolo Docente 01 Analisi Neri 02 Chimica Bruni 04 Chimica Verdi
STUDENTEStudente Voto Corso
3456 30 04 3456 24 02 9283 28 01 6554 26 01
ESAME
MATERIA
Istanza
STUDENTE(Matricola, Cognome, Nome, Data di Nascita),CORSO(Codice, Titolo, Docente), ESAME(Studente, Voto, Corso) Schema
Laboratorio di Informatica AA 2006/2007
24
I legami tra i dati
• Il modello relazionale è basato sui valori
Matricola Cognome Nome Data di Nascita 6554 Rossi Mario 5/12/1978 8765 Neri Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 1/2/1978
Codice Titolo Docente 01 Analisi Neri 02 Chimica Bruni 04 Chimica Verdi
Studente Voto Corso 3456 30 04 3456 24 02 9283 28 01 6554 26 01
STUDENTE
ESAME
MATERIA
13
Laboratorio di Informatica AA 2006/2007
25
Vincoli di integrità
• Proprietà che le istanze devono soddisfare• Tipi di vincoli
intrarelazionali: su campi, su record, su tabellainterrelazionali: su più tabelle
(integrità referenziale)
Laboratorio di Informatica AA 2006/2007
26
Esempi di vincoli
Studenti Matricola Cognome Nome Nascita276545 Rossi Maria 23/04/1968276545 Neri Anna 23/04/1972788854 Verdi Fabio 12/02/1972
Esami Studente Voto Lode Corso 276545 28 e lode 01 276545 32 02 788854 23 03 200768 30 e lode 03
Corsi Codice Titolo Docente01 Analisi Giani03 NULL NULL
02 Chimica Belli
Con tabellaStudenti
Vincoli Interrelazionali
Vincolo surecord
Vincolo sucampo
Vincoli Intrarelazionali
Vincolo sutabella
14
Laboratorio di Informatica AA 2006/2007
27
Chiave• Insieme minimale di attributi che identifica
univocamente i record di una tabella
Matr Nome Cognome301 Carlo Rossi 302 Marco Neri 311 Guido Mauro
STUDENTE
Matricola Cognome Nome Esame Data Voto6554 Rossi Mario Informatica 5/12/2000 246554 Rossi Mario Matematica 3/2/2001 276554 Rossi Mario Fisica 3/2/2001 30
ESAME
Laboratorio di Informatica AA 2006/2007
28
Chiave esterna eintegrità referenziale
• Attributo/i che costituiscono la chiave di un’altra tabella
Studenti Matricola Cognome Nome Nascita276545 Rossi Maria 23/04/1968276543 Neri Anna 23/04/1972788854 Verdi Fabio 12/02/1972
Esami Studente Voto Lode Corso276545 28 Fisica276545 18 Analisi788854 23 Analisi788854 30 e lode Algebra
Vincolo di integrità
referenziale
15
Laboratorio di Informatica AA 2006/2007
29
Dai diagrammi E-R alle tabelle
• molti a molti (N-N):
STUDENTE(matr, nome, cognome) MATERIA(id, nome)
ESAME(matr, id, voto)
nome
cognome
matr
ESAME
votoN N
STUDENTE MATERIA nome
id
Laboratorio di Informatica AA 2006/2007
30
Dai diagrammi E-R alle tabelle
• uno a molti (1-N):
STUDENTE(matr, nome, cognome, cdl, anno) CdL(id, nome)
nome
cognome
matr
ISCR
anno1 N
STUDENTE CdL nome
id
• A volte è preferibile tradurre come nel caso N-N
16
Laboratorio di Informatica AA 2006/2007
31
Dai diagrammi E-R alle tabelle
• uno a uno (1-1):
DIRETTORE(matr, nome, cognome, id, nome-dip, anno)
nome
cognome
matr
DIRIGE
anno1 1
DIRETTORE DIPART nome
id
• A volte è preferibile tradurre come nel caso 1-N
Laboratorio di Informatica AA 2006/2007
32
Query (interrogazioni)
• Query: estrazione da un data base di informazioni che soddisfa certe proprietà
• Come esprimere le query:SQL: Structured Query LanguageQBE: Query by Example di AccessAlgebra relazionale: un linguaggio formale...
• In comune hanno un insieme di operatori
17
Laboratorio di Informatica AA 2006/2007
33
Operatori su tabelle
• Operatori insiemistici:unioneintersezionedifferenza
• Operatori relazionali:proiezioneselezionejoin (naturale)
binari
unari
binario
Laboratorio di Informatica AA 2006/2007
34
Operatori insiemistici: unione
• L’unione di due tabelle con attributi compatibili è una tabella con lo stesso schema contenente l’unione dei record
CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20
CICLISMO
CF Cognome Eta` RSSY Rossi 20 NRXY Neri 21 VRDX Verdi 20
CALCIO
CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20 RSSY Rossi 20
CICLISMO ∪ CALCIO
Appassionati di ciclismo o di calcio
18
Laboratorio di Informatica AA 2006/2007
35
Operatori insiemistici: intersezione
• L’intersezione di due tabelle con attributi compatibili è una tabella con lo stesso schema contenente l’intersezione dei record
CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20
CICLISMO
CF Cognome Eta` RSSY Rossi 20 NRXY Neri 21 VRDX Verdi 20
CALCIO Appassionati di ciclismo e di calcio
CF Cognome Eta` NRXY Neri 21 VRDX Verdi 20
CICLISMO ∩ CALCIO
Laboratorio di Informatica AA 2006/2007
36
Operatori insiemistici: differenza• La differenza di due tabelle con attributi
compatibili è una tabella con lo stesso schema contenente i record presenti nella prima ma non nella seconda
CF Cognome Eta` RSSX Rossi 20 NRXY Neri 21 VRDX Verdi 20
CICLISMO
CF Cognome Eta` RSSY Rossi 20 NRXY Neri 21 VRDX Verdi 20
CALCIO
Appassionati di calcio ma non di ciclismo
CF Cognome Eta` RSSY Rossi 20
CALCIO - CICLISMO
CF Cognome Eta` RSSX Rossi 20
CICLISMO - CALCIO
Appassionati di ciclismo ma non di calcio
19
Laboratorio di Informatica AA 2006/2007
37
Operatori relazionali: proiezione
• La proiezione su una tabella produce una tabella con gli attributi specificati e contenente gli stessi record “ristretti”
Matricola Nome Cognome CdL40445 Paolo Rossi Fisica43555 Piero Bianchi Matematica43566 Piero Verdi Informatica55655 Marco Rossi Lettere
STUDENTI
Elencare cognomi e nomi degli studenti
Cognome NomeRossi Paolo
Bianchi PieroVerdi PieroRossi Marco
πCognome,Nome(STUDENTI)
Laboratorio di Informatica AA 2006/2007
38
Operatori relazionali: selezione
• La selezione su una tabella produce una tabella con gli stessi attributi contenente record che soddisfano un certo predicato
Matricola Nome Cognome CdL40445 Paolo Rossi Fisica43555 Piero Bianchi Matematica43566 Piero Verdi Informatica55655 Marco Rossi Lettere
STUDENTI
σ Nome = ‘Piero’ or CdL = ‘Fisica’ (STUDENTI)
Matricola Nome Cognome CdL40445 Paolo Rossi Fisica43555 Piero Bianchi Matematica43566 Piero Verdi Informatica
Quali sono gli studenti con nome ‘Piero’ o iscritti a ‘Fisica’?
20
Laboratorio di Informatica AA 2006/2007
39
Operatori relazionali: prodotto cartesiano
• Il prodotto di due tabelle produce una tabella con l’unione degli attributi contenente le concatenazioni dei record
Tutte le possibili concatenazioni
tra record
Cognome Corso
Rossi FisicaBianchi Fisica
Nome Materia
Fisica MeccanicaMatematica Algebra
STUDENTI CdL
Cognome Corso Nome Materia
Rossi Fisica Fisica MeccanicaRossi Fisica Matematica Algebra
Bianchi Fisica Fisica MeccanicaBianchi Fisica Matematica Algebra
STUDENTI × CdL
Laboratorio di Informatica AA 2006/2007
40
Operatori relazionali: join• Il join tra due tabella produce una tabella con
l’unione degli attributi contenente le concatenazioni dei record concordanti sugli attributi comuni
Situazione esami degli studenti
Matricola Cognome Nome6554 Rossi Mario8765 Neri Paolo9283 Verdi Luisa3456 Rossi Maria
Matricola Voto Corso3456 30 Analisi3456 24 Fisica9283 28 Fisica
STUDENTE ESAME
Matricola Cognome Nome Voto Corso3456 Rossi Maria 30 Analisi3456 Rossi Maria 24 Fisica9283 Verdi Luisa 28 Fisica
STUDENTI ESAME
21
Laboratorio di Informatica AA 2006/2007
41
Esercitazione
• Consideriamo la seguente basi di dati per l’archiviazione di noleggi di CD
ID-Cliente ID-CD data
10 1 23/7/20029 1 11/9/2002
11 3 15/2/200310 2 30/3/2003
NOLEGGIO
ID -CD Titolo Artista
1 Up REM2 October U23 Syncronicity Police
CD
Cognome Nome ID-Cliente
Rossi Paolo 10Bianchi Maria 11Verdi Carlo 9
CLIENTE
CLIENTE(Cognome, Nome, ID-Cliente)CD(ID-CD, Titlo, Artista)NOLEGGIO(ID-Cliente, ID-CD, data)
Laboratorio di Informatica AA 2006/2007
42
Esempi di query
• Eseguire le seguenti query:a) Artista e titolo dei cd noleggiati dal signor
Paolo Rossi;b) Nome e cognome dei clienti che hanno
noleggiato cd dei REM; c) Titolo dei cd che sono stati noleggiati dal
cliente avente codice 10 oppure dal cliente avente codice 11.