Прежде чем начать разговор о том, как надо создавать реляционную БД, рассмотрим несколько базовых определений и ключевых терминов. Фундаментальную роль в БД играет таблица; в реляционных БД ее именуют R-таблица. Таблица представляет собой сетку строк и столбцов. Таблица может претендовать на «реляционность», если она обладает следующими характеристиками:
• Уникальность имен столбцов внутри таблицы.
• Строки таблицы отличаются друг от друга хотя бы одним значением, что позволяет однозначно идентифицировать любую строку такой таблицы.
• В таблице отсутствуют повторяющиеся группы данных.
• Строки и столбцы таблицы могут обрабатываться в любом порядке независимо от хранящихся в них данных.
Рассмотрим элементы реляционной таблицы. Запись (строка) - содержимое базы данных. Преподаватели ВУЗов говорят, что запись представляет собой кортеж. Действительно, запись делится на элементы, каждый из которых соответствует столбцу таблицы (элементу упорядоченной последовательности - кортежа). Такой элемент называют полем, столбцом или атрибутом, кому как больше нравится. Поля различаются по типу; к наиболее часто используемым типам относятся: текстовый, целочисленный, вещественное число, дата/время, BLOB (двоичные данные). Многие СУБД позволяют создавать пользовательские типы данных, однако они также основываются на классических типах, описанных выше. Набор правил, устанавливающих список допустимых для ввода в поле значений, называют доменом.
Идентификатор элемента представляет собой поле или группу полей, которые отличают одну запись в таблице от другой. В качестве идентификатора элемента может применяться индивидуальный номер налогоплательщика, серия и номер паспорта, почтовый индекс, другими словами, любое уни-
кальное значение. Если в таблице нет поля, содержащего неповторяющееся значение, то его следует создать. Как правило, для таких целей применяют поле автоинкрементного типа (в поле записывается уникальное возрастающее или убывающее значение) либо текущее время/ дату в формате TIMESTAMP. Обычно идентификатор элемента служит основой для формирования первичного ключа (Primary Key, PK) таблицы, однозначно идентифицирующего каждую запись в таблице.
Для объединения с другими таблицами применяют внешний ключ (Foreign Key, FK). Внешний ключ не является уникальным для текущей таблицы, однако в таблице, с которой осуществляется связь (главной таблице), он должен быть первичным.
Логическое отношение одной таблицы к другой на базе общего ключа именуют объединением. Объединение возвращает результирующий набор, содержащий элементы из обеих таблиц. Различают два базовых типа объединения: внутреннее (INNER JOIN) и внешнее (OUTER JOIN).