Un database relazionale è una raccolta di punti dati tra i quali sussistono relazioni predefinite.

Il modello relazionale organizza i dati in tabelle, in cui ogni riga rappresenta un singolo record e ogni colonna è costituita da attributi che contengono valori. Questa struttura tabulare del database semplifica la creazione di relazioni tra i punti dati, in modo da poter accedere alle informazioni in modi diversi senza dover riorganizzare i dati stessi.

È possibile unire le tabelle in un database relazionale per ottenere informazioni più approfondite sull'interconnessione tra diversi punti dati. Ad esempio, nella tabella clienti sono presenti colonne nome e indirizzo con valori di riga John e California. Allo stesso modo, la tabella prodotti ha colonne nome e costo con valori di riga shoes e $12. Unendo la tabella clienti alla tabella prodotti, è possibile identificare i prodotti più popolari che i clienti acquistano con maggiore frequenza.

In breve, un database relazionale è un modo per archiviare e accedere a dati con relazioni predefinite.

Cos'è un sistema di gestione di database relazionali

Un sistema di gestione di database relazionali (RDBMS) è un livello software di strumenti e servizi capace di gestire le tabelle relazionali. In pratica, i termini RDBMS e database relazionale sono considerati sinonimi. Un database relazionale fornisce un'interfaccia coerente tra applicazioni, utenti e lo stesso database relazionale. Le organizzazioni utilizzano gli RDBMS per gestire grandi quantità di informazioni aziendali fondamentali provenienti da vari dipartimenti.

Più utenti possono lavorare con lo stesso database, in modi diversi. Possono, ad esempio, eseguire operazioni sul database e aggregare punti dati chiave senza creare ridondanza dei dati. I sistemi di gestione di database relazionali offrono inoltre all'amministratore del database un maggiore controllo sull'accesso ai dati.

Perché i database relazionali sono importanti

Dall'invenzione dei computer, la gestione e l'archiviazione dei dati su macchine ha rappresentato un campo di ricerca in continuo sviluppo. Prima dei database relazionali, le organizzazioni utilizzavano un sistema di database gerarchico, simile alle cartelle di un computer. Questi primi sistemi di database erano in grado di organizzare grandi volumi di dati. Tuttavia, apparivano abbastanza limitati nello scoprire le relazioni tra i dati. Erano inoltre complessi, proprietari di particolari applicazioni e richiedevano competenze tecniche per essere utilizzati.

Il modello di database relazionale è nato in risposta a questi problemi. Era capace di separare l'archiviazione di dati fisica dalla gestione e dall'utilizzo del database. I moderni database relazionali consentono agli utenti di archiviare e recuperare i dati senza dover gestire l'archiviazione di dati fisica. È inoltre possibile manipolare le strutture logiche di dati a livello di programmazione.

Quali sono i vantaggi di un database relazionale

Il vantaggio principale del modello di dati relazionale sta nella capacità di ricavare informazioni significative dai dati. Ad esempio, è possibile contare, ordinare e raggruppare i dati in una tabella, nonché eseguire operazioni matematiche e generare report complessi. Pertanto, i sistemi di database relazionali rimangono oggi i sistemi più utilizzati per l'archiviazione di dati. Di seguito sono riportati altri vantaggi.

Integrità dei dati

L'integrità dei dati si riferisce alla completezza, all'accuratezza e alla coerenza globali dei dati. I database relazionali usano un insieme di vincoli per imporre l'integrità dei dati nel database. Tali vincoli includono una chiave primaria, una chiave esterna, un vincolo "Not NULL", "Unique", "Default" e vincoli "Check".

Questi vincoli di integrità aiutano ad applicare le regole aziendali ai dati nelle tabelle, per garantire accuratezza e affidabilità dei dati. Inoltre, la maggior parte dei database relazionali permette di incorporare un codice personalizzato in trigger che vengono eseguiti in base a un'operazione su un punto dati nel database. Il codice personalizzato può anche essere incorporato in procedure archiviate che vengono eseguite quando richiamate da un client o da un'applicazione.

