Главная » SQL, Базы данных » Введение в язык SQL

0

Как отмечалось в главе 1, SQL является стандартным языком для работы с реляционными базами данных и в настоящее время поддерживается практически всеми   продуктами,   представленными   на    рынке.   Он   был   разработан   в лаборатории  IBM  Research  в  начале   1970-х   годов   [4.9],   [4.10].   Первой серьезной реализацией этого  языка  был продукт-прототип System R компании IBM    [4.1]—[4.3],     [4.12]—[4.14];    впоследствии    он    был    реализован    в многочисленных коммерческих продуктах как компании IBM [4.8], [4.14], [4.21], так и других изготовителей. В этой главе представлено введение в язык SQL, а дополнительные аспекты, касающиеся таких вопросов, как целостность, защита и т.п., обсуждаются в последующих главах,  специально посвященных этим темам.  При  обсуждении  языка  SQL,   если  не  указано  иное1,  мы  будем основываться на текущей версии стандарта (т.е. SQL:1999). В [4.23] приведена формальная спецификация  SQL: 1999; а в [4.24] можно  найти значительное количество исправлений и дополнений к этой спецификации.

Примечание. Предыдущей версией стандарта была SQL: 1992, а версия SQL: 1999 предназначалась для использования в качестве совместимого расширения этой предыдущей

1  После утверждения новой версии стандарта ("SQL:2003"), работа над которой началась в 2002 году и должна быть завершена в 2004 году, мы в  следующих  изданиях будем также иногда явно ссылаться на эту версию.

версии. Однако пока можно со всей уверенностью утверждать только то, что в наши дни ни один программный продукт не поддерживает полностью даже  SQL:  1992; вместо этого такие продукты, как правило, поддерживают то, что  можно было бы назвать "надмножеством подмножества" стандарта (либо SQL: 1999, либо, с большей вероятностью, SQL: 1992). Вернее, большинство продуктов не поддерживают некоторые средства, обусловленные стандартом, и в то же время предлагают другие средства, которые не определены этим стандартом2.  Например,  программный продукт DB2 компании IBM не поддерживает все стандартные средства обеспечения целостности, но вместе с тем предусматривает возможность использовать некоторые операторы для переименования базовых  таблиц, которые не определены в стандарте. И еще несколько  предварительных замечаний.

■     Язык SQL первоначально разрабатывался конкретно как подъязык данных (см. главу 2). Однако после включения в стандарт в конце 1996 года такого средства, как постоянные хранимые модули SQL (SQL Persistent Stored Modules — SQL/PSM, или сокращенно PSM), стандарт SQL стал полностью поддерживать все вычисли тельные конструкции (и сейчас в нем предусмотрены процедурные операторы, например CALL, RETURN, SET, CASE, IF, LOOP, LEAVE, WHILE, REPEAT, а также несколько связанных с ними функциональных возможностей, например, можно использовать переменные и обработчики исключительных ситуаций). Более под робное описание модулей PSM выходит за рамки данной книги, но подробное ин структивное руководство можно найти в [4.20].

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

■     Необходимо подчеркнуть, что SQL — язык очень большого объема. Его специфи кация [4.23] содержит свыше 2000 страниц, не считая больше 300 страниц исправ лений в [4.24]. Поэтому в книге, подобной этой, невозможно дать исчерпывающее описание языка. Достаточно полно мы сможем рассмотреть лишь самые важные его особенности.

■     Наконец, нельзя не сказать о том (как уже неоднократно отмечалось в главах 1—3), что языку SQL еще очень далеко до совершенного реляционного языка. В нем много недостатков, появившихся в результате как недоделок, так и переделок. Од нако как бы там ни было, это — стандарт, он поддерживается практически всеми продуктами, представленными на рынке, и поэтому каждый специалист по базам данных должен быть знаком с этим языком, по крайней мере, в определенном объеме, поэтому он и рассматривается в данной книге.

2  На самом деле ни один из продуктов, по-видимому, и не смог бы в полной мере поддерживать этот стандарт, поскольку в нем на сегодняшний день содержится множество  расхождений, ошибок и противоречий (о чем свидетельствуют [4.23] и [4.24]). Подробно этот вопрос рассматривается в [4.20].

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии