Niedawno zostałem zatrudniony jako jedyny informatyk w pewnej firmie X i mam za zadanie naprawić ich aplikacje i moim zdaniem najlepszym sposobem na rozpoczęcie jest zrozumienie bazy danych.
Ich obecna baza danych to baza danych MySQL z 186 tabelami (zauważ, że niektóre tabele są puste, bo Bóg wie dlaczego). Aplikacja komunikuje się z bazą danych za pośrednictwem interfejsu bazy danych MS Access. (Zadaję sobie pytanie, dlaczego deweloperzy też to zrobili)
Pytanie brzmi: jak zacząć zajmować się tą dużą, nieudokumentowaną bazą danych? Tak, nie jest to udokumentowane, ponieważ programiści aplikacji nie chcą dać mi ERD, słownika danych ani żadnych informacji o bazie danych, aby ułatwić mi życie. Jak sugerowałbyś podjęcie tego niebezpiecznego przedsięwzięcia, jakim jest zrozumienie każdego zakątka dość dużej bazy danych?
Powiązane pytanie: Jak nurkować w brzydkiej bazie danych?
Odpowiedzi:
Połączona odpowiedź rozwiązuje problem oddolnie, najpierw baza danych. Ponieważ twoje obowiązki obejmują aplikacje i bazę danych, byłbym skłonny atakować to odgórne, zaczynając od aplikacji.
Skoncentruj swoją uwagę na zrozumieniu najczęściej używanych funkcji aplikacji, konsultując się z bazą użytkowników. Śledź interakcje bazy danych tych funkcji za pomocą narzędzi do profilowania / rejestrowania, aby można było zidentyfikować kluczowe tabele i procedury.
W ten sposób twoje wczesne wysiłki są ograniczone do „rzeczy, które mają znaczenie”, zamiast marnowania czasu na dokumentowanie tabel i zapytań, które mogą być rzadko lub nigdy nie używane. Koncentracja powinna również przybliżyć zasadę Pareto do wysiłków związanych z naprawą błędów ( tak twierdzi Microsoft ).
źródło
Prawdopodobnie spróbowałbym pobrać MySQL Workbench, a następnie utworzyć model EER z bazy danych. Oznacza to, że możesz zobaczyć, do czego prowadzą linki i dowiedzieć się, o czym myśleli programiści. Wszystko zależy od aplikacji, a także od jej struktury.
źródło
Uważam, że DBLint jest przydatny do identyfikowania problemów z bazą danych. Ma następujące ładne właściwości:
W celu szybkiej identyfikacji hotspotów w bazie danych MySQL, Neor Profile SQL to garść proxy, które znajduje się pomiędzy aplikacją a bazą danych. Jego zaletą jest to, że można go szybko skonfigurować.
Do odkrycia rzeczywistych kluczy podstawowych i obcych w bazie danych, które nie są jednak zdefiniowane w bazie danych, możesz użyć Łączfier . W przypadku kreślenia ERD szacunki można eksportować do yEd , który ma wiele algorytmów układu do pozycjonowania tabel. BPMN jest moim ulubionym do ERD.
źródło
Istnieje narzędzie Oracle (My SQl workbench), aby uzyskać dostęp do bazy danych My Sql, jest to interfejs, który może dać ci ERD bazy danych.
źródło