Che cosa sono i database?
Definizioni, tipi ed esempi di database.
Che cosa sono i database?
In base alla definizione più semplice, un database è una qualsiasi raccolta di informazioni correlate. Quando scrivi una lista della spesa su un pezzo di carta, stai creando un piccolo database analogico. Che cos'è tuttavia un database in informatica? In tale contesto si definisce "database" una raccolta di informazioni archiviate come dati in un sistema informatico, ad esempio l'inventario di un negozio di alimentari locale.
Per cosa vengono usati i database?
I database vengono usati per archiviare e organizzare i dati in modo che la gestione e l'accesso risultino più facili. Quando una raccolta di dati cresce e diventa più complessa, diventa più difficile mantenere tali dati organizzati, accessibili e sicuri. Per semplificare il processo, puoi usare sistemi di gestione di database che includono un livello di strumenti di gestione di database.
Che cosa sono i dati?
Il termine dati indica qualsiasi informazione acquisita e archiviata in merito a una singola persona, posizione, cosa oppure oggetto, ovvero entità, oltre agli attributi di tale entità.
Se ad esempio acquisisci e archivi informazioni sui ristoranti locali, ogni ristorante è un'entità e il nome, l'indirizzo e gli orari di attività corrispondenti sono attributi di tale entità. Tutte le informazioni raccolte e archiviate sul tuo ristorante preferito sono dati.
Tipi di database
I tipi di database vengono raggruppati genericamente in database relazionali e non relazionali. I database relazionali sono altamente strutturati e comprendono un linguaggio di programmazione definito Structured Query Language (SQL). I database non relazionali sono estremamente diversi e supportano svariate strutture dei dati. Poiché molti database non relazionali non usano SQL, vengono spesso definiti database NoSQL.
Tipi di strutture dei dati
Le strutture a tabella sono strutture di database relazionali che organizzano dati in righe e colonne: le righe contengono le entità mentre le colonne contengono gli attributi delle entità. Le tabelle estese in larghezza o gli archivi a colonne larghe usano colonne di tipo sparse con attributi vuoti per aumentare significativamente il numero totale di colonne che possono essere incluse nella tabella. Poiché alcuni spazi sono vuoti, le tabelle estese in larghezza sono un esempio di struttura di database relazionale.
Le strutture lineari organizzano gli elementi in una sequenza.
Matrice
Elenco collegato
Albero binario
Le strutture ad albero organizzano gli elementi del database in un database gerarchico di nodi in relazioni padre-figlio che derivano da un nodo radice.
Grafo
Le strutture grafo organizzano gli elementi del database in una rete non gerarchica di nodi con relazioni reciproche complesse.
Tabella hash
Le strutture basate su hash mappano le chiavi ai valori usando funzioni hash che associano i dati correlati assegnando indici a tabelle hash.
Database orientati ai documenti
I database orientati ai documenti organizzano quantità di informazioni su un'entità in un singolo oggetto (il documento) che è separato dagli altri oggetti. Non è necessario che gli oggetti siano mappati in relazione a ogni altro oggetto e i singoli oggetti possono essere modificati senza influire sugli altri oggetti.
Database relazionali
In un database relazionale, il tipo più comune, i dati vengono organizzati in tabelle che includono informazioni su ogni entità e rappresentano categorie predefinite tramite righe e colonne. È possibile accedere in modo efficiente e flessibile a questi dati strutturati.
Gli esempi di database relazionali includono SQL Server, Azure SQL, MySQL, PostgreSQL e MariaDB.
Database non relazionali
I database non relazionali archiviano dati non strutturati o semistrutturati. Non usano tabelle con colonne e righe, usate dai database relazionali. Usano invece un modello di archiviazione ottimizzato per i requisiti specifici del tipo di dati da archiviare. I database non relazionali consentono l'accesso, l'analisi e l'aggiornamento rapidi di set più grandi di dati distribuiti.
Gli esempi di database non relazionali includono MongoDB, Azure Cosmos DB, DocumentDB, Cassandra, Couchbase, HBase, Redise Neo4j.
Alcuni database non relazionali vengono definiti database NoSQL. NoSQL indica archivi dati che non usano SQL o non usano solo SQL per le query. I database NoSQL usano invece altri linguaggi di programmazione e costrutti per eseguire query sui dati. Molti database NoSQL supportano query compatibili con SQL, ma la modalità di esecuzione delle query risulta in genere diversa da modo in cui un database relazionale tradizionale eseguirebbe la stessa query SQL.
Un tipo di database non relazionale, ovvero un database a oggetti, usa la programmazione orientata agli oggetti. Gli oggetti sono codificati con uno stato (dati effettivi) che viene archiviato in un campo o in una variabile e con un comportamento che viene visualizzato tramite un metodo o una funzione. Gli oggetti possono essere conservati per sempre nelle risorse di archiviazione permanenti e possono essere letti e mappati direttamente senza alcuna API o alcuno strumento, offrendo quindi un accesso più rapido ai dati e prestazioni migliori. I database a oggetti tuttavia non sono diffusi quanto gli altri tipi di database e possono risultare complessi da supportare.
Database in memoria e cache
Tutti i dati in un database in memoria vengono archiviati nella RAM (Random-Access Memory) di un computer. Quando esegui query o aggiorni questo tipo di database, accedi direttamente alla memoria principale. Non viene coinvolto alcun disco. I dati vengono caricati rapidamente perché l'accesso alla memoria principale, che si trova vicino al processore sulla scheda madre, risulta più veloce rispetto all'accesso a un disco.
I database in memoria vengono usati comunemente per archiviare copie di informazioni ad accesso frequente, tra cui prezzi o dati di inventario. Questo processo viene definito memorizzazione nella cache. Quando memorizzi dati nella cache, archivi una copia dei dati in una posizione temporanea in modo che vengano caricati più rapidamente alla richiesta successiva. Scopri di più sulla memorizzazione nella cache.
Esempi di database
I database possono sembrare misteri invisibili, ma la maggior parte delle persone interagisce ogni giorno con i database. Ecco alcuni esempi comuni di database relazionali, database NoSQL e database in memoria:
Transazioni finanziarie
Le banche usano i database per tenere traccia delle transazioni dei clienti, dalle richieste di saldo ai trasferimenti tra conti. Queste transazioni devono essere eseguite quasi immediatamente e i dati da quantità elevate di transazioni devono essere sempre aggiornati. Per queste finalità le banche usano sistemi di elaborazione delle transazioni online creati con database relazionali, che possono gestire un numero elevato di clienti, modifiche frequenti ai dati dalle transazioni e tempi di risposta rapidi.
Cataloghi di e-commerce
Se hai un sito Web di e-commerce, il tuo catalogo include singoli prodotti, ognuno con una varietà specifica di attributi. Un database orientato ai documenti, ovvero un esempio di database non relazionale, usa singoli documenti per descrivere tutti gli attributi di un singolo prodotto. È possibile cambiare gli attributi nel documento senza influire sugli altri prodotti. I database in memoria vengono spesso usati per memorizzare nella cache i dati di e-commerce ad accesso frequente, tra cui inventario e prezzi, per accelerare il recupero dati e ridurre il carico sul database.
Social network
Quando inizi a partecipare a un social network, le tue informazioni vengono aggiunte a un database relazionale di tutti gli utenti che usano tale social network. Quando interagisci con altre persone sul social network, diventi parte di un grafo sociale. Puoi quindi visualizzare un elenco filtrato di amici o di contatti professionali e scoprire nuove persone conosciute da questi amici o contatti professionali.
Risultati personalizzati
I database non relazionali favoriscono la personalizzazione online, che è diventata così diffusa da essere quasi difficile da notare. Se prenoti un volo tramite un sito Web dedicato ai viaggi, vedrai anche opzioni per la prenotazione di alberghi e auto a noleggio. Il database del sito Web contiene numerose informazioni non strutturate, tra cui i dettagli del volo, le preferenze di viaggio, le prenotazioni precedenti di auto o alberghi, che vengono usate per fornirti suggerimenti personalizzati per permetterti di risparmiare tempo, denaro o fatica. I database in memoria vengono analogamente usati come archivi di sessioni per includere in modo efficiente i dati utente temporanei, tra cui preferenze di ricerca o carrello acquisti, mentre gli utenti usano l'applicazione.
Analisi aziendale
Quando le organizzazioni vogliono ottenere informazioni dettagliate dai dati, i database relazionali risultano utili per la gestione delle analisi. È ad esempio possibile che un help desk tecnologico tenga traccia dei problemi dei clienti in diverse dimensioni, tra cui tipo di problema, tempo necessario per la risoluzione del problema e soddisfazione dei clienti. Un database relazionale che usa una struttura a tabella organizza i dati relativi ai problemi dei clienti usando solo due dimensioni alla volta, ma con un sistema di elaborazione analitica online l'help desk può esaminare più di una tabella alla volta, consentendo all'analisi multidimensionale di elaborare grandi quantità di dati a velocità elevate.
Sistemi di gestione di database
Gli amministratori del database usano sistemi di gestione di database per controllare i dati, in particolare quando lavorano con i Big Data. I Big Data sono volumi elevati di dati strutturati e non strutturati che vengono spesso ricevuti dal sistema in tempo reale o in tempo quasi reale. Un sistema di gestione di database contribuisce anche alla gestione dei dati usati in più applicazioni o dei dati che si trovano in più posizioni.
I diversi sistemi di gestione di database offrono livelli diversi di organizzazione, scalabilità e applicazione. Oltre al tipo di dati da organizzare e alla modalità di accesso ai dati che vuoi usare, il sistema di gestione di database usato dipende anche dalla posizione in cui si trovano i dati, dal tipo di architettura usato dal database e dalla modalità che si prevede di usare per il dimensionamento.
I tuoi dati si trovano in locale, sul cloud o in entrambe le posizioni?
Nei database locali i dati si trovano in hardware in sede privato, definito spesso cloud privato. Per aggiungere capacità dati, gli amministratori del database devono assicurare che i server in sede abbiano spazio disponibile sufficiente o devono espandere l'infrastruttura con nuovo hardware per creare spazio.
Nei database basati sul cloud i dati strutturati o non strutturati si trovano su una piattaforma di cloud computing privata, pubblica o ibrida, ad esempio una piattaforma che combina archiviazione nel cloud privata e pubblica. Poiché i database cloud sono stati progettati per un ambiente virtualizzato, offrono scalabilità e disponibilità elevate. Contribuiscono anche alla riduzione dei costi, perché non devi acquistare una quantità elevata di hardware e paghi solo per le risorse di archiviazione usate.
L'architettura del tuo database è centralizzata, distribuita o federata?
In un database centralizzato tutti i dati si trovano in un sistema, in un'unica posizione. Questo sistema unico costituisce il punto di accesso per tutti gli utenti.
Un database distribuito può includere tipi di database relazionali e non relazionali. Nei database distribuiti i dati vengono archiviati in più posizioni fisiche, in più computer locali o distribuiti in una rete di computer interconnessi.
In un database federato alcuni database distinti in esecuzione su server indipendenti vengono unificati in un oggetto di grandi dimensioni. Una blockchain è un tipo di database federato, usato per gestire in modo sicuro i libri mastri finanziari e altri record di transazioni.
Espanderai i dati mediante scalabilità verticale oppure orizzontale?
L'aumento delle prestazioni, definito anche scalabilità verticale, è il processo di aggiunta di risorse, ad esempio memoria o CPU più potenti, a un server esistente.
L'aumento del numero di istanze, definito anche scalabilità orizzontale, aggiunge più computer al tuo pool di risorse.
L'uso della scalabilità orizzontale invece della scalabilità verticale estende il ciclo di vita dell'hardware esistente, ti permette di eseguire l'aggiornamento senza lock-in dei fornitori, riduce i costi e crea un potenziale a lungo termine per la flessibilità.
Database di Azure
Semplifica le operazioni sui dati con database completamente gestiti che automatizzano la scalabilità, la disponibilità e la sicurezza. Scegli tra database relazionali, NoSQL e in memoria che si estendono su motori proprietari e open source.
Esplora database in Azure e trova quello che ti serve
Scopri come eseguire la migrazione dei database ad Azure
Crea un database cloud gestito con il tuo account Azure gratuito
Scopri la famiglia di database di Azure SQL
Unifica il tuo portfolio SQL senza sacrificare la compatibilità. Esegui la migrazione, modernizza e distribuisci applicazioni a modo tuo, dai dispositivi perimetrali al cloud, usando una tecnologia SQL Server familiare.
Esplora database in Azure e trova quello che ti serve
Scopri di più sul database SQL di Azure
Scopri i concetti fondamentali di Azure SQL in un percorso di apprendimento guidato
Dimensiona senza timore con Database di Azure per PostgreSQL
Database di Azure per PostgreSQL ti aiuta a dimensionare in modo rapido e sicuro il tuo carico di lavoro grazie a disponibilità elevata, ottimizzazione delle prestazioni basata su intelligenza artificiale e sicurezza avanzata dei database.
Crea app a prestazioni elevate con Azure Cosmos DB
Azure Cosmos DB è un database NoSQL completamente gestito con API aperte e velocità garantita a qualsiasi scala.
Gestisci in modo efficiente il traffico elevato con Cache di Azure per Redis
Cache di Azure per Redis ti aiuta a gestire migliaia di utenti simultanei con velocità quasi immediata grazie all'aggiunta di un livello di memorizzazione rapida nella cache all'architettura della tua app.
Inizia a creare con Azure
Prova i servizi di cloud computing di Azure gratuitamente per un massimo di 30 giorni oppure inizia a usare la versione con pagamento in base al consumo. Senza alcun impegno iniziale. Annulla quando vuoi.