Классика баз данных - статьи

       

летом был, наконец, принят стандарт


Прошлым

летом был, наконец, принят стандарт Си++. Видимо, это означает (по крайней мере, я на это

надеюсь), что еще через несколько лет можно будет говорить о мобильном программировании

на Си++ в том же смысле, в котором можно говорить об этом сегодня по отношению к

Си.

Почему, имея в виду взаимодействия с базами данных, мы говорим про язык SQL и

что с ним происходит? Здесь все не очень просто. SQL с самого своего зарождения являлся

сложным языком со смешанной декларативно-процедурной семантикой, не идеальным

синтаксисом, а кроме того, всегда содержал ряд темных мест (объем этой заметки не позволяет

даже привести примеры). Тем не менее, судьба распорядилась так, что именно SQL (хотя были и

другие кандидаты) стал единственным практически используемым языком реляционных баз

данных. К настоящему времени имеется два принятых стандарта SQL- SQL/89 и SQL/92.

Стандарт SQL/89 очень слабый, многие важные аспекты в нем не определены или отданы на

определение в реализации. С другой стороны, большинство современных коммерческих

реляционных СУБД на самом деле соответствуют стандарту SQL/89. Стандарт SQL/92 является

существенно более продвинутым, но язык SQL/92 настолько сложен, что к настоящему времени

нет практически ни одной СУБД, в которой он был бы полностью реализован (как правило,

реализуется расширенное подмножество языка). Ситуация не из приятных. Но тем не менее,

внимательный анализ языка показывает, что имеется практическая возможность создания

достаточно переносимых программ с использованием SQL/89. Для это нужно максимально

локализовать те части программы, которые содержат не стандартизованные конструкции, и

стараться не использовать расширения языка, предлагаемые в конкретной

реализации.

Между прочим, аналогичная ситуация существует и в области

операционных систем. Существующий сегодня набор стандартов происходит от интерфейсов

операционной системы Unix (SVID, POSIX, XPG и т.д.). В большинстве современных

операционных систем эти стандарты поддерживаются, но, как правило, любая ОС содержит


Содержание  Назад  Вперед