Pojawia się następujący problem. Jest nim traktowanie zależności wielowartościowej w procesie normalizacji.
Według poznanej definicji 1NF zakłada się, że każdy atrybut musi być funkcjonalnie zależny od klucza głównego. Ponieważ zależność wielowartościowa jest pojęciem szerszym od zależności funkcjonalnej, to muszę to jakoś rozwiązać. Rozwiązuję to w ten sposób, że włączam atrybut wskazywany zależnością wielowartościową do klucza głównego. I wszystkow porządku. Pojawia się jednak pytanie czy mogę od tak rozbić klucz główny? Innym problemem jest definicja 4NF, która zakłada, że zależność wielowartościowa wcale nie musi wskazywać na atrybut kluczowy.
Jeżeli przyjmę natomiast, że 1NF definiuje tylko, iż każdy atrybut powinien być atomowy, to pojawia się problem z 2NF. Decyduje on, iż każdy atrybut niekluczowy powinien być w pełni funkcjonalnie zależny od klucza głównego. Oznacza to konieczność pozbycia się zależności wielowartościowych i wskazuje, że wskazany atrybut powinien być atrybutem kluczowym.
W 4NF ponoć możemy się jednak spotkać z sytuacją, gdzie atrybut niekluczowy zależny od jakiejś grupy atrybutów , ale wielowartościowo.
Mógłby ktoś rzucić jakimś przykładem? Mi zawsze "zdrowy rozsądek" nakazuje włączyć taką zależność do klucza głównego, by w 4NF zdekomponować schemat relacji z dwiema zależnościami wielowartościowymi na klika mniejszych schematów(dwa mniejsze).
Wiem, że w każdej bazie danych prócz klucza głównego relacja ma często unikalny numer, który jest ukrywany i nie widoczny nawet dla użytkownika. Natomiast, to już jest kwestia konkretnej implementacji. W relacji, która jest zbiorem nie ma powtarzających się elementów.
Jak ominąć założenie 2NF, by dojść z atrybutem niekluczowym zależnym wielowartościowo od innego atrybutu do 4NF?