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