Помощь в написании студенческих работ
Антистрессовый сервис

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

РефератПомощь в написанииУзнать стоимостьмоей работы

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

Операции над отношениями (реферат, курсовая, диплом, контрольная)

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

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

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

При рассмотрении операций следует обратить внимание на две основные характеристики отношения: схема отношения, в которой количество атрибутов называется степенью, и количество кортежей, называемое мощностью. Если схема результата определена однозначно, то мощность результата может быть только оценена, показана в сравнении с мощностью исходных отношений. Для начала рассмотрим две простые операции, которые «ужимают» таблицу либо по вертикали, либо по горизонтали.

Селекция. Мы уже не раз интерпретировали таблицу как множество кортежей (строк), причем каждый кортеж — информация о свойствах некоторого объекта. Можно получить новое отношение, в котором будут только те кортежи из исходного отношения, которые удовлетворяют некоторому условию или, что тоже самое, предикат Предикат — функция, значением которой является высказывание об n-ках объектов, представляющих значения аргументов. кортежа, вычисленный на значениях его свойств принимает истинное значение. R1 (R), где R — исходное отношение, — предикат, высказывание об одном или нескольких атрибутах отношения R, R1 — результирующее отношение.

Например, пусть отношение R содержит следующие характеристики о студенте: код, фамилия, N студенческого билета, дата рождения, пол, выплачиваемая стипендия, т. е. схема отношения R имеет вид.

R = R (Кст, Фио, Nст_билета, Д_р, Пол, Стипендия) Правомерны следующие условия:

  • · Пол = «женский»
  • · Д_р = «01.10.1980»
  • · Пол = «мужской» Стипендия > 1000 руб.
  • · Д_р? «01.01.1980» Д_р? «31.12.1980» Пол = «женский»

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

Особо следует обговорить возможность использования функций при записи условия. В некоторых СУБД это допускается, в других нет. В данном пособии мы будем считать допустимой, например, такую запись условия: Месяц (Д_р)? 11, что означает выделение всех, родившихся в ноябре или декабре.

Для селекции справедливо ((R)) = (R), т. е. последовательное применение двух селекций эквивалентно применению одной селекции с условием равным конъюнкции двух условий.

Очевидно, что схема результата R1 совпадает со схемой R, а мощность R1, как правило, становится меньше мощности R, хотя бывают случаи, что она так же не изменяется. Например, если в качестве условия взять Возраст? 50 лет, то для любого студента это условие будет истинным.

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

Правильными записями проекций будут: Фам (R), Фам, Пол (R), Nстбилета (R), Nстбилета, Пол, Стипендия (R), Запись ((R)) допустима, если в присутствуют только те атрибуты, которые есть в (). В этом случае ((R)) = (R) Именно поэтому в практике решения задач последовательное применение проекций не используется.

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

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

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

Декартово произведение (). Пусть имеются два отношения R1 и R2 со схемами R1 (А1,…, Аn) и R2 (В1,…, Вm) и соответственно мощностями N и M. Декартовым произведением этих отношений называется отношение R3 (А1,…, Аn, В1,…, Вm), которое содержит все возможные комбинации кортежей из R1 и R2. Мощность отношения R3 — M*N. Первичным ключом R3 можно взять совокупность первичных ключей отношений R1 и R2.

Может случиться, что в R1 и R2 есть совпадающие по имени атрибуты: R1 (А1, А2,…, Аn) и R2 (А1, В2,…, Вm). Чтобы их различать в результате R3 в схему R3 включим эти имена с указанием имен отношений, отделив их точкой R3 (R1. А1, А2,…, Аn, R2. А1, В2,…, Вm).

Пусть мы имеем два отношения: СТУДЕНТ (Кст, Фам, Стип, Nгр) и ГРУППА (Nгр, Спец, Кстг). Здесь Кст — код студентов, в качестве которого можно рассматривать номер студенческого билета, Фио — его фамилия, СТУДЕНТ. Nгр — номер группы, в которой студент учится, Спец — название специальности, которой обучаются все студенты группы, Кстг — код студента, являющегося старостой группы.

СТУДЕНТ.

Кст.

Фио.

Nгр

ГРУППА.

Nгр

Спец.

Кстг.

Петров.

Физика.

Иванов.

Химия.

Nil.

Сидоров.

Матем.

Алексеев.

Тогда СТ_ГР1 СТУДЕНТ ГРУППА примет вид.

СТ_ГР1.

Кст.

Фио.

СТУДЕНТ. Nгр

ГРУППА. Nгр

Спец.

Кстг.

Петров.

Физика.

Иванов.

Физика.

Сидоров.

Физика.

Алексеев.

Физика.

Петров.

