/ / Normalizzazione del database - database, normalizzazione

Normalizzazione del database: database, normalizzazione

come normalizzare una tabella da uno schema relazionale fino a BCNF. Qualcuno può spiegare la normalizzazione del sottostante schema relazionale fino a BCNF con i dettagli.

info(id, companyName, contactName, contactTitle, address, city, postalCode, country, phone, fax, email, website)

risposte:

3 per risposta № 1

Puoi fare la normalizzazione solo quando lo haidefinite dipendenze funzionali. Dammi un insieme di dipendenze funzionali (ad es., Id determina in modo univoco companyName, il codice postale determina univocamente il Paese, ecc.) E possiamo parlare di normalizzazione.

Lasciatemelo affermare di nuovo: nessun essere umano razionale può tentare di rispondere alla tua domanda senza che tu ci dia le dipendenze funzionali. Se si desidera che venga fornito un aiuto con una serie di dipendenze funzionali significative per questo schema, possiamo ipoteticamente ipotizzare quali siano le regole che i tuoi dati dovrebbero seguire, ma alla fine spetta a te dirci quali sono le tue regole aziendali.

Detto ciò: una volta che si hanno le dipendenze funzionali, ottenere la relazione in BCNF è abbastanza semplice. La tua relazione è in BCNF se la parte sinistra di ogni dipendenza funzionale è una superchia. Se si dispone di una dipendenza funzionale che viola questo, è sufficiente trasformarlo in una nuova relazione. Quindi trasformerai la tua relazione non-BCNF in un insieme di relazioni che sono o in BCNF o no, in tal caso, fermati, altrimenti continua: nota che questo processo termina perché le relazioni con due colonne sono banali in BCNF.


-3 per risposta № 2

La forma normale di Boyce Codd significa solo che sei dentro3a forma normale con l'aggiunta che le chiavi esterne sono collegate tra le tabelle, senza la possibilità che altre colonne causino incoerenze. Mi piace l'esempio nel link sottostante che mostra una tabella che descrive "Shop Near Person". Ha una chiave primaria per una persona, una chiave primaria per un negozio, quindi un altro campo che mostra il tipo di negozio. Ciò viola il BCNF perché il campo "tipo di negozio" potrebbe non essere coerente quale chiave primaria del negozio.

BCNF è spiegato decentemente qui: http://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form

Sto facendo alcune supposizioni, ma ecco comedividerebbe i campi. Ad alcune persone piace andare oltre e dividere gli indirizzi, ma sento che si sta normalizzando oltre il 3 ° modulo. Ho notato che avevi un campo Paese, quindi ho anche diviso i campi del telefono per la selezione internazionale, poiché il numero cambierà a seconda del Paese da cui chiami e da dove stai chiamando.

Aziende

company_id, companyName, indirizzo, città, stato, codice postale, country_id, phoneCountryCode, phoneAreaCode, phoneVoiceNumber, phoneExtension, phoneFaxNumber

Contatti

contact_id, company_id, contactName, contactTitle, contactEmail

paesi

country_id, countryName