Jump to content

Рефакторинг базы данных

Рефакторинг базы данных это простое изменение схемы базы данных , которое улучшает ее структуру, сохраняя при этом как поведенческую, так и информационную семантику. Рефакторинг базы данных не меняет способ интерпретации или использования данных, не исправляет ошибки и не добавляет новые функции. Каждый рефакторинг базы данных оставляет систему в рабочем состоянии, что не приводит к задержкам в обслуживании, при условии, что значимые данные существуют в производственной среде.

Рефакторинг базы данных концептуально более сложен, чем рефакторинг кода ; рефакторинг кода должен поддерживать только поведенческую семантику, тогда как рефакторинг базы данных также должен поддерживать информационную семантику.

Схема базы данных обычно подвергается рефакторингу по одной из нескольких причин:

  1. Разрабатывать схему эволюционным путем параллельно с эволюционным проектированием остальной системы.
  2. Чтобы устранить проблемы проектирования с существующей устаревшей схемой базы данных. Рефакторинг базы данных часто мотивируется желанием нормализовать существующую рабочую базу данных, обычно для «очистки» структуры базы данных.
  3. Реализовать то, что было бы большим (и потенциально рискованным) изменением, как серию небольших изменений с низким уровнем риска.

Категории рефакторинга базы данных [ править ]

2006 Скотт Эмблер, Прамод Садалаге [1] опишите следующие категории рефакторинга базы данных: [2]

  • Рефакторинг архитектуры
Изменение, которое улучшает общий способ взаимодействия внешних программ с базой данных.

Категория «Методы рефакторинга архитектуры»: добавление методов CRUD; Добавить зеркальный стол; Добавить метод чтения; Инкапсулировать таблицу с представлением; Ввести метод расчета; Ввести индекс; Введение таблицы «Только для чтения»; Метод переноса из базы данных; Перенос метода в базу данных; Заменить метод(ы) представлением; Заменить представление методами; Используйте официальный источник данных.

  • Структурный рефакторинг
Изменение структуры таблицы схемы вашей базы данных.

Категория «Методы структурного рефакторинга»: Удаление столбца; Отбросить стол; Отбросить просмотр; Ввести вычисляемый столбец; Ввести суррогатный ключ; Объединить столбцы; Объединение таблиц; Переместить столбец; Переименовать столбец; Переименовать таблицу; Переименовать вид; Заменить LOB таблицей; Заменить столбец; Замените «один-ко-многим» ассоциативными таблицами; Заменить суррогатный ключ естественным ключом; Разделенная колонка; Разделить таблицу.

  • Рефакторинг качества данных
Изменение, которое улучшает и/или обеспечивает согласованность и использование значений, хранящихся в базе данных.

Категория «Методы рефакторинга качества данных»: «Добавить таблицу поиска»; Применять стандартные коды; Применить стандартный тип; Консолидация ключевой стратегии; Отбросить ограничение столбца; Отбросить значение по умолчанию; Удаление без значения NULL; Ввести ограничение столбца; Ввести общий формат; Введите значение по умолчанию; Сделать столбец не допускающим значения NULL; Переместить данные; Замените код типа флагами свойств.

  • Рефакторинг ссылочной целостности
Изменение, которое гарантирует, что указанная строка существует в другой таблице и/или гарантирует, что строка, которая больше не нужна, будет удалена соответствующим образом.

Категория «Методы рефакторинга ссылочной целостности»: Добавление ограничения внешнего ключа; Добавить триггер для вычисляемого столбца; Отбросить ограничение внешнего ключа; Внедрить каскадное удаление; Введение жесткого удаления; Введение мягкого удаления; Введение триггера для истории.

  • Трансформация
Изменение, которое изменяет семантику вашей схемы базы данных путем добавления к ней новых элементов или изменения существующих элементов.

Категория «Методы преобразования»: Вставка данных; Ввести новый столбец; Ввести новую таблицу; Ввести вид; Обновить данные.

  • Рефакторинг метода
Изменение, улучшающее качество хранимой процедуры, хранимой функции или триггера.

Методы категории «Рефакторинг методов»: Методы параметризации; Удалить параметр; Переименовать метод; Переупорядочить параметры; Заменить параметр явными методами; Консолидация условного выражения; Разложить условно; Метод извлечения; Ввести переменную; Удалить контрольный флаг; Удалить посредника; Заменить литерал поиском по таблице; Заменить вложенный; Условно с защитными положениями; Разделить временную переменную; Алгоритм замены.

В 2019 году Владислав Струзик дополнил категории рефакторинга баз данных новой: [3]

  • Рефакторинг доступа
Изменение, касающееся доступа к данным.

Методы категории «Рефакторинг доступа»: [4] [5] Изменить атрибуты аутентификации; Отозвать права авторизации; Предоставление привилегий авторизации; Извлечь схему базы данных; Объединение схем баз данных.

Процесс рефакторинга базы данных [ править ]

Процесс рефакторинга базы данных — это применение рефакторинга базы данных для развития существующей схемы базы данных (рефакторинг базы данных — это основная практика эволюционного проектирования баз данных ). Есть три соображения, которые необходимо принять во внимание:

  1. Как реализуется одиночный рефакторинг
  2. Как рефакторинг базы данных отслеживается и распространяется внутри организаций
  3. Как применяется серия рефакторингов базы данных

См. также [ править ]

Ссылки [ править ]

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

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8ef3ea165f31e01e91273e986ff8fe11__1686881460
URL1:https://arc.ask3.ru/arc/aa/8e/11/8ef3ea165f31e01e91273e986ff8fe11.html
Заголовок, (Title) документа по адресу, URL1:
Database refactoring - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)