SISTEMI INFORMATIVI
I sistemi informativi sono sistemi di organizzazione e di gestione delle informazioni che sono
necessarie al funzionamento di un’azienda o di un ente. L’esistenza di un sistema informativo è
i
totalmente indipendente dalla sua eventuale automazione; sistemi informativi infatti esistono da
molto prima dell’invenzione dei calcolatori. I sistemi informativi contengono dati e modelli di
organizzazione dei dati stessi; un esempio è la cartella clinica, in cui è necessario fornire un metodo
per registrare i dati di certi pazienti in modo standardizzato e consentirne l’utilizzo nel corso del
trattamento.
SISTEMI INFORMATICI
Per agevolare e potenziare la gestione delle informazioni di una organizzazione si ricorre
generalmente all’uso di strumenti informatici, che consentono un’automazione (in genere parziale)
del sistema informativo.
Un sistema informatico è l’insieme degli strumenti informatici (calcolatori, software di base,
programmi applicativi, ecc.) impiegati per il trattamento automatico delle informazioni allo scopo di
migliorarne l’efficienza. In un sistema informatico le informazioni vengono rappresentate per mezzo
di dati, che diventano informazioni dopo un processo di interpretazione.
BASI DI DATI (DATABASE)
Un database è una collezione di dati atti a rappresentare le informazioni che interessano un sistema
informativo ed è costituito da una grande quantità di dati organizzati in insiemi omogenei in
correlazione tra loro. I dati sono memorizzati e gestiti in memoria permanente (disco) e sono condivisi
fra più utenti e fra più applicazioni per ridurre la ridondanza e la possibilità di inconsistenze.
In una base di dati esistono due parti:
- Schema della base di dati, che è una parte sostanzialmente invariante nel tempo che descrive
le caratteristiche dei dati;
- Istanza o stato della base di dati, che è una parte variabile nel tempo costituita dai valori
effettivi dei dati.
Esempio:
Per rappresentare i corsi attivati ed i relativi docenti si può usare uno schema del tipo
(Corso, Nome Docente)
questo è uno schema invariante nel tempo, mentre le coppie
(Informatica Medica, Morettini) e (Bioingegneria, Burattini)
sono istanze dello schema precedente e possono variare nel tempo.
DATABASE MANAGEMENT SYSTEM (DBMS)
Il DBMS è un sistema software in grado di gestire (costruire, modificare, utilizzare) una base di dati.
Un DBMS è un software che si occupa di memorizzare, ritrovare, e gestire grandi quantità di dati e
tutti questi dati sono memorizzati in file gestiti dal file system con il quale si interfaccia il DBMS. Al fine
di ottimizzare la sua funzionalità, iI DBMS deve conoscere dettagliatamente il sistema operativo del
computer e l’organizzazione del file system. L’utente non deve occuparsi dei dettagli del sistema
operativo e dell’organizzazione dei dati perché è il DBMS che si fa carico di ciò. Il DBMS fornisce una
interfaccia verso l’utente indipendente dal sistema operativo, che rende molto più facile per l’utente
la gestione dei dati ed inoltre permette di organizzare i dati generici in modelli.
I DBMS presentano diverse funzionalità:
- Offrono dei linguaggi per la definizione dello schema della base di dati e per l’uso della base
di dati (accesso ai dati, inserimento, modifica, cancellazione);
- Garantiscono una gestione efficiente della base di dati: le operazioni devono essere eseguite
utilizzando un insieme di risorse (tempo e spazio) che siano accettabili per gli utenti;
- Permettono di gestire la persistenza: sono algoritmi che permettono la persistenza anche in
caso di malfunzionamenti HW/SW;
- Permettono la condivisione di dati: molti e differenti utenti con finalità e modalità di accesso
con il controllo di concorrenza per la modifica contemporanea dei dati;
- Controllano la ridondanza: più utenti accedono agli stessi dati, così si evitano le inconsistenze;
- Garantiscono l’affidabilità della base di dati: i dati sono protetti da errori dovuti a
malfunzionamenti e interferenze (operazioni di salvataggio e ripristino);
- Garantiscono la privatezza della base di dati: i dati sono protetti dall’accesso e dall’uso da parte
di utenti non autorizzati.
I DBMS sono software molto complessi, quindi molto costosi, e la loro architettura include tipicamente
molto componenti con ruoli diversi, tra cui:
o Gestore di interrogazioni e aggiornamenti: il gestore di interrogazioni e aggiornamenti si
occupa di elaborare le richieste dell'utente, di solito espresse in SQL.
o Gestore dei metodi di accesso: il gestore delle interrogazioni darà direttive al gestore dei
metodi di accesso per trovare le tuple.
o Gestore del buffer: nel corso delle elaborazioni lo spazio richiesto per i blocchi di dati sarà
spesso maggiore dello spazio di memoria disponibile; quindi, il gestore del buffer si occupa
principalmente di gestire le operazioni inerenti al salvataggio e di gestire il caricamento dei
blocchi (sincronizzazione tra memoria principale e secondaria).
Il DBMS effettua i seguenti controlli per garantire un corretto funzionamento del sistema:
o Controllo sulla concorrenza
Il controllo sulla concorrenza è relativo alla contemporaneità degli accessi e si occupa della
gestione di conflitti che sorgono quando due o più utenti accedono contemporaneamente allo
stesso dato. Solo un utente alla volta può accedere ad un dato quando l’operazione che viene
richiesta è quella di scrittura, mentre l’accesso in lettura è sempre possibile.
o Controllo sugli accessi
Il controllo sugli accessi è relativo alla protezione dei dati in caso di accessi non autorizzati, per
esempio un amministrativo può accedere ai dati amministrativi e finanziari di un paziente ma
non ai suoi dati clinici, mentre un clinico può accedere a tutti i dati ma solo dei suoi pazienti.
Questo tipo di controllo viene in genere effettuato mediante un Log-in con password segreta
ed una volta identificato l’utente, il DBMS gli assegna gli appropriati diritti di accesso.
o Controllo sull’integrità e sulla consistenza
Il controllo sull’integrità e sulla consistenza sono i controlli necessari per mantenere la
correttezza dei dati nel database.
Tutte le regole e i vincoli tra dati che il progettista del modello concettuale ha definito devono
essere sempre rispettati (per esempio il controllo data, gli appuntamenti associati a clinici
rimossi o inesistenti, ecc.).
o Gestione delle transazioni
La transazione è un insieme di operazioni sul database che viene visto come un’unica
operazione indivisibile. Se il DBMS non è in grado di eseguire compiutamente tutte le
operazioni previste per una transazione lo stato del database deve essere resettato a quello
che si aveva prima che la transazione fosse eseguita; una transazione non terminata
lascerebbe infatti il database in uno stato inconsistente.
Un DBMS deve garantire che la transazione sia ACID, ovvero goda delle seguenti proprietà:
- Atomicity: una transazione è un’unità di esecuzione indivisibile (o tutti gli effetti della
transazione sono registrati nel database o nessuno); •
- Consistency: una transazione lascia il database in uno stato consistente, cioè opera
una trasformazione corretta dello stato del database (il DBMS garantisce che nessuno
dei vincoli di integrità del database venga violato);
- Isolation: una transazione esegue indipendentemente dalle altre (se più transazioni
eseguono in concorrenza, il DBMS garantisce che l’effetto netto sia equivalente
all’esecuzione seriale delle stesse);
- Durability: gli effetti di una transazione che ha terminato correttamente la sua
esecuzione devono essere persistenti nel tempo (il DBMS deve proteggere il database
rispetto ai guasti).
- Sicurezza dei dati
La sicurezza dei dati serve per proteggere i dati non dall’utente, come nei casi precedenti, ma
da fattori esterni (mancanza di energia elettrica, problemi hardware) e si effettua in genere
tramite backup e log files.
L’operazione di recovery permette di riportare il sistema alle condizioni dell’ultimo backup e
nei log files si memorizzano le modifiche al database fatte dopo l’ultimo backup.
Prima dei DBMS si ha un approccio convenzionale con l’uso di file separati, in cui Il Sistema Operativo
offre le primitive di base per l’accesso ai files ed i meccanismi di sicurezza del file system. Con questo
approccio si ha ridondanza dei dati, inconsistenza dei dati, spreco di memoria di massa ed assenza di
gestione della concorrenza.
Con l’avvento dei DBMS si ha un approccio strutturato, in cui si ha un unico archivio di dati, limitazione
delle ridondanze, minimo rischio di inconsistenza e minimo spreco di memoria di massa.
Terminologia:
Un database è un insieme strutturato di dati (files) connessi logicamente tra loro.
Il file è una entità di memorizzazione che possiede un nome e sono creati ed eliminati dal file system
del computer.
Il record è l’unità logica più piccola per la memorizzazione di un file in un database.
Il dispositivo di memorizzazione di massa è un dispositivo su cui vengono memorizzati i file del
database.
Architettura a tre livelli di un DBMS
Un DBMS fornisce ai suoi utilizzatori una visione astratta della base di dati. In particolare, si possono
distinguere tre livelli di astrazione:
- Livello interno
Il livello interno considera la base di dati come un insieme di registrazioni in memoria di massa,
in particolare descrive la distribuzione dei dati sui vari supporti e le modalità di
memorizzazione dei dati. La gestione di questo livello è a carico di chi amministra il DBMS e
non degli utenti che possono concentrarsi su aspetti di più alto livello per lo sviluppo delle loro
applicazioni.
- Livello logico (o concettuale)
Il livello logico presenta i dati in modo da evidenziare la loro struttura logica, cioè
l'informazione posseduta da ciascun dato e come i dati si collegano tra di loro. Esso è detto
anche livello globale perché vi vengono descritti tutti i dati della base di dati.
- Livello delle viste (o esterno)
Il livello delle viste è il livello di massima astrazione, presenta i dati così come vogliono (o
possono) essere visti da una particolare classe di utenti. Vi sono tante diverse
rappresentazioni, ciascuna associata ad un particolare utilizzatore; pertanto, è possibile
associare ad uno schema logico più schemi esterni.
Utilità delle viste:
Una ristrutturazione dello schema integrato può, in alcuni casi, essere opportunamente
mascherata facendo uso di viste.
Mediante le viste è possibile regolare meglio il controllo degli accessi al database (ad esempio
mascherando dati riservati).
Le viste possono essere usate per calcolare dinamicamente nuovi dati a partire da quelli
memorizzati nel database, senza per questo introdurre ridondanza.
I tre livelli di rappresentazione consentono di introdurre i concetti di indipendenza fisica e logica.
L’indipendenza fisica consiste nella possibilità di ridefinire il livello fisico senza modificare il livello
logico, e quindi senza alterare i programmi degli utenti.
L’indipendenza logica consiste nella possibilità di definire nuovi schemi esterni o estendere lo schema
logico senza alterare gli schemi esterni preesistenti.
Linguaggi di un DBMS
Un DBMS mette a disposizione diversi linguaggi per interagire con le basi di dati ed il livello di
astrazione di tali linguaggi dipende fortemente dal modello dei dati cui ci si riferisce.
Una comune distinzione classifica i linguaggi sulla base delle funzioni svolte:
- DDL (Data Definition Language)
Il DDL serve per definire gli schemi (logici, esterni, interni).
- DML (Data Manipulation Language)
Il DML serve per interrogare e modificare le istanze delle base di dati.
- DCL (Data Control Language)
Il DCL include comandi di vario tipo, ad esempio per il controllo degli accessi.
Utenti di un DBMS
Rispetto alle modalità di interazione con il DBMS possiamo raggruppare gli utenti in tre categorie
principali:
1. Utenti finali
Gli utenti finali possono accedere alla base di dati attraverso i comandi di un linguaggio di
interrogazione (query language), oppure, per utenti finali ancora meno esperti attraverso
interfacce software, che presentano sul video il menu o le icone.
2. Progettista/programmatore
Il progettista/programmatore progetta applicazioni che interagiscono con la base di dati.
3. Sistemista/amministratore
Il sistemista/amministratore ha la responsabilità di gestire il database (implementa il modello
logico del database nel sistema di elaborazione sui supporti fisici delle memorie di massa).
MODELLIZZAZIONE DEI DATI
I dati possono essere organizzati, e quindi analizzati, utilizzando «modelli» diversi ed un modello dei
dati è definito come una collezione di concetti atti a rappresentare la realtà.
Esistono quattro tipi di modello:
o Modello esterno
o Modello concettuale
o Modello logico
o Modello interno/fisico
MODELLO ESTERNO
Nel modello esterno l’utente del sistema informativo è principalmente interessato ai dati associati al
suo specifico interesse corrente (ad esempio i dati amministrativi di un paziente, dati clinici, ecc).
L’utente usa il computer per il data entry, per il data presentation e per il data processing. Le varie
viste di dati a cui gli utenti sono interessati definiscono un modello di dati esterno, ovvero un modello
che offre una visione esterna dei dati.
MODELLO CONCETTUALE
I modelli concettuali sono di dati dotati di un gran numero di costrutti, che mettono in evidenza i
concetti presenti in una base di dati, piuttosto che la struttura con cui tali concetti possono essere
rappresentati nella memoria del calcolatore. Il più famoso modello concettuale dei dati è il modello
entità-relazione (rappresento dei concetti in forma grafica).
MODELLO ENTITÀ-RELAZIONE
I dati nei computer possono avere differenti proprietà (ad esempio dati identificativi, dati di
laboratorio, dati di sistemi diagnostici, ecc). I gruppi di dati che hanno proprietà simili sono detti entità
ed esempi specifici di entità sono chiamati istanze. Un’entità è un insieme di oggetti della realtà di
interesse che possiedono caratteristiche comuni e che hanno un’esistenza autonoma.
Ogni entità è descritta da alcune proprietà dette attributi, che è una caratteristica comune a tutte le
istanze di una particolare entità (ad esempio nome, sesso, indirizzo, ID, ecc.). Un attributo può avere
un dominio di valori (ad esempio il sesso può essere M o F).
Un attributo o una combinazione di attributi che identifica univocamente una e soltanto una istanza
di una entità è chiamato chiave primaria o identificatore (ad esempio il codice fiscale).
Le entità di dati sono spesso in relazione tra loro (ad esempio un test di laboratorio è in relazione con
un campione di sangue di un paziente con un determinato identificativo). Una relazione è una
naturale associazione tra due o più entità e ogni legame è una istanza di un certo tipo di relazione.
Tali relazioni sono descritte mediante i cosiddetti ERD (Entity Relation Diagrams). EDR è uno
strumento di modellizzazione dei dati che permette l’organizzazione dei dati di un progetto in entità
e definisce le relazioni fra di esse. Per realizzare gli EDR, sono disponibili tools grafici che fanno uso
dei seguenti simboli:
Il grado di una relazione è il numero di entità che sono coinvolte in una relazione (numero di rami
della relazione). Esistono tre tipi di relazione:
→
- Relazione binaria grado = 2
→
- Relazione ternaria grado = 3
→
- Relazione n-aria grado = n Grado 2
Grado 3
Le relazioni possono coinvolgere anche entità appartenenti allo stesso Insieme di entità e quest’ultime
vengono chiamate relazioni ricorsive. Nelle relazioni dove una stessa entità è coinvolta più volte è
necessario aggiungere la specifica del ruolo che l’entità gioca nella relazione.
In uno schema ER sono presenti dei vincoli di integrità, che è una regola che si esprime sullo schema
ma che specifica una condizione che deve valere per ogni istanza dello schema.
I vincoli di integrità nel modello ER possono essere:
- Vincoli di cardinalità sulle relazioni
- Vincoli di partecipazione
- Vincoli di cardinalità sugli attributi
- Identificatori delle entità
- Generalizzazioni
Vincolo di cardinalità sulle relazioni
La cardinalità di un tipo di relazione è la coppia di numeri (m, M) che specificano il numero minimo e
massimo di entità che possono partecipare ad un’istanza di quella relazione e sono dei vincoli “di
progetto”, derivanti dall’analisi della realtà che si vuole interpretare:
→
- m=0 la partecipazione alla relazione per questa entità è opzionale
→
- M=1 per entrambi i tipi di entità coinvolti nella relazione (relazione 1 a 1)
- M=N> 1 per un’entità e M=1 per l’altra (relazione 1 a molti)
- M=N per entrambe le entità (relazione molti a molti)
Esempio di relazione (1, N):
Un libro può essere scritto da più autori, un autore può aver scritto più di un libro.
Esempio di relazione (1, 1):
Un impiegato può dirigere al più un progetto mentre un progetto è diretto da un impiegato.
Vincolo di partecipazione
Il vincolo di partecipazione (o vincolo di cardinalità minima) specifica se l'esistenza di una entità
dipende dal suo essere correlata ad un'altra entità mediante una relazione.
Possiamo distinguere due tipi di partecipazione:
- Partecipazione obbligatoria (m=1)
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 Informatica medica
-
Appunti Informatica medica
-
Appunti Fondamenti di informatica medica
-
Appunti di Informatica medica