Консультация № 168667
01.06.2009, 11:30
0.00 руб.
0 3 1
Здравствуйте, Уважаемые эксперты.. не знал в какой рубрике спросить, поэтому пишу сюда.. Я готовлюсь к экзамену по БД и не как не могу запомнить (или понять) вопрос о нормализации отношений.. не могли бы вы ДОСТУПНЫМ! языком объяснить, что значит первая, вторая и третья нормальные формы, чем они отличаются и, вообще, для чего это нужно.. Заранее спасибо, надеюсь на вашу помощь..

Обсуждение

Неизвестный
01.06.2009, 15:42
общий
это ответ
Здравствуйте, Trigger.

Целью нормализации является избавление от лишних данных в таблице и упрощение управления данными.

1) В первой нормальной форме — 1NF — закладываются основы реляционной системы. В 1NF на пересечении строки и столбца не может содержаться несколько значений. В терминологии баз данных это означает, что каждое значение в таблице базы данных является атомарным, или единичным. В 1NF на пересечении строки и столбца должна находится только одна единица информации. Иными словами, в одной ячейке таблицы не должно быть двух значений, например таблица:

Номер_заказа Номера_товаров Сумма
1 2346, 3456, 2345 23456 р.
2 4509 123р.


должна быть преобразована в:

Номер_заказа Номер_товара Стоимость
1 2346 100
1 3456 200
1 2345 346
2 4509 123


2) Первым условием для второй нормальной формы — 2NF — является выполнение требований предъявляемых к 1NF. Второе условие состоит в том, что у каждой строки таблицы базы данных должен быть уникальный идентификатор.


Уникальный_идентификатор Номер_заказа Номер_товара Наименование
1 1 23345 Хлеб чёрный
2 1 678 Сахар
3 2 789 Чай


3) Третья нормальная форма, или 3NF, —это настоящее спасение для разработчика. При переходе к модели 3NF все усилия, затраченные на работу по нормализации базы данных, окупаются сторицей.
Так же, как и в случае с моделью 2NF, когда первым условием была согласованность с моделью 1NF, модель 3NF требует согласования моделью 2NF, т.е. выполнения всех ее условий.
Коротко суть 3NF можно выразить так: В таблице модели 3NF не должно быть избыточных неключевых столбцов, связанных с неключевыми столбцами других таблиц.

То есть из вышеуказанной таблицы мы убираем избыточное поле "Наименование" и переносим его в другую таблицу (например в таблицу "Ассортимент", где ключевым полем будет "Номер товара"), а все связи между неключевыми столбцами оставляем на откуп запросам.

Таким образом, если нам понадобится поменять например название товара с "Чай" на "Чай чёрный", мы поменяем его только в одной таблице "Ассортимент", а не будем бегать по всем таблицам в базе и вспоминать где же он у нас ещё избыточно прописан.

Подробности и источник здесь: url=http://cad.ntu-kpi.kiev.ua/courses/sql-server/5.htm
5
Большое спасибо!!! Теперь всё понятно.. Мир Вам!!
давно
Мастер-Эксперт
680
2811
01.06.2009, 21:35
общий
Можно еще добавить общих слов из школьного курса?
«Хорошо нормализованная база данных» - нетрадиционный термин, относящийся к тре­тьей нормальной форме. Её свойства: «Все поля таблицы должны отражать непосредственные характерис­тики (атрибуты) объекта, к которому относится запись». Все мно­жество данных делится между различными типами объектами, к которым они относятся. Со­ответственно строятся таблицы, содержащие атрибуты, от­носящиеся к этим типам объектов и связанные между со­бой через общие поля.
К примеру, в базе данных Поликлиника: таблицы "Врачи", "Пациенты", "Прием"
Для чего нужна:
1. Удобство работы пользователям (работаем с небольшими таблицами, а не с одной огромной)
2. Предотвращение потери данных (в случае ошибки теряется только их часть)
3. Экономия места на диске (нет повторов) и быстрее доступ к данным
4. Легче модифицировать, удобнее разработчику обрабатывать
Неизвестный
02.06.2009, 10:49
общий
Благодарю..
Форма ответа