Nessun risultato trovato

La tua ricerca non ha prodotto risultati

Cos'è un database relazionale?

Un database relazionale è un tipo di database che memorizza e fornisce l'accesso a dati correlati tra loro. I database relazionali sono basati sul modello relazionale, un modo intuitivo e diretto di rappresentare i dati nelle tabelle. In un database relazionale, ogni riga della tabella è un record con un ID univoco chiamato chiave. Le colonne della tabella contengono gli attributi dei dati e in genere ogni record ha un valore per ogni attributo, il che semplifica la definizione delle relazioni tra i dati.

Un esempio di database relazionale

Ecco un semplice esempio di due tabelle che potrebbero essere utilizzate da una piccola azienda per elaborare gli ordini dei suoi prodotti. La prima è una tabella di informazioni sul cliente, quindi ogni record include nome, indirizzo, dati di spedizione e fatturazione, numero di telefono e altre informazioni di contatto del cliente. Ogni informazione (ogni attributo) si trova nella sua colonna e il database assegna un ID univoco (una chiave) a ciascuna riga. Nella seconda tabella, relativa all'ordine del cliente, ogni record include l'ID del cliente che ha effettuato l'ordine, il prodotto ordinato, la quantità, la dimensione e il colore selezionati e così via, ma non il nome o le informazioni di contatto del cliente.

Queste due tabelle hanno solo una cosa in comune: la colonna ID (la chiave). Proprio grazie a questa colonna comune, il database relazionale può creare una relazione tra le due tabelle. Quindi, quando l'applicazione di elaborazione degli ordini del'azienda invia un ordine al database, il database può consultare la tabella degli ordini del cliente, estrarre le informazioni corrette sull'ordine del prodotto e utilizzare l'ID cliente contenuto in quella tabella per cercare i dati di fatturazione e spedizione del cliente nella tabella delle informazioni del cliente. Quindi, il prodotto corretto viene preso dal magazzino, al cliente è garantita una consegna tempestiva dell'ordine tempestivamente e l'azienda può ricevere il pagamento.

Come sono strutturati i database relazionali

Il modello relazionale implica che le strutture logiche dei dati (tabelle di dati, viste e indici) sono separate dalle strutture di storage fisico. Questa separazione significa che gli amministratori di database possono gestire lo storage fisico dei dati senza compromettere l'accesso a tali dati come struttura logica. Ad esempio, la rinominare un file di database non rinomina le tabelle memorizzate al suo interno.

La distinzione tra logico e fisico si applica anche alle operations di database, che sono azioni chiaramente definite che consentono alle applicazioni di manipolare i dati e le strutture del database. Le operations logiche consentono a un'applicazione di specificare il contenuto di cui ha bisogno e le operations fisiche determinano come accedere a quei dati, dopodiché eseguono l'attività.

Per garantire che i dati siano sempre accurati e accessibili, i database relazionali seguono determinate regole di integrità. Ad esempio, una regola di integrità può specificare che in una tabella non sono consentite righe duplicate in modo da eliminare il rischio di inserire informazioni errate nel database.

Il modello relazionale

Ai tempi dei primi database, ogni applicazione memorizzava i dati nella propria struttura esclusiva. Quando gli sviluppatori volevano creare applicazioni per utilizzare quei dati, dovevano possedere molte informazioni sulla loro particolare struttura per trovare i dati di cui avevano bisogno. Queste strutture di dati erano inefficienti, difficili da mantenere e difficili da ottimizzare per garantire una buona performance delle applicazioni. Il modello di database relazionale è stato progettato per risolvere il problema di più strutture di dati arbitrarie.

Il modello relazionale ha fornito una modalità standard di rappresentare e interrogare i dati che potrebbero essere utilizzati da qualsiasi applicazione. Fin dall'inizio, gli sviluppatori hanno riconosciuto che il punto di forza del modello di database relazionale era l'utilizzo delle tabelle, che erano un modo intuitivo, efficiente e flessibile per memorizzare e accedere alle informazioni strutturate.

Nel corso del tempo, è stato scoperto un altro grande vantaggio del modello relazionale, ovvero la possibilità per gli sviluppatori di iniziare a utilizzare il linguaggio SQL (Structured Query Language) per scrivere e interrogare i dati in un database. Per molti anni, il linguaggio SQL è stato ampiamente utilizzato per le query di database. Basato sull'algebra relazionale, SQL fornisce un linguaggio matematico internamente coerente che rende più facile migliorare le performance di tutte le query di database. Gli altri approcci, in confronto, devono definire singole query.

