Файл: Тема концепция управления данными в современных информационных системах Цель лекции.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.11.2023

Просмотров: 240

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Выделяют следующие группы команд SQL:

Команды языка определения данных

Команды языка определения данных DDL (Data Definition Language, язык определения данных) – это подмножество SQL, используемое для определения и модификации различных структур данных. К данной группе относятся команды предназначенные для создания, изменения и удаления различных объектов базы данных. Команды CREATE (создание), ALTER (модификация) и DROP (удаление) имеют большинство типов объектов баз данных (таблиц, представлений, процедур, триггеров, табличных областей, пользователей и др.). Т.е. существует множество команд DDL, например, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE TRIGGER, CREATE USER, CREATE ROLE и т.д.

Некоторым кажется, что применение DDL является прерогативой администраторов базы данных, а операторы DML должны писать разработчики, но эти два языка не так – то просто разделить. Сложно организовать аффективный доступ к данным и их обработку, не понимая, какие структуры доступны и как они связаны. Также сложно проектировать соответствующие структуры, не зная, как они будут обрабатываться.

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

С помощью команд языка управления данными (DCL (Data Control Language)) можно управлять доступом пользователей к базе данных. Операторы управления данными включают в себя применяемые для предоставления и отмены полномочий команды GRANT и REVOKE, а также команду SET ROLE, которая разрешает или запрещает роли для текущего сеанса.

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

Команды языка управления транзакциями (TCL (Transaction Control Language)) команды позволяют определить исход транзакции.

Команды управления транзакциями управляют изменениями в базе данных, которые осуществляются командами манипулирования данными.

Транзакция (или логическая единица работы) – неделимая с точки зрения воздействия на базу данных последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации) такая, что либо результаты всех операторов полностью отсутствует.

COMMIT – заканчивает («подтверждает») текущую транзакцию и делает постоянными (сохраняет в базе данных) изменения, осуществленные этой транзакцией. Также стирает точки сохранения этой транзакции и освобождает ее блокировки. Можно также использовать эту команду для того, чтобы вручную подтвердить сомнительную распределенную транзакцию.

ROLLBACK – выполняет откат транзакции, т.е. отменяет все изменения, сделанные в текущей транзакции. Можно также использовать эту команду для того, чтобы вручную отменить работу, проделанную сомнительной распределенной транзакцией.


Понятие транзакции имеет непосредственную связь с понятием целостности базы данных. Очень часто база данных может обладать такими ограничениями целостности, которые просто невозможно не нарушить, выполняя только один оператор изменения БД. Например, невозможно принять сотрудника в отдел, название и код которого отсутствует в базе данных.

В системах с развитыми средствами ограничения и контроля целостности каждая транзакция начинается при целостном состоянии базы данных и должна оставить это состояние целостными после своего завершения. Несоблюдение этого условия приводит к тому, что вместо фиксации результатов транзакции происходит ее откат (т.е. вместо оператора COMMIT выполняется оператор ROLLBACK), и база данных остается в таком состоянии, в котором находилась к моменту начала транзакции, т.е. в целостном состоянии.

В связи со свойством сохранения целостности БД транзакции являются подходящими единицами изолированности пользователей, т.е., если с каждым сеансом работы с базой данных ассоциируется транзакция, то каждый пользователь начинает работу с согласованным состоянием базы данных, т.е. с таким состоянием, в котором база данных могла бы находиться, даже если бы пользователь работал с ней в одиночку.

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

Команды языка манипулирования данными DML (Data Manipulation Language) позволяют пользователю перемещать данные в базу данных и из нее:

- INSERT – осуществляет вставку строк в таблицу;

- DELETE – осуществляет удаление строк из таблицы;

- UPDATE – осуществляет модификацию данных в таблице;

- SELECT – осуществляет выборку данных из таблиц по запросу.

Язык SQL является реляционно полным. Это означает, что любой оператор реляционной алгебры может быть выражен подходящим оператором SQL.

Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям.

Можно выделить следующие группы операторов (перечислены не все операторы SQL):

Операторы DDL (Data Definition Language) - операторы определения объектов базы данных:

  • CREATE SCHEMA - создать схему базы данных

  • DROP SHEMA - удалить схему базы данных

  • CREATE TABLE - создать таблицу

  • ALTER TABLE - изменить таблицу

  • DROP TABLE - удалить таблицу

  • CREATE DOMAIN - создать домен

  • ALTER DOMAIN - изменить домен

  • DROP DOMAIN - удалить домен

  • CREATE COLLATION - создать последовательность

  • DROP COLLATION - удалить последовательность

  • CREATE VIEW - создать представление

  • DROP VIEW - удалить представление


Операторы DML (Data Manipulation Language) - операторы манипулирования данными:

  • SELECT - отобрать строки из таблиц

  • INSERT - добавить строки в таблицу

  • UPDATE - изменить строки в таблице

  • DELETE - удалить строки в таблице

  • COMMIT - зафиксировать внесенные изменения

  • ROLLBACK - откатить внесенные изменения

Операторы защиты и управления данными:

  • CREATE ASSERTION - создать ограничение

  • DROP ASSERTION - удалить ограничение

  • GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами

  • REVOKE - отменить привилегии пользователя или приложения

Кроме того, есть группы операторов установки параметров сеанса, получения информации о базе данных, операторы статического SQL, операторы динамического SQL.

Наиболее важными для пользователя являются операторы манипулирования данными (DML).
3.Говоря о DML, было установлено, что эти операторы могут манипулировать с данными, хранимыми в БД, однако не могут изменить ее структуру. Для изменения структуры БД в SQL пре­дусмотрен язык определения данных, или DDL.

