Nessun risultato trovato

La tua ricerca non ha prodotto risultati.

È consigliabile provare quanto segue per riuscire a trovare quello che stai cercando:

  • Controlla l'ortografia della ricerca per parola chiave.
  • Utilizza sinonimi per la parola chiave digitata, ad esempio prova “applicazione” anziché “software”.
  • Prova una delle ricerche popolari mostrate di seguito.
  • Inizia una nuova ricerca.
Domande di tendenza

Che cos'è un database relazionale?

Un database relazionale è un tipo di database di archiviazione che fornisce accesso a data points 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 ogni record di solito ha un valore per ogni attributo, rendendo facile stabilire le relazioni tra i data points.

Un esempio di database relazionale

Ecco un semplice esempio di due tabelle che una piccola azienda potrebbe utilizzare per elaborare gli ordini per i suoi prodotti. La prima tabella è relativa alle informazioni sul cliente . Ogni record include pertanto il nome, l'indirizzo, le informazioni di spedizione e fatturazione, il numero di telefono e altre informazioni di contatto del cliente. Ogni bit di informazioni (ogni attributo) si trova nella colonna corrispondente e il database assegna un ID univoco (una chiave) a ciascuna riga. Nella seconda tabella, relativa a un 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 altro, ma non contiene il nome o informazioni di contatto del cliente.

Queste due tabelle hanno un solo elemento in comune: la colonna ID (la chiave). È tuttavia grazie a questa colonna comune che il database relazionale può creare una relazione tra le due tabelle. Quindi, quando l'applicazione di elaborazione degli ordini dell'azienda invia un ordine al database, quest'ultimo può accedere alla tabella degli ordini dei clienti, estrarre le informazioni corrette sull'ordine del prodotto e utilizzare l'ID cliente di tale tabella per cercare le informazioni su fatturazione e spedizione del cliente nella relativa tabella delle informazioni. Il magazzino può quindi prelevare il prodotto corretto, il cliente può ricevere la consegna dell'ordine in tempo e la società può essere pagata.

Come sono strutturati i database relazionali

Secondo il modello relazionale, le strutture dei dati logici, ovvero tabelle di dati, viste e indici, sono separate dalle strutture di storage fisiche. Grazie a questa separazione, gli amministratori di database possono gestire lo storage fisico dei dati senza compromettere l'accesso a tali dati come struttura logica. Ad esempio, la ridenominazione di un file di database non implica la ridenominazione delle tabelle archiviate al suo interno.

La distinzione tra logico e fisico si applica anche alle operations di database, ovvero 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, mentre le operations fisiche determinano come accedere a tali dati e quindi eseguono l'attività.

Per garantire che i dati siano sempre accurati e accessibili, i database relazionali seguono regole di integrità specifiche. Ad esempio, una regola di integrità può specificare che le righe duplicate non sono consentite in una tabella, al fine di evitare l'ingresso di informazioni errate nel database.

Modello relazionale

Nei primi anni dell'esistenza dei database ogni applicazione archiviava dati nella propria struttura unica. Qualora fosse necessario creare applicazioni per utilizzare tali dati, gli sviluppatori avevano bisogno di conoscere numerosi dettagli sulla struttura dei dati specifica, al fine di trovare i dati necessari. Queste strutture dati erano inefficienti, difficili da gestire e da ottimizzare per offrire buone 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 un modo standard per rappresentare i dati utilizzabili da qualsiasi applicazione ed eseguire query su di essi. Fin dall'inizio, gli sviluppatori hanno riconosciuto che il punto di forza del modello di database relazionale è l'uso delle tabelle, ovvero un modo intuitivo, efficiente e flessibile per archiviare informazioni strutturate e accedervi.

