Basi di dati
(Sistemi Informativi)
Scuola di Dottorato in Scienze Veterinarie
per la Salute Animale e la Sicurezza Alimentare
Lezione 1
Ing. Mauro Zaninelli – [email protected]
a.a. 2005 - 2006
1
Obiettivi del Corso




Come progettare un DB: il modello ER
Come gestire e interrogare un DB: l’SQL
Come organizzare e raccogliere dati via web:
MySQL, il PHP e l’HTML
Come organizzare e raccogliere dati in locale:
ACCESS.
Ob. 1. Strutturare grandi quantità di dati
Ob. 2. Raccoglierle e/o condividerle:
a. in rete.
b. sul proprio PC.
2
Cos’è una Base di Dati?
3
Basi di dati
Sono una delle applicazioni informatiche che
hanno avuto il maggiore utilizzo in uffici, aziende,
servizi (e oggi anche sul web)
Avete già interagito (magari
inconsapevolmente) con dei
sistemi di gestione di basi di dati:
all’anagrafe, in segreteria studenti,
in biblioteca, …
4
Basi di dati
L’obiettivo è quello di memorizzare grandi quantità
di informazioni, rendendone disponibili anche le
operazioni di modifica e di reperimento
Una base di dati è solo software?
No!
Ad esempio, gli archivi bancari esistono
da diversi secoli. Noi ci occuperemo
di sistemi informativi informatizzati
5
Basi di dati e DBMS
Base di dati: collezione di dati omogenei
DBMS (Database Management System): software
in grado di gestire collezioni di dati che siano grandi,
condivise e persistenti, garantendo affidabilità e
privatezza, in modo efficiente ed efficace
Grandi: ordine dei giga- o tera-byte
Condivise: più utenti devono potervi accedere simultaneamente
Persistenti: i dati vengono mantenuti, la loro esistenza non è limitata al periodo d’uso
Affidabili: i dati devono essere mantenuti anche in caso di malfunzionamento
Privatezza: i dati devono essere protetti
Efficiente: tutte le operazioni devono essere svolte in tempi accettabili per l’utente
Efficace: capacità di rendere produttiva l’attività dell’utente
6
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




Inserire i dati
Rimuovere i dati
Aggiornare i dati
Effettuare operazioni di ricerca
 I moderni DBMS forniscono la possibilità di
accesso simultaneo ai dati garantendone la
consistena
7
DBMS
DBMS
prelievo bancomat
pagamento bolletta
amministratore
bancario inserisce nuovo
cliente
base di dati
(es. dati bancari)
8
DBMS
Utente
dati
dati
dati
dati
DBMS
Programma
applicativo
Non ci occuperemo dell’organizzazione e della gestione di
DBMS ma della progettazione di basi di dati …
9
Perché si utilizza una Base di dati?
10
Problema affrontato
raccogliere, organizzare, conservare
e gestire dati omogenei e strutturati
studente
studenti
Avrà un nome, un indirizzo,
una matricola, ecc.
Ognuno avrà il proprio
nome, matricola, ecc.
singolo
molti
11
Problema affrontato
corso
Avrà un titolo, un docente, dei crediti
… diventa interessante 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
12
Problema affrontato
 Data una realtà da modellare (es. studenti e corsi)
 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 lavorare sui dati (es. quanti
esami ha sostenuto Rossi nel 2002? Con quale media?)
13
Come si progetta una Base di Dati?
14
Progettazione di una base di dati
1. Analisi dei requisiti
individuare e studiare le funzionalità che il
sistema dovrà fornire
2. Progettazione
(a) concettuale
(b) logica
(c) fisica
3. Collaudo
verifica del corretto funzionamento del
sistema
15
Progettazione di una base di dati
Requisiti della base di dati
Progettazione
Progettazione
concettuale
Progettazione
logica
Progettazione
fisica
Prodotto della progettazione
16
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
Descrizione
informale
17
Progettazione 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)
Schema
concettuale
18
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
Schema
logico
19
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
Schema
fisico
20
Progettazione concettuale
Schema
concettuale
21
Il modello Entità-Relazioni (E-R)

