Sei sulla pagina 1di 13

Sommario

Introduzione alle basi di dati  Concetti di base


 Informazioni e dati
 Archivi e basi di dati
 Sistemi di gestione di basi di dati
 Schemi e istanze

Marco La Cascia (2006) Introduzione alle basi di dati 2

Base di dati Punti di vista


 Insieme organizzato di dati utilizzati per il  Metodologico
supporto allo svolgimento di attività (di un  Tecnologico
ente, azienda, ufficio, persona)

Marco La Cascia (2006) Introduzione alle basi di dati 3 Marco La Cascia (2006) Introduzione alle basi di dati 4

1
Sistema informativo Sistema informativo (2)
 Componente di una organizzazione che  ogni organizzazione ha un sistema informativo,
gestisce (acquisisce, elabora, conserva, eventualmente non esplicitato nella struttura;
produce) le informazioni di interesse (cioè  quasi sempre, il sistema informativo è di supporto
utilizzate per il perseguimento degli scopi ad altri sottosistemi, e va quindi studiato nel
contesto in cui è inserito
dell’organizzazione )
 il sistema informativo è di solito suddiviso in
sottosistemi più o meno fortemente integrati

Marco La Cascia (2006) Introduzione alle basi di dati 5 Marco La Cascia (2006) Introduzione alle basi di dati 6

Sistemi informativi e automazione Sistema Informatico


 Il concetto di “sistema informativo” è  porzione automatizzata del sistema
indipendente da qualsiasi informativo:
automatizzazione:  parte del sistema informativo che gestisce
 esistono organizzazioni la cui ragion d’essere informazioni con tecnologia informatica
è la gestione di informazioni (p. es. servizi Sistema azienda
anagrafici e banche) e che operano da secoli. Sistema organizzativo

Sistema informativo

Sistema informatico

Marco La Cascia (2006) Introduzione alle basi di dati 7 Marco La Cascia (2006) Introduzione alle basi di dati 8

2
Sistema informativo e sistema
informatico Gestione delle informazioni
 Anche prima di essere automatizzati, molti  Nelle attività umane, le informazioni vengono
sistemi informativi si sono evoluti verso una gestite (registrate e scambiate) in forme diverse:
 idee informali
razionalizzazione e standardizzazione delle
 linguaggio naturale (scritto o parlato, formale o
procedure e dell’organizzazione delle colloquiale, in una lingua o in un’altra)
informazioni  disegni, grafici, schemi
 numeri e codici
 e su vari supporti
 memoria umana, carta, dispositivi elettronici

Marco La Cascia (2006) Introduzione alle basi di dati 9 Marco La Cascia (2006) Introduzione alle basi di dati 10

Gestione delle informazioni Informazioni e dati


 Nelle attività standardizzate dei sistemi  Nei sistemi informatici (e non solo), le
informativi complessi, sono state introdotte informazioni vengono rappresentate in modo
col tempo forme di organizzazione e essenziale, spartano: attraverso i dati
codifica delle informazioni  Dal Vocabolario della lingua italiana (1987)
 Ad esempio, nei servizi anagrafici si è informazione: notizia, dato o elemento che consente di
avere conoscenza più o meno esatta di fatti, situazioni,
iniziato con registrazioni discorsive e poi
modi di essere.
 nome e cognome dato: ciò che è immediatamente presente alla conoscenza,
 estremi anagrafici prima di ogni elaborazione; (in informatica) elementi di
 codice fiscale informazione costituiti da simboli che debbono essere
elaborati.
Marco La Cascia (2006) Introduzione alle basi di dati 11 Marco La Cascia (2006) Introduzione alle basi di dati 12

3
Dati e informazioni Perché i dati?
 I dati hanno bisogno di essere interpretati  La rappresentazione precisa di forme più
ricche di informazione e conoscenza è
Esempio difficile
‘Mario’ ’275’ su un foglio di carta sono due
dati.  I dati costituiscono spesso una risorsa
Se il foglio di carta viene fornito in risposta alla strategica, perché più stabili nel tempo di
domanda “A chi mi devo rivolgere per il problema altre componenti (processi, tecnologie,
X; qual è il suo numero di telefono?”, allora i dati
possono essere interpretati per fornire
ruoli umani)
informazione e arricchire la conoscenza.

Marco La Cascia (2006) Introduzione alle basi di dati 13 Marco La Cascia (2006) Introduzione alle basi di dati 14

DataBase Management System —


