Скачиваний:
180
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

Глава 4

Введение в язык SQL

4.1. Введение

Как отмечалось в главе 1, SQL является стандартным языком для работы с реляцион- ными базами данных и в настоящее время поддерживается практически всеми продукта- ми, представленными на рынке. Он был разработан в компании IBM Research в начале 1970-х годов [4.8], [4.9], [4.28]. Первой серьезной реализацией этого языка был продукт- прототип System R компании IBM [4.1]—[4.3], [4.11]—[4.13]; впоследствии он был реали- зован в многочисленных коммерческих продуктах как компании IBM [4.20], так и других изготовителей. В этой главе представлено введение в язык SQL, а дополнительные ас- пекты, касающиеся таких вопросов, как целостность, защита и т.п., обсуждаются в по- следующих главах, специально посвященных этим темам. При обсуждении языка мы бу- дем основываться (если не утверждается противное) на текущем стандарте, неформально называемом SQL/92 (иначе — SQL-92 или просто SQL2 [4.22], [4.23]). Его официальное название— Международный стандарт языка баз данных SQL (1992) (International Standard Database Language SQL).

Замечание. Необходимо сразу же добавить, что разработка следующего нового стандарта SQL3 близится к завершению и его утверждение ожидается в конце 1999 года. К этому вре- мени данная книга уже появится в продаже и текущий стандарт, возможно, будет называться SQL/99, а не SQL/92. Однако мы сочли, что, если при обсуждении языка основываться на еще не утвержденном стандарте SQL3, это может привести к недоразумениям, поскольку совер- шенно очевидно, что ни один продукт еще не поддерживает данный стандарт. Поэтому мы решили рассмотреть стандарт SQL3 отдельно, в приложении Б. Во всяком случае, и это необ- ходимо отметить, ни один из коммерческих продуктов к моменту написания книги не под- держивал в полной мере даже стандарт SQL/921. Те языки, которые обычно поддерживаются отдельными продуктами, можно назвать "надмножествами подмножества" языка SQL/92. Другими словами, любой продукт, не поддерживающий некоторых аспектов стандарта, в дру- гих отношениях, возможно, превосходит его. Например, СУБД IBM DB2, безусловно, не под- держивает всех функциональных возможностей, предусмотренных стандартом SQL/92 в от- ношении обеспечения целостности данных, тем не менее она превосходит стандарт в отноше- нии правил, связанных с обновлением представлений.

И еще несколько предварительных замечаний.

' На самом деле ни один из продуктов, по-видимому, и не смог бы поддерживать в полной ме- ре стандарт SQL/92, поскольку в этом стандарте на сегодняшний день содержится множество расхождений, ошибок и противоречий. Подробно этот вопрос рассматривается в [4.19].


■ Язык SQL первоначально разрабатывался конкретно как подъязык данных. Одна- ко после включения в стандарт в конце 1996 года такого средства, как постоянные хранимые модули (Persistent Stored Modules — PSM), язык стал полностью вычис-

лительным (и сейчас в нем имеются процедурные операторы, например CALL, RETURN, SET, CASE, IF, LOOP, LEAVE, WHILE, REPEAT, а также несколько связанных с ними функциональных возможностей, например можно использовать переменные и обработчики исключительных ситуаций). Поэтому во многих случаях отпала не- обходимость в объединении SQL с каким-то отдельным "основным" языком для разработки полнофункционального приложения. Однако в этой книге возможно- сти PSM рассматриваться не будут.

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

  • Необходимо подчеркнуть, что SQL — язык очень большого объема. Документ по его стандарту [4.22] содержит свыше 600 страниц (а описание стандарта SQL3 — в два раза больше). Поэтому в книге, подобной этой, невозможно дать исчерпы- вающее описание языка. Достаточно полно мы сможем рассмотреть лишь самые важные его аспекты. Хотелось бы предупредить читателя, что приведенное здесь описание языка во многих случаях беглое и поверхностное. В частности, мы, не колеблясь, опустили материал, не относящийся непосредственно к обсуждаемой теме, и для краткости сделали существенные упрощения. Более полное (но также учебное) описание языка SQL можно найти в [4.4], [4.19] и [4.27].

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

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]