Consente di rappresentare la realtà di interesse
tramite un insieme di costrutti

Ogni costrutto ha una rappresentazione grafica
corrispondente. Ad esempio:
entità
relazione
attributo semplice
attributo composto
……..
22
Entità
Sono classi di oggetti, che hanno tutti le
stesse proprietà ed esistono in modo
autonomo; ogni entità è quindi un insieme di
oggetti, detti anche istanze o occorrenze
STUDENTI
LIBRI
IMPIEGATI
23
Relazioni (anche dette associazioni)
Sono legami logici fra due o più entità. Anche
un’associazione è un insieme, è l’insieme
delle correlazioni fra i singoli elementi delle
entità coinvolte
e1
e2
e3
Stud1
Corso1
e4
Stud2
e5
Stud3
Stud4
e6
Corso2
Corso3
24
Relazioni
In uno schema E-R ogni relazione ha un
nome che la identifica in modo univoco ed è
rappresentata mediante un rombo
STUDENTI
ESAMI
CORSI
Nella scelta dei nomi per le relazioni è preferibile usare sostantivi anzichè verbi per
evitare di dare un “verso” alla relazione. Ad esempio ESAMI invece di HA SOSTENUTO
25
Esempio
Entità: PERSONE
Istanze: Marco, Paolo, Liliana, Giorgia, …
Entità: CITTÀ
Istanze: Milano, Torino, Genova, Salerno,
ESAMI: relazione (anche detta associazione) fra le
entità STUDENTI e CORSI
PRESTITI: relazione fra le entità UTENTI e LIBRI
DIREZIONE: relazione fra le entità IMPIEGATI e
REPARTI
26
Attributi
Descrivono le proprietà elementari di Entità
e Relazioni. Ogni attributo assume dei valori
all’interno di un insieme di valori ammissibili
detto dominio
Nome
Giorno
Data
Mese
Cognome
Anno
Attributi semplici
Attributi composti
27
Esempio
Via
PERSONA
Indirizzo
Numero civico
CAP
Nome Cognome
Data nascita
28
Esempio
Voto
STUDENTI
Data
ESAMI
CORSI
Docente
Nome Cognome
Nascita
Nome corso
Crediti
Anche le relazioni possono avere degli attributi che vengono rappresentati come nel
caso delle entità, ma associati ai rombi che le descrivono
29
Cardinalità delle relazioni
Per ogni entità che partecipa a una relazione è
possibile indicare il num. min e max di legami
che le sue istanze possono avere con istanze
delle altre entità partecipanti alla medesima
relazione
LIBRI
(0,1)
PRESTITI
(0,5)
PERSONE
Un libro può essere in prestito (1) oppure non essere in prestito (0)
Una persona può non avere libri in prestito (0) o averne al massimo 5
30
Cardinalità delle relazioni
Se la cardinalità minima è 0 si dice che la
partecipazione dell’entità relativa è opzionale, se
la cardinalità minima è maggiore o uguale a 1, la
partecipazione è obbligatoria
(1,1)
REPARTI
(0,3)
GESTIONE
PERSONE
Ogni reparto è gestito da una (1) e una sola (1) persona
Alcune persone non gestiscono alcun reparto (0) ma una persona può gestirne
fino a tre (3)
31
Cardinalità delle relazioni
Nella maggior parte dei casi si usano solo tre
valori: zero, uno, e il simbolo N (ovvero >=1)
Se la cardinalità massima è 1 la partecipazione
all’entità può essere vista come una funzione che
associa ad una occorrenza di una entità una sola
occorrenza dell’altra entità
Se la cardinalità massima è N esiste una
associazione con un numero arbitrario di occorrenze
dell’altra entità
32
Tipi di relazioni
Osservando le cardinalità massime si ottiene la classificazione seguente
1
1
1:N
(uno a molti)
1
N
N:M
(molti a molti)
N
M
1:1
33
Esempio
PASSEGGERI
1
1
POSTO ASSEGNATO
POSTI
A ogni passeggero è assegnato al più un posto e a ogni posto è assegnato al più un passeggero
PASSEGGERI
N
POSTO ASSEGNATO
M
VOLI
Ogni passeggero può avere assegnati posti su più voli, ogni volo porta diversi passeggeri
34
Esempio
PERSONE
N
NUM ASSEGNATO
1
NUM_TELEFONO
Ogni persona può avere associati più numeri di telefono, ogni numero di telefono può essere associato al
più ad una persona