Con il passare del tempo, è emerso un altro punto di forza del modello relazionale, poiché gli sviluppatori hanno iniziato a utilizzare il linguaggio SQL (Structured Query Language) per scrivere dati in un database ed eseguirvi query. Per molti anni, SQL è stato ampiamente utilizzato come linguaggio per le query di database. Basato sull'algebra relazionale, SQL offre un linguaggio matematico internamente coerente che semplifica il miglioramento delle performance di tutte le query di database. In confronto, altri approcci devono definire singole query.

Vantaggi dei database relazionali

Il semplice ma potente modello relazionale viene utilizzato da organizzazioni di ogni tipo e dimensione per un'ampia varietà di esigenze di informazione. I database relazionali vengono utilizzati per tracciare gli inventari, elaborare transazioni di e-commerce, gestire enormi quantità di informazioni sui clienti mission-critical e molto altro. Un database relazionale può essere preso in considerazione per reperire qualsiasi informazione in cui i data points si correlano tra di loro e devono essere gestiti in modo sicuro, regolamentato e coerente.

I database relazionali sono utilizzati sin dagli anni '70. I vantaggi offerti dal modello relazionale continuano a renderlo anche oggi il modello di database più accettato a livello globale.

Coerenza dei dati

Il modello relazionale è il migliore modo per mantenere la coerenza dei dati tra applicazioni e copie di database (i cosiddetti casi). Ad esempio, quando un cliente deposita denaro presso un bancomat e poi controlla il saldo del conto sul cellulare, si aspetta di vedere l'importo depositato immediatamente riflesso nel saldo del conto aggiornato. Nell'ambito di questo genere di coerenza dei dati, i database relazionali consentono di ottenere risultati eccellenti, assicurando che più istanze di un database contengano sempre gli stessi dati.

Per altri tipi di database è difficile mantenere questo livello di coerenza immediato con una grande quantità di dati. Alcuni database recenti, come NoSQL, possono fornire solo “consistenza finale”. In base a questo principio, quando il database viene ridimensionato o quando più utenti accedono agli stessi dati contemporaneamente, è necessario del tempo affinché i dati risultino “aggiornati”. La coerenza finale è accettabile per alcuni utilizzi, ad esempio per gestire gli elenchi in un catalogo di prodotti, ma il database relazionale rimane comunque lo standard migliore per le operations aziendali critiche, ad esempio le transazioni relative al carrello.

Impegno e atomicità

I database relazionali gestiscono le regole e le policy aziendali a un livello molto dettagliato, con rigide policy in materia di commitment (ovvero, applicazione di una modifica al database permanente). Prendiamo ad esempio in considerazione un database di inventario che tiene traccia di tre parti che vengono sempre utilizzate insieme. Quando una parte viene estratta dall'inventario, lo stesso deve accadere anche per le altre due. Se una delle tre parti non è disponibile, nessuna delle parti dovrebbe essere estratta: tutte e tre le parti devono essere disponibili prima che il database sia soggetto a commitment. Un database relazionale non esegue il commit di una parte finché non potrà eseguirlo per tutte e tre. Questa capacità di commitment multisfaccettato è denominata atomicità. L'atomicità è la chiave per mantenere dati accurati nel database e garantire che siano compliant con le regole, i regolamenti e le policy dell'azienda.

ACID e database relazionali

Quattro proprietà cruciali definiscono le transazioni del database relazionale: atomicità, coerenza, isolamento e durata. L'insieme di tali proprietà è in genere noto come ACID.

  • Atomicità: definisce tutti gli elementi che costituiscono una transazione di database completa.
  • Consistenza: definisce le regole per mantenere i data points in uno stato corretto dopo una transazione.
  • Isolamento : mantiene l'effetto di una transazione invisibile agli altri fino a quando non viene sottoposta a commit, per evitare confusione.
  • Durabilità: assicura che le modifiche ai dati diventino permanenti una volta che viene eseguito il commit della transazione.

