
- •МГТУ им. Баумана Кафедра: «Компьютерные системы и сети» Базы Данных Зо Надежда Санчельевна
- •Основные понятия и условные сокращения
- •Буфер
- •Блок (Block)
- •Узкое место (Bottleneck),
- •Контрольная точка (Checkpoint)
- •SGA (System Global Area)
- •DBWR (DataBase WRiter)
- •Чистый буфер (clean buffer), Грязный буфер (dirty buffer)
- •Параллелизм
- •DDL (Data Definition
- •DML (Data Manipulation
- •Динамические таблицы производительности (Dynamic
- •Функция
- •Процедура
- •Программный блок
- •Запрос
- •Триггер
- •Транзакция
- •Объекты схемы
- •Таблица
- •Кластер
- •Индекс
- •Представление (вид)
- •Хранимая процедура
- •Последовательность (sequence)
- •Конфигурации ORACLE
- •OLTP (Online Transaction
- •Характерные черты OLTP-систем
- •DSS (Decision Support
- •Характерные черты DSS
- •Хранилище данных (Data Warehouse)
- •Характерные черты OLAP-систем
- •Обзор архитектуры ORACLE
- •Физический уровень
- •1. Один или более файлов данных
- •2. Два или более файлов журналирования операций (redo log files)
- •3. Один или более управляющих файлов
- •Логический уровень
- •Табличные пространства и файлы данных
- •Табличные пространства и файлы данных(2)
- •Табличные пространства и файлы данных(3)
- •Табличные пространства и файлы данных(4)
- •Табличные пространства и файлы данных(5)
- •Сегменты, экстенты и блоки данных
- •Сегменты
- •Экстенты
- •Блоки данных
- •Сегменты, экстенты и блоки данных
- •Экземпляр ORACLE
- •Экземпляр ORACLE
- •Системная Глобальная Область (SGA)
- •Кэш буферов БД
- •Буфер журнала изменений
- •Разделяемый пул (shared pool)
- •Библиотечный кэш
- •Кэш словаря данных
- •Кэш словаря данных (2)
- •Программная Глобальная Область
- •Экземпляр ORACLE
- •Процессы Oracle
- •Процессы Oracle
- •DBWR (DataBase WRiter)
- •LGWR (LoG WRiter)
- •CKPT (ChecK PoinT)
- •PMON (Process MONitor)
- •SMON (System MONitor)
- •RECO (RECOvery)
- •ARCH (ARCHiver)
- •LCKn (Parallel Server
- •Dnnn (Dispatcher)
- •Процессы Oracle
- •Процессы Oracle
- •Как работает транзакция
- •Как работает транзакция(2)
- •Как работает транзакция(3)
- •Как работает транзакция(4)
- •Функции СУРБД ORACLE
- •Создание контрольных точек (checkpointing)
- •Создание контрольных точек (checkpointing)(2)
- •Журналирование и архивирование
- •Журналирование и архивирование(2)
- •Производительность ORACLE
- •Производительность
- •Производительность
- •Параллельный сервер ORACLE
- •Репликация данных
- •Репликация данных(2)
- •Репликация данных(3)
- •Применение SQL
- •Выполнение SQL запросов, Выборка данных
- •Отображение данных с помощью выражения Select
- •Отображение данных с помощью выражения Select
- •Использование псевдонимов для столбцов
- •Выборка данных с использование Where
- •Выборка данных с использование Where
- •Применение регулярных выражений (RegExp)
- •Сортировка данных
- •Выборка данных из нескольких таблиц
- •Выборка данных из нескольких таблиц
- •Выборка данных из нескольких таблиц
- •Выборка данных из нескольких таблиц
- •Выборка данных из нескольких таблиц
- •Выборка данных из нескольких таблиц
- •Выборка данных из нескольких таблиц
- •Использование связанных переменных
- •Псевдостолбцы
- •Арифметические
- •Числовые функции
- •Агрегирующие функции
- •Агрегирующие функции
- •Агрегирующие функции
- •Управление данными
- •Вставка
- •Обновление
- •Удаление
- •Выражения для управления транзакциями
- •COMMIT
- •ROLLBACK
- •Создание таблиц
- •Управления столбцами
- •Переименование и удаление таблиц
- •Управление индексами
- •Управление индексами
- •Управление видами
- •Управление
- •Управление синонимами
- •Вложенные SQL запросы
- •Вложенные SQL запросы
- •Вложенные SQL запросы
- •Триггеры
- •Типы триггеров
- •Триггеры
- •Триггеры
- •Триггеры
- •Триггеры с обработкой исключений
- •Триггер, который выполняется только один раз для запроса



Создание таблиц
CREATE TABLE my_birthdays ( first_name VARCHAR2(20), last_name VARCHAR2(25), bday_date DATE );



Управления столбцами
ALTER TABLE personal_info ADD (contact_email VARCHAR2(30) NULL);
ALTER TABLE personal_info MODIFY (contact_email VARCHAR2(40) NOT NULL)
ALTER TABLE personal_info DROP COLUMN contact_address;

Переименование и удаление таблиц
ALTER TABLE my_birthdays RENAME to birthdays
DROP TABLE birthdays;
DROP TABLE personal_info;



Управление индексами
CREATE INDEX emp_hiredate_idx ON employees (hire_date);
ALTER INDEX emp_hiredate_idx RENAME TO emp_hire_date_idx;
DROP INDEX emp_hire_date_idx;



Управление индексами
CREATE INDEX emp_mgr_id_ix ON employees (employee_id, manager_id); DROP INDEX emp_mgr_id_ix;
CREATE INDEX emp_upper_last_name_ix ON employees (UPPER(last_name)); DROP INDEX emp_upper_last_name_ix;
- Ускоряет выполнение запроса, где в выражении WHERE есть UPPER(last_name(



Управление видами
CREATE OR REPLACE VIEW my_emp_view AS SELECT d.department_id, d.department_name, e.employee_id, e.first_name, e.last_name FROM employees e JOIN departments d ON d.manager_id = e.employee_id;
DROP VIEW my_emp_view;

Управление
последовательностями
CREATE SEQUENCE new_employees_seq START WITH 1000 INCREMENT BY 1;
SELECT new_employees_seq.NEXTVAL FROM DUAL;
INSERT INTO employees VALUES (new_employees_seq.CURRVAL, 'Pilar', 'Valdivia', 'pilar.valdivia', '555.111.3333', '01- SEP-05', 'AC_MGR', 9100, .1, 101, 110);
SELECT employee_id, last_name FROM employees WHERE last_name = 'Valdivia';



Управление синонимами
CREATE SYNONYM emps for HR.employees;
SELECT employee_id, last_name FROM emps WHERE employee_id < 105;
DROP SYNONYM emps;



Вложенные SQL запросы
В текст запроса можно добавить ещё один sql-запрос, заключённый в скобки.
SELECT department_id, last_name, salary
FROM employees x
WHERE salary > (SELECT AVG(salary)
FROM employees
WHERE x.department_id = department_id)
ORDER BY department_id;



Вложенные SQL запросы
SELECT last_name, department_id FROM employees WHERE department_id = (SELECT department_id FROM employees WHERE last_name = 'Lorentz') ORDER BY last_name;