Basi di dati - di.unito.itpatti/teaching/Database-0405.pdf · Viviana Patti Informatica di base -...

25
1 Viviana Patti Informatica di base - 1/12/04 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...

Transcript of Basi di dati - di.unito.itpatti/teaching/Database-0405.pdf · Viviana Patti Informatica di base -...

1

Viviana Patti Informatica di base - 1/12/04

Basi di dati

Da leggere:Cap. 6Sawyer, 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...

2

Viviana Patti Informatica di base - 1/12/04

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 allamemorizzazione 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

3

Viviana Patti Informatica di base - 1/12/04

Basi di dati: perché 2/6

File systemPotremmo 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/6Foglio elettronicoPotremmo 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?

4

Viviana Patti Informatica di base - 1/12/04

Basi di dati: perché 4/6Foglio 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 lavorodi 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/6Foglio 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

5

Viviana Patti Informatica di base - 1/12/04

Basi di dati: perché 6/6Basi 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 sviluppodi una base di datioccorre 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 individuoEsempi

la raccolta dei dati anagrafici degli abitantila raccolta dei dati relativi al curriculum scolastico degli studentila raccolta dei dati sulle sequenze di DNAla raccolta dei dati su sequenze proteiche

6

Viviana Patti Informatica di base - 1/12/04

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;

7

Viviana Patti Informatica di base - 1/12/04

Esempio

Per ognielemento

memorizzol'informazionesulle stesse

caratteristiche

Viviana Patti Informatica di base - 1/12/04

Tipi di database

PersonaliAziendali condivisiDistribuitiArchivi pubblici

8

Viviana Patti Informatica di base - 1/12/04

Database distribuiti

Un database distribuito è contenuto in più computer situati in luoghi diversi e connessi tramite una rete, come ad esempio InternetL'interazione avviene secondo un modello client/serverEsempio: banche dati biologiche

Viviana Patti Informatica di base - 1/12/04

Database distribuiti

Esempio: banche dati biologiche

Server - db

PC- client

PC- client

Server - db

9

Viviana Patti Informatica di base - 1/12/04

DBMS

base di dati: collezioni di dati omogenei e strutturatiPer 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 datiProblema 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

10

Viviana Patti Informatica di base - 1/12/04

Progettazione di una base di dati

Data una realtà da modellare (es. studenti e corsi) occorreCapire 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 azioniAvere 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

11

Viviana Patti Informatica di base - 1/12/04

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 descrizione informale

Viviana Patti 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 schema concettuale

12

Viviana Patti Informatica di base - 1/12/04

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

progettazionelogica schema logico

Viviana Patti 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

progettazionefisica schema fisico

13

Viviana Patti Informatica di base - 1/12/04

Passo 4: Progettazione fisica

Viviana Patti Informatica di base - 1/12/04

DBMS (Data Base Management System): Sistema di Gestione della Base di Dati è un sistema software in grado di gestire collezioni di dati

grandicondivisepersistenti

garantendo affidabilità e privatezzain modo

efficienteaffidabile

DBMS

14

Viviana Patti Informatica di base - 1/12/04

Esempi di DBMS:

Sistema di prenotazione dei voliSistema per la gestione delle cartelle clinicheSistema per la gestione della bibliotecaSistema per la gestione dei dati delgenoma

DBMS

Viviana Patti 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

15

Viviana Patti Informatica di base - 1/12/04

basi di dati e DBMS

il DBMS garantisce affidabilità e privatezzaAffidabilità: i dati devono essere mantenuti anche in caso di malfunzionamentoPrivatezza: 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

16

Viviana Patti Informatica di base - 1/12/04

basi di dati e DBMS

...in modo efficiente ed efficacieEfficienza: 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 crucialiEfficacia: capacità di rendere produttiva l’attività dell’utente

Viviana Patti Informatica di base - 1/12/04

Software DBMSDBMS commerciali

OracleInformixIBM DB2SQL ServerMicrosoft Access (pacchetto Office)

DBMS freeware (open source)MySQL (Linux, Windows)PostgressSQL (Linux)

17

Viviana Patti Informatica di base - 1/12/04

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

Definire la struttura logica dei datiInserire i datiRimuovere i datiAggiornare i datiEffettuare operazioni di ricerca/interrogazione

deve esserepreliminare

Viviana Patti Informatica di base - 1/12/04

Il DBMS nasconde il formato fisico dei datiformato dei dati nei file

file diversi per insiemi di dati di tipo diversonome dei file/posizione dei file nel disco

la sequenza di cartelle in cui si trovano i fileaccesso diretto ai dati sul supporto fisico

offre una visione astrattadei dati e permette di operare su di essi senza conoscere la loro effettiva memorizzazione

Struttura logica dei dati

18

Viviana Patti Informatica di base - 1/12/04

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 tempoSecondo passo: Immissione dei dati (istanze)

valori attualiEsempio di schema e istanza inserita del DB

Schema Istanza

corso di laurea

n. matricola

indirizzo

cognome

nome

biotecnologie

9002345

V. Po 12

Lenti

Valeria

19

Viviana Patti Informatica di base - 1/12/04

Struttura dei datiTipicamente i dati - come nel caso del foglio elettronico -

vengono strutturati in tabelle. Un po’ di terminologia

• 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

Campi -> dominio dei valori

Record

Viviana Patti Informatica di base - 1/12/04

EsempioPossiamo dire che quello visualizzato è un record della banca dati GenBank

20

Viviana Patti Informatica di base - 1/12/04

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 facileGRANDI quantità di dati, organizzati in tabelle dalla STRUTTURA rigida e mi interessa fare solo operazioni di archiviazione e consultazione

Un foglio elettronico è pensato per trattarequantità 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

21

Viviana Patti Informatica di base - 1/12/04

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 reportdei dati reperiti sulla banca dati

Viviana Patti Informatica di base - 1/12/04

Struttura dei dati

...i dati vengono strutturati in tabellein particolare un db RELAZIONALE può essere pensato come un insieme di tabelle

Ogni tabella mantiene informazioni di tipo omogeneoDiverse 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

22

Viviana Patti Informatica di base - 1/12/04

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 logicacome modificare la struttura?: Inserire nuovi record, inserire nuovi campi in un recordcome 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 vincoliQuando i vincoli sono rispettati si dice che la base di dati è consistente

23

Viviana Patti Informatica di base - 1/12/04

Aggiornamento dei datiQuali 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 valoriogni studente deve avere un numero di matricola diverso dall'altro

vincoli che fra informazioni correlatees. 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/interrogazioniPer leggere le informazioni contenute in una base di dati bisogna interrogarla ->query = atto dell’interrogareFacendo una query interroghiamo una tabella o un insieme di tabelle in un database al fine di ricavarne unSOTTOINSIEME di record

24

Viviana Patti Informatica di base - 1/12/04

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 interrogazioneusato 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

25

Viviana Patti Informatica di base - 1/12/04

DBMS e Web

Molti DBMS sono accessibili mediante browserl’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 biologicheMotori di ricerca

Viviana Patti Informatica di base - 1/12/04

Database, web e nuova economiaCommercio elettronico (e-commerce): acquisto e vendita di

prodotti e servizi tramite InternetData mining (DM) – attività di ricerca e analisi di dati

MarketingSanitàScienze

Business-to-business (B2B): commercio fra aziende societàaspetti di contrattazione