Sicurezza

La maggior parte dei sistemi di gestione di database relazionali dispone di sofisticati controlli di accesso. Gli amministratori del database possono determinare con precisione chi ottiene quale accesso e a quali dati. È possibile limitare l'accesso alla lettura, alla modifica e all'eliminazione dei dati anche a livello di singola cella. Tale controllo granulare degli accessi rende i database relazionali molto sicuri.

Backup e ripristino di emergenza

La maggior parte dei database relazionali dispone di funzionalità di importazione ed esportazione, in modo da poter creare rapidamente backup dei dati. I moderni database relazionali basati su cloud eseguono il mirroring continuo, così da poter ripristinare i dati persi in pochi secondi o anche meno.

Supporto della community

Diverse tecnologie di database relazionali sono open source e gratuite. I database open source dispongono di community attive che migliorano e adattano continuamente caratteristiche e funzionalità. Gli sviluppatori e i data engineer possono accedere a vari strumenti e software che rendono i database relazionali molto comodi da usare.

Come funzionano i database relazionali

I database relazionali forniscono un ambiente da cui le applicazioni accedono ai dati, riassemblandoli in vari modi senza dover riorganizzare le tabelle di dati all'interno del codice dell'applicazione. Di seguito sono riportate alcune importanti funzionalità di un sistema di database relazionale.

Modello di dati

Il database relazionale è costituito da tabelle che rappresentano oggetti o concetti del mondo reale, spesso definiti entità. Ogni colonna in una tabella contiene un determinato tipo di dati, conosciuti col nome di attributi, mentre il valore effettivo di un attributo è archiviato in un campo. Le righe e le colonne in una tabella rappresentano una raccolta di valori correlati di un oggetto o entità.

È possibile contrassegnare ogni riga di una tabella con un identificatore univoco chiamato chiave primaria. Una chiave esterna fa riferimento alla chiave primaria di un'altra tabella esistente che crea una connessione logica. Le righe tra più tabelle sono quindi correlate tra loro attraverso una coppia chiave primaria/chiave esterna. Ad esempio, ogni riga di una tabella ordini può contenere una chiave esterna con l'ID cliente, che identifica la riga nella tabella dei clienti, che contiene tutte le informazioni sul cliente.

SQL

Structured Query Language (SQL) è l'interfaccia principale usata per comunicare con i database relazionali. SQL è diventato uno standard dell'American National Standards Institute (ANSI) nel 1986. Tutti i motori di database relazionali più diffusi supportano lo standard ANSI SQL. È possibile usarlo per aggiornare, eliminare o archiviare dati, recuperare sottoinsiemi di dati e gestire tutti gli aspetti del database relazionale.

SQL è abbastanza facile da imparare in quanto utilizza parole chiave inglesi comuni nelle sue istruzioni. Inoltre si integra bene con diversi linguaggi di programmazione. Ad esempio, si possono incorporare query SQL con il linguaggio di programmazione Java per creare applicazioni di elaborazione dati ad alte prestazioni con i principali sistemi di database SQL.

Transazioni

Una transazione di database relazionale è costituita da una o più istruzioni SQL eseguite come sequenza di operazioni e da una singola unità logica di lavoro. Le transazioni forniscono una proposta "tutto o niente", il che significa che l'intera transazione deve essere completata come una singola unità. Se il sistema di gestione di database relazionali non è in grado di completare alcuna parte della transazione, nessuno dei singoli componenti viene eseguito. Nella terminologia dei modelli relazionali, il risultato di una transazione è un COMMIT o un ROLLBACK. Il sistema di gestione del database considera ogni transazione in modo coerente e affidabile, indipendente e isolato dalle altre transazioni.

Conformità ad ACID

Per assicurare l'integrità dei dati, tutte le transazioni dei database relazionali devono supportare le proprietà definite dall'acronimo ACID: Atomicity (atomicità), Consistency (coerenza), Isolation (isolamento), Durability (durabilità).

