Язык структурированных запросов SQL.

Современная автоматизированная система обработки информации не может быть разработана без использования баз данных, так как в любой подобной системе приходится где-то хранить данные. При этом файлы использовать несерьезно, так как они являются структурированными и ими неудобно пользоваться. Единственное преимущество хранения данных в файлах в том, что это работает довольно быстро и просто. Если мы храним информацию в файлах, то наша программа должна сама взять на себя всю работу с этими данными. Нужно организовать запись структурированных данных в файл, чтение, разбор, проверки на ошибки, поиск и так далее, то есть все это придется делать программисту. А у разработчика и так уже есть много чего, над чем приходится думать, к примеру над бизнес-логикой приложения и важными вопросами его функциональности. Ему не хочется думать о таких низкоуровневых вещах, как ввод-вывод в файл, поиск в файле и так далее.

Программист хочет, чтобы всю эту работу делал за него компьютер. И поскольку эта потребность постоянно возникает, то был разработан такой класс приложений, который называется системой управления базами данных (СУБД). На сегодняшний день существуют СУБД, которые различаются по модели данных, по степени распределенности и по способу доступа к базам данных. Например Microsoft Access, FoxPro, Oracle, MS SQL Server, MySQL и другие. Самые популярные СУБД — это реляционные. В реляционных СУБД данные хранятся в таблицах. Инструментом для работы с реляционными базами данных является язык структурированных запросов SQL. Преимущества этого языка в том, что его базовую часть понимают все СУБД. Самое важное при работе с реляционными базами данных это построение соотношения между реальным миром и реляционной моделью.

Важно понимать, что когда мы работаем с табличными базами данных, то нужно заменять слово “информация” на слово “строки”. В языке SQL есть группа операторов для работы со строками. Если нужно извлечь определенную информацию из базы данных, то это означает, что требуется выбрать строки, удовлетворяющие заданным условиям. Эту операцию по извлечению строк выполняет самая сложная и самая важная SQL-инструкция SELECT. Если мы хотим добавить какие-либо данные, то есть строки, в этом нам поможет команда INSERT. Для удаления записей используется команда DELETE, а для обновления — команда UPDATE. Но для того, чтобы мы могли работать с этими SQL-инструкциями, нужно чтобы имелись хотя бы пустые таблицы.

Разработчик базы данных должен подумать, с какими объектами будет работать пользователь и для каждого объекта создать таблицу определенной структуры. Для этого используется другая группа операторов, которая работает со структурой базы данных. Для создания какого-либо объекта используется команда CREATE, а для изменения структуры или удаления объекта используются команды соответственно ALTER и DROP. В языке SQL имеются и операторы, предназначенные для разграничения прав доступа пользователей.

Раздача прав делается тремя операторами. Например, инструкция GRANT выдает право пользователю на выполнение какой-либо операции, а инструкция REVOKE забирает данное право. У языка структурированных запросов SQL существуют и недостатки. Так, например, создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В будущем предлагается язык Tutorial-D, являющийся истинно реляционным