Лекции / Язык SQL в СУБД
Технологии баз данных и знаний
|
|
|
|
|
|
|
|
|
|
|
Главная |
Типовая |
Лекции |
Практикум |
Индивидуальные |
Заочникам |
Экзамен/зачет |
Тесты |
|
|
программа |
задания |
|
||||||
|
|
|
|
|
|
|
|
|
|
ЛЕКЦИИ
Лекция на тему
ВВЕДЕНИЕ В ЯЗЫК SQL
Разработчик: к.социолог.н. Пунчик З.В.
План лекции
1.Язык SQL в СУБД
2.Структура команды SQL. Типы данных. Выражения
3.Функциональные возможности языка SQL
4.Диалекты языка SQL в СУБД
Литература
Глоссарий
&
1. ЯЗЫК SQL В СУБД
SQL представляет собой непроцедурный (декларативный) язык, используемый для управления данными реляционных СУБД. Термин «непроцедурный» означает, что на данном языке можно сформулировать, что нужно сделать с данными, но не требуется указывать, как именно это следует сделать. В этом языке отсутствуют алгоритмические конструкции, такие как метки, условные переходы, операторы цикла и др. Таким образом, язык SQL скрывает от пользователя сложности алгоритмов поиска данных и их реализации, обеспечивая простоту понимания и легкость манипулирования данными.
История наиболее распространенного в настоящее время языка баз данных SQL насчитывает уже около 30 лет. Первый, достаточно полный функционально, но не полностью синтаксически и семантически определенный вариант языка SQL (его исходным названием было SEQUEL – StructuredEnglishQueryLanguage) был разработан и частично реализован в рамках проекта экспериментальной реляционной СУБД SystemR (проект выполнялся с 1974 по 1979 гг. в научно-исследовательской лаборатории компании IBM в г. Сан-Хосе, Калифорния).
Название языка SQL (StructuredQueryLanguage – структурированный язык запросов) только частично отражает его суть. Язык SQL главным образом ориентирован на удобную и понятную пользователям формулировку запросов выбора из БД, однако его функции шире – с самого начала этот язык задумывался как полный язык БД. Под этим понимается, что (по крайней мере, теоретически) для выполнения любых осмысленных действий с базой данных, управляемой SQL-ориентированной СУБД, достаточно знать язык SQL.
Первоначально официального стандарта в области БД не существовало, что в определенном смысле сдерживало развитие технологий баз данных. В результате совместных усилий двух организаций: ANSI (American National Standarts) и ISO (International Standarts Organisation) в 1986 году был принят стандарт SQL-86 (SQL-1).
http://www.bseu.by/it/tohod/lekcii7.htm[17.05.2013 13:18:26]
Лекции / Язык SQL в СУБД
После появления первого международного стандарта языка работа в этой области
продолжилась, и в 1992 г. был принят второй международный стандарт SQL-92 (SQL-2), в 1999 г. появляется объектно-ориентированный язык SQL:1999 (SQL-3), а в 2003 г. принят стандарт SQL:2003. Каждый стандарт представляет собой многостраничный документ сложной структуры. К примеру, текст стандарта SQL-92 составляет около 600 страниц.
SQL-стандарт правильнее рассматривать не как статический, а как постоянно развивающийся объект, что объясняется современным интенсивным развитием технологий баз данных. Функция SQL-стандартов – стать путеводителем на сложном пути для будущих согласованных совершенствований технологий обработки данных.
Язык SQL является первым и пока единственным стандартным языком работы с базами данных, который получил достаточно широкое распространение. Есть еще один стандартный язык работы с базами данных, NDL (Network Database Language), который построен на использовании сетевой модели CODASYL, но он применяется лишь в немногих разработках.
В SQL сделаны большие инвестиции как со стороны разработчиков, так и со стороны пользователей. В настоящее время SQL реализован практически во всех коммерческих СУБД, все фирмы провозглашают соответствие своей реализации стандарту SQL. Таким образом, для грамотного использования любой SQL-ориентированной СУБД знание стандартов языка SQL является необходимым. SQL является логичным и достаточно мощным языком для взаимодействия с БД и в тоже время относительно легким для изучения. Освоив один раз стандарт этого языка, пользователь SQL может работать с БД в среде любой SQL-ориентированной СУБД.
Язык SQL можно использовать для доступа к БД в двух режимах: при интерактивной работе и в прикладных программах. С помощью SQL пользователь может в интерактивном режиме быстро получить ответы на любые, в том числе достаточно сложные запросы, тогда как для программной реализации этих запросов на другом языке пришлось бы разрабатывать соответствующую программу. К примеру, для выбора из таблицы ВОПРОСЫ всех номеров вопросов, относящихся к первой теме, пользователю необходимо ввести команду[1]
SELECT ВОПРОСЫ.Ном FROM ВОПРОСЫ WHERE КодТемы=1 |
(1) |
При написании прикладных программ для обращения к БД также используют язык |
|
SQL (встроенный SQL). |
|
Пример использования SQL в программе на языке VBA: |
|
… |
(2) |
strSQL="SELECT ВОПРОСЫ.Ном FROM ВОПРОСЫ WHERE КодТемы= 1" |
Set ВОПРОСЫ = ДБ.OpenRecordset(strSQL, dbOpenDynaset)
…
Как видно из примеров (1) и (2), для извлечения данных из БД одни и те же команды языка SQL можно применять как для интерактивного, так и для программного доступа.
Характеризуя язык SQL в целом, можно выделить следующие его черты:
∙высокоуровневая структура, напоминающая английский язык;
∙независимость от конкретных СУБД;
∙межплатформенная переносимость;
∙наличие развивающихся стандартов;
∙возможность выполнения интерактивных запросов извлечения данных и модификации их структуры;
∙обеспечение программного доступа к базам данных;
∙возможность различного представления данных;
∙поддержка архитектуры клиент/сервер;
http://www.bseu.by/it/tohod/lekcii7.htm[17.05.2013 13:18:26]
Лекции / Язык SQL в СУБД
∙динамическое определение данных (возможность изменять и расширять структуру БД
даже в то время, когда пользователи обращаются к ее содержимому);
∙расширяемость и поддержка объектно-ориентированных технологий;
∙возможность доступа к данным в среде Internet.
[1]Синтаксис команды будет пояснен ниже, при рассмотрении команды SELECT
©Минск БГЭУ, 2005 - 2011
http://www.bseu.by/it/tohod/lekcii7.htm[17.05.2013 13:18:26]
Типовая программа
© Минск БГЭУ, 2005 - 2011
http://www.bseu.by/it/tohod/programma.htm[17.05.2013 13:18:38]