Database management system: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Correzione d eufonica
Riga 14:
=== Autorizzazioni ===
 
Il sistema di sicurezza dei dati impedisce agli utenti non [[autorizzazione (informatica)|autorizzati]] di visualizzare o aggiornare il database. Mediante l'uso di ''[[password]]'' (parole d'ordine) agli utenti è permesso l'accesso all'intero database o ada un suo sottoinsieme: in questo secondo caso si parla di ''subschema''. Per esempio, un database di impiegati può contenere tutti i dati riguardanti un singolo soggetto, ma un gruppo di utenti può essere autorizzato a vedere solamente i dati riguardanti lo stipendio, mentre altri utenti possono essere autorizzati a vedere solamente le informazioni che riguardano la sua storia lavorativa e la situazione sanitaria.
 
=== Integrità ===
Riga 24:
I [[Query language|linguaggi di interrogazione]] del database mediante ''[[query]]'' (interrogazioni) e i generatori di ''report'' permettono agli utenti di interrogare in maniera interattiva il database e di analizzarne i dati.
 
Se il DBMS fornisce un modo per aggiornare ede immettere nuovi dati nel database, oltre che per interrogarlo, questa capacità permette di gestire database personali. Comunque queste funzionalità non danno la possibilità di mantenere traccia delle revisioni e non forniscono gli strumenti necessari alla gestione di una organizzazione multi-utente. Questi controlli sono disponibili solamente quando un insieme di programmi applicativi sono appositamente costruiti per gestire e coordinare ciascuna funzione di immissione o modifica dei dati.
 
=== DBMS e sistemi informativi ===
Riga 38:
I tre tipi di organizzazione più comuni sono il [[modello gerarchico]], il [[modello reticolare]] e il [[modello relazionale]]. Il modello dominante oggi è quello relazionale, normalmente utilizzato con il linguaggio di interrogazione [[SQL]]. Molti DBMS supportano le API ([[Application programming interface]]) dell'[[ODBC|Open Database Connectivity]] (ODBC) o [[JDBC|Java Database Connectivity]] (JDBC, lo standard per [[Java (linguaggio)|Java]]), che forniscono ai programmatori strumenti standardizzati per l'accesso ai database.
 
I ''[[database server]]'' sono [[computer]] ottimizzati per ospitare i programmi che costituiscono il database reale e sui quali girano solo il DBMS e il software ada esso correlato (nelle situazioni reali spesso questi computer svolgono anche altre funzioni non correlate con la gestione del database). Di solito si tratta di macchine [[multiprocessore]] e con [[disco rigido|dischi fissi]] configurati in modalità [[RAID]] per una [[memoria (informatica)|memorizzazione]] stabile ede affidabile dei dati che garantisca la continuità del servizio anche in caso di [[guasto]] ada un componente (sistemi ''fault tolerant'' o ad alta [[affidabilità]] e [[disponibilità]]). In ambienti dove vengono processate transazioni con moli di dati particolarmente elevate vengono utilizzati anche componenti ''hardware'' che hanno la funzione specifica di acceleratori di database e che sono collegati ada uno o più [[server]] attraverso canali preferenziali ad alta [[velocità di trasmissione]].
 
Sempre più frequentemente si assiste alla integrazione delle [[basi di dati]] e di [[Internet]]: una vasta classe di applicazioni della Rete fa uso di informazioni presenti su basi di dati; esempi di questo tipo di applicazioni vanno dai cataloghi delle imprese, disponibili per il pubblico, alle edizioni ''on-line'' dei giornali e dei quotidiani. Per garantire un linguaggio di modellizzazione che consenta di passare dalla visualizzazione dei dati in un formato compatibile con le basi di dati, ada una "vista" concettuale del futuro [[sito web]] esiste un linguaggio specifico chiamato [[WebML]].
 
== Storia ==
 
I [[database]] sono stati utilizzati fin dall'inizio della [[storia dell'informatica]], ma la grande maggioranza di questi erano programmi specializzati per l'accesso ada un singolo database. Oggi, invece, i moderni sistemi possono essere utilizzati per compiere operazioni su un gran numero di basi di dati differenti. Questa "specializzazione" era dovuta alla necessità di guadagnare in velocità di esecuzione pur perdendo in flessibilità.
 
=== Database Navigazionali ===
Riga 86:
Per risolvere questo problema i programmatori hanno adattato alcuni standard per migliorare le performance dei sistemi; tali adattamenti hanno però causato degli "extra-costi" in termini di ridondanza di dati e controlli per assicurare la consistenza delle basi di dati.
 