Atomicità
L'atomicità richiede che l'intera transazione venga eseguita correttamente. Se una parte della transazione fallisce, tutte le modifiche apportate nell'ambito della transazione vengono annullate.

Coerenza
La coerenza richiede che i dati scritti nel database relazionale come parte della transazione rispettino tutte le regole e le restrizioni definite, inclusi vincoli, catene e trigger.

Isolamento
L'isolamento richiede che ogni transazione sia indipendente. Quando più utenti cercano di modificare contemporaneamente i dati in un database relazionale, i meccanismi di controllo concomitanti impediscono loro di sovrascrivere le reciproche modifiche.

Durabilità
La durabilità richiede che tutte le modifiche apportate al database relazionale siano permanenti dopo il completamento della transazione.

Quali sono i diversi tipi di database

Esistono molti tipi diversi di database, progettati per ottimizzare la flessibilità e la scalabilità per determinati modelli di dati. Esistono database:

  • Relazionali: i dati vengono archiviati in formato tabulare utilizzando righe per i singoli record e colonne per memorizzare attributi o punti dati relativi ai record.
  • Chiave-valore: i dati vengono archiviati in un formato di dizionario, con una chiave e un valore per ogni elemento.
  • Documentali: i dati vengono archiviati come documenti utilizzando formati JSON, XML o un altro formato per dati semistrutturati.
  • Grafici: i dati vengono archiviati come un grafico della conoscenza utilizzando nodi, edge per definire la relazione tra i nodi, e proprietà che archiviano singoli punti dati.

Qual è la differenza tra database relazionali e non relazionali

La differenza tra database relazionali e non relazionali (noti anche come NoSQL) ha a che fare con la struttura dei dati che contengono. Un modello di database relazionale organizza i dati in tabelle, indici e viste. Questa struttura tabulare semplifica la creazione, la lettura, la modifica e l'eliminazione dei dati pertinenti utilizzando un linguaggio di interrogazione come SQL. La struttura di ogni riga è la stessa di un foglio di calcolo.

Un database non relazionale non utilizza una struttura dati tabulare. Infatti, i dati possono essere archiviati come coppie chiave-valore, JSON, grafici o qualsiasi altro tipo di struttura dati. Molti database non relazionali sono anche chiamati database NoSQL, dal momento che i dati vengono archiviati e interrogati in un modo che non richiede l'utilizzo di SQL.

I database non relazionali, o NoSQL, sono appositamente realizzati per modelli di dati specifici e hanno schemi flessibili per creare applicazioni moderne. Si sono affermati per la facilità di sviluppo, la funzionalità e il dimensionamento delle prestazioni. Tra le differenze, rientrano:

Meccanismo di archiviazione di dati

I database relazionali archiviano i dati strutturati in righe e colonne basate su regole. Al contrario, i database NoSQL archiviano singoli elementi di dati in file separati.

Struttura flessibile

I database relazionali archiviano i dati in forma tabulare e seguono regole rigide relative alle varietà dei dati e alle relazioni tra tabelle. I database non relazionali offrono maggiore flessibilità perché non richiedono dati strutturati. Possono essere usati per archiviare file, video e altri contenuti non strutturati.

Meccanismo di integrità dei dati

Un modello di database relazionale segue rigide proprietà ACID. In genere, i database non relazionali offrono un più flessibile modello BASE: Basically Available (disponibile nella maggior parte dei casi) Soft state (stato instabile), Eventual consistency (coerenza finale). Garantiscono la disponibilità ma non una forte coerenza. Lo stato del database può cambiare nel tempo e alla fine diventare coerente. I moderni database non relazionali offrono anche una forte coerenza ad ACID, alta disponibilità e altro ancora.

Cosa considerare quando si sceglie un database relazionale

