Basi di dati
Da leggere:
Cap. 6
Sawyer, Williams (testo A)
Viviana Patti
Informatica di base - 1/12/04
Basi di dati = database
Sono una delle applicazioni informatiche che
hanno avuto il maggiore utilizzo in uffici,
aziende, servizi -> oggi anche sul web
Real life: Avete già interagito
con dei sistemi di gestione di
basi di dati: (magari
inconsapevolmente) all'anagrafe
o in biblioteca... in lab
consulteremo banche dati
biologiche...
Viviana Patti
Informatica di base - 1/12/04
1
Basi di dati
Problema: memorizzare grandi quantità di
informazioni, in modo che siano facilitate le
operazioni di modifica e di reperimento
(Information Retrieval)
Il problema è sentito in molti campi, non
ultimo quello che a noi interessa relativo alla
memorizzazione dei dati biologici:
l'archiviazione dei dati è una procedura
indispensabile per ordinare, conservare,
aggiornare e utilizzare le nostre informazioni,
soprattutto quando la mole d'informazioni
diventa grande.
Viviana Patti
Informatica di base - 1/12/04
Basi di dati: perché? 1/6
Problema: memorizzare grandi quantità di informazioni,
in modo che siano facilitate le operazioni di modifica e di
reperimento
Perché si usano le basi di dati
per raggiungere questo
obiettivo e non archiviamo le
informazioni in diversi file del
nostro file system o in fogli
elettronici? Prendiamo il caso di
sequenze biologiche
Viviana Patti
Informatica di base - 1/12/04
2
Basi di dati: perché 2/6
File system
Potremmo pensare di memorizzare ogni sequenza con le
sue annotazioni in un file diverso (magari di testo):
vantaggi: semplice, nessun carico aggiuntivo di
informazione
svantaggi:
l'organizzazione dei vari file è a carico dell'utente
(categorizzazione dei dati per facilitare le
procedure di accesso);
non c'e' alcuna strutturazione dei dati, come
confrontare e elaborare i dati?
quando la mole dei dati da memorizzare cresce questo
diventa velocemente ingestibile
Viviana Patti
Informatica di base - 1/12/04
Basi di dati: perché 3/6
Foglio elettronico
Potremmo pensare di memorizzare le sequenze e le loro
annotazioni usando fogli elettronici:
vantaggi:
i dati vengono strutturati in tabelle,
posso utilizzare gli strumenti di calcolo forniti dal
foglio elettronico per fare delle elaborazioni
svantaggi:
la gestione della ridondanza (e dell'eventuale
evoluzione) dei dati è delegata all'utente
non è possibile stabilire nessuna connessione fra
dati di diverse analisi -> come confrontare i dati?
Viviana Patti
Informatica di base - 1/12/04
3
Basi di dati: perché 4/6
Foglio elettronico
svantaggi:
1. la gestione della ridondanza (e dell'eventuale
evoluzione) dei dati è delegata all'utente
Esempio: supponiamo di avere la stessa sequenza A con
le sue annotazioni memorizzata in diversi fogli di lavoro
di una cartella Excel (ridondanza): sui diversi fogli faccio
analisi diverse (per esempio di similarità con diverse
sequenze)
problema 1: se dovessi modificare A introducendo per
esempio un nuovo campo relativo a un nuovo
riferimento bibliografico? Devo farlo per tutte le istanze
di A
Viviana Patti
Informatica di base - 1/12/04
Basi di dati: perché 5/6
Foglio elettronico
svantaggi:
2.
non è possibile stabilire nessuna connessione fra
dati di diverse analisi
Esempio: supponiamo di avere la stessa sequenza A con le sue
annotazioni memorizzata in diversi fogli di lavoro di una
cartella Excel (ridondanza): sui diversi fogli faccio analisi
diverse (per esempio di similarità con diverse sequenze)
problema 2: se scoprissi in un'analisi sul foglio x che seq A è
simile a seq B e in una diversa analisi che seq A è simile a seq
C vorrei poter indicare che le due sequenze sono in realtà la
stessa sequenza (connessione) in modo da potere fare
un'interrogazione complessa del tipo "quali seq. sono simili ad
A" avendo in risposta "seqB e seqC". Ma questo non posso
farlo in un foglio elettronico
Viviana Patti
Informatica di base - 1/12/04
4
Basi di dati: perché 6/6
Basi di dati
vantaggi:
i dati sono organizzati e strutturati in tabelle dove
possono essere elaborati
è possibile mettere in relazione dati memorizzati in
"tabelle" diverse
è possibile effettuare interrogazioni complesse ->
linguaggi di interrogazione
svantaggi:
complessità di progettazione della base di dati
(esistono diverse filosofie per costruirne, quel
scegliere?); non facile acquisire padronanza delle
metodologie e tecniche di progettazione e sviluppo
di una base di dati
occorre padronanza dei linguaggi di interrogazione
delle basi di dati
Viviana Patti
Informatica di base - 1/12/04
Base di dati: cos'e' 1/3
possiamo chiamare base di dati la collezione
dei dati grezzi utilizzati per rappresentare
informazioni di interesse per un’organizzazione
o un individuo
Esempi
la raccolta dei dati anagrafici degli abitanti
la raccolta dei dati relativi al curriculum
scolastico degli studenti
la raccolta dei dati sulle sequenze di DNA
la raccolta dei dati su sequenze proteiche
Viviana Patti
Informatica di base - 1/12/04
5
Base di dati: cos'e': 2/3
base di dati: è una collezione di dati
omogenei e
strutturati, ossia organizzati in strutture
ben definite
Es. dati di un’anagrafe relativi agli abitanti di
una città
struttura: i dati di ogni persona sono
strutturati in campi: nome , cognome,
età…;
omogeneità: per ogni persona mantengo le
stesse informazioni;
Viviana Patti
Informatica di base - 1/12/04
Base di dati: cos'e' 3/3
Es. elementi biologici, ad es. molecole di DNA:
struttura: i dati relativi a ogni molecola
sono strutturati in campi:
nome,
organismo,
letteratura sull'argomento,
rappresentazione come sequenza di acidi
nucleici (acgt)...;
omogeneità: per ogni elemento biologico
voglio mantenere le stesse informazioni;
Viviana Patti
Informatica di base - 1/12/04
6
Esempio
Per ogni
elemento
memorizzo
l'informazione
sulle stesse
caratteristiche
Viviana Patti
Informatica di base - 1/12/04
Tipi di database
Personali
Aziendali condivisi
Distribuiti
Archivi pubblici
Viviana Patti
Informatica di base - 1/12/04
7
Database distribuiti
Un database distribuito è contenuto in più computer
situati in luoghi diversi e connessi tramite una rete,
come ad esempio Internet
L'interazione avviene secondo un modello client/server
Esempio: banche dati biologiche
Viviana Patti
Informatica di base - 1/12/04
Database distribuiti
Esempio: banche dati biologiche
Server - db
PC- client
Server - db
PC- client
Viviana Patti
Informatica di base - 1/12/04
8
DBMS
base di dati: collezioni di dati omogenei e
strutturati
Per la realizzazione di basi di dati:
DBMS (Data Base Management Systems):
programmi applicativi (software) per la
gestione di collezioni di dati, che permettono
di
strutturare i dati e di
accedere in modo intelligente e efficace alle
informazioni
Viviana Patti
Informatica di base - 1/12/04
Progettazione di una base di dati
Problema affrontato: voglio organizzare le informazioni
relative una certa realtà in un DB
… voglio mantenere informazioni su quali studenti
hanno sostenuto quali esami e con quale risultato …
quindi mettere in relazione le informazioni relative agli
studenti e quelle relative ai corsi
Viviana Patti
Informatica di base - 1/12/04
9
Progettazione di una base di dati
Data una realtà da modellare (es. studenti e corsi)
occorre
Capire quali informazioni sono utili (es. “matricola” è
utile per rappresentare gli studenti)
Capire come le informazioni utili sono correlate (es. chi
ha sostenuto quale esame)
Sapere chi può accedere a quali informazioni per
eseguire quali azioni
Avere strumenti per operare interrogazioni sui dati (es.
quanti esami ha sostenuto Rossi nel 2002? Con quale
media?)
Viviana Patti
Informatica di base - 1/12/04
Progettazione di una base di dati
Viviana Patti
Informatica di base - 1/12/04
10
Passo1: Analisi dei requisiti
Raccolta e studio delle
funzionalità che il sistema dovrà
avere. Comporta l’interazione
con gli utenti del sistema e si
conclude in una descrizione
informale dei suoi requisiti
ANALISI
REQUISITI
Viviana Patti
descrizione informale
Informatica di base - 1/12/04
Passo2: Analisi concettuale
Ha lo scopo di rappresentare la
realtà di interesse in termini di
una descrizione precisa e
completa ma indipendente dai
criteri di rappresentazione usati
dal sistema informatico scelto
per gestire la base di dati
(rappresentazione astratta) ->
modello entity-relation
ANALISI
concettuale
Viviana Patti
schema concettuale
Informatica di base - 1/12/04
11
Passo3: Progettazione logica
Ha lo scopo di rappresentare la realtà
di interesse in termini di una
descrizione ancora indipendente dai
dettagli fisici ma concreta, in quanto
presente nei sistemi di gestioni delle
basi di dati. Lo schema concettuale
definito nella fase precedente viene
tradotto nello schema logico ->
modello relazionale
progettazione
logica
Viviana Patti
schema logico
Informatica di base - 1/12/04
Passo4: Progettazione fisica
Lo schema logico viene
completato con le specifica dei
parametri fisici di memorizzazione
dei dati (organizzazione dei file e
degli indici). Si definisce lo
schema fisico dei dati che dipende
dal sistema di gestione di basi di
dati scelto
progettazione
fisica
Viviana Patti
schema fisico
Informatica di base - 1/12/04
12
Passo 4: Progettazione fisica
Viviana Patti
Informatica di base - 1/12/04
DBMS
DBMS (Data Base Management System):
Sistema di Gestione della Base di Dati
è un sistema software in grado di gestire
collezioni di dati
grandi
condivise
persistenti
garantendo affidabilità e privatezza
in modo
efficiente
affidabile
Viviana Patti
Informatica di base - 1/12/04
13
DBMS
Esempi di DBMS:
Sistema
Sistema
cliniche
Sistema
Sistema
genoma
Viviana Patti
di prenotazione dei voli
per la gestione delle cartelle
per la gestione della biblioteca
per la gestione dei dati del
Informatica di base - 1/12/04
basi di dati e DBMS
...le collezioni di dati gestite da un DBMS:
Grandi: ordine dei giga- o tera-byte
Condivise: più utenti devono potervi accedere
simultaneamente -> problema di mantenere la
consistenza;
es. dei dati bancari e dell’accesso simultaneo alle
informazioni sullo stesso conto per un prelievo.
I moderni DBMS gestiscono queste situazioni
garantendo che non si verifichino situazioni di errore
dovute ad accesso simultaneo.
Persistenti: i dati vengono mantenuti, la loro esistenza
non è limitata al periodo d’uso
Viviana Patti
Informatica di base - 1/12/04
14
basi di dati e DBMS
il DBMS garantisce affidabilità e privatezza
Affidabilità: i dati devono essere mantenuti
anche in caso di malfunzionamento
Privatezza: i dati devono essere protetti: si
definiscono per ogni utente dei diritti; a certi
utenti è concessa solo la lettura dei dati, ad
altri anche la modifica
es. dei dati di una biblioteca: il lettore ha diritto di
lettura dei dati e di ricerca dei dati ma non di
modifica/inserimento. Il bibliotecario -> deve
aggiungere/togliere libri, segnalare prestiti: ha diritto
di modificare i dati
Viviana Patti
Informatica di base - 1/12/04
basi di dati e DBMS
Privatezza
es. delle banche dati biologiche
un utente non registrato (come
noi) può solo fare delle
interrogazioni per leggere i
contenuti, non inserire nuove
sequenze; un membro di un
istituto scientifico di ricerca può
essere abilitato all'inserimento
di nuove sequenze
Viviana Patti
Informatica di base - 1/12/04
15
basi di dati e DBMS
...in modo efficiente ed efficacie
Efficienza: tutte le operazioni acquisizione,
ricerca, ordinamento devono essere svolte
in tempi accettabili per l’utente -> più e più
vero per basi di dati accessibili via Web,
tempi di risposta brevi diventano veramente
cruciali
Efficacia: capacità di rendere produttiva
l’attività dell’utente
Viviana Patti
Informatica di base - 1/12/04
Software DBMS
DBMS commerciali
Oracle
Informix
IBM DB2
SQL Server
Microsoft Access (pacchetto Office)
DBMS freeware (open source)
MySQL (Linux, Windows)
PostgressSQL (Linux)
Viviana Patti
Informatica di base - 1/12/04
16
DBMS
Permettono di definire in modo semplice la
struttura della base di dati e forniscono dei
comandi per l’accesso alle informazioni.
In genere si usano per
deve essere
Definire la struttura logica dei dati preliminare
Inserire i dati
Rimuovere i dati
Aggiornare i dati
Effettuare operazioni di
ricerca/interrogazione
Viviana Patti
Informatica di base - 1/12/04
Struttura logica dei dati
Il DBMS nasconde il formato fisico dei dati
formato dei dati nei file
file diversi per insiemi di dati di tipo diverso
nome dei file/posizione dei file nel disco
la sequenza di cartelle in cui si trovano i file
accesso diretto ai dati sul supporto fisico
offre una visione astratta
dei dati e permette di operare
su di essi senza
conoscere la loro
effettiva memorizzazione
Viviana Patti
Informatica di base - 1/12/04
17
Astrazione
Viviana Patti
Informatica di base - 1/12/04
Schema logico
Primo passo: definizione della struttura
generale dei dati, o schema logico
caratteristiche invarianti nel tempo
Secondo passo: Immissione dei dati (istanze)
valori attuali
Esempio di schema e istanza inserita del DB
Schema
Istanza
nome
Valeria
cognome
Lenti
indirizzo
V. Po 12
n. matricola
9002345
corso di laurea
biotecnologie
Viviana Patti
Informatica di base - 1/12/04
18
Struttura dei dati
Tipicamente i dati - come nel caso del foglio elettronico vengono strutturati in tabelle. Un po’ di terminologia
Campi -> dominio dei valori
Record
•
Ogni elemento della tabella occupa un record -> non
posso organizzare per colonne
•
Ogni record è suddiviso in campi, ognuno dei quali contiene
un'informazione elementare
•
Ogni campo ha un dominio dei valori associato
Viviana Patti
Informatica di base - 1/12/04
Esempio
Possiamo dire che quello visualizzato è un
record della banca dati GenBank
Viviana Patti
Informatica di base - 1/12/04
19
Database vs Fogli elettronici
Considerazione:
un programma di foglio
elettronico come Excel ha
diverse funzioni uguali a quelle
di un DBMS -> permette di
organizzare dati in tabelle MA
gli obiettivi sono diversi e di
conseguenza emergono delle
differenze. Quali?
Viviana Patti
Informatica di base - 1/12/04
Database vs Fogli elettronici
Un DBMS è pensato per trattare in modo facile
GRANDI quantità di dati,
organizzati in tabelle dalla STRUTTURA rigida e
mi interessa fare solo operazioni di archiviazione e
consultazione
Un foglio elettronico è pensato per trattare
quantità di dati più piccole,
con struttura più flessibile (creo le tabelle come
voglio) e
il focus è sulle operazioni di elaborazione e analisi dei
dati, non tanto sull’archiviazione e recupero
Viviana Patti
Informatica di base - 1/12/04
20
Database vs fogli elettronici
Nel caso dei fogli elettronici ho maggior flessibilità
nell’organizzazione dei dati -> es. possiamo organizzare
gli elementi per righe ma anche per colonne, destinare
liberamente le celle a contenere un certo risultato etc.
Nel caso dei database nei record di una tabella i
campi si succedono tutti con la stessa struttura
Collaborazione dei due tipi di programmi per elaborare
in modo sofisticato grandi quantità di dati:
il DBMS accede all’archivio dei dati,
il foglio elettronico elabora i dati reperiti
Quello che proveremo a fare noi con i report
dei dati reperiti sulla banca dati
Viviana Patti
Informatica di base - 1/12/04
Struttura dei dati
...i dati vengono strutturati in tabelle
in particolare un db RELAZIONALE può essere pensato
come un insieme di tabelle
Ogni tabella mantiene informazioni di tipo omogeneo
Diverse tabelle sono collegate (in relazione) fra loro
grazie alla presenza di un campo comune, che
permette di mettere in relazione i dati delle due
tabelle
Viviana Patti
Informatica di base - 1/12/04
21
Struttura dei dati
Esempio:
campo comune fra tabella Prodotti e tabella
Fornitori: Fornitori. Grazie alla relazione posso
determinare chi fornisce i prodotti in magazzino pur
memorizzando l’informazione di prodotti e fornitori in
2 tabelle separate
Viviana Patti
Informatica di base - 1/12/04
Aggiornamento dei dati
I dati vengono inseriti in tabelle seguendo una
certa struttura logica
come modificare la struttura?: Inserire nuovi
record, inserire nuovi campi in un record
come aggiornare i contenuti?: modificare i
valori di una cella etc…
Di solito esistono dei vincoli che devono essere
rispettati nella base di dati ->
un’aggiornamento sia di struttura che di
contenuto deve rispettare questi vincoli
Quando i vincoli sono rispettati si dice che la
base di dati è consistente
Viviana Patti
Informatica di base - 1/12/04
22
Aggiornamento dei dati
Quali vincoli?
sul dominio di valori che può assumere una certa
informazione (campo)
es.: banca dati dell'Università -> i voti devono
essere compresi tra 0 e 30
sull'unicità dei valori
ogni studente deve avere un numero di matricola
diverso dall'altro
vincoli che fra informazioni correlate
es. anagrafe: i dati relativi al coniuge sono
presenti solo se la persona è sposata
i DBMS offrono strumenti per il mantenimento
automatico della consistenza dei dati:
Viviana Patti
Informatica di base - 1/12/04
Effettuare interrogazioni=query
Esecuzione di transazioni/interrogazioni
Per leggere le informazioni contenute in una base di dati
bisogna interrogarla ->
query = atto dell’interrogare
Facendo una query interroghiamo una tabella o un
insieme di tabelle in un database al fine di ricavarne un
SOTTOINSIEME di record
Viviana Patti
Informatica di base - 1/12/04
23
Query Language
Esempio di query in linguaggio naturale:
“Quali prodotti fornisce alla nostra azienda il
fornitore New Orleans Cajun Delights?”
Interrogazione sulle tabelle Fornitori e Prodotti
fra loro in relazione
Esistono linguaggi specifici di interrogazione
usato in db (QL), in particolare per i db
relazionali e in Access: SQL
SQL = Structured Query Language
Viviana Patti
Informatica di base - 1/12/04
SQL
Niente panico!
- In molti programmi applicativi come
Access abbiamo un’interfaccia grafica
per costruire le query senza conoscere
la sintassi e la semantica di SQL
- nei db accessibili via Web le query
vengono fatte per parole chiave come in un
motore di ricerca
Viviana Patti
Informatica di base - 1/12/04
24
DBMS e Web
Molti DBMS sono accessibili mediante browser
l’interfaccia è come quella del Web
la ricerca dei dati è per parole chiave come
nel caso dei motori di ricerca per la ricerca
dei documenti sul Web
l’organizzazione interna dei dati è quella del
DBMS
Lab: banche dati biologiche
Motori di ricerca
Viviana Patti
Informatica di base - 1/12/04
Database, web e nuova economia
Commercio elettronico (e-commerce): acquisto e vendita di
prodotti e servizi tramite Internet
Data mining (DM) – attività di ricerca e analisi di dati
Marketing
Sanità
Scienze
Business-to-business (B2B): commercio fra aziende società
aspetti di contrattazione
Viviana Patti
Informatica di base - 1/12/04
25