База данных (БД) означает совокупность данных, предназначенных для совместного использования.
Рассмотрим реляционную модель базы даных, в которой база данных представляется в виде одной или нескольких однородных таблиц.
Для решения задач предприятия требуется все данные упорядочить по объектам и разнести по таблицам и запросам базы данных. Этот этап иначе называется нормализацией, в результате которого вырабатывается наиболее эффективный и гибкий способ хранения данных.
Нормализация данных– это теоретическая и практическая процедура освобождения таблиц базы данных от лишних данных.
Правила нормализации таблицы
Правило 1. Каждое поле любой таблицы должно быть уникальным, т.е. не д.б. полей с одинаковыми именами.
Правило 2. Каждая таблица должна иметь уникальный идентификатор, или первичный ключ, который может состоять из одного или нескольких полей, т.е. значения в ключевом поле д.б. уникальными.
Правило 3. Для каждого значения первичного ключа значения в столбцах данных должны относиться к объекту таблицы и полностью его описывать.
Правило 4. Пользователь должен иметь возможность изменять значения любого поля (не входящего в первичный ключ) без воздействия на данные других полей.
Первичным ключомназывается поле (или несколько полей), значение которого не повторяется ни в одной записи данной таблицы.
Пример. Для ведения учёта поставки материалов создать базу данных, содержащую следующую информацию:
– дата поставки материала;
– наименование материала;
– количество поставленного материала;
– цена материала за единицу;
– наименование организации поставщика;
– город местонахождения поставщика;
– контактный телефон.
Осуществим нормализацию данных.
1. Чтобы избежать повторений информации о городах при вводе данных о поставщиках из одного и того же города, следует создать отдельную таблицу, содержащую сведения о городах, устанавливая при этом каждому городу отдельный числовой код. Структуру таблицы можно представить следующим образом:
ГОРОД(Код_города, Город)
В этой таблице поле "Код_города" является первичным ключом, т. к. повторных значений этого поля в таблице не должно быть.
2. Чтобы избежать повторения информации о поставщиках, в случае нескольких поставок от одного и того же поставщика, необходимо создать отдельную таблицу, в которой поместить сведения о каждом поставщике, предусматривая для каждого поставщика отдельный числовой код. Структуру отношений в этой таблице можно записать следующим образом:
Первичным ключом этой таблицы является поле "Код_поставщика", т. к. ни одно значение этого поля повторяться не должно.
3. Чтобы избежать повторений информации о материалах при вводе данных о поставках одного и того же материала, следует создать отдельную таблицу, содержащую сведения о материалах, устанавливая при этом каждому материалу отдельный числовой код. Если цена материала не зависит от даты поставки и поставщика, структуру таблицы можно представить следующим образом:
В этой таблице поле "Код_материала" является первичным ключом, т. к. повторных значений этого поля в таблице не должно быть.
4. Наиболее часто изменяемой и пополняемой будет таблица о поставках материалов с указанием даты поставки, материала, количества поставленного материала, поставщика. Для каждой записи этой таблицы тоже можно указать уникальный числовой код. Структуру отношений в этой таблице можно записать следующим образом:
Первичным ключом этой таблицы является поле "Код_поставки", т. к. ни одно значение этого поля повторяться не должно. Поля "Код_материала" и "Код_поставщика" являются чужим ключом, так как каждый из них является ключом другой таблицы. В таблице ПОСТАВКА значения каждого из них могут повторяться, то есть одинаковых значений каждого из этих полей может быть много.