Реляционная модель представления данных означает что данные для пользователя передаются в виде
Реляционная модель данных
Основные определения
Теоретической основой этой модели стала теория отношений, основу которой заложили два логика — американец Чарльз Содерс Пирс (1839-1914) и немец Эрнст Шредер (1841-1902). В руководствах по теории отношений было показано, что множество отношений замкнуто относительно некоторых специальных операций, то есть образует вместе с этими операциями абстрактную алгебру. Это важнейшее свойство отношений было использовано в реляционной модели для разработки языка манипулирования данными, связанного с исходной алгеброй. Американский математик Э. Ф. Кодд в 1970 году впервые сформулировал основные понятия и ограничения реляционной модели, ограничив набор операций в ней семью основными и одной дополнительной операцией. Предложения Кодда были настолько эффективны для систем баз данных, что за эту модель он был удостоен престижной премии Тьюринга в области теоретических основ вычислительной техники.
Полное декартово произведение — это набор всевозможных сочетаний из n элементов каждое, где каждый элемент берется из своего домена. Например, имеем три домена: D1 содержит три фамилии, D2 — набор из двух учебных дисциплин и D3 — набор из трех оценок. Допустим, содержимое доменов следующее:
Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент — это одна из фамилий, второй — это название одной из учебных дисциплин, а третий — одна из оценок.
Отношение R моделирует реальную ситуацию и оно может содержать, допустим, только 5 строк, которые соответствуют результатам сессии (Крылов экзамен по «Базам данных» еще не сдавал):
| R | ||
|---|---|---|
| Фамилия | Дисциплина | Оценка |
| Иванов | Теория автоматов | 4 |
| Иванов | Базы данных | 3 |
| Крылов | Теория автоматов | 5 |
| Степанов | Теория автоматов | 5 |
| Степанов | Базы данных | 4 |
Данная таблица обладает рядом специфических свойств:
Вхождение домена в отношение принято называть атрибутом. Строки отношения называются кортежами.
Количество атрибутов в отношении называется степенью, или рангом, отношения.
| R1 | ||
|---|---|---|
| Дисциплина | Фамилия | Оценка |
| Теория автоматов | Крылов | 5 |
| Теория автоматов | Степанов | 5 |
| Теория автоматов | Иванов | 4 |
| Базы данных | Иванов | 3 |
| Базы данных | Степанов | 4 |
Любое отношение является динамической моделью некоторого реального объекта внешнего мира. Поэтому вводится понятие экземпляра отношения, которое отражает состояние данного объекта в текущий момент времени, и понятие схемы отношения, которая определяет структуру отношения.
Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, к которому они относятся:

