Диалект SQL в СУБД Oracle

СУБД Oracle версии 1 (под другим названием) появилась в 1978 г. и была написана на языке ассемблера для PDP-11 под ОС RSX. Oracle версии 2 появилась в 1979 г. и стала "первой коммерческой реляционной СУБД с использованием SQL", а в версии 3 ее ядро было переписано на языке С. С версии 8 фирма Oracle называет свою СУБД "объектно-реляционной". Фактически же это была и остается SQL-ориентированная СУБД, использующая собственный диалект SQL.

В силу истории происхождения диалект SQL фирмы Oracle естественно оценивать с трех сторон, определяющих одновременно и факторы влияния на существующий его вид:

· реляционной теории,

· стандартного SQL,

· фирмы-разработчика.

Во всех случаях можно говорить о понимании вопроса соответствующей стороной и об усилиях на проработку того или иного свойства (а в случае фирмы-разработчика — еще и усилий на программирование).

Oracle "в значительной степени" (но не полностью и не в точности) поддерживает уровень Core SQL:2003, некоторые возможности уровня Optional Features SQL:2003 и набор собственных нестандартизованных свойств. Точное перечисление соответствия диалекта SQL Oracle стандарту приводится в документации по СУБД Oracle.

Некоторые собственные свойства диалекта SQL Oracle:

· типы данных;

· дополнительные к стандарту функции;

· дополнительные конструкции SQL.

Объем диалекта SQL в Oracle по отношению к стандартам пояснен следующим рисунком.

Выход за пределы стандарта практикуется не только Oracle, но всеми без исключения производителями, что девальвирует стандарт.

К этому же можно добавить, что в очередных версиях своей СУБД фирма Oracle все больше и больше новых возможностей (чаще, правда, технологического характера) реализует не посредством SQL в рамках своего диалекта, а программно, с помощью встроенных в БД системных пакетов подпрограмм.

Три понятия — реляционная модель, стандартный язык SQL и диалект SQL в Oracle — безусловно связаны, но связи эти вольные. Стандарт SQL является промышленным стандартом, создаваемым под влиянием реляционной модели, но не воплощающим реляционного языка запросов. Одновременно диалект SQL в Oracle создается для СУБД конкретного типа под влиянием стандарта SQL, но не придерживаясь его как догмы. Стандарт SQL и диалекты SQL всех производителей (включая Oracle) существуют в большой степени самостоятельно, оказывая воздействие друг на друга, но не воспроизводя друг друга в точности.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: