Простота и сложность проектирования баз данных с помощью ERwinИсточник: info-system Владимир Тарзанов
ОглавлениеВведениеНи для кого не секрет, что ERwin является мощным и одновременно простым в использовании средством проектирования баз данных, завоевавшим широкое признание и популярность. Оно обеспечивает высочайшую продуктивность труда при разработке и сопровождении приложений с использованием баз данных. На протяжении всего процесса - от логического моделирования требований к информации и бизнес-правилам, которые определяют базу данных, до оптимизации физической модели в соответствии с заданными характеристиками - ERwin позволяет наглядно отобразить структуру и основные элементы БД. ERwin - это не просто средство проектирования, но и инструмент разработки, способный автоматически создавать таблицы и генерировать тысячи строк текста хранимых процедур и триггеров для всех популярных СУБД. Революционнаятехнология Complete - Compare (Завершить-Сравнить) позволяет организовать итеративную разработку, поддерживая постоянную согласованность модели и базы данных. Благодаря интеграции с популярными средами разработки программ, ERwin позволяет ускорить создание приложений для обработки данных. ERwin может масштабироваться путем интеграции с продуктом PLATINUM ModelMart. Эта мощная система управления моделями позволяет проектировщикам баз данных, разработчикам приложений и пользователям коллективно работать с информацией о моделях ERwin. Благодаря возможностям разбиения на фрагменты, а также совместного и многократного использования моделей, может быть повышена эффективность моделирования и обеспечено соблюдение корпоративных стандартов. И это далеко не полный перечень всех достоинств программного продукта. Однако за кажущейся простотой, доступностью и "легкостью" разработки моделей и прототипов баз данных скрываются весьма серьезные "подводные камни", способные с самого начала процесса создания информационной системы "увести" проектировщика в сторону от желаемого результата. И дело здесь, безусловно, не в самом программном средстве, а в том, насколько хорошо разработчик владеет теорией проектирования реляционных баз данных. Находясь в рамках ERwin , у неискушенного разработчика может сложиться впечатление, что создаваемые модели данных оптимальны по определению, т.е. вследствие того, что они создаются на базе почти совершенного стандарта IDEF1X. Не рассматривая детально концепцию и семантику этого стандарта, остановимся лишь на том, что лежит не поверхности, что, собственно, и определяет логическую структуру базы данных - на типах связей между сущностями. Типы связейВ стандарте IDEF1X определены типы связей, показанные в табл.1. Таблица 1. Типы связей стандарта IDEF1X
Проанализируем сущность каждой из приведенных в табл.1 связей. Откуда появляется идентификацияВ IDEF1X определены зависимые и независимые сущности. Связи между такими сущностями, как показано в табл.1, могут быть идентифицирующими или неидентифицирующими. Данные типы связей предполагают ссылку дочерней (зависимой) сущности на ассоциированную запись в родительской (независимой) сущности. Другими словами дочерняя сущность не может быть определена без ее связи с родительской сущностью. Однако этот вывод является скорее следствием, чем причиной формирования зависимых и независимых сущностей. Рассмотрим простой пример. Пусть имеется сущность СТУДЕНТ, показанная на рис.1. Рис. 1. Сущность СТУДЕНТ Из классической теории реляционных баз данных вспомним, что для обеспечения целостности данных и исключения появления различного рода аномалий необходимо, чтобы каждое отношение находилось, как минимум в третьей нормальной форме (3НФ). При этом 3НФ предполагает нетранзитивную зависимость неключевых атрибутов от первичного ключа. В случае с сущностью СТУДЕНТ такие зависимости имеются (например, НОМЕР ЗАЧЕТНОЙ КНИЖКИ ® НОМЕР ГРУППЫ ® НОМЕР ФАКУЛЬТЕТА). Известно, что для устранения таких зависимостей необходимо выполнить операцию проекции на атрибуты, которые служат причиной этих зависимостей. Результатом проекции отношения на соответствующие атрибуты (согласно реляционной алгебре) является также отношение, как показано на рис. 2.
А) Б) Рис. 2. Результаты проекции отношения СТУДЕНТ Проверив образовавшиеся сущности СТУДЕНТ и ГРУППА на нормальность можно убедиться, что сущность ГРУППА не находится в 3НФ. Следовательно, необходима следующая проекция, которая приведет к появлению другой независимой сущности, например, СПЕЦИАЛЬНОСТЬ.
Следовательно, за простотой и легкостью реализации в ERwin зависимых и независимых сущностей, стоят более серьезные причины их возникновения. Многоликость связейОсобого внимания заслуживают также типы связей "мноие-ко-многим" и супертипа с подтипами. Стандарт EDEF1X допускает присутствие в модели обоих типов связей. Однако без их разрешения физическая база данных будет далека от оптимальной. Здесь следует отметить, что ERwin предоставляет возможность выбора способа разрешения этих связей, особенно для связей типа СУПЕРТИП-ПОДТИПЫ. Стандартным разрешением связи "многие-ко-многим" является механизм, показанный на рис. 3.
Рис. 3. Разрешение связи "многие-ко-многим" Из рис.3 видно, что если Е/1 и Е/2 отвечают условиям нормальности, то и сущность Е/2_Е/1 также нормальна. Если в схеме базы данных присутствуют подтипы, то для разрешения таких связей предусмотрено два способа:
как показано на рис. 4. Рис. 4. Разрешение связи СУПЕРТИП-ПОДТИПЫ Насколько каждое из предложенных разрешений оптимально можно судить только исходя из содержания сущностей Е/1, Е/2 и Е/3. Однако при преобразовании логической модели в физическую базу данных очевидны формальные преимущества и недостатки каждого разрешения, которые сведены в табл.2. Таблица 2. Характеристика типов разрешения связи СУПЕРТИП-ПОДТИПЫ
Таким образом, предлагаемыми способами разрешения связи СУПЕРТИП-ПОДТИПЫ следует пользоваться крайне осторожно, вследствие возможности получения нежелательных (аномальных) результатов. Существует, однако, более простой и надежный способ разрешения связи СУПЕРТИП-ПОДТИПЫ, который также реализован в ERwin (см. рис. 5).
Рис. 5. Идентификация подтипов Показанный на рис. 5 способ разрешения связи СУПЕРТИП-ПОДТИПЫ методом идентификации подтипов почти всегда дает требуемую нормальность сущностей и обеспечивает целостность данных. Безусловно, в данной статье мы коснулись лишь части тех "опасностей", которые подстерегают проектировщика на пути к построению информационной системе. Однако вывод очевиден: программные средства лишь помогают проектировщику, но не заменяют его. Подводя итог, следует отметить, что никакая автоматизация проектирования никогда не заменит творческого подхода к делу, не избавит от ошибок, вызванных не учетом положений теории проектирования. С другой стороны, тщательная проработка всех вопросов еще до построения моделей является непременным условием успешной автоматизации проектирования любой информационной системы. И такое замечательное средство, как ERwin наглядно свидетельствует об этом. |