Modul 153
Modul 153: Datenmodelle entwickeln
Inhaltsverzeichnis
Projekte - Ideen und Vertiefungen
- für Tauschbörsen:
- Aushub Tauschplattform - leider nur für registrierte Benutzer anwendbar, aber die Idee ist erkennbar
- [https://www.nimms.ch/ Wiederverwendung, Weitergabe von Gütern
- recycler - francophon, wird aktuell überarbeitet - Inhalte über .com-Domain sichtbar
- Upcycling unter "about Circado" gibt es viele weitere Informationen
- Reffnet - Ressourceneffizienz in Unternehmen
- BAFU - Kreislaufmodelle
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.