Помощь в учёбе, очень быстро...
Работаем вместе до победы

Нормализация базы данных и описание отношений между таблицами

РефератПомощь в написанииУзнать стоимостьмоей работы

Для приведения таблиц ко второй нормальной форме (2НФ), приводимые таблицы должны быть уже в 1НФ. Нормализация должна проходить по порядку. Во второй нормальной форме, должно быть соблюдено условие — любой столбец, который не является ключом (в том числе внешним), должен зависеть от первичного ключа. Обычно такие столбцы, имеющие значения, который не зависят от ключа, легко определить. Если… Читать ещё >

Нормализация базы данных и описание отношений между таблицами (реферат, курсовая, диплом, контрольная)

Для приведения таблиц ко второй нормальной форме (2НФ), приводимые таблицы должны быть уже в 1НФ. Нормализация должна проходить по порядку. Во второй нормальной форме, должно быть соблюдено условие — любой столбец, который не является ключом (в том числе внешним), должен зависеть от первичного ключа. Обычно такие столбцы, имеющие значения, который не зависят от ключа, легко определить. Если данные, содержащиеся в столбце, не имеют отношения к ключу, который описывает строку, то их следует отделять в свою отдельную таблицу.

В таблице находятся данные не имеющие связи с первичным ключом, который в данном случае является «название препаратов». Такими данными является информация о сотрудниках. Поэтому стоит разделить их на отдельные таблицы: «Препараты» и «Сотрудники».

Таблица «Препараты».

Наз. препаратов.

Кол-во.

Группа препаратов.

Описание препаратов.

Закуп. цена.

Цена продаж.

Поставщик.

Контакты.

Заказы (кол-во).

Аевит.

A11JA.

Витамины и витаминоподобные средства в комбинациях.

РОСТА.

Бекламетазон.

R03BA01.

Глюкокортикостероиды.

РОСТА.

Мукалтин.

R05CA.

Отхаркивающие препараты.

0.50.

ПрофитМед.

Бронхикум.

R05CA10.

Отхаркивающие препараты в комбинации.

АБРИС+.

Анаприлин.

C07AA.

Бета-адреноблокаторы.

ПУЛЬС.

Парацетамол.

N02BE01.

Анальгетизирующее, жаропонижающее.

0,50.

АБРИС+.

Таблица «Сотрудники».

Фамилия.

Имя.

Должн.

Дата.р

Дата.н.

Зарпл.

Федоров.

Алексей.

провизор

02.10.72.

14.04.96.

Тоиров.

Умед.

Заведующ. провиз.

19.07.80.

30.03.2001.

Носиров.

Наим.

фармацевт.

12.05.1992.

29.11.2006.

Хакимов.

Немонджон.

фармацевт.

28.12.1993.

31.05.2011.

Робиева.

Матлюба.

бухгалтер

05.04.1990.

20.04.2014.

Чориева.

Дильбар

уборщик.

08.09.1967.

05.10.2002.

База данных будет находиться в третьей нормальной форме, если она приведена ко второй нормальной форме и каждый не ключевой столбец независим друг от друга. Если следовать процессу нормализации правильно до этой точки, с приведением к 3НФ может и не возникнуть вопросов. Следует знать, что 3НФ нарушается, если изменив значение в одном столбце, потребуется изменение и в другом столбце. Чтобы привести таблицу в третью нормальную форму надо выполнить следующие шаги:

Шаг 1. Определить, в каких полях каких таблиц имеется взаимозависимость. Как только что говорилось, поля, которые зависят больше друг от друга (поставщики и контакты поставщиков), чем от ряда в целом. Взглянув на таблицу препараты, увидите, что группы лекарств имеет связь с описанием лекарств, а поставщики имеет связь с заказами и контактами поставщиков.

Отношения таблицы препараты.

Нормализация базы данных и описание отношений между таблицами.

По отношению препараты, видно, что имеются связи не зависящие от первичного ключа «Название препаратов». Для этих связей создадим отдельные отношения:

Нормализация базы данных и описание отношений между таблицами.

В отношении «Группа препаратов» и «Описание препаратов» ключом является «Группа препаратов».

Таким же образом выявим независящие от первичного ключа связи в таблице «Сотрудники»:

Отношения сотрудники.

Нормализация базы данных и описание отношений между таблицами.

