Domanda

Sto studiando per un test di database, e la guida di studio ci sono alcuni (molti) esercizi di normalizzazione della DB, e dipendenza funzionale, ma l'insegnante non ha fatto alcun esercizio simile, quindi vorrei aiuto qualcuno a capire questo per attaccare gli altri 16 problemi.

1) Dato il seguente schema logico: product_sales relazione

POS     Zone     Agent   Product_Code   Qualification   Quantity_Sold
123-A   Zone-1   A-1     P1             8               80
123-A   Zone-1   A-1     P1             3               30
123-A   Zone-1   A-2     P2             3               30
456-B   Zona-1   A-3     P1             2               20
456-B   Zone-1   A-3     P3             5               50
789-C   Zone-2   A-4     P4             2               20

Supponendo che: • Punti di Vendita sono raggruppati in Zone. • ogni punto vendita ci sono agenti. • Ogni agente opera in un unico POS. • Due agenti degli stessi punti di vendita non possono commercializzare lo stesso prodotto. • Per ogni prodotto venduto da un agente, viene assegnato un Qualification seconda del prodotto e la quantità venduta.

a) Indicare 4 dipendenze funzionali presenti.
b) Qual è la forma normale di questa struttura.

È stato utile?

Soluzione

Per iniziare a trovare le 4 dipendenze funzionali, pensate che attribuisce depend su un altro attributo:

es: fa la zona dipende dal POS? (In tal caso, POS -> Zona ) o se il POS dipende dalla zona? (In questo caso Zone -> POS ).

Quattro dei vostri cinque affermazioni ti dice qualcosa circa le dipendenze tra attributi (o combinazioni di diversi attributi).


Per quanto riguarda la normalizzazione, c'è una (relativamente) CLEAR esercitazione qui . La frase "la chiave, la chiave di tutta la, e nient'altro che la chiave" è anche un buon modo per ricordare il 1 °, forme normali 2a e 3a.

Altri suggerimenti

Nel vostro commento è detto

Bene, Secondo la teoria che ho letto penso possa essere, ma ho molti dubbi: POS ? Zone, {POS, agente} ? Zona, agente ? POS, {agente, Codice_prodotto, Quantity_Sold} ? Qualification -

penso che sia un buon tentativo.

  1. Penso POS-> Zone è giusto.
  2. Non credo {POS, agente} ? Zone è giusto. Se si guardano i dati di esempio, e ci pensi un po ', credo che troverete che agent-> POS, e che agent-> Zone.
  3. Non credo {agente, codice_prodotto, Quantity_Sold} ? qualificazione è giusto. Gli stati requisito "per ogni prodotto venduto da un agente, viene assegnato un Qualification seconda del prodotto e la quantità venduta." La parte importante di questo è "una qualificazione a seconda del prodotto e la quantità venduta". Qualificazione dipende prodotto e la quantità, così {codice_prodotto, Quantità} -> qualificazione. (Nulla nel requisito mi fa pensare che la qualificazione potrebbe essere diverso per gli ordini identici da due diversi agenti.)

Quindi, sulla base di un commento, penso che tu abbia queste dipendenze funzionali finora .

  • POS-> Zone
  • agent-> POS
  • agent-> Zone
  • codice_prodotto, Quantità-> Qualificazione

Ma ti manca almeno uno che ha un effetto significativo sulla determinazione chiavi. Ecco il requisito.

Due agenti degli stessi punti di vendita non possono commercializzare lo stesso prodotto.

Come si fa a esprimere la dipendenza funzionale implicito in tale requisito?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top