Отношение (реляционная модель)

Поделись знанием:
Перейти к: навигация, поиск

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





Определение и свойства отношения

Пусть дана совокупность типов данных T1, T2, ..., Tn, называемых также доменами, не обязательно различных. Тогда n-арным отношением R, или отношением R степени n называют подмножество декартовa произведения множеств T1, T2, ..., Tn[1][2].

Отношение R состоит из заголовка (схемы) и тела. Заголовок представляет собой множество атрибутов (именованных вхождений домена в заголовок отношения), а тело — множество кортежей, соответствующих заголовку[2]. Более строго:

  • Заголовок (или схема) H отношения R — конечное множество упорядоченных пар вида (Ai, Ti), где Aiимя атрибута, а Tiимя типа (домена), i=1,…, n. По определению требуется, чтобы все имена атрибутов в заголовке отношения были различными (уникальными).
  • Тело B отношения R — множество кортежей t. Кортеж t, соответствующий заголовку H, — множество упорядоченных триплетов (троек) вида <Ai, Ti, vi>, по одному такому триплету для каждого атрибута в H, где vi — допустимое значение типа (домена) Ti. Так как имена атрибутов уникальны, то указание домена в кортеже обычно излишне. Поэтому кортеж t, соответствующий заголовку H, нередко определяют как множество пар (Ai, vi).

Количество кортежей называют кардинальным числом отношения (кардинальностью), или мощностью отношения.

Количество атрибутов называют степенью, или «арностью» отношения; отношение с одним атрибутом называется унарным, с двумя — бинарным и т.д., с n атрибутами — n-арным. С точки зрения теории вполне корректным является и отношение с нулевым количеством атрибутов, которое либо не содержит кортежей, либо содержит единственный кортеж без компонент (пустой кортеж)[2].

Основные свойства отношения[1][2]:

  • В отношении нет двух одинаковых элементов (кортежей).
  • Порядок кортежей в отношении не определён.
  • Порядок атрибутов в заголовке отношения не определён.

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

Отношения и таблицы

Отношение обычно имеет простую графическую интерпретацию в виде таблицы, столбцы которой соответствуют атрибутам, а строки — кортежам, а в «ячейках» находятся значения атрибутов в кортежах. Тем не менее, в строгой реляционной модели отношение не является таблицей, кортеж — это не строка, а атрибут — это не столбец[2][3]. Термины «таблица», «строка», «столбец» могут использоваться только в неформальном контексте, при условии полного понимания, что эти более «дружественные» термины являются всего лишь приближением и не дают точного представления о сути обозначаемых понятий[2][4].

В соответствии с определением К. Дж. Дейта, таблица является прямым и верным представлением некоторого отношения, если она удовлетворяет следующим пяти условиям:

  1. Нет упорядочивания строк сверху-вниз (другими словами, порядок строк не несет в себе никакой информации).
  2. Нет упорядочивания столбцов слева-направо (другими словами, порядок столбцов не несет в себе никакой информации).
  3. Нет повторяющихся строк.
  4. Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
  5. Все столбцы являются обычными. «Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временных меток[5].

Пример

Пусть заданы следующие типы (домены):

  • <math>T_1</math> = {Иванов, Петров, Сидоров}
  • <math>T_2</math> = {Физика, Химия}
  • <math>T_3</math> = {3, 4, 5}

Тогда декартово произведение <math>T_1 \times T_2 \times T_3</math> состоит из 18 кортежей, где каждый кортеж содержит три значения: первое — одна из фамилий, второе — учебная дисциплина, а третье — оценка.

Пусть отношение R имеет заголовок H: { (Фамилия, T1), (Дисциплина, T2), (Оценка, T3)}.

Тогда тело отношения R может моделировать реальную ситуацию и содержать пять кортежей, которые соответствуют результатам сессии (Петров экзамен по Физике не сдавал). Отобразим отношение в виде таблицы:

R
Фамилия Дисциплина Оценка
Иванов Физика 4
Иванов Химия 3
Петров Химия 5
Сидоров Физика 5
Сидоров Химия 4

