Corso di laurea in ingegneria gestionale
Sapienza Università di Roma
Corso di Basi di Dati
A.A. 2020/2021 – 1 Nozioni Preliminari
Tiziana Catarci, Francesco Leotta
Ultimo aggiornamento: 05/10/2020
Risorse di una organizzazione
Un’organizzazione
- Nello svolgimento di ogni attività, deve disporre di determinate risorse per perseguire gli scopi che si è prefissa:
- Persone
- Denaro
- Materiali
- Dati e informazioni
- Ogni organizzazione dispone di un sistema informativo che organizza e gestisce un gran numero di informazioni rappresentate per mezzo di dati.
- Dell’invenzione
- I sistemi informativi esistono da molto prima dei calcolatori. …
- Esempio: elenchi di utenze telefoniche, archivi anagrafici
2 Basi di Dati 20/21 1 – Nozioni Preliminari
Funzioni di un sistema informativo
- Principali funzioni di un Sistema Informativo:
- Raccolta e acquisizione delle informazioni;
- Archiviazione, conservazione delle informazioni;
- Elaborazione delle informazioni;
- Distribuzione, scambio di informazioni.
Il concetto di Sistema Informativo è indipendente da qualsiasi forma di automatizzazione!
- Un Sistema Informatico è quella porzione automatizzata del Sistema Informativo che gestisce le informazioni con tecnologia informatica.
3 Basi di Dati 20/21 1 – Nozioni Preliminari
Sistema informatico
Sistema azienda
Sistema organizzativo
La diffusione capillare dell’informatica fa sì che gran parte dei sistemi informativi siano anche, in buona misura, sistemi informatici.
Sistema informativo
Sistema informatico
Basi di dati
4 Basi di Dati 20/21 1 – Nozioni Preliminari
Dati e informazioni
- Nelle attività umane, le informazioni vengono gestite in forme diverse:
- Idee informali, linguaggio naturale (scritto o parlato, formale o colloquiale), mente umana, carta, dispositivi elettronici, disegni, grafici, schemi, numeri e codici.
- Nei sistemi informatici, le informazioni vengono rappresentate per mezzo di dati:
- Informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.
- Dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione. In informatica, un dato è un elemento di informazione costituito da simboli che debbono essere elaborati.
Senza “interpretazione“, i dati hanno poca utilità.
- Se interpretati e correlati opportunamente, essi forniscono informazioni che consentono di arricchire la nostra conoscenza del mondo.
5 Basi di Dati 20/21 1 – Nozioni Preliminari
Base di dati
- Base di Dati:
(accezione generica) Collezione di dati, che tipicamente descrive le informazioni di interesse di una o più organizzazioni correlate.
(accezione specifica) Collezione di dati in memoria secondaria gestita da un apposito sistema software, chiamato DBMS (DataBase Management System, o Sistema di Gestione di Basi di Dati).
- Un DBMS è in grado di gestire e interrogare grandi collezioni di dati.
- I dati costituiscono una risorsa strategica, perché più stabili nel tempo di altre componenti (processi, tecnologie, ruoli umani).
- Ad esempio, i dati delle banche o delle anagrafi hanno una struttura sostanzialmente invariata da decenni, mentre le procedure che agiscono su di essi variano con una certa frequenza.
6 Basi di Dati 20/21 1 – Nozioni Preliminari
Data base management system (DBMS)
- Sistema che gestisce collezioni di dati:
- Grandi
- Persistenti
- Condivise
Garantendo
- Privatezza
- Affidabilità
- Efficienza
- Efficacia
- Alcuni prodotti software disponibili sul mercato:
- DB2
- Oracle
- SQLServer
- MySQL
- PostgreSQL
- Microsoft Access
7 Basi di Dati 20/21 1 – Nozioni Preliminari
Approccio convenzionale: i file
L’approccio convenzionale alla gestione dei dati sfrutta la presenza di archivi o file per memorizzare i dati in modo persistente sulla memoria secondaria.
Secondo quest’approccio, eventuali dati di interesse per più programmi sono replicati tante volte quanti sono i programmi che li utilizzano.
Ad esempio, in un’università, le informazioni relative ai docenti possono essere utilizzate in vario modo e da diverse persone o uffici.
Responsabile Archivio 1:
Ufficio del Personale informazioni relative alla carriera del personale
Tiene conto della distinzione fra Ricercatori, Professori, ecc.
Responsabile Archivio 2:
Ufficio Stipendi informazioni relative agli stipendi del personale
Utilizza le informazioni sulla carriera e sugli incarichi didattici
8 Basi di Dati 20/21 1 – Nozioni Preliminari
Per calcolare le retribuzioni.
Problemi nella gestione dei file
- Cosa accade se ciascun ufficio gestisce separatamente le informazioni di proprio interesse?
- Presenza di duplicati (eventuali dati di interesse per più programmi sono replicati tante volte quanti sono i programmi che li utilizzano).
Difficoltà nell’aggiornamento dei dati
- (A causa della presenza di duplicati, a lungo andare ci sarebbero molti dati con le copie non aggiornate allo stesso modo).
- Possibile incoerenza nelle varie copie dei dati per ciascun archivio (potremmo trovare nell’Ufficio Stipendi una qualifica diversa da quella corretta presente nei dati dell’Ufficio del Personale).
Responsabile Archivio 1:
Ufficio del Personale informazioni relative alla carriera del personale
Responsabile Archivio 2:
Ufficio Stipendi informazioni relative agli stipendi del personale
9 Basi di Dati 20/21 1 – Nozioni Preliminari
Architettura del sistema informatico
DBMS
Ufficio del Personale Base di Dati
Ufficio Stipendi
- Le basi di dati sono state concepite principalmente per superare questo tipo di inconvenienti, gestendo in modo integrato e flessibile le informazioni di interesse per diversi soggetti, limitando i rischi di ridondanza e incoerenza.
L’unico responsabile
- Il DBMS è della gestione della base di dati: i dati sono accessibili all’esterno solo tramite il DBMS.
10 Basi di Dati 20/21 1 – Nozioni Preliminari
Esempio di rappresentazione dei dati
11 Basi di Dati 20/21 1 – Nozioni Preliminari
Le basi di dati sono… grandi
- Dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati.
- Il limite deve essere solo quello fisico dei dispositivi.
- I DBMS devono prevedere una gestione dei dati in memoria secondaria.
- Esempi di dimensioni molto grandi:
- 500 Gigabyte (dati transazionali)
- 10 Terabyte (dati decisionali)
- 500 Terabyte (dati scientifici)
- 100 miliardi di record
12 Basi di Dati 20/21 1 – Nozioni Preliminari
Le basi di dati sono… condivise
- Ogni organizzazione (specie se grande) è divisa in settori o comunque svolge diverse attività. Perciò utenti e applicazioni diversi devono poter accedere, secondo opportune modalità, a dati comuni.
- Ciascun settore/attività ha un (sotto)sistema informativo (non necessariamente disgiunto).
- In questo modo si riduce la ridondanza dei dati (poiché si evitano ripetizioni) e conseguentemente si riduce anche la possibilità di inconsistenze.
L’accesso
- Per garantire condiviso, il DBMS dispone di un meccanismo apposito, detto controllo di concorrenza.
13 Basi di Dati 20/21 1 – Nozioni Preliminari
Le basi di dati sono… persistenti
- Hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano.
- In contrasto, i dati gestiti da un programma in memoria centrale hanno una vita che inizia e termina con l’esecuzione del programma.
14 Basi di Dati 20/21 1 – Nozioni Preliminari
I DBMS garantiscono… affidabilità
- Capacità del sistema di conservare sostanzialmente intatto il contenuto della Base di Dati (o almeno di permetterne la ricostruzione) in caso di malfunzionamenti hardware e software.
- Una base di dati è una risorsa pregiata e quindi deve essere conservata a lungo termine a fronte di qualsiasi guasto del sistema, errore umano o anche evento catastrofico.
- A questo scopo i DBMS gestiscono, in modo controllato, funzionalità di salvataggio e ripristino (backup e recovery).
- In alcuni casi, i DBMS gestiscono in modo controllato, versioni replicate dei dati, collocate su dispositivi fisici diversi, così da garantire maggiore affidabilità complessiva.
15 Basi di Dati 20/21 1 – Nozioni Preliminari
I DBMS garantiscono… privatezza
- Ciascun utente, riconosciuto in base a un nome utente che è specificato all’atto di interagire con il DBMS, viene abilitato a svolgere solo determinate azioni sui dati, attraverso meccanismi di autorizzazione.
- Si possono definire meccanismi di autorizzazione:
- L'utente A è autorizzato a leggere tutti i dati e a modificare X.
- L'utente B è autorizzato a leggere dati X e a modificare Y.
16 Basi di Dati 20/21 1 – Nozioni Preliminari
I DBMS sono efficienti
- I DBMS sono capaci di svolgere le operazioni utilizzando un insieme di risorse (tempo e spazio) che sia accettabile per gli utenti.
- Va sottolineato che i DBMS forniscono un insieme piuttosto ampio di funzionalità che richiedono molte risorse, e quindi possono garantire efficienza solo a condizione che il sistema informatico su cui sono installati sia adeguatamente dimensionato.
17 Basi di Dati 20/21 1 – Nozioni Preliminari
I DBMS sono efficaci
- I DBMS sono capaci di rendere produttive, in ogni senso, le attività dei loro utenti.
- Questa definizione è chiaramente generica e non corrisponde ad un aspetto specifico. L’attività di progettazione della base di dati e delle applicazioni che la utilizzano mira essenzialmente a garantire una buona efficacia complessiva del sistema.
18 Basi di Dati 20/21 1 – Nozioni Preliminari
Architettura a tre livelli del sistema informatico
Livello della Presentazione
Livello della logica dell’applicazione
Livello dei dati
DBMS
Applicazione 1
Ufficio del Personale. .. . Base di Dati
Ufficio Stipendi Applicazione n
- Una base di dati viene utilizzata dai vari uffici (e persone), ciascuno con le proprie competenze, attraverso programmi diversi.
- Il DBMS garantisce integrazione e condivisione coordinando i vari flussi di informazioni che giungono dalle varie sorgenti.
19 Basi di Dati 20/21 1 – Nozioni Preliminari
DBMS vs file system
- La gestione di insiemi di dati grandi e persistenti è possibile anche attraverso sistemi più semplici - i classici file system dei sistemi operativi.
- Un file consente di memorizzare e ricercare dati, ma fornisce solo semplici meccanismi di accesso e condivisione.
- I DBMS estendono le funzionalità dei file system, fornendo più servizi ed in maniera integrata.
- I file, a loro volta, sono fondamentali per gestire insiemi di dati localmente a una specifica procedura o applicazione.
20 Basi di Dati 20/21 1 – Nozioni Preliminari
Descrizione dei dati
- Nei programmi tradizionali che accedono a file, ogni programma contiene una descrizione della struttura del file stesso, con i conseguenti rischi di incoerenza fra le descrizioni (ripetute in ciascun programma) e i file stessi.
- Nei DBMS, esiste una porzione della base di dati (il catalogo o dizionario) che contiene una descrizione centralizzata dei dati, utilizzabile dai vari programmi.
- La rappresentazione dei dati avviene a livelli diversi
L’indipendenza
- In modo da permettere dei dati dalla rappresentazione fisica:
- I programmi fanno riferimento alla struttura a livello più alto, e le rappresentazioni sottostanti possono essere modificate senza necessità di modifica dei programmi
È fondamentale il concetto di modello dei dati.
21 Basi di Dati 20/21 1 – Nozioni Preliminari
Modello dei dati
- Insieme di costrutti utilizzati per organizzare i dati di interesse all’interno del DBMS e descriverne la dinamica.
- Come nei linguaggi di programmazione esistono meccanismi che permettono di definire nuovi tipi, così ogni modello dei dati prevede alcuni costruttori.
- Ad esempio, il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei
- Una relazione viene rappresentata per mezzo di una tabella, le cui righe rappresentano specifici record e le cui colonne corrispondono ai campi del record.
22 Basi di Dati 20/21 1 – Nozioni Preliminari
Il modello relazionale
- Una relazione viene rappresentata per mezzo di una tabella, le cui righe rappresentano specifici record e le cui colonne corrispondono ai campi del record.
È il più diffuso nell’ambito delle Basi di Dati. Sarà anche il nostro modello di riferimento.
Intestazione della tabella: nome della relazione
Attributo
Squadra
| Nome | Cognome | Posizione | Squadra | Età |
|---|---|---|---|---|
| Tommaso | Rocchi | Attaccante | S.S. Lazio | 31 |
| Alessandro | Del Piero | Attaccante | Juventus F.C. | 34 |
| Francesco | Totti | Attaccante | A.S. Roma | 32 |
Tupla o Record
23 Basi di Dati 20/21 1 – Nozioni Preliminari
Schemi e istanze
- In ogni base di dati si distinguono:
- Lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale); nell’esempio, le intestazioni delle tabelle:
Giocatore (Nome, Cognome, Posizione, Squadra, Età)
Squadra (Nome, Anno di Fondazione)
- L’istanza, costituita dai valori attuali, che possono cambiare molto rapidamente (aspetto estensionale); nell’esempio, il “corpo” di ciascuna tabella:
Tommaso Rocchi Attaccante S.S. Lazio 31
Alessandro Del Piero Attaccante Juventus F.C. 34
Francesco Totti Attaccante A.S. Roma 32
24 Basi di Dati 20/21 1 – Nozioni Preliminari
Due tipi principali di modelli
- Modelli Logici: utilizzati nei DBMS esistenti per l’organizzazione dei dati; ad essi fanno riferimento i programmi e gli utenti. I modelli logici sono indipendenti dalle strutture fisiche.
- Modello Gerarchico (basato sull’uso di strutture ad albero) – anni 60
- Modello Reticolare (basato sull’uso di grafi) – anni 70
- Modello Relazionale – anni 70/80
- Modello ad Oggetti (estende alle basi di dati il paradigma di programmazione ad oggetti) – anni 80
- Modello XML (rivisitazione del modello gerarchico, in cui i dati devono essere presentati assieme alla loro descrizione)
25 Basi di Dati 20/21 1 – Nozioni Preliminari
Due tipi principali di modelli concettuali
- Modelli Concettuali: permettono di rappresentare i dati in modo indipendente da ogni sistema, cercando di descrivere i concetti del mondo reale, piuttosto che i dati utili a rappresentarli.
- Il più noto è il modello Entità-Relazione.
- Essi vengono utilizzati nelle fasi preliminari del processo di progettazione della base di dati.
- Rappresentano il modo migliore per analizzare la realtà d’interesse, senza “contaminazioni” di tipo realizzativo.
26 Basi di Dati 20/21 1 – Nozioni Preliminari
Architettura semplificata per un DBMS
Utente Modello Relazionale
Schema logico
Schema fisico
Lo schema fisico riassume come le relazioni descritte nello schema logico sono realmente registrate su dispositivi di memorizzazione di massa.
BD
DBMS
27 Basi di Dati 20/21 1 – Nozioni Preliminari
Architettura standard a tre livelli per DBMS
È possibile associare utente utente utente utente ad uno schema logico utente vari schemi esterni.
Schema esterno
Schema esterno
Schema esterno
Schema Esterno: costituisce la descrizione di una porzione della base di dati di interesse. Può prevedere organizzazioni dei dati diverse a quelle utilizzate nello schema logico, che riflettono il punto di vista di un particolare insieme di utenti.
Schema logico
Schema fisico
BD
28 Basi di Dati 20/21 1 – Nozioni Preliminari
Indipendenza dei dati
L’accesso avviene
- Conseguenza della articolazione in livelli: solo tramite il livello esterno (che può coincidere con il livello logico).
- Nei sistemi moderni, lo schema esterno non è esplicitamente presente, ma è possibile definire relazioni derivate (o viste).
- Due forme di indipendenza dei dati:
- Fisica: il livello logico e quello esterno sono indipendenti da quello fisico; una relazione è utilizzata nello stesso modo qualunque sia la sua realizzazione fisica (che può anche cambiare nel tempo senza che debbano essere modificate le forme di utilizzo).
- Logica: il livello esterno è indipendente da quello logico
- Aggiunte o modifiche alle viste non richiedono modifiche al livello logico.
- Modifiche allo schema logico che lascino inalterato lo schema esterno sono trasparenti.
29 Basi di Dati 20/21 1 – Nozioni Preliminari
Esempio: una vista
Corsi Aule
| Corso | Docente | Aula |
|---|---|---|
| Basi di dati | Marrella | DS1 |
| Sistemi | Neri | N3 |
| Reti | Bruni | N3 |
| Controlli | Bruni | G |
| Nome | Edificio | Piano |
|---|---|---|
| DS1 | Meschini | Primo |
| N3 | Meschini | Terra |
| G | Pincherle | Primo |
CorsiIstituto
| Corso | Aula | Piano |
|---|---|---|
| Sistemi | N3 | Terra |
| Reti | N3 | Terra |
| Basi di Dati | DS1 | Primo |
Meschini
30 Basi di Dati 20/21 1 – Nozioni Preliminari
Controllo di concorrenza
L’esecuzione concorrente di programmi utente è
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 completi corso Basi di dati
-
Appunti Basi di dati completi
-
Dati e Algoritmi 1 - Appunti del corso
-
Appunti completi corso Algoritmi