Un Database Management System (DBMS) indica in informatica un sistema software progettato per consentire la creazione e manipolazione efficiente di database (ovvero collezioni di dati strutturati) solitamente da parte di più utenti. I DBMS svolgono un ruolo fondamentale in numerose applicazioni informatiche, dalla contabilità, alla gestione delle delle risorse umane, dalla finanza fino a contesti tecnici come la telefonia.

In passato, i DBMS erano diffusi principalmente presso grandi aziende o istituzioni, poichè soltanto queste erano in grado di farsi carico dell'impegno economico necessario per l'acquisto delle grandi infrastrutture hardware atte alla realizzare un sistema efficiente. Oggi, invece, il loro utilizzo è diffuso praticamente in ogni contesto. L'espressione enterprise application, che nel gergo informatico si riferisce ad applicazioni legate al business delle aziende che le utilizzano, implica quasi "per definizione" la presenza di una o più basi di dati amministrate da uno o più DBMS.
2. Più nello specifico...
Possiamo dire che un DBMS è un sistema che gestisce collezioni di dati:
- grandi. Le basi di dati hanno dimensioni molto più grandi della memoria centrale dei sistemi di calcolo utilizzati. Il limite è solo quello fisico dei dispositivi.
- persistenti. Nel senso che le basi di dati hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano.
- condivise. Una base di dati è una risorsa integrata e condivisa fra applicazioni, poichè sono previste attività diverse su dati condivisi attraverso meccanismi di autorizzazione nonchè accessi di più utenti attraverso meccanismi di controllo della concorrenza. Proprio per tale caratteristica un aspetto particolarmente delicato è l'attenzione da porre a problemi di ridondanza (informazioni ripetute) e al rischio di incoerenza (le versioni possono non coincidere)
garantendo:
- privatezza. Nei DBMS si possono prevedere meccanismi di autorizzazione tali che, ad esempio, l'utente A sia abilitato a leggere tutti i dati e a modificarli, mentre l'utente B, invece, possa solo leggere i dati X e modificare quelli Y.
- affidabilità. Essa identifica la resistenza del sistema a malfunzionamenti hardware e software. Infatti, l'integrità dei dati è affidata a procedure di back up (salvataggio), recovery (recupero) dei dati o alla loro duplicazione nei casi più critici. Tutto questo nella consapevolezza che una base di dati è una risorsa pregiata e che pertanto va conservata a lungo termine.
- efficienza. Questi sistemi cercano di utilizzare al meglio le risorse di spazio di memoria e di tempo di esecuzione e risposta. L'efficienza dipende dalle tecniche usate per l'implementazione del sistema e dalla buona prgettazione della base di dati.
- efficacia. Tali sistemi cercano di rendere produttive le attività dei loro utilizzatori, offrendo funzionalità articolate, potenti e flessibili.
3. I principali DBMS
E' possibile distinguere i principali DBMS in:
Proprietari
- Access. E' un DBMS realizzato da Microsoft e incluso nel pacchetto Microsoft Office Professional. Può essere utilizzato a differenti livelli sia da sviluppatori software esperti, sia da programmatori alle prime armi per sviluppare applicativi anche molto complessi. A differenza di altri ambienti di sviluppo, in Access un unico file comprende tutti gli strumenti per lo sviluppo delle applicazioni: tabelle, query, maschere e report.- Oracle. Probabilmente il più famoso DBMS. E' nato nel 1979 ed è disponibile per Windows, Linux, Mac OS, offerto in diverse versioni (Standard, Enterprise e Express Edition). Si tratta della piattaforma più completa ed efficiente che possa esistere.

- Microsoft Sql Server. Prodotto da Microsoft a aprtire da un database che si chiamava Sybase a aprtire dal 1989, il sistema è disponibile solo per Windows e in diverse versioni. Offre la quasi totalità delle funzioni offerte da Oracle, benchè alcune sono in implementazione solo dalla versione 2005. E' molto economico e facile da gestire.
- IBM DB2. Nato nel 1983 e secondo molti primo a utilizzare il linguaggio SQL è oggi uno tra i DBMS più diffusi insieme ad Oracle. E', infatti, diffuso su qualsiasi tipo di server ed è multipiattaforma ma presenta alti costi di gestione.
- ...
Open source

- MySQL. E' multipiattaforma e diffusissimo sul web per la sua natura open e di conseguenza per il basso costo di acquisizione. Buona parte dei siti web dinamici del mondo gira su MySQL ma purtroppo esso non implementa alcune delle interrogazioni dei dati.
- PostGreSQL. Offre caratteristiche uniche nel suo genere. Suo punto
di forza competitivo è la programmabilità orientata agli oggetti che consente di raggruppare in un'unica entità (la classe) sia le strutture dati che le procedure che operano su di esse, creando per l'appunto un "oggetto" software dotato di proprietà (dati) e metodi (procedure), attuando in pratica una sorta di modulazione di oggetti software sulla base degli oggetti del mondo reale.- ...
Ma qual è il migliore?
Non esiste una risposta universalmente valida, poichè essa dipende da molti fattori:
- Necessità in termini di prestazioni;
- Piattaforma di sviluppo scelta;
- Conoscenze e capacità del gruppo di sviluppo;
- Necessità o vantaggi legati al singolo progetto.
4. L'architettura del DBMS
L'architettura semplificata di un DBMS prevede fondamentalmente 3 livelli:
1. Livello fisico o interno. Si occupa delle operazioni di livello più vicino all'hardware e fornisce una descrizione a basso livello di tutto il DB, attraverso la sua definizione viene specificata la struttura di memorizzazione del DB, ovvero come sono organizzati i dati nei file e quali strutture ausiliarie sono presenti per facilitarne l'accesso.
2. Livello logico. si occupa della gestione dell'archivio e fornisce la visione logica dell'organizzazione completa del DB. E' la componente di principale utilizzo dell'amministratore del DB usata per descrivere: i tipi di dati contenuti; le loro proprietà; le associazioni di dati; i vincoli di integrità.
3. Livello esterno. E' il livello nel quale l'utente vede il database. Esso consente l'accesso ai dati offrendo la possibilità di compiere: immissioni, modifiche e cancellazioni di informazioni; interrogazioni e produzioni di prospetti (report generation); generazione di maschere video personalizzate. Si tratta della componente che supporta l'interfacciamento verso programmi applicativi scritti in linguaggio di programmazione convenzionale.
Da questa fondamentale suddivisione di un DBMS deriva la caratteristica indipendenza dei dati. Infatti, è possibile parlare di: Indipendenza fisica, dal momento che possono venir alterate le strutture fisiche di memorizzazione senza che si influisca, però, sulla descrizione dei dati a più alto livello e Indipendenza logica, essendo possibile interagire con i livelli esterni indipendentemente dal livello logico.
5. Considerazioni conclusive
Tra i consistenti vantaggi che si possono annoverare si può sintetizzare che un DBMS fa sì che i dati diventino una risorsa a disposizione di tutti, permette un controllo centralizzato, la riduzione delle ridondanze e delle inconsistenze. Inoltre l'indipendenza dei dati favorisce lo sviluppo di applicazioni flessibili e modificabili.
Malgrado ciò non si può non sottolineare che questi siano comunque sistemi costosi e complessi.

Nessun commento:
Posta un commento