1. Напишите команду для удаления из таблицы MAN всех строк с информацией о людях, проживающих в городах с населением 200 000.
2. Обновите номера автомобилей, добавив к номеру 111 в конце строки, только тех, для которых нет совпадающих телефонов в таблице MAN.
Шаг 48. Нормализация. Проектирование базы данных. Основы
Нормализация — это правила, позволяющие улучшить, оптимизировать базу данных.
Нормализация ставит задачу обеспечить поддержку целостности данных. Нормализация — процесс, обеспечивающий хранение одного элемента в одном-единственном экземпляре в базе данных, позволяя тем самым избегать дублирования.
База данных считается нормализованной, если ее таблицы представлены как минимум в третьей нормальной форме.
Процесс нормализации данных заключается в устранении избыточности данных в таблицах, в разбиении больших таблиц с множеством колонок на таблицы с меньшим количеством колонок.
То есть нормализация — это процесс приведения базы данных и структуры хранения данных к нормальным формам.
Существует шесть нормальных форм, для создания нормализованной базы данных достаточно знать первые три формы.
Ненормализованная база данных
У таблиц нет первичных ключей, информация в строках таблиц дублируется, в одной колонке таблицы содержится несколько неатомарных значений.
Пример такой таблицы:
Рисунок 136. Таблица ненормализованная
У таблицы нет первичных ключей, и в колонках CITY и CARS содержатся неатомарные значения.
Более организованно выглядит база, когда данные находятся в первой нормальной форме.
Для этого таблицы в базе должны удовлетворять следующим правилам.
Каждый атрибут отношения должен хранить атомарное значение, каждое отношение (строка в таблице) должно содержать одинаковое количество атрибутов (столбцов), это первая нормальная форма.
• Запрещает повторяющиеся колонки (содержащие одинаковую по смыслу информацию);
• запрещает множественные колонки (содержащие значения типа списка и т.п.);
• требует определить первичный ключ для таблицы, то есть ту колонку или комбинацию колонок, которые однозначно определяют каждую строку.
Пример таблицы в первой нормальной форме:
Рисунок 137. Первая нормальная форма
• В таблице нет множественных колонок, в таблице нет колонок, содержащих одинаковую по смыслу информацию;
• комбинация колонок CARN, PHONE — это уникальное сочетание, однозначно определяющее строку.
Считается, что база данных находится во второй нормальной форме, если соблюдаются следующие условия:
• таблица уже находится в 1НФ и при этом все неключевые атрибуты зависят только от первичного ключа, то есть
• вторая нормальная форма требует, чтобы неключевые колонки таблиц зависели от первичного ключа в целом, но не от его части;
• если таблица находится в первой нормальной форме и первичный ключ у нее состоит из одного столбца, то она автоматически находится и во второй нормальной форме.
Пример
Покупатели
Рисунок 138. Вторая нормальная форма
Машины
Рисунок 139. Вторая нормальная форма
В данном случае у нас есть таблицы, для каждой из которых соблюдаются правила второй нормальной формы. В таблице 1НФ у нас был составной ключ и зависимость записей от части ключа. В этом примере для машин первичный ключ CARN, для покупателей — PHONE.
Третья нормальная форма — это когда таблица находится во второй нормальной форме, каждый неключевой атрибут зависит только от первичного ключа и такие атрибуты не зависят друг от друга.
Рисунок 140. Третья нормальная форма
Атрибуты — колонки таблиц не находятся в зависимости друг от друга и зависят только от первичного ключа.
Для первой нормальной формы также важно соответствие базы данных следующим требованиям:
• строки таблиц не должны зависеть друг от друга, то есть первая запись не должна влиять на вторую и наоборот, вторая на третью и т. д. Порядок размещения записей в таблице не имеет никакого значения;
• порядок размещения колонок таблицы также не должен иметь никакого значения.
Нормализация базы данных до третьей нормальной формы является обязательной всегда?
Читать дальше
Конец ознакомительного отрывка
Купить книгу