SISTEMI INFORMATIVI
(Appunti del corso Sistemi Informativi – Unibo, Ingegneria
Gestionale)
INDICE
PARTE 1: Le Basi di Dati Relazionali
Introduzione 2
Modello Relazionale 4
Algebra Relazionale 7
SQL 12
Normalizzazione di Schemi Relazionali 30
PARTE 2: Progettazione di Sistemi Informativi
La Progettazione della Base di Dati 36
Il Modello Entity Relationship 39
Progetto Logico da schemi E/R 47
Analisi Funzionale e Diagrammi di Flusso dei dati 51
Progetto Integrato di dati e funzioni 55
Modellazione dei processi aziendali 58
PARTE 3: Tecnologia dei Sistemi Informativi
Sistemi Transazionali 61
Controllo di Concorrenza 69
+¿−Tree
Metodi di Accesso (Indici ) 74
¿
B
Calcolo del Costo di Accesso ai dati 81
Calcolo del Costo di Join 88
Tecnologia dei Sistemi Informativi 92
Basi di Dati Distribuite 95
Architetture Evolute nei Sistemi Informativi 102
I sistemi ERP 107
Formulario 111
1
SISTEMI INFORMATIVI
Qualunque tipo di organizzazione, per poter funzionare, oggi si appoggia su un
flussi informativi:
Sistema Informativo, il quale gestisce i permette di spostare,
trovare, recuperare tutta l’informazione che serve per svolgere la nostra attività.
Definizione di Sistema Informativo: Insieme di Risorse (di qualunque Natura:
hardware, personale, sistemisti, utenti finali, archivi cartacei, …) e di Metodologie
finalizzate alla Raccolta, all'Uso e allo Scambio di Informazioni.
Un Sistema Informativo non significa soltanto Sistema Informatico, ma una parte,
tipicamente negli anni crescente, del Sistema Informativo può essere
automatizzata. Un Sistema Informatico è un sottoinsieme del Sistema
Informativo dove la sovrapposizione può essere più o meno spinta.
L'Informazione viene codificata e rappresentata nelle macchine sotto forma di
Dati.
Caratteristiche di una Base di Dati:
Grandi dimensioni
Condivisione → utilizzate contemporaneamente da più utenti
Persistenza → i dati devono essere protetti, sopravvivere qualunque cosa
succeda, non possono essere persi
Caratteristiche di un DBMS (Data Base Management System):
Affidabilità → deve funzionare sempre
Privatezza → devono esserci dei meccanismi che garantiscano a vari livelli
la privatezza
Efficacia → devo poter trovare l’informazione che sto cercando
Efficienza → per trovare la medesima informazione in un Sistema
Informativo, a seconda di come il sistema è costruito ci sono diversi ordini
di grandezza sui tempi di risposta
SISTEMI INFORMATIVI AZIENDALI
Sistema Informativo: Insieme degli strumenti, risorse e procedure che
consentono la gestione delle informazioni aziendali.
è essenziale per il funzionamento dell'azienda
è fortemente integrato con il sistema organizzativo
comprende risorse umane
Sistema Informatico: insieme dei sistemi hardware e software presenti in una
azienda. Permette di gestire in maniera automatizzata l’informazione
(informazione codificata come dati gestiti dai programmi e memorizzati nelle
basi di dati).
assicura la generazione, l’elaborazione, la circolazione e la
memorizzazione delle informazioni su supporti informatici.
Dato: unità elementare (grezza) di informazione.
Informazione: elaborazione dei dati per rispondere a esigenze specifiche
dell’impresa.
Approccio tecnologico alla gestione dell’informazione: due visioni fondamentali
(visione centrata sui dati o sulle applicazioni).
Compiti della tecnologia dell’informazione (visione centrata sui dati):
Immissione, Memorizzazione, Cancellazione dei dati
Accesso, Elaborazione, Trasferimento: dai dati all'informazione
2
Presentazione, Visualizzazione dell'informazione
Processo: procedura aziendale che risponde ad un particolare compito
applicativo.
Come analizzare i sistemi informativi?
a. Partendo dai dati
b. Partendo dai processi
Criterio principale: stabilità → i dati sono più stabili dei processi!
DBMS • Sistemi software dedicati alla gestione dei dati
• Esistono sul mercato alcune centinaia di prodotti
diversi
Confronto con architetture con/senza DBMS
Principale differenza: gestione dei dati unitaria e a più
alto livello (tramite linguaggi specializzati).
Disallineamento delle copie di dati significa
inconsistenza globale del database: quale dei due dati è
quello corretto?
Principali caratteristiche:
Condivisione dei dati
- Assenza di replicazione nei file
- Concorrenza → es. due utenti non possono acquistare il medesimo
prodotto
Qualità dei dati
- Vincoli di integrità → garantiscono che i dati rappresentino
un’informazione sensata
Efficienza
- Caricamento, query, sort
Controllo dell’accesso
- Privatezza (e accesso selettivo ai dati)
Robustezza → sistemi resilienti
Come si usa un DBMS?
a. Definendo la struttura generale dei dati
b. Definendo le specifiche operazioni sui dati
Schema dei dati: struttura comune a una famiglia di dati. È il tipo della base di
dati.
Istanza : contenuto delle variabili che vado a dichiarare.
Architettura a livelli degli schemi
Schema esterno (o delle viste): descrizione per specifiche applicazioni →
consente a ciascun settore aziendale di avere una vista personalizzata sul
database aziendale (anche se i dati sono gli stessi).
Schema logico: descrizione globale → progettare la base di dati aziendale. 3
Schema interno: descrizione dei meccanismi di gestione dei dati → riguarda la
struttura informatica, uso delle strutture dati per memorizzare e gestire come i
dati sono fisicamente memorizzati.
Questi tre livelli consentono all’interfaccia tra un livello e l’altro dei gradi di
libertà.
Indipendenza logica: capacità di offrire una visione dei dati differente ad utenti
differenti.
Indipendenza fisica: capacità di astrarre completamente dai meccanismi di
gestione dei dati. Mi garantisce di riutilizzare il progetto logico anche cambiando
la tecnologia che sta sotto.
I linguaggi del DBMS
DATA DEFINITION LANGUAGE (DDL) → contiene delle istruzioni che servono
per agire sugli schemi e che quindi sarà usato dai database administrator
e dai progettisti.
Es: CREATE, DROP, ALTER
DATA MANIPULATION LANGUAGE (DML) → linguaggio utilizzato dagli utenti.
Consente di inserire, modificare, cancellare e trovare l’informazione che
serve quando serve.
Es: SELECT, INSERT, UPDATE, DELETE
Gli utenti del DBMS
Database administrator: programma il DDL.
Programmatori applicativi: programmano le applicazioni, usando il DML. Quando
le applicazioni avranno bisogno di informazioni, saranno i programmi stessi e non
gli utenti a usare il DML per andare a recuperare l’informazione.
Utenti casuali: eseguono le versioni “amichevoli” del DML (query language,
interfacce grafiche).
Utenti finali (“terminalisti”): eseguono le applicazioni.
I moduli del DBMS
Un DBMS è un’architettura
software abbastanza complessa
fatta di moduli e sottomoduli.
Nel dizionario dati è presente la
definizione degli schemi (è una
piccola frazione del database
vero e proprio).
Il database vero e proprio
contiene le istanze dei dati,
contiene l’informazione codificata
sotto forma di dati.
IL MODELLO RELAZIONALE DEI DATI
Definizione formale 4
Dominio D: un qualunque insieme di valori
D × D D
Prodotto cartesiano su n domini … (non
×
1 2 n
d d
necessariamente distinti): insieme delle n-ple (tuple) < , , …
1 2
d d D
∈ ≤ ≤
> con , 1 i n
n i i
D × D D
Relazione R su … : un qualunque sottoinsieme di
×
1 2 n
D × D D
× …
1 2 n
Esempio
D = (a,b)
1
D = (1,2,3)
2
D D
× = (<a,1>, <b,1>, <a,2>, <b,2>, <a,3>, <b,3>)
1 2
R1 = (<a,1>, <b,3>)
R2 = (<a,1>, <a,2>, <b,3>)
R3 = ( )
R4 = (<a,1>, <b,1>, <a,2>, <b,2>, <a,3>, <b,3>)
Proprietà
Grado della relazione: numero di domini (n)
Cardinalità della relazione: numero di tuple
Attributo: nome dato al dominio in una relazione
[i nomi di attributi in una relazione devono essere tutti
distinti fra loro]
Schema (di una relazione): tabella (attributo1, … attributoN)
[i nomi delle relazioni in uno schema devono essere tutti distinti fra loro]
Una differenza significativa:
Definizione formale → assenza di duplicati.
Definizione informale → possibili duplicati.
Esempio: gestione degli esami universitari.
Riflessioni
Differenza fra schema e istanza
Due attività assai differenti:
- Progetto dello schema
- Gestione dell’istanza 5
Passaggio dai dati all’informazione (Query language) → linguaggio di
interrogazione
Lo schema definisce la struttura dei dati: nel modello formale sono i domini e i
nomi degli attributi, oltre il nome della relazione; nel modello informale sono i
nomi delle tabelle e le intestazioni, cioè i nomi delle colonne nello schema delle
tabelle.
Le istanze sono invece il contenuto, le tuple nel modello formale, le righe
all’interno della tabella.
L’informazione è contenuta nelle istanze.
Vincoli di integrità: escludono alcune istanze in quanto non rappresentano
correttamente il mondo applicativo.
- Chiavi
- Vincoli sui valori nulli (entity integrity)
- Integrità referenziale (referential integrity)
- Vincoli generici
Chiave: sottoinsieme degli attributi dello schema che ha la proprietà di unicità e
minimalità.
Unicità: non esistono due tuple con chiave uguale.
Minimalità: sottraendo un qualunque attributo alla chiave si perde la proprietà di
unicità.
Un insieme di attributi per cui vale solo la proprietà di unicità si chiama
superchiave (questo conferma che l’intero schema sia una superchiave, però
non è detto che sia una chiave).
Chiave esterna: attributi K in R1 e R2; se K è chiave primaria in R1 allora è
esterna in R2.
Entity integrity: non ci possono essere valori nulli in nessun componente di una
chiave.
Referential integrity: se K è chiave esterna in R2 e primaria in R1, i valori di K
in R2 sono compresi fra quelli che ha in R1 (devono essere un sottoinsieme o al
più nulli).
Notazioni
R(A, B, C) Schema di una relazione.
D D D
R(A: , B: , C: ) Domini in evidenza (normalmente si
A B C
sottintendono).
Tipicamente per i nomi di attributi e relazioni si utilizzano lettere maiuscole.
R “r” R
è il nome della relazione. Con si intende un’istanza di (un insieme di
tuple).
r = {(a, 1, x), (b, 2, y)}
s = (a, 1, x) e t = (b, 2, y) sono due tuple.
s, t appartenenti a r
s.B = s[B] = 1 valore dell’attributo B in s (due notazioni).
t.C = t[C] = y
AC = {A, C}, s.AC = s[AC] = (a, x) insieme degli attributi A e C.
t.BC = t[BC] = (2, y)
X = AC, s.X = s[X] = (a,x) X rappresenta l’insieme di attributi A e C.
R(X) relazione generica senza specificare i suoi attributi (A, B e C in questo
esempio)
Notazione di chiave
r
R(X) con istanza 6
Sia K un sottoinsieme di X, K è chiave di R sse:
s, t r: s[K] t[K] s t proprietà di
1. per ogni coppia tuple di = implica = (
unicità )
2. non esiste sottoinsieme H proprio di K t.c. per H vale la 1. ovvero possono
≠
u, v r u v u[H] v[H] proprietà di minimalità
esistere in tali che e = ( )
Per indicare la chiave di una relazione si sottolineano gli attributi che vi
appartengono. R(A, B, C)
ALGEBRA è un linguaggio per DB costituito da un insieme di
RELAZIONALE (AR) operatori che si applicano a una o più relazioni e che
Linguaggi di producono una relazione.
interrogazione
linguaggi formali
• Algebra relazionale
• Calcolo relazionale
• Programmazione logica
linguaggi “programmativi”
• SQL: Structured Query Language
• QBE: Query By Example
Algebra relazionale
definite da Codd (70)
molto utile per imparare a formulare query
insieme minimo di 5 operatori che danno l’intero potere espressivo del
linguaggio 7
Selezione
L’operatore di selezione σ permette di selezionare un sottoinsieme delle tuple di
una relazione, applicando a ciascuna di esse una formula booleana F (predicato
di selezione).
F si compone di predicati connessi da AND (), OR () e NOT ().
Ogni predicato è del tipo A c o A B, dove:
A e B sono attributi in X
∈
c dom(A) è una costante
∈ ¿
è un operatore di confronto, { }
, ≠ ,< ,>, ≤ ,≥
Il risultato della selezione sarà una relazione che avrà lo stesso schema di R,
t
quindi tutti gli attributi X, e come istanza sarà l’insieme delle tuple appartenenti
r
a tali per cui il predicato F risulta vero.
Proiezione
L’operatore di proiezione è ortogonale alla selezione, in quanto permette di
selezionare un sottoinsieme Y degli attributi di una relazione.
Il risultato della proiezione è una relazione con schema Y e come istanza tutte le
sottotuple relative agli attributi Y che posso estrarre da R.
La proiezione elimina eventuali duplicati. Tuple che prima erano diverse ma che
per effetto della proiezione diventano uguali, danno luogo a duplicati che devono
essere eliminati, perciò il risultato avrà meno tuple della relazione di partenza.
Proiezione: cardinalità del risultato
(
π r) r
In generale, la cardinalità di è minore o uguale a quella di (la
Y
proiezione “elimina i duplicati”).
L’uguaglianza è garantita se e solo se Y è una superchiave di R(X) (allora vale
l’unicità, quindi anche proiettando soltanto sugli attributi in Y le tuple sono tutte
diverse).
Dimostrazione:
(Se) Se Y è una superchiave di R(X), in ogni istanza legale r di R(X) non
esistono due tuple distinte t1 e t2 tali che t1[Y] = t2[Y].
(Solo se) Se Y non è superchiave allora è possibile costruire un’istanza
legale r con due tuple distinte t1 e t2 tali che t1[Y] = t2[Y]. Tali tuple
“collassano” in una singola tupla a seguito della proiezione. 8
Si noti che il risultato ammette la possibilità che “per caso” la cardinalità non vari
anche se Y non è superchiave.
Join naturale ⋈
L’operatore di join naturale combina le tuple di due relazioni sulla base
dell’uguaglianza dei valori degli attributi comuni alle due relazioni.
r r
Ogni tupla che compare nel risultato del join naturale di e , istanze
1 1
R X R X
rispettivamente di ( ) e ( ), è ottenuta come combinazione
1 1 2 2
r r
(“match”) di una tupla di con una tupla di sulla base dell’uguaglianza
1 2
X X
dei valori degli attributi comuni (cioè quelli in ).
1 2
Inoltre, lo schema del risultato è l’unione degli schemi degli operandi.
Osservazioni
È possibile che una tupla di una delle relazioni operande non faccia match
con nessuna tupla dell’altra relazione; in tal caso tale tupla viene detta
“dangling”.
Nel caso limite è quindi possibile che il risultato del join sia vuoto; all’altro
r
estremo è possibile che ogni tupla di si combini con ogni tupla di
1
r .
2 ⋈
r r r
Ne segue che la cardinalità del join, | |, è compresa tra 0 e | | *
1 2 1
r
| |.
2 R X
Se il join è eseguito su una superchiave di ( ), allora ogni tupla di
1 1
r r
fa match con al massimo una tupla di , quindi
2 1
⋈
¿ ∨≤∨r ∨¿
r r .
1 2 2
X X R X R
Se è la chiave primaria di ( ) e foreign key in (
1 2 1 1 2
X ) (e quindi c’è un vincolo di integrità referenziale) allora
2
| |
⋈r =¿ ∨¿
r r .
1 2 2
Join naturale e intersezione =
X X
Quando le due relazioni hanno lo stesso schema ( ) allora due tuple
1 2
fanno match se e solo se hanno lo stesso valore per tutti gli attributi, ovvero
sono identiche, per cui:
=
X X
Se il join naturale equivale all’intersezione () delle due relazioni.
1 2
Join naturale e prodotto Cartesiano =¿
X X
Viceversa, quando non ci sono attributi in comune ( Ø), allora
1 2
due tuple fanno sempre match, per cui:
=¿
X X R
Se Ø il join naturale equivale al prodotto Cartesiano
1 2 1
R .
2
In questo caso, a differenza del caso matematico, il prodotto Cartesiano non è
ordinato. 9
Unione e Differenza
Poiché le relazioni sono insiemi, sono ben definite le operazioni di unione e
,
−¿
differenza .
Entrambe si applicano a relazioni con lo stesso insieme di attributi.
r r r
Si noti che l’intersezione si può anche scrivere come: = – (
1 2 1
−r
r ).
1 2
Il problema dei nomi
Il join naturale, l’unione e la differenza operano (sia pur diversamente) sulla base
degli attributi comuni a due schemi.
Ridenominazione
L’operatore di ridenominazione modifi
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti teoria Sistemi informativi
-
Appunti Sistemi informativi
-
Appunti sistemi informativi
-
Appunti Sistemi informativi