Presentazione di PowerPoint - Dipartimento di Matematica e

SCUOLA INTERUNIVERSITARIA SICILIANA
DI SPECIALIZZAZIONE PER
L’INSEGNAMENTO SECONDARIO
Classe di Concorso: 42A
Angelo Carpenzano
Unità didattica 2: Basi di dati
MODULO DIDATTICO: I DATABASE
Docente: Prof. Cantone
Prerequisiti
Gli studenti devono conoscere:
1. Nozioni
associazione
di
entità,
attributo,
chiave,
2. Il modello E/R e le regole di derivazione del
modello logico
3. Le principali tecniche per la documentazione
efficace dell’analisi di un problema
Competenze
1. Rilevare i limiti dell’organizzazione
integrata degli archivi
non
2. Comprendere i concetti e le tecniche per la
progettazione di basi di dati
3. Applicare correttamente le tecniche di
derivazione delle tabelle del modello relazionale
a partire dal modello E/R
4. Conoscere i concetti fondamentali del modello
relazionale
5. Saper applicare le principali operazioni sulle
tabelle
Contenuti
1. Modelli per database
2. Differenze tra i modelli
3. Modello relazionale
4. Operazioni relazionali
Metodologie
Lezione frontale
Lezione dialogata
“Brainstorming”
Spazi
Aula
Laboratorio
Strumenti
Libro di testo
Dispense e appunti
Computer
Proiettore
Verifiche
Periodiche e costanti, tese sia alla valutazione
globale del percorso formativo che ad una sua parte.
Vengono usate diverse tipologie:

Colloqui individuali

Interventi di vario genere

Questionari e Test

Prove in laboratorio
Valutazione
La valutazione sarà di due tipi:

Di tipo formativo (in relazione all’applicazione,
all’impegno, all’attenzione, al metodo di lavoro
dimostrato da ogni studente durante l’attività
didattica)

Di tipo sommativo (ricavata dalla misurazione delle
varie prove), in cui gli studenti dovranno dimostrare
di:
 avere acquisito conoscenze e informazioni
circa i contenuti
 avere maturato abilità e competenze specifiche
