Эдгаром Коддом была инициирована разработка языка SEQUEL, который позже переименовали в SQL (Structured Query Language – структурированный язык запросов). Язык создавался как простой непроцедурный язык, который мог бы использовать даже пользователь без навыков программирования.
В начале 1980-х гг. SQL стал популярным в качестве языка реляционных систем управления БД. Американский национальный институт по стандартизации (ANSI) стал выпускать новые стандарты SQL. С 1989 г. язык SQL включили в стандарты ISO (Международная организация по стандартизации).
Преимущества SQL
Языки манипулирования данными, которые были созданы до появления реляционных БД и разработаны для многих систем управления БД, ориентировались на операции с данными, которые представлены как логические записи файлов. Вследствие этого пользователи должны были иметь детальные знания организации хранения данных и приложить достаточные усилия, чтобы указать, какие конкретно данные необходимы, место их размещения и пошаговое их получение.
Непроцедурный язык SQL ориентировался на операции с данными, которые представлены как логически взаимосвязанные совокупности таблиц. Этот язык отличался тем, что его предложения ориентировались по большому счету на конечный результат обработки, а не на процедуру обработки данных. Язык сам определял место нахождения данных, индексы и эффективный порядок операций для их получения.
Различие между языком манипулирования данными и SQL
Предположим, Вы запланировали посмотреть спектакль и собираетесь воспользоваться услугами такси для поездки в театр. Одному таксисту достаточно назвать, какой спектакль Вы хотите посмотреть, и он отвезет Вас в тот театр, где его показывают. Так же самостоятельно SQL находит запрошенные данные.
Другой таксист потребует назвать, какой именно театр Вам нужен. Тогда он найдет адрес этого театра и сможет доставить Вас к нему. Возможно, третий таксист не будет знать и адреса нужного Вам театра, и Вам придется всю дорогу подсказывать, как к нему проехать. Аналогичным образом с большим или меньшим уровнем детализации пользователь создает запрос в СУБД, которые не имеют SQL.
Основы SQL
C ростом быстродействия, снижением энергопотребления, стоимости и размеров компьютеров, резко стали расширяться возможные рынки их сбыта, разнообразие цен и типов, число пользователей, а также спрос на программное обеспечение.
Фирмы-производители программного обеспечения стали выпускать все более объемные программные комплексы, вследствие чего отдельные пользователи или организации не всегда могли установить на своих компьютерах. Чтобы можно было обмениваться информацией и обобществлять ее были созданы сети ЭВМ, где данные и программы размещали на файловых серверах.
СУБД, которые работали с файловыми серверами, дают возможность большому количеству пользователей ЭВМ (даже которые располагаются далеко один от другого) получить доступ к одной и той же базе данных. Таким образом, упрощается процесс разработки разнообразных АСУ, учебных комплексов, информационных систем и т.д., при котором большое число учащихся или сотрудников используют общие данные и обмениваются теми, что создали в процессе обучения или работы.
При такой организации работы весь процесс обработки запросов из терминалов компьютеров или программ выполняется на этих же компьютерах. Таким образом, для выполнения даже простого запроса компьютер должен часто выполнять считывание и (или) записывание целых файлов из файлового сервера, что приводит к конфликтным ситуациям и перегруженности сети.
Для решения проблемы была разработана технология "клиент-сервер", которая позволяла обрабатывать запросы пользовательских компьютеров (клиентов) на специальных серверах БД (сервере), а на компьютер возвращать только результаты обработки запроса. В качестве единого языка общения с сервером был выбран SQL.
Во всех современных версиях реляционных и некоторых нереляционных СУБД используется технология "клиент-сервер" и язык SQL.
Операции SQL ориентированы на представление данных в виде таблиц, что позволило создать компактный язык с небольшим набором (менее 30) основных предложений. SQL используется в качестве интерактивного (для выполнения запросов) и встроенного (для построения прикладных программ) языка. Он позволяет выполнять:
- определение данных;
- запросы на выбор данных (SELECT);
- модификацию данных (добавлять, удалять и изменять данные);
- управлять данными (предоставлять и отменять привилегии на доступ к данным, управлять транзакциями и т.д.).
SQL не снабжен достаточными средствами создания сложных прикладных программ. Поэтому в различных СУБД его используют или в совокупности с языками программирования высокого уровня (например, PHP, Pascal, С), или включают в состав команд специально разработанного языка СУБД.