Brook Preloader

Introduction to DBMSs and features

Con il termine Database si identificano tutti gli archivi di dati organizzati in modo strutturato gestiti dalla memoria di massa di un elaboratore.

I dati non vengono elaborati in maniera diretta come se fossero un documento di testo, vengono gestiti da un software chiamato DBMS (DataBase Management System).

Il DBMS è un livello intermedio che si frappone tra il Database File, l’effettivo contenitore delle strutture e dei dati effettivi, e l’utente che vuole manipolarli.

 

DBMS Diagram

Ogni DBMS, che per essere definito tale, deve soddisfare diverse caratteristiche:

 

1. Ease and speed of data access:

Le richieste effettuate da uno o più utenti devono ricevere risposta in tempi rapidi, anche se il database è molto grande. Immaginiamo di dover interrogare il database dell’anagrafica dei residenti del comune di Roma alla ricerca di tutti coloro che hanno un’età maggiore di 35 anni, una risposta che impiega trenta secondi non è socialmente e tecnologicamente accettabile.

Ciò che spinge maggiormente la concorrenze tra aziende che sviluppano DBMS è il tempo di reperimento delle informazioni all’interno del nostro database poiché il tempo impiegato nel reperire informazioni viaggia in maniera proporzionale al numero di record presenti all’interno del nostro database.

 

2. Independence of data

L’indipendenza dei dati è una tipologia di gestione del database che mantiene i dati separati da tutti i programmi che ne fanno uso, essa si suddivide in indipendenza logica ed indipendenza fisica.

L’indipendenza logica del dato consente di modificare la struttura e l’organizzazione dei dati indipendentemente dalla modifica delle applicazioni o dei programmi che li utilizzano. Non è necessario riscrivere le applicazioni correnti come parte del processo di aggiunta o rimozione di dati dal sistema.

Per quanto riguarda invece l’indipendenza fisica, questa impatta il cambiamento nell’organizzazione dei Database file o nelle loro strategie di salvataggio che possono variare nel tempo. Questo può accadere ad esempio con un aggiornamento software che può introdurre delle nuove features che aumentano le prestazioni nel salvataggio dati o introducono nuovi livelli di compressione dei Database file. A livello utente non viene notato un cambiamento, che esso sia un essere umano o un software che si interfaccia al DBMS.

 

3. Elimination of redundancy and inconsistency of data

Una situazione ridondante in un Database si verifica quando uno stesso dato si trova in più punti del database. Questa situazione è molto pericolosa poiché rischia di danneggiare la struttura di immagazzinamento dati nel caso in cui ci siano relazioni che vanno a coinvolgere dati ridondati.

La ridondanza dei dati espone al problema dell’inconsistenza in caso di modifica. Avere un dato replicato significa che, nel caso in cui sia necessario modificarlo, dovranno essere ricercate tutte le copie all’interno delle varie tabelle del database.

Immaginiamo un sistema di gestione ospedaliera dove l’anagrafica di un paziente viene utilizzata sia per visite che ricoveri. Modificare l’indirizzo del paziente solo nella tabella ricoveri creerebbe una inconsistenza nell’informazione poiché lo stesso utente nella tabella visite avrebbe dei dati differenti. Non potendo decidere quale delle due informazioni è quella aggiornata e quindi quella corretta, l’inconsistenza è irrisolvibile.

 

4. Preservation of data integrity

Vengono previsti all’interno del DBMS dei meccanismi di controllo per evitare anomalie nel salvataggio dei dati.

Il controllo dell’integrità viene effettuato su:

 

    • Domain Constraint: Within the table we check that the data we are trying to insert respects the correct data type, for example within a numeric field we cannot insert alphabetic characters.
    • Entity Constraint: Each record within the table can have a field that uniquely identifies it; the control therefore does not allow two data entries that have a duplicate unique field.
    • Column constraint: Each record within the table may be subject to rules for one or more of its fields with respect to proper use of the data, e.g., the age field cannot have negative values or the sex field can only admit Male, Female or Other values.
    • Custom integrity constraints: Rules programmed directly by the user can be introduced that correspond to simple rule compositions, e.g., a worker’s salary cannot be greater than that of the site manager.
    • Referential integrity constraints: Records in different tables can be correlated, e.g., an e-commerce user with orders placed, but what would happen if I deleted the user? The order records would no longer reference the orderer, is this situation correct? The answer to this question is obviously no, but with each scenario the correct interpretation must be found.



    •  

      5. Management of data access competition

      Le operazioni effettuate da utenti diversi sullo stesso dato non devono interferire tra loro. Le interferenze possono capitare quando due utenti cercano di modificare lo stesso dato in contemporanea, questa situazione viene parzialmente risolta sequenzializzando le operazioni ed implementando dei meccanismi di blocco (lock) sulle tabelle in utilizzo per impedire ad un utente la modifica su dati su cui un altro utente sta già operando.

       

      6. Security and access control management

      Impedire gli accessi non autorizzati è una delle caratteristiche principali dei DBMS, vengono quindi implementati meccanismi di controllo utenti, gruppi di utenti e permessi. Un utente o un gruppo di utenti, ad esempio, potrebbe avere permessi di lettura ma non di scrittura sulle tabelle del database, così come gli utenti di amministrazione possono manipolare le strutture dati, ecc.