Химия.

Nil.

Иванов.

Химия.

Nil.

Сидоров.

Химия.

Nil.

Алексеев.

Химия.

Nil.

Петров.

Матем.

Иванов.

Матем.

Сидоров.

Матем.

Алексеев.

Матем.

-соединение (><). Отношение R3 (А1,…, Аn, В1,…, Вm)

R3 (А1,…, Аn, В1,…, Вm) R1 (А1,…, Аn) >< R2 (В1,…, Вm) называетсясоединением относительно R1 (А1,…, Аn) и R2 (В1,…, Вm), если из всех кортежей декартова произведения R1 (А1,…, Аn) и R2 (В1,…, Вm) остаются только те, которые удовлетворяют заданному условию. По получаемому результатусоединение эквивалентно применению двух операций R3 (А1,…, Аn, В1,…, Вm) (R1 (А1,…, Аn) R2 (В1,…, Вm)), из чего делается вывод о схеме и мощности результата.

Существует ограничение на правило записи условия. Пусть А1,…, Аn, В1,…, Вm атрибуты отношений. Тогда правильными условиями будут: F = Аi op Bj, где i [1,n], j [1,m], op — одна из операций сравнения (). Естественно предположение, что домены Аi и Bj сравнимы. Если F1 и F2 — условия, то F1 F2, F1 F2 также условия.

В нашем примере СТ_ГР2 СТУДЕНТ >< СТУДЕНТ. Nгр ГРУППА. Nгр ГРУППА получится из декартова произведения вычеркиванием соответствующих кортежей, для которых не выполнено условие.

СТ_ГР2.

Кст.

Фио.

СТУДЕНТ. Nгр

ГРУППА. Nгр

Спец.

Кстг.

Петров.

Физика.

Иванов.

Физика.

Сидоров.

Физика.

Алексеев.

Физика.

Петров.

Химия.

Nil.

Иванов.

Химия.

Nil.

Сидоров.

Химия.

Nil.

Алексеев.

Химия.

Nil.

Петров.

Матем.

Иванов.

Матем.

Сидоров.

Матем.

Алексеев.

Матем.

и примет вид.

СТ_ГР2.

Кст.

Фио.

СТУДЕНТ. Nгр

ГРУППА. Nгр

Спец.

Кстг.

Иванов.

Физика.

Сидоров.

Физика.

Петров.

Матем.

Иванов.

Матем.

Сидоров.

Матем.

Алексеев.

Матем.

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

В нашем примере СТ_ГР3 СТУДЕНТ >< СТУДЕНТ. Nгр = ГРУППА. Nгр ГРУППА примет вид.

СТ_ГР3.

Кст.

Фио.

СТУДЕНТ. Nгр

ГРУППА. Nгр

Спец.

Кстар

Иванов.

Физика.

Сидоров.

Физика.

Петров.

Матем.

Алексеев.

Матем.

Естественное соединение (*). Так как в Equi-соединении при записи условия допускается только конъюнкция сравнений атрибутов, то в результирующем отношении мы получим одну (или несколько) пар атрибутов, значения которых в каждом из кортежей совпадают. Естественно, один атрибут из пары совпадающих атрибутов не несет дополнительной смысловой нагрузки и может быть удален из результата. Более того, предполагается, что названия сравниваемых атрибутов совпадают, что позволяет определить естественное соединение следующим образом. Пусть даны два отношения R1 (C1,…, Ck, A1,…, An) и R2 (C1,…, Ck, B1,…, Bm). Тогда естественное соединение R3 (C1,…, Ck, A1,…, An, B1,…, Bm) R1 (C1,…, Ck, A1,…, An) * R2 (C1,…, Ck, B1,…, Bm) эквивалентно следующей записи R3, где b — условие попарного совпадения значений атрибутов C1,…, Ck в отношениях R1 и R2.

В нашем примере СТ_ГР СТУДЕНТ ><СТУДЕНТ. Nгр ГРУППА. Nгр ГРУППА примет вид.

СТ_ГР.

Кст.

Фио.

Nгр

Спец.

Кстг.

Иванов.

Физика.

Сидоров.

Физика.

Петров.

Матем.

Алексеев.

Матем.

Если бы схема отношения ГРУППА была задана в виде ГРУППА (Nгр, Спец, Кст), то естественное произведение было бы выполнено по совпадению значений двух атрибутов «Кст» и «Nгр» и результат принял бы вид.

СТ_ГР4.

Кст.

Фио.

Nгр

Спец.

Сидоров.

Физика.

Петров.

Матем.

что соответствует задаче: получить номера групп с указанием специальности и кода и фамилии старосты.

Показать весь текст
Заполнить форму текущей работой