Добавить в цитаты Настройки чтения

Страница 1 из 3



В. Ю. Кара-Ушанов

SQL – язык реляционных баз данных

Введение

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

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

В составе СУБД SQL выполняет множество функций. Его можно использовать в интерактивном режиме по принципу «запрос-ответ». SQL является подъязыком баз данных в обстановке прикладной программы, составленной на языке программирования. SQL – это язык запросов в приложениях многопользовательской клиент-серверной системы. SQL – это язык администрирования баз данных. Любому профессионалу, является ли он квалифицированным пользователем базы данных или прикладным программистом или администратором баз данных, необходимо знать язык SQL. Таким образом, знание языка SQL является обязательным для специалиста в области разработки и сопровождения баз данных.

SQL создавался в середине 1970-х годов сотрудниками фирмы IBM как высокоуровневый декларативный язык, основанный на реляционном исчислении. Предложения SQL описывают данные, которые необходимо получить, а не определяют способ поиска результата. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. Исходная версия языка называлась SEQUEL (Structured English QUEry Language – английский структурированный язык запросов) ясно говорит о намерении его авторов создать язык, близкий к естественному. И это им удалось. Команды SQL выглядят как обычные предложения английского языка, что упрощает их изучение и понимание.

Итак, SQL достаточно легок и понятен для освоения.

SQL является реляционным языком. Его осмысленное изучение предполагает знакомство с реляционной моделью данных. Основные концепции реляционной модели включают определение структуры и типов данных, определение множества операций, допустимых над элементами структуры данных, и определение правил целостности данных, регулирующих допустимые отношения между элементами структуры данных. Вследствие популярности реляционной модели в публикациях, посвященных методологии проектирования баз данных, всегда можно найти подробное описание реляционной модели (например, в [1–5]). SQL всегда был и остается актуальной проблемой методологии проектирования баз данных. На сей счет также имеется множество публикаций, в том числе учебного характера, как в печатных изданиях [6–8], так и в электронных ресурсах [9, 10]. Таким образом, самостоятельное изучение SQL на основе обширного методического обеспечения – вполне реальное дело.

Возникнув как фирменный стандарт, SQL по факту приобрел статус международного языка. Его первая полноценная версия известна как стандарт ANSI SQL-89. Этот стандарт оказался далек от совершенства, имел чрезвычайно общий характер и допускал очень широкое толкование. Опыт использования SQL позволил дополнить первый стандарт новыми возможностями, необходимыми для реализации языка в составе коммерческих СУБД. На этой основе был разработан стандарт ANSI SQL-92, который принято считать истинно реляционным. После его принятия стало возможным говорить про стандартную среду SQL-ориентированной СУБД. В настоящее время этот стандарт поддерживается практически всеми современными реляционными СУБД. Хотя конкретные реализации, диалекты SQL, поддерживая стандарт в главном, отличаются от него, как правило, в сторону расширения. Начинающему пользователю SQL полезно знать возможности стандарта.

Для изучения языка SOL начинающему пользователю предлагается использовать его диалект Access SQL (Microsoft SQL Jet) в интерактивном режиме, свободном от проблем прикладного программирования и знания языков программирования. Выбор Access обусловлен, главным образом, доступностью и распространенностью этого популярного программного продукта.

Реляционная модель данных

Реляционная модель была предложена Э. Ф. Коддом в 1970 году [1] как средство структуризации данных, основанное на строгих математических принципах.

Что такое «модель данных» и в частности «реляционная модель данных»? Прежде чем давать определение понятию модели данных, отметим некоторые коллизии терминологического характера, связанные с термином «модель данных».

Дело в том, что понятие «модель данных» употребляется в двух разных контекстах, отличающихся той ролью, которую играет модель данных в моделировании [11].

Во-первых, модель данных рассматривается как модель предметной области, т. е. результат моделирования. И в ней должны быть учтены статические (структурные) и динамические (поведенческие) аспекты предметной области. При такой трактовке понятия «модель данных» объектом моделирования, строго говоря, являются не данные вообще, а конкретная база данных. В таком контексте правильнее говорить не о модели данных вообще, а о модели базы данных конкретной предметной области.

Во-вторых, модель данных часто рассматривается как совокупность инструментальных средств, с помощью которых происходит определение и разработка модели данных предметной области как результата моделирования. Определение модели данных в таком контексте выглядит так [2]:

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



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

Итак, в определение модели данных [3] в инструментальном смысле входят:

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

· определение ограничений целостности, определяющих допустимые отношения между элементами структуры данного типа;

· определение множества операций над данными этого типа.

Это определение модели данных в полной мере применимо и к реляционной модели данных. Итак, термин «реляционная модель данных» употребляется как совокупность инструментальных средств.

Структура данных

Любые данные, используемые в моделировании, имеют свои типы данных. Какие типы данных поддерживает реляционная модель?

В первом приближении принято различать типы данных простые и структурированные [4].

Простые, или атомарные, типы данных не обладают внутренней структурой. Данные такого типа называют скалярными. К простым типам данных относятся, например, следующие типы:

· логический;

· строковый;

· численный.

Этот список можно расширить и уточнить, добавляя другие типы:

· целый;

· вещественный;