Avatar billede pnr Nybegynder
01. december 2004 - 13:43 Der er 5 kommentarer og
1 løsning

Spørgsmål til database design

Jeg har altid prøvet et overholde normalformerne, men nu lige pludselig er der en der siger til mig at det bruger man ikke mere, for maskinerne idag er blevet så hurtige at det har ikke noget at sige. Er det korrekt?
Avatar billede nheilbuth Nybegynder
01. december 2004 - 14:01 #1
Det skulle undre mig meget at lige pludselig smider de gode gamle normalformer væk. Man bruger jo heller ikke normalformerne til at øge performance, men til at sørge for at ens databasedesign er så overskueligt som muligt, og at man ikke gemmer de samme oplysninger flere steder. Dette er ikke kun for at holde størrelsen på databasen nede, men hvis samme værdi ligger flere steder, risikerer man at den ikke bliver opdateret alle stederne.
Så der er bestemt ikke noget galt med at bruge normalformerne!
Avatar billede arne_v Ekspert
01. december 2004 - 14:02 #2
Nej.

Formålet med normal former er ikke at optimere hastighed men at sikre
konsistente data i databasen.

Ofte har normalisering endda en negativ effekt på performance.

Det kan man så vælge at leve med eller man kan overtræde normaliserings
reglerne hvis man finder det nødvendigt.

Min erfaring er iøvrigt at data mængderne vokser lige så hurtigt som
database serverne bliver hurtigere og at det derfor er næærmest status quo
med hensyn til performance.
Avatar billede janus_007 Nybegynder
01. december 2004 - 23:06 #3
Jeg giver arne ret det meste af vejen, men er altså ikke enig i at normalisering altid kan have en negativ performance. Jeg vil faktisk sige tværtimod og oveniøbet kan man sige at normaliseringen udnytter hurtigere maskiner endnu bedre.

Normalisering af 2.grad siger at du skal fjerne redundant data og lave en relationstabel. Tænk hvis du nu ikke havde en relationstabel, mn måske skulle lede efter et bestemt ord imellem 10M rækker. Ja et index vil nok hjælpe på søgningen, men stadigvæk er det ikke hurtigere end at søge på en integer  (som jo tilmed kunne være en primary key).

Tilsidst vil jeg lige tilføje at det igen afhænger utroligt meget af ens design om hvorvidt en normalisering vil kunne svare sig eller ej og man ser ofte denormaliserede tabeller rundt omkring fordi de er det nemmeste. Og hvem tænker også på den slags ved tabeller under 100K rækker.
Avatar billede arne_v Ekspert
01. december 2004 - 23:29 #4
Nu sagde jeg ikke "altid" men "ofte".

Der er jo nok en grund til at highend database supporterer materialized views.

Det jeg synes er vigtigt er at man starter med fuld normalisering, så tester
man performance, hvis den er accepatabel så forbliver man fuld normaliseret,
hvis performance ikke er acceptabel så kan man jo prøve (blandt mange
tiltag) at denormalisere for at slippe af med nogle joins, og hvis det
hjælper (hvilket det absolut ikke altid gør), så kan man altså leve
lykkeligt i denormaliseret tilstand
Avatar billede pnr Nybegynder
10. december 2004 - 13:11 #5
Hov den her havde jeg glemt,smid nogle svar så smider jeg point! Og mange tak for jeres kommentar!
Avatar billede arne_v Ekspert
10. december 2004 - 14:56 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester