Sistemi informativi T-19 CFU
Indice
Fabio Grandi
Prof. Appunti di Simone Benassi
Parte I
- Introduzione ai DBMS
- Modello relazionale dei dati
- Algebra relazionale
- Interrogazioni in SQL
- Dichiarazione degli schemi in SQL
- Interrogazioni complesse
- Aspetti avanzati nella definizione degli schemi
- Vincoli, procedure e regole attive in SQL
- Normalizzazione di schemi relazionali
Parte II
- La progettazione della base di dati
- Il modello Entity – Relationship (E-R)
- La definizione delle proprietà
- Le associazioni (parte 1)
- Le associazioni (parte 2)
- Identificazione esterna
- Generalizzazione e specializzazione
- Progetto logico da schemi E-R
- Progetto logico relazionale
- Analisi funzionale e diagrammi di flusso dei dati
- Progetto integrato di dati e funzioni
Parte III
- Sistemi transazionali
- Controllo di concorrenza
- Tecnologia dei sistemi informativi
- Basi di dati distribuite
- Architetture evolute nei sistemi informativi
- Metodi di accesso (Indici B-Tree)
- Calcolo del costo di accesso ai dati
- Calcolo del costo di join
- Modellazione dei sistemi aziendali
- I sistemi ERP
Introduzione ai DBMS
Sistema informativo insieme di risorse (di qualunque natura) e metodologie finalizzate alla raccolta, uso e allo scambio di informazioni.
Le informazioni sono il materiale che serve per svolgere le attività: una volta le informazioni erano gestite attraverso strumenti cartacei, ora invece si utilizzano i sistemi informativi.
Le informazioni per essere elaborate dai computer devono essere tradotte in dati.
Base di dati le caratteristiche fondamentali sono:
- Grandi dimensioni
- Condivisione
- Persistenza
DBMS (Data Base Management System) sistemi per la gestione delle basi di dati. Le caratteristiche fondamentali sono:
- Affidabilità
- Privatezza
- Efficacia
- Efficienza
Un sistema informativo è fortemente legato al funzionamento dell’organizzazione, e per questo motivo è fortemente integrato con il sistema organizzativo aziendale, mediante anche risorse umane.
Sistema informatico non esiste nessuna correlazione fra sistema informatico e sistema informativo.
Il sistema informatico è l’insieme di sistemi hardware e software presenti in un’azienda: esso assicura la sicurezza, la generazione e l’elaborazione delle informazioni.
Informatica scienza del trattamento razionale, specialmente per mezzo di macchine automatiche, dell’informazione.
L’informatica ha due anime:
- Aspetto metodologico
- Aspetto tecnologico
È possibile delineare alcune applicazioni dei sistemi informativi:
- Applicazioni gestionali classiche
- Applicazioni finanziarie
- Sistemi di prenotazione
- Nuove applicazioni
Le macchine (calcolatori) elaborano informazioni tramite i dati. È utile quindi esplicare la differenza che è presente nel passaggio dal dato all’informazione.
Dato unità elementare (grezza) di informazione: ciò che è immediatamente presente nella conoscenza, prima dell’elaborazione.
Informazione elaborazione dei dati per rispondere ad esigenze specifiche dell’impresa.
Perché si utilizzano i dati? I dati riescono ad elaborare più precisamente e in modo più ricco le informazioni. Inoltre, i dati costituiscono una risorsa strategica in quanto sono più stabili nel tempo rispetto ad altri componenti.
Processo procedura aziendale che risponde a un particolare compito applicativo, interagendo con l’utente.
Come si possono analizzare i sistemi informativi?
- Partendo dai dati
- Partendo dai processi
Rimane comunque importantissimo il concetto di stabilità dei dati. Fare grandi investimenti nella progettazione dei dati è più vantaggioso che fare gli stessi investimenti nei processi: i dati possono addirittura sopravvivere alle aziende (che falliscono), per essere poi venduti ad esempio alla vecchia concorrenza.
L’architettura che ne consegue è la seguente:
Base di dati insieme organizzato di dati utilizzati per il supporto allo svolgimento dell’attività di un ente (azienda). Analogamente si può definire come insieme organizzato di dati per il supporto allo svolgimento delle attività di un ente (azienda), gestito per mezzo di un DBMS.
Come detto in precedenza, le caratteristiche principali delle basi di dati sono tre:
- Dimensioni-grandi: devono essere gestite grandi quantità di dati, non solo nella memoria centrale, ma anche in quella secondaria
- Condivisione: la base di dati è una risorsa integrata, condivisa da diverse applicazioni e quindi utenti
- Persistenza: non è accettato perdere dati che mi servono per svolgere le attività aziendali
Solitamente la persistenza è garantita dal DBMS.
DBMS (Data Base Management System) software applicativo molto complesso per la gestione della base di dati. È possibile fare un confronto fra architetture con e senza DBMS:
| Approccio settoriale | Approccio base di dati |
|---|---|
| Software applicativo | DBMS |
| Sistema operativo | Sistema operativo |
| File (distinti) | Data base (unico) |
Approccio settoriale: ciascun settore (area) ha i propri dati, i propri computer, ed è separato dalle altre aree aziendali. Molte informazioni di aree aziendali dovevano essere condivise poiché il lavoro era condiviso e integrato: la soluzione era quella di duplicare i dati che dovevano essere presenti in più settori. Duplicazione significa ridondanza, oltre che inutile spreco di memoria. Ridondanza è sempre fuocolaio di inconsistenza, poiché i dati quando devono essere aggiornati, deve essere fatto in tutti i settori. Inconsistenza può essere inoltre generata anche dalla presenza di due dati che dovrebbero essere uguali, ma che per un motivo o per l’altro non lo sono: sorge spontanea la domanda, "quale dei due dati è quello corretto?".
È possibile trovare altre caratteristiche delle basi di dati:
- Qualità dei dati
- Efficienza
- Controllo dell’accesso (privatezza)
- Robustezza
Come si usa un DBMS?
- Definendo la struttura generale dei dati (aspetto intensionale)
- Definendo le specifiche operazioni sui dati (aspetto estensionale)
I dati sono strutturati secondo uno schema. È possibile distinguere 3 livelli di schema, per quanto riguarda l’architettura:
- Schema esterno: schema delle viste, chiamato anche permette di definire sottoschemi personalizzati. Questo schema permette la visualizzazione dei dati ai vari settori, in modo personalizzato
- Schema logico: riduce la ridondanza ed è indipendente dal sistema
- Schema interno: schema molto vicino allo stato fisico (per questo motivo viene anche chiamato fisico)
Perché si utilizzano tre livelli? Perché in questo modo si hanno due articolazioni intermedie:
- 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
I linguaggi del DBMS sono principalmente due:
- DDL (Data Definition Language) linguaggio per svolgere le operazioni sullo schema
- DML (Data Manipulation Language) linguaggio per svolgere le operazioni sui dati
Gli utenti del DBMS sono:
- Database administrator
- Programmatori applicativi: programmano le applicazioni ed usano il DML
- Utenti casuali: scrivono query SQL
- Utenti finali ("terminalisti"): eseguono le applicazioni
È possibile schematizzare gli utenti del DBMS nel seguente modo:
| Utenti finali | Programmi applicativi | Utenti casuali | Database administrator |
|---|---|---|---|
| DBMS | |||
| Data base | |||
Gli utenti non utilizzano direttamente il DBMS, ma utilizzano le applicazioni esterne ad esso. Per interrogare i database è possibile usare il linguaggio SQL (Structure Query Language): è un linguaggio di IV generazione, non procedurale ma dichiarativo. Un’alternativa al linguaggio di interrogazione SQL è il linguaggio QBE (Query By Example).
I linguaggi per le basi di dati sono:
- Linguaggi testuali interattivi (come SQL)
- Linguaggi interattivi immersi in un linguaggio ospite
- Linguaggi con interfacce testuali
DBMS in un contesto di rete:
| Utenti | Utenti |
| Processo client | Processo client |
| Middleware rete | |
| DBMS Data base server | |
Modello relazionale dei dati
La cronologia dei modelli per la rappresentazione dei dati è la seguente:
- Modello gerarchico (anni ‘60): utilizzano un linguaggio navigazionale
- Modello reticolare (anni ‘70)
- Modello relazionale (anni ‘80): modello con il maggiore successo che noi approfondiremo
- Modello ad oggetti (anni ‘90)
Il modello relazionale fu inventato da T.Codd nel 1970, mentre i primi progetti furono sviluppati da SYSTEM R (IBM) e Ingres. I primi sistemi commerciali risalgono al 1980, ma il vero e proprio successo commerciale si ha nel 1985.
È possibile dare una definizione informale del modello relazionale dei dati. L’insieme del nome della tabella e della prima riga è detto schema, mentre è possibile distinguere righe, colonne, dati, ecc.
| Schema Studente | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MATR | NOME | CITTA' | C-DIP | ||||||||||||
| 123 | Carlo | Bologna | Inf | ||||||||||||
| 307 | Giovanni | Milano | Log | ||||||||||||
| 415 | Paola | Torino | Inf | ||||||||||||
| 702 | Antonio | Roma | Log | ||||||||||||
È possibile anche fornire una definizione formale del modello relazionale dei dati:
- D-dominio: un qualunque insieme di valori (solitamente finito)
- Prodotto cartesiano su n domini: D1 x D2 x … x Dn insieme delle n-ple (tuple)
- Relazione su D1 x D2 x … x Dn: un qualunque sottoinsieme del prodotto cartesiano
Proprietà della relazione:
- Grado: numero di domini (n)
- Cardinalità: numero di tuple
- Attributo: nome dato al dominio in una relazione
I nomi di attributo in una relazione devono essere tutti distinti fra loro: uno stesso dominio può comparire più volte in una relazione ma deve avere nome di attributo diverso.
Schema di una relazione: nome tabella (attributo1, attributo2, ..., attributon). I nomi delle relazioni in uno schema devono essere tutti distinti.
È possibile fare un confronto fra le due terminologie:
- Relazione (formale) - Tabella (informale)
- Attributo (formale) - Colonna (informale)
- Tupla, n-pla (formale) - Riga (informale)
- Dominio (formale) - Attributo (informale)
- Cardinalità (formale) - Numero di righe (informale)
- Grado (formale) - Numero delle colonne (informale)
È possibile arricchire lo schema di una relazione aggiungendo ad esso dei vincoli di integrità. I vincoli di integrità servono a mantenere l’integrità delle informazioni e dei dati contenuti nei database. I vincoli di integrità escludono alcune istanze in quanto non rappresentano correttamente il mondo applicativo.
I vincoli fondamentali di un database sono:
- Chiavi (obbligatori per la consistenza della base di dati)
- Vincoli sui valori nulli
- Integrità referenziale (referential integrity)
- Vincoli generici
La nozione di chiave è un sottoinsieme degli attributi dello schema di una relazione, che gode delle proprietà di:
- Unicità: non esistono due tuple con chiave uguale. Se vale solo il criterio di unicità si parla di superchiave.
- Minimalità: sottraendo al sottoinsieme di attributi un qualsiasi attributo, la chiave perde la proprietà di unicità.
In una relazione possono essere presenti più chiavi: solo una è detta chiave primaria, mentre le altre sono chiavi alternative.
I vincoli fondamentali sono:
- Entity integrity: non possono esserci valori nulli negli attributi che compongono una chiave. Serve a garantire che la chiave svolga il ruolo di identificatore.
- Chiave esterna (Foreign key): attributi K che sono in comune alla relazione R1 ed R2; se K è chiave primaria in R1, è chiave esterna in R2. La chiave esterna potrebbe non fare parte della chiave primaria!
- Integrità referenziale: se K è chiave esterna in R2 e primaria in R1, i valori di K in R2 sono compresi (o al più nulli) fra quelli che K ha in R1. In altre parole, i valori degli attributi della chiave esterna devono essere per forza presenti nella chiave primaria, ma non viceversa.
Questa relazione di nome studente possiede 4 attributi: MAT, NOME, CITTA’, C-DIP.
Corso possiede 3 attributi: COD-CORSO, TITOLO, DOCENTE.
Esame possiede 4 attributi: MATR, COD-CORSO, DATA, VOTO.
MAT è chiave primaria in studente e chiave esterna in esame. MATR, COD-CORSO è chiave primaria in esame, mentre COD-CORSO è chiave esterna in corso.
È possibile definire sintatticamente lo schema di una base di dati:
DATABASE {STUDENTE (MATR, NOME, CITTA’, C-DIP)
ESAME (COD-CORSO, TITOLO, DOCENTE)
CORSO (MATR, COD-CORSO, DATA, VOTO)}
È possibile associare ad un attributo il suo dominio (ossia il tipo di dato che dovrà contenere):
... STUDENTE (MATR:INT, NOME:CHAR(20), CITTA’:CHAR(20), C-DIP:CHAR(5)) ...
I valori degli attributi MATR e COD-CORSO sono uguali per le diverse relazioni.
Esempi di interrogazioni
- Chi ha esaminato Carlo?
- MATR: 123
- NOME: Carlo
- CITTA’: Bologna
- C-DIP: Inf
- COD-CORSO: 1
- TITOLO: Matematica
- DOCENTE: Barozzi
- MATR: 123
- COD-CORSO: 1
- DATA: 7-9-97
- VOTO: 30
- Quali studenti hanno preso 30 in matematica?
- MATR: 123
- NOME: Carlo
- CITTA’: Bologna
- C-DIP: Inf
- COD-CORSO: 1
- TITOLO: Matematica
- DOCENTE: Barozzi
- MATR: 123
- COD-CORSO: 1
- DATA: 7-9-97
- VOTO: 30
- Chi è il manager di Piero?
- MATR: 1
- NOME: Piero
- DATA-ASS: 1-1-95
- SALARIO: 3 M
- MATR-MGR: 2
- NUM-PROG: 3
- TITOLO: Idea
- TIPO: Esprit
- In quali tipi di progetti lavora Giovanni?
- MATR: 3
- NOME: Giovanni
- DATA-ASS: 1-7-96
- SALARIO: 2 M
- MATR-MGR: 2
- MATR: 3
- NUM-PROG: 3
- PERC: 100
In input viene dato il nome Carlo. A Carlo è associata una matricola. Alla matricola è assegnato uno o più cod-corso. Al cod-corso è assegnato un docente. La risposta a questa interrogazione è Barozzi e Meo.
| Studente | Corso | Esame |
|---|---|---|
|
|
|
|
In input viene dato 30 nell’esame di matematica. Conoscendo il voto posso risalire alla matricola e al cod-corso (verifico che si tratti di matematica). Alla matricola è assegnato uno studente. La risposta a questa interrogazione è Carlo.
| Studente | Corso | Esame |
|---|---|---|
|
|
|
|
In input viene dato il nome Piero. Conoscendo il nome posso risalire alla matr-mgr. Conoscendo la matr-mgr conosco il manager di Piero. In questo esempio l’informazione desiderata viene estrapolata da una sola tabella. La risposta a questa interrogazione è Giorgio.
| Impiegato | Progetto |
|---|---|
|
|
|
In input viene dato il nome Giovanni. Conoscendo il nome Giovanni posso conoscere la sua matricola. Conoscendo la sua matricola posso sapere il tipo di progetto in cui è coinvolto.
| Impiegato | Assegnamento |
|---|---|
|
|
|
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.
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.
-
Riassunto esame Management dei sistemi informativi, prof. Morabito, libro consigliato Management dei sistemi inform…
-
Riassunto esame Informatica e sistemi informativi, Prof. Tornieri Francesco, libro consigliato Sistemi informativi …
-
Riassunto esame Sistemi Informativi, prof. C. Cappiello
-
Riassunto esame Sistemi informativi aziendali, Prof. Ponte Diego, libro consigliato Sistemi informativi e trend dig…