Basi di dati - di.unito.itpatti/teaching/BasiDati.pdf · 2 Basi di dati Obiettivo: memorizzare...

21
1 Basi di dati Da leggere: Cap.5 Sawyer, 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...

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