Как сделать эксперта предметной области союзником при разработке и поддержке баз данных

Точилкина Т.Е., технический специалист компании Interface Ltd.

Поддержка актуальных комментариев к таблицам и колонкам модели AllFusion ERwin Data Modeler (ранее: ERwin)

Взаимодействие разработчиков с экспертами предметной области в процессе проектирования базы данных позволяет повысить качество базы данных. Знания экспертов предметной области частично фиксируются в комментариях к таблицам и колонкам проектируемой базы данных.

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

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

AllFusion ERwin Data Modeler (ранее: ERwin) - система проектирования баз данных, их сопровождения и документирования. ERwin позволяет хранить комментарии к таблицам и колонкам как на логическом, так и на физическом уровне модели. На логическом уровне модели для этих целей используется вкладка Definition. При переходе на физический уровень модели ERwin автоматически преобразует содержимое вкладки Definition в Comment.

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

В связи с этим встает вопрос об оптимальном способе поддержки в актуальном состоянии комментариев к таблицам и колонкам в модели. Можно потребовать, чтобы эксперты предметной области вводили комментарии в ERwin. Однако, этот путь кажется слишком сложным, если требуется ввести, например, более сотни комментариев.

Предлагаемый в статье способ поддержки актуальных комментариев к таблицам и колонкам поможет сэкономить дни работы и устранит ошибки ввода при работе с большими моделями данных.

Рассматриваемый способ предполагает использование возможностей экспорта/импорта между AllFusion ERwin Data Modeler и Excel. Идея проста. Сначала создается отчет по текущим комментариям к таблицам и колонкам с помощью Report Template Builder (ERwin). Затем эксперты предметной области уточняют комментарии к таблицам и колонкам. Полученное описание конвертируется в SQL-файл и импортируется обратно в AllFusion ERwin Data Modeler с помощью Complete Compare.

Ниже рассмотрены три шага, реализующие предлагаемый способ поддержки актуальных комментариев к таблицам и колонкам

Шаг 1: Создать отчет по текущим комментариям к таблицам и колонкам с помощью Report Template Builder (ERwin)

  • Открыть физическую модель в AllFusion ERwin Data Modeler.
  • Из меню Tools запустить Report Template Builder .
  • В первом диалоге Report Template Builder щелкнуть кнопку New для создания нового отчета.
  • Создать отчет по комментариям к таблицам. Для этого в панель Report Layout добавить раздел таблиц (Table). По двойному щелчку раскрыть дерево свойств таблицы ( Property Tree ), выбрать чекбоксы Name и Comments .
  • В панели Report Layout дважды щелкнуть по опции Export As , определяющей формат отчета; выбрать TEXT
  • Запустить генерацию отчета.
  • Автоматически создастся новая Excel-таблица, содержащая имена таблиц модели и исходные комментарии к таблицам. Сохраните полученную Excel-таблицу, затем разошлите ее экспертам предметной области, которые внесут требуемые изменения и вернут исправленную Excel-таблицу.

Шаг 2: Отформатировать Excel-таблицу для получения sql-файла, пригодного для импорта в ERwin

  • В Microsoft Excel откройте исправленную Excel-таблицу.
  • Вставьте две пустые колонки в таблицу: одну - слева от колонки Table Name , другую - между колонками Table Name и Table Comment .
  • В AllFusion ERwin Data Modeler откройте физическую модель.
  • В меню Tools menu выберите Forward Engineer/Schema Generation . В диалоге Schema Generation выберите опцию для генерации комментариев таблицы. Диалог для выбора данной опции различается для разных СУБД. Например, для ORACLE вам требуется выбрать Forward engineer/ Options/ Other Options /Comments , а для SQL Server в установках Forward engineer/ Options/ Other Options должны быть выбраны сразу две опции: Comments и Owner .
  • Нажмите кнопку Preview и просмотрите синтаксис оператора Comment для выбранной СУБД. Именно к этому виду нужно привести одну из колонок Excel-таблицы.
  • В Excel-таблице следует установить курсор на первую строчку левой колонки и вести первую часть SQL-команды. Для ORACLE - это " COMMENT ON TABLE " (после текста должен быть пробел). Распространить текст на все строки колонки.
  • В следующей пустой колонке между колонками Table Name и Table Comment ввести следующую часть SQL-команды. Для ORACLE - это " IS ' " (до и после IS должны быть пробелы). Распространить текст на все строки колонки.
  • В пустой колонке справа от колонки Table Comment вставить последнюю часть SQL-команды. Для ORACLE - это "';" (одинарная кавычка и точка с запятой). Распространить текст на все строки колонки.
  • В следующей пустой колонке справа вставить формулу " =CONCATENATE(A1,B1,C1,D1,E1)" или "=СЦЕПИТЬ(A1;B1;C1;D1;E1) ". Распространить формулу на все строки колонки.

  • Скопировать содержимое крайней правой колонки в буфер обмена.
  • Открыть MS WordPad или другой текстовый редактор и вставить содержимое буфера обмена.
  • Сохранить документ как "Text Only" (TXT).
  • Закрыть WordPad; переименовать полученный файл, заменив расширение TXT на SQL (например, с помощью Windows Explorer).

Шаг 3: Импортировать созданный SQL-файл в AllFusion ERwin Data Modeler:

  • Открыть физическую модель в AllFusion ERwin Data Modeler.
  • В меню Tools выбрать инструмент Complete Compare. В диалоге Set Options выбрать опцию Compare Current Model with Script File (сравнить текущую модель со скриптом). Нажмите кнопку Browse чтобы выбрать созданный SQL-файл. В мастере Complete Compare wizard примите все установки по умолчанию.

После импорта данных с использованием Complete Compare в текущую модель вместо старых комментариев будут загружены новые комментарии.

Примечание. Если отсутствовавшая в ERwin-модели таблица была добавлена в Excel-таблицу и импортирована затем с помощью Complete Compare, то она будет создана в ERwin-модели вместе с соответствующим комментарием.

По окончании импорта рекомендуется сохранить конечную Excel-таблицу, чтобы не перестраивать ее в следующий раз. В будущем вам потребуется лишь вырезать и копировать новые таблицы и комментарии в сохраненную Excel-таблицу.

Данный подход применим также для поддержки актуальных комментариев к колонкам таблиц.

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

Дополнительная информация


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=1132