Замечание о денормализации

Не следует ставить нормализацию структуры хранения данных самоцелью. В реальных системах активно используются денормализованные структуры. Это диктуется требованиями к скорости обработки запросов и удобством работы с базой на программном уровне. Часто целесообразно денормализовать БД и, соответственно, усложнить специализированное ПО, поддерживающие БД в непротиворечивом состоянии, но тем самым одновременно облегчить формирование SQL-запросов, упростить их и увеличить скорость обработки. Например, сама концепция баз данных типа «хранилище данных» (data warehouse), ориентированных на накопление и анализ информации, предполагается использование простых избыточных структур.

Этапы построения модели (по IDEF1X)

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

Весь процесс построения условно делится на пять фаз:

1. подготовка;

2. определение сущностей;

3. определение отношений;

4. определение ключей;

5. определение атрибутов.

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

Фаза Шаг Описание
1. 1.1. Определение целей моделирования Должны быть определены назначение модели и границы моделирования (очерчена область моделирования). Например, необходимо определиться, будет ли это модель типа «как есть» на самом деле (as is), или типа «как должно быть» (should be).
  1.2. Разработка плана моделирования Необходимо установить состав и последовательность выполнения работ, участие персонала, а также оценить затраты.
  1.3. Организация команды Участники команды должны совместно выполнять по крайней мере пять основных ролей: руководитель, моделировщик, поставщик информации, эксперт в предметной области, участник группы приемочного контроля. Назначение каждому участнику команды одной основной роли позволит распределить ответственность.
  1.4. Сбор информации Сбор материала для моделирования на основе сформулированных целей.
  1.5. Утверждение условных соглашений Согласование условных соглашений, форм представления информации. Например, правил формирования наименований сущностей.
2. 2.1. Выявление сущностей Поиск объектов, которые могут стать сущностями. При выявлении сущностей может быть полезно отвечать на такой набор вопросов относительно каждого объекта-кандидата: - имеет ли объект различимые характеристики? - существует ли несколько экземпляров объекта? - отличим ли один экземпляр от другого? - ссылается ли он на что-то или характеризует что-то? Положительные ответы на первые три вопроса идут в пользу того, что объект надо рассматривать как сущность, положительный ответ на последний вопрос свидетельствует в пользу варианта атрибутного характера.
  2.2. Определение сущностей Составление словаря сущностей, включающего: наименование сущности, пояснение смысла сущности (собственно определение), синонимы наименования сущности.
3. 3.1. Выявление взаимосвязанных сущностей Определение пар сущностей, между которыми может существовать связь. Новичкам может быть полезно воспользоваться матрицей связей, в которой строки и столбцы помечены наименованиями сущностей, а факт возможной связи между сущностью-строкой и сущностью-столбцом показывается крестом в ячейке пересечения этих строки и столбца.
  3.2. Определение отношений Для каждой выявленной связь указывается вид зависимости сущностей, наименование и развернутое словесное описание. Естественно, в процессе определения отношений могут быть отвергнуты одни выявленные связи и/или добавлены другие.
  3.3. Построение концептуального уровня модели Изображается концептуальный уровень модели, содержащий определенные ранее сущности и отношения, при этом допустимо использовать связи «многие ко многим».
4. 4.1. Устранение неопределенных отношений Все неопределенные отношения заменяются на совокупность связей «один ко многим» и/или связей типа «наследование», при этом обычно формируются новые сущности. Как правило, новые сущности абстрактны, имеют вспомогательный характер и отражают взаимодействие исходных сущностей. Наименования новых сущностей часто сложные, например: сущность «Поставщик-склад» описывает некоторое отношение между сущностью «Поставщик» и сущностью «Склад».
  4.2. Формирование функциональных представлений. Поскольку модель становится сложна, то эффективной работы с ней, в частности рецензирования, целесообразно нарисовать некоторое количество фрагментов, соответствующих определенной точке зрения, — так называемых функциональных представлений. Каждое представление изображается на одной диаграмме.
  4.3. Выявление первичных ключей Выявляются все кандидаты на роль первичного ключа, из них выбирается первичный ключ. Оставшиеся ключи помечаются как альтернативные первичные ключи (alternate key)
  4.4. Миграция первичных ключей Первичный ключ родительской (родовой) сущности добавляется в состав атрибутов дочерней (категориальной) сущности. Он становится так называемым внешним ключом (foreign key). В зависимости от вида связи ключ может войти в состав как первичного ключа, так и описательных атрибутов.
  4.5. Проверка ключей и отношений Модель должна удовлетворять следующим основным требованиям: - отсутствие отношений «многие ко многим»; - осуществлено добавление (миграция) внешних ключей в соответствии с имеющимися отношениями; - все атрибуты атомарны, т.е. атрибут любого экземпляра сущности может иметь только одно значение; - никакой атрибут первичного ключа не может принимать неопределенное значение; - сущности со сложным (многоатрибутным) первичным ключом не могут быть разделены на несколько сущностей с более простыми уникальными ключами; - нет дублирования отношений, когда пара сущностей связываются одинаковыми отношениями, но по различным путям, обычно с использованием промежуточных сущностей.
  4.6. Определение ключей Для каждого ключа указывается наименование, определение, синонимы.
  4.7. Формирование логического уровня модели Функциональные представления модели изображаются на логическом уровне, т.е. они включают сущности, отношения, первичные и внешние ключи.
5. 5.1. Выявление неключевых атрибутов Процесс аналогичен вычленению сущностей, но теперь отбираются характеристики.
  5.2. Привязка атрибутов к сущностям Каждый атрибут должен быть помещен в состав одной из сущностей.
  5.3. Определение атрибутов Для каждого атрибута указывается наименование, определение, синонимы.
  5.4. Усовершенствование модели Анализ и улучшение структуры модели, нормализация.
  5.5. Формирование физического уровня модели Функциональные представления модели изображаются на физическом уровне, т.е. они включают полные описания сущностей, всех атрибутов и отношений. На основе словарей сущностей, атрибутов и отношений формируется документация.

 








Дата добавления: 2018-11-25; просмотров: 345;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.