I casi d'uso dei database relazionali possono variare a seconda del tipo e del volume di dati archiviati e del livello di prestazioni richiesto per accedervi. Per questo motivo sono stati sviluppati diversi motori di database relazionali, da Amazon Aurora, Oracle e Microsoft SQL Server fino a MySQL e PostgreSQL, ciascuno con i propri vantaggi e svantaggi.

Quando si sceglie un database relazionale, è importante considerare un provider di servizi cloud gestiti che lo supporti. Amazon Relational Database Service (RDS) è un servizio di database completamente gestito che gestisce il provisioning, l'applicazione di patch, i backup e altre attività essenziali per i database relazionali più diffusi. Ciò significa che è possibile scegliere un motore di database che soddisfi i casi d'uso senza dover badare ai requisiti di manutenzione.

In che modo AWS può supportare i requisiti del tuo sistema di gestione di database relazionali

Amazon Relational Database Service (Amazon RDS) è una raccolta di servizi gestiti che semplifica la configurazione, l'utilizzo e il dimensionamento di un database relazionale nel cloud. I database cloud offrono molti vantaggi come prestazioni, dimensionamento ed efficienza in termini di costi. Di seguito sono riportati alcuni esempi di motori di database relazionali su Amazon RDS.

Amazon Aurora
Amazon Aurora è un motore di database relazionale compatibile con MySQL e PostgreSQL. Unisce la velocità e la disponibilità dei database commerciali di fascia alta con la semplicità e la convenienza dei database open source. Amazon Aurora offre una velocità di trasmissione effettiva fino a 5 volte maggiore su MySQL e 3 volte maggiore su PostgreSQL a un decimo del costo dei database commerciali.

Oracle
Amazon RDS per Oracle permette di implementare più versioni del database Oracle in pochi minuti ricorrendo a una capacità hardware ridimensionabile a prezzi contenuti. È possibile usare le licenze Oracle esistenti oppure pagare l'utilizzo delle licenze in base al consumo orario. RDS offre la libertà di dedicarsi allo sviluppo delle applicazioni gestendo attività complesse di amministrazione dei database, tra cui provisioning, backup, applicazione di patch, monitoraggio e dimensionamento hardware.

Microsoft SQL Server
Amazon RDS per SQL Server semplifica la configurazione, l'utilizzo e il dimensionamento di SQL Server nel cloud. È possibile implementare più edizioni di SQL Server, tra cui Express, Web, Standard ed Enterprise. Poiché Amazon RDS per SQL Server offre accesso diretto alle funzionalità native di SQL Server, gli strumenti e le tue applicazioni funzioneranno senza alcuna modifica.

MySQL
MySQL è un sistema di gestione di database relazionali open source usato da moltissime applicazioni basate sul web. Amazon RDS per MySQL offre le caratteristiche di un comune motore di database MySQL. Ciò significa che il codice, le applicazioni e gli strumenti già in uso con i database esistenti possono essere usati con Amazon RDS senza alcuna modifica.

PostgreSQL
PostgreSQL è un sistema di database relazionali a oggetti open source che dà particolare importanza all'estensibilità e alla conformità agli standard. Amazon RDS per PostgreSQL gestisce attività amministrative del database indifferenziate e dispendiose in termini di tempo, come l'installazione del software PostgreSQL, la gestione dell'archiviazione e gli aggiornamenti. È possibile implementare e iniziare in pochi minuti.

MariaDB
MariaDB è un motore di database, fork di MySQL, compatibile con MySQL. È stato cerato dagli stessi sviluppatori di MySQL. Amazon RDS per MariaDB facilita la configurazione, l'utilizzo e il dimensionamento delle implementazioni MariaDB nel cloud. Con Amazon RDS è possibile implementare database MariaDB scalabili in pochi minuti impiegando hardware poco costoso e ridimensionabile.

Inizia a usare il tuo database relazionale su AWS creando un account gratuito oggi stesso!

Approfondisci Amazon Aurora e le sue innovazioni
Modelli di progettazione HA & DR di Amazon Aurora per la resilienza globale