Sistemi informativi, informazioni e dati
Per svolgere qualsiasi attività sono essenziali le disponibilità di informazioni e la capacità di gestirle in modo efficace.
Sistema informativo
Organizza e gestisce le informazioni necessarie per perseguire gli scopi dell'organizzazione che li usa. Esiste da prima dell'automatizzazione e dei computer.
Sistema informatico
Porzione automatizzata del sistema informativo. Dagli anni '80-'90, gran parte dei sistemi informativi sono diventati di questo tipo. Le informazioni vengono rappresentate per mezzo di dati che hanno bisogno di essere interpretati per fornire informazioni.
Dato: Ciò che è immediatamente presente alla conoscenza prima dell'elaborazione.
Informazione: Elemento che consente di avere una conoscenza esatta dei fatti.
Esempio: Mario Rossi 25775 dati che da soli non significano niente.
"Chi è il responsabile dell'ufficio tecnico e qual è il suo numero di telefono?" adesso è possibile elaborare i dati e usarli per arricchire la nostra conoscenza con l'informazione.
Informazione = Contenuto + Struttura
Contenuto
Oggetto che si intende comunicare o rappresentare attraverso vari strumenti (linguaggio naturale, visuale, audiovisivo).
Struttura
Organizzazione della comunicazione che esplicita i tratti salienti della rappresentazione.
Informazione strutturata e non strutturata
Rigida a costruirsi e ad alimentarsi, flessibile a costruirsi e ad alimentarsi. Adatta e flessibile ad interrogarsi per estrarre conoscenza.
- Molto contenuto e poca struttura
- Molto contenuto e poca struttura codificato
- Un romanzo e il suo indice (magari solo capitoli numerati)
- I sistemi informativi delle organizzazioni, le basi di dati si collocano tra i due estremi.
Vi sono vari possibili compromessi tra contenuto e struttura. Sono rappresentazioni dell'informazione che cercano di combinare i vantaggi dei due estremi. Il web è una sorgente di informazioni di questo tipo da cui è difficile estrarre conoscenza.
Basi di dati e sistemi di gestione di basi di dati
Prima degli anni '60 non esistevano software dedicati alla gestione dei dati, quindi questo compito era affidato ai linguaggi di programmazione tradizionali. Convenzionalmente la gestione dei dati sfrutta la presenza di file che memorizzano i dati sulla memoria di massa, ma questo è ridondante. Le basi di dati servono per superare questi inconvenienti.
Sistema di gestione di basi di dati (DBMS)
- Sistema software in grado di gestire collezioni di dati che siano di dimensioni maggiori della memoria centrale disponibile. Devono anche prevedere una gestione secondaria dei dati in memoria. Ne possono esistere anche di "piccole".
- Applicazioni e utenti diversi devono poter accedere a dati comuni secondo le opportune modalità.
- Tempo di vita non limitato dalle singole esecuzioni dei programmi che le utilizzano.
- Capacità del sistema di conservare intatto il contenuto della base di dati in caso di malfunzionamenti fornendo funzionalità di backup e recovery.
- Ciascun utente possiede un proprio nome e viene autorizzato a svolgere solo determinate azioni sui dati.
- Capacità di svolgere le operazioni usando un insieme di risorse che sia accettabile per gli utenti.
- Capacità della base di dati di rendere produttive le attività dei suoi utenti.
Sono presenti in tutti i sistemi operativi e servono per gestire i dati ad una specifica procedura. Realizzati per estendere le funzioni del DBMS fornendo la possibilità di accesso condiviso agli stessi dati da parte di più utenti e applicazioni. Usano anch'essi file per la memorizzazione dei dati, ma ammettono un'organizzazione più sofisticata.
Modelli dei dati
Insieme di meccanismi di astrazione per la rappresentazione di informazioni. L’obiettivo è organizzare i dati e descrivere la struttura in modo comprensibile da un elaboratore.
Modello logico
- In linguaggio C sono tipi di base, array, strutture e puntatori.
- In linguaggio Java sono tipi di base, array, classi, oggetti e ereditarietà.
Modello fisico
Sono strutture per la rappresentazione dei bit, come registri della memoria o file su disco.
DBMS relazionale
I dati sono organizzati in tabelle, ognuna è un insieme di record (ennuple) che hanno un insieme di attributi di tipi opportuni. I dati in tabelle diverse sono correlati sulla base dei valori.
DBMS orientati agli oggetti
I dati sono organizzati in classi che generano un insieme di oggetti con un insieme di proprietà e metodi. Oggetti diversi sono correlati sulla base di identificatori.
Sistemi basati su XML
I dati sono organizzati in strutture gerarchiche ad albero, dove ognuno ha un insieme di nodi e oggetti diversi sono correlati sulla base di relazioni di contenimento.
Modello relazionale
Permette di definire i tipi per mezzo del costruttore relazione, che consente di organizzare i dati in insiemi di record a struttura fissa. I dati sono organizzati in tabelle le cui righe rappresentano specifici record (ennuple), le cui colonne corrispondono ai campi del record. L'ordine di righe e colonne è irrilevante. È il modello più diffuso.
Esempio
| STUDENTI | Matricola | Cognome | Nome | Data di Nascita |
|---|---|---|---|---|
| 276545 | Rossi | Maria | 25/11/1991 | |
| 485745 | Neri | Anna | 23/04/1992 | |
| 200768 | Verdi | Fabio | 12/02/1992 | |
| 587614 | Rossi | Luca | 10/10/1991 | |
| 937653 | Bruni | Mario | 01/12/1991 |
| ESAMI | Studente | Voto | Corso |
|---|---|---|---|
| 276545 | 28 | 01 | |
| 276545 | 27 | 04 | |
| 937653 | 25 | 01 | |
| 200768 | 24 | 04 |
| CORSI | Codice | Titolo | Docente |
|---|---|---|---|
| 01 | Analisi | Giani | |
| 03 | Chimica | Melli | |
| 04 | Chimica | Belli |
Modello gerarchico
Basato sull'uso di strutture ad albero. È semi-strutturato e ogni albero possiede un insieme di nodi. Oggetti diversi sono correlati sulla base di relazioni di contenimento. L'XML è un esempio.
Modello reticolare
Basato sull'uso di grafi e sviluppato successivamente al modello gerarchico.
Modello a oggetti
Evoluzione del modello relazionale, che estende alle basi di dati il paradigma di programmazione a oggetti.
Modelli logici
Sono disponibili su DBMS commerciali perché riflettono una particolare organizzazione (alberi, grafi, tabelle, ecc.).
Modelli concettuali
I dati sono organizzati in classi e ogni classe rappresenta un insieme di oggetti con proprietà. Le classi sono organizzate in ontologie e oggetti diversi sono correlati sulla base di identificatori. Tendono a descrivere i concetti del mondo reale, piuttosto che i dati utili a rappresentarli. Vengono usati nella fase preliminare del processo di progettazione di basi di dati.
Schemi e istanze
Schema
Descrizione della struttura, stabile nel tempo. È costituito dalla sua intestazione e dal nome dei suoi attributi. È la componente intensionale della base di dati.
Istanza
Dati o valori che sono variabili nel tempo. L'istanza di una relazione è costituita dall'insieme delle sue righe. È la componente estensionale della base di dati.
Livelli di astrazione nei DBMS
L'architettura standardizzata dei DBMS è articolata su tre livelli:
- Schema logico: Descrizione della base di dati per mezzo del modello logico adottato dal DBMS tramite i modelli relazionale, gerarchico, reticolare o ad oggetti.
- Schema interno: Rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione.
- Schema esterno: Descrizione di una porzione della base di dati di interesse, per mezzo del modello logico. Può prevedere un'organizzazione dei dati diverse rispetto a quelle usate nello schema logico, quindi è possibile associare ad uno schema logico vari schemi esterni. È un livello non necessariamente presente, ma è possibile definire delle relazioni derivate. Non tutti gli utenti hanno gli stessi privilegi, quindi è la porzione della base di dati che l’utente è autorizzato a vedere.
Indipendenza dei dati
Proprietà che permette a utenti e applicazioni di interagire ad un alto livello di astrazione che prescinde dai dettagli realizzativi usati nella costruzione della base di dati.
- Indipendenza fisica: Permette di interagire con i DBMS in modo indipendente dalla struttura fisica dei dati. Permette di modificare le strutture fisiche senza influire sulla descrizione dei dati e sui programmi che li usano.
- Indipendenza logica: Consente di interagire con il livello esterno della BD in modo indipendente dallo schema logico. Consente di modificare lo schema esterno senza modificare lo schema logico e viceversa.
L'indipendenza riguarda:
- I dati rispetto alle applicazioni.
- Lo schema logico rispetto allo schema fisico.
- Gli schemi esterni rispetto allo schema logico.
Linguaggi per basi di dati
Si distinguono in due categorie:
- Data Definition Language (DDL): Usati per definire gli schemi logici, esterni e fisici e le autorizzazioni per l'accesso.
- Data Manipulation Language (DML): Usati per l'interrogazione e l'aggiornamento delle istanze di basi di dati.
Alcuni linguaggi, come quello SQL, presentano le funzionalità di entrambe le categorie. L'accesso ai dati può essere effettuato con varie modalità:
- Linguaggi testuali interattivi come SQL.
- Comandi simili a quelli interattivi immersi nei linguaggi di programmazione tradizionali.
- Comandi simili a quelli interattivi immersi in linguaggi di sviluppo ad hoc e spesso con funzionalità specifiche.
- Interfacce amichevoli che permettono di sintetizzare interrogazioni senza usare un linguaggio testuale.
Utenti e progettisti
Varie categorie di persone possono interagire con un DBMS:
- Amministratore: È il responsabile della progettazione, del controllo e dell'amministrazione della BDD. Ha il compito di mediare le esigenze espresse dagli utenti garantendo un controllo centralizzato sui dati. Deve inoltre assicurare le prestazioni della BDD.
- Progettisti e programmatori di applicazioni: Realizzano i programmi che accedono alla BDD. Usano il DML o i vari strumenti per la generazione di interfacce per le BDD.
- Utenti: Usano la base di dati per le proprie attività. Si dividono in altre due categorie:
- Utenti finali: Usano le transazioni, ossia i programmi che realizzano attività predefinite e di frequenza elevata.
- Utenti casuali: Sono in grado di impiegare i linguaggi interattivi per l'accesso alla base di dati, formulando delle interrogazioni non predefinite e di vario tipo.
Vantaggi e svantaggi dei DBMS
Vantaggi
- Dati come risorsa comune
- Base di dati come modello della realtà
- Gestione centralizzata con possibilità di standardizzazione ed economia di scala
- Disponibilità di servizi integrati
- Riduzione di ridondanze e inconsistenze
- Indipendenza dei dati
Svantaggi
- Prestazioni in alcuni sistemi con richieste di efficienza sull’elaborazione
- Costi elevati
- Complessità
Il modello relazionale
Modelli logici nei sistemi di basi di dati:
- Il modello relazionale si basa su due concetti: relazione e tabella.
- Relazione: Nozione che proviene dalla matematica. È data dalla teoria degli insiemi.
- Tabella: Concetto semplice ed intuitivo.
La presenza contemporanea di entrambi i concetti è responsabile del successo di questo modello. Le tabelle risultano comprensibili anche per gli utenti finali. È un modello che risponde al prerequisito dell'indipendenza dei dati, che prevede una distinzione tra livello fisico e livello logico. Utenti e programmatori agiscono solo a livello logico, i dati sono poi realizzati per mezzo di strutture fisiche ma per accedere ad essi non è necessario conoscerle.
Relazioni e tabelle
Prodotto cartesiano: Dati due insiemi D1 e D2, il prodotto cartesiano di D1 × D2 è l'insieme delle coppie ordinate (v1, v2) | v1 ∈ D1 e v2 ∈ D2.
Esempio: A = {1,2,4}, B = {a,b}
A × B = {(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)}
Una relazione matematica è un sottoinsieme di D1 × D2: {(1,a),(1,b),(4,b)}
Poiché le nostre BDD devono essere memorizzate in sistemi di calcolo di dimensione finita, le relazioni sono necessariamente finite. Al tempo stesso è comodo che i domini abbiano dimensione infinita, quindi le nostre BDD sono costituite da relazioni finite su domini infiniti.
Dati insiemi D1, D2, ..., Dn il prodotto cartesiano di D1 × D2 × ... × Dn è costituito dall'insieme delle n-uple (v1,v2,...,vn) tali che vi appartiene a Di per 1 ≤ i ≤ n.
Una relazione matematica su questi domini è un sottoinsieme del prodotto cartesiano. Il numero di n-uple è il grado del prodotto cartesiano e della relazione. Cardinalità: numero di n-uple della relazione.
Le relazioni possono essere usate per rappresentare i dati di interesse per qualche applicazione.
Esempio:
- Juventus Lazio 3 1
- Milan 2 0
- Lazio Roma 1 2
- Juventus Milan 0 1
La relazione è definita con riferimento a due domini: STRINGA e INTERO. È un sottoinsieme del prodotto cartesiano: STRINGA × STRINGA × INTERO × INTERO.
Relazioni con attributi
Una relazione matematica è un insieme di n-uple ordinate che stabilisce i legami tra i dati. Per esempio, nella tabella collegata sopra, la prima n-upla stabilisce un legame tra i valori Juventus, Lazio, 3, 1, che sta ad indicare che il risultato della partita tra Juventus e Lazio è 3 a 1. Una relazione è un insieme, quindi non è definito alcun ordinamento tra le n-uple. L'ordine è occasionale, infatti due tabelle con le stesse righe rappresentano la stessa relazione anche se in ordine diverso. Una tabella rappresenta una relazione solo se le sue righe sono l'una diversa dall'altra. Ciascuna n-upla è comunque ordinata al suo interno, l'i-esimo valore di ciascuna proviene dall'i-esimo dominio. Non si può cambiare l'ordine tra domini altrimenti cambierebbe l'interpretazione dei dati nelle relazioni. Nell'interpretazione tabellare usiamo gli attributi come intestazioni per le colonne, quindi si presume che debbano essere diversi l'uno dall'altro. L'ordinamento degli attributi risulta irrilevante, basta far riferimento agli attributi.
Tupla: Rappresenta una riga della tabella.
Relazioni e basi di dati
Una base di dati è costituita da più relazioni, le cui tuple contengono valori comuni, necessari per stabilire corrispondenze.
Esempio:
| STUDENTI | Matricola | Cognome | Nome | Data di Nascita |
|---|---|---|---|---|
| 276545 | Rossi | Maria | 25/11/1971 | |
| 485745 | Neri | Anna | 23/04/1972 | |
| 200768 | Verdi | Fabio | 12/02/1972 | |
| 587614 | Rossi | Luca | 10/10/1971 | |
| 937653 | Bruni | Mario | 01/12/1971 |
| ESAMI | Studente | Voto | Corso |
|---|---|---|---|
| 276545 | 28 | 01 | |
| 276545 | 27 | 04 | |
| 937653 | 25 | 01 | |
| 200768 | 24 | 04 |
| CORSI | Codice | Titolo | Docente |
|---|---|---|---|
| 01 | Analisi | Giani | |
| 03 | Chimica | Melli | |
| 04 | Chimica | Belli |
Il modello relazionale è quindi basato su valori: i riferimenti tra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle tuple. Rispetto ad un modello basato su record e puntatori, il modello relazionale, basato su valori, presenta diversi vantaggi:
- Richiede di rappresentare solo ciò che è rilevante dal punto di vista applicativo, i puntatori sono aggiuntivi.
- La rappresentazione logica dei dati (valori) non fa riferimento a quella fisica, che può cambiare nel tempo e si può ottenere l'indipendenza fisica dei dati.
- Essendo tutta l'informazione contenuta nei valori, è semplice trasferire i dati da un contesto ad un altro, mentre con i puntatori è più complesso.
I dati possono anche essere rappresentati secondo modalità che prevedono l'uso di puntatori, ma qui
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.