Base di dati DBMS
Sistema (prodotto software) in grado di
(accezione generica, metodologica) gestire collezioni di dati che siano
(anche):
supporto allo svolgimento delle attività  grandi (di dimensioni (molto) maggiori della
di un ente (azienda, ufficio, persona) memoria centrale dei sistemi di calcolo
utilizzati)
 persistenti (con un periodo di vita
(accezione specifica, metodologica e indipendente dalle singole esecuzioni dei
tecnologica) programmi che le utilizzano)
insieme di dati gestito da un DBMS  condivise (utilizzate da applicazioni diverse)

Marco La Cascia (2006) Introduzione alle basi di dati 15 Marco La Cascia (2006) Introduzione alle basi di dati 16

4
DBMS (2) Alcuni DBMS in commercio
 Sistema (prodotto software) in grado di gestire  Access
collezioni di dati garantendo:
 affidabilità (resistenza a malfunzionamenti hardware e  DB2
software)  Oracle
 privatezza (con una disciplina e un controllo degli
accessi).  Informix
 Come ogni prodotto informatico, un DBMS deve  Sybase
essere efficiente (utilizzando al meglio le risorse
di spazio e tempo del sistema) ed efficace  SQLServer
(rendendo produttive le attività dei suoi
utilizzatori).
 Interbase

Marco La Cascia (2006) Introduzione alle basi di dati 17 Marco La Cascia (2006) Introduzione alle basi di dati 18

Condivisione Possibili problemi


 Ogni organizzazione (specie se grande) è  Ridondanza:
divisa in settori o comunque svolge diverse  informazioni ripetute
attività
 Rischio di incoerenza:
 A ciascun settore o attività corrisponde un
 le versioni possono non coincidere
(sotto)sistema informativo
 Possono esistere sovrapposizioni fra i dati
di interesse dei vari settori
 Una base di dati è una risorsa integrata,
condivisa fra i vari settori
Marco La Cascia (2006) Introduzione alle basi di dati 19 Marco La Cascia (2006) Introduzione alle basi di dati 20

5
Archivi e basi di dati Archivi e basi di dati

Gestione Archivio 1: Gestione


orario lezioni orario lezioni orario lezioni

Base di dati
Gestione Archivio 2: Gestione
ricevimento ricevimento ricevimento

Marco La Cascia (2006) Introduzione alle basi di dati 21 Marco La Cascia (2006) Introduzione alle basi di dati 22

Le basi di dati sono condivise Efficienza


 Una base di dati e' una risorsa integrata,  Si misura (come in tutti i sistemi informatici) in
condivisa fra le varie applicazioni termini di tempo di esecuzione (tempo di risposta)
e spazio di memoria (principale e secondaria).
 conseguenze
 I DBMS, a causa della varietà di funzioni, non
 Attivita' diverse su dati in parte condivisi: sono necessariamente più efficienti dei file
 meccanismi di autorizzazione system.
 Attivita' multi-utente su dati condivisi:  L’efficienza è il risultato della qualità del DBMS e
 controllo della concorrenza delle applicazioni che lo utilizzano.

Marco La Cascia (2006) Introduzione alle basi di dati 23 Marco La Cascia (2006) Introduzione alle basi di dati 24

6
DBMS vs file system DBMS vs file system (2)
 La gestione di insiemi di dati grandi e persistenti è  Nei programmi tradizionali che accedono a file,
possibile anche attraverso sistemi più semplici — ogni programma contiene una descrizione della
gli ordinari file system dei sistemi operativi struttura del file stesso, con i conseguenti rischi di
 I file system prevedono forme rudimentali di incoerenza fra le descrizioni (ripetute in ciascun
condivisione: "tutto o niente". Nei DBMS, c’è programma) e i file stessi.
maggiore flessibilità  Nei DBMS, esiste una porzione della base di dati
 I DBMS estendono le funzionalità dei file system, (il catalogo o dizionario) che contiene una
fornendo più servizi ed in maniera integrata descrizione centralizzata dei dati, che può essere
utilizzata dai vari programmi.

Marco La Cascia (2006) Introduzione alle basi di dati 25 Marco La Cascia (2006) Introduzione alle basi di dati 26

Descrizioni dei dati nei DBMS Modello dei dati


 Descrizioni e rappresentazioni dei dati a  insieme di costrutti utilizzati per organizzare i dati
di interesse e descriverne la dinamica
livelli diversi
 componente fondamentale: meccanismi di
 permettono l’indipendenza dei dati dalla strutturazione (o costruttori di tipo)
