Datenbank-Design

Datenbankdesign

Datenbankdesign kann darin bestehen, relativ einfache Datenstrukturen in attraktiver Form darzustellen (-> Themes). Beispielsweise erleichtert es in einem Restaurant die Auffindbarkeit von Bestellungen, wenn die Anordnung der Tische auf dem Bildschirm analog zur Realität angezeigt wird, und wenn die Bestelldaten mit möglichst wenig Aktionen (kein endloses Durchklicken) erreichbar sind. Bei sehr viel komplexeren Anwendungen schließt der Begriff „Design“ aber auch die Gestaltung der gesamten Konzept- und Realisierungsprozesse ein: es geht darum, sich in der großen Vielfalt der Möglichkeiten zu orientieren, und diesen Orientierungsrahmen laufend an die Gegebenheiten anzupassen. Da hier immer auch Unsicherheiten im Spiel sind, spielt eine Art von Fingerspitzengefühl eine Rolle – etwa bei der Konzentration auf Schwerpunkte und bei der Eingrenzung oder Erweiterung der aktuell bearbeiteten Thematik.

Um die verschiedenen Aspekte dieses Prozesses darzustellen, stelle ich hier eine analytische Gliederung des Prozesses vor, den ich als Datenbankdesign bezeichne:

 

Datenbankdesign umfasst folgende wesentliche Teilaufgaben

[1]            die Analyse einer Bedarfssituation

[2]            die Entwicklung eines Lösungskonzeptes

[3]            die Ausarbeitung einer Applikationsstruktur auf der Basis der jeweils vorhandenen technischen Möglichkeiten

[4]            die Gestaltung der Oberflächen und der verschiedenen Anwendermasken

[5]            sowie die technische Umsetzung

[6]            Debugging

[7]            Weiterentwicklung

[8]            Dokumentation

 

[1]
Die Analyse einer Bedarfssituation beginnt mit einem ausführlichen Gespräch über vorhandene Kundenwünsche, Probleme mit vorhandenen Lösungen, ggf. der Beurteilung vorhandener Lösungen und dem Austausch geeigneter Daten, die einer ersten gründlichen Recherche dienen. Daran schließt sich eine vertiefende Analyse und ein Prozess detaillierter Befragungen im Wechsel mit Recherchen in Bezug auf die relevante Materie an.

[2]
Sind alle Voraussetzungen für die Entwicklung eines Lösungsansatzes gegeben, so wird ein Plan ausgearbeitet, der widerum schrittweise diskutiert und eventuell in Einzelaspekten mit Hilfe von Testapplikationen durchgespielt werden kann. Bestandteil dieses Entwicklungsschrittes sind auch erste Gespräche mit Mitarbeitern des Kunden, deren Kenntnisse und Gewohnheiten in das Lösungskonzept einfließen sollen. Am Ende dieses Prozesses steht ein fertiges Lösungskonzept, das in Regel als Diagramm ausgearbeitet wird.

[3]
Wird dieses Konzept für praktikabel gehalten, so beginnt die Ausarbeitung der Applikationsstruktur. Das bedeutet für mich, wenn ich in FileMakerPro umsetzen will, für die verschiedenen Vorgänge Lösungsmöglichkeiten zu suchen, oder selbst zu entwickeln, die den gegebenen Einschränkungen Rechnung tragen. Es ergibt sich daraus eine Reihe von Modulen, die sinnvoll aufeinander abgestimmt sein müssen. Zur Ausarbeitung gehört bedarfsweise auch weitere Recherche in Bezug auf Lösungsansätze bzw. die Besprechung von Problemen mit Kollegen. (umgekehrt stehe ich ebenfalls für Kollegen zur Besprechung von Fragen zur Verfügung)

Anmerkung: Da ich vor allem Autodidakt bin und schon immer zum Kopfrechnen geneigt habe, spielt sich auch hier die Entwicklungsphase zu einem großen Teil im Kopf ab, so dass es mir nur schwer möglich ist, diesen Arbeitsschritt zu dokumentieren. Das bezieht sich auch auf Probleme, die sich regelmäßig in Folge von Unstimmigkeiten zwischen verschiedenen Bestandteilen ergeben, wie auch auf die Kreation neuer Lösungsansätze für Aufgabenstellungen, für die noch keine Lösungen vorliegen.

[4]
Mein Angebot besteht zusätzlich darin, die erforderlichen Oberflächen attraktiv zu gestalten und mich dabei von der großen Masse vorhandener Applikationen abzuheben. Dabei fließt einerseits meine Erfahrung als Maler und Grafiker ein, andererseits geht es darum die gestalterischen Elemente in eine möglichst effektive Verbindung mit den Möglichkeiten der Software zu bringen. Wie bei den meisten Arbeitsschritten ist hier auch immer wieder Erfindungsreichtum gefragt.

[5]
Schließlich kommt die technische Umsetzung, die teilweise auch schon in den vorherigen Arbeitsschritten (testweise bzw. partiell) eine Rolle spielt, aber nun das letztendliche Funktionieren der gesamten Applikation ermöglichen muss. Bei der Umsetzung ist die Einhaltung von übersichtlichen Strukturen, von flüssigen Verbindungen zwischen verschiedenen Modulen von großer Bedeutung, so dass man auch hier von Design im Sinne von Stilfragen sprechen muss. Für die Programmierung sind hier die Einhaltung von Standards bei Benennung und Gliederung, Übersichtlichkeit des Codes und Nachvollziehbarkeit der einzelnen Abläufe relevant.

[6]
Sofern der Kunde dies nicht selbst übernimmt, folgt hier das gründliche Testen der realisierten Lösung stehen. Je nach Komplexität der Applikation werden „Bugs“ auch erst im Laufe der Anwendung erkennbar und müssen dann möglichst zeitnah repariert werden.

[7]
Es liegt in der Logik der Vielfältigkeit von Software-Produkten, dass es von Anfang an darum geht, eine Eingrenzung vorzunehmen, um den Entwicklungsprozess übersichtlich zu gestalten, und dass diese Eingrenzung nach und nach der aktuellen Situation angepasst werden muss. So versuche ich in der Kommunikation mit dem Kunden zwar, zusätzliche Features, die mir geeignet erscheinen, ins Gespräch zu bringen, schlage aber andererseits auch immer pragmatische Beschränkungen vor, um die laufende Entwicklungsphase abzukürzen. Regelmäßig kommen Kunden (und ihre Mitarbeiter) während der Realisierung auf neue Ideen und machen Verbesserungsvorschläge. Dabei geht es im Sinne effektiver Umsetzung immer auch darum, ein Gleichgewicht zwischen Detailansätzen und dem übergeordneten Ganzen zu erzielen. Dies verlangt einerseits Feingefühl für die Wünsche des Kunden, die Fähigkeit sich in seine Situation hineinzuversetzen, andererseits geht es hier auch darum, langfristig orientiert zu denken, und letztlich den Kunden optimal zu beraten.

 

Schreib einen Kommentar