Упражнения

В первых упражнениях рассматриваются различные теоретические аспекты алгебры. В последующих упражнениях

читателю предлагается сформулировать некоторые Запросы в виде выражений реляционной алгебры. (Эти упражнения также можно решать и "наоборот": посмотреть алгебраическое выражение в ответе и по нему составить словесный запрос.)

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

 

6.2.Из первоначального набора восьми операций пять (объединение, вычитание произведение, выборку и проекцию) можно рассматривать как примитивные: Дайте определения естественного соединения, пересечения и (что значительно сложнее) деления в терминах этих примитивных операций.

 

6.3.Рассмотрим выражение А JOIN В. Если у отношений А и В заголовки разобщены (т.е. в заголовках нет общих атрибутов), то это выражение эквивалентно такому: А TIМES В. А какому выражению оно будет эквивалентно, если заголовки одинаковые?

 

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

 

6.5.В обычной арифметике умножение и деление - взаимообратные операции. Будут ли операции TIМES и DIVIDEВY взаимообратными в реляционной алгебре?

 

6.6.Дана обычная база данных поставщиков и деталей; чему равно выражение

S JOIN SP JOIN P

Предостережение. Здесь есть ловушка!

6.7.Пусть А - отношение степени n. Сколько существует различных проекций отношения А?

 

6.8.В обычной арифметике существует специальное число 1, обладающее свойством

n * 1 = 1 * n = n

для любого числа n. Мы говорим, что 1 является нейтральным элементом по отношению к операции умножения. Существует ли отношение, обладающее аналогичными свойствами единицы в реляционной алгебре? Если существует, то какое?

 

6.9.В обычной арифметике существует специальное число 0, обладающее свойством

n * 0 = 0 * n = 0

для любого числа n. Существует ли отношение, обладающее аналогичными свойствами нуля в реляционной алгебре? Если существует, то какое?

 

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

 

6.11.Пусть А и В - два произвольных отношения. Укажите потенциальные ключи для следующих отношений:

а) произвольная выборка А;

б) произвольная проекция А;

в) А TIМES B;

г) А UNlON B

д) А INTERSECТ B;

е) А МINUS B;

ж) А JOIN B;

з) А DIVIDEВY B;

и) произвольное (по-разному) расширение А;

к) произвольное подведение итогов в А.

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

 

6.12.Выше в этой главе мы говорили, что реляционное свойство замкнутости так же важно, как и арифметическое свойство замкнутости. Однако в арифметике существует одна неприятная ситуация, в которой нарушается свойство замкнутости, а именно деление на нуль. Существует ли аналогичная ситуация в реляционной алгебре?