Modello relazionale dei dati nei DBMS: Concepts & Esempio

โšก Riepilogo intelligente

Il modello relazionale rappresenta un database come una collezione di relazioni, dove ogni relazione รจ una tabella di righe e colonne. Definisce i concetti fondamentali, i vincoli di integritร  e le operazioni di aggiornamento che mantengono i dati relazionali coerenti e facili da interrogare.

  • ๐Ÿ—ƒ๏ธ Idea centrale: I dati vengono memorizzati come relazioni e ogni riga รจ una tupla che descrive un'entitร  o una relazione del mondo reale.
  • ๐Ÿท๏ธ Parole chiave: Attributo, tupla, grado, cardinalitร , dominio e chiave di relazione descrivono insieme la struttura di una tabella.
  • ๐Ÿ›ก๏ธ Tre vincoli: I vincoli di integritร  di dominio, chiave e referenziale mantengono valida ogni relazione.
  • ๐Ÿ”‘ Chiavi di collegamento delle tabelle: Una chiave primaria identifica in modo univoco una riga, mentre una chiave esterna fa riferimento a una chiave in un'altra relazione.
  • ๐Ÿ”„ Quattro Operazioni: Le operazioni di inserimento, aggiornamento, eliminazione e selezione agiscono sulle relazioni senza violare i vincoli definiti.
  • โœ… Regole di progettazione: Un solo valore per cella, nomi di colonna univoci, nessuna riga duplicata e valori provenienti da un unico dominio.
  • ๐Ÿ“ˆ Perchรฉ vince: Semplicitร , indipendenza strutturale, un linguaggio di interrogazione di alto livello e indipendenza dei dati.

Modello di dati relazionali in DBMS

Cos'รจ il modello relazionale?

Modello Relazionale (RM) rappresenta il database come una raccolta di relazioni. Una relazione non รจ altro che una tabella di valori. Ogni riga nella tabella rappresenta una raccolta di valori di dati correlati. Queste righe nella tabella indicano un'entitร  o una relazione del mondo reale.

Il nome della tabella e i nomi delle colonne aiutano a interpretare il significato dei valori in ogni riga. I dati sono rappresentati come un insieme di relazioni. Nel modello relazionale, i dati vengono memorizzati come tabelle. Tuttavia, la memorizzazione fisica dei dati รจ indipendente dal modo in cui i dati sono organizzati logicamente.

Il modello fu proposto da E.F. Codd nel 1970 e rimane il fondamento di quasi tutti i principali database attualmente in uso. Alcuni sistemi di gestione di database relazionali diffusi sono:

  • Server dinamico DB2 e Informix โ€“ IBM
  • Oracle e RDB โ€“ Oracle
  • SQL Server e accesso โ€“ Microsoft

Modello relazionale Concepts nel DBMS

  1. Attributo: Ogni colonna di una tabella. Gli attributi sono le proprietร  che definiscono una relazione, ad esempio, Student_Rollno, NAME, ecc.
  2. tabelle: Nel modello relazionale, le relazioni vengono salvate in formato tabellare. Vengono memorizzate insieme alle relative entitร . Una tabella ha due proprietร : righe e colonne. Le righe rappresentano i record e le colonne rappresentano gli attributi.
  3. tupla: Non รจ altro che una singola riga di una tabella, che contiene un singolo record.
  4. Schema di relazione: Uno schema di relazione rappresenta il nome della relazione con i suoi attributi.
  5. Grado: Il numero totale di attributi in una relazione รจ chiamato grado della relazione.
  6. Cardinalitร : Il numero totale di righe presenti nella tabella.
  7. Colonna: La colonna rappresenta l'insieme di valori per un attributo specifico.
  8. Istanza di relazione: Un'istanza di relazione รจ un insieme finito di tuple nel sistema RDBMS. Le istanze di relazione non contengono mai tuple duplicate.
  9. Chiave di relazione: Ogni riga possiede uno, due o piรน attributi, chiamati chiave di relazione.
  10. Dominio degli attributi: Ogni attributo ha un valore e un ambito predefiniti, noti come dominio dell'attributo.

Concetti del modello relazionale illustrati in una tabella

Con il vocabolario a posto, la prossima preoccupazione รจ mantenerloping i dati in tali relazioni sono validi, compito che spetta ai vincoli di integritร .

Relazionale Integrity vincoli