I database multidimensionali, ignorano la indipendenza tra gli aspetti fisici e logici della base di dati insita nel modello relazionale, e al contrario, lasciano la definizione dei puntatori ai programmatori. Invece di cercare l'indirizzo del Signor Rossi in diverse tabelle, il DBMS memorizza un puntatore al record "Indirizzo". In effetti, se il dato "appartiene" ada un certo record nella "tabella padre", questo può essere memorizzato nella stessa area di memoria del primo, ede in tal modo è possibile velocizzare l'accesso. Naturalmente il dato deve appartenere solamente ada un dato-padre.
 
Questo tipo di implementazione fisica dei dati può (e dovrebbe) essere fatta in questi database pseudo relazionali, pur mantenendo una indipendenza logica: il programmatore dovrebbe vedere solamente la chiave primaria che poi andrebbe "tradotta" dal DBMS in un puntatore.
 
A causa degli scarsi risultati in termini di tempo di accesso ai dati, spesso dovute a cattive implementazioni di questi concetti, i database multidimensionali hanno avuto scarso successo, anche se molti concetti sono stati ripresi dai database ada oggetti.
 
=== DBMS ada oggetti ===
I DBMS a oggetti sono detti anche [[ODBMS]] (Object DBMS).
 
I database multidimensionali ebbero comunque un ruolo importante sul mercato: portarono alla creazione di basi di dati ada oggetti. Basata sugli stessi concetti generali, questa nuova tipologia di sistemi, consente agli utenti di memorizzare direttamente "oggetti" all'interno delle basi di dati. Ovvero, gli stessi principi della [[Linguaggio di programmazione|programmazione ada oggetti]], invece di dover effettuare un adattamento di metodi e variabili.
 
Questo può avvenire grazie al particolare concetto di proprietà dei database multidimensionali. Nella programmazione ada oggetti, ognuno di questi "oggetti" tipicamente ne conterrà altri. Ad esempio, l'oggetto contenente il Signor Rossi, conterrà un riferimento all'oggetto "Indirizzo". Contenendo il supporto per molti linguaggi di programmazione ada oggetti, i database che sfruttano la medesima tecnologia stanno avendo un periodo di forte sviluppo di questi tempi.
 
Oggi molti DBMS applicano in realtà un misto tra il modello relazionale e il modello a oggetti. Si parla quindi di ORDBMS (Object Relational DBMS).
Riga 128:
 
=== Il gestore delle interrogazioni ===
Si occupa di elaborare le richieste dell'utente, di solito espresse in SQL, quindi in un linguaggio di tipo dichiarativo (un tipo di linguaggio in cui si descrivono i dati che si vogliono ottenere), e di tradurle in un insieme di operazioni (una procedura), che saranno poi effettivamente eseguite. Di solito vi sono più modi diversi di tradurre un'interrogazione e la funzione principale del gestore delle interrogazioni è quella di scegliere fra le varie alternative quella migliore, quella cioè che richiede un minor tempo di elaborazione ede una minore occupazione di memoria. Ad esempio, un'ottimizzazione consiste nell'anticipare sempre le operazioni di selezione, in modo da diminuire fin dall'inizio il numero di record da elaborare, con ovvi miglioramenti nell'occupazione di memoria e nella velocità. Altre ottimizzazioni sono fatte basandosi su criteri di tipo statistico: la grandezza di una tabella, come le tabelle sono fisicamente memorizzate, ecc.
Alla fine dell'elaborazione il gestore delle interrogazioni darà delle direttive al gestore dei metodi di accesso per trovare le tuple.
 
Riga 136:
Un utente con privilegi di amministratore dichiara al sistema come gestire gli accessi, tramite una [[Tavola CRUD]].
 
Il DBMS dovrebbe consentire l'accesso in scrittura a una generica risorsa informatica, ada un solo utente alla volta. Se due utenze accedono alla stessa risorsa, apportando modifiche, si hanno due casi:
 
# se salvano contemporaneamente il loro lavoro, sorge un conflitto di edizione;
Riga 152:
* SET DIRTY: richiamando questo comando si contrassegna un blocco in memoria come modificato.
Prima di introdurre gli ultimi 2 comandi si deve anticipare che il DMBS può operare in 2 modalità: FORCE e NOT FORCE. Quando lavora in modalità FORCE, il salvataggio su disco avviene in modalità sincrona con il commit di una transazione. Quando lavora in modalità NOT FORCE il salvataggio viene effettuato di tanto in tanto in maniera asincrona. In genere i database commerciali operano in modalità NOT FORCE perché ciò consente un aumento delle prestazioni: il blocco può subire più modifiche in memoria prima di essere salvato, poi è possibile scegliere di effettuare i salvataggi quando il sistema è più scarico.
* FORCE: Con questo comando si forza il gestore del buffer ada effettuare la scrittura in modo sincrono con la conclusione (commit) della transazione
* FLUSH: Con questo comando si forza il gestore del buffer ada eseguire il salvataggio, quando ci si trova in modalità NOT FORCE.
 
== Lista di DBMS comuni ==