Jump to content

denormalisierung


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

hallo,

 

ich habe ein problem beim verstehen einer grundlegenden sache:

Mir sind einige Softwarepakete bekannt welche von großen und renomierten firmen entwickelt werden, sich aber nicht an die grundlagen von Datenbankdesign und ähnliches halten.

 

als beispiel nehme ich die wirtschaftssoftware navision von Microsoft.

Das System ist mssql server basierend und dient zu solchem kosten leistungsrechnungs gelumpe.

 

nach der installation finden sich in der datenbank ca. 1000 tabellen. Es gibt keine einzige beziehung. Ein datenbankdiagramm von 1000 tabellen ohne eine einzigste beziehung. weiterhin findet man tabellen mit verbundprimärschlüsseln über 5-8 spalten. keine gesetzten indexe oder regeln. Bis auf die Primärschlüssel lässt nichts auf eine ausgereifte 3. normalform schließen. Keine trigger und die applikation arbeitet anscheinend ausschließlich mit dynamisch generierten sql strings. Das heist es gibt keine einzige prozedur.

 

dabei verstehe ich folgendes nicht:

warum ist in den microsoft lehrbüchern immer von 3. Normalform datenbankzugriff über prozeduren verwenden von triggern und das setzen von sinnvollen indexen die rede?

Es ist ja nicht die rede davon, es klingt ja vielmehr immer so, das man das so und auf keinen fall anders machen soll.

 

hat jemand eine idee, warum man eine applikation schreibt und diese direkt auf einem nicht normalisierten tabellenhaufen arbeiten lässt? Fasst sämtliche vorteile der datenbank werden ungenutzt gelassen. Was ist der grund dafür, das gerade solche großen und erfahrenen firmen so etwas produzieren.

ich kann mir nicht vorstellen, das so ein ms entwickler noch nichts von vormalisierung, prozeduren und indexen gehört hat. Es muss einen anderen grund geben, welcher in den lehrbüchern aber nicht zu finden ist.

Link zu diesem Kommentar

Hallo,

 

Navision ist ja erst vor einiger Zeit von MS gekauft worden(2-3J?). Davor haben die meines Wissens mit einem eigenen DB Format gearbeitet. Ich vermute mal, dass es für Navision der einfachste Weg war, das so auf SQL zu portieren. Damit haben die jetzt den Label läuft auf SQL, ob das dann performant ist oder nicht, dass ist die zweite Frage.

 

try_to_find

Link zu diesem Kommentar

ich hatte so in die performance richtung gedacht.

 

hatte also diese befürchtung, das das ganze rumnormalisieren, indexe und trigger letztendlich zu einer performancebremse werden und deswegen die "schlauen" von ms die ganze sache weggelassen haben.

 

quasi nach vorne heraus in die leerbücher was von normalisierung schreiben und selber wissen, das ein ***** tabellenhaufen eigentlich performanter ist.

 

ich glaube aber nicht so recht dran. in meinem hirn kann ich die begriffe performance und prozedur einfach nicht trennen.

 

 

noch etwas ist aufgefallen:

im navision können mehrere betriebe angelegt werden.

die tabellen haben aber immer den namen "BETRIEB$irgendwas"

bei jedem anlegen eines betriebes werden also ca. 1000 tabellen erstellt.

 

bei einer normalisierung währe das ja mit einer neuen zeile in einer tabelle zu erledigen.

 

warum wird das so gemacht? gibt es vielleicht gesetzliche vorschriften, das diese geschäftsdaten von mehreren betrieben nicht in einer tabelle vermischt werden dürfen?

 

wo findet man informationen zu dem vorherigem system (vor der übernahme)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...