Che cos'è un database relazionale? [chiuso]


9

Sono principalmente un amministratore di sistema e non lavoro direttamente con database diversi dall'installazione, dall'impostazione di account, dalla concessione di privilegi e così via. Mi sono reso conto che se The Boss si fosse avvicinato a me e mi avesse chiesto "Cos'è un database relazionale?" Probabilmente non sono riuscito a dare una risposta soddisfacente ... Forse mormorerei qualcosa sui dati archiviati e organizzati per categorie su cui è possibile interrogare con un linguaggio di programmazione speciale (ad esempio, SQL).

Quindi qualcuno potrebbe dare una buona "risposta Boss" per quello che è un database relazionale? E forse quanto è diverso dalla semplice memorizzazione dei dati su un file server? Punti bonus per analogie intelligenti ma accessibili e che spiegano tabelle, colonne, record e campi. Definirei una "Risposta del Capo" come una breve spiegazione di paragrafo (forse due) per persone non tecniche ... soprattutto il tuo Capo, in quelle rare occasioni in cui ti chiedono davvero cosa fai tutto il giorno.


2
Non sono sicuro che serverfault sia il posto giusto per questa domanda, sebbene sia utile. Forse DBA.SE o Programmers.SE .
Orbling

1
Perché il tuo capo dovrebbe porre una domanda del genere e, cosa ancora più importante, cosa ha a che fare con l'amministrazione del sistema?
John Gardeniers,

1
@John Gardeniers, Potrebbe appartenere qui perché molti "amministratori di sistema" indossano un cappello di "amministrazione del database", il che significa che hanno una buona comprensione di come funziona RDBMS. Per quanto riguarda il motivo per cui i capi fanno domande, chissà, ma saper comunicare chiaramente i concetti è una buona cosa dell'IMO.
Zoredache,

1
@Zoredache, nel mio lavoro indosso molti cappelli. Ciò non significa che siano tutti in tema per SF.
John Gardeniers,

Le risposte di seguito sono molto buone, ma tieni presente che puoi avere database non relazionali (come btrieve) e mantenere comunque le relazioni tra i dati normalizzati attraverso un'adeguata logica dell'applicazione.
Mark Henderson,

Risposte:


16

Un database relazionale non memorizza solo i dati : archivia le relazioni tra i dati e semplifica (bene, facilita) l'utilizzo di tali relazioni. All'inizio della terminologia del database relazionale, le tabelle venivano chiamate "relazioni" perché memorizzavano bit di dati correlati (campi, ora colonne), insieme alle relazioni tra quella relazione e altre relazioni.

La normalizzazione è l'atto di relazioni senza complicazioni: "Rendi tutto il più semplice possibile, ma non più semplice". (Alan Perlis) A volte "... ma non più semplice" significa che non memorizziamo le cose completamente normalizzate, perché "più semplice" finisce per essere più complesso. (È possibile derivare lo stato dal codice postale, ma perché preoccuparsi?)


10

Un database relazionale è un metodo di strutturazione dei dati, quindi un singolo fatto viene archiviato in un unico posto. Quindi, se John e Jane Doe lavorano entrambi per la stessa azienda, conserveresti i dettagli unici dell'azienda in un unico posto (tabella). Conserveresti i dati unici di John e Jane in un altro posto e al terzo posto archiveresti la relazione tra John e Jane con la società. Nel mondo ideale questo dovrebbe significare che devo modificare un solo campo / riga se il numero di fax dell'azienda è cambiato.

Si prega di comprendere che non tutti i database ospitati in un RDBMS sono correttamente normalizzati. I compromessi sono fatti per prestazioni e altri motivi.

Vedi l'articolo sulla normalizzazione del database. http://en.wikipedia.org/wiki/Database_normalization


4

Esistono due concetti principali per distinguere i sistemi di database delle relazioni. Il primo è che vengono archiviate le relazioni tra gli articoli. Questo è il modello di tabella dei dati, spiegato tramite l'analogia del foglio di calcolo. Gli RDBMS diventano più complessi dei fogli di calcolo, poiché è pratica più semplice e comune avere molti riferimenti tra tabelle o fogli di lavoro (a seconda del lato dell'analogia che si sta utilizzando).

Il secondo è che gli RDBMS implementano l'idea di una transazione, le proprietà ACID di

  • atomicita,
  • consistenza,
  • isolamento e
  • durabilità

Il modello relazionale consente di includere, interrogare, ordinare, raggruppare e così via molte relazioni complesse. Il modello transazionale si assicura che le transazioni avvengano completamente o per niente, mantenendo il modello di relazione coerente e preciso. Bene, almeno rendendo possibile una corretta programmazione per mantenerlo così.


3

