Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
15
Добавлен:
26.11.2018
Размер:
388.1 Кб
Скачать

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

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

Таблицы.

CREATE TABLE базовая_таблица (столбец тип_данных [NOT NULL] ….)

Создать таблицу с указанным набором столбцов. NOT NULL показывает, что столбец не может быть пустым.

CREATE TABLE Сотрудник (Фамилия CHAR(50) NOT NULL)

DROP TABLE базовая_таблица

Удалить таблицу

Индексы

Индексы позволяют выполнять более быстрый поиск по таблице.

CREATE [UNIQUE] INDEX имя_индекса

ON Базовая_Таблица (столбец [[ASC]/DESC]…)

Создать индекс на основе таблицы и указанных столбцов таблицы.

DROP INDEX имя_индекса

Удалить индекс

CREATE INDEX Тема

ON КнижныйФонд (Тема ASC)

Представления

Представление- это временная таблица в БД, отажающая необходимые в данный момент пользователю данные. Необходимы представления для того, чтобы:

  • пользователь мог видеть только те данные, что необходимы (на какие есть права)

  • обеспечетить независимость работы программ.

CREATE VIEW ИмяПредставления (столбец…)

AS подзапрос [WITH CHECK OPTIONS]

Создать представление.

DROP VIEW ИмяПредставления

Удалить представление.

CREATE VIEW Назначение (ФИО, Должность)

AS SELECT ФИО, Должность, КодДолжности

FROM Сотрудник UNION Должность.

Привилегии

GRANT привелегии ON объект TO пользователь

REVOKE привелегии ON объект TO пользователь

Установить/снять привелегии.

У правление параллельным доступом.

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

Изолированность - это создание иллюзии, что каждый пользователь работает с БД самостоятельно.

3 уровня изолированности:

  1. Отсутствие потерянных изменений

Транзакция1

Транзакция2

READ A

A=A+1

WRITE A

COMMIT

READ A

A=A+1

ROLLBACK

ROLLBACK из второй транзакции откатит и изменения, сделанный первой транзакцией.

До завершения транзакции1 нельзя менять объект, с которым работает транзакция

  1. Отсутствие чтения «грязных» данных

Транзакция1

Транзакция2

READ A

A=A+1

WRITE A

ROLLBACK

. . .

. . .

. . .

READ A

A=A-1

Никакая транзакция не должна читать объект до завершения изменений.

  1. Отсутствие неповторяющихся чтений

Транзакция1

Транзакция2

READ A

A=A+1

WRITE A

READ A

A=A-1

. . .

WRITE A

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

Блокировки.

Блокировка- запрет на доступ к ресурсу. Заблокировать можно поле, кортеж, отношение, группу отношений или всю базу.

LOCK A - заблокировать ресурс А

UNLOCK A - разблокировать ресурс А

Совместимость блокировок.

запись объекта

Чтение объекта

запись части объекта

чтение части объекта

чтение/запись части объекта

запись объекта

нет

Нет

нет

нет

Нет

чтение объекта

нет

Да

нет

да

Нет

запись части объекта

нет

Нет

да

да

Да

чтение части объекта

нет

Да

нет

да

Да

чтение/запись части объекта

нет

Нет

нет

да

Нет