Un DBMS può essere costituito da un insieme complesso di programmi software che controllano l'organizzazione, la memorizzazione e il reperimento dei dati (campi, record e archivi) in un database. Un DBMS controlla anche la sicurezza e l'integrità del database. Il DBMS accetta richieste di dati da parte del programma applicativo e "istruisce" il sistema operativo per il trasferimento dei dati appropriati.
Rispetto ad un file server come un Nas ha un software server che gestisce:
- La comunicazione con i client
- Il formato e la gestione dell'archiviazione delle informazioni
- Il controllo della sicurezza per l'accesso a tali dati
- La condivisione delle informazioni
- Il controllo della concorrenza nella scrittura
Gli archivi del database possono essere memorizzati sui Nas per sfruttarne velocità e protezione.
Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo sicuro per lunghi periodi di tempo. Un DBMS fornisce agli utenti questi servizi:
Persistent storage: come un file system, un DBMS permette la memorizzazione di grandi quantità di dati, ma garantisce una flessibilità molto più elevata
Programming interface: permette agli utenti di accedere e modificare i dati attraverso un potente linguaggio di interrogazione
Transaction management: supporta l'accesso concorrente ai dati evitando conseguenze indesiderate dovute a crash del sistema o dell'applicazione
Si considerano due diversi tipi di utenti:
utenti convenzionali/applicazioni che modificano dati e formulano interrogazioni
l'amministratore della base di dati (database administrator - DBA) responsabile per la struttura, lo schema e la gestione della base di dati
Nell'architettura di un DBMS abbiamo le seguenti sezioni:
Dischi e file
Storage manager
Buffer manager
Index/file/record manager
Execution engine
Query compiler
Concurrency control
Logging/recovery
Transaction manager
Recovery Management
Una suddivisione alternativa semplificata (ma parziale), utile a comprendere per linee generali il comportamento di un DBMS, potrebbe essere questa:
Gestore delle interrogazioni
Gestore dei metodi di accesso
Gestore del buffer (Buffer manager)