- •Список сокращений
- •1. Эис, их классификация и принципы построения
- •1.1. Понятие системы
- •1.2. Понятие эис. Назначение эис
- •1.3.Классификация эис
- •1.4. Основные принципы и методы построения эис.
- •1.4.1. Принципы построения и функционирования эис.
- •1.4.2.Структурный и объектно-ориентированный подходы к проектированию.
- •1.4.3.Понятие жизненного цикла эис.
- •Вопросы для повторения
- •Понятие системы.
- •Резюме по теме
- •2.Теоретические основы работы с информацией
- •2.1. Понятие информации
- •2.2. Измерение количества информации
- •2.3.Кодирование информации
- •2.3.1.Оптимальное основание кода
- •2.3.2.Запись натурального числа в двоичной системе
- •2.3.3.Код Грэя
- •2.3.4.Оптимальное кодирование
- •2.3.5.Помехозащищенное кодирование
- •2.4.Методы организации данных в памяти эвм
- •2.4.1.Типы данных, сд и атд
- •2.4.2.Время выполнения программ
- •2.4.3.Списки
- •2.4.4.Реализация списков
- •Реализация списков посредством массивов
- •Реализация списков с помощью указателей
- •2.4.5.Стеки
- •2.4.6. Очереди
- •2.4.7.Графы и деревья
- •2.4.8.Некоторые сд для хранения графов и деревьев
- •Вопросы для повторения
- •Резюме по теме
- •3. Особенности работы с экономической информацией
- •3.1.Классификация и кодирование экономической информации.
- •3.2.Единая система классификации и кодирования
- •3.3.Штриховое кодирование
- •Алгоритм расчета контрольного разряда ean
- •Вопросы для повторения
- •Резюме по теме
- •4.Модели данных
- •4.1.Атрибуты, составные единицы информации, показатели, документы
- •4.2.Операции над сеи
- •4.3.Реляционная модель данных
- •4.3.1. Отношения, как основа реляционной модели данных
- •4.3.2. Операции над отношениями
- •4.3.3. Нормализация отношений
- •4.3.4. Функциональные зависимости
- •4.3.5. Нормальные формы
- •Вопросы для повторения
- •Операции над сеи.
- •Операции над отношениями.
- •Резюме по теме
- •5.Модели знаний
- •5.1. Классификация знаний
- •5.2. Продукционная модель представления знаний
- •5.3.Представление знаний в виде семантической сети
- •5.4. Фреймовая модель представления знаний
- •5.5. Логическая (предикатная) модель представления знаний
- •Классификация знаний.
- •6.2.Структурная модель предметной области
- •6.2.1.Функциональная методология idef0
- •6.2.2. Функциональная методика потоков данных
- •6.3.Объектная модель предметной области
- •6.4. Сравнение методик моделирования предметной области
- •Вопросы для повторения
- •Понятие модели предметной области.
- •Резюме по теме
- •Литература Рекомендуемая основная литература
- •Рекомендуемая дополнительная литература
- •Задачник Введение
- •Краткое изложение используемых методов решения и основных теоретических положений
- •Примеры решения типовых задач
- •Задачи для самостоятельного решения
- •Практикум (лабораторный) Лабораторная работа №1. Кодирование информации
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Понятие информации.
- •Способ оценки результатов
- •Пример выполнения работы
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Список индивидуальных данных
- •Пример выполнения работы
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
4.3.5. Нормальные формы
Всего определены шесть нормальных форм.
первая нормальная форма (1НФ);
вторая нормальная форма (2НФ);
третья нормальная форма (3НФ);
нормальная форма Бойса-Кода (усиленная 3НФ);
четвертая нормальная форма (4НФ);
пятая нормальная форма (5НФ).
Задачи получения 4НФ и 5НФ на практике возникают редко. Далее будут рассматриваться 1НФ, 2НФ и 3НФ.
Нормальные формы ограничивают определенный тип функциональной зависимости и устраняют аномалии при выполнении операций над отношениями.
Отношение, у которого все атрибуты простые, называется приведенным к 1НФ.
Рассмотрим ранее встречавшееся отношение ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ (см.табл.4.10). Данное отношение находится в 1НФ. В этом отношении существуют следующие частичные функциональные зависимости:
Атрибуты Фамилия, Должность, Оклад, Кафедра, Телефон зависят от части составного ключа ТабНом;
Атрибут КолЧасов зависит от части составного ключа Предмет.
Такие частичные зависимости приводят к следующим аномалиям:
Избыточность. Дублируются данные о преподавателе (преподаватель может вести несколько предметов) и о количестве часов предмета (один предмет могут вести разные преподаватели).
Аномалии обновления. Например, изменение оклада преподавателя или количества часов предмета влечет за собой необходимость поиска и изменения соответствующих значений во всех кортежах.
Аномалии включения. Преподавателя, не ведущего никакого предмета, нельзя включить в отношение. Также нельзя включить предмет, который пока не преподается.
Аномалии удаления. Если преподаватель увольняется, то он должен быть удален из отношения. При этом если некоторый предмет вел только удаляемый преподаватель, то удаляется и данный предмет. Аналогично, если предмет отменен и его вел преподаватель, не ведший других предметов, то при удалении предмета удаляется и данный преподаватель.
Таким образом, первая нормальная форма требует дальнейших преобразований.
Отношение находится в 2НФ, если оно находится в 1НФ, и каждый неключевой атрибут функционально полно зависит от первичного ключа (не должно быть зависимости от части ключа). 2НФ имеет смысл только для отношений, имеющих составной ключ. БД находится в 2НФ, если все ее отношения находятся в 2НФ.
Чтобы устранить частичную зависимость и привести рассмотренное отношение ко 2НФ, необходимо разложить его на два отношения следующим образом:
Построить проекцию без атрибутов, которые находятся в частичной функциональной зависимости от составного ключа.
Построить проекцию на часть составного ключа и атрибуты, зависящие от этой части.
Как было отмечено выше, в отношении ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ существуют две частичные зависимости, поэтому процесс приведения данного отношения ко 2НФ будет состоять из двух шагов. На первом шаге устраняется первая частичная зависимость - зависимость атрибутов Фамилия, Должность, Оклад, Кафедра, Телефон от части составного ключа ТабНом. Для этого необходимо выполнить следующие проекции:
НАГРУЗКА_ПРЕДМЕТ=ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ[ТабНом, Предмет,КолЧасов]
ПРЕПОДАВАТЕЛЬ=ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ[ТабНом, Фамилия,Должность, Оклад,Кафедра,Телефон]
После выполнения данных проекций отношение ПРЕПОДАВАТЕЛЬ находится в 2НФ (табл.4.11).
В отношении НАГРУЗКА_ПРЕДМЕТ (см. табл.4.11) осталась частичная зависимость атрибута КолЧасов от части составного ключа Предмет. Устранение такой зависимости осуществляется на втором шаге приведения отношения ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ ко 2НФ. На данном шаге необходимо выполнить следующие проекции:
НАГРУЗКА=НАГРУЗКА_ПРЕДМЕТ[ТабНом,Предмет]
ПРЕДМЕТ=НАГРУЗКА_ПРЕДМЕТ[Предмет,КолЧасов]
В итоге получим БД, состоящую из трех отношений: ПРЕДМЕТ, НАГРУЗКА и ПРЕПОДАВАТЕЛЬ, находящуюся в 2НФ (табл.4.12).
Таблица 4.11 |
||||||||||||||||||||||||||||||||||||
Результат первого шага приведения к 2НФ отношения ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Таблица 4.12 |
||||||||||||||||||||||||||||||||||||||||||||||||
Результат приведения к 2НФ отношения ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
Изображение отношений в виде таблиц, как это делалось до сих пор, не удобно при проектировании больших БД. Это связано с тем, что такое изображение достаточно громоздко и при его использовании не показываются связи между отношениями. Для изображения моделей данных существует много международно-признанных систем обозначений (нотаций). Рассмотрим кратко основные элементы нотации IDEF1X и далее будем изображать модели данных как с помощью таблиц, так и в данной нотации. Более подробно стандарт IDEF1X будет рассмотрен в курсе «Проектирование информационных систем».
Модели данных в нотации IDEF1X изображаются в виде диаграмм. Отношения (сущности) обозначаются прямоугольниками, внутри которых перечисляются атрибуты. Атрибуты, составляющие ключ, размещаются сверху и отделяются от остальных атрибутов горизонтальной линией. Связь между двумя сущностями обозначается линией между прямоугольниками, соответствующими данным сущностям.
В IDEF1X различают зависимые и независимые сущности. Тип сущности определяется ее связями с другими сущностями. Различают идентифицирующие и неидентифицирующие связи.
Идентифицирующая связь устанавливается между независимой и зависимой сущностями. Говорят, что независимая сущность является родительской по отношению к зависимой сущности. Также говорят, что зависимая сущность является дочерней по отношению к независимой сущности.
Зависимые сущности обозначаются прямоугольниками со скругленными углами. Линия, изображающая связь, помечается точкой на конце у дочерней сущности. Внешние ключи помечаются буквами FK.
Пример идентифицирующей связи между независимой и зависимой сущностями показан на рис. 4.2. Экземпляр зависимой сущности определяется только через связь к родительской сущности. В примере это означает, что информация о заказе не имеет смысла без информации о клиенте.
Пример неидентифицирующей связи между независимыми сущностями показан на рис.4.3.
Неидентифицирующие связи разделяются на необязательные и обязательные.
В случае необязательной неидентифицирующей связи атрибут дочерней сущности, являющийся внешним ключом, может иметь пустое значение. Например, на рис.4.3 неидентифицирующая связь между сущностями «Отдел» и «Сотрудник» не является обязательной. Это означает, что значение внешнего ключа «Номер отдела» в некотором экземпляре сущности «Сотрудник» может быть пустым. То есть может существовать некоторый сотрудник, который не относится ни к какому отделу.
Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности, как показано на рис.4.3.
В случае обязательной неидентифицирующей связи атрибут дочерней сущности, являющийся внешним ключом, не может иметь пустое значение.
Если для создания IDEF1X диаграмм используется программное средство AllFusion Erwin Data Modeler, то при установлении связи дочерняя сущность дополняется атрибутами родительской сущности. Такая операция называется миграцией атрибутов. Миграция атрибутов выполняется по следующим правилам:
При установлении идентифицирующей связи дочерняя сущность автоматически преобразуется в зависимую сущность, а атрибуты первичного ключа родительской сущности мигрируют в состав ключевых атрибутов дочерней сущности.
При установлении неидентифицирующей связи атрибуты первичного ключа родительской сущности мигрируют в состав неключевых атрибутов дочерней сущности.
С учетом операции миграции атрибутов можно сформулировать правила приведения ко 2НФ в среде AllFusion Erwin Data Modeler:
Создать новую сущность A, включив в нее часть составного ключа исходной сущности и атрибуты, зависящие от этой части.
Создать новую сущность B путем удаления из исходной сущности всех атрибутов, вошедших в сущность A.
Установить идентифицирующую связь между сущностью A и B. При этом сущность A является родительской, а сущность B - дочерней.
Вернемся к примеру приведения отношения ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ (табл.4.10) ко 2НФ. Как было отмечено выше, в данном отношении существуют две частичные функциональные зависимости (атрибуты Фамилия, Должность, Оклад, Кафедра, Телефон зависят от части составного ключа ТабНом, и атрибут КолЧасов зависит от части составного ключа Предмет). Поэтому процесс приведения данного отношения ко 2НФ состоял из двух шагов.
На первом шаге устранялась зависимость атрибутов Фамилия, Должность, Оклад, Кафедра, Телефон от части составного ключа ТабНом. Выполнение этого же процесса в среде AllFusion Erwin Data Modeler проиллюстрировано на рис. 4.4.
На втором шаге устранялась зависимость атрибута КолЧасов от части составного ключа Предмет. Выполнение этого же процесса в среде средства AllFusion Erwin Data Modeler проиллюстрировано на рис. 4.5.
В результате получилась модель БД в 2НФ, представленная IDEF1X диаграммой на рис.4.6.
Продолжим дальнейший анализ отношений, полученных в результате приведения отношения ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ ко 2НФ. В отношении ПРЕПОДАВАТЕЛЬ есть транзитивные зависимости:
ТабНом Кафедра Телефон
ТабНом Должность Оклад
Их наличие порождает неудобства и аномалии следующего характера (на примере «Телефон»):
Дублирование информации о телефоне для всех преподавателей.
Проблема контроля избыточности при изменении номера телефона.
Нельзя включить данные о новой кафедре, если на ней еще отсутствуют преподаватели; и наоборот, при увольнении всех преподавателей данные о кафедре нельзя сохранить.
Для решения указанных проблем требуются дальнейшие преобразования отношений.
Отношение находится в 3НФ, если оно находится во 2НФ, и в нем отсутствуют транзитивные функциональные зависимости неключевых атрибутов от ключа.
Без использования понятия «транзитивные функциональные зависимости» 3НФ может быть определена следующим образом: отношение находится в 3НФ, если оно находится в 2НФ, и никакой неключевой атрибут не зависит от другого неключевого атрибута.
Таким образом, в отношении, находящимся в 3НФ, не должно быть взаимосвязи между неключевыми атрибутами.
БД находится в 3НФ, если все ее отношения имеют 3НФ.
Для рассматриваемого примера можно получить три отношения в 3НФ: ПРЕПОДАВАТЕЛЬ, ДОЛЖНОСТЬ и КАФЕДРА, представленные в табл.4.13.
С учетом операции миграции атрибутов в AllFusion Erwin Data Modeler правила приведения отношения во 2НФ к отношению в 3НФ будут следующие:
Создать новую сущность A, включив в нее атрибуты исходной сущности с одной и той же зависимостью. Атрибуты, определяющие эту зависимость, использовать в качестве первичного ключа сущности A.
Создать новую сущность B путем удаления из исходной сущности всех атрибутов, вошедших в сущность A.
Установить неидентифицирующую связь от сущности A к сущности B.
Таблица 4.13 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Примеры отношений в третьей нормальной форме |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В нашем примере в отношении ПРЕПОДАВАТЕЛЬ, которое находится во 2НФ, есть две зависимости между неключевыми атрибутами: атрибут Телефон зависит от атрибута Кафедра и атрибут Оклад зависит от атрибута Должность. Поэтому процесс приведения данного отношения к 3НФ будет состоять из двух шагов.
На первом шаге устраняется зависимость атрибута Телефон от атрибута Кафедра. Выполнение этого процесса в среде средства AllFusion Erwin Data Modeler проиллюстрировано на рис. 4.7.
На втором шаге устраняется зависимость атрибута Оклад от атрибута Должность. Выполнение этого процесса в среде средства AllFusion Erwin Data Modeler проиллюстрировано на рис. 4.8.
Полностью модель БД в 3НФ для хранения отношения ПРЕПОДПВАТЕЛЬ_ПРЕДМЕТ, представленная IDEF1X диаграммой на рис.4.9.
