sql >> Database teknologi >  >> RDS >> Oracle

Er det virkelig bedre at bruge normaliserede tabeller?

Det afhænger af... at sammenføje tabeller er i sagens natur langsommere end at have et stort bord, der er 'for-sammenføjet', dvs. denormaliseret. Men ved at denormalisere vil du skabe dataduplikering, og dine tabeller bliver større. Normalisering ses som en god ting, fordi det skaber databaser, der kan besvare 'ethvert' spørgsmål, hvis det er korrekt gjort, kan du bygge et udvalg for at komme til dine data. Dette er ikke tilfældet i nogle andre former for DB, og det er nu (for det meste) historiske irrelevanser, den normaliserede/relation DB vandt den kamp.

Tilbage til dit spørgsmål, at bruge de-normalisering for at få tingene til at gå hurtigere er en velkendt teknik. Det er normalt bedst at køre din DB i et stykke tid, så du ved, hvad du skal denormalisere, og hvad du skal lade være, og det er også almindeligt at lade dataene ligge i dens 'korrekte' normaliserede form og trække data ind i et sæt denormaliserede rapporter. borde med jævne mellemrum. Hvis denne proces udføres som en del af selve rapporten, er dataene også altid opdaterede.

Som et eksempel på overnormalisering har jeg tidligere set DB'er, hvor ugedagene og årets måneder blev trukket ud i separate tabeller - selve datoerne blev normaliseret - du kan gå for langt.



  1. MySql 5.7-installationsprogrammet kan ikke registrere VS 2013-redistributable

  2. Oracle MERGE-sætningsfejl (ORA-30926)

  3. Hvordan sender man parameteren til en postgre-funktion og får data ved hjælp af ExecuteReader?

  4. Forespørgselselementer i et indlejret array af et json-objekt i postgresql 9.4 eller 9.5