I vincoli di integritร  relazionale nei DBMS si riferiscono alle condizioni che devono essere presenti affinchรฉ una relazione sia valida. Questi vincoli relazionali derivano dalle regole del mini-mondo che il database rappresenta.

Esistono molti tipi di vincoli di integritร . I โ€‹โ€‹vincoli sui sistemi di gestione di database relazionali si dividono principalmente in tre categorie principali:

  1. Vincoli di dominio
  2. Vincoli chiave
  3. Referenziale Integrity vincoli

Vincoli di dominio

I vincoli di dominio possono essere violati se il valore di un attributo non compare nel dominio corrispondente o se non รจ del tipo di dati appropriato.

I vincoli di dominio specificano che all'interno di ogni tupla il valore di ciascun attributo deve essere atomico e tratto dal dominio corretto. I domini sono specificati come tipi di dati, che includono tipi standard come numeri interi, numeri reali, caratteri, valori booleani e stringhe a lunghezza variabile.

Esempio:

CREATE DOMAIN CustomerName
CHECK (value NOT NULL)

L'esempio mostrato illustra come creare un vincolo di dominio in modo che CustomerName non sia NULL.

Vincoli chiave

Un attributo che puรฒ identificare in modo univoco una tupla in una relazione รจ chiamato chiave della tabella. Il valore dell'attributo per diverse tuple nella relazione deve essere unico.

Esempio:

Nella tabella fornita, CustomerID รจ un attributo chiave della tabella Customer. รˆ molto probabile che abbia una sola chiave per un cliente; CustomerID = 1 รจ solo per CustomerName โ€œGoogle"Un trattamento completo dei diversi tipi di chiave รจ trattato nella guida a Chiavi DBMS.

Identificativo del cliente Nome del cliente Stato
1 Google Active
2 Amazon Active
3 Mela Inattivo

Referenziale Integrity vincoli

I vincoli di integritร  referenziale nei DBMS si basano sul concetto di chiave esterna. Una chiave esterna รจ un attributo importante di una relazione a cui si deve fare riferimento in altre relazioni. Un vincolo di integritร  referenziale si verifica quando una relazione fa riferimento a un attributo chiave di una relazione diversa o della stessa relazione. Tale elemento chiave deve esistere nella tabella a cui si fa riferimento.

Esempio:

Integritร  referenziale tra Cliente e Billrelazioni

Nell'esempio precedente abbiamo due relazioni, Cliente e BillING.

La tupla per CustomerID = 1 viene referenziata due volte nella relazione Billing. Quindi sappiamo CustomerName โ€œGoogle" ha un importo di fatturazione di 300 dollari.

Operazioni nel modello relazionale

Sul modello di database relazionale vengono eseguite quattro operazioni di aggiornamento fondamentali: inserimento, aggiornamento, eliminazione e selezione.

  • La funzione Insert viene utilizzata per inserire dati nella relazione.
  • Elimina viene utilizzato per eliminare le tuple dalla tabella.
  • Modifica consente di modificare i valori di alcuni attributi nelle tuple esistenti.
  • Seleziona consente di scegliere un intervallo specifico di dati.

Ogni qualvolta venga eseguita una di queste operazioni, i vincoli di integritร  specificati nello schema del database relazionale non devono mai essere violati.

inserire Operaproduzione

L'operazione di inserimento restituisce i valori degli attributi per una nuova tupla che deve essere inserita in una relazione.

Operazione di inserimento che aggiunge una nuova tupla a una relazione

Aggiornanento Operaproduzione

Come si puรฒ notare nella tabella delle relazioni sottostante, il cliente 'Apple' รจ stato aggiornato da Inattivo ad Attivo.

Operazione di aggiornamento che modifica un valore di stato in una tupla

Elimina Operaproduzione

Per specificare la cancellazione, una condizione sugli attributi della relazione seleziona la tupla da cancellare.

Operazione di eliminazione che rimuove una tupla da una relazione

Nell'esempio precedente, il cliente "Apple" viene eliminato dalla tabella.

L'operazione di eliminazione potrebbe violare l'integritร  referenziale se la tupla che viene eliminata รจ referenziata da chiavi esterne di altre tuple nella stessa banca dati.

Seleziona Operaproduzione

Seleziona l'operazione scegliendo una tupla specifica

