Программирование >>  Хронологические базы данных 

1 ... 65 66 67 [ 68 ] 69 70 71 ... 348


Проблема подобного подхода состоит в том, что операция STOP AFTER применяется к результату выполнения оператора ORDER BY, который (как видно из раздела Свойства отношений главы 5) является не отношением, а массивом или списком. Следовательно, окончательный результат, по-видимому, также не будет отношением, а значит, будет нарушено свойство замкнутости. Этот вопрос в данной статье не обсуждается. Разумеется, полученный результат можно снова преобразовать в отношение, но тогда мы столкнемся с еще одной проблемой, поскольку результат выполнения оператора STOP AFTER в общем случае непредсказуем. Например, если взять за основу наши обычные данные и в предыдущем SQL-запросе заменить строку STOP AFTER 3 строкой STOP AFTER 2, то результат выполнения этого запроса будет неопределенным. Оператор STOP AFTER был реализован в исследовательском прототипе компании IBM и, таким образом, может получить распространение в продуктах IBM, а затем попасть в стандарт языка SQL (мы надеемся, что не раньше, чем будут решены указанные выше проблемы).

6.6. Goldstein R.C. and Stmad A.J. The MacAIMS Data Management System Proc. 1970 ACM SICFIDET Workshop on Data Description and Access. - November, 1970.

Cm. аннотацию к [6.7].

6.7. Stmad A.J. The Relational Approach to the Management of Data Bases Proc. IFIP Congress. - Ljubljana, Yugoslavia. - August, 1971.

Мы упоминаем систему MacAIMS [6.6], [6.7], в основном, ради исторического интереса. Она является наиболее ранним примером системы, поддерживающей п-арные отношения и алгебраический язык. Интересным также является то, что эта система разрабатывалась параллельно (и, по меньшей мере, частично независимо) с работой Кодда над реляционной моделью. Однако, в отличие от работы Кодда, система MacAIMS не получила существенного развития в будущем.

6.8. Notley M.G. The Peterlee IS/1 System IBM UK Scientific Centre Report UKSC-0018. -March, 1972.

Cm. аннотацию к [6.9].

6.9. Todd S.J.P. The Peterlee Relational Test Vehicle -A System Overview IBM Sys. J. - 1976. - 15,Jo4.

Peterlee Relational Test Vehicle (PRTV) - это экспериментальная система, разработанная в научном центре компании IBM UK, в городе Петерли, Англия. Она была разработана на основе более ранней системы IS/1 [6.8], которая, вероятнее всего, являлась первой реализацией идей Кодда. В ней поддерживались п-арные отношения и версия алгебры под названием ISBL (Infonnation System Base Language - базовый язык информационных систем). Эта версия реляционной алгебры основывалась на предложениях, изложенных в [6.10]. Первоисточником идей, приведенных в этой главе относительно вывода типов отношений, являются алгебра ISBL и предложения из [6.10]. Система PRTV обладала следующими важными свойствами.

Поддерживала операторы RENAME, EXTEND и SUMMARIZE

Включала в себя сложные средства для преобразования выражений (глава 17)

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



Обеспечивала функцию расширяемости , т.е. возможность расширять систему, добавляя определенные пользователем операторы

6.10. Hall P.A.V., Hitchcock P., and Todd S.J.P. An Algebra of Relations for Machine Computation Conf. Record of the 2nd ACM Symposium on Principles of Programming Languages. - Palo Alto, Calif. - January, 1975.

6.11. Hall P.A.V. Relational Algebra, Logic and Functional Programming Proc. 1984 ACM SIGMOD Int. Conf on Management of Data. - Boston, Mass. - June, 1984.

В статье представлена функциональная интерпретация реляционной алгебры, чтобы (как говорится в статье) изложить теоретические основы так называемых языков четвертого поколения (4GL) (см. главу 2) и интегрировать функциональные, логические (глава 23) и реляционные языки таким образом, чтобы они могли совместно использоваться в технологиях реализации. Автор утверждает, что, хотя логическое программирование и базы данных уже на протяжении некоторого времени сближаются друг с другом, во время написания функциональных или аппликативных языков обращается мало внимания на требования баз данных или технологии реализации. Поэтому статья, главным образом, вносит вклад в сближение между ними.

6.12. Klug А. Equivalence of Relational Algebra and Relational Calculus Query Languages Having Aggregate Functions JACM 29. - July, 1982. - № 3.

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

Ответы к некоторым упражнениям

Замечание. Ответы к упр. 6.13-6.50 не являются единственно возможными.

6.2. Операция соединения JOIN уже рассматривалась в разделе 6.4. Операция пересечения INTERSECT может быть определена одним из двух представленных ниже эквивалентных вариантов.

А INTERSECT В = А MINUS (А MINUS В ) А INTERSECT В = В MINUS (В MINUS А )

Эти два равносильных выражения хотя и допустимы, но несколько неудовлетворительны, поскольку А INTERSECT В - симметричное выражение относительно операндов А и В, а остальные два выражения не симметричны. Для сравнения ниже приводится симметричный вариант.

( А MINUS ( А MINUS В ) ) UNION ( В MINUS ( В MINUS А ) )

Замечание. Если дано, что отношения А и В совместимы по типу, то получаем следующее.

А INTERSECT В = А JOIN В

Теперь о делении. Можно записать следующее.

А DIVIDEBY В PER С = А { X }

MINUS ( ( А { X } TIMES В { Y } )

MINUS С { X, Y } ) { X }



Здесь X - множество атрибутов, общих для отнощений А и С, а Y - множество атрибутов, общих для отнощений В и С.

Замечание. Определенный таким образом оператор DIVIDEBY является обобщением оператора деления, рассмотренного ранее в этой главе, но все еще не оператором Small Divide [6.3] ввиду предположения о том, что отнощение А не содержит атрибутов, отличных от атрибутов X, отнощение В не содержит атрибутов, отличных от Y, и отношение С не имеет атрибутов, отличных от атрибутов X и Y. Приведенное выше обобщение позволяет записать запрос Получить номера поставщиков всех деталей в более простой форме S DIVIDEBY Р PER SP вместо развернутой формулировки.

S { SI } DIVIDEBY Р { PI } PER SP { St, Pt }

6.3. A INTERSECT В (см. ответ к упр. 6.2).

Замечание. Поскольку операция произведения является специальным случаем операции соединения, в роли примитивного оператора вместо TIMES может выступать оператор JOIN, тем более что он является более общим.

6.4. Здесь мы даем только неформальное (очень неформальное) схематическое доказательство .

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

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

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

( А TIMES В ) { <все атри6утЫ> А } = А

(Но только если отношение В не пустое.) Следовательно, произведение не может быть использовано для моделирования операции объединения, а значит, операция объединения примитивна.

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



1 ... 65 66 67 [ 68 ] 69 70 71 ... 348

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика