Sistemi informativi e sistemi informatici

Bisogna fare una distinzione:

  • dato: valore misurato (altezza)
  • informazione: si ottiene dall'elaborazione dei dati (il più alto)

Il sistema informativo è l'insieme di procedure che servono a raccogliere dati ed elaborarli per ricavarne informazioni, e ci sono 2 motivi per disporre di adeguate informazioni:

  • operativo: per svolgere un'attività servono certe informazioni.
  • decisionale: serve per programmare attività, controllare e valutare.

Il sistema informatico è un sottoinsieme del sistema informativo dedicato al trattamento automatico di informazioni, e la sua realizzazione si distingue in tre fasi.

macrofase output
raccolta richieste utenti definizione requisiti
progettazione concettuale modello della realtà
realizzazione insieme software d'implentazione

Aspetti intensionale ed estensionale dei dati

I dati sono utili solo quando c'è una semantica, per cui serve descrivere cosa rappresenta un certo dato, e la relazione che lo lega agli altri:

  • l'aspetto estensionale riguarda il valore effettivo del dato.
  • l'aspetto intensionale riguarda l'interpretazione di un dato.

File di dati e loro organizzazione

  • File o archivio dati: insieme di dati correlati identificati da un nome (indipendenti dal software di scrittura e lettura usato).
  • Registrazioni o record: unità logiche di cui è fornito l'aspetto intensionale (chiave e valore).
  • File system: software di un OS che consente la gestione dei file.

Su un file si possono eseguire diverse operazioni:

  • creazione
  • apertura
  • chiusura

Per quanto riguarda i record:

  • inserimento
  • modifica
  • cancellazione
  • ricerca

I record possono essere organizzati in vari modi:

  • sequenziale, per cui bisogna scorrere tutti i record.
  • accesso diretto (o casuale, random) tramite numero posizione.
  • indicizzato tramite chiave.

DBMS

È un software che gestisce grandi collezioni di dati condivisi, in modo efficiente ed efficace assicurando affidabilità e sicurezza, e alcune caratteristiche che lo differenziano dall'approccio del file system:

  • integrazione: i dati sono strutturati in maniera integrata, senza ridondanze superflue, insieme all'aspetto intensionale, collegato ai vincoli di integrità.
  • indipendenza logica: la logica applicativa è separata dalla struttura dei dati.
  • indipendenza fisica: la struttura dei dati è separata dallo schema fisico dei file.
  • integrità: il DBMS si occupa di verificare che i dati vengano aggiornati rispettando i vincoli definiti precedentemente.

Il DBMS mette a disposizione dei linguaggi per interagire con il database:

  • DDL (Data Definition Language): serve a definire l'aspetto intensionale dei dati, i loro legami e i vincoli d'integrità.
  • DML (Data Manipulation Language): serve a gestire e utilizzare i dati, tramite inserimento, eliminazione, aggiornamento. A sua volta si divide in due categorie:
    • ospitato: linguaggi "immersi" in linguaggi di programmazione.
    • autonomo: indipendente, di tipo dichiarativo (solitamente).

Architettura logica di un DBMS

  • Livello fisico: riguarda l'organizzazione dei dati e la memorizzazione.
  • Livello logico globale: è la definizione dello schema logico sviluppata dal DBA (DataBase Administrator).
  • Livello logico utente: è lo spazio di lavoro personalizzato di ogni utente, definito dal DBA (sono sottoinsiemi del modello logico, visibili da una "vista utente").

Database e transazioni

I DBMS supportano accessi concorrenti da parte di più utenti, per cui bisogna risolvere tutta una serie di problematiche legate alla concorrenza, e alla generazioni di dati incoerenti.

La transazione è un'unità logica in cui il database viene trasformato, attraverso una o più operazioni (se anche solo una non dovesse avere successo, va ripristinato lo stato iniziale). Di fatto, una transazione può avere diversi stati e fasi. %% TODO: elencali dopo, pag 1096 %%

Un DBMS, per essere tale, deve garantire le proprietà ACID:

  • Atomicity: o si eseguono tutte le operazioni, o nessuna.
  • Consistency: la transazione non deve violare i vincoli d'integrità del database.
  • Isolation: le transazioni non devono essere dipendenti l'una dall'altra.
  • Durability: una volta eseguita una transazione, il suo effetto è permantente.