alla disciplina
Tempi
Lezione
Laboratorio
Verifica
Recupero e/o
Potenziamento
20 ore
0 ore
4 ore
6 ore
Cominciamo…
Le basi di dati
Basi di dati (database): archivi di dati, organizzati in modo
integrato attraverso tecniche di modellazione dei dati e gestiti sulle
memorie di massa dei computer attraverso appositi software
(DBMS), con l’obiettivo di raggiungere una grande efficienza nel
trattamento e nel ritrovamento dei dati.
Il database è una collezione di archivi di dati ben organizzati e ben strutturati, in
modo che possano costituire una base di lavoro per utenti diversi con
programmi diversi.
Es: i dati relativi agli articoli del magazzino di un’azienda possono essere
utilizzati dal programma che stampa le fatture e dal programma che stampa i
listini di magazzino.
FATTURE
LISTINI
ARTICOLI
Caratteristiche delle basi di dati
Efficienza e produttività di un’organizzazione di archivi:
possibilità di ritrovare facilmente le informazioni desiderate
(anche attraverso criteri di ricerca diversi) in termini di velocità
nell’elaborazione, di sicurezza dei dati e integrità delle
registrazioni.
Devono essere garantite:
• Consistenza degli archivi: i dati in essi contenuti devono essere
significativi ed essere effettivamente utilizzabili nelle applicazioni
dell’azienda.
• Sicurezza: impedire che il database venga danneggiato da
interventi accidentali o non autorizzati.
• Integrità: le operazioni effettuate sul database da utenti
autorizzati non devono provocare perdita di consistenza ai dati.
DBMS
DBMS (DataBase Management System):
prodotti software per la gestione di database.
Gli archivi che costituiscono la base di dati possono risiedere:
• su un unico computer;
• su computer diversi, facenti parte di una rete, i cui nodi possono
anche essere fisicamente lontani (database distribuiti).
Gli utenti della base di dati distribuita:
• elaborano localmente gli archivi che hanno a disposizione nel
proprio sistema;
• nello stesso tempo accedono in maniera remota a sistemi centrali
attraverso le linee di comunicazione.
Limiti degli archivi convenzionali
Le tecniche di gestione delle basi di dati nascono per superare i
problemi e i limiti insiti nelle tradizionali organizzazioni degli
archivi in modo non integrato.
Esempio di applicazione pratica
Si vogliono gestire i conti correnti di un’azienda bancaria
appartenenti alle diverse filiali e i movimenti contabili che
vengono effettuati sui conti.
Nella sede centrale della banca si vogliono organizzare le
informazioni riguardanti i conti delle filiali.
Per ciascun conto occorre registrare il numero di conto, il nome
dell’intestatario, l’indirizzo, il codice della filiale e la descrizione
della filiale.
I/V
Limiti degli archivi convenzionali
Soluzione del problema con l’approccio tradizionale
Le informazioni vengono organizzate in un archivio i cui record
hanno il seguente tracciato:
NUMCONTO
NOME
INDIRIZZO
CODFILIALE
DESCRIZ
9
40
30
5
20
Al contempo, nelle filiali bisogna registrare le informazioni sui
movimenti effettuati sui conti: numero del conto, nome del
correntista, città, data del movimento, importo e causale.
Il record del file corrispondente possiede il seguente tracciato:
NUMCODICE
9
DESCRIZ
40
CITTA
20
DATA
8
IMPORTO
10
CAUSALE
3
II/V
Limiti degli archivi convenzionali
Quando si vogliono associare tra loro i dati contenuti nei due
archivi possono nascere problemi di questo tipo:
• i sono due campi con nomi diversi che rappresentano lo stesso
dato (NumConto e NumCodice);
• lo stesso dato viene rappresentato in formati diversi (Indirizzo
nel primo tracciato e Città nel secondo);
• ci sono due campi con lo stesso nome che rappresentano dati
diversi (Descriz nel primo archivio rappresenta la filiale e nel
secondo l’intestatario del conto);
NUMCONTO
NOME
INDIRIZZO
CODFILIALE
DESCRIZ
9
40
30
5
20
NUMCODICE
9
DESCRIZ
40
CITTA
20
DATA
8
IMPORTO
10
CAUSALE
3
III/V
Limiti degli archivi convenzionali
Quando si vogliono associare tra loro i dati contenuti nei due
archivi possono nascere problemi di questo tipo:
• c’è ridondanza di dati (la descrizione della filiale è ripetuta per
ogni conto nel primo tracciato, il nome e la città del correntista
vengono ripetuti per ogni movimento);
• il fatto che gli stessi dati compaiano in due archivi diversi può
causare anomalie in fase di aggiornamento e quindi problemi di
inconsistenza (se il dato viene modificato in un archivio e non
nell’altro).
NUMCONTO
NOME
INDIRIZZO
CODFILIALE
DESCRIZ
9
40
30
5
20
NUMCODICE
9
DESCRIZ
40
CITTA
20
DATA
8
IMPORTO
10
CAUSALE
3
III/V
Limiti degli archivi convenzionali
Quali sono le cause?
RIDONDANZA DEI DATI
(Gli stessi dati compaiono in maniera duplicata)
INCONGRUENZA
(se il dato viene aggiornato in un archivio
e non in un altro, oppure se sono presenti
valori diversi per lo stesso dato)
INCONSISTENZA DEI DATI
(i dati a disposizione non sono più affidabili, perché non si
sa in modo certo quale dei diversi valori sia quello corretto)
Tutto ciò deriva dal fatto che i dati sono organizzati in archivi
diversi, in maniera non integrata.
IV/V
Limiti degli archivi convenzionali
Soluzione
Individuare con precisione quali sono gli elementi che
caratterizzano l’applicazione.
Associamo a ciascuno di essi un archivio, il cui tracciato contiene
i campi che individuano l’elemento e una chiave (tipicamente un
codice).
La chiave identifica univocamente il record all’interno
dell’archivio e consente di stabilire legami con gli altri archivi.
• archivio delle filiali, con codice filiale e descrizione filiale;
• archivio dei conti, con codice conto, nome del correntista,
indirizzo, città, codice filiale di appartenenza;
• archivio dei movimenti, con numero del movimento, data,
importo, causale, codice del conto sul quale è stato effettuato il
movimento.
V/V
Limiti degli archivi convenzionali
CODFILIALE
5
DESCRIZ
20
NUMCONTO
NOME
INDIRIZZO
CITTA
FILIALE
9
40
30
20
5
NUMMOV
DATA
IMPORTO
CAUSALE
CODICE
6
8
10
3
9
• archivio delle filiali, con codice filiale e descrizione filiale;
• archivio dei conti, con codice conto, nome del correntista,
indirizzo, città, codice filiale di appartenenza;
• archivio dei movimenti, con numero del movimento, data,
importo, causale, codice del conto sul quale è stato effettuato il
movimento.
V/V
Archivi integrati
La teoria dei database introduce una nuova metodologia di
organizzazione degli archivi di dati, con l’obiettivo di superare i
limiti visti.
Caratteristiche fondamentali:
• indipendenza dalla struttura fisica dei dati: i programmi
applicativi sono indipendenti dai dati fisici;
• indipendenza dalla struttura logica dei dati: i programmi
applicativi sono indipendenti dalla struttura logica con cui i dati
sono organizzati negli archivi;
• utilizzo da parte di più utenti: i dati organizzati in un unico
database possono essere utilizzati da più utenti con i loro
programmi, consentendo anche una visione solo parziale del
database da parte del singolo utente;
• eliminazione della ridondanza: gli stessi dati non compaiono
più volte in archivi diversi;
I/II
Archivi integrati
• facilità di accesso: il ritrovamento dei dati è facilitato e svolto
con velocemente;
• integrità dei dati: vengono previsti controlli per evitare anomalie
ai dati causate dai programmi e dalle applicazioni degli utenti;
• sicurezza dei dati: sono previste procedure di controllo per
impedire accessi non autorizzati ai dati contenuti nel database e di
protezione da guasti accidentali;
• uso di linguaggi per la gestione del database: il database viene
gestito attraverso comandi per la manipolazione dei dati in esso
contenuti e comandi per effettuare interrogazioni alla base di dati,
al fine di ottenere le informazioni desiderate.
II/II
I modelli per il database
Il database è un modello della realtà considerata.
I contenuti della base di dati rappresentano gli stati in cui si trova
la realtà da modellare.
I cambiamenti che vengono apportati alla base di dati
rappresentano gli eventi che avvengono nell’ambiente in cui opera
l’azienda.
CONTENUTI DEL DB
CAMBIAMENTI NEL DB
STATI DELLA REALTA’
EVENTI NELLA REALTA’
L’uso dei dati organizzati in un database presuppone un attento
lavoro di progettazione iniziale, che viene fatto con riferimento
ai dati che si vogliono memorizzare e successivamente elaborare.
I/II
I modelli per il database
Novità rispetto all’organizzazione convenzionale degli archivi:
Il progetto è indipendente:
• dal computer,
• dai supporti fisici destinati a contenere le informazioni
• dalle caratteristiche del DBMS.
Ciò consente alla base di dati di evolvere nel tempo insieme alla
realtà aziendale per la quale è stata progettata, con il crescere delle
esigenze degli utenti e della necessità di informazioni.
A partire dallo schema concettuale entità/associazioni, un database
può essere progettato e realizzato passando al modello logico,
cioè alle strutture che consentono di organizzare i dati per
consentire le operazioni di manipolazione e di interrogazione.
II/II
Flat file
La soluzione più semplice consiste nel costruire un database con
una struttura di dati formata da un unico file.
Questa struttura, detta flat file, è adatta solo per basi di dati
estremamente semplici.
Una struttura flat file non è efficiente per la maggior parte delle
applicazioni gestionali.
Nello sviluppo della teoria dei database sono emersi
principalmente tre tipi diversi di modelli per le basi di dati:
1. Modello gerarchico
2. Modello reticolare
3. Modello relazionale
Modello gerarchico
E’ particolarmente adatto per rappresentare situazioni nelle quali è
possibile fornire ai dati una struttura nella quale ci sono entità che
stanno in alto ed entità che stanno in basso, secondo uno schema
ad albero, nel quale i nodi rappresentano le entità e gli archi
rappresentano le associazioni.
Struttura di dati gerarchica: insieme ordinato di alberi.
Un tipo di albero nel database gerarchico è formato da un unico
record radice e da un insieme ordinato di sottoalberi di livello
inferiore.
Un sottoalbero a sua volta consiste in un singolo record (radice
del sottoalbero) e da un insieme di sottoalberi e così via.
Modello gerarchico: esempio
Modello che rappresenta le aree di
interesse per un’azienda che vende
tramite agenti, i quali hanno i clienti e gli
ordini ricevuti.
Ogni ordine è composto da una o più
righe che fanno riferimento ai prodotti
venduti.
L’albero ha come radice il record Agente,
il quale a sua volta ha due sottoalberi con
la radice in Cliente e Ordine.
Entrambi hanno sottoalberi di livello più
basso con le righe dell’ordine e gli articoli
delle righe.
AGENTE
CLIENTE
ORDINE
ORDINE
RIGA
RIGA
ARTICOLO
ARTICOLO
Modello gerarchico
Il modello gerarchico è particolarmente adatto a
rappresentare le associazioni 1:N (uno a molti).
Presenta dei limiti, soprattutto nella rigidità della
struttura di dati creata (talvolta non riesce ad
evitare la ridondanza dei dati).
Modello reticolare
Nel modello reticolare le entità rappresentano i nodi e le
associazioni rappresentano gli archi di uno schema a grafo
orientato: si tratta di una estensione del modello di albero
gerarchico (sono consentite anche associazioni tra entità che
stanno in basso, e non solo dall’alto verso il basso).
Un database reticolare consiste di due insiemi di dati:
• un insieme di record
• un insieme di legami
I tipi record sono fatti di campi tra i quali ci deve essere anche un
campo chiave, mentre i legami sono realizzati memorizzando le
coppie di chiavi delle entità associate.
Modello reticolare: esempio
Non esiste una gerarchia predefinita tra le entità.
Un record figlio può avere un numero qualsiasi di padri: in
questo modo vengono evitate situazioni di ripetizione di dati
uguali.
CA
CC
AGENTE
CA
CLIENTE
CO
CO
ORDINE
CR
RIGA
CR
CC
CO
CA
ARTICOLO
• La gestione delle informazioni è più complessa (in quanto deve
essere utilizzata una struttura a grafo).
• Un database costruito secondo il modello reticolare può produrre
prestazioni più elevate.
Modello relazionale
Rappresenta il database come un insieme di tabelle.
E’ considerato attualmente il modello più semplice ed efficace,
perché:
• è più vicino al modo consueto di pensare i dati;
• si adatta in modo naturale alla classificazione e alla
strutturazione dei dati.
AGENTE
ORDINI
CLIENTE
RIGHE
ARTICOLI
Confronto tra i modelli
1. I modelli gerarchico e reticolare sono diventati obsoleti per
il mercato e per la ricerca, che sono orientati verso il
modello relazionale negli anni più recenti.
2. I primi due modelli furono definiti attraverso un processo
di astrazione da sistemi già implementati, mentre il
modello relazionale è stato definito a livello teorico prima
di qualsiasi implementazione sul computer.
3. Le operazioni sui database gerarchici e reticolari sono
complesse, agiscono su singoli record e non su gruppi di
record.
I database orientati agli oggetti
Database orientati agli oggetti (OODB, Object Oriented
DataBase): gestiscono oggetti e classi.
• utilizzano concetti tipici della programmazione ad oggetti (es.
metodo, ereditarietà);
• accettano sottoclassi di oggetti;
• ogni oggetto ha una propria identità.
Favoriscono l’avvicinamento tra programmi applicativi e DB,
perché permettono di usare tipi di dati definiti dall’utente e di
associare ai dati routine di codice che rappresentano le modalità di
accesso ai dati: viene applicato il concetto di oggetto al DB.
Consente di utilizzare tecnologie più avanzate insieme alle
prestazioni tipiche dei linguaggi utilizzati nella programmazione
ad oggetti, come il C++.
Modello relazionale: concetti di base
Il modello relazionale si basa sul concetto matematico di
relazione tra insiemi di oggetti.
Cos’è una relazione?
Definizione matematica
Dati n insiemi A1, A2,…, An, si dice relazione un sottoinsieme
dell’insieme di tutte le n-uple a1, a2, …, an che si possono costruire
prendendo nell’ordine un elemento a1 dal primo insieme A1, a2 dal
secondo insieme A2, e così via.
n = grado della relazione
Ai = dominio i-esimo della relazione
a1, … an = tupla
L’insieme delle tuple si chiama cardinalità della relazione.
I/III
Modello relazionale: concetti di base
La relazione è rappresentata con
una tabella, avente tante colonne
quanti sono i domini (grado) e
tante righe quante sono le n-uple
(cardinalità).
I nomi dei domini sono i nomi
delle colonne, i valori che
compaiono in una colonna sono
omogenei tra loro (appartengono
allo stesso dominio).
A1
A2
………
AN
a1
a2
………
an
Domini
cardinalità
tupla
grado
La relazione (collezione di tuple) è un’entità, ogni tupla è
un’istanza dell’entità, le colonne sono gli attributi dell’entità, il
dominio è l’insieme dei possibili valori di un attributo.
II/III
Modello relazionale: concetti di base
La
chiave
della
relazione è un attributo
o una combinazione di
attributi che identificano
univocamente le tuple:
ogni riga della tabella
possiede valori diversi
per l’attributo (o gli
attributi) chiave.
CLIENTI
FATTURE
PAGAMENTI
RIGHE FATTURE
Il modello relazionale di un database è un insieme di tabelle, sulle
quali si possono effettuare operazioni e tra le quali possono essere
stabilite delle associazioni.
III/III
Modello relazionale: requisiti
a. tutte le righe della tabella contengono lo stesso numero di
colonne;
b. gli attributi rappresentano informazioni elementari (atomiche),
ovvero non scomponibili ulteriormente;
c. i valori assunti da un campo appartengono al dominio dei valori
possibili per quel campo, ovvero sono omogenei tra loro;
d. in una relazione, ogni riga è diversa da tutte le altre, ovvero
esiste un attributo o una combinazione di attributi che
identificano univocamente la n-upla;
e. le n-uple compaiono nella tabella secondo un ordine non
prefissato, ovvero non è rilevante il criterio con il quale le
righe sono sistemate nella tabella.
Integrità sull’entità
Ogni dato elementare contenuto nel modello relazionale deve
essere accessibile attraverso la combinazione di:
- nome della tabella,
- nome e valore della chiave,
- nome della colonna contenente il dato.
Nessuna componente della chiave primaria di una tabella può
avere valore nullo.
Le regole di derivazione del modello logico
Le tabelle vengono ricavate dal modello E/R applicando le regole di
derivazione:
1. ogni entità diventa una relazione;
2. ogni attributo di un’entità diventa un attributo della relazione;
3. ogni attributo della relazione eredita le caratteristiche dell’attributo
dell’entità da cui deriva;
4. l’identificatore univoco di un’entità diventa la chiave primaria della
relazione derivata;
5. l’associazione uno a uno diventa un’unica relazione, che contiene gli
attributi della prima e della seconda entità;
6. nell’associazione uno a molti, l’identificatore univoco dell’entità di
partenza diventa chiave esterna (foreign key) dell’entità di arrivo
associata;
7. l’associazione con grado molti a molti diventa una nuova relazione,
composta dagli identificatori univoci delle due entità e dagli eventuali
attributi dell’associazione.
Operazioni relazionali
Agiscono su una relazione per ottenere una nuova relazione.
Effettuano le interrogazioni alle basi di dati per ottenere le
informazioni desiderate, estraendo da una tabella una sottotabella o
combinando tra loro due o più tabelle.
Relativo a
AGENTE
Abbinato a
CLIENTI
AGENTI
Codice
Agente
CLIENTE
Nome
Agente
Indirizzo
Agente
Codice
Zona
Codice
Cliente
Ragione
Sociale
Codice
Attività
Partita
IVA
Indirizzo
Cliente
Codice
Agente
Selezione
La selezione genera una nuova relazione costituita solo dalle nuple della relazione di partenza che soddisfano una determinata
condizione: vengono selezionate le righe con i valori degli attributi
corrispondenti alla condizione prefissata.
La relazione ottenuta possiede tutte le colonne della relazione di
partenza e quindi ha lo stesso grado; la cardinalità della nuova
relazione può essere minore o uguale alla tabella di partenza
(solitamente è minore).
Selezione: esempio
Se si vuole l'elenco dei clienti della
provincia di Milano, si effettua sulla
relazione Clienti una selezione per
Provincia =“MI”
estraendo dalla tabella tutte le righe che
hanno quel valore per l'attributo provincia,
ottenendo così una nuova tabella.
Proiezione
La proiezione genera una nuova relazione
estraendo dalla tabella iniziale due o più
colonne corrispondenti agli attributi
prefissati.
La tabella ottenuta potrebbe avere più righe
uguali: in questo caso occorre richiedere
che ne venga conservata solo una.
La relazione risultante ha grado minore o
uguale al grado della relazione di partenza;
la cardinalità è uguale a quella di partenza.
Proiezione: esempio
Se si vuole l'elenco dei codici di attività
dei clienti con i relativi codici degli agenti,
occorre applicare alla relazione Clienti
l’operazione di proiezione secondo gli
attributi CodiceAttività e CodiceAgente.
Congiunzione
La congiunzione (join) serve a combinare due relazioni aventi uno
o più attributi in comune, generando una nuova relazione
contenente le righe della prima e della seconda tabella, che
possono essere combinate secondo i valori uguali dell’attributo
comune.
a1
b1
b1
c1
a1
b1
c1
a2
b2
b2
c2
a2
b2
c2
a3
b3
b3
c3
a3
b3
c3
Il grado della relazione generata è uguale a N1+N2–1, dove N1 e
N2 sono i gradi delle relazioni di partenza; la cardinalità non è
prevedibile a priori.
I/III
Congiunzione: esempio
L’elenco dei clienti e dei relativi agenti
si ottiene applicando l’operazione di
congiunzione tra la relazione Clienti e la
relazione Agenti secondo l’attributo
comune CodiceAgente.
Combinazioni di operazioni
Gli operatori possono essere applicati alle tabelle anche in
successione, combinandoli tra loro in vario modo.
Vengono così effettuate interrogazioni sulle relazioni ottenute
come risultato di un’interrogazione precedente.
Quesito
Ottenere l’elenco delle ragioni sociali e degli agenti per i clienti
che hanno il codice di attività pari a 3109.
Occorre applicare la seguente sequenza di operazioni:
• Selezione di Clienti per CodiceAttività = 3109
• Congiunzione della relazione ottenuta su CodiceAgente e di
Agenti su CodiceAgente
• Proiezione della relazione ottenuta su RagioneSociale,
NomeAgente
Operazioni tra tabelle
con struttura omogenea
Due tabelle hanno struttura omogenea se hanno colonne con lo
stesso numero di attributi, dello stesso tipo e nello stesso ordine.
In questo caso si possono applicare le usuali operazioni sugli
insiemi.
Unione
Genera una nuova tabella che contiene
le righe della prima e della seconda
tabella con riduzione a una di quelle
ripetute.
Operazioni tra tabelle
con struttura omogenea
Intersezione
Genera, a partire da due tabelle
omogenee, una nuova tabella che
contiene soltanto le righe comuni.
Differenza
Genera una nuova tabella che contiene
soltanto le righe della prima tabella che
non sono contenute nella seconda.
Fine