Операции над отношениями

См. также: реляционная алгебра, реляционное исчисление.

Любая операция, результатом которой является отношение, подпадает под понятие реляционной операции и может использоваться в реляционной теории и практике. Ниже приведён список из восьми операций, изначально предложенных создателем реляционной модели Эдгаром Коддом. Все операции из списка, кроме деления, по-прежнему широко востребованы, однако список не является исчерпывающим, то есть по факту используется гораздо большее число реляционных операций.

  • Объединение — тело отношения-результата является объединением тел отношений-операндов; схема не изменяется.
  • Пересечение — тело отношения-результата является пересечением тел отношений-операндов; схема не изменяется.
  • Вычитание — тело отношения-результата получено вычитанием тел отношений-операндов; схема не изменяется.
  • Проекция — схема отношения-результата является подмножеством схемы отношения-операнда; тело отношения-результата является нестрогим подмножеством тела отношения-операнда вследствие возможного удаления кортежей-дубликатов.
  • Декартово произведение — тело отношения-результата является декартовым произведением тел отношений-операндов; схема результата является конкатенацией схем операндов.
  • Выборка — тело отношения-результата является подмножеством тела отношения-операнда: отбираются лишь те кортежи, которые удовлетворяют заданному предикату (условию выборки); схема не изменяется.
  • Соединение — выборка над декартовым произведением.
  • Деление — делитель является унарным отношением, частное — совпадающие части кортежей делимого, перед которыми стоит делитель.

Напишите отзыв о статье "Отношение (реляционная модель)"

Примечания

  1. 1 2 Дейт К. Дж., 2005.
  2. 1 2 3 4 5 6 Database in Depth, 2005.
  3. В частности, ничто не препятствует визуально представить отношение таблицей, в которой столбцы будут соответствовать не атрибутам, а кортежам, а строки — не кортежам, а атрибутам. То есть соотнесение кортежей отношения со строками таблицы, а атрибутов отношения со столбцами таблицы является лишь данью традиции, но не имеет никакой теоретической обусловленности.
  4. Необходимо помнить, что «таблица» чаще всего означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что реляционная модель данных имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими».
  5. С. J. Date. What First Normal Form Really Means //С. J. Date. Date on database: Writings 2000—2006, Apress, 2006, ISBN 978-1-59059-746-0

Литература

Отрывок, характеризующий Отношение (реляционная модель)

Вейротер усмехнулся опять тою улыбкой, которая говорила, что ему смешно и странно встречать возражения от русских генералов и доказывать то, в чем не только он сам слишком хорошо был уверен, но в чем уверены были им государи императоры.
– Неприятель потушил огни, и слышен непрерывный шум в его лагере, – сказал он. – Что это значит? – Или он удаляется, чего одного мы должны бояться, или он переменяет позицию (он усмехнулся). Но даже ежели бы он и занял позицию в Тюрасе, он только избавляет нас от больших хлопот, и распоряжения все, до малейших подробностей, остаются те же.
– Каким же образом?.. – сказал князь Андрей, уже давно выжидавший случая выразить свои сомнения.
Кутузов проснулся, тяжело откашлялся и оглянул генералов.
– Господа, диспозиция на завтра, даже на нынче (потому что уже первый час), не может быть изменена, – сказал он. – Вы ее слышали, и все мы исполним наш долг. А перед сражением нет ничего важнее… (он помолчал) как выспаться хорошенько.
Он сделал вид, что привстает. Генералы откланялись и удалились. Было уже за полночь. Князь Андрей вышел.