rappresentazione fisica:
 come nei linguaggi di programmazione esistono
 i programmi fanno riferimento alla struttura a meccanismi che permettono di definire nuovi tipi,
livello più alto, e le rappresentazioni sottostanti così ogni modello dei dati prevede alcuni
possono essere modificate senza necessità di costruttori
modifica dei programmi
 ad esempio, il modello relazionale prevede il
 Precisiamo attraverso il concetto di costruttore relazione, che permette di definire
 modello dei dati insiemi di record omogenei
Marco La Cascia (2006) Introduzione alle basi di dati 27 Marco La Cascia (2006) Introduzione alle basi di dati 28

7
Organizzazione dei dati in un DB Schemi e istanze
Orario  In ogni base di dati esistono:
Insegnamento Docente Aula Ora  lo schema, sostanzialmente invariante nel
Analisi matem. I Luigi Neri N1 8:00 tempo, che ne descrive la struttura (aspetto
Basi di dati Piero Rossi N2 9:45 intensionale)
Chimica Nicola Mori N1 9:45  nell’esempio, le intestazioni delle tabelle
Fisica I Mario Bruni N1 11:45  l’istanza, i valori attuali, che possono cambiare
Fisica II Mario Bruni N3 9:45 anche molto rapidamente (aspetto
Sistemi inform. Piero Rossi N3 8:00 estensionale)
 nell’esempio, il “corpo” di ciascuna tabella

Marco La Cascia (2006) Introduzione alle basi di dati 29 Marco La Cascia (2006) Introduzione alle basi di dati 30

Architettura (semplificata) di un
Due tipi (principali) di modelli DBMS
 modelli logici: utilizzati nei DBMS esistenti utente
per l’organizzazione dei dati
 relazionale, reticolare, gerarchico, a oggetti Schema logico
 modelli concettuali: permettono di
rappresentare i dati in modo indipendente
da ogni sistema Schema interno
 il più noto è il modello Entity-Relationship

BD

Marco La Cascia (2006) Introduzione alle basi di dati 31 Marco La Cascia (2006) Introduzione alle basi di dati 32

8
Architettura semplificata di un
DBMS: schemi Indipendenza dei dati
 schema logico: descrizione della base di dati  il livello logico è indipendente da quello
nel modello logico (ad esempio, la struttura fisico:
della tabella)
 una tabella è utilizzata nello stesso modo
 schema fisico: rappresentazione dello qualunque sia la sua realizzazione fisica (che
schema logico per mezzo di strutture può anche cambiare nel tempo)
memorizzazione (file)

Marco La Cascia (2006) Introduzione alle basi di dati 33 Marco La Cascia (2006) Introduzione alle basi di dati 34

Architettura standard ANSI/SPARC


a tre livelli per DBMS Architettura ANSI/SPARC: schemi
utente utente utente
utente
utente schema logico: descrizione dell’intera base
Schema Schema Schema
di dati nel modello logico “principale” del
esterno esterno esterno DBMS
schema fisico: rappresentazione dello
Schema logico
schema logico per mezzo di strutture
fisiche di memorizzazione
schema esterno: descrizione di parte della
Schema interno
base di dati in un modello logico (“viste”
parziali, derivate, anche in modelli diversi)
BD
Marco La Cascia (2006) Introduzione alle basi di dati 35 Marco La Cascia (2006) Introduzione alle basi di dati 36

9
Indipendenza dei dati Indipendenza fisica
 conseguenza della articolazione in livelli  il livello logico e quello esterno sono
 l’accesso avviene solo tramite il livello indipendenti da quello fisico
esterno (che può coincidere con il livello  una relazione è utilizzata nello stesso modo
logico) qualunque sia la sua realizzazione fisica
 la realizzazione fisica può cambiare senza che
 due forme:
debbano essere modificati i programmi
 indipendenza fisica
 indipendenza logica

Marco La Cascia (2006) Introduzione alle basi di dati 37 Marco La Cascia (2006) Introduzione alle basi di dati 38

Indipendenza logica Linguaggi per basi di dati


 il livello esterno è indipendente da quello  Un altro contributo all’efficacia: disponibilità di vari
logico linguaggi e interfacce diverse
 linguaggi testuali interattivi (SQL)
 aggiunte o modifiche alle viste non  comandi immersi in un linguaggio ospite (Pascal, C,
richiedono modifiche al livello logico Cobol, etc.)
 modifiche allo schema logico che lascino  comandi immersi in un linguaggio ad hoc, con anche
