Структура реляционной модели данных


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

С понятием типа данных тесно связано понятие домена. Домен является семантическим понятием и рассматривается как подмножество значений некоторого типа данных, имеющих определенный смысл. Домен характеризуется следующими свойствами:

· домен имеет в пределах базы данных уникальное имя;

· домен определен на некотором простом типе данных или на другом домене;

· домен может иметь некоторое логическое условие, позволяющее описать подмножества данных, допустимых для данного домена;

· домен несет определенную смысловую нагрузку.

Отличие домена от понятия подмножества состоит в том, что домен отражает семантику, определенную предметной областью. Может быть несколько доменов, совпадающих как подмножества, но несущих различный смысл. Например, домены «Возраст сотрудников» и «Количество сотрудников» можно одинаково описать как множество неотрицательных целых чисел, но смысловое значение этих доменов будет различным, и это будут различные домены.

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

Выше было дано математическое определение отношения. Для реляционной модели определение отношения формулируется несколько иначе. Дадим эти определения.

Атрибут отношения есть пара вида <Имя_атрибута : Имя_домена>. Имена атрибутов должны быть уникальными в пределах отношения.

ОтношениеR, определенное на множестве доменов D1,D2,…,Dn, содержит заголовок и тело.

Заголовок отношения содержит фиксированное количество атрибутов отношения:

(<A1:D1>,<A2:D2>,…,<An:Dn>)

Тело отношения содержит множество кортежей отношения. Каждый кортеж отношения представляет собой множество пар вида <Имя_атрибута : Значение_атрибута>:

(<A1:Val1>,<A2:Val2>,…,<An:Valn>)

таких, что значение Vali атрибута Ai принадлежит домену Di.

Число атрибутов в отношении называют степенью или арностью отношения.

Таким образом, заголовок отношения описывает декартово произведение доменов, на котором задано отношение. Заголовок статичен и не меняется во время работы с базой данных. Если в отношении изменены, добавлены или удалены атрибуты, то результатом этих действий будет появление нового отношения. Тело отношения представляет собой набор кортежей, то есть подмножество декартова произведения доменов. Именно тело отношения является отношением в математическом смысле. Тело отношения может изменяться во время работы с базой данных.

Реляционной базой данных называется набор отношений.

Схемой реляционной базы данных называется набор заголовков входящих в неё отношений.

Хотя любое отношение, как было показано выше, можно представить в виде таблицы, следует четко представлять существующие между ними отличия. Эти отличия определяются свойствами отношений:

· в отношении нет одинаковых кортежей. Так как телом отношения является множество кортежей, то, как и любое множество, оно не может содержать неразличимые элементы. Таблицы же могут содержать одинаковые строки;

· кортежи не упорядочены (сверху вниз), поскольку тело отношения есть множество, а множество не упорядочено. Одно и то же отношение может быть изображено разными таблицами, в которых строки расположены в различном порядке;

· атрибуты не упорядочены (слева направо). Поскольку каждый атрибут имеет уникальное имя в пределах отношения, то порядок атрибутов не имеет значения. Одно и то же отношение может быть изображено разными таблицами, в которых столбцы идут в различном порядке;

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

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

Если атрибуты отношения R содержат только атомарные значения, то говорят, что оно находится в первой нормальной форме1НФ.