Il database è una raccolta di dati che un software dedicato, il Data Base Management System (DBMS), gestisce e organizza. Il database è la base di dati in forma strutturata, mentre il DBMS è lo strumento che serve a creare questa struttura.
Gli utenti non hanno a che fare con la rappresentazione fisica dei dati ovvero come vengono collezionati, ma solo con la loro rappresentazione logica. Il DataBase Management System (DBMS), uno degli strumenti di lavoro del Data scientist, può essere interpretato come il filtro fra la memorizzazione e la loro rappresentazione logica ovvero fra la rappresentazione fisica e ciò che gli utenti vedono.
Cos’è il Data Base Management System (DBMS)
Il Data Base Management System (DBMS), in italiano sistema di gestione di database, è un complesso sistema software che permette di memorizzare, organizzare e recuperare i dati (campi, record, archivi) in un database.
Il DBMS gestisce i dati in entrata, li organizza e offre i modi per consentire a utenti o programmi di modificarli o estrarli.
Sono sistemi informatici ideati per creare, manipolare, interrogazione e gestire i database in maniera efficiente e veloce.
Come funziona il sistema di gestione di database
Un DBMS funziona così:
- raccoglie i metadati che includono informazioni sui dati contenuti nell’archivio;
- il dizionario dei dati, che funziona da libretto d’istruzioni (per orientare utenti e applicazioni verso un uso corretto e consapevole dei dati memorizzati) interpreta in modo univoco la struttura, gli scopi e il valore dei dati presenti all’interno del database;
- crea, modifica o cancella le definizioni delle tabelle (indicando per esempio quali colonne debba avere una tabella), degli utenti, delle autorizzazioni mediante il linguaggio di definizione dei dati, in modo da delineare gli schemi logici, i presupposti per il funzionamento di un database, senza però gestire direttamente i dati;
- cancella, immette, cambia e legge i record di dati presenti in un database, consentendo agli utenti esterni di inserire dati nel data base, entro i vincoli del modulo precedente, e di raggiungere le informazioni che servono a ciascuna singola applicazione per avere accesso al database.
Ideato per sistemi multi-utente, il sistema di gestione di database funziona archiviando i dati in una struttura gerarchica, mentre un RDBMS li immagazzina in tavole.
Il data base management system comprende:
- un kernel in grado di supportare il multitasking in maniera nativa;
- una connessione.
Il DBMS accoglie le richieste di dati da parte del programma applicativo e dà istruzioni al sistema operativo per reperire i dati, trasferendoli.
Gli utenti possono non solo aggiornare e immettere nuovi dati nel DBMS, ma anche interrogare il database attraverso query. I report consentono di interrogare interattivamente il database e di esaminarne i dati.
L’invio delle istruzioni al DBMS può seguire due modalità:
- invocazione interattiva: il programma ricevere le istruzioni SQL, le trasmette al DBMS e visualizza i risultati all’utente;
- invocazione mediante programma applicativo.
Il vantaggio dei DBMS consiste nell’adeguare agevolmente i sistemi informativi al mutare delle richieste dell’organizzazione, per esempio introducendo nuove categorie senza creare sconvolgimenti.
Caratteristiche di un Data Base Management System
DBMS, che consente di definire, realizzare, mantenere e controllare l’accesso a un database, ha le seguenti funzionalità caratteristiche che fanno sì che le applicazioni attingano a una fonte dati sicura, affidabile e scalabile:
- accesso concorrente (per controllare l’accesso concorrente alle informazioni);
- sicurezza (il sistema di sicurezza evita che utenti privi di autorizzazione effettuino l’accesso – all’intero database o a un suo sottoinsieme – o l’aggiornamento: dunque, alcuni utenti possono visualizzare solo alcuni dati, magari invisibili ad altri utenti, in base ai permessi, protetti da password);
- backup e recovery;
- integrità (un blocco del record mantiene l’integrità del database impedendo a più utenti di effettuare in simultanea la modifica dello stesso record; le proprietà Acid rappresentano i vincoli d’integrità referenziale);
- descrizione dei dati.
Un Data Base Management System consente infatti di:
- accedere ai dati mediante un modello;
- condividere e integrare dati fra applicazioni diverse;
- monitorare l’accesso concorrente ai dati;
- garantire la sicurezza e l’integrità dei dati.
Quali sono i linguaggi di un DBMS
Un DBMS utilizza i seguenti linguaggi:
- SQL (Structured Query Language): il linguaggio impiegato per recuperare, in maniera semplice ed efficiente, le informazioni che appaiono nel Database Management System di tipo relazionale;
- R nei RDBMS
- C++
- Java
- C#
- Python (supporta l’object-oriented come paradigma di programmazione)
- Smalltalk (usato in GemStone)
- LISP (impiegato in Gbase).
- Erlang è il linguaggio con cui Amazon ha scritto SimpleDB.
C++, Python (open source), Java, C#, Smalltalk e LISP sono linguaggi di programmazione object-oriented.
Tipi di Data Base Management System
I database si distinguono per i modelli utilizzati per i dati:
- gerarchici (modello ad albero);
- reticolari (modello a rete);
- relazionali (modello a tabella: quella bidimensionale è formata da righe e colonne);
- object-oriented (modello in classi di oggetti, che contengono sia i dati che le operazioni e che possono trasmettere proprietà ad altri oggetti);
- orientati ai documenti (document store per gestire dati semi-strutturati).
I primi tre sono considerati tradizionali e differiscono dal database a oggetti perché le operazioni da svolgere sui dati sono affidate alle applicazioni che li usano, mentre nel database object-oriented i dati non sono passivi e gli oggetti (complessi, dotati di proprietà e metodi diversi) sanno come comportarsi e includono sia i dati che le operazioni relative, bypassando applicazioni esterne. I database gerarchici e reticolari sono ormai in pensione.
I Database Management System possono essere relazionali oppure object-oriented.
Un database relazionale è formato da un insieme di tabelle corrispondenti alle relazioni del modello relazionale.
Esempi di data management system
Esempi di database management system sono:
- Oracle MySQL
- PostgreSQL
- Microsoft SQL Server
- Oracle Database
- Microsoft Access
Sono DBMS relazionali: MS SQL Server, IBM DB2, Oracle, MySQL e Microsoft Access.
Sono DBMS ad oggetti: Versant Object Database, Objectivity/DB, ObjectStore, Caché e ZODB.
Oracle MySQL
MySQL è un data base management system relazionale gratuito e open source con client a riga di comando e un server, disponibili sia per sistemi Unix – Linux che per Windows. Piattaforme di riferimento: Linux e Oracle Solaris.
PostgreSQL
PostgreSQL è DBMS relazionale ad oggetti rilasciato con licenza libera (licenza BSD). Utilizza il linguaggio C. Il mapping relazionale a oggetti (object-relational mapping in inglese) permette di impiegare oggetti basati su linguaggi di programmazione orientati a oggetti anche nei sistemi relazionali. La transazione integrata e il supporto di Mvcc (Multiversion concurrency control) lo rendono ideale per offrire prestazioni efficienti di accesso simultaneo nel banking online.
Microsoft SQL Server
Microsoft SQL Server è un DBMS relazionale, sviluppato da Microsoft. Supporta i linguaggi C, C#, C++.
Oracle Database
Sviluppato in linguaggio C, Oracle Database fa parte dei sistemi di database basati sul modello relazionale (RDBMS)
SimpleDB
Amazon ha creato il proprio DBMS con SimpleDB (un datastore NoSql sviluppato in Erlang) per i servizi cloud dell’azienda.