Первичный ключ в данном отношении является составным ключом — это «Фамилия» и «Имя». В данном случае полных тесок нет, поэтому ФИО можно использовать как составной ключ. В данном отношении «Зарплата» имеет связь с «Должностью», который является ключом. Разделим их на отдельную таблицу:

Нормализация базы данных и описание отношений между таблицами.

Исходя из этих отношений создадим таблицу «Препараты» и таблицы вспомогательные:

Таблица Препараты.

Наз. Препар.

Кол-во.

Группа препар.

Закуп. цена.

Цена продаж.

поставщик.

контакты.

Заказы (кол-во).

Аевит.

A11JA.

РОСТА.

Бекламетазон.

R03BA01.

РОСТА.

Мукалтин.

R05CA.

0.50.

ПрофитМед.

Бронхикум.

R05CA10.

АБРИС+.

Анаприлин.

C07AA.

ПУЛЬС.

Парацетамол.

N02BE01.

0,50.

АБРИС+.

Для таблицы «Препаратов» внешним ключом является «Группа препаратов».

Группа препаратов.

Описание препаратов.

A11JA.

Повышает устойчивость тканей к гипоксии, нормализует тканевое дыхание.

R03BA01.

Глюкокортикостероиды.

R05CA.

Отхаркивающие препараты.

R05CA10.

Отхаркивающие препараты в комбинации.

C07AA.

Пропронолог.

N02BE01.

Анальгетизирующее, жаропонижающее.

Пока таблица «Препараты» не соответствует 3НФ, так как можно наблюдать явное дублирование. Наименование поставщиков препаратов и контактов поставщиков дублируются. Для того чтобы решить проблему надо вывести эти столбцы в отдельную таблицу. Отношение будет следующее:

Нормализация базы данных и описание отношений между таблицами.

Исходя из данного отношения составим таблицу «Заказы». В данной таблице имеется явное дублирование контактов поставщиков.

Таблица «Заказы».

Название препаратов.

Поставщик.

Контакты.

Заказы (кол-во).

Закуп. цена.

Аевит.

РОСТА.

Бекламетазон.

РОСТА.

Мукалтин.

ПрофитМед.

0.50.

Бронхикум.

АБРИС+.

Анаприлин.

ПУЛЬС.

Парацетамол.

АБРИС+.

0,50.

Таблица «Поставщики».

Поставщик.

Контакты.

РОСТА.

ПрофитМед.

ПУЛЬС.

АБРИС+.

Получим исходную таблицу «Заказы». Остается неявное дублирование.

Название препаратов.

Поставщик.

Заказы (кол-во).

Закуп. цена.

Аевит.

РОСТА.

Бекламетазон.

РОСТА.

Мукалтин.

ПрофитМед.

0.50.

Бронхикум.

АБРИС+.

Анаприлин.

ПУЛЬС.

Парацетамол.

АБРИС+.

0,50.

Создадим исходную таблицу «Препараты», которая отвечает требованиям 3НФ:

Наз. препаратов.

Кол-во.

Группа препаратов.

Цена продаж.

Аевит.

A11JA.

Бекламетазон.

R03BA01.

Мукалтин.

R05CA.

Бронхикум.

R05CA10.

Анаприлин.

C07AA.

Парацетамол.

N02BE01.

Приступим к таблице «Сотрудники»:

Фамилия.

Имя.

Должн.

Дата рожд.

Дата найма.

Федоров.

Алексей.

провизор

02.10.72.

14.04.96.

Тоиров.

Умед.

Заведующ. провиз.

19.07.80.

30.03.2001.

Носиров.

Наим.

фармацевт.

12.05.1992.

29.11.2006.

Хакимов.

Немонджон.

фармацевт.

28.12.1993.

31.05.2011.

Робиева.

Матлюба.

бухгалтер

05.04.1990.

20.04.2014.

Чориева.

Дильбар

уборщик.

08.09.1967.

05.10.2002.

В данной таблице нет явного дублирования, исходя из этого можно сказать что таблица «Сотрудники» соответствует третей нормальной форме.

Таблица «Должность», так же находится в 3НФ.

Должн.

Зарплата.

провизор

Заведующ. провиз.

фармацевт.

бухгалтер

уборщик.

Показать весь текст
Заполнить форму текущей работой