Военный совет, на котором князю Андрею не удалось высказать свое мнение, как он надеялся, оставил в нем неясное и тревожное впечатление. Кто был прав: Долгоруков с Вейротером или Кутузов с Ланжероном и др., не одобрявшими план атаки, он не знал. «Но неужели нельзя было Кутузову прямо высказать государю свои мысли? Неужели это не может иначе делаться? Неужели из за придворных и личных соображений должно рисковать десятками тысяч и моей, моей жизнью?» думал он.
«Да, очень может быть, завтра убьют», подумал он. И вдруг, при этой мысли о смерти, целый ряд воспоминаний, самых далеких и самых задушевных, восстал в его воображении; он вспоминал последнее прощание с отцом и женою; он вспоминал первые времена своей любви к ней! Вспомнил о ее беременности, и ему стало жалко и ее и себя, и он в нервично размягченном и взволнованном состоянии вышел из избы, в которой он стоял с Несвицким, и стал ходить перед домом.
Ночь была туманная, и сквозь туман таинственно пробивался лунный свет. «Да, завтра, завтра! – думал он. – Завтра, может быть, всё будет кончено для меня, всех этих воспоминаний не будет более, все эти воспоминания не будут иметь для меня более никакого смысла. Завтра же, может быть, даже наверное, завтра, я это предчувствую, в первый раз мне придется, наконец, показать всё то, что я могу сделать». И ему представилось сражение, потеря его, сосредоточение боя на одном пункте и замешательство всех начальствующих лиц. И вот та счастливая минута, тот Тулон, которого так долго ждал он, наконец, представляется ему. Он твердо и ясно говорит свое мнение и Кутузову, и Вейротеру, и императорам. Все поражены верностью его соображения, но никто не берется исполнить его, и вот он берет полк, дивизию, выговаривает условие, чтобы уже никто не вмешивался в его распоряжения, и ведет свою дивизию к решительному пункту и один одерживает победу. А смерть и страдания? говорит другой голос. Но князь Андрей не отвечает этому голосу и продолжает свои успехи. Диспозиция следующего сражения делается им одним. Он носит звание дежурного по армии при Кутузове, но делает всё он один. Следующее сражение выиграно им одним. Кутузов сменяется, назначается он… Ну, а потом? говорит опять другой голос, а потом, ежели ты десять раз прежде этого не будешь ранен, убит или обманут; ну, а потом что ж? – «Ну, а потом, – отвечает сам себе князь Андрей, – я не знаю, что будет потом, не хочу и не могу знать: но ежели хочу этого, хочу славы, хочу быть известным людям, хочу быть любимым ими, то ведь я не виноват, что я хочу этого, что одного этого я хочу, для одного этого я живу. Да, для одного этого! Я никогда никому не скажу этого, но, Боже мой! что же мне делать, ежели я ничего не люблю, как только славу, любовь людскую. Смерть, раны, потеря семьи, ничто мне не страшно. И как ни дороги, ни милы мне многие люди – отец, сестра, жена, – самые дорогие мне люди, – но, как ни страшно и неестественно это кажется, я всех их отдам сейчас за минуту славы, торжества над людьми, за любовь к себе людей, которых я не знаю и не буду знать, за любовь вот этих людей», подумал он, прислушиваясь к говору на дворе Кутузова. На дворе Кутузова слышались голоса укладывавшихся денщиков; один голос, вероятно, кучера, дразнившего старого Кутузовского повара, которого знал князь Андрей, и которого звали Титом, говорил: «Тит, а Тит?»
– Ну, – отвечал старик.
– Тит, ступай молотить, – говорил шутник.
– Тьфу, ну те к чорту, – раздавался голос, покрываемый хохотом денщиков и слуг.
«И все таки я люблю и дорожу только торжеством над всеми ими, дорожу этой таинственной силой и славой, которая вот тут надо мной носится в этом тумане!»


