Modul 153

Aus TBZ_-_Wiki
Version vom 23. September 2016, 09:25 Uhr von Console Argonaut (Diskussion | Beiträge) (Mehrfachbeziehungen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

Modul 153: Datenmodelle entwickeln

Löschen in professionellen Datenbanken

In professionellen Datenbanken ist normalerweise das Löschen eines Tupels ein absolutes Tabu. Statdessen gibt man einem Tupel einen Wert welcher indiziert ob dieses aktiv ist oder nicht.

Ebenfalls sollen keine Fremdschlüssel geändert werden. (Auch Wert Wahr/Falsch)

Mehrfachbeziehungen

Eine Mehrfachbeziehung ist eine 1:m, 1:mc oder mc:mc Beziehung.

Um eine mc:mc zu ermöglichen wird eine Zwischentabelle benötigt mit den jeweiligen Fremdschlüsseln.

Beispiel: Eine Person kann mehrere Lieder kennen. Ein Lied kann bei mehreren Personen bekannt sein.

Hier wird eine Tabelle erstellt, welche einen Fremdschlüssel auf die Person, und das jeweilige Lied enthält.

Generalisierung

Eine Generalisierung ist notwendig, wenn man in mehreren Tabellen die gleichen Daten hat (Z.B. Kunde und Mitarbeiter). Bei der Generalisierung nimmt man die redundanten Werte, und setzt sie in eine einzelne Tabelle (Bei Kunde und Mitarbeiter der Vor-, Nachname, etc).

Wo die Redundanten Daten vorher waren wird ein Fremdschlüssel gesetzt.

Rekursion

Eine Rekursion ist ein Verweis einer Tabelle auf sich selbst. (Z.B. Ein Mitarbeiter hat einen Vorgesetzten, welcher ebenfalls ein Mitarbeiter ist. "c:mc Beziehung")

Hier gibt es ein Problem (Stücklistenproblem), und zwar das es nicht mehr leicht möglich ist die Daten hierarchisch abzufragen, wenn eine Zwischentabelle verwendet wurde.

Beispiel: Man hat ein Objekt, welches aus mehreren Objekten besteht, welche wiederum aus Teilobjekten bestehen. Hier ist es schwer alle kleinsten bestandteile herauszufiltern.

Suchverfahren

Bei beiden Suchvefahren wird als erstes die gewünschte Column sortiert.

Binäre Suche: In der Mitte wird geschaut, ob der gesuchte Wert höher oder tiefer ist, und von dem nun halbierten Abschnitt wird wieder die Mitte genommen, etc. Das ganze bis der Wert gefunden wurde.

Interpolationssuche: Es wird der höchste und tiefste Wert der Column genommen, dann wird Ausgerechnet wo der gesuchte Wert ungefähr sein müsste und von dort wird geschaut ob der Wert höher oder tiefer ist. Rinse and repeat, bis der gesuchte Wert gefunden wurde.


Die Interpolationssuche ist schneller als die Binäre Suche, braucht aber viel mehr Rechenleistung. Desshalb wird sie meist nur bei grossen Tabellen verwendet.

Indextabellen

Indextabellen machen die Suche nach Datensätzen schneller. Eine Indextabelle beinhaltet eine Column der Datenbank, welche bereits sortiert wurde.

So werden weniger Daten gebraucht für die Abfrage und die Suchverfahren sind effizienter.