Рефакторинг базы данных
— Рефакторинг базы данных это простое изменение схемы базы данных , которое улучшает ее структуру, сохраняя при этом как поведенческую, так и информационную семантику. Рефакторинг базы данных не меняет способ интерпретации или использования данных, не исправляет ошибки и не добавляет новые функции. Каждый рефакторинг базы данных оставляет систему в рабочем состоянии, что не приводит к задержкам в обслуживании, при условии, что значимые данные существуют в производственной среде.
Рефакторинг базы данных концептуально более сложен, чем рефакторинг кода ; рефакторинг кода должен поддерживать только поведенческую семантику, тогда как рефакторинг базы данных также должен поддерживать информационную семантику.
Схема базы данных обычно подвергается рефакторингу по одной из нескольких причин:
- Разрабатывать схему эволюционным путем параллельно с эволюционным проектированием остальной системы.
- Чтобы устранить проблемы проектирования с существующей устаревшей схемой базы данных. Рефакторинг базы данных часто мотивируется желанием нормализовать существующую рабочую базу данных, обычно для «очистки» структуры базы данных.
- Реализовать то, что было бы большим (и потенциально рискованным) изменением, как серию небольших изменений с низким уровнем риска.
Категории рефакторинга базы данных [ править ]
2006 Скотт Эмблер, Прамод Садалаге [1] опишите следующие категории рефакторинга базы данных: [2]
- Рефакторинг архитектуры
- Изменение, которое улучшает общий способ взаимодействия внешних программ с базой данных.
Категория «Методы рефакторинга архитектуры»: добавление методов CRUD; Добавить зеркальный стол; Добавить метод чтения; Инкапсулировать таблицу с представлением; Ввести метод расчета; Ввести индекс; Введение таблицы «Только для чтения»; Метод переноса из базы данных; Перенос метода в базу данных; Заменить метод(ы) представлением; Заменить представление методами; Используйте официальный источник данных.
- Структурный рефакторинг
- Изменение структуры таблицы схемы вашей базы данных.
Категория «Методы структурного рефакторинга»: Удаление столбца; Отбросить стол; Отбросить просмотр; Ввести вычисляемый столбец; Ввести суррогатный ключ; Объединить столбцы; Объединение таблиц; Переместить столбец; Переименовать столбец; Переименовать таблицу; Переименовать вид; Заменить LOB таблицей; Заменить столбец; Замените «один-ко-многим» ассоциативными таблицами; Заменить суррогатный ключ естественным ключом; Разделенная колонка; Разделить таблицу.
- Рефакторинг качества данных
- Изменение, которое улучшает и/или обеспечивает согласованность и использование значений, хранящихся в базе данных.
Категория «Методы рефакторинга качества данных»: «Добавить таблицу поиска»; Применять стандартные коды; Применить стандартный тип; Консолидация ключевой стратегии; Отбросить ограничение столбца; Отбросить значение по умолчанию; Удаление без значения NULL; Ввести ограничение столбца; Ввести общий формат; Введите значение по умолчанию; Сделать столбец не допускающим значения NULL; Переместить данные; Замените код типа флагами свойств.
- Рефакторинг ссылочной целостности
- Изменение, которое гарантирует, что указанная строка существует в другой таблице и/или гарантирует, что строка, которая больше не нужна, будет удалена соответствующим образом.
Категория «Методы рефакторинга ссылочной целостности»: Добавление ограничения внешнего ключа; Добавить триггер для вычисляемого столбца; Отбросить ограничение внешнего ключа; Внедрить каскадное удаление; Введение жесткого удаления; Введение мягкого удаления; Введение триггера для истории.
- Трансформация
- Изменение, которое изменяет семантику вашей схемы базы данных путем добавления к ней новых элементов или изменения существующих элементов.
Категория «Методы преобразования»: Вставка данных; Ввести новый столбец; Ввести новую таблицу; Ввести вид; Обновить данные.
- Рефакторинг метода
- Изменение, улучшающее качество хранимой процедуры, хранимой функции или триггера.
Методы категории «Рефакторинг методов»: Методы параметризации; Удалить параметр; Переименовать метод; Переупорядочить параметры; Заменить параметр явными методами; Консолидация условного выражения; Разложить условно; Метод извлечения; Ввести переменную; Удалить контрольный флаг; Удалить посредника; Заменить литерал поиском по таблице; Заменить вложенный; Условно с защитными положениями; Разделить временную переменную; Алгоритм замены.
В 2019 году Владислав Струзик дополнил категории рефакторинга баз данных новой: [3]
- Рефакторинг доступа
- Изменение, касающееся доступа к данным.
Методы категории «Рефакторинг доступа»: [4] [5] Изменить атрибуты аутентификации; Отозвать права авторизации; Предоставление привилегий авторизации; Извлечь схему базы данных; Объединение схем баз данных.
Процесс рефакторинга базы данных [ править ]
Процесс рефакторинга базы данных — это применение рефакторинга базы данных для развития существующей схемы базы данных (рефакторинг базы данных — это основная практика эволюционного проектирования баз данных ). Есть три соображения, которые необходимо принять во внимание:
- Как реализуется одиночный рефакторинг
- Как рефакторинг базы данных отслеживается и распространяется внутри организаций
- Как применяется серия рефакторингов базы данных
См. также [ править ]
- Тестирование базы данных
- Миграция данных
- Денормализация
- Рефакторинг
- Разработка через тестирование
- Модульное тестирование
Ссылки [ править ]
- ^ Скотт Эмблер, Базы данных рефакторинга Pramod Sadalage: эволюционный дизайн баз данных - Addison-Wesley Professional; 1-е издание (3 марта 2006 г.) - 384 с. - ISBN 978-0321774514
- ^ Скотта Эмблера Каталог рефакторинга баз данных - Agile Data - URL: http://agiledata.org/essays/databaseRefactoringCatalog.html
- ^ Струзик, В. А. Категория рефакторинг доступа / В. А. Струзик // Компьютерные науки, информационные технологии и системы управления : Международная научно-техническая конференция студентов, аспирантов и молодых ученых, 27–29 ноября 2019 г. – Ивано -Франковск: Прикарпатский национальный университет им. Василия Стефаника, 2019. – С. 20-21. URL: http://dspace.nuft.edu.ua/jspui/handle/123456789/31516
- ^ Струзик, В. А. Категория рефакторинга доступа / В. А. Струзик, С. В. Грибков, В. В. Чобан // Научные труды НУХТ. – Т. 26, № 2. – 2020. – С. 31–49. URL: http://dspace.nuft.edu.ua/jspui/handle/123456789/31515
- ^ Владислав Струзик, доктор философии Рефакторинг: вчера, сегодня, завтра. URL: https://medium.com/@struzik/refactoring-yesterday-today-tomorrow-7fc8c845cfb1
Внешние ссылки [ править ]
- Веб-сайт рефакторинга базы данных от Pramod Sadalage