- •Иерархическая, сетевая, реляционная модели представления данных.
- •Нормализация базы данных, основные принципы и цель нормализации.
- •Проектирование баз данных
- •Язык sql и его возможности, выборка данных средствами sql.
- •Язык sql и его возможности, редактирование данных средствами sql.
- •Создание, редактирование и удаление таблиц и связей средствами sql.
- •Вложенные и связанные подзапросы.
-
Нормализация базы данных, основные принципы и цель нормализации.
Проектирование реляционной БД заключается в разработке структуры данных, т.е. в определении состава таблиц и связей между ними. При этом структура должна быть эффективной и обеспечивать:
-
быстрый доступ к данным;
-
отсутствие дублирования (повторения) данных
-
целостность данных.
Проектирование БД можно представить следующим образом:
-
Сбор всей информации об объектах решаемой задачи в рамках одной таблицы (одного отношения)
-
Разбиение полученной таблицы на несколько взаимосвязанных таблиц на основе принципа нормализации отношений.
Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:
-
первая нормальная форма (1NF);
-
вторая нормальная форма (2NF);
-
третья нормальная форма (3NF);
-
нормальная форма Бойса-Кодда (BCNF);
-
четвертая нормальная форма (4NF);
-
пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).
Основные свойства нормальных форм:
-
каждая следующая нормальная форма в некотором смысле лучше предыдущей;
-
при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.
Теория нормализации основывается на наличии той или иной зависимости между полями таблицы.
Функциональная зависимость. Поле В таблицы функционально зависит от поля А той же таблицы в том и только в том случае, когда в любой заданный момент времени для каждого из различных значений поля А обязательно существует только одно из различных значений поля В. Отметим, что здесь допускается, что поля А и В могут быть составными.
Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.
Транзитивная функциональная зависимость Функциональная зависимость R.X -> R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X -> R.Z и R.Z -> R.Y и отсутствует функциональная зависимость R.Z --> R.X.
Основными считаются первые 3 нормальные формы:
(3НФ оказывается вполне достаточно для создания надежной схемы БД. НФ более высокого порядка чрезмерно сложны и могут оказаться слишком накладными для реализации на практике)
1НФ - таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто. (Любое поле таблицы содержит неделимую информацию и в таблице определен первичный ключ)
2НФ - Таблица находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый ее неключевой атрибут полностью зависит от первичного ключа. (Таблица должна удовлетворять 1NF и любое неключевое поле должно однозначно идентифицироваться ключевыми полями.)
3НФ – Таблица находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. (Таблица должна удовлетворять 2NF и ни одно из неключевых полей не должно однозначно идентифицироваться значением другого неключевого поля (полей))