Archivi e basi di dati
Vito Perrone
Corso di Informatica A per Gestionali
Memorie di massa
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
2
Indice
• Memorie di massa
• Organizzazione degli archivi
e basi di dati
• Basi di dati relazionali
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
3
Introduzione
• Memoria di tipo persistente
– Un dato è persistente se è mantenuto integralmente quando il
calcolatore viene spento oppure si verifica un errore
• Obiettivi:
– Memorizzare in modo compatto grandi quantità di dati
– Accesso efficientemente e selettivo ai dati
• Possiamo classificare i dispositivi di memoria di massa
in:
– Dispositivi ad accesso sequenziale (nastri)
– Dispositivi ad accesso diretto (dischi)
• Tipicamente, sono basati su tecnologia magnetica
• La tecnologia ottica è sempre più diffusa (per i dischi)
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
4
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
• Ai dati sono aggiunti
alcuni bit di controllo per
consentire il rilevamento
di errori (es. bit di parità)
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
Bit 1
2
3
4
5
6
7
8
Bit di parità
5
Nastri (2)
• I dati sono organizzati sul nastro in zone
contigue, dette record
• Sono previste zone prove di dati (gap) tra i record
e all’inizio
• 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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
6
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
Archivi e Basi di Dati
Copyright © 2004 - The McGraw-Hill
Companies, srl
Informatica A – V. Perrone
7
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
8
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
9
Altre memoria di massa
• Floppy disk: magnetico
• Dischi ottici
– CD-ROM
– CD-R/RW
– DVD
• Chiavi USB: memorie a stato solido Flash EPROM
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
10
Organizzazione degli archivi
e basi di dati
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
11
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
12
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
13
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
Progr. 3
File modificati
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
14
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
Progr. 1
– Alcuni vincoli di integrità
possono essere definiti
e verificati in modo
automatico
Progr. 1
Progr. 1
DBMS
Base di dati
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
15
Modelli per la gestione dei dati
• Modello dei dati:
– 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
Archivi e Basi di Dati
Copyright © 2004 - The McGraw-Hill
Companies, srl
Informatica A – V. Perrone
16
Categorie di linguaggi
• 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)
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
17
Livelli di astrazione
• Livelli di astrazione:
Utente 1 Utente 2 Utente 3 Utente 4
– Fisico: descrive
la base di dati come
un insieme di record
Descrizione
Descrizion
in memoria di massa
esterna 1
e esterna 2
– Logico: descrive
la struttura di ciascun dato
e i collegamenti tra dati diversi
– Esterno: presenta i dati così
Descrizione
come vengono visti da un
logica
particolare utente o da una
classe di utenti
• Livelli di indipendenza:
– Fisica: ridefinire il livello fisico
senza modificare il livello logico
– Logica: definire nuovi schemi
esterni senza modifica la
struttura logica
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
Utente n
Descrizion
e esterna n
Descrizione
interna
Archivi
18
Transazioni
• Transazioni: 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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
19
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
20
Basi di dati relazionali
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
21
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
22
Esempio: schema dase di dati
Relation
CONTO-CORRENTE
(NUMERO-CC:
integer,
NOME:
char (20),
INDIRIZZO:
char (20),
SALDO:
decimal (14, 2)).
Relation
MOVIMENTO
(NUMERO-CC:integer,
DATA-MOV:
date,
NUMERO-MOV:
integer,
IMPORTO:
decimal (14, 2),
CAUSALE:
char (1)).
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
23
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
24
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)
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
25
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
26
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
27
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
28
Maschere: definizione
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
29
Maschere: uso
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
30
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)
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
31
Altri linguaggi
• Linguaggi di quarta generazione
• Consentono di realizzare applicazioni specificandole a
un alto livello
• Il progettista usa tali linguaggi interagendo con loro
tramite interfacce a menu e maschere
Copyright © 2004 - The McGraw-Hill
Companies, srl
Archivi e Basi di Dati
Informatica A – V. Perrone
32