Ich wurde kürzlich als einziger IT-Mitarbeiter in einem bestimmten Unternehmen X eingestellt und habe die Aufgabe, deren Anwendungen zu reparieren. Meiner Meinung nach ist der beste Einstieg zunächst das Verständnis der Datenbank.
Ihre aktuelle Datenbank ist eine MySQL-Datenbank mit 186 Tabellen (beachten Sie, dass einige Tabellen für Gott weiß warum leer sind). Die Anwendung kommuniziert mit der Datenbank über eine MS Access-Datenbankschnittstelle. (Ich frage mich, warum die Entwickler das auch getan haben)
Die Frage ist, wie fange ich an, diese große undokumentierte Datenbank in Angriff zu nehmen? Ja, es ist nicht dokumentiert, da die Entwickler der Anwendung nicht bereit sind, mir ein ERD- oder Datenwörterbuch oder Informationen über die Datenbank zu geben, um mir das Leben zu erleichtern. Wie würden Sie vorschlagen, dieses gefährliche Bestreben zu übernehmen, jeden Winkel der ziemlich großen Datenbank zu verstehen?
Verwandte Frage: Wie tauche ich in eine hässliche Datenbank ein?
Antworten:
Die verknüpfte Antwort befasst sich mit dem Problem von unten nach oben, Datenbank zuerst. Da Ihre Aufgaben die Anwendungen und die Datenbank umfassen, würde ich dieses Top-Down ab den Anwendungen gerne angreifen.
Konzentrieren Sie sich darauf, die am häufigsten verwendeten Funktionen der Anwendung in Absprache mit der Benutzerbasis zu verstehen. Verfolgen Sie die Datenbankinteraktionen dieser Funktionen mithilfe von Profiling- / Protokollierungstools, damit Sie die Schlüsseltabellen und -verfahren identifizieren können.
Auf diese Weise beschränken sich Ihre frühen Bemühungen auf das "Wesentliche", anstatt Zeit damit zu verschwenden, Tabellen und Abfragen zu dokumentieren, die möglicherweise selten oder nie verwendet werden. Der Fokus sollte auch das Pareto-Prinzip auf Ihre Bemühungen zur Fehlerbehebung lenken ( so sagt Microsoft trotzdem ).
quelle
Ich würde möglicherweise versuchen, MySQL Workbench zu erhalten und dann ein EER-Modell aus der Datenbank zu erstellen. Dies bedeutet, dass Sie sehen können, welche Links zu was führen, und herausfinden können, was die Entwickler gedacht haben. Alles hängt von der Anwendung ab, auch davon, wie sie strukturiert ist.
quelle
Ich finde DBLint nützlich, um Probleme mit der Datenbank zu identifizieren. Es hat folgende schöne Eigenschaften:
Neor Profile SQL ist ein Handvoll Proxy, der sich zwischen der Anwendung und der Datenbank befindet, um Hotspots in der MySQL-Datenbank schnell zu identifizieren . Das Schöne daran ist, dass es schnell einzurichten ist.
Für die Ermittlung der tatsächlichen Primär- und Fremdschlüssel in der Datenbank, die jedoch nicht in der Datenbank definiert sind, können Sie Linkifier verwenden . Für das ERD-Plotten können die Schätzungen in yEd exportiert werden , das über zahlreiche Layoutalgorithmen zur Positionierung der Tabellen verfügt. BPMN ist mein Favorit für ERDs.
quelle
Es gibt ein Oracle-Tool (My SQl Workbench) für den Zugriff auf My Sql-Datenbank. Es ist eine Schnittstelle, über die Sie die ERD der Datenbank erhalten können.
quelle