Язык реляционных запросов SQL. Команды управления данными. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Язык реляционных запросов SQL. Команды управления данными.



 

SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.

SQL является информационно-логическим языком, а не языком программирования. SQL основывается на реляционной алгебре.

Язык SQL делится на три части:

· операторы определения данных (Data Definition Language, DDL)

· операторы манипуляции данными (Data Manipulation Language, DML)

· операторы определения доступа к данным (Data Control Language, DCL)

Преимущества:

· Независимость от конкретной СУБД. Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую.

· Наличие стандартов. Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка.

· Декларативность. С помощью SQL программист описывает только какие данные нужно извлечь или модифицировать. То, каким образом это сделать решает СУБД непосредственно при обработке SQL запроса.

Недостатки:

· Несоответствие реляционной модели данных. Создатель реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности они указывают на следующие проблемы SQL:

· Повторяющиеся строки

· Неопределённые значения (nulls)

· Явное указание порядка колонок слева направо

· Колонки без имени и дублирующиеся имена колонок

· Отсутствие поддержки свойства «=»

· Использование указателей

· Высокая избыточность

· Сложность. Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов, он стал настолько сложным, что превратился в инструмент программиста.

· Отступления от стандартов. Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

· Сложность работы с иерархическими структурами. Ранее SQL не предлагал стандартного способа манипуляции древововидными структурами. Некоторые поставщики СУБД предлагали свои решения. Например, Oracle использует выражение «CONNECT BY». В настоящее время в качестве стандарта принята рекурсивная конструкция «WITH».

Условно команды SQL можно разделить на четыре группы:

· команды определения данных;

· команды манипулирования данными;

· команды управления данными;

· команды управления транзакциями.

Команды управления данными

С помощью команд управления данными (DCL) SQL можно управлять доступом пользователей к базе данных и использованию конкретных данных (таблиц, представлений и т.д.).

Операторы управления данными включают в себя применяемые для предоставления и отмены полномочий команды GRANT и REVOKE, а также команду SET ROLE, которая разрешает или запрещает роли для текущего сеанса.

В системах клиент/сервер доступ к базе данных могут получить только пользователи, зарегистрированные в системе. Команда SQL GRANT используется для предоставления пользователю роли или полномочия. Эту привилегию имеет только администратор базы данных.

Привилегии:

· DBA разрешает пользователю выполнять действия администратора базы данных. Имея привилегию DBA, пользователь может выполнять команду SELECT для любой таблицы и представления, создавать объекты для других пользователей, предоставлять другим пользователям различные привилегии, выполнять полный экспорт/импорт базы данных.

· RESOURCE разрешает пользователю создавать объекты базы данных, включая таблицы и индексы.

· CONNECT позволяет пользователю подключаться к базе данных и работать с объектами, к которым он имеет привилегии по доступу. Пользователь может создавать представления, синонимы и межтабличные связи.

Например: GRANT DBA TO SYSADM IDENTIFIED BY SYSTEM

Аналогично, если пользователю предоставляются полномочия на объект, то параметр GRANT позволяет передать эту возможность предоставления полномочий другим пользователями и ролям:

GRANT SELECT, INSERT, UPDATE, DELETE ON customer ТО jkennedy WITH GRANT OPTION

Если таблица должна быть доступна всем пользователям, указывается вместо имени пользователя ключевое слово PUBLIC.

Отмена привилегий осуществляется с помощью команды REVOKE. Можно отменить общие привилегии пользователя или же привилегии на указанную таблицу. Например:

REVOKE CREATE TABLE FROM aligncoln

REVOKE placeorders FROM orderentry

REVOKE SELECT ON customer FROM tjefferson

С помощью команды REVOKE можно задать отменяемое полномочие или роль. Предложение FROM позволяет указать пользователя или роль, для которых отменяются полномочия. Ключевое слово ALL позволяет отменить все объектные полномочия:

REVOKE ALL ON customer FROM rnixon

Команда SQL SET ROLE разрешает или запрещает роли в текущем сеансе. С помощью ролей администратор может значительно упростить управление полномочиями.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 347; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.254.35 (0.006 с.)