altre funzionalità (p.es. per grafici o stampe strutturate),
inalterato lo schema esterno sono anche con l’ausilio di strumenti di sviluppo (p. es. per la
trasparenti gestione di maschere)
 con interfacce amichevoli (senza linguaggio testuale)

Marco La Cascia (2006) Introduzione alle basi di dati 39 Marco La Cascia (2006) Introduzione alle basi di dati 40

10
SQL immerso in linguaggio ad alto
SQL, un linguaggio interattivo livello
write('nome della citta''?'); readln(citta);
EXEC SQL DECLARE P CURSOR FOR
SELECT Corso, Aula, Piano SELECT NOME, REDDITO
FROM PERSONE
FROM Aule, Corsi
WHERE CITTA = :citta ;
WHERE Nome = Aula EXEC SQL OPEN P ;
EXEC SQL FETCH P INTO :nome, :reddito ;
AND Piano="Terra" while SQLCODE = 0 do begin
write('nome della persona:', nome, 'aumento?');
readln(aumento);
EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO + :aumento
WHERE CURRENT OF P
EXEC SQL FETCH P INTO :nome, :reddito
end;
EXEC SQL CLOSE CURSOR P

Marco La Cascia (2006) Introduzione alle basi di dati 41 Marco La Cascia (2006) Introduzione alle basi di dati 42

SQL immerso in linguaggio ad hoc


(Oracle PL/SQL) Interazione non testuale (in Access)
declare Stip number;
begin
select Stipendio into Stip
from Impiegato
where Matricola = '575488'
for update of Stipendio;
if Stip > 30 then
update Impiegato set Stipendio = Stipendio * 1.1 where Matricola = '575488';
else
update Impiegato set Stipendio = Stipendio * 1.15 where Matricola = '575488';
end if;
commit;
exception
when no_data_found then
insert into Errori
values('Non esiste la matricola specificata',sysdate);
end;

Marco La Cascia (2006) Introduzione alle basi di dati 43 Marco La Cascia (2006) Introduzione alle basi di dati 44

11
Una distinzione terminologica Un'operazione DDL
(separazione fra dati e programmi) (sullo schema)
data manipulation language (DML) CREATE TABLE orario (
per l’interrogazione e l’aggiornamento di insegnamento CHAR(20) ,
(istanze di) basi di dati docente CHAR(20) ,
aula CHAR(4) ,
data definition language (DDL)
ora CHAR(5) )
per la definizione di schemi (logici, esterni,
fisici) e altre operazioni generali

Marco La Cascia (2006) Introduzione alle basi di dati 45 Marco La Cascia (2006) Introduzione alle basi di dati 46

Personaggi e interpreti Database administrator (DBA)


 progettisti e realizzatori di DBMS  Persona o gruppo di persone responsabile
 progettisti della base di dati e amministratori del controllo centralizzato e della gestione
della base di dati (DBA) del sistema, delle prestazioni,
 progettisti e programmatori di applicazioni dell’affidabilità, delle autorizzazioni
 utenti
 utenti finali (terminalisti): eseguono applicazioni
predefinite (transazioni)
 utenti casuali: eseguono operazioni non previste a
priori, usando linguaggi interattivi

Marco La Cascia (2006) Introduzione alle basi di dati 47 Marco La Cascia (2006) Introduzione alle basi di dati 48

12
Transazioni Vantaggi dei DBMS
 Programmi che realizzano attività frequenti e Pro
predefinite, con poche eccezioni, previste a priori.  dati come risorsa comune, base di dati
 Esempi: come modello della realtà
 versamento presso uno sportello bancario  gestione centralizzata con possibilità di
 emissione di certificato anagrafico
standardizzazione ed “economia di scala”
 dichiarazione presso l’ufficio di stato civile
 prenotazione aerea
 disponibilità di servizi integrati
 Le transazioni sono di solito realizzate con  riduzione di ridondanze e inconsistenze
programmi in linguaggio ospite (tradizionale o ad  indipendenza dei dati (favorisce lo sviluppo
hoc). e la manutenzione delle applicazioni)
Marco La Cascia (2006) Introduzione alle basi di dati 49 Marco La Cascia (2006) Introduzione alle basi di dati 50

Svantaggi dei DBMS


Contro
 costo dei prodotti e della transizione verso
di essi
 non scorporabilità delle funzionalità (con
riduzione di efficienza)

Marco La Cascia (2006) Introduzione alle basi di dati 51

13