2.4. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ

Сложность практического использования иерархических и сетевых СУБД, желание пользователей оперировать более крупными объектами, чем элементы данных заставили искать иные способы представления данных и послужило причиной возникновения новой структуры данных – реляционной (табличной). Работа с таблицами понятна и привычна каждому пользователю. Создателем реляционной модели является математик, сотрудник фирмы IBM Э.Ф. Кодд (1970 г.). Он же ввел два языка манипулирования данными SQL и QBE.

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

Рис. 2.4. Реляционная модель данных

Реляционная база данных представляет собой набор таблиц (которые Кодд назвал отношениями), каждая из которых имеет уникальное имя и состоит из строк – записей (кортежей) и столбцов – полей (атрибутов). Каждая запись представляет объект реального мира. Свойства объекта, его характеристики определяются значениями полей. Каждое поле имеет имя, тип и размер данных, хранимых в нем. Имена полей вынесены в шапку таблицы. Пример реляционной таблицы с полями «Товар», «Поставщик», «Количество» и «Цена» представлен в таблице.

Таблица 2.1

Пример представления данных в реляционной модели

Товар

Поставщик

Количество

Цена

Коврик для мыши

ООО «Искра»

25

150

Салфетки для монитора

ООО «Искра»

56

200

Защитная плёнка

ООО «ДВ-Трэйд»

47

350

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

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

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

Домены весьма важные компоненты реляционной модели. Смысл доменов состоит в следующем. Если значения двух атрибутов берутся из одного и того же домена, то, вероятно, имеют смысл сравнения, использующие эти два атрибута (например, для организации транзитного рейса можно дать запрос "Выдать рейсы, в которых время вылета из Москвы в Сочи больше времени прибытия из Архангельска в Москву"). Если же значения двух атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено смысла: стоит ли сравнивать номер рейса со стоимостью билета?

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

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

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

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

Для управления реляционной базой данных Э.Ф.Кодд ввел реляционные языки обработки данных – реляционную алгебру и реляционное исчисление.

Реляционная алгебра – это процедурный язык обработки реляционных таблиц. Здесь используется пошаговый подход к созданию реляционных таблиц.

Реляционное исчисление – непроцедурный язык, в котором таблица, содержащая ответы на запросы, определяется за один шаг.