Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование бизнес-процессов / Моделирование бизнес-процессов / ER-диаграмы / Проектирование реляционных БД с помощью ER-диаграмм_ver1.6.doc
Скачиваний:
184
Добавлен:
30.04.2013
Размер:
7.8 Mб
Скачать

Контрольные вопросы 1.3

1. Что такое функциональные зависимости? Приведите примеры.

2. Сформулируйте правило дополнения. Приведите примеры.

3. Сформулируйте правило декомпозиции. Приведите примеры.

Краткий обзор метода нормальных форм

В этом разделе мы кратко расскажем о первой, второй и третьей нормальных формах.

Первая нормальная форма (1НФ)

Первая нормальная форма (1НФ) требует, чтобы все данные были сведены в плоскую (двумерную) таблицу, не содержащую одинаковых строк и, чтобы все атрибуты были простыми. Пример таблицы, не находящейся в первой нормальной форме, в ней запись Служащий (employee) выглядит так:

Employee(name, address, {dependent name})

Где {dependentname}означает, что атрибут повторяется. Образец данных для этой записи может быть таким:

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

Зависимые люди – так обычно называют повторяющуюся «неатомарную» группу (то есть группу, которая имеет более одного значения и может быть разбита на несколько частей).

Вторая нормальная форма (2НФ)

Вторая нормальная форма (2НФ) требует, чтобы данные в таблицах функционально полно зависели от составного ключа. Неполные зависимости (то есть зависимости от части ключа) не разрешаются. Например: Employee(name,job,salary,address), где для идентификации «salary» (оклад) используется комбинация «name + job» (составной ключ), но «address» зависит только от «name». Пример данных:

Видите ли Вы здесь проблему? Адрес должен повторяться каждый раз при появлении одинакового имени. Это повторение называется избыточностьюи приводит каномалиям.Аномалияозначает ограничение действий с данными. Есть аномалии введения, аномалии удаления, и аномалии коррекции (изменения). Ключом этой таблицы являетсяName + Job – это очевидно, поскольку сочетание этих атрибутов уникальное, и действительно, для идентификацииSalary(зарплата) требуются оба атрибута:NameиJob. Тем не менее, адрес (Address) зависит только от имени (Name), а не от работы (Job); это - пример частичной зависимости. Адрес (Address) зависит от только части ключа. Примером аномалии введения может быть случай, когда нужно добавить в приведенную ранее таблицу человека, но ему еще не назначена работа (Job). Следовательно, информацию о нем нельзя ввести, поскольку должно быть известно значение атрибута работа (Job).

В реляционных базах данных нулевые значения не могут быть значениями ключей (это называется условием целостности сущности). Аномалия коррекции может возникнуть при изменении адреса (Address) служащего. При изменении одного адреса, происходит коррекция трех рядов. Примером аномалии удаления, может быть то, что при удалении информации об Адамсе (Adams), удаляется не только информация, непосредственно связанная с ним, но и общая информация о том, что аналитик получает $28.50. Следовательно, теряется больше связанной информации, чем нужно.

Третья нормальная форма (3НФ)

Третья нормальная форма (3НФ) требует, чтобы данные в таблицах нетранзитивно (непосредственно) зависели от ключа. Классический пример неправильной 3НФ таков:

Employee (name, address, project#, project-location)

Предположим, что project-location означает местоположение, где контролируется проект, и определяется project# (проектом#). Некоторые данные в таблице проиллюстрируют проблему:

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

Для того чтобы в базе данных не было аномалий и избыточности, она должна быть нормализована. Процесс нормализации включает в себя разделение таблицы на две или больше таблиц (декомпозиция). После этого, отдельные таблицы могут быть соединены с помощью операции, называемой «связывание». Существует три декомпозиции, облегчающие нормализацию в наших примерах, как показано ниже.