Упражнения
В первых упражнениях рассматриваются различные теоретические аспекты алгебры. В последующих упражнениях
читателю предлагается сформулировать некоторые Запросы в виде выражений реляционной алгебры. (Эти упражнения также можно решать и "наоборот": посмотреть алгебраическое выражение в ответе и по нему составить словесный запрос.)
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.Выше в этой главе мы говорили, что реляционное свойство замкнутости так же важно, как и арифметическое свойство замкнутости. Однако в арифметике существует одна неприятная ситуация, в которой нарушается свойство замкнутости, а именно деление на нуль. Существует ли аналогичная ситуация в реляционной алгебре?