Introduzione ai sistemi DBMS
Cos'è un DBMS e cos'è una base di dati
L'acronimo DBMS indica un sistema di gestione di basi di dati (Data Base Management System).
Il termine database è tuttavia nell'uso comune adoperato indifferentemente per riferirsi all'insieme dei dati come anche alle tecnologie che ne consentono la gestione.
Più correttamente in ambito scientifico - disciplinare è però da preferire il termine DBMS per indicare le soluzioni hardware/software e il termine base di dati per riferirsi all'insieme delle informazioni gestite dal sistema.
Sull'acronimo DBMS è utile visitare la voce di wikipedia
Anche sul termine base di dati wikipedia fornisce un utile prospetto di definizioni e informazioni.
Perchè utilizzare una base di dati e un DBMS
A livello estremamente generale possiamo affermare che quasi tutte le operazioni informatiche si basano sull'utilizzo di una base di dati.
Se infatti ci soffermiamo sulle motivazioni che portano all'uso di un database possiamo comprendere come le informazioni prive di una qualsiasi minima struttura siano molto poco utilizzabili.
Sempre in linea generale una base di dati è un insieme di informazioni organizzato mediante una struttura logica che ne permette innanzi tutto la registrazione persistente (tecniche di storage), successivamente e recursivamente l'individuazione rapida al suo interno di ogni singolo elemento (tecniche di query).
Nello specifico una base di dati gestita tramite un DBMS consente inoltre un'ottimizzazione delle informazioni finalizzata all'eliminazione delle ridondanze e conseguentemente ad un utilizzo efficiente dello spazio, un mantenimento delle perfrmances, una sufficiente affidabilità e coerenza dei contenuti.
Inoltre, in relazione alle specifiche applicazioni e agli specifici strumenti adottati, la base di dati può dover permettere l'accesso differenziato e simultaneo da parte dei diversi utenti e/o applicazioni sia in contesti personali o ristretti sia in contesti ad architettura distribuita in rete.
Impieghi tipici dei database
Come detto sopra quasi tutte le operazioni informatiche sono attualmente supportate da una base di dati. Al fine di rendere più chiaro lo scenario di utilizzo di questa tecnologia possiamo sommariamente individuare quattro classi di applicazioni che utilizzano DBMS:
- Applicazioni "personali" o di tipo desktop
- Applicazioni con architettura client-server in rete locale
- Applicazioni con architettura client-server orientata al web (web applications)
- Applicazioni basate su servizi di rete (web services / architetture SOA - Service Oriented Architecture)
Occorre tuttavia evidenziare che lo stato dell'arte permette anche un elevato grado di ibridazione tra applicazioni tipologicamente diverse secondo le tecniche di integrazione di dati e di interoperabilità.
Esempi tipici di applicazioni desktop con database sono tutti i cataloghi come rubriche, bibliografie e altri archivi dove un'applicazione in esecuzione sul proprio computer si interfaccia ad un file o un insieme di files che contengono i dati organizzati secondo i criteri di ricerca previsti nell'applicazione.
Sono invece degli esempi tipici di soluzioni ad architettura client-server i pacchetti software dove un componente leggero per l'accesso ai dati (client) viene installato su uno o più computer e successivamente viene connesso ad un altro applicativo che si occupa di svolgere fisicamente le operazioni sui dati (server). I pacchetti di questo tipo, solitamente orientati a contesti aziendali sono adatti ad architetture hardware basate su rete locale LAN con un numero n di postazioni di lavoro e uno o alcuni calcolatori ad alte prestazioni con funzioni di file server, database server e altre funzionalità specifiche per la rete. Tipicamente i gestionali aziendali centralizzati sono realizzati con questa architettura.
Quando l'applicazione/computer che opera sui dati alimenta uno o più siti web si parla di web application. In questo caso, i client non sono in numero limitato ma virtualmente illimitato in quanto tutti gli utenti presenti sul web possono accedere al segmento client dell'applicazione che è sviluppata per essere utilizzata da un browser senza la necessità di installare altre componenti.
Un ulteriore evoluzione delle applicazioni orientate alla rete internet è data dai servizi web (web services). Queste soluzioni si basano sullo spezzettamento di un'applicazione complessa in più parti funzionali semplici detti servizi. Ogni servizio è accessibile via web tramite un protocollo che definisce principalmente: a) in che modo chiedere cosa fa il servizio; b) come il servizio deve dichiarare il tipo di lavoro che fa; c) come inoltrare le richieste per ottenere i risultati delle elaborazioni prodotte dal servizio. Una delle prerogative principali delle architetture orientate ai servizi è che il dialogo avviene sempre sul protocollo di comunicazione internet (HTTP) con informazioni espresse in linguaggio XML.
Moltissimi servizi web forniscono elaborazioni di dati gestiti da DBMS. Uno degli esempi più efficaci è probabilmente il servizio di ricerca di indirizzi e toponimi di Google Maps: se si clicca su questo link: http://maps.google.com/maps?q=roma+IT+&hl=it&output=kml si invia una richiesta ad un servizio di Google che ricerca le coordinate del toponimo "Roma" e le restituisce in formato KML (che è un dialetto XML). E' possibile modificare la stringa "roma" nel link per testare i risultati, salvare il KML per esaminarne il contenuto con un editor di testo oppure aprire direttamente il KML con Google Earth.