Что такое SQL

SQLСовременные информационные системы невозможно представить без баз данных. В свою очередь, говоря о базах данных, мы не можем не коснуться SQL. Structured query language («язык структурированных запросов» с английского) является базовым языком программирования для многих современных систем управления базами данных. На текущий момент работа с базами данных так или иначе подразумевает знание SQL.

SQL относится к декларативным языкам программирования. Это значит, что он содержит спецификацию решения задач (описывается, что представляет собой проблема, и ожидаемый результат). SQL достаточно возрастной язык программирования. Его корни уходят в разработки компании IBM, которая создала собственный прототип реляционной базы данных в 70-е годы XX века. Для управления этой базой данных был разработан язык SEQUEL, который затем из-за юридических коллизий был переименован в SQL. По этой причине до сих пор можно наблюдать разные варианты произношения даже в среде англоязычных специалистов — «эс-кью-эл» или «сиквел».

Как правило, указание на использование языка SQL содержится в самом названии системы управления базами данных (MySQL, Microsoft SQL Server, PostgreSQL и т.д.). Причинами использования одного и того же языка программирования в работе с базами данных являются те преимущества, которые обеспечивает стандартизация. В первую очередь это упрощенная переносимость программного обеспечения с одной системы управления базами данных на другую. Поскольку работы по стандартизации языка SQL идут с 80-х годов прошлого века (за это время было выпущено несколько редакций стандарта), следует отметить хороший прогресс в данной области. Однако, как это часто бывает, существуют и диалекты. Причина довольно прозаична — разработчики различных систем управления базами данных посчитали, что возможностей стандартного SQL недостаточно.

Итак, значение термина SQL нам теперь понятно. Обозначим основные особенности этого языка программирования, его плюсы и минусы.

Преимущества SQL

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

Недостатки SQL

  • Отступления от реляционной модели данных — хотя SQL создавался для работы с реляционными базами данных, он не полностью соответствует данной модели. Примерами несоответствия могут служить возможность наличия строк-дубликатов, столбцов без имени или неопределённые значения;
  • Повышенный порог входа — по своей сути SQL является инструментом для программистов. Данный момент особенно интересен, поскольку изначально данный язык задумывался как инструмент для рядовых пользователей, посредством которого те будут обращаться к базам данных;
  • Наличие диалектов — данная проблема может казаться незначительной, пока Вы с нею не столкнётесь. На самом деле, диалекты SQL это не абсолютное зло, поскольку популярный язык программирования может жить своей жизнью. Проблемой они становятся тогда, когда превращаются в преграду для переноса проектов с одной СУБД на другую.

Подытоживая сказанное, отметим, что язык SQL со всеми своими достоинствами и недостатками на текущий момент времени является стандартом обращения к базам данных. Это делает его незаменимым инструментом в арсенале программиста и (или) системного администратора.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *