Таблица находится в третьей нормальной форме, если она уже находится во второй нормальной форме и в ней отсутствуют зависимости между неключевыми полями.
Пример:
Пусть имеется таблица Получение (фирма, склад, объем), которое содержит информацию о фирмах, получающих товары со складов. В таблице имеются функциональные зависимости:
фирма ® склад (фирма получает товары только с одного склада)
склад ® объем
Аномалии. Если в данный момент отсутствует фирма, получающая товар со склада, то в базу данных нельзя ввести информацию об объеме склада (аномалия включения). Если последняя фирма перестает получать товар со склада, данные о складе и его объеме нельзя сохранить в базе данных (аномалия удаления). Если объем склада изменяется, необходимы просмотр всей таблицы и изменение записей для фирм, связанных со складом (аномалия обновления).
Преобразование таблицы в 3НФ, устраняет рассмотренные аномалии.
Получение (фирма, склад); Склад_объем (склад, объем).
Таблица Рейс, полученная 1-м способом приведения к 1НФ не находится в 2НФ, а полученная 2-м способом – находится в 3НФ.
Получив 3НФ, мы можем сказать, что наша модель данных нормализована. Существуют и другие нормальные формы, однако в большинстве случаев 3НФ достаточно, чтобы гарантировать правильность проекта базы данных.
ЗАДАНИЕ
1. Проектирование БД. Для своего варианта исходных данных определить зависимости между полями (атрибутами) и нормализовать таблицы в виде 3НФ. При необходимости ввести дополнительные поля. Если отношение предположительно уже находится в 3НФ, обосновать, что это действительно так. Результатом должна являться схема данных, отражающая структуру таблиц и виды их связей.
2. Создание БД средствами СУБД. Реализовать нормализованную базу данных средствами MS Access. Создать запрос «Исходные данные», отображающий все данные начальной (ненормализованной) таблицы.
ВАРИАНТЫисходных данных:
- Дан подробный план парка, на котором отдельно указано каждое дерево. Все деревья снабжены индивидуальными номерами.
ДЕРЕВЬЯ
| номер_дерева | порода | высота | вечнозеленое |
| бук | нет | ||
| падуб | да | ||
| бук | нет | ||
| ясень | нет |
- Ниже приведена часть записей, помещенных в таблицу «КОНФЕТЫ».
КОНФЕТЫ
| рецепт | ингредиент | граммы | калории_на_гр |
| ирис | сахар | 3.7 | |
| ирис | масло | 7.8 | |
| ирис | мука | 3.5 | |
| ирис | патока | 3.2 | |
| тянучка | сахар | 3.7 | |
| тянучка | масло | 7.8 | |
| тянучка | сгущен_молоко | 4.5 |
- В таблице фиксированы приезды людей в различные города. У всех визитеров разные фамилии, нет городов с одинаковыми названиями.
ВИЗИТЫ
| дата | фамилия | профессия | город | страна |
| Джонс | бухгалтер | Эфтон | Уайландия | |
| Смит | программист | Ситон | Эксландия | |
| Смит | программист | Эйтон | Эксландия | |
| Смит | программист | Эфтон | Уайландия | |
| Найт | инженер | Дитон | Зедландия | |
| Янг | инженер | Ситон | Эксландия |
- Переезд из одного города в другой всегда проходит по неизменному маршруту. В день проезжает не более одного автобуса по маршруту.
ПОЕЗДКИ
| откуда | куда | расстояние | дата | водитель | время |
| Уинклби | Коклтон | Маршалл | 3.4 | ||
| Уинклби | Коклтон | Арнольд | 2.8 | ||
| Коклтон | Макгов | Маршалл | 4.1 |
- Имена полей и часть записей приведены ниже. Два конкретных шахматиста могут сыграть не более одной партии в день.
ШАХМАТЫ
| дата | участник_1 | участник_2 | победитель | время |
| Грамбиг | Пивич | Пивич | 3.4 | |
| Грамбиг | Смит | Смит | 2.5 | |
| Грамбиг | Пивич | Пивич | 1.4 | |
| Смит | Пивич | Смит | 5.2 |
- Ниже приведены записи зоологического файла.
ЗВЕРИ_В_НЕВОЛЕ
| зоопарк | животное | зона_обитания | сторож |
| Эйтон | кенгуру | Австралия | Найт |
| Эйтон | верблюд | Аравия | Понсонби |
| Битон | эму | Австралия | Карузерс |
| Битон | верблюд | Аравия | Герсдлстон |
- ОРАНЖЕРЕЯ
| поместье | садовые_цветы | сезон_цветов |
| Гейблз | нарциссы | весна |
| Гейблз | розы | лето |
| Козикот | колокольчики | весна |
| Козикот | розы | лето |
| вид_спорта | победитель | год_рождения |
| прыжки_в_длину | Армстронг | |
| бег_на_100_м | Маршалл | |
| 100_м_с_барьерами | Маршалл | |
| прыжки_с_шестом | Уильямс |
- СОРЕВНОВАНИЯ
- БАР
| фамилия | напиток | количество | цена_за_порцию |
| Армстронг | виски | ||
| Армстронг | херес | ||
| Бек | виски | ||
| Найт | херес |
| владелец | дата_рожд | №_регистр | дата_регистр |
| Армстронг | 06.1960 | AHC134T | 06.1979 |
| Армстронг | 06.1960 | BCY529 | 05.1980 |
| Бек | 05.1959 | AHD339H | 10.1972 |
| Найт | 07.1961 | ОУУ796Р | 1.1976 |
- АВТОИНСПЕКЦИЯ
- АВТОМОБИЛИ
| код_машины | модель | тип_кузова | мощность_двигателя | цвет | дата_выпуска |
| А1А | ЗАЗ 968 | купе | белый | ||
| А2А | ВАЗ 2105 | седан | красный | ||
| А1В | ЗАЗ 968 | купе | желтый | ||
| А3И | ВАЗ 2105 | седан | синий | ||
| А2В | ВАЗ 21011 | универсал | синий |
12. ДОРОЖНАЯ_СЛУЖБА
| №_дороги | протяженность | город | население |
| А3 | Арби | ||
| А3 | Титон | ||
| А4 | Арби | ||
| А4 | Эсфилд |
13. ВРАЧИ
| код_врача | фамилия_врача | стаж_работы | пациенты |
| А1 | Иванов | Васильев, 45 лет Медведев, 27 лет | |
| А2 | Петров | Попов, 30 лет Щеглов, 30 лет Комаров, 38 лет | |
| А3 | Сидоров | Федоров, 35 лет Мухин, 38 лет |
14. ЛЕЧЕНИЕ
| №_назначения | дата_назначения | код_пациента | врач | стаж_работы | лекарство |
| 21.01.98 | В1 | Петров | аспирин | ||
| 23.01.98 | В5 | Сидоров | йод | ||
| 23.01.98 | В1 | Петров | спирт | ||
| 24.01.98 | В2 | Иванов | парацетамол |
15. ПОЕЗДА
| номер | пункт_отправления | пункт_назначения | отправление |
| Краснодар | Москва | пон. 10:15, путь №4 ср. 12:30, путь №1 суб. 3:50, путь №3 | |
| Москва | С.-Петербург | пон. 6:50, путь №2 ср. 6:50, путь №2 пятн. 6:50, путь №2 |