Sistemi di Elaborazione delle Informazioni Basi di Dati

Transcript

Sistemi di Elaborazione delle Informazioni Basi di Dati
Basi di dati
Database relazionali
Sistemi di Elaborazione delle Informazioni
Basi di Dati
Tullio Facchinetti
<[email protected]>
29 ottobre 2013
15:26
http://robot.unipv.it/toolleeo
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Sommario
introduzione alle basi di dati
il modello relazionale
esempio pratico
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Utilità della gestione dei dati
recupero delle informazioni necessarie
elaborazione dei dati recuperati
memorizzazione dei risultati
la base di dati (database) permette di organizzare i dati da
gestire, al ne di permetterne il recupero e la memorizzazione
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Database Management Systems (DBMS)
insieme di programmi che controllano l'organizzazione, la
memorizzazione e il reperimento dei dati in un database
gli utenti accedono alle informazioni tramite opportuni
programmi e interfacce
i dati sono richiesti al DBMS
il DBMS interagisce con le memorizzati sul le system
(tipicamente risiedenti su disco)
le informazioni vengono recuperate e fornite all'utente
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Caratteristiche di un DBMS
accesso concorrente ai dati
più utenti/programmi devono poter accedere alle informazioni
nello stesso intervallo di tempo
consistenza dei dati
i dati devono eettivamente rappresentare le informazioni
utili al loro utilizzo nel contesto dell'applicazione
i dati devono essere organizzati in modo da essere
concretamente utilizzabili
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Caratteristiche di un DBMS
integrità dei dati
protezione delle informazioni a fronte di modiche dei
contenuti
l'alterazione può essere accidentale o intenzionale
include il caso di generazione di informazioni ex novo
privatezza dei dati
garantire che le informazioni non siano accessibili da soggetti cui
non sono forniti i relativi permessi
ecienza
bilanciare occupazione di memoria vs. tempo d'accesso
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Soluzioni disponibili
soluzioni open-source:
PostgreSQL
SQLite
MySQL
MariaDB
soluzioni closed-source:
prodotti Oracle
MS Access
MS SQL Server
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Il modello E-R
E
ntità R
elazione (e
A
ttributo)
introdotto dal Prof. Peter Chen nel 1977
modello concettuale per la descrizione delle informazioni
permette di organizzare i dati del mondo reale in termini di
oggetti e delle loro relazioni
una notazione graca ecace (diagramma E/R) permette
una immediata rappresentazione del modello
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Il modello E-R
E
ntità R
elazione
elementi fondamentali del modello:
entità
relazione
attributi
di entità
di relazione
ruoli
vincoli di identicazione e di cardinalità
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Le entità
caratteristiche delle entità:
possono rappresentare persona, oggetti, eventi, ecc.
una entità è caratterizzata da elementi comuni
ha una esistenza autonoma rispetto al problema da
descrivere
è un modo ecace per denire le caratteristiche dei dati di
interesse di una applicazione
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Le entità
nonostante il concetto di entità sia non immediato da
denire, dal punto di vista operativo il suo signicato è molto
semplice
esempi:
il nome Tullio e il cognome Facchinetti, unitamente alla
data di nascita (non strettamente necessaria) identica
l'entità persona
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Le entità: esempi
alcuni esempi di elementi della realtà che possono essere
incaspulati in una entità sono:
persone: cittadino, dipendente, cliente, automobilista,
autore di un libro, membro di un social network
oggetti: libro, farmaco, automobile, pezzo di ricambio
eventi: appuntamento, festività, visite mediche, interventi
chirurgici, prestito di un libro, click di mi piace su un
social network
...
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Insiemi di entità
entity-set
si tratta di un insieme di entità dello stesso tipo, alle quali viene
attribuito un nome distintivo
esempio:
si considerino le entità PERSONA, PAZIENTE e
DIPENDENTE
gli entity-set PAZIENTE e DIPENDENTE sono due
sotto-insiemi non disgiunti dell'entity-set PERSONA
PERSONA
DIPENDENTE
Tullio Facchinetti
<[email protected]>
PAZIENTE
Basi di Dati
Basi di dati
Database relazionali
Gli attributi: esempio
attributo
è una proprietà dell'entità, denita in base ai requisiti
dell'applicazione
esempi di attributi per rappresentare determinate entità
una persona:
un libro:
nome
titolo
cognome
autore
codice scale
casa editrice
data di nascita
ISBN
citta di residenza
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Gli attributi
tutti gli oggetti della stessa entità hanno gli stessi attributi
da denire in numero adeguato a rappresentare l'oggetto
che corrisponde all'entità
il livello di dettaglio della rappresentazione dipende dal
problema da risolvere
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Dominio degli attributi
dominio
insieme di valori che possono essere assegnati ad un attributo
esempi di dominio:
il dominio dell'attributo COGNOME può essere una stringa
di caratteri di lunghezza massima pari a
50
l'attributo PREZZO dell'entità ARTICOLO può essere un
valore numerico con
2
cifre dopo la virgola
l'attributo DATA_DI_NASCITA può assumere valori di
una data (giorno/mese/anno)
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Istanza di una entità
istanza di una entità
insieme dei valori attribuiti agli attributi di una entità
sia data l'entitià PERSONA avente attributi NOME,
COGNOME, CF e DATA
le istanze di tale entità si rappresentano ecacemente
tramite tabelle
ognuna delle righe della tabella rappresenta una istanza
NOME
COGNOME
Paolo
Fantozzi
FNTPLO69A01X800L
01-03-1969
Ludovico
Van
VANLDV13B24L456W
24-02-1913
Alberto
Trebla
TRBLBR44F19F101G
19-06-1944
Tullio Facchinetti
CF
<[email protected]>
Basi di Dati
DATA
Basi di dati
Database relazionali
Le relazioni
relazione
rappresenta una associazione tra due entità
viene tipicamente identicata da un predicato
esempi:
si considerino le entità LIBRO e AUTORE
la relazione è del tipo ha scritto che lega AUTORE a
LIBRO
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Diadrammi E-R
diagramma E-R
è un formalismo graco per rappresentare le entità, gli attibuti e
le relazioni tra essi, che descrivono un particolare sistema
rappresentano il cosiddetto schema concettuale del sistema
la notazione non è standardizzata
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Diadrammi E-R
le entità (o meglio, gli entity-set) sono rappresentati
mediante rettangoli
gli attributi si rappresentano mediante ovali
gli attributi di una entità vi sono collegati tramite linee
esempi:
AUTORE
LIBRO
TITOLO
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Diadrammi E-R: attributi composti
attributo composto
l'attributo è costituito dall'aggregazione di attributi elementari,
che hanno stretta anità tra loro
esempi:
l'attributo INDIRIZZO può essere scomposto in VIA,
CIVICO, CITTA, CAP
l'attributo DATA_DI_NASCITA può essere scomposto in
GIORNO, MESE, ANNO
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Diadrammi E-R: attributi composti
attributo composto
l'attributo è costituito dall'aggregazione di attributi elementari,
che hanno stretta anità tra loro
esempio:
VIA
NUMERO
PERSONA
INDIRIZZO
CITTA
CAP
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Diadrammi E-R: relazioni
sono rappresentate mediante rombi
l'associazione esistente tra entità e relazioni viene esplicitata
da una linea che collega i rispettivi elementi graci
esempio:
AUTORE
Tullio Facchinetti
HA SCRITTO
<[email protected]>
Basi di Dati
LIBRO
Basi di dati
Database relazionali
La chiave
chiave primaria
insieme di attributi i cui valori permettono di identicare
univocamente una entià
esempi:
l'attributo CODICE FISCALE può essere la chiave
primaria dell'entità PERSONA
l'attributo ISBN può essere la chiave primaria dell'entità
LIBRO
l'attributo MATRICOLA può essere la chiave primaria
dell'entità STUDENTE
la coppia di attributi CODICE FISCALE e DATA
ASSUNZIONE può essere la chiave primaria di una entità
che rappresenti i dati di un IMPIEGATO
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Vincoli di integrità
vincolo di integrità
regola che deve essere rispettanta da ogni istanza dello schema
rappresentato dal diagramma E-R
vincolo di cardinalità sulle relazioni
vincolo di cardinalità sugli attributi
vincolo di partecipazione
vincoli esterni
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Cardinalità di una relazione
cardinalità di una relazione
vengono imposti un limite minimo e uno massimo al numero di
entità cui un'altra entità può venire associata
sono rappresentati da una coppia di valori
(min, max)
il vincolo di cardinalità viene imposto a tutte le istanze
dell'entità al quale è associato
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Cardinalità di una relazione
cardinalità di una relazione
vengono imposti un limite minimo e uno massimo al numero di
entità cui un'altra entità può venire associata
caratteristiche della cardinalità:
vale sempre
0 ≤ min ≤ max
vale sempre
1 ≤ max
i valori
Tullio Facchinetti
min = 0
e
max = N
<[email protected]>
signica assenza di vincoli
Basi di Dati
Basi di dati
Database relazionali
Un semplice esempio
si supponga di voler costruire lo schema E-R per la
memorizzazione dei dati di una biblioteca personale
informazioni da memorizzare per ciascun libro:
titolo
nome e cognome dell'autore
codice ISBN
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Un semplice esempio
la soluzione più semplice è la seguente:
TITOLO
NOME
AUTORE
LIBRO
COGNOME
ISBN
questo schema non permette però
di rappresentare libri scritti da più autori
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Un semplice esempio
uso di due entità distinte: AUTORE e LIBRO
NOME
COGNOME
AUTORE
TITOLO
HA SCRITTO
LIBRO
ISBN
diversi autori possono aver scritto lo stesso libro
questo schema non permette però di distinguere
autori diversi che hanno lo stesso nome
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Un semplice esempio
introduzione dell'attributo ID (IDenticatore)
NOME
COGNOME
AUTORE
TITOLO
HA SCRITTO
ID
LIBRO
ISBN
serve a identicare univocamente la singola istanza
dell'entità
può convenientemente essere un attributo numerico
l'uso di un ID numerico come chiave primaria è molto
comune
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Le tabelle
tabella
lo schema di una tabella implementa lo schema di una
entità
le righe sono dette tuple o record, e contengono i dati di
una istanza dell'entità
le colonne sono formate dagli attributi
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Esempio di implementazione
obiettivo
realizzare un database per la gestione del personale e di alcune
attività di un centro ospedaliero
in particolare, si richiede la gestione dei seguenti:
il personale del centro
gli utenti del centro
l'organizzazione del centro (reparti)
gli interventi
una semplice gestione economica (paghe e costi)
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Possibile organizzazione in entità
alcune considerazioni:
diversi dipendenti fanno riferimento allo stesso reparto
il nome di un reparto può essere associato a molti
dipendenti
è conveniente istituire una tabella REPARTI che contiene
i nomi e le informazioni riguardanti tutti i reparti
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Prime osservazioni
possibili entità:
le persone, siano esse clienti dipendenti
i reparti
gli iterventi
le visite
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabelle e relazioni
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella PERSONA
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella DIPENDENTI
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella INTERVENTI
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella PROFESSIONI
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella REPARTI
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella VISITE
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella DRG
Tullio Facchinetti
<[email protected]>
Basi di Dati
Basi di dati
Database relazionali
Tabella RICOVERI
Tullio Facchinetti
<[email protected]>
Basi di Dati