13 Punkte von GN⁺ 2024-07-25 | Noch keine Kommentare. | Auf WhatsApp teilen

Einführung

In diesem Tutorial zum Datenbankdesign wird gezeigt, wie man Datenbanktabellen für ein komplexes reales Projekt entwirft. Es wird ein Klon von Google Calendar entworfen. Diese Reihe erläutert den Ansatz aus dem Buch "Database Design using Minimal Modeling". Zunächst wird ein vollständiges logisches Modell erstellt, das die Kalenderdaten beschreibt, und anschließend wird auf Basis dieses logischen Modells das Tabellendesign entwickelt.

Zielgruppe

Das Ziel dieses Buches ist es, dabei zu helfen, von einer vagen Idee zu einer vollständigen Definition von Datenbanktabellen zu gelangen. Für die ersten drei Viertel des Textes ist nur ein allgemeines Verständnis von Datenbanken erforderlich; dort wird das logische Modell erläutert. Im letzten Viertel wird erklärt, wie man vom logischen Modell zur physischen Tabellenstruktur übergeht.

Inhaltsverzeichnis

  • Einführung
  • Der Ansatz dieses Buches
  • Problembeschreibung
  • Teil 1: Grundlegende ganztägige Ereignisse
  • Teil 2: Zeitbasierte Ereignisse
  • Teil 3: Wiederkehrende ganztägige Ereignisse
  • Teil 4: Rendering der Kalenderseite
  • Teil 5: Rendering der Kalenderseite für zeitbasierte Ereignisse
  • Teil 6: Das vollständige logische Modell bis hierhin
  • Teil 7: SQL-Tabellen erstellen
  • Fazit
  • Nächste Schritte

Der Ansatz dieses Buches

Oft beginnen Menschen direkt mit dem Tabellendesign, aber hier wird ein anderer Ansatz gewählt. Zuerst wird ein logisches Modell erstellt und die Beziehung zwischen Datenattributen und Entitäten definiert. Sobald das logische Modell feststeht, werden die physischen Tabellen entworfen.

Problembeschreibung

Die Hauptfunktionen von Google Calendar sollen implementiert werden. Benutzerdaten werden dabei nur minimal umgesetzt. Ereignisse haben Attribute wie Titel, Beschreibung und Ort. Der komplexeste Teil betrifft Zeit und Datum.

Teil 1: Grundlegende ganztägige Ereignisse

Anker

Zuerst müssen Anker gefunden werden. Ein Anker ist eine Entität, zum Beispiel Benutzer (User) oder Ereignis (Event). Anker übernehmen ID und Zählung.

Benutzerattribute

Für Benutzer werden nur minimale Daten modelliert, zum Beispiel die E-Mail-Adresse.

Attribute ganztägiger Ereignisse

Gespeichert werden müssen Ereignisname, Startdatum und Enddatum.

Links

Es muss festgelegt werden, wo die Information gespeichert wird, dass ein bestimmter Benutzer ein bestimmtes Ereignis erstellt hat. Dies wird nicht als Attribut, sondern als Link behandelt.

Teil 2: Zeitbasierte Ereignisse

Zeitzonen

Zeitzonen werden in vielen Ländern und Regionen verwendet. Die Definitionen von Zeitzonen ändern sich gelegentlich. Es wird ein minimales Modell für Zeitzonen implementiert.

Attribute von Zeitzonen

Gespeichert wird ein für Menschen lesbarer Name der Zeitzone.

Attribute zeitbasierter Ereignisse

Gespeichert werden Ereignisname, Startzeit und Endzeit. Verwendet wird lokale Zeit.

Links

Der Link zwischen Zeitzone und zeitbasiertem Ereignis wird definiert.

Ähnlichkeiten zwischen Datumsereignissen und Zeitereignissen

Die Ähnlichkeiten zwischen den beiden Ereignistypen werden betrachtet. Durch logische Modellierung kann die Entscheidung dazu aufgeschoben werden.

Teil 3: Wiederkehrende ganztägige Ereignisse

Attribut #1, Intervall

Es wird ein Attribut definiert, das beschreibt, wie oft sich ein Ereignis wiederholt.

Attribut #2, verschachtelte Attribute

Das Intervall wiederkehrender Ereignisse wird definiert.

Attribut #3

Für monatliche Ereignisse wird definiert, ob sie sich am gleichen Tag oder am gleichen Wochentag wiederholen.

Wochentage: Mikro-Anker

Es wird entschieden, wo Wochentage gespeichert werden. Dafür wird ein neuer Anker eingeführt.

Links

Der Link zwischen Wochentag und Ereignis wird definiert.

Überprüfung auf Vollständigkeit

Um zu prüfen, ob die Modellierung abgeschlossen ist, werden die ursprünglichen Anforderungen noch einmal betrachtet.

Wiederholungsgrenze: weitere verschachtelte Attribute

Es wird ein Attribut definiert, das festlegt, bis wann sich ein Ereignis wiederholt.

Teil 4: Rendering der Kalenderseite

Bisher wurde der Teil des Kalenders behandelt, der die Aufzeichnung betrifft. Nun muss die Wochenansicht des Kalenders für den Benutzer angezeigt werden.


Zusammenfassung von GN⁺

Dieses Tutorial erklärt komplexes Datenbankdesign Schritt für Schritt und macht es so auch für Einsteiger leicht verständlich. Durch die Modellierung der Hauptfunktionen von Google Calendar bietet es ein nützliches Beispiel, das sich auf reale Projekte anwenden lässt. Es beschreibt, wie logische Modellierung Fehler im Datenbankdesign vermeiden kann und natürlich in das Design physischer Tabellen übergeht. Ein Projekt mit ähnlichen Funktionen ist zum Beispiel Microsoft Outlook Calendar.

Noch keine Kommentare.

Noch keine Kommentare.