Stored procedure 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 certo tipo di codice per accedere al database. Gli sviluppatori di applicazioni non desiderano scrivere nuovo codice per queste funzioni in ogni nuova applicazione. Fortunatamente, i database relazionali consentono l'utilizzo di stored procedure, ovvero blocchi di codice a cui è possibile accedere con una semplice chiamata di applicazione. Una singola stored procedure può ad esempio fornire un tag di registrazione coerente per gli utenti di più applicazioni. Le stored procedure possono anche aiutare gli sviluppatori a garantire che determinate funzioni di dati nell'applicazione siano implementate in un modo specifico.

Concorrenza e blocco del database

Quando più utenti o applicazioni tentano di modificare gli stessi dati contemporaneamente, in un database possono insorgere conflitti. Le tecniche di blocco e di concorrenza riducono la possibilità di conflitti mantenendo l'integrità dei dati.

Blocco : impedisce ad altri utenti e applicazioni di accedere ai dati durante l'aggiornamento. In alcuni database il blocco si applica all'intera tabella, il che crea un impatto negativo sulle performance delle applicazioni. Altri database, come quelli relazionali di Oracle, applicano i blocchi a livello di record, lasciando gli altri record all'interno della tabella disponibili, così da garantire migliori performance delle applicazioni.

Concorrenza: gestisce l'attività quando più utenti o applicazioni invocano query contemporaneamente sullo stesso database. Questa funzionalità offre l'accesso corretto agli utenti e alle applicazioni, in base alle policy definite per il controllo dei dati.

Cosa cercare quando si seleziona un database relazionale

Il software utilizzato per archiviare dati in un database relazionale, gestirli, eseguire query su di essi e recuperarli è chiamato RDBMS (sistema di gestione di database relazionali). RDBMS fornisce un'interfaccia tra gli utenti e le applicazioni e il database, nonché funzioni amministrative per la gestione di storage dei dati, accesso e performance.

Diversi sono i fattori da considerare quando si sceglie tra diversi tipi di database e prodotti di database relazionali. Il sistema RDBMS che scegli dipende dalle tue esigenze aziendali. Ecco le domande che è necessario porsi:

  • Quali sono i requisiti di accuratezza dei dati? Lo storage e l'accuratezza dei dati si basano sulla logica di business? I dati hanno requisiti rigorosi in termini di accuratezza (ad esempio, dati finanziari e report governativi)?
  • È necessaria la scalabilità? Qual è la scala dei dati da gestire e qual è la crescita prevista? Il modello di database dovrà supportare copie di database con mirroring (come istanze separate) per la scalabilità? In tal caso, può mantenere la coerenza dei dati tra tali istanze?
  • Quanto è importante la concorrenza? Più utenti e applicazioni avranno bisogno dell'accesso simultaneo ai dati? Il software del database supporta la concorrenza mentre protegge i dati?
  • Quali sono le esigenze in termini di performance e affidabilità? È necessario un prodotto altamente performante e affidabile? Quali sono i requisiti per le performance di risposta alle query? Quali sono i commitment dei fornitori in relazione a SLA o downtime non pianificati?

Il database relazionale del futuro: database con funzionalità di self-driving

Nel corso degli anni, i database relazionali sono diventati migliori, più veloci, più resistenti e più facili da utilizzare, ma anche più complessi. La gestione del database è infatti da tempo diventata un'attività a tempo pieno. Invece di 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 del 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) conserva 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ò ipotizzare e testare gli indici per rendere le query più veloci e spingere le migliori in produzione, tutto in autonomia. Il database self-driving apporta questi miglioramenti continuamente, senza la necessità di alcun intervento umano.

La tecnologia autonoma evita agli sviluppatori di dover eseguire le attività ordinarie di gestione del database. Ad esempio, non dovranno più determinare in anticipo i requisiti dell'infrastruttura. Con un database self-driving, potranno invece aggiungere storage e calcolare le risorse necessarie per supportare la crescita del database. Con pochi passaggi, gli sviluppatori possono creare con facilità un database relazionale autonomo, accelerando i tempi di sviluppo delle applicazioni.