Un DBMS è composto da più parti: la parte di gestione dati (formata dal DML, DDL, DMCL) e l'interfaccia utente. Quest'ultima rappresenta il modo in cui l'utente può trasmettere comandi al modulo di gestione del DB: in genere si tratta di un'interfaccia grafica.
Queste due componenti possono essere anche separate.
Il modulo di gestione consiste in quello che comunemente viene chiamato 'motore SQL' o motore del DB, o anche 'server SQL'. Questo costituisce il lato server dell'applicazione e deve risiedere sul computer che contiene il DB stesso (cioè le tabelle). Come tutti i programmi server, si tratta di una componente 'passiva' cioè rimane disponibile in attesa delle chiamate dei programma client, a cui fornisce delle risposte.
L'interfaccia è il lato client: questa è la parte attiva dell' applicazione, quella che 'prende l'iniziativa' (su richiesta dell'utente) ed invia le richiesta al server. Questa parte del DBMS può risiedere anche su altri computer, che sono i client, cioè i computer usati dagli utenti finali.
I DB per personal computer in genere non offrono la possibilità di separare le due componenti: sono progettati per funzionare su un solo computer e quindi sono costruiti in maniera integrata, cioè tutte le componenti vengono assemblate insieme. Il famosissimo DBaseIII della Ashon Tate (ora Visual Dbase arrivato alla versione 7, e commercializzato dalla Borland) e MicroSoft Access sono due esempi di Data Base per PC.
Nei sistemi di maggiori dimensioni che prevedono la distribuzione in rete di vari compiti e funzioni, il lato client è generalmente separato dal lato server. I DBMS per la gestione di grandi moli di dati in rete, spesso sono solo motori SQL, magari dotati di una semplice interfaccia carattere, ai quali si possono applicare interfacce diverse, non necessariamente distribuite insieme al pacchetto principale. Alcuni esempi sono il famosissimo Oracle, (il DB più usato si Internet), SQL server della MicroSoft, DB2 della IBM, AdaBas della AG, InterBase della Borland, ed anche i tradizionali prodotti gratuiti che vengono usati nel mondo Linux, cioè mySQL, e PostGreSQL.
Dato che l'interfaccia client è separata dal server SQL, sono necessarie delle convenzioni perchè le due parti del programma possano funzionare insieme. Ci sono diverse possibilità:
Non bisogna confondere l'accesso client/server con l'apertura di DB in rete: sono due tecniche completamente diverse. Nel secondo caso, si tratta semplicemente di aprire un DB che fisicamente risiede su una cartella (condivisa) in un computer diverso da quello in cui si è seduti. I programmi che agiscono sul DB girano però tutti localmente (e interagiscono solo con un server legato al file system di rete, che consente di localizzare ed aprire il file). Nel caso di accesso client server, la cartella in cui risiede il DB non è condivisa, perchè comunque il programma di gestione dei dati (server SQL) risiede sulla stessa macchina su cui si trova il DB. L' interfaccia di accesso risiede invece su un altro computer, quindi si tratta di due programmi che si scambiano richieste e informazioni attraverso un protocollo di rete. Quindi la cartella che contiene il DB non deve essere condivisa
Il server SQL va avviato sul computer che contiene il
DataBase. In genere questa operazione viene predisposta automaticamente
all'avvio del sistema, ma può essere effettuata anche
manualmente da un utente con particolari privilegi.
In un sistema unix
(linux) il server di data base partirà come demone (daemon) e resterà in ascolto su una
specifica porta, usando il protocollo TCP/IP.
In un sistema NT (o Windows 2000), verrà avviato dal pannello di
controllo sotto forma di servizio (service); anche in questo caso in genere si usa
il protocollo TCP/IP per le comunicazioni tra client e server.
Nei
sistemi Windows9x (compreso ME) non esistono veri e propri servizi (o
demoni) e il programma per la gestione del DB parte in modalità
TSR, rimanendo residente in memoria e pronto ad essere attivato al
momento opportuno (anche molti virus funzionano in questo modo!)
In genere un DBMS è in grado di gestire più Data Base anche
contemporaneamente: l'utente che vuole collegarsi al DB deve
fornire un nome e una password e specificare a quale DB vuole
accedere. Il server SQL ha il compito di controllare il nome utente e la
password e verificare che l'utente abbia i permessi necessari per
accedere al DB. In pratica viene effettuata una procedura di login
simile a quella che si ha all' inizio della sessione di lavoro al computer.
Il nome utente e la password di accesso al data base non hanno niente a che
fare con il nome utente e la password usati per accedere al computer,
anche se a volte per comodità gli amministratori dei sistema fanno
in modo che siano uguali.
Dopo la prima installazione, bisogna quindi per prima cosa decidere le politiche di accesso al DB, ed inserire i nome degli utenti, le password ed i permessi. In genere il DB appena installato sarà accessibile a tutti (specie se si tratta di un prodotto per Win9x) oppure prevederà un unico utente senza password, tramite il quale si può accedere e assegnare i permessi agli altri con il comando GRANT. In genere in questa prima fase vengono creati gli amministratori del DB, e poi essi stessi procederanno alla creazione delle tabelle, delle viste e degli accessi per i loro utenti.
Nei sistemi operativi in cui il file system è protetto da permessi,
l' identità dell' utente che lancia il server è determinante
per l'accesso ai file del DB: infatti tutte le operazioni di
manipolazione dei dati vengono effettuate del sever SQL, e in genere
questo processo assume l'identità dell' utente che lo ha lanciato.
A questo proposito è necessaria una attenta politica di
gestione, per evitare che l'accesso al DB comporti anche l'accesso agli
altri file di sistema: di solito viene creato un utente apposito al quale
si assegnano solo i permessi necessari al funzionamento del DB.
![]() |
![]() |
![]() |