Использование отношений для представления данных.
• для представления набора объектов (напомним, что набор объектов представляет собой группу подобных объектов);
• для представления связей между наборами объектов.
Для представления набора объектов атрибуты интерпретируются столбцами отношения, а множество допустимых значений атрибута — соответствующим доменом. Каждый кортеж отношения выполняет роль описания отдельного объекта из набора, само отношение — всего набора объектов.
Пусть имеется:
1) набор объектов Е
Е {еи е2, •••? ^/5 •••? ?
2) множество атрибутов, описывающих набор
А {А\, А2, •••?-^/? •••?-^/7
3) множество значений по каждому атрибуту (которые этот атрибут может принимать):
К\ = {к\ь к]2,..., } по атрибуту А1;
К2 = {¿2,, к22, къ.2} по атрибуту А2\
Кт = {кЩ9 ктт ..., кт^ } по атрибуту Ат.
При выполнении интерпретации объявляем, что:
1) 1-й столбец отношения соответствует атрибуту А\\ 2-й столбец отношения — атрибуту А2\...; т-й столбец отношения — атрибуту Ат.
2) каждому атрибуту соответствует домен:
Е\ = К\, Е)2 = К2,..., От = Кт\
3) отношение
7? е В\ х £)2 х ••• х Е>т = К\ х К2 х ... х Кт описывает набор объектов Е.
В этом отношении 7? будет п кортежей — по числу объектов в наборе Е. Каждый кортеж г{ отношения К описывает отдельный объект е1 из набора объектов Е.
Если атрибут^, (или совокупность атрибутов {А\,А2, ..., А2}) является ключом, то значение в столбце / (или совокупность значений из столбцов 1, 2, ..., ¿) некоторой строки отношения 7? однозначно идентифицирует эту строку (кортеж) в данном отношении.
Таким образом, по значению ключа всегда найдем в отношении кортеж, описывающий интересующий нас объект. Например, нас интересует описание объекта к„. Известно, что значение ключа А/ для этого объекта равно кп. Находим в отношении Я строку, у которой в столбце у находится значение к]у Это и будет искомое описание объекта еОтношение также используется для представления связей между наборами объектов Е], Е2,Ек.
Кортеж г, в отношении Я в этом случае обозначает список объектов:
П = (е,н, е2. , ек1ь), где е,. е Е\ = {еи, е12,е, е, },
'/] ‘ */| *И|
е2,2 £ = { е2,2 -> е2„1 }>
6^ £ {вкр &к29 ^к ^к }*
“>к 1 / К'к *"к
Чтобы реализовать такую ситуацию, каждому столбцу отношения Я ставят в соответствие ключевой атрибут соответствующего набора объектов. Например, 1-й столбец соответствует ключевому атрибуту набора Е\ \ 2-й столбец — Е2\к-й столбец — Ек.
Наличие кортежа г, в отношении Я указывает, что объекты е, , е2. , ...
..., ек ассоциируют между собой с помощью связи, представляемой отношением Я.
Схема отношения. Традиционная форма определения теоретикомножественного отношения предполагает работу с линейными списками при обработке данных. Такая форма представления оказывается удобной для обсуждения операций реляционной алгебры, но не всегда целесообразна из-за фиксированного порядка столбцов в отношении (в целом ряде практических приложений возникает необходимость перестановки столбцов в отношениях в любом порядке). Чтобы устранить необходимость фиксированного порядка столбцов в отношении, последние именуют. Присвоение столбцам отношений имен делает их порядок в отношении несущественным (т.е. столбец определяется по его имени, а не по порядковому номеру). При таком подходе оказываются эквивалентными отношения (например, два отношения, отличающиеся порядком столбцов), которые не были бы эквивалентными при традиционном определении.
Итак, столбцы отношения назовем атрибутами и присвоим им имена. В этом случае можно будет говорить об отображении имен атрибутов в множества значений, принадлежащих доменам атрибутов.
Список имен атрибутов отношения называется схемой отношения. Если отношение называется Я и его схема имеет атрибуты Аи А2, ..., Ак, то схема отношения обозначается следующим образом:
R(A], А2, Ale).
Существует аналогия между схемой отношения и форматом записи, между кортежем и записью, между отношением и файлом. Одной из возможных реализаций отношения является файл записей, формат которых соответствует схеме отношения.
Реляционная БД содержит конечное множество экземпляров отношений. Схему реляционной базы данных можно представить в виде
r R\(A\\,A\2i Alki);