Vantaggi dei database relazionali

Il modello relazionale, semplice ma potente, viene utilizzato da organizzazioni di ogni tipo e dimensione per un'ampia varietà di esigenze di informazione. I database relazionali vengono utilizzati per monitorare gli inventari, elaborare transazioni di e-commerce, gestire enormi quantità di informazioni strategiche sui clienti e molto altro ancora. Un database relazionale è adatto a qualsiasi esigenza di informazione in cui i dati sono correlati tra loro e devono essere gestiti in modo sicuro e coerente, secondo determinate regole.

I database relazionali esistono dagli anni '70. I vantaggi del modello relazionale lo rendono tuttora il modello di database più ampiamente riconosciuto.

Coerenza dei dati

Il modello relazionale è il migliore per mantenere la coerenza dei dati tra le applicazioni e le copie di database (chiamate istanze). Ad esempio, quando un cliente deposita denaro a uno sportello bancomat e poi controlla il saldo del conto su un cellulare, si aspetta che il conto si aggiorni immediatamente per mostrare il deposito. I database relazionali sono particolarmente efficaci a garantire questo tipo di coerenza dei dati, in modo che più istanze di un database abbiano sempre gli stessi dati.

Per altri tipi di database è difficile mantenere questo livello di coerenza in modo rapido con grandi quantità di dati. Alcuni database recenti, come NoSQL, possono garantire solo la “coerenza finale.” In base a questo principio, quando il database viene ridimensionato o quando più utenti accedono agli stessi dati nello stesso momento, i dati hanno bisogno di tempo per “aggiornarsi.” La coerenza finale è accettabile per alcuni usi, ad esempio, per mantenere gli elenchi in un catalogo di prodotti, ma per le operations aziendali critiche come le transazioni del carrello degli acquisti, il database relazionale è ancora una volta la migliore opzione.

Impegno e atomicità

I database relazionali gestiscono le regole e le politiche aziendali a un livello molto granulare, con rigide norme in termini di impegno (ovvero, apportare una modifica permanente al database). Ad esempio, si consideri un database di inventario che monitora tre componenti che vengono sempre utilizzati insieme. Quando un componente viene estratto dall'inventario, devo essere estratti anche gli altri due. Se uno dei tre componenti non è disponibile, non bisogna estrarne nessuno: tutte e tre devono essere disponibili prima che il database realizzi qualsiasi azione. Un database relazionale non agirà su un componente fino ad avere la certezza di poter agire su tutti e tre. Questa capacità di impegno multiforme è chiamata atomicità. L'atomicità è la chiave per garantire che i dati del database sono accurati e compliant con le regole, le normative e le politiche dell'azienda.

ACID e database relazionali

Quattro proprietà cruciali definiscono le transazioni del database relazionale: atomicità, coerenza, isolamento e durabilità, tipicamente chiamate ACID.

  • L'atomicità definisce tutti gli elementi che compongono una transazione di database completa.
  • La coerenza definisce le regole per mantenere i dati in uno stato corretto dopo una transazione.
  • L'isolamento mantiene l'effetto di una transazione invisibile agli altri fino a quando non viene implementato, per evitare confusione.
  • La durabilità assicura che le modifiche dei dati diventino permanenti una volta che la transazione è stata eseguita.

Procedure memorizzate e database relazionali

L'accesso ai dati comporta molte azioni ripetitive. Ad esempio, una semplice query per ottenere informazioni da una tabella di dati potrebbe dover essere ripetuta centinaia o migliaia di volte per produrre il risultato desiderato. Queste funzioni di accesso ai dati richiedono un determinato tipo di codice per accedere al database. Gli sviluppatori di applicazioni non vogliono scrivere un nuovo codice per queste funzioni in ogni nuova applicazione. Fortunatamente, i database relazionali consentono di avere procedure memorizzate, che sono blocchi di codice a cui è possibile accedere con una semplice chiamata tramite applicazione. Ad esempio, una singola procedura memorizzata può consentire la coerente applicazione di tag agli archivi per gli utenti di più applicazioni. Le procedure memorizzate possono anche aiutare gli sviluppatori a garantire che determinate funzioni di dati nell'applicazione sono implementate in un modo specifico.

