Nello scegliere tra i vari RDBMS (Relational Database Management System) disponibili sul mercato per un nuovo sistema informativo è necessario tenere presente tutte le caratteristiche "enterprise" delle moderne basi di dati, in particolare il team di analisi contemplerà i seguenti parametri:
Supporto ai tipi di dato:
Il supporto dei "datatypes" è una preoccupazione importante per il progettista mentre sceglie un RDBMS. E' necessario sapere se la base di dati in considerazione supporta tutti i datatypes di base, come: NUMERIC, VARCHAR, NCHAR, NVARCHAR e TIMESTAMP. In più, è possibile porsi le seguenti domande: Quale è il formato/lunghezza dei datatypes? Il RDBMS supporta i BLOBS? Se sì, allora come i BLOBS sono integrati nella sintassi di SQL? Esiste il supporto ai tipi di dati definiti dall'utente?
Supporto dei Trigger
Un Trigger può specificare vincoli e regole supplementari all'interno della base di dati per garantire l'integrità referenziale e controllare le varie esecuzioni di un'applicazione. E' importante sapere se i Trigger sulle tabelle e viste sono supportati dal RDBMS. Quanto potente è il linguaggio di programmazione utilizzato nel body del Trigger? E'consentito l'accesso ai VECCHI e NUOVI valori nel corpo di Trigger?
Supporto alle Viste
Le viste sono query di selezione memorizzate nel database e consentono di ottenere differenti visualizzazioni dei dati relazionati e sparsi su differenti tabelle. Il RDBMS supporta le viste? Se si, queste viste funzionano su tabelle "joined" o solo su unioni di tabelle? Che genere di diritti di accesso hanno queste viste? È possibile l'aggiornamento dei dati nelle tabelle tramite le viste?
Stored Procedure (SP)
Le SP consentono di automatizzare particolari e complesse operazioni sui dati ed offrono flessibilità al programmatore. Il supporto alle SP è una delle fonti principali di incompatibilità fra differenti RDBMS.
Per il progettista è importante conoscere se il RDBMS supporta le stored procedure e, nel caso, in quale linguaggio: PL/SQL, Java, C, C++ ecc.
Funzionalità di SQL
Il liguaggio di interrogazione e gestione del RDMB e conforme allo Standard SQL? Sono supportate le sub-query e le query gerarchiche? I valori provenienti da query incluse sono gestiti correttamente? La base di dati supporta i cursori multipli?
Transazioni
La gestione delle transazioni è fondamentale per la gestione della concorrenza. il RDBMS è conforme A.C.I.D. (Atomicity, Consistency, Isolation, e Durability)? Quanto pesante è la loro implementazione ed esecuzione? Le transazioni annidate e gli "user save point" sono supportati? E' supportato il "two-phase commit"?
Supporto per ODBC/JDBC
ODBC/JDBC sono le tecnologie standard di base per accedere ad un RDBMS tramite una applicazione esterna mediante un linguaggio di programmazione (Java, C++, Visual Basic,...).
E' fondamentale sapere se il RDBMS è ODBC/JDBC "compliant" e se supporta importanti caratteristiche come le transazioni distribuite, SavePoints ed Metadati forniti dalle relative API (Application Programming Interface).
Sicurezza
Il grado di sicurezza che un RDBMS offre è un altro fattore trainante nella progettazione di un sistema informativo. Il progettista in questo caso è interessato nel poter fissare nella base di dati: il numero di utenti, di ruoli e di privilegi offerti loro. Il supporto della crittografia è necessario per garantire la condifenzialità delle informazioni a livello applicativo.
Prezzo
I nuovi paradigmi di business hanno reso alcune pratiche di licensing di RDBMS obsolete. Ciò è dovuto alla loro rigidità nel conteggio dei numeri di utenti e di dispositivi simultanei connessi. Inoltre, le modalità di upgrade ed il supporto tecnico svolgono un ruolo decisivo nella decisione fra RDBMS differenti.
Fra gli RDBMS esistenti che soddisfano le esigenze di un complesso sistema informativo, credo che la scelta ricada fra Oracle e Postgres. Il primo ha pieno supporto a tutte le caratteristiche suddette in più gestisce il Clustering (fondamentale per garantire la scalabiltà del sistema), ha lo svantaggio di essere molto costoso (poche decine di migliaia di Euro per Oracle Database Server Enterprise Edition).
Postgres 8.1.4 soddisfa i requisiti suddetti al 95% ed è un software gratuito (Open Source)