Un database relazionale è come una cartella di lavoro di Excel con molti fogli di lavoro e un ambiente software circostante per effettuare ottimizzazioni delle prestazioni come indicizzazione e memorizzazione nella cache, imporre un accesso sicuro da parte di molti utenti contemporaneamente e consentire di visualizzare in modo efficiente i dati che possono essere diffusi su molti dei diversi fogli di lavoro.


1

Un abase di dati relazionali è uno strumento per l'archiviazione e il recupero di dati archiviati in un modello relazionale.

Un modello relazionale di dati è costruito secondo un piccolo numero (a seconda del libro che leggi, 4 o 5 regole) che garantiscono l'accesso ai dati in modo coerente, che consente di dimostrare la correttezza del progetto e che consente il sistema di gestione del database (DBMS) per svolgere la maggior parte del lavoro nel recupero rapido dei dati. Fornisce inoltre strumenti per documentare formalmente la struttura dei dati: l'implementazione di un database implementa intrinsecamente la maggior parte della documentazione.

La maggior parte delle persone non capisce perché la correttezza sia importante - significa che è meno probabile che vengano introdotti bug nello sviluppo di una soluzione - e che (e.hg) 2 programmatori diversi che lavorano in aree simili abbiano meno probabilità di duplicare gli sforzi.

Come entità separata dal front-end dell'applicazione e con una visione coerente della struttura dei dati, l'uso di un sistema di gestione del database consente di utilizzare diversi strumenti nel front-end per scopi diversi, in modo da poterne fare molto di più di componenti standard quando si crea una soluzione.

Esistono altri modelli diversi da quello relazionale per l'archiviazione dei dati, ma nessun altro (secondo la mia esperienza) si avvicina nella sua semplicità, flessibilità e disponibilità di strumenti per lo sviluppo e la gestione dei dati.


1

Una risposta non tecnica al 100%:

Un database relazionale è un luogo in cui archiviare i dati in modo da ridurre al minimo la ridondanza e consentire di effettuare ricerche all'interno di essi facilmente.

Supponiamo un database per un negozio di animali. Il negozio ha articoli, ha clienti e vendite. Se dovessimo metterlo in Excel, potresti avere questo per le colonne:

Nome cliente | Numero di telefono del cliente | Indirizzo del cliente | Articolo acquistato | Prezzo | Data

La prima cliente, la signora Smith, acquista cibo per gatti:

Nome cliente | Numero di telefono del cliente | Indirizzo del cliente | Articolo acquistato | Prezzo | Data
Mrs Smith | 123-555-1234 | 10 Main St | Cibo per gatti | $ 15 | 2011-03-11

E poi anche la signora Smith vorrebbe un giocattolo per gatti:

Nome cliente | Numero di telefono del cliente | Indirizzo del cliente | Articolo acquistato | Prezzo | Data
Mrs Smith | 123-555-1234 | 10 Main St | Cibo per gatti | $ 15 | 2011-03-11
Mrs Smith | 123-555-1234 | 10 Main St | Giocattolo gatto | $ 1 | 2011-03-11

E praticamente ritorna ogni 2 settimane circa e compra le stesse cose. Con questo metodo, duplicate molte informazioni e ciò può causare errori. Inoltre, non è possibile archiviare un inventario in questo, deve essere un intero altro foglio Excel e quello dovrà essere aggiornato ad ogni vendita.

Con un database, potremmo avere tre entità separate: Clienti (con le loro informazioni), Articoli (con una descrizione e un prezzo) e Vendita (un collegamento tra clienti e articoli, con una data e una quantità).


Inoltre, è molto importante menzionare: pinaldave.com/blogfolder/dilbert5.jpg
MPelletier,

1

Alcune buone risposte tecniche qui. Ma il mio capo non avrebbe capito nessuno di loro!

Vorrei iniziare con una spiegazione estremamente semplice: "Se salvi i tuoi dati in un file, questo appare come un lungo elenco. Un database relazionale salva i dati più come una mappa o un grafico, quindi diverse parti della mappa si collegano tra loro .... '

E un esempio: ".... ad esempio il tuo nome si collega al tuo indirizzo, che a sua volta potrebbe essere collegato alla tua città".

Seguito dai benefici per gli affari che gli interessano: "Il vantaggio è che è molto più economico scrivere codice per ottenere dati complicati, ad esempio" trovami tutte le persone che vivono a Seattle il cui cognome è Smith ". Anche i database relazionali sono molto affidabili e veloci. '

E termina con una dichiarazione di credibilità: "I database relazionali esistono da molti anni, sono tecnologie molto mature. Il nostro prodotto particolare è [nome prodotto qui] '.


0

Il mio capo è il DBA, ma in parole povere:

Pensa a due tabelle in Excel e alla funzione LOOKUP per fare riferimento a elementi in una tabella a un'altra. Ora ridimensionalo di almeno un fattore 10.

Riguarda il livello di computer di alcune persone e del lavoro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.