
- •Сикха Багуи и Ричард Ирп
- •Контрольные вопросы 1.1
- •Модели данных
- •Иерархическая Модель
- •Сетевая модель
- •Реляционная модель
- •Контрольные вопросы 1.2
- •Функциональные зависимости
- •Правило декомпозиции (разложения)
- •Правило объединения
- •Контрольные вопросы 1.3
- •Краткий обзор метода нормальных форм
- •Примеры 1нф, 2нф и 3нф
- •Упражнение 1.3
- •Глава 2: Базовая er-диаграмма – схема
- •Некоторые определения баз данных: Сущность, Связь, Атрибут
- •Начальная Методология
- •Еще об атрибутах
- •Простые или атомарные атрибуты
- •Многозначные атрибуты
- •Производный атрибуты
- •Описание Сущности на структурном английском языке
- •Сущность
- •Атрибуты
- •Методология er-проектирования
- •Примеры
- •Сущность
- •Атрибуты
- •Методология er проектирования
- •Итоги главы
- •Упражнения Главы
- •Упражнение 2.1
- •Упражнение 2.2
- •Проработка примера
- •Сущность
- •Глава 3: После первой диаграммы сущности
- •Проверка Сущности — замена атрибута сущностью
- •Методология er-проектирования
- •Определение вторичной сущности
- •Существует ли связь?
- •Атрибут или Связь?
- •Глава 4: Расширение связей/ Структурные
- •1(Полное участие):1:
- •Глава 5: Слабая Сущность
- •Грамматика Слабой Сущности
- •Контрольные вопросы 5.3
- •Упражнения Главы 5. Упражнение 5.1
- •Список литературы
- •Сущность
- •Атрибуты для отдела
- •Сущность
- •Атрибуты для служащего
- •Глава 6: Дальнейшее Расширение
- •Сущность
- •Атрибуты
- •Более двух Сущностей
- •С указанием всех атрибутов
- •Развитие базы данных
- •Глава 7: Троичные и er-диаграммы более высокого порядка
- •Глава 8: Обобщения и специализации.
- •Глава 9: Реляционные преобразования и
- •Глава 10: Краткий обзор модели Баркера
- •Глава 10. Упражнения.
Контрольные вопросы 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, записывается снова. В этой таблице присутствуют те же аномалии: аномалия введения, аномалия коррекции и аномалия удаления.
Для того чтобы в базе данных не было аномалий и избыточности, она должна быть нормализована. Процесс нормализации включает в себя разделение таблицы на две или больше таблиц (декомпозиция). После этого, отдельные таблицы могут быть соединены с помощью операции, называемой «связывание». Существует три декомпозиции, облегчающие нормализацию в наших примерах, как показано ниже.