Un sistema di gestione di database (abbr. DBMS ) è un software di sistema utilizzato per archiviare, manipolare o gestire e condividere i dati in un database , garantendo la qualità, la durata e la riservatezza delle informazioni, nascondendo la complessità delle operazioni.
Un DBMS (in inglese DBMS for database management system ) permette di registrare, trovare, modificare, ordinare, trasformare o stampare le informazioni del database. Consente di effettuare report sulle informazioni registrate e include meccanismi per garantire la coerenza delle informazioni, evitare la perdita di informazioni a causa di guasti, garantire la riservatezza e consentirne l'utilizzo da parte di altri software. A seconda del modello, il DBMS può includere una semplice interfaccia grafica fino a sofisticati linguaggi di programmazione.
I sistemi di gestione dei database sono software universali, indipendenti dall'uso che viene fatto dei database. Sono utilizzati per molte applicazioni informatiche, inclusi bancomat , software di prenotazione , biblioteche digitali , software di inventario , software ERP o la maggior parte dei blog e siti Web. Ci sono molti sistemi di gestione di database . Nel 2008, Oracle deteneva quasi la metà del mercato dei DBMS con MySQL e Oracle Database . Segue IBM con quasi il 20%, lasciando poco spazio agli altri giocatori.
I DBMS sono spesso utilizzati da altri software oltre che da amministratori o sviluppatori . Possono essere sotto forma di un componente software , un server , un software applicativo o un ambiente di programmazione .
Nel 2011 la maggior parte dei DBMS presenti sul mercato ha gestito database relazionali .
I DBMS sono il middleware tra utenti e database. Un database è un archivio dati composto da più file gestiti esclusivamente dal DBMS. Quest'ultimo nasconde la complessità della gestione delle strutture del database fornendo una visione sintetica del contenuto.
Il pacchetto DBMS e database ha lo scopo di consentire l'archiviazione dei dati in un modo che offre molti vantaggi rispetto al salvataggio convenzionale su file . Consente di ottenere e modificare rapidamente i dati e di condividerli tra più utenti. Garantisce l'assenza di ridondanza, integrità, riservatezza e durata dei dati, fornendo al contempo mezzi per evitare possibili conflitti di modifica e nascondere i dettagli del formato file dai database.
I dati vengono registrati sotto forma di sequenze di bit che rappresentano lettere, numeri, colori, forme, ecc. Il DBMS include vari meccanismi destinati a trovare rapidamente i dati e a convertirli per ottenere informazioni che hanno una direzione.
I DBMS contemporanei sono software sofisticati che richiedono personale altamente qualificato e il loro utilizzo spesso comporta un aumento sostanziale dei costi di licenza e formazione .
Un DBMS consente di registrare i dati, quindi ricercarli, modificarli e creare automaticamente report ( report in inglese ) dei contenuti del database. Consente di specificare i tipi di dati , la struttura dei dati contenuti nel database, nonché regole di consistenza come l'assenza di ridondanza.
Le caratteristiche dei dati registrati nel database, nonché le relazioni, le regole di consistenza e le liste di controllo degli accessi sono registrati in un catalogo che si trova all'interno del database e gestito dal DBMS.
La ricerca e il trattamento dei dati, oltre a definirne le caratteristiche, le regole di consistenza ei permessi di accesso possono essere espressi come query (English query ) in un linguaggio informatico riconosciuto dal DBMS. SQL è il linguaggio informatico più diffuso, è un linguaggio standardizzato per la gestione dei database. Esistono molti altri linguaggi come Databasic di Charles Bachman , Dataflex, dBase o xBaseScript (ecc.).
I database possono avere una dimensione di diversi terabyte ; una dimensione maggiore dello spazio disponibile nella memoria principale del computer. I database sono archiviati su hard disk , questi ultimi hanno una capacità maggiore, ma sono più lenti, e il DBMS è dotato di meccanismi per velocizzare le operazioni. I DBMS contemporanei registrano non solo i dati, ma anche la loro descrizione, modulistica, definizione di report, regole di consistenza, procedure ; consentono la memorizzazione di video e immagini. Il DBMS manipola le complesse strutture necessarie per preservare queste informazioni.
I DBMS sono dotati di meccanismi che eseguono controlli all'insaputa dell'utente, al fine di garantire il buon esito delle transazioni, evitare problemi dovuti all'accesso simultaneo e garantire la sicurezza dei dati:
A seconda della loro costruzione e delle possibilità che offrono, i DBMS possono dirsi gerarchici, relazionali, orientati agli oggetti, relazionali agli oggetti, XML/RDF o misti:
Inoltre, il DBMS può essere distribuito, centralizzato o embedded e può essere spaziale:
I DBMS differiscono anche per le dimensioni dei database che possono gestire.
I diversi DBMS sul mercato si differenziano per l'ambito di utilizzo delle banche dati: l'ambito influenza il numero di utenti simultanei, la dimensione delle banche dati, la/le ubicazione/i e la potenza di calcolo necessaria. Alcuni DBMS supportano database molto grandi e richiedono computer potenti e molto costosi. Altri DBMS funzionano su personal computer economici, con limiti alle dimensioni del database e alla potenza di calcolo. Possono essere classificati in:
Fino al 1960, le informazioni venivano registrate in file gestiti da software applicativo. L'idea dei database è stata lanciata nel 1960 come parte del programma Apollo . L'obiettivo era creare un dispositivo informatico destinato a registrare la grande quantità di informazioni relative al programma spaziale, in vista dell'atterraggio sulla Luna prima della fine del decennio. È a questo scopo che IBM , insieme a Rockwell, sta commercializzando il software Information Management System (IMS). Con questo DBMS le informazioni vengono registrate in database organizzati in maniera gerarchica.
Allo stesso tempo, General Electric , con l'aiuto di Charles Bachman, ha lanciato il software Integrated Data Store . Con questo DBMS le informazioni vengono registrate in database organizzati secondo un modello a rete, che consente di registrare informazioni aventi un'organizzazione più complessa rispetto al modello gerarchico.
Nel 1965 , Dick PICK sviluppò il sistema operativo Pick , che includeva un DBMS e il linguaggio Databasic di Charles Bachman . Nel 2002 la tecnologia di Pick è stata utilizzata in prodotti contemporanei come JBase.
Nel 1967 , il consorzio CODASYL ha formato un gruppo di lavoro, il database task group abr. DBTG , che lavora sulla standardizzazione di due linguaggi informatici legati ai database: DML e DDL.
Le organizzazioni gerarchiche e di rete degli anni '60 mancavano di indipendenza dal formato dei file, rendevano complessa la manipolazione dei dati e mancavano di una base teorica. Nel 1970, Edgar Frank Codd , un dipendente IBM , pubblicò il libro Un modello relazionale di dati per grandi banche dati condivise , un lavoro che presenta i fondamenti teorici dell'organizzazione relazionale . Sulla base del lavoro di EF Codd, IBM sta sviluppando il DBMS System R , che sarà commercializzato alla fine degli anni 1970. Ha lo scopo di dimostrare la fattibilità di un DBMS relazionale . Il linguaggio informatico specifico di questo DBMS è lo Structured Query Language (abbreviato SQL ), definito da IBM e destinato alla gestione dei database relazionali .
Charles Bachman ha ricevuto il Premio Turing nel 1973 per questi contributi alla tecnologia dei database e Edgar Frank Codd ha ricevuto il Premio Turing nel 1981 per le stesse ragioni.
Nel 1978 , ANSI pubblicato la descrizione di architettura ANSI / Sparc che serve da modello di riferimento in relazione alla indipendenza dei dati DBMS.
I due pesi massimi del mercato DBMS nel 2010 che sono IBM DB2 e Oracle Database sono stati immessi sul mercato nel 1979 e sono entrambi basati sul modello relazionale. Lo stesso anno il linguaggio SQL è stato standardizzato dall'ISO .
I motori di ricerca e i data warehouse sono applicazioni informatiche emerse negli anni '90 , che hanno influenzato il mercato dei DBMS. I motori di ricerca hanno richiesto l'elaborazione di informazioni non strutturate scritte in linguaggio naturale. E i data warehouse richiedevano la raccolta e il consolidamento di grandi quantità di informazioni per produrre tabelle riepilogative.
Le agli oggetti orientati e relazionali a oggetti modelli di organizzazione apparso nel 1990. Il primo oggetto-relazionale DBMS erano Postgres , Informix e Oracle Database a 1.995 . Lo standard relativo al linguaggio SQL è stato modificato nel 1999 per poterlo applicare a questo tipo di DBMS.
Un DBMS è composto da molti programmi, tra cui il motore, il catalogo, il processore di query, il linguaggio di comando e gli strumenti:
Gli strumenti DBMS vengono utilizzati per creare report , schermate per l'inserimento di informazioni, importare ed esportare dati da e verso il database e gestire il catalogo. Questi strumenti vengono utilizzati dall'amministratore del database per eseguire backup, ripristinare dati, consentire o negare l'accesso a determinate informazioni e apportare modifiche al contenuto del database: creare, leggere, modificare ed eliminare informazioni, abbreviato CRUD ( creare, leggere in inglese , aggiornare, eliminare ). Questi strumenti vengono utilizzati anche per monitorare l'attività del motore ed eseguire operazioni di messa a punto .
I DBMS di fascia alta contemporanei hanno molte estensioni che forniscono funzionalità ausiliarie, ma la loro struttura rimane simile alla maggior parte dei DBMS.
In un DBMS relazionale, le richieste fatte al DBMS vengono tipicamente elaborate in cinque fasi:
Parte centrale del DBMS, il motore del database esegue le operazioni di registrazione e recupero dei dati. A seconda del DBMS, il database può essere costituito da uno o più file. Il ruolo del motore è di manipolare questi file.
Gli indici sono strutture per velocizzare le operazioni di ricerca, sono mantenuti dal motore del database. Le viste sono tabelle virtuali create da altre tabelle e il contenuto viene gestito dal motore del database. Gestisce inoltre il catalogo, controlla le transazioni, verifica la coerenza delle informazioni e verifica che gli utenti accedano solo alle informazioni autorizzate:
Il motore utilizza i buffer : questa è una posizione di memoria centrale utilizzata per memorizzare temporaneamente le informazioni in transito. Le informazioni vengono raccolte in blocco dai file e quindi inserite nei buffer. Durante le successive letture, le informazioni vengono recuperate dalla memoria buffer esistente, molto più velocemente della lettura di un file. Le operazioni di lettura dei file vengono quindi ridotte e le operazioni di scrittura vengono spostate, il che velocizza il DBMS.
Le operazioni eseguite dal motore sono spesso scritte in un file di registro , che consente loro di essere annullate in caso di incidente - errore o rollback di una transazione.
In un dispositivo di database - che include software applicativo, un DBMS e un database - il modo in cui le informazioni vengono presentate agli utenti differisce dal modo in cui le informazioni sono organizzate e il modo in cui le informazioni sono organizzate differisce dal modo in cui le informazioni vengono presentate agli utenti. le informazioni vengono salvate in file. Questa costruzione a 3 punti si basa sul modello di riferimento ANSI/SPARC .
Ognuna delle 3 viste può essere modificata ad esempio formulando richieste nel linguaggio del DBMS. L'indipendenza dei dati è la capacità di un DBMS di consentire la modifica di una qualsiasi delle tre viste senza richiedere la modifica delle altre viste:
Esiste indipendenza dei dati se il diagramma concettuale può essere modificato senza richiedere modifiche del punto di vista dell'utente o della struttura fisica e se la struttura fisica può essere modificata senza richiedere modifiche del diagramma concettuale o della struttura fisica.
Esistono diverse categorie di utenti DBMS, tra cui ci sono l' amministratore del database , il progettista del database , lo sviluppatore , nonché utenti - più o meno informati - dei sistemi informatici.
L' amministratore del database (inglese database administrator Rep. DBA ) è un esperto in DBMS, si occupa dell'installazione e della manutenzione del DBMS e degli strumenti a corredo annessi. È la persona responsabile dell'integrità, della sicurezza, della disponibilità delle informazioni contenute nei database nonché delle prestazioni del DBMS. Protegge le informazioni da incidenti dovuti a manipolazione impropria, errori di programmazione, uso dannoso o guasti che porterebbero al deterioramento del contenuto dei database. Per fare ciò, l'amministratore del database autorizza o vieta l'accesso alle informazioni e monitora l'attività del DBMS. Effettua regolarmente copie di backup per consentire il recupero dei dati persi o danneggiati ed effettua regolazioni di messa a punto per migliorare le prestazioni del DBMS. L'amministratore utilizza gli strumenti di amministrazione del database o il linguaggio di comando DBMS.
Il progettista del database è la persona che identifica le informazioni che verranno archiviate nel database, le relazioni tra queste informazioni e i vincoli come la presenza o l'assenza di ridondanza. Il progettista del database ha una conoscenza approfondita dell'uso che viene fatto di queste informazioni e delle regole che ne derivano. È responsabile dell'organizzazione della banca dati in modo appropriato, predisponendo le strutture necessarie per la conservazione delle informazioni.
Gli sviluppatori creano applicazioni software e batch in un linguaggio di programmazione di alto livello. Ciascun software è destinato a un'attività specifica, ad esempio la ricerca di libri in una biblioteca, ed è destinato ad altri utenti del DBMS. Lo sviluppatore lavora con una persona che svolge l'attività in questione, al fine di determinare le esigenze caratteristiche di questa attività, quindi determina l' architettura del prodotto e la implementa scrivendo il codice sorgente . Il software include istruzioni che richiamano il DBMS per trovare o modificare le informazioni. Alcuni utenti esperti, che conoscono un linguaggio di programmazione, creano programmi per uso personale.
Gli utenti potenti hanno le conoscenze per utilizzare il linguaggio di comando DBMS e accedere ai dati dal proprio personal computer. Sono stati autorizzati dall'amministratore a visualizzare e modificare determinate informazioni. Gli utenti informati possono cercare, aggiungere, modificare o eliminare i dati utilizzando il linguaggio di comando DBMS, mentre gli utenti non esperti non utilizzano mai il linguaggio di comando ma accedono alle informazioni tramite il software applicativo fornito a tale scopo.
Gli utenti non professionisti accedono alle informazioni tramite il software applicativo. Eseguono comandi o scelgono menu e non conoscono il linguaggio dei comandi o l'organizzazione del database. Le operazioni svolte da questi utenti sono meno sofisticate e limitate alle possibilità offerte dal software applicativo.
DBMS sono complessi e strategici software, utilizzato in un gran numero di applicazioni IT, tra cui l'e-commerce , le cartelle cliniche, i pagamenti, le risorse umane , gestione delle relazioni con i clienti e la logistica, come pure i blog e wiki. , Sono il risultato di decenni di scientifico e ricerca industriale. Il primo DBMS della storia ha fortemente influenzato questo settore di mercato, e le idee di questi pionieri sono ancora ampiamente copiate e riutilizzate dai DBMS contemporanei. Il mercato dei DBMS è molto sottile, dominato da una manciata di prodotti concorrenti di fascia alta.
Il volume di vendita dei DBMS relazionali è stimato tra i 6 ei 10 miliardi di dollari l'anno nel 2005. Nel 2008 i tre tenor di mercato IBM DB2 , Oracle Database e Microsoft SQL Server occupano l'80% del mercato dei DBMS relazionali.
Nel 2002 il mercato dei DBMS è stato suddiviso in 3 segmenti:
Mercato di nicchia nel 2002, il mercato dei DBMS Open Source è stimato a 850 milioni di dollari nel 2008, e secondo le previsioni a 1,2 miliardi di dollari nel 2010, tale costo include licenze, contratti di garanzia e assistenza tecnica. Mentre i DBMS di grandi marche sono apprezzati per applicazioni mission-critical grazie alla loro robustezza, ricchezza e durata , i DBMS open source sono più semplici, non offrendo tutti i fronzoli dei prodotti di grandi marche, sono apprezzati per la loro facilità d'uso e ricercati da piccoli e istituzioni di medie dimensioni. Vari clienti sperano di essere in grado di sostituire costosi DBMS di grandi marche con DBMS open source meno costosi, ma tali sostituzioni sono rare e DBMS MySQL e PostgreSQL vengono utilizzati per nuove applicazioni, a causa delle difficoltà di migrazione .
La scelta del DBMS è spesso una decisione strategica per un'istituzione. Il costo dell'acquisizione di un DBMS che supporti diverse migliaia di utenti e un database di grandi dimensioni può avvicinarsi a 1 milione di dollari . Nel 1993 esistevano diversi DBMS relazionali, e questi erano ritenuti sufficientemente maturi per essere utilizzati in applicazioni strategiche. I prodotti sono complessi, le differenze a volte sono sottili, il che rende difficile la scelta per l'acquirente. Dieci anni dopo la scelta non è più così difficile come prima; il numero di editori DBMS è diminuito a causa delle fusioni e il mercato è dominato da un piccolo numero di grandi attori.
Da un'indagine condotta nel 1993 dalla rivista Network World risulta che i criteri per la scelta dei DBMS più importanti agli occhi degli acquirenti sono l'affidabilità, le prestazioni, la conformità agli standard, la gamma di computer supportati e la facilità di utilizzo. Il prezzo appare solo in decima posizione. Sempre secondo questo sondaggio, il 70% degli acquirenti si dice disposto a pagare tra i 2.000 ei 25.000 dollari per l'acquisizione di un DBMS.
Le domande più frequenti degli acquirenti riguardano le prestazioni, le caratteristiche del linguaggio di comando, il controllo degli accessi simultanei e i tipi di dati disponibili. La questione della performance appare spesso in cima all'elenco degli acquirenti e in fondo all'elenco dei venditori; ecco perché i test ei benchmark sono una pratica comune. Le caratteristiche del linguaggio di comando SQL forniscono informazioni sulla sintassi a cui devono conformarsi le richieste inviate al DBMS. Lo standard SQL è stato modificato più volte, ci sono 3 livelli di conformità e il linguaggio SQL riconosciuto da ogni DBMS sul mercato è simile all'uno o all'altro di questi diversi standard.
Un'azienda di medie dimensioni utilizza attualmente più DBMS contemporaneamente, la scelta del DBMS è raramente anticipata, spesso imposta dall'arrivo di software applicativo e difficile da invertire. L'azienda a volte acquista software applicativo che non funziona su nessuno dei DBMS che già possiede. Succede anche che un'azienda motivi l'acquisto di un nuovo DBMS dal desiderio di utilizzare le tecnologie più recenti e più importanti. Sostituire un vecchio DBMS con uno nuovo è difficile a causa della mancanza di compatibilità tra i diversi prodotti, il che rende necessario adattare il software applicativo al nuovo arrivato. Il risultato è che spesso il software applicativo non è adatto e il vecchio DBMS continua ad essere utilizzato insieme ai nuovi prodotti.
Nome DBMS | Anno | Editor | Caratteristiche | tipo di software | SQL | multivalore | Licenza |
---|---|---|---|---|---|---|---|
derby di apache | 1996 | Apache Software Foundation | incorporato, relazionale, centralizzato | Componente software | Apache | ||
DB2 | 1983 | IBM | per aziende, gruppi di lavoro, privati | cameriere | proprietario | ||
dBase | 1978 | Ashton-Tate | relazionale, per individui | L4G | proprietario | ||
FileMaker Pro | 1985 | FileMaker | relazionale, per gruppi di lavoro | software applicativo | proprietario | ||
4D | 1985 | 4D | relazionale, per gruppi di lavoro e aziende | software applicativo | proprietario | ||
Firebird | diciannove ottantuno | Fondazione Firebird | relazionale, centralizzato, on board, per gruppi di lavoro e aziende | cameriere | interbase | ||
HSQLDB | 2000 | Thomas Mueller | relazionale, embedded, centralizzata, per gruppi di lavoro e individui | Componente software | BSD | ||
HFSQL | 1993 | PC morbido | componente software | proprietario | |||
Informix | diciannove ottantuno | IBM | per aziende, gruppi di lavoro, distribuiti | cameriere | proprietario | ||
Ingres | 1974 | Ingres Corporation | relazionale, spaziale, centralizzato, distribuito | cameriere | GPL | ||
Nascosto | 1997 | InterSystems | oggetto, per aziende, distribuito | cameriere | proprietario | ||
Maria DB | 2009 | Programma Monty Ab | cameriere | GPL | |||
Max DB | 1977 | SAP AG e MySQL AB | oggetto-relazionale, per aziende e gruppi di lavoro, centralizzato | componente software | GPL | ||
accesso Microsoft | 1992 | Microsoft | relazionale, per singoli e gruppi di lavoro | L4G | proprietario | ||
Microsoft SQL Server | 1989 | Microsoft | aziende, gruppi di lavoro, individui, relazionali, distribuiti | cameriere | proprietario | ||
MySQL | 1995 | Oracle Corporation e MySQL AB | centralizzato, integrato, distribuito, per aziende, gruppi di lavoro e individui | cameriere | GPL | ||
OpenOffice.org Base | 2002 | Oracle Corporation | Software applicativo | LGPL | |||
Database Oracle | 1979 | Oracle Corporation | aziende, gruppi di lavoro, individui, relazionali, spaziali, distribuiti | cameriere | proprietario | ||
Paradosso | 1987 | Corel | software applicativo | proprietario | |||
Scegli | 1968 | Sistema di selezione | cameriere | proprietario | |||
PostgreSQL | 1985 | Michael Stonebraker , PostgreSQL Global Development Group | cameriere | BSD | |||
SQLite | 2000 | D. Richard Hipp | incorporato | libreria / componente software | Dominio pubblico | ||
MongoDB | 2007 | MongoDB | NoSQL orientato ai documenti | cameriere | SSPL | ||
Cassandra | 2008 | Fondazione Apache | NoSQL orientato alle colonne | Licenza Apache 2 | |||
divano | 2010 | divano | NoSQL orientato ai documenti | ||||
Ricerca elastica | 2004 | Ricerca elastica | Indice inverso NoSQL | ||||
HBase | 2006 | Hortonworks | NoSQL orientato alle colonne | ||||
Redis | 2009 | Laboratori Redis | NoSQL orientato al valore-chiave | ||||
Riak | 2009 | Tecnologie Basho | NoSQL orientato al valore-chiave | ||||
DynamoDB | 2012 | Amazon | NoSQL e documenti orientati al valore-chiave | ||||
Volo della morte | 2009 | NoSQL orientato al valore-chiave | |||||
Tavolo grande | 2005 | NoSQL orientato alle colonne | proprietario | ||||
Memcache DB | NoSQL, in memoria | BSD | |||||
Vertica | 2005 | NoSQL orientato alle colonne | proprietario | ||||
Neo4j | 2010 | Neotecnologia | Grafico orientato a NoSQL | GNUv3 e AGPL-3.0 | |||
Database Oracle NoSQL | Oracle Corporation | NoSQL |