Обычному пользователю крайне редко приходится создавать БД или таблицы внутри нее. Традиционно он работает с уже го­товой структурой, которая уже разработана и реализована адми­нистратором БД. Тем не менее, для полного понимания особен­ностей работы SQL на операторах DDL стоит остановиться дос­таточно подробно. С помощью этих операторов можно:

- создать новую БД;

- определить структуру новой таблицы и создать эту таб­лицу;

- удалить существующую таблицу;

- изменить определение существующей таблицы;

- определить представление данных;

- обеспечить условия безопасности БД;

- создать индексы для доступа к таблицам;

- управлять размещением данных на устройствах хранения.

Операторы DDL позволяют пользователю не вникать в детали хранения информации в БД на физическом уровне, т.к. опериру­ют, например, такими понятиями, как таблицы или поля. В то же время, операторы DDL обладают возможностью манипуляции с физической памятью.

Собственно DDL базируется на трех командах SQL:

- CREATE - создать, позволяющий определить и создать объект БД;

- DROP - удалить, применяемый для удаления сущест­вующего объекта данных:

-ALTER - изменить, с помощью которого можно изменить определение объекта БД.

При работе с базами данных, размещенными на сервере, можно выделить следующие этапы:


  • создание базы данных и таблиц;

  • создание представлений и хранимых процедур;

  • работа с таблицами;

  • восстановление данных;

  • администрирование.

Cоздание базы данных выполняется в два этапа: этап проектирования и этап создания.

Этап проектирования базы данных включает в себя планирование ограничений файлов и включение файлов в новую базу данных. Этап создания состоит в выполнении этого плана с помощью команды SQL CREATE DATABASE и некоторых сценариев. Планирование базы данных администратором состоит в определении ее файловой структуры.

Физически база данных СУБД представляет собой набор файлов на диске. Расположение этих файлов несущественно для функционирования (хотя важно для производительности) базы данных.

Логически база данных — это множество пользовательских разделов СУБД, каждый из которых иденти­фицируется именем пользователя с паролем, уникальным в данной БД. Таблицы и другие объекты при­надлежат некоторому пользователю СУБД. Доступ к СУБД возможен только после регистрации посредством ввода имени и пароля пользователя. Если введенные имя и пароль не проходят проверку на соответствие, доступ к БД не предоставляется.
4.Оператор CREATE TABLE

Для создания новой таблицы необходимо использовать оператор CREATE TABLE, синтаксис которого имеет вид:

CREATE TABLE table ( column1 type1 [(size1)][CONSTRAINT _ column-constraint1] [, column2 type2 [(size2)][CONSTRAINT _ column-constraint2] [, ...]] [CONSTRAINT table-constraint1 _ [,table-constraint2 [, ...]]]);

В этом операторе следует указать имя поля, тип данных для него (тип данных должен поддерживаться данной СУБД), длину (для некоторых типов полей) и, если нужно, серверные ограничения (с применением ключевого слова CONSTRAINT).

За ключевым словом CREATE TABLE в операторе указываются имя создаваемой таблицы и определения различных элементов этой таблицы.

Оператор DROP TABLE

Оператор DROP TABLE служит для удаления таблицы из базы дан­ных. Оператор имеет следующую синтаксическую диаграмму (Рис 6.1).



Рис 6.1. Синтаксическая диаграмма оператора DROP TABLE
В операторе за словом DROP TABLE следуют имя удаляемой таб­лицы и необязательный параметр CASCADE или RESTRICT. Если указывается параметр CASCADE, то будут удалены строки в таб­лицах, в которых имеются ссылки на удаляемую таблицу. Параметр RESTRICT запрещает удаление таблицы, если на нее имеются ссылки из других таблиц.


Оператор DROP имеет две разновидности. Первая из них применяется для удаления таблицы из базы данных:

DROP TABLE table

Вторая разновидность используется для удаления индекса:

DROP INDEX index ON table

Оператор ALTER TABLE

Оператор ALTER TABLE позволяет:

• добавить в таблицу определения нового столбца;

• изменить значение по умолчанию, для какого - нибудь столбца;

• добавить или удалить первичный ключ;

• добавить или удалить внешний ключ;

• добавить или удалить условие уникальности;

• добавить или удалить условие проверки.

Для изменения структуры существующей таблицы используется оператор ALTER TABLE. Применяя его, можно добавить или удалить поле или серверное ограничение. Существует четыре разновидности оператора ALTER TABLE.

Первая разновидность этого оператора используется для добавления колонки к таблице, и ее синтаксис имеет вид:

ALTER TABLE table ADD [COLUMN] column datatype [(size)] [CONSTRAINT sinlge-column-constraint].

В запросах такого вида определяется имя таблицы, имя нового поля, его тип данных и, если нужно, размер. Помимо этого можно указать серверное ограничение, связанное с данным полем.

Вторая разновидность оператора ALTER TABLE применяется для добавления серверных ограничений к таблице, а ее синтаксис имеет вид:

ALTER TABLE table ADD CONSTRAINT constraint.

Такие запросы позволяют только добавлять индексы, позволяющие использовать соответствующие поля в качестве первичных или внешних ключей.

Третья разновидность предложения ALTER TABLE применяется для удаления поля из таблицы:

ALTER TABLE table DROP [COLUMN] column

Ключевое слово COLUMN использовать не обязательно.

Обратите внимание на то, что для удаления проиндексированных полей следует сначала удалить индекс. Это можно сделать с помощью четвертой разновидности предложения ALTER TABLE:

ALTER TABLE table DROP CONSTRAINT index