 
        
        3.3 Приведение к 3нф
Так как транзитивных зависимостей нет, то 2 НФ является и 3 НФ.
Таким образом, получаем 6 таблиц, представленных на рисунке 3:
 
Рисунок 3. Приведение к 2-3НФ.
4. Проектирование таблиц Сотрудник
| Поле | Тип | Пояснение | 
| № паспорта | Number(10,0) | PRIMARY KEY | 
| ФИО | Varchar2(40) | Обязательное поле | 
| Дата рождения | Date | Обязательное поле | 
| Код города | Number(4,0) | Обязательное поле | 
| Адрес | Varchar2(40) | Обязательное поле | 
| Домашний телефон | Number(10,0) | 10 цифр код города и номер телефона | 
| Почтовый индекс | Number(6,0) | 6 цифр индекс почтового отделения | 
Пояснения
№ паспорта - Используем тип числовой, т. к. № паспорта – это совокупность цифр
ФИО - Используем символьный тип, потому что имя, фамилия, отчество – состоят из букв
Дата рождения - Используем тип дата, потому что дата рождения – это совокупность дня, месяца и года
Код города - Используем числовой тип, т.к. код будем задавать числом
Адрес - Используем символьный тип, потому что адрес содержит буквы
Домашний телефон - Используем числовой тип, т.к. № телефона – это совокупность чисел
Почтовый индекс - Используем числовой тип, т.к. индекс – это совокупность чисел
Работа
| Поле | Тип | Условие | 
| № паспорта | Number(10,0) | PRIMARY KEY | 
| Код предприятия | Number(4,0) | PRIMARY KEY | 
| Должность | Varchar2(40) | Обязательное поле | 
| Дата найма | Date | Обязательное поле | 
| Дата увольнения | Date | Обязательное поле | 
Пояснения
№ паспорта - Используем тип числовой, т. к. № паспорта – это совокупность цифр
Код предприятия - Используем числовой тип, т.к. код будем задавать числом
Должность - Используем символьный тип, потому что название должности – это совокупность букв
Дата найма - Используем тип дата, потому что дата – это совокупность дня, месяца и года
Дата увольнения - Используем тип дата, потому что дата – это совокупность дня, месяца и года
Образование
| Поле | Тип | Пояснение | 
| № паспорта | Number(10,0) | PRIMARY KEY | 
| Код учебного заведения | Number(4,0) | PRIMARY KEY | 
| Начало учебы | Date | Обязательное поле | 
| Окончание учебы | Date | Обязательное поле | 
| Специальность | Varchar2(40) | Обязательное поле | 
| Квалификация | Varchar2(40) | Обязательное поле | 
Пояснения
№ паспорта - Используем тип числовой, т. к. № паспорта – это совокупность цифр
Код учебного заведения - Используем числовой тип, т.к. код будем задавать числом
Начало учебы - Используем тип дата, потому что дата – это совокупность дня, месяца и года
Окончание учебы - Используем тип дата, потому что дата – это совокупность дня, месяца и года
Специальность - Используем символьный тип, потому что название специальности – это совокупность букв
Квалификация - Используем символьный тип, потому что название квалификации – это совокупность букв
Предприятие
| Поле | Тип | Пояснение | 
| Код предприятия | Number(4,0) | PRIMARY KEY | 
| Предприятие | Varchar2(40) | Обязательное поле | 
| Адрес предприятия | Varchar2(40) | Обязательное поле | 
| Код города | Number(4,0) | Обязательное поле | 
Пояснения
Код предприятия - Используем числовой тип, т.к. код будем задавать числом
Предприятие - Используем символьный тип, потому что название предприятия – это совокупность букв
Адрес предприятия - Используем символьный тип, потому что адрес содержит буквы
Код города - Используем числовой тип, т.к. код будем задавать числом
Учебное заведение
| Поле | Тип | Пояснение | 
| Код учебного заведения | Number(4,0) | PRIMARY KEY | 
| Учебное заведение | Varchar2(40) | Обязательное поле | 
| Адрес учебного заведения | Varchar2(40) | Обязательное поле | 
| Код города | Number(4,0) | Обязательное поле | 
Города
| Поле | Тип | Пояснение | 
| Код города | Number(4,0) | PRIMARY KEY | 
| Республика | Varchar2(40) | Обязательное поле | 
| Область | Varchar2(40) | Обязательное поле | 
| Населенный пункт | Varchar2(40) | Обязательное поле | 
Код города - Используем числовой тип, т.к. код будем задавать числом
Республика - Используем символьный тип, потому что название республики – это совокупность букв
Область - Используем символьный тип, потому что название области – это совокупность букв
Населенный пункт - Используем символьный тип, потому что населенного пункта – это совокупность букв
	
