FDIS: Functional Dependency Information System

FDIS Benutzeroberfläche - Normalisierung und Visualisierung
projects

Projektübersicht

FDIS (Functional Dependency Information System) ist ein Informationssystem für funktionale Abhängigkeiten in PostgreSQL-Datenbanken. Es ermöglicht:

Visualisierung funktionaler Abhängigkeiten (FDs)
Manipulation von FDs durch grafische Benutzeroberfläche
Automatische Normalisierung relationaler Datenbankschemata
Direkte Implementierung der Normalisierung in der bestehenden Datenbank


Kernfunktionalität

Automatische Normalisierung

Anders als reine Lehrsysteme, die nur theoretische Normalisierungen durchführen, implementiert FDIS die Zerlegung direkt in der Datenbank:

  1. Funktionale Abhängigkeiten erfassen – Tabellarische oder grafische Eingabe von FDs
  2. Schlüsselkandidaten berechnen – Automatische Bestimmung aller möglichen Kandidatenschlüssel
  3. Normalform analysieren – Prüfung des aktuellen Normalisierungsgrades (3NF, BCNF)
  4. Schema zerlegen – Algorithmische Zerlegung auf gewünschte Normalform
  5. In Datenbank implementieren – Automatische Erstellung neuer Relationen, Umverteilung der Daten

Benutzeroberfläche

Die GUI wurde mit besonderem Fokus auf Benutzerfreundlichkeit und Robustheit entwickelt:

  • Tabellarische Darstellung funktionaler Abhängigkeiten (skaliert besser als graphische Formen bei vielen FDs)
  • Interaktive Manipulation – Hinzufügen, Ändern, Löschen von FDs
  • Echtzeit-Validierung – Sofortige Rückmeldung über Datenbankstatus
  • Visualisierung der Zerlegung – Verständliche Darstellung der Normalisierungsschritte
  • One-Click-Normalisierung – Automatische Umsetzung mit Bestätigungsdialog

FDIS Connection Setup
FDIS Manipulation
FDIS Normalizing


Anwendungsgebiete

1. Lehre und Ausbildung

Optimale Lernwerkzeuge für Studenten:

  • Interaktives Verständnis von Normalisierungskonzepten
  • Hands-on-Erfahrung mit echten Datenbanken (nicht nur Theorie)
  • Direkte Konsequenzen der Normalisierungsentscheidungen sichtbar machen

Werkzeug für Lehrende:

  • Einfache Erstellung von Übungsaufgaben
  • Automatische Überprüfung von Studentenlösungen
  • Klare visuelle Rückmeldung über Korrektheit

2. Praktische Datenbankverbesserung

Bewertung und Optimierung bestehender Schemata:

  • Analyse schlecht normalisierter Legacy-Datenbanken
  • Identifikation funktionaler Abhängigkeiten in produktiven Systemen
  • Gezielte Verbesserung von Datenbankdesigns
  • Automatische, sichere Implementierung von Verbesserungen

Technische Eigenschaften

Architektur

KomponenteDetails
DatenbankPostgreSQL (relationales DBMS)
AlgorithmenZerlegung nach 3NF-Norm
KomplexitätNP-vollständig (Bestimmung von Kandidatenschlüsseln)
SkalierungStabil auch bei größeren Datenbanken

Performance

Ergebnisse der Performanceanalyse (Kapitel 7.1):

Schnelle Ausführung – Auch bei relativ großen Datenbanken und Relationen
Stabile Laufzeit – Keine kritischen Bottlenecks im normalen Betrieb
⚠️ Speicherverbrauch – Bei Relationen mit vielen Attributen (>~20) können Speicheranforderungen steigen (unvermeidlich wegen NP-Vollständigkeit)

Fazit: Für typische Anwendungsszenarien (Lehre, mittlere Datenbanken) vollkommen ausreichend


Design-Entscheidungen

Tabellarische statt grafische Darstellung

Bewusste Designentscheidung:

  • ❌ Graphische Formen: Werden bei vielen FDs schnell unübersichtlich
  • ✅ Tabellen: Skalieren gut für beliebig große FD-Mengen
  • Resultat: Klare, wartbare Darstellung auch in komplexen Fällen

Auf 3NF fokussieren

Normalformen-Strategie:

  • 3NF: Praktisch relevant, Standard in industriellen Systemen, ausgeglichener Kompromiss
  • BCNF: Theoretisch interessant, aber praktisch weniger wichtig
  • 4NF/5NF: Eher akademisch, erfordern MVDs (Multi-Valued Dependencies)
  • Resultat: Fokus auf praktikabler, häufig benötigter Normalform

Potenzielle Weiterentwicklungen

Kurzfristig (geringer Aufwand)

  • BCNF-Normalisierung: Modularer Aufbau ermöglicht einfach neuen Zerlegungsalgorithmus

Langfristig (höherer Aufwand)

  • 4NF/5NF Support: Neue Datenstrukturen und Algorithmen für MVDs nötig
  • Graphische FD-Diagramme: Ergänzende Visualisierung (neben Tabellen)
  • Weitere Datenbanksysteme: MySQL, Oracle, SQL Server Support

Nicht geplant

  • Höhere Normalformen (4NF+) – Geringe praktische Relevanz für Lehrzwecke
  • Reine grafische Darstellung – Skalierungsprobleme, Tabellen ausreichend

Wissenschaftlicher Hintergrund

Entwickelt im Rahmen einer Bachelor-Arbeit mit Fokus auf:

  1. Relationale Entwurfstheorie – Grundkonzepte
  2. Algorithmische Lösungen – Für funktionale Abhängigkeiten und Normalisierung
  3. Softwarearchitektur – Modulares, wartbares Design
  4. Benutzerinterface – Praktische Anwendbarkeit im Echtbetrieb

Lizenz & Code

Der komplette Source Code ist auf GitHub verfügbar: → timpner/fdis

Hinweis: Projektdokumentation primär in Deutsch verfügbar. Für Fragen in Englisch bitte Issues auf GitHub erstellen oder direkt kontaktieren.


Zielgruppe

  • 👨‍🎓 Informatik-Studenten – Lernen von Datenbanktheorie
  • 👨‍🏫 Dozenten – Unterrichtsunterstützung und Aufgabenerstellung
  • 🏢 Datenbankadministratoren – Schema-Optimierung und Normalisierung
  • 🔬 Forscher – Basis für weitere DB-Design-Tools