Схемы двух отношений называются эквивалентными,если они имеют одинаковую степень и возможно такое упорядочение имен атрибутов в схемах, что на одинаковых местах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие значения из одного домена.
SR2 = (Bi1, Bi2. Bin) — схема отношения R2 после упорядочения имен атрибутов.
Как уже говорилось ранее, реляционная модель представляет базу данных в виде множества взаимосвязанных отношений. В отличие от теоретико- графовых моделей в реляционной модели связи между отношениями поддерживаются неявным образом. Какие же связи между отношениями поддерживаются в реляционной модели? В этой модели, так же как и в остальных, поддерживаются иерархические связи между отношениями. В каждой связи одно отношение может выступать как основное, а другое отношение выступает в роли подчиненного. Это означает, что один кортеж основного отношения может быть связан с несколькими кортежами подчиненного отношения. Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении это первичный ключ отношения ( PRIMARY KEY ), который однозначно определяет кортеж основного отношения. В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом, то есть он определяет множество кортежей подчиненного отношения, которые связаны с единственным кортежем основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом ( FOREIGN KEY ).
PRIMARY KEY отношения Сотрудник атрибут Паспорт является FOREIGN KEY для отношения «карьера».
Реляционная модель данных
Информация, данные, информационные системы
Понятие отношения
Подходы к определению понятия отношения могут быть различными. Математически отношение может быть определено как множество кортежей, являющейся подмножеством декартова произведения фиксированного числа областей (доменов). В результате получаем, что в каждом кортеже должно быть одинаковое число компонент (атрибутов) и значение каждого из них выбирается из некоторого определенного домена.
Введем ряд математических определений, связанных с понятием отношения.
Определение 2. Схема отношения
Пусть 
Определение 3. Отношение
Отношением со схемой r на конeчных множествах D1, D2,…, Dn называется подмножество R декартового произведения
Введение в реляционную модель данных
Основные понятия реляционных баз данных
Для начала покажем смысл этих понятий на примере отношения СЛУЖАЩИЕ, содержащего информацию о служащих некоторого предприятия (рис. 2.1).
Тип данных
Обычно в современных реляционных базах данных допускается хранение символьных, числовых данных (точных и приблизительных), специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал). Кроме того, в реляционных системах поддерживается возможность определения пользователями собственных типов данных (более подробно мы обсудим это в лекции 9, курса «Введение в модель данных SQL»).
В примере на рис. 2.1 мы имеем дело с данными трех типов : строки символов, целые числа и «деньги».
Домен
Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения
Первичный ключ и интуитивная интерпретация реляционных понятий
Конечно, это достаточно грубая терминология, поскольку у обычных таблиц и строки, и столбцы упорядочены, тогда как атрибуты и кортежи отношений являются элементами неупорядоченных множеств. Тем не менее, когда мы перейдем к рассмотрению практических вопросов организации реляционных баз данных и средств управления, то будем использовать эту «житейскую» терминологию. Подобной терминологии придерживаются в большинстве коммерческих реляционных СУБД. Иногда также используются термины файл как аналог таблицы, запись как аналог строки и поле как аналог столбца. Напомню, что этой терминологией мы пользовались в лекции 1.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Реляционная модель данных
Впервые принципы реляционной модели были сформулированы в 1969—1970 годах Э. Ф. Коддом (E. F. Codd). Идеи Кодда были впервые публично изложены в статье «A Relational Model of Data for Large Shared Data Banks». Современную трактовку идей реляционной модели данных можно найти в книге К. Дж. Дейта. «C. J. Date. An Introduction to Database Systems»
Содержание
Состав частей реляционной модели данных
Наиболее распространенная трактовка реляционной модели данных, принадлежит Дейту, который воспроизводит ее (с различными уточнениями) практически во всех своих книгах. Согласно Дейту реляционная модель состоит из трех частей, описывающих разные аспекты реляционного подхода: структурной части, манипуляционной части и целостной части.
Структурная часть
Структурная часть (аспект), отвечает за принцип построения структуры реляционной базы данных на нормализированном наборе n-арных отношений, в форме таблиц. Важно что реляционная база данных, структурно может представляться только в виде отношений.
Манипуляционная часть
Целостная часть
В целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности сущностей. Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Как мы видели в предыдущем разделе, это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений.
Второе требование называется требованием целостности по ссылкам и является несколько более сложным. Очевидно, что при соблюдении нормализованности отношений сложные сущности реального мира представляются в реляционной БД в виде нескольких кортежей нескольких отношений. Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать).
Структура реляционной модели данных
При табличной организации данных отсутствует иерархия элементов. Строки и столбцы могут быть просмотрены в любом порядке, поэтому высока гибкость выбора любого подмножества элементов в строках и столбцах. Любая таблица в реляционной базе состоит из строк, которые называют записями, и столбцов, которые называют полями. На пересечении строк и столбцов находятся конкретные значения данных. Для каждого поля определяется множество его значений.
В реляционной модели данных применяются разделы реляционной алгебры, откуда и была заимствованна соответствующая терминология.В реляционной алгебре поименованный столбец отношения называется атрибутом, а множество всех возможных значений конкретного атрибута – доменом. Строки таблицы со значениями разных атрибутов называют кортежами. Атрибут, значение которого однозначно идентифицирует кортежи, называется ключевым (или просто ключом). Так ключевое поле – это такое поле, значения которого в данной таблице не повторяется. В отличие от иерархической и сетевой моделей данных в реляционной отсутствует понятие группового отношения. Для отражения ассоциаций между кортежами разных отношений используется дублирование их ключей. Сложный ключ выбирается в тех случаях, когда ни одно поле таблицы однозначно не определяет запись.
Записи в таблице хранятся упорядоченными по ключу. Ключ может быть простым, состоящим из одного поля, и сложным, состоящим из нескольких полей. Сложный ключ выбирается в тех случаях, когда ни одно поле таблицы однозначно не определяет запись.
Кроме первичного ключа в таблице могут быть вторичные ключи, называемые еще внешними ключами, или индексами. Индекс – это поле или совокупность полей, чьи значения имеются в нескольких таблицах и которое является первичным ключом в одной из них. Значения индекса могут повторяться в некоторой таблице. Индекс обеспечивает логическую последовательность записей в таблице, а также прямой доступ к записи.
По первичному ключу всегда отыскивается только одна строка, а по вторичному – может отыскиваться группа строк с одинаковыми значениями первичного ключа. Ключи нужны для однозначной идентификации и упорядочения записей таблицы, а индексы для упорядочения и ускорения поиска.
Индексы можно создавать и удалять, оставляя неизменным содержание записей реляционной таблицы. Количество индексов, имена индексов, соответствие индексов полям таблицы определяется при создании схемы таблицы.
Индексы позволяют эффективно реализовать поиск и обработку данных, формирую дополнительные индексные файлы. При корректировке данных автоматически упорядочиваются индексы, изменяется местоположение каждого индекса согласно принятому условию (возрастанию или убыванию значений). Сами же записи реляционной таблицы не перемещаются при удалении или включении новых экземпляров записей, изменении значений их ключевых полей.
С помощью индексов и ключей устанавливаются связи между таблицами. Связь устанавливается путем присвоения значений внешнего ключа одной таблицы значениям первичного ключа другой. Группа связанных таблиц называется схемой данных. Информация о таблицах, их полях, ключах и т.п. называется метаданными.
Реляционная модель данных
Для того, чтобы изучение реляционной алгебры не превратилось в скучный перечень операций, мы их вводим порциями, достаточными для получения какого-нибудь интересного результата.
Сначала определим операцию декомпозиции — разбиения заполненного отношения на части. Удивительно, но не всегда воссоединение компонент дает исходное отношение. В этом случае декомпозиция называется неполной. На языке алгебры декомпозиция и воссоединение компонент определяются, соответственно, операциями проекции и естественного соединения.
Оказывается, функциональные зависимости, определенные на отношениях, дают естественный язык для задания идентификаторов кортежей отношений (ключей) и для формулирования теоремы Хиса, позволяющей выделить допустимые декомпозиции.
Выделим набор независимых операций. Рассмотрим самую необычную для алгебры операцию переименования атрибутов.
Разберёмся с отображением модели «сущность-связь» в реляционную модель.
В самом конце главы перейдём к реализациям и рассмотрим соотношения между реляционной и табличными моделями.
К 70-м годам направление баз данных представляло мощную индустрию, в которой доминировали иерархические и сетевые модели.
К 1973-му году был принят стандарт CODASYL, определивший общепринятые особенности сетевой модели. Он определил понятия простого и составного элементов данных — аналогов простого поля записи и агрегата. Запись —это именованный агрегат, не входящий ни в какой другой агрегат. В записях можно использовать неопределённое значение. Определялось два типа агрегатов — «вектор», состоящий из простых элементов данных, и «повторяющаяся группа элементов». При этом повторяющаяся группа может образовываться элементами данных, векторами, агрегатами и другими повторяющимися группами.
Наборы представляют связи между типами записей. Как упоминалось в разделе 3.3.1, термин «набор» в модели CODASYL не совпадает с употребляемым нами термином «набор записей». Можно определить любое количество типов наборов между двумя типами записей. Тип набора — это двучленная конструкция, объединяющая тип записи владельца набора и типы записей-членов набора.
В это же время в 1970 г. появилась основополагающая работа Э.Ф.Кодда, в которой он применил к описанию баз данных алгебру отношений — реляционную алгебру. Появилась реляционная модель данных, представляющая базу данных как набор отношений, может быть связанных. Началась эра реляционных баз данных.
Можно спросить, чего же не хватало в существовавших моделях данных? Что обеспечило победное шествие реляционной модели, которому не помешало низкое быстродействие первых её реализаций? Иерархической и сетевой модели не хватало математической убедительности, то есть отсутствовала простая и красивая математическая модель. Это бы ещё полбеды. Плохо то, что в старых моделях было много обременительно лишнего. Язык манипулирования данными и язык запросов носили навигационный характер и требовали знания деталей структуры базы.
Принятие реляционной модели широким кругом пользователей и вендоров обеспечило развитие математической теории, и создание стандартов для её реализаций. Вот с реализациями получилась весьма интересная история. С некоторой стадии их развития математические идеи иссякли и теперь развитие языков манипулирования данными и запросов направляют другие движущие силы. Но об этом мы поговорим в главах, начиная с 8-й. Изменения вызванные практическими потребностями, настолько велики, что в настоящее время реляционные модели практически заменены тем, что в дальнейшее мы будем называть табличными моделями или моделями реляционного типа. Поэтому, кроме отношений в конце этой главы будем рассматривать таблицы.
Давайте разберёмся с основами реляционной модели данных.
4.1 Отношения и их свойства. Схема и состояния отношения
Основные структуры данных в реляционной модели — отношения и атрибуты.
Схему отношения можно определить через задание предиката. Спецификациям отношений соответствуют предикаты. При этом типу записи соответствует предикатный символ, а полям соответствуют аргументные места предикатного символа.
Пример предиката, соответствующего спецификации отдела приведен на рисунке 4.1.
Каждой записи соответствует высказывание (на языке Пролог — факт), например, отдел(001, «Рога и копыта», «Нью-Москва»)?
Принадлежность кортежа к отношению определяется истинностью описывающего его предиката.
Однако, в реляционной модели принято говорить об отношениях, которые имеют имя и набор свойств, называемых атрибутами (рисунок 4.2).
Под сигнатурой отношения будем понимать набор, состоящий из имени отношения, имён и типов его атрибутов. Отношения без атрибутов не рассматриваются.
Свойство. Данные в реляционной модели хранятся только в отношениях с конечных числом атрибутов. Других источников данных не существует.
Будем рассматривать отношения как наборы однотипных строк-кортежей. Пример: Отношение «Студент» с атрибутами «Фамилия», «Имя», «Отчество», «Дата_рождения», «Студенческая_группа», «Телефон».
Студент(Фамилия, Имя, Отчество, Дата_рождения, Студенческая_груп-па, Телефон)
Каждый студент представляется строкой значений своих атрибутов — кортежем, например,
Обратите внимание, на то, что последний атрибут это всего лишь строка «111-0000, 222-0000», и нельзя будет определить, есть ли у Иванова телефон 111-0000. С подстроками модель не работает.
Основные свойства отношений:
Свойства отношений для удобства запоминания представлены на рисунке 4.3.
Обратите внимание на то, что простота типов данных вовсе не означает, что хранящиеся значения не имеют какой-нибудь структуры. Однако в рамках реляционной модели мы не можем эту структуру воспринять.
Замечание. В реализациях отсутствие упорядоченности может быть не удобным или не реализуемым, а метрические свойства всегда важны, поскольку они определяют быстродействие.
Замечание. Связей между отношениями, которые мы изучали в модели «сущность-связь», в реляционной модели нет. Связи определяются через ключевые атрибуты. В реализациях они задаются ограничениями целостности первичного ключа и внешнего ключа.
Состоянием отношения называется набор входящих в него кортежей.









