Составляющие реляционной модели.

Модель реляционных баз данных использует следующие основные понятия:

¨ тип данных;

¨ показатель;

¨ таблица;

¨ поле;

¨ запись;

¨ первичный ключ;

¨ база данных;

¨ соединение таблиц;

¨ целостность;

¨ схема данных.

Понятие «Тип данных» в реляционной модели аналогично понятию простого типа данных в языках программирования. Значение, соответствующее любому типу данных, является атомарным. Обычно в современных реляционных БД значения делятся на символьные, числовые, логические, специализированные числовые (такие как «денежные»), дата, время, временной интервал. В современных БД также допускаются данные более сложной природы, такие, как ссылки, аудио-данные, видео-данные, анимация. В качестве значения показателя наряду с обычным значением, подходящим по типу, используется условное значение Null, обозначающее отсутствие реального значения. В реальных базах данных значений Null в ячейках очень много.

Понятие «Показатель» определяется заданием некоторого базового типа данных, к которому относятся значения показателя, и содержательного условия, позволяющего отличать корректные значения показателя от некорректных. Например, показатель "Группа" в нашем примере может быть определен как целочисленный, но в число его значений могут входить только те номера, которые соответствуют реальным группам. Текстовой показатель «Отделение» имеет всего несколько возможных значений «Экономика», «Менеджмент», «Магистратура». Понятие показателя поддерживается не во всех СУБД.

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

Строка таблицы называется записью (иликортежем). Как правило, запись описывает какой-то реальный объект предметной области, а значения полей записи служат реквизитами объекта.

В большинстве случаев предполагается, что таблица не содержит двух полностью совпадающих строк. Как правило, можно выбрать такое поле (или группу полей), значения которого будут разными во всех строках. Другими словами, зная значение указанного поля, можно однозначно определить запись, в которой это значение встречается. Поле с такими свойствами называется полем первичного ключа. Иногда одного такого поля нет, но можно выделить группу полей, наборы значений которых во всех строках разные. Однако при формальном определении первичного ключа требуется обеспечение его минимальности, т.е. в набор атрибутов первичного ключа не должны входить такие поля, которые можно отбросить без ущерба для основного свойства, - однозначно определять запись. Такой минимальный набор полей называется группой полей первичного ключа. Понятие первичного ключа является исключительно важным в связи с понятием целостности баз данных.

Базой данных называется совокупность таблиц, между некоторыми из которых установлены соединения (связи). Структура связей таблиц называется схемой базы данных. Соединение двух таблиц устанавливается некоторым критерием, позволяющим отбирать комбинации пары строк двух таблиц, для которых этот критерий выполняется. Простейшим критерием является равенство значений двух соответствующих полей в обеих таблицах. Как правило, этим полям соответствуют одинаковые показатели (хотя имена соответствующих полей могут быть разные). При выполнении критерия соответствующие записи двух таблиц считаются связанными..

Под целостностью базы данных понимается следующее правило: если две таблицы соединены посредством отождествления двух групп полей, и в одной из таблиц эта группа является первичным ключом, то во второй таблице невозможна комбинация полей данной группы, которая бы не встречалась в первой таблице. В частности, если таблицы соединены за счет совпадения значений одного показателя в каждой из таблиц, то каждое значение связанного поля во второй таблице обязано встречаться в качестве ключа в первой таблице.

Во многих реализациях допускается изменение схемы базы данных: определение новых и изменение существующих связей таблиц. Это принято называть эволюцией схемы базы данных.

То свойство, что таблицы не содержат записей-дубликатов, следует из теоретико-множественного подхода к таблицам как к множеству записей. В классической теории множеств, по определению, каждое множество состоит из различных элементов. Другим следствием определения таблицы как множества записей является логическая неупорядоченность записей (хотя в большинстве СУБД подразумевается, что каждая новая запись приписывается к концу таблицы). Отсутствие требования к поддержанию порядка на множестве записей таблицы дает дополнительную гибкость СУБД при хранении баз данных во внешней памяти и при выполнении запросов к базе данных. Это не противоречит тому, что при формулировании запроса к БД, например, на языке SQL можно потребовать сортировки результирующей таблицы в соответствии со значениями некоторых столбцов. Такой результат, это, вообще говоря, не каноническая таблица, а некоторый упорядоченный список записей.