27. Язык SQL. Основные средства манипулирования данными. Стандарты SQL. Встраивание SQL в прикладную программу. Динамический
SQL.
Язык SQL (Structured Query Language - структурированный язык запросов) представляет собой стандартный высокоуровневый язык описания данных и манипулирования ими в системах управления базами данных (СУБД), построенных на основе реляционной модели данных.
Язык SQL был разработан фирмой IBM в конце 70-х годов. Первый международный стандарт языка был принят международной стандартизирующей организацией ISO в 1989 г., а новый (более полный) - в 1992 г. В настоящее время все производители реляционных СУБД поддерживают с различной степенью соответствия стандарт SQL92.
Основные категории команд языка SQL:
· DDL, или язык определения данных
· DML, или язык манипулирования данными
· DQL, или язык запросов
· DCL, или язык управления данными
· Команды администрирования данных
· Команды управления транзакциями
OLAP — технология обработки информации, включающая составление и динамическую публикацию отчётов и документов. Причина использования OLAP для обработки запросов — это скорость. Реляционные БД хранят сущности в отдельных таблицах, которые обычно хорошо нормализованы. Эта структура удобна для операционных БД, но сложные многотабличные запросы в ней выполняются относительно медленно. OLAP делает мгновенный снимок реляционной БД и структурирует её в пространственную модель для запросов. Заявленное время обработки запросов в OLAP составляет около 0,1 % от аналогичных запросов в реляционную БД.
Язык манипулирования данными (DML) — это часть языка SQL, предназначенная для реального внесения пользователем изменений в информацию, содержащуюся в реляционной базе данных. С помощью команд языка манипулирования данными пользователь может загружать в таблицы новые данные, а также изменять и удалять существующие. Команды DML также могут быть использованы при выполнении простых запросов к базе данных.
В языке SQL существует три основных команды DML:INSERT, UPDATE, DELETE.
Единственной структурой представления данных (как прикладных, так и системных) в реляционной базе данных (БД) является двумерная таблица.
В реляционной модели данных таблица обладает следующими основными свойствами:
· идентифицуруется уникальным именем;
· имеет конечное ненулевое количество столбцов;
· имеет конечное (возможно, нулевое) число строк;
· столбцы таблицы идентифицируются своими уникальными именами и номерами;
· содержимое всех ячеек столбца принадлежит одному типу данных;
· в общем случае ячейки таблицы могут оставаться пустыми, такое их состояние обозначается как NULL.
Программный SQL предназначен для того, чтобы встраивать SQL-запросы в прикладную программу, написанную на одном из языков программирования.
Динамический SQL – разновидность программного SQL, предназначенная для встраивания SQL-операторов в текст программы на языке программирования высокого уровня, допускающая динамическое формирование и выполнение запросов во время работы программы.
При использовании статического SQL: схема реализации подразумевала два этапа – компиляцию программы и выполнение программы. При этом на этап компиляции ложилась основная нагрузка-проверка, разбор и оптимизация запросов. Но подобную двухэтапную схему нельзя реализовать для динамического SQL, так как на этапе компиляции программы запрос неизвестен. Поэтому проверку, разборку и оптимизацию запросов здесь приходится выполнять непосредственно во время работы программы. Это определяет существенный недостаток динамического SQL– низкую производительность по сравнению со статическим.