Basi di dati - di.unito.itpatti/teaching/BasiDati.pdf · 2 Basi di dati Obiettivo: memorizzare...
Transcript of Basi di dati - di.unito.itpatti/teaching/BasiDati.pdf · 2 Basi di dati Obiettivo: memorizzare...
1
Basi di dati
Da leggere:Cap.5Sawyer, Williams (testo A)
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: quando avete consultato banche dati
biologiche, ma anche (magari inconsapevolmente) all'anagrafe
o in biblioteca...
2
Basi di dati
Obiettivo: memorizzare grandi quantità di informazioni, rendendone disponibili anche le operazioni di modifica e di reperimento (Information Retrieval)Per realizzare questo obiettivo -> programmi applicativi detti DBMS (Data Base Management Systems): programmi applicativi per la gestione di collezioni di dati, che permettono di strutturare i dati e di accederein modo intelligente alle informazioni
DBMSDBMS commerciali
OracleInformixIBM DB2SQL ServerMicrosoft Access (pacchetto Office)
DBMS freeware (open source)MySQL (Linux, Windows)PostgressSQL (Linux)
3
Base di dati
Cos'è?base di dati: è la collezione dei dati grezziutilizzati per rappresentare informazioni di interesse per un’organizzazione, un individuoEsempi
la raccolta dei dati anagrafici degli abitantila raccolta dei dati relativi al curriculum scolastico degli studentila raccolta dei dati sulle sequenze di DNA
Base di dati
Cos'è?base di dati: è una collezione di dati
omogenei e strutturati, ossia organizzati in strutture ben definite
Es. dati di un’anagrafestruttura: i dati di ogni persona sono strutturati in campi: nome , cognome, età…; omogeneità: per ogni persona mantengo le stesse informazioni;
4
Base di dati
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...; omogeneità: per ogni elemento biologico voglio mantenere le stesse informazioni;
Tipi di database
PersonaliAziendali condivisiDistribuiti Archivi pubblici
5
Esempio
Per ognielemento
memorizzol'informazionesulle stesse
caratteristiche
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
6
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
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
7
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
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
8
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
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
9
Il DBMS nasconde il formato fisico dei datiformato dei dati nei file
file diversi per insiemi di dati di tipo diverso
nome dei file/posizione dei file nel discola sequenza di cartelle in cui si trovano i file
accesso diretto ai dati sul supporto fisicointerfaccia a disposizione dell’utente
offre una visione concettuale dei dati e permette di operare su di essi senza conoscere la loro effettiva memorizzazione
Struttura logica dei dati
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
10
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
EsempioPossiamo dire che quello visualizzato è un record della banca dati GenBank
11
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?
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
12
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 proviamo a fare noi con i reportdei dati reperiti sulla banca dati
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
13
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
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
14
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:
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 un SOTTOINSIEME di record
15
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
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
16
Utenti del DBMS
Amministratore del DBusa il Data Definition Language (DDL) per
definire lo schema logico della base di datiProgrammatore applicativo
programma le applicazioni usando il DataManipulation Language (DML) per definire le operazioni sui dati
Utente finaleesegue le applicazioni (transazioni) usando il
Query Language (QL) (es. SQL) per interrogare la base di dati ed eseguire operazioni sui dati
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
l’organizzazione interna dei dati è quella del DBMS
banche dati biologiche
17
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
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?)
18
Progettazione di una base di dati
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
19
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)
ANALISI concettuale
schema concettuale
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
progettazionelogica
schema logico
20
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
Passo 4: Progettazione fisica
21
database, web e nuova economia
Commercio 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
database, web e nuova economia