Ростов в эту ночь был со взводом во фланкёрской цепи, впереди отряда Багратиона. Гусары его попарно были рассыпаны в цепи; сам он ездил верхом по этой линии цепи, стараясь преодолеть сон, непреодолимо клонивший его. Назади его видно было огромное пространство неясно горевших в тумане костров нашей армии; впереди его была туманная темнота. Сколько ни вглядывался Ростов в эту туманную даль, он ничего не видел: то серелось, то как будто чернелось что то; то мелькали как будто огоньки, там, где должен быть неприятель; то ему думалось, что это только в глазах блестит у него. Глаза его закрывались, и в воображении представлялся то государь, то Денисов, то московские воспоминания, и он опять поспешно открывал глаза и близко перед собой он видел голову и уши лошади, на которой он сидел, иногда черные фигуры гусар, когда он в шести шагах наезжал на них, а вдали всё ту же туманную темноту. «Отчего же? очень может быть, – думал Ростов, – что государь, встретив меня, даст поручение, как и всякому офицеру: скажет: „Поезжай, узнай, что там“. Много рассказывали же, как совершенно случайно он узнал так какого то офицера и приблизил к себе. Что, ежели бы он приблизил меня к себе! О, как бы я охранял его, как бы я говорил ему всю правду, как бы я изобличал его обманщиков», и Ростов, для того чтобы живо представить себе свою любовь и преданность государю, представлял себе врага или обманщика немца, которого он с наслаждением не только убивал, но по щекам бил в глазах государя. Вдруг дальний крик разбудил Ростова. Он вздрогнул и открыл глаза.
«Где я? Да, в цепи: лозунг и пароль – дышло, Ольмюц. Экая досада, что эскадрон наш завтра будет в резервах… – подумал он. – Попрошусь в дело. Это, может быть, единственный случай увидеть государя. Да, теперь недолго до смены. Объеду еще раз и, как вернусь, пойду к генералу и попрошу его». Он поправился на седле и тронул лошадь, чтобы еще раз объехать своих гусар. Ему показалось, что было светлей. В левой стороне виднелся пологий освещенный скат и противоположный, черный бугор, казавшийся крутым, как стена. На бугре этом было белое пятно, которого никак не мог понять Ростов: поляна ли это в лесу, освещенная месяцем, или оставшийся снег, или белые дома? Ему показалось даже, что по этому белому пятну зашевелилось что то. «Должно быть, снег – это пятно; пятно – une tache», думал Ростов. «Вот тебе и не таш…»
«Наташа, сестра, черные глаза. На… ташка (Вот удивится, когда я ей скажу, как я увидал государя!) Наташку… ташку возьми…» – «Поправей то, ваше благородие, а то тут кусты», сказал голос гусара, мимо которого, засыпая, проезжал Ростов. Ростов поднял голову, которая опустилась уже до гривы лошади, и остановился подле гусара. Молодой детский сон непреодолимо клонил его. «Да, бишь, что я думал? – не забыть. Как с государем говорить буду? Нет, не то – это завтра. Да, да! На ташку, наступить… тупить нас – кого? Гусаров. А гусары в усы… По Тверской ехал этот гусар с усами, еще я подумал о нем, против самого Гурьева дома… Старик Гурьев… Эх, славный малый Денисов! Да, всё это пустяки. Главное теперь – государь тут. Как он на меня смотрел, и хотелось ему что то сказать, да он не смел… Нет, это я не смел. Да это пустяки, а главное – не забывать, что я нужное то думал, да. На – ташку, нас – тупить, да, да, да. Это хорошо». – И он опять упал головой на шею лошади. Вдруг ему показалось, что в него стреляют. «Что? Что? Что!… Руби! Что?…» заговорил, очнувшись, Ростов. В то мгновение, как он открыл глаза, Ростов услыхал перед собою там, где был неприятель, протяжные крики тысячи голосов. Лошади его и гусара, стоявшего подле него, насторожили уши на эти крики. На том месте, с которого слышались крики, зажегся и потух один огонек, потом другой, и по всей линии французских войск на горе зажглись огни, и крики всё более и более усиливались. Ростов слышал звуки французских слов, но не мог их разобрать. Слишком много гудело голосов. Только слышно было: аааа! и рррр!
– Что это? Ты как думаешь? – обратился Ростов к гусару, стоявшему подле него. – Ведь это у неприятеля?
Гусар ничего не ответил.
– Что ж, ты разве не слышишь? – довольно долго подождав ответа, опять спросил Ростов.
– А кто ё знает, ваше благородие, – неохотно отвечал гусар.
– По месту должно быть неприятель? – опять повторил Ростов.
– Може он, а може, и так, – проговорил гусар, – дело ночное. Ну! шали! – крикнул он на свою лошадь, шевелившуюся под ним.