Nell'esempio precedente, CustomerName โ€œAmazon" รจ selezionato.

Modello relazionale vs. modelli gerarchici e di rete

Il modello relazionale ha sostituito due approcci precedenti, e il contrasto tra di essi spiega perchรฉ sia โ€‹โ€‹diventato dominante. La tabella seguente mette a confronto i tre modelli.

Aspetto Modello relazionale Modello gerarchico Modello di rete
Structure Tabelle (relazioni) Albero, dal genitore al figlio Grafico da molti a molti
Accesso ai dati Dichiarativo, per valore Navigazione, tramite percorso Navigazione tramite puntatore
Relazioni Chiavi esterne legami genitore-figlio Insiemi e puntatori
Linguaggio di interrogazione SQL Codice procedurale Codice procedurale
Flessibilitร  Alto Basso Medio

Poichรฉ il modello relazionale gestisce i dati per valore piuttosto che tramite la navigazione di collegamenti fisici, un linguaggio di alto livello come SQL รจ possibile esprimere una query senza sapere come sono memorizzati i dati.

Migliori pratiche per la creazione di un modello relazionale

  • I dati devono essere rappresentati come una raccolta di relazioni.
  • Ciascuna relazione deve essere rappresentata chiaramente nella tabella.
  • Le righe devono contenere dati relativi alle istanze di un'entitร .
  • Le colonne devono contenere dati relativi agli attributi dell'entitร .
  • Le celle della tabella devono contenere un singolo valore.
  • A ciascuna colonna deve essere assegnato un nome univoco.
  • Non possono esserci due righe identiche.
  • I valori di un attributo devono provenire dallo stesso dominio.

Vantaggi del modello di database relazionale

  • Semplicitร : Un modello di dati relazionale in un DBMS รจ piรน semplice dei modelli gerarchico e di rete.
  • Indipendenza strutturale: Il database relazionale si occupa esclusivamente dei dati e non della struttura, il che puรฒ migliorare le prestazioni del modello.
  • Facile da usare: Il modello relazionale รจ facile da usare, poichรฉ le tabelle composte da righe e colonne sono naturali e semplici da comprendere.
  • Funzionalitร  di interrogazione: Ciรฒ consente a un linguaggio di interrogazione di alto livello come SQL di evitare una navigazione complessa all'interno del database.
  • Indipendenza dei dati: La struttura di un database relazionale puรฒ essere modificata senza dover cambiare alcuna applicazione.
  • Scalabile: Per quanto riguarda il numero di record o righe e il numero di campi, un database puรฒ essere ampliato per migliorarne l'usabilitร .

Svantaggi del modello relazionale

  • Pochi database relazionali hanno limiti alla lunghezza dei campi, che non possono essere superati.
  • I database relazionali possono talvolta diventare complessi man mano che la quantitร  di dati aumenta e le relazioni tra i dati si fanno piรน intricate.
  • I sistemi di database relazionali complessi possono portare alla creazione di database isolati, in cui le informazioni non possono essere condivise tra un sistema e l'altro.

DOMANDE FREQUENTI

Il grado indica il numero di attributi, o colonne, in una relazione. La cardinalitร  indica il numero di tuple, o righe. Il grado descrive la larghezza della tabella e la cardinalitร  la sua altezza.

Una relazione รจ un insieme matematico, e un insieme non contiene elementi duplicati. La chiave primaria garantisce questo, in modo che ogni tupla sia identificata in modo univoco e non ci siano due righe identiche.

I modelli di intelligenza artificiale vengono spesso addestrati su caratteristiche estratte da tabelle relazionali tramite join e aggregazioni SQL. L'IA puรฒ anche tradurre una domanda in linguaggio naturale in SQL, consentendo agli utenti non tecnici di interrogare direttamente le relazioni.

Sรฌ. In base a dati di esempio o requisiti, l'IA puรฒ suggerire tabelle, chiavi primarie ed esterne e una forma normale. L'output deve comunque essere rivisto, perchรฉ la normalizzazione dipende da regole aziendali che l'IA potrebbe non conoscere.

In pratica, i due termini vengono usati in modo intercambiabile. Formalmente, una relazione รจ un insieme di tuple senza un ordine specifico e senza duplicati, mentre una tabella ne รจ la rappresentazione fisica, che puรฒ mostrare le righe in un ordine predefinito.

Riassumi questo post con: