2013-03-18 12 views
5

enter image description hereNormalizzazione h/w

fu detto di metterlo in UNF/1NF/2NF/3NF, è corretto?

Mostra i dati sopra riportati come una relazione in UNF (dati non normalizzati).

clienti (CustomerID, Nome, Cognome, Indirizzo, Città, Telefono, Stato, CAP, Quantita, ProductNo, descrizione, prezzo unitario, totale, totale parziale, Spedizione, Aliquota fiscale, Data, OrderNo.))

Mostra i dati come relazione/i in 1NF. (Indicare eventuali chiavi.)

clienti (CustomerID, Nome, Cognome, Indirizzo, Città, Stato, Telefono, Stato, CAP) prodotto (ProductNo, Quantita, Descrizione, UnitPrice,, subtotale, il trasporto, il tasso fiscale totale (s), CustomerID (FK).) Order (OrderNo, Date, ProductNo (FK).)

Mostra i dati come una relazione/i in 2NF. (Indicare eventuali chiavi.)

clienti (CustomerID, Nome, Cognome, Indirizzo, Città, Telefono, Stato, CAP) prodotto (ProductNo, Quantita, Descrizione, UnitPrice, CustomerID (FK), Total (FK).) Order (OrderNo, Data, CustomerID (FK), ProductNo (FK).) totale (Total, subtotale, il trasporto, Aliquote, ProductNo (FK), CustomerID (FK))

Mostrare i dati come una relazione/i in 3NF. (Indicare eventuali chiavi.)

clienti (CustomerID, Nome, Cognome, Indirizzo, Città, Telefono, Stato, CAP) prodotto (ProductNo,, descrizione, prezzo unitario. CustomerID (FK), Total (FK)) Ordine (OrderNo, Date, CustomerID (FK) .ProductNo (FK)) Totale (totale, subtotale, ProductNo (FK), CustomerID (FK)) Spedizione (spedizione, aliquote fiscali, totale (FK), ordineNo (FK)) Quantità (QtyID, Quantita, ProductNo (FK), OrderNo (FK).)

risposta

0

Mostrare i dati precedenti come una relazione in UNF (dati non normalizzati).

clienti (CustomerID, Nome, Cognome, Indirizzo, Città, Telefono, Stato, CAP, Quantita, ProductNo, descrizione, prezzo unitario, totale, subtotale, il trasporto, imposte Rate, Data, OrderNo.))

No, non è giusto. Non sembra esserci alcun numero identificativo del cliente sulla fattura.La normalizzazione non comporta l'introduzione di nuovi attributi. In quanto raccolta non normalizzata di attributi, l'etichettatura elencata come "Cliente" è prematura.

Mostra i dati come relazione/i in 1NF. (Indicare eventuali chiavi.)

  • clienti (CustomerID, Nome, Cognome, Indirizzo, Città, stato, Telefono, Stato, CAP)
  • prodotto (ProductNo, Quantita, Descrizione, UnitPrice, totale, subtotale , il trasporto, il tasso fiscale (s), CustomerID (FK).)
  • Order (OrderNo, Data, ProductNo (FK).)

goccia CustomerID. (Vedi sopra.) Suppongo che una delle chiavi candidate per la tabella "Prodotto" sia "ProductNo". In tal caso, perché la tabella include "CustomerID"?

Mostra i dati come relazione/i in 2NF. (Indicare eventuali chiavi.)

  • clienti (CustomerID, Nome, Cognome, Indirizzo, Città, Telefono, Stato, CAP)
  • prodotto (ProductNo, Quantita, Descrizione, UnitPrice, CustomerID (FK), Total (FK).)
  • Order (OrderNo, Data, CustomerID (FK), ProductNo (FK).)
  • totale (Total, subtotale, il trasporto, Aliquote, ProductNo (FK), CustomerID (FK))

2NF deve fare con h rimuovendo le dipendenze dalle chiavi parziali. Quale dipendenza da chiave parziale hai identificato che ha giustificato la creazione della tabella "Totale"? (Suggerimento: non c'è alcuna giustificazione per questo.) Fai questo esperimento mentale (o costruiscilo in SQL): Se "Totale" è la chiave primaria per la tabella "Totale", cosa farai se due ordini daranno luogo alla stesso totale?

Mi fermo qui per ora, perché hai davvero scacciato con il piede sbagliato. È necessario avviare con un elenco di tutti gli attributi, quindi identificare le chiavi candidate e le dipendenze funzionali. Senza partire da lì, è improbabile trovare 3NF.

+0

Spiacente, ho dimenticato di aggiungere la nostra insegnante ci ha detto di inserire customerID nelle informazioni – Herk

+0

Sto solo imparando a normalizzare i database (non ho ancora iniziato a usare SQL ancora) quindi Ho avuto un po 'di problemi con questi, non sono proprio sicuro di cosa ho bisogno di fare con il totale – Herk

+0

Fidati di me; "Totale" è * non * il tuo problema. Le chiavi candidate e le dipendenze funzionali sono il tuo problema. –

4

sembra buono per me, ma non trovi il un pezzo cruciale del progetto. Non hai definito chiavi primarie sulle tue tabelle, anche se hai identificato le chiavi esterne (usa le chiavi esterne devi calcolare le chiavi primarie su ognuna delle tabelle :)).

+0

Ah, quello era il mio male, li ho sottolineati a parole, semplicemente non ho copiato qui – Herk

+0

@MatthewCorvi Quindi il tuo design va bene :) – mattytommo

+0

http://imgur.com/N2hKMtQ, questa è la versione corretta (Penso) – Herk

0

Una cosa interessante delle fatture .... J Frompton ordina un rake oggi, ma in futuro il prezzo cambierà. Tuttavia, ciò non cambia il prezzo che Frompton ha pagato oggi.

Una volta soddisfatte le fatture, è necessario spostarle su un tavolo di 1 NF.

+0

La domanda è puramente teorica, ed è solo quella parte – Herk