Базовые понятия реляционных баз данных

К основным понятиям реляционных БД относятся тип данных, домен, атрибут, кортеж, первичный ключ и отношение [4].

Покажем смысл этих понятий на примере отношения СОТРУДНИКИ, содержащего информацию о сотрудниках некоторой организации (рис. 3.5) [4].

Рис. 3.5. Базовые понятия реляционных БД

Тип данных.Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных и языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал). Достаточно активно развивается подход к расширению возможностей реляционных систем абстрактными типами данных (соответствующими возможностями обладают, например, системы семейства Ingres/Postgres). В нашем примере мы имеем дело с данными трех типов: строки символов, целые числа и «деньги» [1, 4].

Домен.Понятие домена более специфично для БД, хотя и имеет некоторые аналогии с подтипами в некоторых языках программирования. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат «истина», то элемент данных является элементом домена [1, 4].

Наиболее правильной интуитивной трактовкой понятия домена является понимание домена как допустимого потенциального множества значений данного типа. Например, домен «Имена» в нашем примере определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые отображают имя (в частности, такие строки не могут начинаться с мягкого знака).

Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов «Номера пропусков» и «Номера отделов» относятся к типу целых чисел, но не являются сравнимыми.

Схема отношения, схема базы данных.Схема отношения — это именованное множество пар [имя атрибута, имя домена (или типа, если понятие домена не поддерживается)]. Степень или «арность» схемы отношения — мощность этого множества. Степень отношения СОТРУДНИКИ равна четырем, т. е. оно является 4-арным. Если все атрибуты одного отношения определены на разных доменах, осмысленно использовать для именования атрибутов имена соответствующих доменов (не забывая, конечно, о том, что это является всего лишь удобным способом именования и не устраняет различия между понятиями домена и атрибута). В структурном смысле схема БД — это набор именованных схем отношений.

Ключи.Для идентификации записей используются ключи. Ключ — набор атрибутов, который позволяет идентифицировать запись внутри таблицы, при этом никакие подмножества этих атрибутов не будут ключом. Простой ключ состоит из одного атрибута, составной ключ — из двух и более. Атрибут, входящий в тот или иной ключ, называется ключевым атрибутом. Атрибут, который не входит ни в один из ключей, называется неключевым атрибутом. Ключ должен гарантировать уникальную идентификацию записи для всех возможных комбинаций записей в отношении. Некоторый ключ, который выделяют разработчики или проектировщики БД, называется первичным. Первичным может считаться любой ключ. Ключи бывают естественными и искусственными. Естественный ключ состоит из реальных атрибутов. Искусственный ключ вводится специально [1,4].

Кортеж, отношение.Кортеж, соответствующий данной схеме отношения, — это множество пар [имя атрибута, значение], которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения. «Значение» является допустимым значением домена данного атрибута (или типа данных, если понятие домена не поддерживается). Тем самым, степень или «арность» кортежа, т. е. число элементов в нем, совпадает с «арностью» соответствующей схемы отношения. Попросту говоря, кортеж — это набор именованных значений заданного типа.

Отношение — это множество кортежей, соответствующих одной схеме отношения. Иногда, чтобы не путаться, говорят «отношение-схема» и «отношение-экземпляр», или схему отношения называют заголовком отношения, а отношение как набор кортежей — телом отношения. На самом деле, понятие схемы отношения ближе всего к понятию структурного типа данных в языках программирования. Удобно и логично было бы отдельно определять схему отношения, а затем одно или несколько отношений с данной схемой. Однако в реляционных БД это не принято. Имя схемы отношения в таких БД всегда совпадает с именем соответствующего отношения-экземпляра. В классических реляционных БД после определения схемы БД изменяются только отношения-экземпляры. В них могут появляться новые и удаляться или модифицироваться существующие кортежи. Однако во многих реализациях допускается и изменение схемы БД:

определение новых и изменение существующих схем отношения. Такой процесс называют эволюцией схемы базы данных.

Обычным представлением отношения является таблица, заголовком которой является схема отношения, а строками — кортежи отношения-экземпляра; в этом случае имена атрибутов именуют столбцы этой таблицы. Поэтому иногда говорят «столбец таблицы», имея в виду «атрибут отношения» (эта терминология используется при рассмотрении практических вопросов организации реляционных БД и средств управления, а также в большинстве коммерческих реляционных СУБД).

Реляционная база данных — это набор отношений, имена которых совпадают с именами схем отношений в схеме БД. Основные структурные понятия реляционной модели данных (не считая понятия «домен») имеют очень простую интуитивную интерпретацию, хотя в теории реляционных БД все они определяются абсолютно формально и точно.