|
Программирование >> Хронологические базы данных
Язык SQL чрезмерно избыточен в том смысле, что если не все, то большинство простых запросов могут быть выражены различными способами. В статьях это показано на примерах; также в них обсуждаются возможные последствия избыточности языка SQL. В частности показано, что предложения GROUP BY, HAVING и переменные диапазонов можно с пользой исключить из языка, не потеряв при этом никаких функциональных возможностей (то же самое справедливо и для конструкции IN <подзапрос> ). Замечание. Все перечисленные выше конструкции поясняются в главе 7 и приложении А. 4.19. Date C.J., Darwen Н, А Guide to the SQL Standard (4th edition). - Reading, Mass.: Addison-Wesley, 1997. Полное руководство по стандарту SQL/92, включая средства CLI и PSM. В частности, в приложении D приведены многие аспекты стандарта, которые на сегодняшний день определены неадекватно или даже неверно . Замечание. Публикации [4.4], [4.27] также являются руководствами по стандарту SQL/92. 4.20. Date C.J. and Colin J.W. A Guide to DB2 (4th edition). - Reading, Mass.: Addison-Wesley, 1993. В книге дается обширный и детальный обзор СУБД DB2 компании IBM (по состоянию на 1993 год) и некоторых ее сопутствующих продуктов. СУБД DB2, как и SQL/DS, была основана на системе System R. 4.21. Fishman N. SQL du Jour. DBP&D. - 1997. - 10, № 10. Скучный обзор некоторых неточностей, найденных в SQL-продуктах, которые были объявлены как поддерживающие стандарт SQL . 4.22. International Organization for Standardization (ISO): Database Language SQL. Document ISO/IEC 9075, 1992. Также доступно как American National Standards Institute (ANSI) Document ANSI X3.135-1992. Оригинальное определение стандарта ISO/ANSI SQL/92 (также называемое среди знатоков ISO/IEC 9075 или просто ISO 9075). Первоначальный документ, состоящий из одной части, был со временем расширен до неофаниченной серии отдельных частей под общим названием Information Technolody- Database Languages - SQL . Ha время написания книги были определены следующие части (хотя, конечно, не все завершены). Часть 1. Структура (SQL/Framework) Часть 2. Основы (SQL/Foundation) Часть 3. Интерфейс на уровне вызова (SQL/CLI) Часть 4. Постоянные хранимые модули (SQL/PSM) Часть 5. Связь с базовым языком (SQL/Bindings) Часть 6. Специализация ХА (SQL/Transaction) Часть 7. Хронологические функции (SQL/Temporal) Часть 8. (Этой части нет) Часть 9. Управление внешними данными (SQL/MED) Часть 10. Связь с объектным языком (SQL/OLB) Проекты SQL3, которые, как ожидается, будут утверждены в 1999 году, логически будут входить в части 1, 2, 4 и 5. Рабочие черновики, в которых описаны эти проекты, можно найти на Web-узле ftp: jerry.ece.umassd.edu/isowgS/dbl/BASEdocs/public. Замечание. Стоит упомянуть, что, хотя язык SQL часто считается международным стандартом реляционных баз данных, в документе стандарта это не утверждается; на самом деле в документе вообще не используется термин реляционный ! (Как говорилось ранее в сноске, в нем не упоминается и термин база данных .) 4.23. International Organization for Standardization (ISO): Information Technology - Database Languages - SQL - Technical Corrigendum 2. Document ISO/IEC 9075:1992/СОГ.2:1996(E). Содержит большое количество исправлений и дополнений к начальной версии [4.22]. К сожалению, все исправления и дополнения практически не устраняют ни одной из проблем, указанных в [4.19]. 4.24. Raymond A.L. and Daudenarde J.J. SQL and its Applications. - Englewood Cliffs, N.J.; Prentice-Hall, 1991. Книга 0 языке SQL, содержащая практические советы и инструкции (почти половина книги посвящена подробному обсуждению серии примеров применения практических приложений). 4.25. Raymond A.L. and Nilsson J.F. An Access Specification Language for Relational Data Base System IBM J.R&D. - May, 1979. - 23, № 3. В публикации подробно рассматриваются вопросы, связанные с техникой компиляции в системе System R [4.11], [4.25], [4.26]. Для любого данного SQL-оператора оптимизатор системы генерирует профамму на внутреннем языке ASL (Access Specification Language). Этот язык используется как интерфейс между оптимизатором и генератором кодов. (Генератор кодов, как следует из его названия, преобразует программу на языке ASL в машинный код.) В языке ASL есть, например, операторы scan (поиск) и insert (вставить), применяемые к таким объектам, как индексы и хранимые файлы. Язык создавался, чтобы весь процесс трансляции стал управляемым. Это достигалось путем разбиения процесса трансляции на множество четко определенных подпроцессов. 4.26. Raymond A.L. and Bratford W.W. Compilation of High-Level Data Language. IBM Research Report RJ2598. - August, 1979. В системе System R впервые была применена идея компиляции запросов перед их выполнением и рекомпиляции запросов, если физическая структура базы данных значительно изменялась на каком-то переходном этапе. В этой статье подробно описывается механизм компиляции и рекомпиляции, но не затрагиваются вопросы оптимизации (эта актуальная тема освещается в [17.34]). 4.27. Melton J., Simon A.R. Understanding The New SQL: A Complete Guide. - San Mateo, Calif: Morgan Kaufmann, 1993. Руководство no стандарту SQL/92 (как представлена сама книга). Один из авторов (Melton) был редактором первоначальных спецификаций стандарта SQL/92 [4.22]. 4.28. Reisner Р., Воусе R.F., Chamberlin D.D. Human Factors Evaluation of Two Data Base Query Languages: SQUARE and SEQUEL Proc. NCC 44. ~ Anaheim, Calif; Montvale, N.J.: AFIPS Press, May, 1975. Язык SEQUEL [4.8], предшественник языка SQL, был разработан на базе более раннего языка SQUARE. Эти два языка, в основном, совпадали, но в языке SQUARE использовался математический синтаксис, а в языке SEQUEL - ключевые слова из английского языка, такие как SELECT, FROM, WHERE и т.д. В статье приведены отчеты по ряду исследований, в которых изучалась практичность этих языков; в качестве объектов использовались студенты колледжа. В результате такого исследования в язык SEQUEL были внесены некоторые изменения [4.9]. 4.29. Rozenshtein D., Abramovich А., Birger Е. Optimizing Transact-SQL: Advanced Programming Techniques. - Fremont, Calif.: SQL Forum Press, 1995. Язык Transact-SQL- это диалект языка SQL, который поддерживается такими продуктами, как Sybase и SQL Server. В этой книге рассматривается ряд приемов программирования для языка Transact-SQL, которые основаны на использовании характеристических функций (определенных авторами как средства, позволяю-шие программистам кодировать логические условия в виде... выражений в предложениях SELECT, WHERE, GROUP BY и SET). Хотя эти идеи выражены в терминах языка Transact-SQL, на самом деле они имеют более широкую область применения. Замечание. Необходимо отметить, что слово optimizing , которое входит в название книги, не имеет отношения к оптимизатору СУБД. Напротив, здесь подразумевается оптимизация, которая может выполняться самими пользователями вручную. Ответы к некоторьш упражнения] 4.L CREATE TABLE S ( St CHAR(5), SNAME CHAR(20), STATUS NUMERIC(5), CITY CHAR(15), PRIMARY KEY ( St ) ) ; CREATE TABLE P ( Pt CHAR(6), PNAME CHAR(20), COLOR CHAR(6), WEIGHT NUMERIC(5,1), CITY CHAR(15), PRIMARY KEY ( Pt ) ) ; CREATE TABLE J ( Jt CHAR(4), JNAME CHAR(20), CITY CHAR(15), PRIMARY KEY ( Jt ) ) ; CREATE TABLE SPJ ( St CHAR(5), Pt CHAR(6),
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |