- •Классификация субд по типу модели данных:
- •Реляционная модель данных
- •Проектирование реляционных баз данных
- •Семантическое моделирование данных
- •Язык реляционных баз данных sql
- •Insert добавляет новые данные
- •If db_id (n'Поставщики и детали') is not null
- •Into создает новую таблицу и вставляет в нее строки результата выполнения запроса.
Язык реляционных баз данных sql
Из рассмотрения реляционной модели известно, что двумя фундаментальными языками запросов к реляционным базам данных являются языки реляционной алгебры и реляционного исчисления. При всей своей строгости и теоретической обоснованности, эти языки не стали стандартными языками реляционных СУБД. Юридическим и фактическим стандартом стал язык SQL (Structured Query Language – «язык структурированных запросов»).
SQL представляет собой некоторую комбинацию реляционного исчисления кортежей и реляционной алгебры, и был разработан в середине 70-х годов в компании IBM в рамках проекта экспериментальной реляционной СУБД System R. Деятельность по стандартизации SQL началась практически одновременно с появлением его первых коммерческих реализаций. В 1986 г. был принят стандарт ANSI, а в 1987 г. Этот стандарт был одобрен международной организацией по стандартизации (ISO). Время от времени выпускается пересмотренная версия этого стандарта; наиболее свежее обновление было выпущено в 2008 г. Формальное название стандарта SQL – ISO/IEC 9075 «Database Language SQL».
Несмотря на наличие международного стандарта, многие производители СУБД вносят изменения в язык SQL, тем самым отступая от стандарта. В результате у разных производителей СУБД в ходу разные диалекты SQL, в общем случае между собой несовместимые. В настоящее время проблема совместимости решается так: описание языка имеет модульную структуру, основная часть стандарта вынесена в раздел «SQL/Foundation», все остальные выведены в отдельные модули, остался только один уровень совместимости – «Core», что означает поддержку этой основной части. Поддержка остальных возможностей оставлена на усмотрение производителей СУБД.
При всех своих изменениях, SQL остаётся единственным механизмом связи между прикладным программным обеспечением и базой данных. В тоже время, современные СУБД предоставляют пользователю развитые средства визуального построения запросов. Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов, он стал настолько сложным, что превратился в инструмент профессионального программиста.
Все операторы, составляющие основу SQL с момента его появления, можно разделить на следующие группы:
-
операторы определения данных (Data Definition Language – DDL)
-
CREATE создает объект базы данных
-
ALTER изменяет объект
-
DROP удаляет объект
-
-
операторы манипуляции данными (Data Manipulation Language – DML)
-
SELECT считывает данные, удовлетворяющие заданным условиям
-
Insert добавляет новые данные
-
UPDATE изменяет существующие данные
-
DELETE удаляет данные
-
-
операторы определения доступа к данным (Data Control Language – DCL)
-
GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом
-
REVOKE отзывает ранее выданные разрешения
-
DENY задает запрет, имеющий приоритет над разрешением
-
-
операторы управления транзакциями (Transaction Control Language – TCL)
-
COMMIT применяет транзакцию.
-
ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.
-
SAVEPOINT делит транзакцию на более мелкие участки.
-
Не вдаваясь в детали синтаксиса, в качестве примера приведем сценарий создания базы данных «Поставщики и детали», схема которой была рассмотрена ранее.
USE master