11. Archivi e basi di dati
Ing. Simona Colucci
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Memorie di massa
•
Memoria di tipo persistente
– Un dato è persistente se è mantenuto integralmente quando il calcolatore
viene spento oppure si verifica un errore
•
Obiettivi nell’uso della memoria di massa:
– Memorizzare in modo compatto grandi quantità di dati
– Accesso efficiente e selettivo ai dati
•
Possiamo classificare i dispositivi di memoria di massa in:
– Dispositivi ad accesso sequenziale (nastri)
– Dispositivi ad accesso diretto (dischi)
•
•
Basati su tecnologia magnetica: l’informazione è memorizzata come
stato di magnetizzazione(positivo o negativo) delle particelle ferrose
presenti sulla pellicola magnetica, indotto da un campo elettrico
La tecnologia ottica è sempre più diffusa (per i dischi): lo spazio
necessario per lo stato magnetico viene ulteriormente ridotto grazie al
laser, che porta maggiore precisione e quindi maggiore capacità
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Nastri (1)
•
•
•
•
•
Accesso sequenziale
Sul nastro magnetico sono incise
delle piste orizzontali, parallele fra
loro
I dati vengono registrati
serialmente su ogni traccia
Il nastro scorre al di sopra della
testina di lettura/scrittura che
genera campi magnetici per
scrivere e ne rimuove per leggere
Ai dati sono aggiunti alcuni bit di
controllo per consentire il
rilevamento di errori (es. bit di
parità)
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Bit 1
2
3
4
5
6
7
8
Bit di parità
Nastri (2)
•
•
•
I dati sono organizzati sul nastro in zone contigue, dette record
Sono previste zone prive di dati tra i record (inter-record gap) e
all’inizio(che consente l’accelerazione necessaria per portare i dati
sulla testina ad una certa velocità)
Parametri principali:
– Densità di memorizzazione: è misurata in bit per inch (bpi)
– Capacità di memorizzazione = densità  lunghezza (in pollici)
– Velocità di movimento del nastro
•
•
Alcuni nastri hanno le tracce poste diagonalmente e sono letti da
testine rotanti (scansione elicoidale)
I nastri sono attualmente impiegati solo per il backup ( e
l’eventuale restore)
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Dischi (1)
•
•
•
•
•
Accesso diretto
Disk-pack: un certo numero di piatti
coperti da uno strato magnetico
Ciascun piatto ha una serie di cerchi
concentrici (tracce) su entrambi i lati
Le tracce sono suddivise in spicchi di
ugual grandezza (settori)
Le testine di lettura/scrittura si
spostano (tutte insieme)
radialmente tra le varie tracce
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Dischi (2)
•
•
•
L’inizio e la fine dei settori sono marcati con sequenze particolari
di bit (formattazione)
Blocco di ingresso/uscita: gruppo di dati che vengono letti o scritti
con un’unica operazione di ingresso/uscita
Ciascun blocco è individuato dalla terna:
(num. superficie, num. traccia, num. settore)
• Una zona di memoria (il buffer) contiene i dati prima che vengano
scritti su disco o dopo essere stati letti da disco
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Dischi (3)
•
Accesso ai dati:
– Spostamento della testina verso la traccia richiesta (tempo di seek)
– Attesa del passaggio del settore richiesto (tempo di latenza)
• Mediamente, pari a metà del tempo di rotazione
– Trasferimento dei dati da/verso il buffer (tempo di trasferimento)
•
Quindi: ti/u = tseek + tlat + ttrasf
Cilindro: l’insieme delle tracce, appartenenti a tutte le superfici,
poste alla stessa distanza dal centro: i dati di uno stesso file
vengono messi sullo stesso cilindro per evitare il seek
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Altre memoria di massa
•
•
Floppy disk: magnetico
Dischi ottici
– CD-ROM
– CD-R/RW
– DVD
•
Chiavi USB: memorie a stato solido Flash EPROM
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Organizzazione degli archivi
•
•
Le informazioni vengono organizzate in memoria in record logici
Blocchi di ingresso/uscita e record logici:
– In un medesimo blocco di ingresso/uscita può trovare posto un certo
numero di record logici
– Esistono record logici così grandi da occupare più blocchi di
ingresso/uscita
•
•
L’accesso ad un record logico comporta il trasferimento di uno o
più blocchi di ingresso/uscita
Coefficiente di riempimento di un file:
numero di byte allocati a record logici nel file
numero di byte dei blocchi fisici allocati al file
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Basi di dati
•
•
Base di dati (o database): insieme i dati, raccolti in base a
precise regole, e organizzati in strutture piuttosto rigide
DBMS: sistema software che organizza e gestisce basi di dati
– Opera al di sopra del sistema operativo
– Offre linguaggi specifici per l’organizzazione e la gestione dei
dati
– Offre meccanismi efficienti per l’accesso ai dati
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Basi di dati e archivi separati (1)
Dati gestiti basandosi sui file
• Più applicazioni accedono ai file
• Problemi:
–
–
–
–
Inconsistenza e ridondanza dei dati
Riservatezza dei dati
Integrità dei dati
Concorrenza
Progr. 1
File
Progr. 2
File modificati
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Progr. 3
Basi di dati e archivi separati (2)
Dati gestiti da un DBMS
• Vantaggi:
– I dati hanno una sola rappresentazione
– L’accesso alla base di dati viene disciplinato dal DBMS
– Alcuni vincoli di integrità possono essere definiti e verificati in modo automatico
Progr. 1
Progr. 2
Progr. 3
DBMS
Base di dati
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Modelli per la gestione dei dati
•
Modello dei dati:collezione di costruttori di tipo utilizzabili da un
DBMS
– Gerarchico: basato su strutture ad albero
– Reticolare: basato su strutture a grafo
– Relazionale: basato sul concetto di insieme e sulla strutturazione dei
dati tramite tabelle
– Ad oggetti: estende alle basi di dati alcune caratteristiche dei
linguaggi di programmazione orientati agli oggetti
•
Schema di una base di dati: descrizione dei dati di uno specifico
contesto applicativo
– Definita tramite un attività detta database design
– Istanza (od occorrenza) di una base di dati: valore assunto dalla base
di dati in un particolare istante di tempo
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Categorie di linguaggi
• Linguaggi forniti da un DBMS
– Data Definition Language (DDL):
• Utilizzato per definire lo schema della base di dati
• Lo schema viene salvato nel dizionario dei dati
– Data Manipulation Language (DML):
• Per formulare interrogazioni (o query) sulla base di dati
• Per modificare il contenuto della base di dati
• Nel seguito vedremo il linguaggio SQL (che supporta
entrambi questi aspetti)
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Livelli di astrazione
•
•
Livelli di astrazione:
– Fisico: descrive la base di
dati come un insieme di
record in memoria di massa
– Logico: descrive la
struttura di ciascun dato e i
collegamenti tra dati diversi
– Esterno: presenta i dati
così come vengono visti da
un particolare utente o da
una classe di utenti
Utente 1 Utente 2 Utente 3 Utente 4
Descrizione
esterna 1
Descrizion
e esterna 2
Utente n
Descrizion
e esterna n
Descrizione
logica
Livelli di indipendenza:
– Fisica: ridefinire il livello
fisico senza modificare il
livello logico
– Logica: definire nuovi
schemi esterni senza
modificare la struttura
logica
Descrizione
interna
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Archivi
Transazioni
•
•
Transazioni: robuste esecuzioni di programma che non lasciano mai la
base di dati in uno stato inconsistente
Proprietà “acide” delle transazioni:
– Atomicità: vi sono solo due possibili terminazioni
• Successo: tutte le attività della transazione sono andate a buon fine, la base di
dati è aggiornata (commit)
• Fallimento: qualche attività della transazione non va a buon fine, la transazione
fallisce tutta, la base di dati non viene modificata (rollback)
– Consistenza: i vincoli di integrità dei dati non sono mai violati
– Isolamento: transazioni concorrenti sono isolate le une dalle altre
– Durabilità: una volta completata con successo, l’effetto della transazione
sulla base di dati è permanente
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Utenti di una base di dati
•
Data Base Administrator (DBA):
– Definizione degli schemi esterni, logico e fisico
– Definizione dei vincoli di integrità e dei requisiti di riservatezza
– Per questi compiti, il DBA utilizza il DDL
•
Terminalista:
– Interagisce con un’applicazione che a sua volta si interfaccerà con la base
di dati
•
Programmatore:
– Scrive le applicazioni e le rende disponibili agli utenti
– Utilizza il DML per interfacciare applicazione e base di dati
•
Utente occasionale:
– Formula query non previste dalle applicazioni, usando il DML
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Base di dati relazionale
•
Relazione, una tabella caratterizzata da:
– Un numero fisso di colonne (dette attributi); ciascuna colonna assume
valori estratti da uno stesso dominio
– Un numero variabile di righe (dette tuple)
– Grado di una relazione: il numero di colonne
– Cardinalità di una relazione: il numero di righe
– Schema di una relazione: il nome della relazione seguito dai nomi dei suoi
attributi; a ciascun attributo è associato un dominio
– Istanza di una relazione: insieme delle tuple presenti nella base di dati in
un determinato istante (quindi, varia nel tempo)
•
Base di dati relazionale, un insieme di relazioni:
– Schema di una base di dati: l’elenco delle relazioni
– Istanza di una base di dati: insieme delle istanze delle relazioni
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Esempio: schema base di dati
Relation
(NUMERO-CC:
NOME:
INDIRIZZO:
SALDO:
CONTO-CORRENTE
integer,
char (20),
char (20),
decimal (14, 2)).
Relation
MOVIMENTO
(NUMERO-CC: integer,
DATA-MOV: date,
NUMERO-MOV: integer,
IMPORTO:
decimal (14, 2),
CAUSALE:
char (1)).
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Esempio: istanza base di dati
CONTO-CORRENTE
NUMERO-CC
NOME
INDIRIZZO
SALDO
1
Rossi
v. Anemoni 5
3,678.00
2
Bianchi
v. Bolla 64
3
Brunelli
v. Po 41
6,777.50
4
Grandi
v. Romolo 3
3,400.00
664.00
MOVIMENTO
NUMERO-CC
DATA-MOV
NUMERO-MOV
IMPORTO
CAUSALE
1
14-01-03
1
+200.00
V
1
14-01-03
2
-500.00
P
1
27-01-03
1
+2,700.00
S
4
27-01-03
1
+1,850.40
S
3
25-01-03
1
-650.00
A
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Restrizione e chiave
Restrizione: di una tupla t sugli attributi A di R, indicata con t[A], è
data dalla lista dei valori assunti da t sugli attributi A di R
• Chiave di una relazione R: un sottoinsieme K degli attributi di R,
•
tale che valgano:
– Unicità: in una qualunque istanza di R, non possono esistere due tuple
distinte di R la cui restrizione su K sia uguale
– Minimalità: non è possibile sottrarre a K un attributo senza che la
condizione di unicità cessi di valere
•
Ogni relazione deve avere almeno una chiave
– Se la relazione ha più chiavi, una di esse sarà la chiave primaria
CONTO-CORRENTE (NUMERO-CC; NOME, INDIRIZZO, SALDO)
MOVIMENTO (NUMERO-CC, DATA-MOV, NUMERO-MOV, IMPORTO, CAUSALE)
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Il linguaggio SQL
•
•
•
•
E’ presente in tutti i DBMS relazionali
Standard ANSI e ISO
Mette a disposizione sia un DDL, sia un DML
DDL: permette di creare lo schema della base di darti
– CREATE TABLE: crea una relazione a livello logico
– CREATE INDEX: crea indici per una certa relazione; gli indici permettono
di accedere ai dati con maggiore efficienza
– DROP TABLE: cancella una relazione
– DROP INDEX: cancella un indice
•
DML: permette di scrivere le query
– Basato sull’algebra relazionale
– Operatori: selezione, proiezione, join, unione e differenza
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Il linguaggio SQL: select
•
•
L’istruzione che permette di formulare le query
Sintassi:
SELECT nomi di attributi
FROM nomi di relazioni
WHERE condizioni di ricerca sui dati
•
Le tre clausole individuano rispettivamente:
– gli attributi da includere nel risultato;
– le relazioni da cui estrarre i dati;
– la condizione di ricerca. Questa condizione può essere assai complessa e
coinvolgere nel suo interno altri blocchi SQL
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Le applicazioni
•
•
•
•
SQL non è adatto agli utenti finali delle basi di dati
Si realizzano applicazioni che permettono un’interazione semplice e
schematica
L’informazione scambiata con l’utente durante l’esecuzione di
un’applicazione è mostrata in una maschera (o form)
Esistono strumenti software per la gestione delle maschere che
permettono al programmatore di:
– Definire le maschere
– Associare ogni maschera l’operazione da eseguire sulla base di dati
•
L’utente finale interagisce con le maschere e non vede né l’SQL, né lo
schema della base di dati
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Rapporti (o report)
•
•
Ulteriore modo per estrarre informazioni dalla base di dati
Caratteristiche tipiche:
– Destinati alla stampa o ad essere visualizzati in pagine Web
– Contengono grandi quantità di dati
– Generati periodicamente, senza interazioni con l’utente
•
Esistono strumenti software per la definizione dei rapporti (generatori di
report)
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014