Нормализация данных

События

Прикладные задачи и процессы

Потоки данных и хранилища данных

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

Определение всех потоков и хранилищ данных осуществляется в терминах множества атрибутов, образующих сущности в ER-модели. В отдельных случаях в определениях могут также использоваться производные атрибуты (такие, например, как "прибыль"), которые обычно будут выводиться (вычисляться) из других существующих атрибутов. последнее представляет собой важную проверку полноты модели.

Содержимое любого хранилища данных должно представлять собой объединение всех ассоциируемых с ним потоков данных.

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

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

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

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

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

Предварительное условие. Все сущности должны быть уникально идентифицированы комбинацией атрибутов и/или связей.

Первая нормальная форма. Удалить повторяющиеся атрибуты или группы атрибутов.

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

Например, удаляя группы атрибутов по членам экипажа из сущности РЕЙСОВЫЙ ПОЛЕТ (см. рис. 7.36), и создавая при этом новую сущность ЧЛЕН ЭКИПАЖА с атрибутами имени и роли и со связью многие-к-одному с исходной сущностью мы приводим РЕЙСОВЫ ПОЛЕТ к первой нормальной форме.

Таким образом, приведение к первой нормальной форме представляет собой процедуру выявления и идентифика­ции первоначально опущенных сущностей и связей.

Вторая нормальная форма. Удалить атрибуты, зависящие только от части уникального идентификатора.

Если сущность имеет уникальный идентификатор, состоящий из более чем одного атрибута и/или связи и если другой атрибут зависит только от части этого составного идентификатора, тогда сам этот атрибут и та часть идентификатора, от которого он зависит, должны составить основу для формирования новой сущности. Новая сущность идентифицируется унаследованной частью уникального идентификатора исходной сущности и имеет с ней связь один-ко-многим.

Например, значение атрибута номера рейсового полета не зависит от даты и времени полета, поэтому мы создаем новую сущность РЕЙС с фиксированным номером рейса, который определяет расписание одного или нескольких РЕЙСОВЫХ ПОЛЕТОВ в определенный промежуток времени (см. рис. 7.36).

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

Третья нормальная форма. Удалить атрибуты, зависящие от атрибутов, не являющихся частью уникального идентификатора.

Если существует атрибут, который зависит от другого атрибута, не являющегося частью уникального идентифика­то­ра, то эти атрибуты (зависимый и зависящий) должны составить основу для формирования новой сущности, ко­то­рая имеет связь один-ко-многим с исходной сущностью. Уникальным идентификатором новой сущности явля­е­тся тот атрибут, от которого зависит другой атрибут.

Например, название авиакомпании, тип воздушного судна и обычная его вместимость не зависят от номера РЕЙСА. Мы надеемся, что такую характеристику как название авиакомпании скорее выбирает ее президент, а не некто, распределяющий маршруты и составляющий расписание рейсов. (см. рис. 7.36).

Третья нормальная форма является последней, с помощью которой выявляются опущенные сущности и связи.

Интуитивная нормализация. Если вы тщательно проанализируете результирующую модель, то придете к тому, к чему приходит хороший аналитик при изучении предметной области, а именно, существуют такие независимые и представляющие интерес вещи, относительно которых необходимо хранить информацию (т.е. сущности), как АЭРОПОРТ, АВИАКОМПАНИЯ, ЛИЦО и т.д. Аналитик также осознает, что имя авиакомпании может быть атрибутом только авиакомпании. И если теперь имя авиакомпании появляется где-либо в тексте на бумаге, то только потому, что это удобный способ указания существования связи чего-либо с авиакомпанией, например, имя авиакомпании может быть приведено в расписании полетов.

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


Рис. 7.36. Нормализация данных в ER модели.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: