Як вирішити велику недокументовану базу даних


10

Нещодавно мене найняли як єдиного ІТ-хлопця в певній компанії X, і я маю завдання виправити їхні програми, і, на мою думку, найкращий спосіб почати - це розуміння бази даних.

Їх поточна база даних - це база даних MySQL з 186 таблицями (зауважте, що деякі таблиці порожні, бог знає чому). І додаток спілкується з базою даних через інтерфейс бази даних MS Access. (Я запитую себе, чому розробники так робили)

Питання в тому, як я можу почати вирішувати цю велику незадокументовану базу даних? Так, це незадокументоване, тому що розробники програми не хочуть надати мені словник ERD чи даних або будь-яку інформацію про базу даних, щоб полегшити моє життя. Як би ви запропонували взяти на себе це небезпечне починання розуміння кожного куточка досить великої бази даних?

Питання, пов'язані з цим: Як зануритися в некрасиву базу даних?


5
Починаючи з порожніх таблиць, повільно кидайте одну таблицю за іншою, поки розробники не захочуть співпрацювати ...
René Nyffenegger

Подумайте, перш ніж коментувати. ОП прямо заявив, що він ТІЛЬКИЙ хлопець. То хто такі розробники? Можливо, зовнішні підрядники, яким заплатили не більше, ніж просто час, який знадобився для його будівництва? Чому ж вони бажають вкласти свій час для додаткової підтримки, яку компанія X, мабуть, не бажала почати платити? Або це, можливо, колишні працівники, яких звільнили, бо вони були занадто дорогими? Чому вони вкладають свій час, щоб допомогти компанії X зі своїми проблемами? А хто буде травмуватися, скидаючи столи?
Ервін Смоут

6
@ErwinSmout Я вважаю, що коментар Рене мав бути витлумачений як легкий сердечник. Ось як я це побачив.
Марк Сторі-Сміт

Відповіді:


11

Зв'язана відповідь спочатку вирішує проблему знизу вгору, база даних. Оскільки ваші обов'язки включають додатки та базу даних, я схильний би атакувати це зверху вниз, починаючи з додатків.

Сфокусуйте свою увагу на розумінні найбільш часто використовуваних функцій програми шляхом консультацій з базою користувачів. Простежте взаємодію баз даних цих функцій за допомогою інструментів профілювання / реєстрації, щоб ви могли визначити ключові таблиці та процедури.

Таким чином, ваші ранні зусилля обмежуються "важливими речами", а не витрачайте час на документування таблиць та запитів, які рідко або ніколи не використовуються. У центрі уваги також повинен бути Принцип Парето, щоб вирішити ваші зусилля з виправлення помилок ( так говорить Microsoft у будь-якому випадку ).


Дякую за чудову відповідь. Я, чесно кажучи, не думав про це, і не знав, що можу зареєструвати запити, що виконуються на сервері. Дуже дякую!
березень

1

Можливо, я б спробував отримати MySQL Workbench, а потім створити модель EER з бази даних. Це означає, що ви можете побачити, що посилається на те, і дізнатися, що могли б думати розробники. Все залежить від програми і від того, як він структурований.


Я спробував пройти цей маршрут, але це набридло доволі, бо там 186 столів, а верстак просто зашпаровував усі таблиці по центру полотна. і нерухомість на маленьких екранах не допомагала речей зменшуватися. Але з погляду на це, не вдається уникнути того, щоб робити справи важким шляхом
Мару,

Не турбуйтеся намагатися зробити це за допомогою Workbench, тому що вона пронизана дефектами (помилками) - ви витратите більше часу, намагаючись їх подолати, ніж досягнете нічого корисного. Натомість розгляньте можливість використання Microsoft Visio для реверсування інженерії існуючої бази даних у модель, як пояснено у цій короткій статті: посилання .
KXNV-89.1FM

Більше додаткове посилання: посилання - "Інвертувати інженер існуючу базу даних у модель бази даних" (з Microsoft Visio).
KXNV-89.1FM

1

Я вважаю DBLint корисним для виявлення проблем із базою даних. Він має такі приємні властивості:

  1. Він класифікує результати за їх (суб'єктивною) важливістю, тому ви не потонете в потопі незначних попереджень.
  2. Важливі висновки часто незаперечні та підлягають дії.
  3. Він набирає базу даних з одним номером, так що ви можете вимірювати свій прогрес і порівнювати якість різних баз даних. Я вважаю це досить мотиваційним.
  4. Налаштувати DBLint досить просто для перевірки на основі схеми. Отже, швидко спробувати це навіть на великих базах даних. Єдина скарга, яку я можу мати, - це те, що мені потрібно запустити Windows для запуску DBLint.

Для швидкої ідентифікації гарячих точок у базі даних MySQL Neor Profile SQL - це простий проксі, який знаходиться між додатком та базою даних. Краса в тому, що вона швидко налаштовується.

Для виявлення фактичних первинних та зовнішніх ключів у базі даних, які, тим не менш, не визначені в базі даних, ви можете використовувати Linkifier . Для побудови графіків ERD оцінки можуть бути експортовані в yEd , який має безліч алгоритмів компонування таблиць. BPMN - мій фаворит для ERD.


0

Існує інструмент Oracle (My SQl workbench) для доступу до бази даних My Sql, це інтерфейс, який може дати вам ERD бази даних.


Так, я знайомий з верстаком, але це функція інженера, що працює на звороті, просто скидає всі таблиці в центрі полотна ... 186 таблиць дратує розбиратися. знаєте вихід з цього?
мара
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.