Che tipo di relazione si può stabilire tra
1. CALCOLATORI e INDIRIZZI IP
2. STUDENTI ed ESAMI
3. ATLETI e GARE
35
Associazioni a molte entità
Le associazioni possono collegare più di due entità,
per esempio il concetto di pubblicazione, intesa come
libro scritto da un certo scrittore per una certa casa
editrice, potrebbe essere rappresentato come
SCRITTORI
LIBRI
PUBBLICAZIONI
CASE EDITRICI
36
Identificatori (chiavi)
Ogni entità è un insieme di oggetti aventi le
stesse proprietà. È necessario poter identificare
in modo univoco ciascuna istanza di un’entità
Identificatore interno: sottoinsieme di attributi che
costituiscono una chiave per l’entità
Identificatore esterno: quando non è sufficiente utilizzare
un sottoinsieme di attributi ma l’entità partecipa a una relazione con
cardinalità (1,1), i suoi elementi possono essere identificati tramite tale
relazione
37
Esempio: identificatore interno
Titolo
Autore
LIBRI
ISBN
(identificatore interno)
Nome
STUDENTI
Cognome
…
Matricola

(identificatore interno)
Vi vengono in mente altri esempi?
38
Esempio: identificatore esterno
Matricola
STUDENTI
Cognome
(1,1)
ISCRIZIONE
(1,N)
UNIVERSITÀ
Indirizzo
Nome
Indirizzo Città
Nome
Quando gli attributi interni non sono sufficienti si possono considerare attributi di più entità.
39
Esempio: identificatore esterno
 Ad esempio, nel caso precedente che considera tutti gli studenti
universitari iscritti a tutte le università italiane, non c’è garanzia che
i numeri di matricola siano univoci
 Per identificare in modo univoco uno studente servirà quindi, oltre
al suo numero di matricola, anche il nome dell’università cui è
iscritto
 Quindi un identificatore corretto per l’entità STUDENTE è dato dal
suo attributo Matricola e dall’entità UNIVERSITÀ, in partcolare
dall’attributo Nome di UNIVERSITÀ, che è un identificatore esterno
 Naturalmente questo funziona perchè ad ogni studente è
associata una e una sola università
40
Generalizzazioni
Rappresentano legami logici tra una entità E
detta padre e più entità E1, E2, …, En, dette
entità figlie. L’entità E è più generale e
comprende le entità figlie
… ritorna una struttura gerarchica,
ad albero. Questo tipo di struttura
è fondamentale nell’informatica …
41
Generalizzazioni
Codice fiscale
Nome
PERSONE
Indirizzo
Attributi
comuni
Nascita
STUDENTI
Matricola
IMPIEGATI
Stipendio
Sotto categorie
Reparto
Livello
42
Esercizi:
In particolare, aggiungere: generalizzazioni, chiavi e cardinalità delle
relazioni.
43
Soluzioni esercizio 5.3 n°1:
44
Soluzioni esercizio 5.3 n°2:
45
Soluzioni esercizio 5.3 n°3:
46
Soluzioni esercizio 5.4 n°1:
47
Soluzioni esercizio 5.4 n°2:
48
Soluzioni esercizio 5.4 n°3:
49
Scarica

db - Università degli Studi di Milano