|
Программирование >> Хронологические базы данных
7.2. Date C.J. A Note on the Relation Calculus ACM SIGMOD Record 18. - 1989. - № 4. Переиздано: An Anomaly in Codds Reduction Algorithm Relational Database Writings 1989-1991. Reading, Mass.: Addison-Wesley, 1992. 7.3. Date C.J. Why Quantifier Order Is Important C.J. Date and Hugh Darwen. Relational Database Writings 1989-1991. - Reading, Mass.: Addison-Wesley, 1992. 7.4. Date C.J. Relational Calculus as an Aid to Effective Query Formulation C.J. Date and Hugh Darwen. Relational Database Writings 1989-1991.- Reading, Mass.: Addison-Wesley, 1992. Почти все представленные на рынке современные реляционные продукты поддерживают язык SQL, а не реляционное исчисление (или реляционную алгебру). В этой статье, тем не менее, отстаивается (и иллюстрируется) применение реляционного исчисления как промежуточного шага в построении сложных SQL-запросов. 7.5. Held G.D., Stonebraker M.R., and Wong E. INGRES - A Relational Data Base System Proc. NCC 44. - Anaheim, Calif. Montvale, N.J.: AFIPS Press, May, 1975. С середины и до конца 70-х годов разрабатывались два главных реляционных прототипа: система System R в фирме IBM и система INGRES в Калифорнийском университете в Беркли. Оба эти проекта имели очень большое значение в исследовательском мире и впоследствии лидировали среди коммерческих систем как СУБД DB2 (в случае системы System R) и как коммерческий продукт INGRES (в случае системы INGRES). Замечание. Прототип INGRES иногда называют университетским INGRES [7.11], чтобы отличать его от коммерческой версии этой системы. Учебный обзор коммерческой версии можно найти в [1.5]. Система INGRES вначале не являлась SQL-системой, поскольку исходно поддерживала язык QUEL (Query Language), который во многих отношениях технически превосходил SQL. В самом деле, язык QUEL по-прежнему составляет основу достаточного числа современных исследований баз данных, а примеры на языке QUEL до сих пор появляются в исследовательской литературе. Данная статья, в которой впервые был описан прототип INGRES, включает предварительное определение языка QUEL. См. также [7.10]-[7.12]. 7.6. Kuhns J.L. Answering Questions by Computer: A Logical Study Report RM-5428-PR, Rand Corp. - Santa Monica, Calif., 1967. 7.7. Lacrorix M., Pirotte A. Domain-Oriented Relational Languages Proc. 3rd Int. Conf. on Very Large Data Bases. - Tokyo, Japan., October, 1977. 7.8. Merrett Т.Н. The Extended Relational Algebra, A Basis for Query Languages Shneiderman B. (ed.). Databases: Improving Usability and Responsiveness. New York, N.Y.: Academic Press., 1978. Назначением этой статьи является введение кванторов в алгебру - не просто кванторов сушествования и кванторов всеобшности реляционного исчисления, а более обших кванторов количество и соотношение . С их помошью можно выразить такие условия, как по крайней мере три , не более половины , нечетное число и т.д. 7.9. Negri М., Pelagatti G., Sbattella L. Formal Semantics of SQL Queries ACM TODS. - September, 1991. - 16, №3. Цитата из резюме: Семантика SQL-запросов формально определена с помощью набора правил, определяющих преобразование на основе синтаксиса SQL-запроса в формальную модель, называемую расширенным исчислением трехзначных предикатов (Extended Three Valued Predicate Calculus- E3VPC), которая большей частью основана на хорошо известных математических понятиях. Приведены также правила преобразования общего выражения E3VPC в каноническую форму; [дополнительно] полностью решены проблемы, подобные анализу эквивалентности SQL-запросов . Однако отметим, что рассматриваемый здесь диалект языка SQL- это только первая версия стандарта (SQL/86), а не стандарт SQL/92. 7.10. Stonebraker М. The INGRES Papers: The Anatomy of a Relational Database Management System Reading, Mass.: Addison-Wesley, 1986. Собрание некоторых наиболее важных документов университетского проекта INGRES под редакцией одного из первых создателей этого проекта. (В собрание включены статьи [7.11], [7.12].) Насколько известно автору настоящей книги, это единственное доступное издание, в котором подробно описываются проект и реализация полномасштабной реляционной СУБД. Весьма ценный материал для серьезных студентов. 7.11. Stonebraker М., Wong Е., Kreps Р., Held G. The Design Implementation of INGRES ACM TODS. - September, 1976. - 1, № 3. (Переиздано [7.10].) Подробное описание университетского прототипа INGRES. 7.12. Stonebraker М. Retrospection on a Data Base System ACM TODS. - 1980.- 5, № 2. (Переиздано [7.10].) Доклад по истории проекта прототипа INGRES (до января 1979 года). Акцент сделан скорее на ошибках и полученных уроках, чем на успехах. 7.13. Ullman J. D. Principles of Database and Knowledge-Base Systems: Volume 1. Rockville, Md.: Computer Science Press, 1988. Книга Ульмана, в отличие от данной книги, содержит более формальное изложение реляционного исчисления и связанных с ним вопросов. В частности, в ней обсуждается понятие безопасности выражений исчисления. Это имеет значение при адаптации немного измененной версии исчисления, в которой переменные кортежей не определяются отдельными операторами RANGE, а связываются с областью значений посредством явных условий в предложении WHERE. В такой версии исчисления запрос Получить имена всех поставщиков из Лондона , например, может выглядеть так. SX WHERE SX е S AND SX.CITY = London Одна из проблем, возникающих при использовании этой версии исчисления, заключается в том, что в ней недопустимы запросы, подобные следующему. SX WHERE NOT { SX е S ) Такие выражения называются небезопасными, так как они не возвращают конечный результат (множество всего, что не входит в отношение S, бесконечно). Поэтому необходимо ввести некоторые правила, обеспечивающие безопасность в этом смысле. В книге Ульмана описаны такие правила (для исчисления как кортежей, так и доменов). Следует отметить, что в оригинальном исчислении Кодда такие правила были. 7.14. Zloof М. М. Query By Example Proc. NCC 44.- Anaheim, Calif., 1975.- Montvale, N.J.: AFIPS Press, 1977. Описанный в этой работе реляционный язык Query-By-Example (QBE) включает элементы исчисления кортежей и в еще большей степени - элементы исчисления доменов. Привлекательный и интуитивно понятный синтаксис языка основывается на идее формирования элементов в шаблонные таблицы на экране дисплея вместо записи линейных операторов. Например, формулировка языка QBE для запроса Получить имена поставщиков по крайней мере одной детали, поставляемой поставщиком с номером S2 (довольно сложный запрос) может выглядеть следующим образом.
Пояснение. Пользователь обращается к системе с запросом отобразить на экране три шаблонные таблицы (одну - для отношения S и две - для отношения SP), после чего формирует в них элементы, как показано выше. Элементы, начинающиеся символом подчеркивания, представляют образцы (т.е. переменные доменов); остальные элементы представляют собой литералы. В этом случае пользователь обращается к системе с запросом предоставить ( Р ) значения имен поставщиков ( NX), таких, что если это поставщик SX, то SX поставляет некоторую деталь РХ, а деталь РХ, в свою очередь, также поставляется поставщиком с номером S2. Заметьте, что под кванторами существования подразумевается (как, кстати, и под кванторами существования в языке QUEL) совсем другой смысл, поэтому данный синтаксис прост для понимания. Вот другой пример: Определить все пары номеров поставщиков, которые находятся в одном городе .
К сожалению, язык QBE не является реляционно полным, а конкретнее - не поддерживает (в полной мере) негативный квантор существования (NOT EXISTS). Вследствие этого определенные запросы (например, Получить имена поставщиков всех типов деталей ) не могут быть выражены в языке QBE. (На самом деле язык QBE вначале поддерживал квантор NOT EXISTS, по крайней мере неявно, но построение всегда было сопряжено с некоторыми трудностями. Основная проблема заключалась в том, что не было способа указать порядок, в котором различные неявные кванторы могли бы быть применены, а этот порядок, к сожалению, очень важен; см. [7.3] или ответ к упр. 7.2. Поэтому определенные запросы получались неоднозначными [7.3].) Злуф (автор этой работы) первым изобрел и разработал язык QBE. Данная статья была первой из многих статей, написанных Злуфом по этой тематике.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |