Sistemi di gestione database modernivengono utilizzati su molti oggetti, ma allo stesso tempo non tutti sanno cosa sono e come si possono utilizzare le funzioni del DBMS. Tali strumenti si distinguono per un numero enorme di possibilità, quindi, per utilizzarli appieno, è necessario capire cosa possono fare e come sono utili per l'utente.
Gestione dati
Prima di tutto, le funzioni del DBMS includono l'elaborazioneinformazioni nella memoria esterna, e questa funzione è la fornitura delle strutture di base del VI, che sono necessarie non solo per memorizzare le informazioni direttamente incluse nel database, ma anche per eseguire varie attività di servizio, come ottenere l'accesso accelerato a qualsiasi file in casi vari ... In alcune modifiche, le capacità di vari file system vengono utilizzate attivamente, mentre altre prevedono il lavoro anche a livello di dispositivi di memoria esterni. Ma in questo caso, vale la pena notare che nella funzione di un DBMS con un alto grado di sviluppo, l'utente non è in ogni caso informato sull'utilizzo di un sistema e, in caso affermativo, su come sono organizzati i file. In particolare, il sistema mantiene il proprio ordine di denominazione per gli oggetti inclusi nel database.
Gestione del buffer RAM
Nella maggior parte dei casi, le funzioniÈ consuetudine utilizzare un DBMS in database sufficientemente grandi e questa dimensione è almeno spesso molto maggiore della quantità di RAM disponibile. Certo, se, nel caso di accesso a ciascun dato, verrà effettuato uno scambio con memoria esterna, la velocità di quest'ultima corrisponderà alla velocità del sistema stesso, quindi, praticamente l'unica opzione per il suo reale incremento è buffering delle informazioni nella RAM. Inoltre, anche se il sistema operativo esegue il buffering a livello di sistema, ad esempio con UNIX, questo non sarà sufficiente per fornire al DBMS lo scopo e le funzioni di base, poiché ha una quantità molto maggiore di dati sulle proprietà utili del buffering per ogni parte specifica del database utilizzata. Per questo motivo, i sistemi avanzati mantengono il proprio set di buffer, nonché una disciplina unica per la loro sostituzione.
Vale la pena notare il fatto che esiste un separatodirezione dei sistemi di controllo, focalizzata sulla presenza continua nella RAM dell'intero database. Questa direzione si basa sul presupposto che nel prossimo futuro la quantità di RAM nei computer sarà in grado di espandersi così tanto che non si preoccuperanno più di alcun buffering e le funzioni principali di questo tipo di DBMS torneranno utili qui . Al momento, tutti questi lavori rimangono in fase di test.
Gestione delle transazioni
Una transazione è una sequenza di operazionicon il database utilizzato, che il sistema di gestione considera come un tutt'uno. Se la transazione viene eseguita completamente con successo, il sistema eseguirà il commit delle modifiche apportate alla memoria esterna o nessuna di queste modifiche influenzerà lo stato del database. Questa operazione è necessaria per mantenere l'integrità logica del database utilizzato. Va notato che il mantenimento del corretto corso del meccanismo di transazione è un prerequisito anche quando si utilizza un DBMS per utente singolo, il cui scopo e le cui funzioni sono significativamente differenti da altri tipi di sistemi.
La proprietà con cui inizia qualsiasi transazionesolo se il database è in uno stato integrale e allo stesso tempo lo lascia nello stesso stato al termine della procedura, ne rende estremamente conveniente l'utilizzo come unità di attività rispetto al database. Con una corretta gestione dell'esecuzione contemporanea delle transazioni da parte del sistema di controllo, ogni singolo utente, in linea di principio, può sentirsi parte del tutto. Tuttavia, questa è in una certa misura una rappresentazione idealizzata, poiché in molte situazioni quando lavorano, le persone sentiranno ancora la presenza dei loro colleghi se usano un sistema multiutente, ma in realtà ciò è previsto dal concetto stesso di DBMS. Le funzioni DBMS multiutente associano anche concetti come il piano di esecuzione seriale e la serializzazione con la gestione delle transazioni.
Cosa vogliono dire?
Serializzare l'esecuzione simultanea di transazioniprevede la costruzione di un apposito piano per il loro lavoro, in cui l'effetto complessivo raggiunto della miscela è equivalente al risultato ottenuto grazie alla loro esecuzione sequenziale.
Il piano di esecuzione seriale èuna certa struttura di azioni che porta alla serializzazione. Ovviamente, se il sistema riesce a fornire un'esecuzione veramente seriale di una miscela di transazioni, allora per qualsiasi utente che forma una transazione, la presenza di altri sarà completamente invisibile, tranne che funzionerà un po 'più lentamente rispetto al singolo- modalità utente.
Esistono diversi algoritmi di serializzazione di base.Nei sistemi centralizzati, i più diffusi oggi sono gli algoritmi basati sull'acquisizione sincronizzata di vari oggetti di database. Se vengono utilizzati algoritmi di serializzazione, viene fornita la possibilità di conflitti tra due o più transazioni sull'accesso a determinati oggetti di database. In una situazione del genere, per fornire supporto per questa procedura, è necessario eseguire il rollback, ovvero eliminare tutte le modifiche apportate al database tramite uno o più processi. Questa è solo una delle situazioni in cui in un sistema multiutente una persona avverte la presenza di altri.
Scrivere sul diario
Uno dei requisiti fondamentali per il modernoi sistemi devono garantire l'affidabilità della memorizzazione delle informazioni nella memoria esterna. In particolare, ciò prevede che tra le principali funzioni del DBMS vi sia la possibilità di ripristinare l'ultimo stato consistente del database dopo il verificarsi di eventuali guasti software o hardware. Nella maggior parte dei casi, è consuetudine considerare due opzioni per i guasti hardware:
- soft, che può essere interpretato come uno spegnimento imprevisto del computer (il caso più comune è uno spegnimento di emergenza);
- hard, che sono caratterizzati dalla perdita parziale o totale dei dati memorizzati su supporti esterni.
Esempi di errori del software includonocausare l'arresto anomalo del sistema quando si tenta di utilizzare qualsiasi funzionalità che non sia tra le funzioni principali del DBMS, o l'arresto anomalo di qualsiasi utilità utente, a seguito della quale una determinata transazione non è stata completata. Il primo può essere visto come un tipo speciale di soft failure, mentre il secondo deve affrontare le conseguenze di una singola transazione.
Ovviamente comunque per normaleIl ripristino del database richiede una certa quantità di informazioni aggiuntive. In altre parole, per il normale mantenimento dell'affidabilità della memorizzazione dei dati nel database, è necessario prevedere la ridondanza della memorizzazione delle informazioni e parte dei dati utilizzati per il ripristino devono essere protetti con particolare attenzione. Il metodo più comune per mantenere questi dati ridondanti consiste nel mantenere un registro delle modifiche.
Cos'è e come si usa?
La rivista è una parte speciale del databasedati, il cui accesso non è tra le funzioni del DBMS, ed è supportato con molta attenzione. In alcune situazioni, si prevede addirittura di supportare contemporaneamente due copie della rivista posizionate su supporti fisici differenti. Questi repository ricevono informazioni su eventuali modifiche che si verificano nella parte principale del database e, in diversi sistemi di controllo, le modifiche possono essere registrate a vari livelli. In alcune situazioni, una voce di log corrisponde completamente a una specifica operazione di modifica logica, da qualche parte - un'operazione interna minima associata alla modifica di una pagina di memoria esterna, mentre alcuni DBMS forniscono una combinazione dei due approcci.
In ogni caso, il cosiddettola "strategia write-ahead" nel registro. Quando viene applicato, un record che indica che alcuni oggetti del database sono stati modificati viene immesso nella memoria esterna del registro prima dell'oggetto modificato. È noto che se le funzioni del DBMS Access prevedono la normale aderenza a questo protocollo, il log può essere utilizzato per risolvere eventuali problemi legati al ripristino del database in caso di guasto.
Rollback
La situazione di recupero più sempliceè il rollback individuale della transazione. Per questa procedura, non è necessario utilizzare il registro delle modifiche a livello di sistema ed è sufficiente utilizzare un registro delle modifiche locale per ciascuna transazione, quindi eseguire il rollback delle transazioni eseguendo le operazioni inverse, a partire dalla fine di ciascuna delle i record. La struttura di una funzione DBMS prevede spesso l'utilizzo di una tale struttura, ma nella maggior parte dei casi i log locali non sono ancora supportati e viene eseguito un rollback individuale anche per singole transazioni secondo quello di sistema, e per questo tutti i record di ciascuna delle transazioni vengono combinati in un elenco inverso.
Quando si verifica un errore software, memoria esternai database possono includere vari oggetti che sono stati modificati da transazioni che non sono state completate al momento del fallimento, così come vari oggetti che sono stati aggiornati da quelli che sono stati completati con successo prima del fallimento a causa dell'uso di buffer RAM, il cui contenuto completamente scompaiono quando problemi simili. Se si segue il protocollo per l'utilizzo dei registri locali, i record rimangono nella memoria esterna relativi alla modifica di tali oggetti.
Lo scopo principale della procedura di recupero dopoUn soft failure è uno stato della memoria esterna del database principale che si verificherebbe se le modifiche di qualsiasi transazione completata venissero salvate nel VI e non conterrebbero tracce di procedure incomplete. Per ottenere questo effetto, le funzioni principali del DBMS sono in questo caso il rollback delle transazioni non salvate e la riproduzione di quelle operazioni, i cui risultati non sono stati infine riflessi nella memoria esterna. Questo processo fornisce un numero abbastanza ampio di sottigliezze, che riguardano principalmente l'organizzazione della gestione dei log e dei buffer.
Crash violenti
Se è necessario ripristinare il databasedopo che si sono verificati errori fisici, non viene utilizzato solo il registro, ma anche la copia di archivio del database. Quest'ultima è una copia completa del database quando il registro ha iniziato a riempirsi. Naturalmente, per eseguire una normale procedura di recupero, è richiesta la sicurezza del registro, pertanto, come accennato in precedenza, vengono imposti requisiti estremamente gravi sulla sua sicurezza nella memoria esterna. In questo caso, il ripristino del database significa che, in base alla copia di archivio, tutte le transazioni completate nel momento in cui si è verificato l'errore vengono riprodotte nel registro. Se necessario, l'operazione di transazioni incomplete può anche essere riprodotta e il loro normale funzionamento può continuare dopo la fine della procedura di ripristino, ma nella maggior parte dei sistemi reali tale procedura non viene eseguita perché il ripristino da guasti gravi è di per sé piuttosto procedura lunga.
Supporto linguistico
Per lavorare con database modernivengono utilizzati linguaggi diversi e nei primi DBMS, il cui scopo, funzioni e altre caratteristiche erano significativamente diversi dai sistemi moderni, veniva fornito il supporto per diversi linguaggi altamente specializzati. Questi erano principalmente SDL e DML, destinati rispettivamente alla definizione dello schema del database e alla manipolazione dei dati.
SDL è stato utilizzato per definirela struttura logica del database, cioè per riconoscere la struttura specifica del database che viene presentato agli utenti. DML, d'altra parte, includeva un intero complesso di operatori per la manipolazione delle informazioni, consentendo di inserire informazioni in un database, nonché eliminare, modificare o utilizzare dati già esistenti.
Le funzioni del DBMS includono diversi tipi di supportoun unico linguaggio integrato che prevede la disponibilità di ogni mezzo necessario al normale funzionamento con i database, a partire dalla sua creazione iniziale, e fornendo un'interfaccia utente standard. SQL è utilizzato come linguaggio standard che fornisce le funzioni di base del DBMS dei più comuni sistemi relazionali odierni.
Com'è?
Prima di tutto, questa lingua combinale funzioni principali di DML e SDL, ovvero fornisce la capacità di definire semantiche specifiche di un database relazionale e manipolare le informazioni necessarie. Allo stesso tempo, la denominazione di vari oggetti di database è supportata direttamente a livello di linguaggio, nel senso che il compilatore converte i nomi degli oggetti nei loro identificatori interni, sulla base di tabelle di catalogo di servizi appositamente supportate. Il cuore dei sistemi di controllo, in linea di principio, non interagisce in alcun modo con le tabelle o le loro singole colonne.
Il linguaggio SQL include un intero elenco di filestrumenti speciali per determinare i vincoli di integrità del database. Anche in questo caso, tali restrizioni sono incluse in tabelle di catalogo speciali e il controllo dell'integrità viene eseguito direttamente a livello di linguaggio, ovvero, nel processo di lettura dei singoli operatori di modifica del database, il compilatore, in base ai vincoli di integrità nel database, genera il codice di programma corrispondente.