Blocco di database e concorrenza

In un database possono verificarsi conflitti quando più utenti o applicazioni tentano di modificare gli stessi dati nello stesso momento. Le tecniche di blocco e di concorrenza riducono la probabilità di conflitti e mantengono l'integrità dei dati.

Il blocco impedisce ad altri utenti e applicazioni di accedere ai dati durante l'aggiornamento. In alcuni database, il blocco si applica all'intera tabella, creando un impatto negativo sulle performance delle applicazioni. Altri database, come i database relazionali Oracle, applicano i blocchi al record e lasciano gli altri record nella tabella disponibile, contribuendo a garantire migliori performance delle applicazioni.

La concorrenza gestisce l'attività quando più utenti o applicazioni eseguono query contemporaneamente sullo stesso database. Questa funzionalità offre l'accesso adatto a utenti e applicazioni in base alle politiche definite per il controllo dei dati.

Cosa cercare quando si seleziona un database relazionale

Il software utilizzato per archiviare, gestire, interrogare e recuperare i dati memorizzati in un database relazionale è chiamato sistema di gestione di database relazionali (RDBMS). L'RDBMS fornisce un'interfaccia tra utenti e applicazioni e il database, nonché funzioni amministrative per la gestione di storage dei dati, accesso e performance.

Diversi fattori possono influenzare la scelta del tipo di database e dei prodotti di database relazionali. L'RDBMS scelto dipende dalle esigenze aziendali. Ecco le domande che devi porti:

  • Quali sono i nostri requisiti di accuratezza dei dati? Lo storage e l'accuratezza dei dati si basano sulla logica aziendale? I nostri dati hanno requisiti di accuratezza rigorosi (ad esempio, dati finanziari e report governativi)?
  • Abbiamo bisogno di scalabilità? Qual è la scala dei dati da gestire e qual è la crescita prevista? Il modello di database dovrà supportare copie di database realizzate con la tecnica del mirroring (come le istanze separate) per la scalabilità? In tal caso, può mantenere la coerenza dei dati tra quelle istanze?
  • Quanto è importante la concorrenza? Più utenti e applicazioni avranno bisogno dell'accesso simultaneo ai dati? Il software del database supporta la concorrenza e protegge i dati?
  • Quali sono le nostre esigenze di performance e affidabilità? Abbiamo bisogno di un prodotto altamente performante e affidabile? Quali sono i requisiti per le performance delle risposte alle query? Quali sono gli impegni dei venditori in termini di service level agreement (SLA) o tempi di inattività imprevisti?

Il database relazionale del futuro: il database con funzionalità di Self-Driving

Nel corso degli anni, i database relazionali sono diventati migliori, più veloci, più forti e più facili da utilizzare. Tuttavia, sono diventati anche più complessi, motivo per cui e la loro gestione è stata per molto tempo un lavoro impegnativo. Anziché utilizzare le proprie competenze per concentrarsi sullo sviluppo di applicazioni innovative che apportano valore al business, gli sviluppatori hanno dovuto dedicare la maggior parte del proprio tempo all'attività di gestione necessaria per ottimizzare le performance dei database.

Oggi la tecnologia autonoma si basa sui punti di forza del modello relazionale per offrire un nuovo tipo di database relazionale. Il database self-driving (noto anche come database autonomo) mantiene il potere e i vantaggi del modello relazionale ma utilizza l'intelligenza artificiale (AI), il machine learning e l'automazione per monitorare e migliorare le performance delle query e le attività di gestione. Ad esempio, per migliorare le performance delle query, il database self-driving può fare ipotesi e testare gli indici per rendere le query più veloci, quindi portare le migliori in produzione, tutto in modo indipendente. Il database self-driving apporta continuamente questi miglioramenti senza la necessità di intervento manuale.

La tecnologia autonoma libera gli sviluppatori dalle banali attività di gestione del database. Ad esempio, non devono più stabilire in anticipo i requisiti dell'infrastruttura. Al contrario, con un database self-driving, possono aggiungere le risorse di storage e calcolo necessarie per supportare la crescita del database. Con pochi passaggi, gli sviluppatori possono creare facilmente un database relazionale autonomo, accelerando i tempi dello sviluppo di applicazioni.