Database management system: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Principali sistemi esistenti: fix testo, fix vari; →Voci correlate: rimuovo ridondanze da testo |
|||
(14 versioni intermedie di 8 utenti non mostrate) | |||
Riga 2:
[[File:Applications-database.svg|thumb|Il simbolo tipicamente utilizzato per rappresentare database o DBMS]]
Un '''
Talvolta ci si riferisce ai DBMS utilizzando impropriamente il termine ''[[database]]''<ref>{{treccani|data-base|Database|v=1}}</ref> (o "base di dati" in italiano), a causa dell'[[accoppiamento (informatica)|accoppiamento]] tipicamente stretto tra l'archivio dati e il software di gestione.
== Descrizione ==
Riga 10:
[[File:MSAccess2019.png|thumb|[[Microsoft Access]]]]
Se in passato i DBMS erano diffusi principalmente presso le grandi [[azienda|aziende]] e istituzioni che potevano permettersi l'impegno economico derivante dall'acquisto delle grandi infrastrutture [[hardware]] necessarie per realizzare un sistema di database efficiente, oggi il loro utilizzo è diffuso praticamente in ogni contesto. L'espressione
Un DBMS è differente dal concetto generale di [[applicazione (informatica)|applicazione]] sulle [[banche dati]] in quanto è progettato per sistemi multi-utente: i DBMS si appoggiano a [[kernel]] che supportano nativamente il [[multitasking]] e il collegamento in [[Reti di calcolatori|rete]], infatti una tipica applicazione per la gestione dei database non includerebbe queste funzionalità, ma si appoggerebbe al [[sistema operativo]] per consentire all'utente di usufruirne.
Un DBMS controlla anche la sicurezza e l'integrità del database e può essere costituito da un insieme complesso di programmi [[software]] che controllano l'organizzazione, la memorizzazione e il reperimento dei dati ([[Campo (informatica)|campi]], [[record (database)|record]] e archivi) in un
=== Funzionalità tipiche ===
Riga 21:
{{vedi anche|Controllo degli accessi}}
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 a 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 e 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.
==== Mantenimento dell'integrità ====
Riga 36:
==== Ottimizzazione delle interrogazioni ====
{{...|informatica}}
==== Astrazione della base dati ====
{{vedi anche|progettazione di basi di dati}}
{{...|informatica}}
== Architettura ==
Le organizzazioni possono usare un DBMS per gestire il normale processo quotidiano delle transazioni e in un secondo tempo spostare il dettaglio in un altro computer che usa un altro DBMS più adatto per gestire interrogazioni casuali e l'attività di analisi. Le decisioni globali circa l'architettura dei sistemi informativi sono gestite dagli analisti di sistema e dagli amministratori dei dati. La progettazione di dettaglio del database è demandata agli amministratori del database stesso.
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{{'}}''[[Open Database Connectivity]]'' (ODBC) o ''[[Java DataBase Connectivity]]'' (JDBC, lo standard per [[Java (linguaggio di programmazione)|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 a 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 e affidabile dei dati per garantire la continuità del servizio anche in caso di [[guasto]] a 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 a uno o più [[server]] attraverso canali preferenziali ad alta [[velocità di trasmissione]].
Riga 106:
* FLUSH: Con questo comando si forza il gestore del buffer a eseguire il salvataggio, quando ci si trova in modalità NOT FORCE.
=== Gestore delle operazioni di ripristino ===
Il recovery manager è responsabile di garantire la coerenza l'atomicità, la persistenza e di realizzare i comandi transazionali fondamentali quali begin transaction, end transaction, commit work, rollback work.▼
▲Il recovery manager è responsabile di garantire la coerenza l'atomicità, la persistenza e di realizzare i comandi transazionali fondamentali quali begin transaction, end transaction, commit work, rollback work.
L'obiettivo del recovery manager è quello di gestire il rollback di una transazione, ricostruire uno stato consistente del DB e che ne rispetti la semantica delle transazioni, in seguito ad un guasto del DBMS.
Un DBMS deve essere in grado di fronteggiare diverse tipologie di guasti:
* guasti di sistema;
Line 120 ⟶ 119:
Un guasto di memoria secondaria è più complesso da gestire e può essere causato da eventi catastrofici che non permettono di avere una memoria ancora valida. Questo tipo di guasto causa una perdita fisica dei dati memorizzati ma non dei log che vengono salvati in una memoria stabile.
==== Strategie ====
Per risolvere il problema dei guasti
* ''system log
* ''dump
* ''checkpoint
Per ripristinare situazioni non congruenti derivate da crash del sistema, il DBMS ha disposizione l'operazione di redo e l'operazione di undo da utilizzare tramite la lettura del log.
Line 132 ⟶ 131:
Per le transazioni che invece si trovano nello stato di uncommitted è necessario annullare le operazioni che stavano facendo tramite l'operazione di undo.
== Principali sistemi esistenti ==
{{vedi categoria|
{{colonne}}
* [[Software]] proprietario
** [[4th Dimension]]
Line 160 ⟶ 156:
** [[Teradata]] ([[NCR Corporation]])
** [[TimesTen]] (TimesTen, Inc.)
{{colonne spezza}}
* [[Open source]] o [[free software]]
** [[Apache Derby]]
Line 174 ⟶ 171:
** [[Percona Server]] (Percona)
** [[Orient ODBMS]]
▲** [[PicoSQL]] (un Dbms italiano)
▲** [[PostgreSQL]] (in precedenza ''Postgres'') (PostgreSQL Global Development Group)
** [[SQLite]] (di pubblico dominio)
** [[Visual FoxPro]] (FoxBase)
** [[ZODB]]
** [[SADAS]]
{{colonne fine}}
== Note ==
<references/>
== Bibliografia ==
* {{cita libro|autore = Paolo Atzeni|autore2 = Stefano Ceri|autore3 = Piero Fraternali|autore4 = Stefano Paraboschi|autore5 = Riccardo Torlone|titolo = Basi di dati|editore = McGraw-Hill|anno = 2018|edizione = 5|città = Milano|ISBN = 978-88-386-9445-5|cid = Atzeni 2018}}
* {{Cita libro|nome=Abraham|cognome=Silberschatz|nome2=Henry F.|cognome2=Korth|nome3=S.|cognome3=Sudarshan|titolo=Database system concepts|edizione=Seventh edition|data=2020|editore=McGraw-Hill|ISBN=978-0-07-802215-9}}
== Voci correlate ==
* [[Base di dati]]
Line 192 ⟶ 193:
* [[Data warehouse]]
* [[Persistenza (informatica)]]
* [[OLAP]]
Line 202 ⟶ 201:
* {{Collegamenti esterni}}
* {{FOLDOC}}
* {{cita web|url=http://www.methack.it/devblog/2008/07/07/introduzione-ai-dbms/|titolo=Introduzione ai DBMS|accesso=8 luglio 2008|urlarchivio=https://web.archive.org/web/20191017070643/http://www.methack.it/devblog/2008/07/07/introduzione-ai-dbms/|urlmorto=sì}}
{{Database management system}}
|