Nee, daar is big data dus niet voor. Big data is voor grote niet relationele datasets. Daarom heet het ook big data.
Kortom iets met over-engineren.
Dit heeft niets met overengineering te maken maar met de basis. Als je op de basis al gaat zitten prutsen, zul je nooit verder komen dan gepruts. Overengineering is een 5e normaalvorm eisen. Dat doe ik niet.
Nee. Daar heeft het niets mee te maken. Normaliseren is niet bedacht vanuit overengineerings-perspectief of het mensen lastig te maken. Er is gewoon, al sinds de jaren 70, in de praktijk gebleken dat het werkt. Idealiter wil je dus netjes genormaliseerd werken.
Echter, soms kan het hierdoor ontstaan dat je teveel lees/schrijfbewerkingen krijgt of er andere performance-issues optreden. Omwille van de performance kun je er dan voor kiezen om te denormaliseren, maar ook alleen met dat doel.
Voorbeeld stel je maakt een NAW database waarin mensen meerdere telefoonnummers kunnen hebben. Dan komt er dus een andere tabel voor telefoonnummers. Nu kan het zijn dat je gigantisch veel data in die tabel krijgt en de join met de telefoonnummertabel daarin problemen geeft, terwijl je eigenlijk altijd alleen het hoofdnummer nodig hebt. Je zou in zo'n situatie ervoor kunnen kiezen om toch een kolom 'hoofdtelefoonnummer' in je naw tabel op te nemen.
Dat heeft dus niets met overnormalisatie of overengineering te maken.
Dit zijn vaak de foute denkwijzes die je bij jonge developers ziet. Pas na een 10 jaar werken en ervaring opdoen, ga je leren waarom normaliseren wél goed is.
Vergelijk het met het beginnen met het gebruiken van een agenda. Jonge mensen zullen ook zeggen dat dat veel te ingewikkeld is, teveel werk, enzovoort. Tot ze (door school) gedwongen worden het een tijdje te doen, en 3 jaar later gaan ze huilen als je ze hun agenda afpakt.
//nav moderator hieronder, heb ik een stuk uit mijn posting verwijderd. Dank voor de moderatie!
[
Voor 8% gewijzigd door
Verwijderd op 26-07-2017 17:20
]