1. Ripetizione delle informazioni (ridondanza dei dati):
* Cos'è: Ciò significa che lo stesso pezzo di dati è archiviato in più punti all'interno del database. Ad esempio, se memorizzi l'indirizzo di un cliente sia in una tabella "clienti" che in una tabella "ordini", hai ridondanza.
* Perché è male:
* Aggiorna anomalie: Se hai bisogno di aggiornare l'indirizzo del cliente, devi cambiarlo in * ogni posto che viene archiviato. La mancanza anche di un aggiornamento porta a incoerenze e corruzione dei dati. Immagina di aggiornare l'indirizzo nella tabella `ordini 'ma dimentica di aggiornarlo nella tabella` clienti' - ora i tuoi dati non sono affidabili.
* Anomalie di inserzione: Non puoi aggiungere un nuovo cliente a meno che non abbiano effettuato un ordine (perché l'indirizzo deve andare da qualche parte). Allo stesso modo, non è possibile aggiungere un nuovo prodotto a meno che un cliente non lo stia ordinando. Il database ti sta costringendo a creare dati non necessari solo per archiviare fatti di base.
* Anomalie di eliminazione: Se si elimina un cliente, è possibile eliminare involontariamente la cronologia degli ordini se le informazioni sull'indirizzo vengono archiviate solo nel record dell'ordine. Oppure, se si elimina un ordine, non stai eliminando le informazioni del cliente, portando a dati orfani.
* Scasso di stoccaggio: I dati ridondanti consumano spazio su disco non necessario e aumentano le dimensioni del database, facendo backup e query più lenti.
2. Incapacità di rappresentare le relazioni:
* Cos'è: Ciò si riferisce a situazioni in cui la struttura del database non cattura efficacemente le relazioni tra entità diverse (cose). Ad esempio, un database potrebbe avere difficoltà a rappresentare una relazione da molti a molti (come studenti e corsi, in cui uno studente può seguire molti corsi e un corso può avere molti studenti) senza un design attento.
* Perché è male:
* Problemi di integrità dei dati: Senza un modo adeguato di rappresentare le relazioni, è più difficile imporre l'integrità referenziale (assicurarsi che le relazioni siano coerenti). Ciò può portare a record orfani (registrazioni che fanno riferimento a dati inesistenti) o incoerenze nelle relazioni.
* query complesse: L'estrazione di informazioni significative richiede la scrittura di query complesse e inefficienti per unire più tabelle e gestire le incoerenze create dalla scarsa rappresentazione delle relazioni.
* Funzionalità limitata: Il database potrebbe non essere in grado di eseguire facilmente determinate operazioni perché le relazioni non sono chiaramente definite. Ad esempio, potrebbe essere difficile trovare tutti gli studenti iscritti a un corso specifico se la relazione non è adeguatamente modellata.
* Manutenzione difficile: La modifica o l'estensione del database diventa un incubo poiché la mancanza di relazioni chiare rende difficile comprendere la struttura dei dati esistenti e le sue implicazioni.
In sintesi, sia la ridondanza dei dati che l'incapacità di rappresentare le relazioni portano correttamente a un database inefficiente, soggetto a errori, difficile da mantenere e non supporta efficacemente la logica aziendale prevista. Una buona progettazione di database relazionali mira a ridurre al minimo la ridondanza e il modello di relazioni esplicitamente utilizzando tecniche come la normalizzazione e la creazione di relazioni chiave estere.
software © www.354353.com