- •АвОсновные понятия баз данных. Этапы развития субд. Функции субд. Требования к системам управления базами данных.
- •Архитектура баз данных. Логическая и физическая независимость данных. Схема прохождения запросов к бд.
- •Классификация моделей данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений.
- •Обеспечение целостности данных.
- •Основы реляционной алгебры. Операторы реляционной алгебры.
- •6.1. Основы реляционной алгебры
- •6.2. Операторы реляционной алгебры
- •Понятия полной и транзитивной функциональной зависимости. Нормализация, третья нормальная форма, шаги нормализации.
- •7.1. Понятия полной и транзитивной функциональной зависимости
- •7.2. Нормализация, третья нормальная форма, шаги нормализации
- •Модель «объект-свойство-отношение», er-диаграммы, проектирование схемы баз данных.
- •8.1. Модель «объект-свойство-отношение»
- •8.3. Проектирование схемы баз данных
- •Язык sql, его структура, стандарты, история развития. Подмножество языка dml: операторы select, insert, update, delete.
- •Структура языка sql
- •Вставка множества записей
- •Оператор изменения значений полей update
- •Оператор удаления строк delete
- •Подмножество языка ddl: операторы create, alter, drop. Представления, их значение; обновляемые представления.
- •10.1. Подмножество языка ddl: операторы create, alter, drop Оператор create - создание таблицы.
- •Создание внешнего ключа
- •Оператор drop
- •10.2. Представления, их значение; обновляемые представления
- •Создание и удаление представлений
- •Обновляемые представления
- •Подмножество языка dcl: операторы grant, revoke. Системные привилегии, привилегии на объекты, роли.
- •Объектные и системные привилегии
- •Операторы grant и revoke
- •Транзакции, операторы управления транзакциями: commit, rollback, savepoint; журнал транзакций, уровни блокировок.
- •Операторы управления транзакциями
- •Журналы транзакций
- •Язык pl/sql, его структура, основные операторы.
- •Курсоры, явные и неявные курсоры, операторы работы с курсором, оператор select into.
- •Процедуры, функции, пакеты.
- •Триггеры, их основные свойства и значение.
- •Параллельные архитектуры бд; масштабируемость, надежность, производительность.
- •Распределенные базы данных, фрагментация, тиражирование.
- •Средства защиты данных в субд.
- •Шлюзы к базам данных. Архитектура odbc. Www-интерфейс к бд.
- •Объектная модель данных
- •Объектно-ориентированные, объектно-реляционные бд, универсальные бд
- •Эволюция технологий и возможностей субд oracle (oracle 8i, oracle 9i, oracle 10g).
- •Роль grid-технологий в организации хранения и обработки данных. Перспективы развития технологий баз данных.
Операторы управления транзакциями
Существует три операторы, предназначенные для управления транзакциями:
COMMIT – явная фиксация транзакции;
ROLLBACK – явная отмена изменения в текущей транзакции;
SAVEPOINT – создание контрольной точки внутри транзакции (промежуточная фиксация транзакции с возможность отката к этой точке);
Пример выполнения DML операторов с фиксацией и откатом транзакций:
-- 1. транзакция начинается автоматически после
-- установки соединения с БД
INSERT INTO MANAGERS(Man_Id, Name, Procent)
VALUES(100, ‘Иванов М.А.’, 5);
-- 2. промежуточная фиксация транзакции
SAVEPOINT Insert1ok;
-- 3. выполнение очередной команды DML
UPDATE MANAGERS SET Procent=15 WHERE Man_Id=100;
-- 4. откат транзакции до контрольной точки Insert1ok
ROLLBACK TO Insert1ok;
-- 5. откорректированная команда DML
UPDATE MANAGERS SET Procent=16 WHERE Man_Id=100;
-- 6. фиксация транзакции и начало новой транзакции
COMMIT;
-- 7. очередная команда DML
DELETE FROM MANAGERS;
-- 8. отмена всех изменений в текущей транзакции
-- (возврат БД к состоянию до пункта 6)
ROLLBACK;
Журналы транзакций
Журналы транзакций – это специальные файлы операционной системы, в которые СУБД записывает все изменения или транзакции, произведенные в базе данных. Поскольку все транзакции полностью сохраняются в журналах повтора, при необходимости с помощью этих журналов сервер базы данных всегда способен восстановить свое состояние на заданный момент времени. Каждая база данных обязательно должна иметь как минимум два оперативных журнала транзакций.
Журналы транзакций работают по циклическому принципу. Пусть в некоторой базе данных есть два журнала: logA и logB. По мере того, как транзакции создают, удаляют и модифицируют информацию в базе данных, все изменения заносятся в logA. Когда logA оказывается целиком заполненным, происходит переключение журналов, и все вновь произведенные транзакции начинают записываться в logB. По заполнении lоgВ происходит новое переключение журналов, и транзакции опять сохраняются в lоgA.
Язык pl/sql, его структура, основные операторы.
PL/SQL – "Programming Language for SQL", или "Procedured SQL" – процедурный SQL. Это расширение стандартного языка SQL, предназначенное для создания более сложных бизнес-правил (ограничения, процедуры, функции и триггеры) на стороне сервера ORACLE. Их общая цель – реализация сложной бизнес-логики модульным способом (т.е. компонент за компонентом, причем одни компоненты многократно используются другими). Кроме того, размещение бизнесс-правил на сервере значительно повышает производительность системы за счет того, что в большинстве случаев СУБД не интерпретирует SQL-запросы, а выполняет заранее скомпилированные хранимые процедуры.
Блок PL/SQL состоит из четырех секций:
секция заголовка (header section) - содержит спецификацию процедуры, функции, пакета или триггера, которая включает в себя название блока, а также описание входных и выходных параметров.
секция объявления (declaration section) - предназначена для объявления переменных, констант, курсоров, которые будут использоваться в выполняемой секции процедуры, функции или триггера.
выполняемой секции (execution section) - содержит один или более операторов PL/SQL. Эту секцию еще называют телом процедуры, функции или триггера. Выполняемая секция начинается со слова BEGIN и заканчивается словом EXCEPTION, если есть секция исключений, или словом END.
секция исключений (exception section) - содержит обработчики исключительных ситуаций. Исключительной ситуацией называют такую ситуацию, когда дальнейшее выполнение выполняемой секции не имеет смысла.
Из всех секций обязательной является только одна - выполняемая секция. Простейший блок PL/SQL выглядит следующим образом:
DECLARE s varchar(50); BEGIN s:='Hello!'; dbms_output.put_line(s); END; /
Блоки могут быть вложены друг в друга. Последний, самый "верхний", блок PL/SQL называется базовым и всегда должен заканчивается символом "/", говорящий серверу о том, что можно приступать к компиляции введенной команды.
Блоки бывают:
именованные (имеют секцию заголовка),
анонимные (не имеют),
базовые,
вложенные (для объявления временных переменных и для обработки искл. ситуаций).
Если блок базовый именованный, то он хранится на сервере; если анонимный, то он выполнится сразу. В анонимных блоках и в триггерах для создания секции заголовка указывается ключевое слово DECLARE.
Арифметические операторы
+ - * / ** (степень)
Операторы сравнения
< > != ^= («не равно» все три оператора) > < =