sql-tabellen automatisiert normalisieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sql-tabellen automatisiert normalisieren

    hollachens zusammen,

    ich arbeite gerade an einem tool, das mir eine xml-datenbank in eine sql-datenbank schiebt. klappt auch soweit alles ganz wunderbar und cheffe meint dazu

    nun hat die xml-db den nachteil, das daten x-fach vorkommen können und dies sich auch in der sql-db wiederspiegelt und somit alle vorteile der sql-db für die tonne sind (vom handling mal abgesehen).

    normalisierung ist nun so ein zauberwort, das auf der todo-liste ganz oben steht. hat sich damit schon mal jemand befasst ??? mir geht es weniger um fertige scripte als vielmehr um die grundsätzliche vorgehensweise. wenn ich eine db aufbaue, dann mache ich mir im vorfeld schon so meine gedanke, wie die architektur aussieht. nur hier weiß ich es ja nicht, sondern bekomme nur einen wust an tabellen (allerdings mit sprechenden namen) ...

    vorab thx

    bis denne

    megle

  • #2
    Re: sql-tabellen automatisiert normalisieren

    Original geschrieben von meglepetes
    [...] mir geht es weniger um fertige scripte als vielmehr um die grundsätzliche vorgehensweise. [...]
    dann handelt es sich eindeutig um ein brainstorming.

    *VERSCHIEB*
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      nomalerweise (wortwitz) normalisiert man bis zur 3. NF

      die sieht so aus:
      • die felder sind atomar, d. h. es steht je nur ein datensatz drin
      • alle nicht-schlüsselfelder sind vom gesamten primärschlüssel abhängig (wenn es ein zusammengesetzter primärschlüssel is)
      • es gibt keine felder, die von nicht-schlüsselfeldern abhängig sind
      stell dir vor du hast ne kundentabelle:
      Code:
      bank                          | kunde# | kundename
      4711 raffzahn bank (54562578) |  54574 | mustermann
      das wäre 0. NF

      1. NF:
      Code:
      konto# | bank          | blz      | kunde# | kundename
        4711 | raffzahn bank | 54562578 |  54574 | mustermann
      2. NF:
      Code:
      blz      | bank
      54562578 | raffzahn bank
      
      konto# | kunde# | kundename
        4711 |  54574 | mustermann
      3. NF
      Code:
      blz      | bank
      54562578 | raffzahn bank
      
      kunde# | kundename
       54574 | mustermann
      
      konto# | blz      | kunde#
        4711 | 54562578 | 54574
      nach dieser vorgehensweise solltest du das zeug normalisieren können, auch wenn das beispiel mit an sicherheit grenzender wahrscheinlichkeit nicht 1:1 übernommenwerden kann
      EDIT:
      jetzt hab ich so lang geschrieben, dass ich gar nich mehr verschieben konnt
      Zuletzt geändert von mrhappiness; 07.10.2003, 08:28.
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        @Happy:

        atomare Felder ? - meinst du nicht binäre Tabellen ?
        Also Tabellen aus Schlüssel+Wert?

        Und wenn du eine DB in diese Binärform gebracht hast,
        biste bereits in der 5.Normalform !
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          ich mein das so:

          nicht atomar:
          Code:
          kunde# | konto#
               1 | 4711, 4578
          atomar:
          Code:
          kunde# | konto#
               1 | 4711
               1 | 4578
          oder heißt das anders?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            wie die normalisierung funzt, das weiß ich schon (zumindest in groben zügen *feix*).

            mir geht es nun um das durcharbeiten der tabellen. in der tabelle pcdata stehen die daten (sag ich mal so), die tabelle eltern_kind verwaltet die eltern-kind-beziehungen (in den spalten => id, eltern, elternid, kind und kindid) . und dann gibt es halt noch für jeden tag des xml-files eine eigene tabelle.

            nehme ich nun einfach mal eine verwaltung mit abteilungen, die in zwei gebäuden untergebracht ist (*spinn*). dann taucht die adresse von gebäude a als zusammengehöriger block x-mal auf. ich muß also die innersten tags checken, ob str UND plz UND ort (halt alle schwestern) identisch sind und doppelt vorkommende rauswerfen und den tag adresse entsprechend verlinken ... irgendwie so halt ...

            zum datentransfer mag xml ja ganz gut sein, als db erschließt sich mir der sinn noch nciht so ganz ...

            Kommentar

            Lädt...
            X