Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
1 Sigda - Database
1. SISTEMI INFORMATIVI PER LA
GESTIONE DELL’AZIENDA
dott. ing. Francesco Guerra
francesco.guerra@unimore.it
2. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
DB e DBMS
L’attenzione alle basi di dati ha caratterizzato le applicazioni
informatiche fino dalle origini: i primi software risalgono
agli anni ’60.
Molte applicazioni scritte con il linguaggio COBOL sono tuttora
utilizzate anche se si devono ritenere come applicazioni legacy
L’approccio convenzionale sfrutta la presenza di archivi per
memorizzare i dati in modo persistente sulla memoria di
massa.
Un file fornisce solo semplici meccanismi di accesso e di
condivisione
Un sistema di gestione di basi di dati (DBMS-Data Base
Management System) e’ un sistema software per gestire
grandi quantita’ di dati grandi condivise e persistenti,
assicurando affidabilita’ e privatezza.
dott. ing. Francesco Guerra 2
1 DB
3. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
DB e DBMS
Le basi di dati sono grandi nel senso che possono contenere
Terabyte di dati. Devono essere scalabili perche’ gli archivi
possono essere anche di poche migliaia di byte
I db sono condivisi: applicazioni e utenti diversi devono potere
accedere secondo opportune modalita’ a dati comuni.
Questa proprieta’ determina la riduzione della ridondanza per
evitare la possibilita’ di inconsistenze
Implementazione di un sistema di controllo di concorrenza
Le basi di dati sono persistenti: il loro tempo di vita non e’
limitato a quelle delle esecuzione degli applicativi che le
utilizzano
I DBMS garantiscono affidabilita’: capacita’ di conservare il
contenuto di un database in caso di malfunzionamento
Implementazione di specifiche funzionlita’ di backup e recovery
dott. ing. Francesco Guerra 3
1 DB
4. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
DB e DBMS
I DBMS garantiscono la privatezza dei dati: ciascun utente
e’ riconosciuto mediante un account e viene abilitato a
svolgere solo determinate azioni sulla base di meccanismi
di autorizzazione
Un DBMS soddisfa ai principi di
Efficienza: capacita’ di svolgere le operazioni utilizzando un
insieme di risorse accettabile per gli utenti
Efficacia: capacita’ della base di dati di rendere produttive le
attivita’ degli utenti.
dott. ing. Francesco Guerra 4
1 DB
5. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Modelli di dati
Un modello di dati e’ un insieme di concetti utilizzati per
organizzare i dati di interesse e descriverne la struttura in
modo che sia comprensibile a un elaboratore
Ogni modello dati fornisce dei meccanismi di strutturazione.
Il modello relazionale dei dati – il piu’ diffuso – permette di
definire nuovi tipi di dato sulla base del costruttore
relazione: un insieme di record a struttura fissa
La relazione e’ rappresentabile mediante una tabella
Le righe sono gli specifici record
Le colonne sono i campi del record
L’ordine delle righe e delle colonne e’ sostanzialmente irrilevante
dott. ing. Francesco Guerra 5
1 DB
6. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Il modello dei dati
Docenti
CODICE NOME
1 Francesco Guerra
2 Tizio Caio
… …
Manifesto
CDL MATERIA ANNO
CGI Sistemi informativi d’azienda 1
EA Sistemi informativi d’azienda 3
ACGF Controllo e S.I. 2
dott. ing. Francesco Guerra 6
1 DB
7. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Schemi e Istanze
Le basi di dati si compongono di due parti:
Una parte invariante nel tempo detta schema della base di dati
che descrive le caratteristiche dei dati
E’ la componente intensionale
Una parte variabile costituita dai valori effettivi degli elementi
rappresentati.
E’ la componente estensionale
dott. ing. Francesco Guerra 7
1 DB
8. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Linguaggi per basi di dati
I linguaggi per basi di dati si dividono in tre tipologie:
Data Definition Language: servono per specificare gli schemi
logici esterni e fisici
Data Manipulation Language: sono utiulizzati per
l’interrogazione e l’aggiornamento delle basi di dati
Data Control Language: sono i comandi per la gestione degli
utenti e la specificazione dei privilegi di accesso
I dati possono essere consultati mediante:
Linguaggi testuali interattivi
Comandi simili a quelli interattivi immersi in linguaggi di
programmazione tradizionali
Interfacce amichevoli che permettono di sintetizzare le
interrogazioni senza usare un linguaggio testuale
dott. ing. Francesco Guerra 8
1 DB
9. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Riassumiamo
Un DB è una collezione di dati (ad es. rappresentati in
forma di tabelle) che rappresentano le informazioni di
interesse per un’organizzazione
Progettare un DB significa trovare un “buon modo” per
strutturare i dati, che rispetti sia i requisiti propri del
Sistema Informativo dell’organizzazione sia i vincoli che sui
dati vengono imposti
Un DBMS è un sistema software che gestisce DB
Per eseguire operazioni su un DB è necessario scrivere
istruzioni in un linguaggio (tipicamente dichiarativo: SQL)
supportato dal DBMS
Il modo specifico con cui un’istruzione viene eseguita è
scelto dal modulo ottimizzatore del DBMS sulla base di
considerazioni di efficienza e considerando quali sono gli
operatori e i metodi di accesso disponibili
dott. ing. Francesco Guerra 9
1 DB
10. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
La classica architettura a
tre livelli di astrazione
Vista
Database su
Vista dispositivi
Schema logico fisici
Livello esterno
A livello logico si descrive la base di dati con il modello logico usato
dal DBMS Livello logico Livello fisico
A livello fisico si descrive il modo in cui i dati sono organizzati e
gestiti in memoria di massa (dispositivi fisici): ordinamento, scelta
dei metodi accesso
A livello esterno si descrive una parte (una vista) della base di dati
di interesse dott. ing. Francesco Guerra 10
1 DB
11. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Livelli di astrazione nei DBMS
Esiste una proposta standardizzata di architettura per
DBMS articolata su 3 livelli (esterno, logico e interno) per
ciascuno dei quali esiste uno schema:
Schema logico: e’ lo schema della intera base di dati per
mezzo del modello logico adottato dal DBMS (relazionale,
gerarchico, reticolare, ad oggetti, …)
Schema interno: si tratta della rappresentazione dello schema
logico per mezzo delle strutture di memorizzazione
Schema esterno: costituisce la descrizione di una porzione
della base di dati di interesse per mezzo dello schema logico.
dott. ing. Francesco Guerra 11
1 DB
12. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Indipendenza fisica e logica
Un’architettura di questo tipo garantisce:
Indipendenza fisica
L’organizzazione fisica dei dati dipende da considerazioni
legate all’efficienza delle organizzazioni adottate. La
riorganizzazione fisica dei dati non deve comportare
effetti collaterali sui programmi applicativi
Indipendenza logica
Pur in presenza di uno schema logico integrato non è
utile o conveniente che ogni utente ne abbia una visione
uniforme
dott. ing. Francesco Guerra 12
1 DB
13. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Utenti e progettisti
Ci sono diverse categorie di operatori che lavorano con le
basi di dati:
L’amministratore delle basi di dati (DBA): e’ il responsabile
della progettazione, controllo e amministrazione della base di
dati
I progettisti e i programmatori di applicazioni: definiscono e
realizzano i programmi per accedere alle basi di dati
utilizzando un DML
Gli utenti che possono accedere sia per compiere transazioni
ripetitive e formalizzate sia delle interrogazioni non
preventivabili a priori
dott. ing. Francesco Guerra 13
1 DB
14. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Vantaggi e svantaggi dei DBMS
Vantaggi:
I dati vengono considerati come una risorsa comune di una
organizzazione
La base di dati rappresenta un modello unificato e preciso della
parte di mondo reale di interesse per l’organizzazione
Con il DBMS e’ possibile la gestione centralizzata dei dati che
puo’ essere arricchita da forme di standardizzazione e
beneficiare di economie di scala
La condivisione permette di ridurre la ridondanza e eventuali
inconsistenze
L’indipendenza dei dati favorisce lo sviluppo di applicazioni
flessibili e facilmente modificabili
Svantaggi:
I DBMS sono prodotti costosi e complessi con necessita’ di
investimenti sia diretti sia indiretti (personale di
manutenzione)
dott. ing. Francesco Guerra 14
1 DB
15. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Il modello relazionale
dott. ing. Francesco Guerra 15
1 DB
16. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Il modello relazionale
La maggior parte dei DBMS in commercio si fonda sul
modello relazionale che e’ stato progettato da Codd nel 1970.
Il modello relazionale si fonda sul concetto di relazione e di
tabella
Dati due insiemi D1 e D2 si definisce prodotto cartesiano di D1 e
D2 (in simboli D1 x D2) l’insieme delle coppie ordinate (v1, v2)
tali che v1 e’ un elemento di D1 e v2 e’ un elemento di v2
Una relazione matematica sugli insiemi D1 e D2 e’ un
sottoinsieme di D1 x D2
Le relazioni possono essere rappresentate graficamente in forma
tabellare.
dott. ing. Francesco Guerra 16
1 DB
17. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Relazione e tabelle: un esempio
A={1,2,3}
B={a,b}
Prodotto cartesiano:
1 a
{(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)}
1 b
2 a
2 b
3 a
3 b
dott. ing. Francesco Guerra 17
1 DB
18. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Il modello relazionale
L’esempio fa riferimento a una relazione composta da due
insiemi di elementi, ma tali relazioni possono essere
generalizzate rispetto al numero di insiemi.
Il numero delle componenti del prodotto cartesiano e’ detto
grado della relazione
Il numero di elementi della relazione (n-uple) e’ detto
cardinalita’ della relazione
Con riferimento all’uso che si fa delle relazioni per
organizzare i dati nei DB, ciascuna n-upla contiene dati fra
loro collegati:
Non e’ definito alcun ordinamento fra le n-uple
Le n-uple sono distinte le une dalle altre
E’ possibile introdurre un nome a ogni occorrenza di
dominio in una relazione (attributo)
dott. ing. Francesco Guerra 18
1 DB
19. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Tabella di un DB
Attributo
Nome Cognome Data di nascita Professione
n-upla
Francesco Guerra 21/05/1973 Ricercatore
Giulia Montanari 01/01/1979 Studente
Erika Rossi 02/02/1983 Impiegata
dott. ing. Francesco Guerra 19
1 DB
20. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Relazioni e basi di dati
Una base di dati e’ un insieme di tabelle correlate
Matricola NomeCorso Docente Voto
esaESAESAMI
ESAME
123 Matematica Rossi 28
Matricola Nome Cognome Età
STUDENTI
STUDENTE
123 Anna Verde 21
CORSO NomeCorso Anno Crediti
CORSOCORSOCORSI1
Matematica 5
dott. ing. Francesco Guerra 20
1 DB
21. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Informazione incompleta e valori nulli
La rappresentazione del modello relazionale impone che le
informazioni siano rappresentate con tuple di dati omogenee:
PERSONE (nome, cognome, indirizzo, n_cellulare)
il valore dell’attributo n_cellulare potrebbe non essere presente
per tutte le tuple
Si potrebbe utilizzare un valore del dominio per identificare
l’assenza di informazione
Richiede l’esistenza di tale valore
L’uso di valori di dominio puo’ generare confusione: la distinzione fra
valori veri e valori falsi e’ nascosta.
Esiste un opportuno valore (NULL – valore nullo) che indica
l’assenza di informazione (intesa come valore sconosciuto, valore
inesistente o assenza generica di informazione)
dott. ing. Francesco Guerra 21
1 DB
22. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Vincoli di integrita’
Le strutture del modello relazionale ci permettono di
organizzare le informazioni di interesse per le applicazioni, ma
non tutte i dati (o le combinazioni di dati) che sono
rappresentabili dal dominio permettono di descrivere stati
corretti del database
Vincolo di integrita’: proprieta’ che deve essere soddisfatta dalle
istanze che rappresentano informazioni corrette per l’applicazione
Vincoli di tupla: esprimono condizioni sui valori di ciascuna tupla,
indipendentemente dalle altre tuple
Chiavi: e’ l’insieme di attributi minimo che permette di identificare
univocamente ogni tupla della relazione (ovviamente non e’
consentito agli attributi della chiave di assumere dei valori nulli)
Vincoli di integrita’ referenziale: permettono di correlare in maniera
corretta tuple appartenenti a relazioni diverse assicurando che
quando in una tupla si utilizza il valore di un attributo per riferirsi a
un’altra tupla questa deve essere una tupla esistente (chiave esterna)
dott. ing. Francesco Guerra 22
1 DB
23. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Esempio: modellazione di un sito di e-commerce
Si vuole modellare un sito di e-commerce che vende libri.
I clienti vengono identificati da un login e descritti
tramite il nome, il cognome e l’e-mail.
I libri sono identificati dal codice ISBN e per ogni libro
viene descritto l’autore, il titolo, il numero di pagine e
il prezzo.
In una certa data un cliente acquista un certo numero di
copie di uno o piu’ libri. L’acquisto deve essere
memorizzato dal DB.
Per risolvere il problema e’ sufficiente realizzare un DB con tre
tabelle:
Una tabella memorizza i clienti
Una tabella memorizza i libri
Una tabella memorizza gli acquisti
dott. ing. Francesco Guerra 23
1 DB
24. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Esempio: modellazione di un sito di e-commerce
Clienti (login, password, nome, cognome, email)
Chiave: login
Libro (ISBN, autore, titolo, n_pagine, prezzo)
Chiave: ISBN
Acquisto (data, login, ISBN, quantita)
Chiave (esterna): login (riferisce a Clienti), ISBN (riferisce a Libro)
dott. ing. Francesco Guerra 24
1 DB
25. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Esempio: modellazione di un sito di e-commerce
dott. ing. Francesco Guerra 25
1 DB
26. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Esempio: modellazione di un sito di e-commerce
Secondo la modellazione assunta e considerando le istanze
inserite nella pagina precedente:
Si puo’ inserire nel db un altro cliente di nome Francesco,
cognome Guerra e login fguerra73?
Si puo’ inserire nel db un altro cliente che abbia login fguerra,
password 21573 nome Francesco, cognome Guerra, email
guerra.francesco@unimore.it?
Un cliente puo’ acquistare due volte lo stesso libro in date
diverse?
Il cliente fguerra puo’ acquistare il libro ISBN 88-371 autore:
Bergamaschi, …?
Possono essere inseriti clienti nel db senza che abbiano mai
fatto acquisti?
Si possono inserire libri che non sono mai stati acquistati?
Si possono inserire degli acquisti senza la presenza di una
tupla corrispondente nella tabella libri e nella tabella clienti?
dott. ing. Francesco Guerra 26
1 DB
27. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Esempio: prestito in biblioteca
Si rappresenti mediante il modello relazionale il funzionamento del db della
biblioteca. Un utente e’ identificato dal codice fiscale e ha un nome, un
cognome, un indirizzo. Un libro e’ identificato dal codice, ha un titolo, un
autore, una casa editrice e un anno.
Un utente puo’ prendere in prestito piu’ libri con il vincolo che in una certa
data un utente non posso prendere in prestito piu’ di un libro
Libro (codice, titolo, autore, casa_editrice, anno)
Chiave: codice
Utente (cf, nome, cognome, indirizzo)
Chiave: cf
Prestito (codice, cf, data)
Chiave: codice, cf, data
dott. ing. Francesco Guerra 27
1 DB
28. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Esercizi
Considerare le informazioni per la gestione dei prestiti di una biblioteca
personale. Il proprietario presta libri ai suoi amici, che indica semplicemente
attraverso i nomi o soprannomi (per evitare omonimie) e fa riferimento ai libri
attraverso i titoli (non possiede due libri con lo stesso titolo).
Quando presta un libro prende nota della data prevista per la restituzione.
Definire uno schema di relazione per rappresentare queste informazioni e
mostrarne un’istanza in forma tabellare. Indicare la chiave (le chiavi) della
relazione.
Rappresentare per mezzo di una o piu’ relazioni le informazioni contenute
nell’orario delle partenze di una stazione ferroviaria: numero, orario,
destinazione finale, categoria del treno, …
dott. ing. Francesco Guerra 28
1 DB
29. SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA
Bibliografia
Atzeni, Ceri, Paraboschi, Torlone: Basi di dati: Modelli e
linguaggi di interrogazione, McGraw-Hill
Beneventano, Bergamaschi, Guerra, Vincini: Progetto di
basi di dati relazionali, Pitagora Editrice Bologna, 2007
dott. ing. Francesco Guerra 29
1 DB