Database management system: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Descrizione: Riorganizzata sezione
Principali sistemi esistenti: fix testo, fix vari; Voci correlate: rimuovo ridondanze da testo
 
(17 versioni intermedie di 8 utenti non mostrate)
Riga 2:
[[File:Applications-database.svg|thumb|Il simbolo tipicamente utilizzato per rappresentare database o DBMS]]
 
Un '''Databasedatabase Managementmanagement Systemsystem''' (in acronimo '''DBMS''', {{lett|sistema di gestione della base di dati|lingua=it}})<ref>{{Treccani|dbms|DBMS}}</ref> è un [[sistema software]] progettato per consentire la creazione, la manipolazione e l'interrogazione di una o più [[base di dati|basi di dati]] in modo corretto ed efficiente.
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 [[applicazione enterprise]], che nel gergo informatico si riferisce ad applicazioni legate al ''business'' delle aziende che le utilizzano, implica quasi "per definizione" la presenza di una o più basi di dati amministrate da uno o più DBMS.
 
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 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., I DBMS svolgonosvolgendo un ruolo fondamentale in numerose applicazioni informatiche di ogni genere, dalla [[contabilità]], alla gestione delle [[risorse umane]] e alla [[finanza]] fino a contesti tecnici come la [[gestione di rete]] o la [[telefonia]].
 
=== Relazione con i sistemi informativi ===
{{vedi anche|Sistema informativo}}
 
Un sistema informativo è costituito da soggetti (clienti, impiegati, venditori) e attività (ordini, pagamenti, acquisti, ecc.). La [[progettazione]] del [[database]] (''[[database design]]'') è il processo decisionale su come organizzare questi dati in tipi di record e su come ciascun tipo di record si relaziona con gli altri. Il DBMS dovrebbe rispecchiare la struttura dei dati dell'organizzazione e gestire in maniera efficiente le varie [[transazione (basi di dati)|transazioni]].
 
Quando si usa un DBMS i sistemi informativi possono essere adeguati molto facilmente al cambiamento delle richieste informative dell'organizzazione. Possono essere aggiunte al database nuove categorie di dati senza dover stravolgere il sistema esistente.
 
=== Funzionalità tipiche ===
Line 28 ⟶ 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à ====
Line 43 ⟶ 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]].
Line 113 ⟶ 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 ===
== Gestione dei guasti ==
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.
 
=== Tipi di guasti ===
Un DBMS deve essere in grado di fronteggiare diverse tipologie di guasti:
* guasti di sistema;
Line 127 ⟶ 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 ====
=== Metodologie applicate dal DBMS ===
 
Per risolvere il problema dei guasti ilun DBMS utilizzapuò leutilizzare seguentidiverse metolodogiestrategie:
* ''system log,'': file sequenziale scritto in memoria sicura che registra tutte le attività svolte dalle transazioni e gli eventi del sistema quali checkpoint o dump;
* ''dump,'': copia della memoria secondaria su una memoria dislocata in un punto differente geografico;
* ''checkpoint,'': evento di sistema che permette di fotografare lo stato del DBMS al momento dell'esecuzione delle transazioni.
 
=== Operazioni ===
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 139 ⟶ 131:
 
Per le transazioni che invece si trovano nello stato di uncommitted è necessario annullare le operazioni che stavano facendo tramite l'operazione di undo.
 
=== Politiche per l'aggiornamento ===
{{...|informatica}}
 
== Principali sistemi esistenti ==
{{vedi categoria|Software per basi di dati}}
{{Div col|cols=2|small=no}}
{{colonne}}
* [[Software]] proprietario
** [[4th Dimension]]
Line 166 ⟶ 156:
** [[Teradata]] ([[NCR Corporation]])
** [[TimesTen]] (TimesTen, Inc.)
{{colonne spezza}}
* [[Open source]] o [[free software]]
** [[Apache Derby]]
Line 180 ⟶ 171:
** [[Percona Server]] (Percona)
** [[Orient ODBMS]]
** [[PicoSQL]] (un DbmsDBMS italiano)
** Ozone
** [[PostgreSQL]], (in precedenza ''Postgres'') (PostgreSQL Global Development Group)
** [[PicoSQL]] (un Dbms italiano)
** [[PostgreSQL]] (in precedenza ''Postgres'') (PostgreSQL Global Development Group)
** [[SQLite]] (di pubblico dominio)
** [[Visual FoxPro]] (FoxBase)
** [[ZODB]]
** [[SADAS]]
{{colonne fine}}
 
 
{{Div col end}}
== 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]]
{{vedi* anche|[[Sistema informativo}}]]
* [[Customer Information Control System]]
* [[Data warehouse]]
* [[Modello relazionale]]
* [[Persistenza (informatica)]]
* [[ISAM]]
* [[VSAM]]
* [[JDBC]]
* [[ODBC]]
* [[OLAP]]
* [[XML]]
* [[DBMS e sicurezza]]
 
== Altri progetti ==
Line 211 ⟶ 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}}