Вторая нормальная форма (2NF) требует, чтобы соблюдались условия первой нормальной формы и чтобы любой неключевой столбец зависел от всего первичного ключа таблицы, а не от его части. Это правило относится только к тому случаю, когда первичный ключ образован из нескольких столбцов.
Пример. Пусть таблица регионов REGION в процессе проектирования приняла следующий вид (табл. 2.3).
Первая нормальная форма (иногда в литературе используется сокращение 1НФ или 1NF — first normal form) требует, чтобы значение любого столбца было единственным, атомарным. Иными словами, в таблице не должно быть повторяющихся групп. В литературе корпорации Microsoft к первой нормальной форме предъявляется также и требование, чтобы каждая таблица имела первичный ключ.
Первая задача при проектировании базы данных — составление списка таблиц и разработка структуры каждой таблицы. В реляционных базах данных есть понятие нормализации таблиц. Существует набор стандартов проектирования данных, называемых нормальными формами. Нормальные формы определяют правила, которым должны соответствовать структуры таблиц. Общепризнанными являются шесть нормальных форм, хотя в литературе по базам данных можно найти и гораздо большее количество форм нормализации. На практике обычно используется третья нормальная форма.
Хорошим примером такого отношения является отношение между таблицей авторов и таблицей книг. Одна книга может быть написана несколькими авторами, один автор может написать несколько книг (рис. 2.3).

Отношение "один ко многим" между двумя таблицами реализуется связкой "внешний ключ/первичный ключ". Реже применяется связка "внешний ключ/уникальный ключ". Это отношение иногда в литературе называют отношением "многие к одному".
Такое отношение можно назвать универсальным — с его помощью можно представить практически любые отношения в базе данных, начиная от простой иерархии до реализации отношения "многие ко многим".
Если между двумя таблицами базы данных появляется отношение "один к одному", то лучше объединить эти таблицы в одну. Основной причиной использования этого отношения является экономия памяти и увеличение скорости выполнения запросов.
Такое отношение используется в том случае, если связь между двумя таблицами не является обязательной.
Не так часто в реальной жизни встречаются случаи, когда требуется использовать отношение "один к одному".
В базах данных существует три вида отношений: "один к одному", "один ко многим" и "многие ко многим". Отношения в реляционных базах данных чаще всего реализуются связкой "внешний ключ/первичный ключ", реже — связкой "внешний ключ/уникальный ключ". Отношение между двумя таблицами вида "многие ко многим" реализуется добавлением третьей связующей таблицы и двумя связками "внешний ключ/первичный ключ".
Рассмотрим по порядку эти три отношения. Во всех примерах мы будем использовать графическое описание данных. Прямоугольники в этих графических описаниях будут изображать таблицы, линии со стрелками или без стрелок будут представлять отношения между таблицами
Очень часто при описании реляционных систем управления базами данных приводят и известные 12 правил Кодда. Эти правила нужны в первую очередь разработчикам самих СУБД, но нам с вами, специалистам по использованию уже созданных СУБД, не следует тратить время на изучение этих правил. Тем не менее, я все же поместил эти правила в приложение 1, вдруг они все-таки кому-нибудь и понадобятся. 
Транзакция является "механизмом" базы данных. Это некоторая законченная, иногда довольно сложная единица работы с данными и/или метаданными базы данных. Все операторы работы с базой данных (как с данными, так и с метаданными) выполняются в рамках — или еще говорится, в контексте — какой-либо транзакции. Исключением является оператор SELECT, который может выполняться и вне контекста транзакции. В контексте транзакции выполняется, как правило, группа операторов, переводящих базу данных из одного непротиворечивого состояния в другое непротиворечивое состояние.
Для каждой таблицы желательно использовать первичный ключ. Таблица может иметь только один первичный ключ. Важно правильно выбрать столбец или группу столбцов таблицы, которые войдут в состав первичного ключа. Основное требование к первичному ключу — его уникальность. В таблице не может быть двух разных строк, имеющих одинаковые значения первичного ключа. Второе реальное требование к первичному ключу — его относительно малый размер. 

Часто первичные ключи принимают участие в связке "внешний ключ/первичный ключ". Для реализации этого отношения подчиненные, дочерние, таблицы должны включать в свой состав в качестве внешнего ключа столбцы, входящие в состав первичного ключа главной, родительской, таблицы. Кроме того, для первичного ключа система строит индексы. Все это в случае большого по размерам ключа увеличивает объем требуемой внешней памяти и может сильно ухудшить временные характеристики системы.

Популярные новости

Опрос

Какие языки программирования вы хотите видеть на сайте

Другие опросы...