- •12 Правил Кодда:
- •Словарь субд Oracle: состав, назначение, применение.
- •Структура вторичной памяти субд Oracle: табличные пространства, сегменты, экстенты, блоки, структура блока.
- •Архитектура программного обеспечения с точки зрения программиста, объекты разработки, роли разработчиков и их функциональное наполнение.
- •Режимы старта и останова экземпляра Oracle, операторы alter перевода экземпляра Oracle из одного состояния в другое.
- •Понятия субд Oracle: системные привилегии, объектные привилегии, роль, профиль безопасности, пользователь.
- •Табличные пространства: назначение, типы, основные параметры, необходимые привилегии, операторы создания и удаления, представления словаря.
- •Кластер: назначение, типы, основные параметры, необходимые привилегии, операторы создания, модификации и удаления, представления словаря. Оператор создания таблиц с кластеризованными столбцами.
- •Индекс: назначение, типы (b*,bitmap), основные параметры, необходимые привилегии, операторы создания, модификации и удаления, представления словаря.
- •Синоним: назначение, типы, необходимые привилегии, операторы создания и удаления, представления словаря.
- •Представление: назначение, необходимые привилегии, операторы создания, модификации и удаления, представления словаря, опции with check option/read only.
- •Материализованное представление: назначение, необходимые привилегии, операторы создания, модификации и удаления, представления словаря.
- •Временные таблицы: назначение, принцип применения, необходимые привилегии, операторы создания, опции on commit delete rows/ on commit preserve rows.
- •Порядок создания инфраструктуры базы данных Oracle.
- •Pl/sql: исключения, встроенные исключения и пользовательские исключения, генерация (raise, raise_application_error) и обработка исключений, порядок распространения исключений.
- •Pl/sql:константы, %type, %rowtype, записи (record) и их применение, вложенные записи, присваивание записей.
- •Pl/sql: локальные процедуры и функции, параметры, позиционный и параметрический способ передачи параметров
- •Pl/sql: динамический sql, оператор execute immediate, опции using (входные и выходные параметры), опция returning.
- •Хранимые процедуры и функции: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.
- •Пакеты: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.
- •Триггеры замещения (instead of)
- •Тип xmltype: назначение, создание таблиц с xml-полями, основные функции для работы с xmltype.
- •Большие типы: clob, blob, bfile, назначение, создание и применение.
- •Табличные и поточные функции
- •Расписание (Schedule)
- •Программа (Program)
- •Секцинирвание
- •Диапазонное секционирование
- •Интервальное секционирование
- •Списочное секционирование
- •Композитное секционирование
- •Эквисекционирование
- •Секционирование по ссылке
- •Секционирование по виртуальному столбцу
- •Системное секционирование
Основные понятия: база данных, система управления базами данных, экземпляр базы данных, архитектура клиент/сервер СУБД, архитектура СУБД ANSI-SPARC, СУБД и модель OSI/ISO, 12 правил Кодда, компоненты СУБД, основные функции поддерживаемые современными СУБД, классификация СУБД, основные тенденции технологий СУБД, наиболее распространенные СУБД.
База данных – организованная в соответствии с определенными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области.
Система управления базами данных (СУБД, DBMS) – совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
Экземпляр (instance) менеджера СУБД - логическая среда, которая характеризуется своими ресурсами и параметрами.
архитектура СУБД ANSI-SPARC
СУБД и модель OSI/ISO
СУБД, имеющие архитектуру клиент сервер, как правило, состоят из двух частей:
клиент (набор интерфейсных модуле и утилит);
сервер (ядро, языковый процессор, подсистема поддержки времени исполнения).
12 Правил Кодда:
Реляционная СУДБ должна полностью управлять базой данных через ее реляционные возможности;
Информационное правило (явное представление данных): вся информация в базе данных должна быть организована как значения в таблицах (таблица атомарных ячеек, нет порядка строк);
Гарантированный доступ к данным: все данные должны быть доступны по имени таблицы, первичному ключу и имени столбца;
Поддержка пустых значений: наличие значения NULL;
Поддержка реляционного каталога (словаря данных): доступ к словарю данных должен обеспечиваться в терминах реляционной модели (можно получить информацию о данных также как и сами данные);
Исчерпывающий язык управления данными (полнота языка управления): СУБД должна поддерживать реляционный язык полное управление данными (создание, модификацию, манипулирование, описание структур данных и правил целостности, авторизацию, транзакции и ...);
Правило обновлений представлений (возможность модификации представлений): для любого представление должны поддерживаться все операции DML;
Наличие высокоуровневых операций манипулирования данными: Insert, Delete, Update можно выполнять для любого множества строк;
Физическая независимость данных: приложения не зависят от физического расположения данных и от аппаратного обеспечения компьютеров;
Логическая независимость данных: представление данных в приложении не должно зависеть от структуры реляционных таблиц, изменение логической структуры базы данных не должно сказываться на приложении;
Независимость контроля целостности: вся информация для поддержания целостности должна находится в словаре, язык для работы с данными должен автоматически выполнять проверку данных;
Дистрибутивная независимость является база данных распределенной или централизованной не должно влиять на приложение, перемещение базы данных не должно сказываться на приложении;
Неподрывность (согласованность языковых уровней): невозможность обойти правила целостности, если для доступа к данным используется низкоуровневый язык, то он не должен игнорировать правила безопасности и целостности.
Компоненты:
ядро (управление внешней и оперативной памятью, журнализация);
процессор (компилятор или интерпретатор) языка базы данных (обычно вместе с оптимизатором);
подсистема поддержки времени исполнения (исполнение откомпилированных операторов языка базы данных);
сервисные утилиты.
Основные функции современных СУБД:
Данные
Управление данными
Языковая поддержка
Средства безопасности
Средства программирования
Режимы работы
Утилиты СУБД
Классификация СУБД:
по поддерживаемой модели;
по степени распределенности (централизованные, распределенные);
по способу доступа (файл-серверные:Microsoft Access, Clipper, dBase, клиент-серверные: Oracle, MS SQL Server, IBM DB2, встраиваемые: SQLite, BerkeleyDB);
по технологии физического хранения (во вторичной памяти, в оперативной памяти, в третичной памяти).
Тенденции:
Повсеместность структурированных и не структурированных данных
Расширяющиеся требования разработчиков
Облачные (cloud) технологии
Пересмотр архитектуры серверов баз данных
Декларативное программирование для новых платформ (распараллеливание);
Взаимосвязь структурированных и неструктурированных данных;
Облачные службы данных
Мобильные приложения.
90% данных в мире хранятся в СУБД Oracle, MS SQL Server и IBM DB2;
Дистрибутивы (варианты поставки) СУБД Oracle. Архитектура клиент/сервер. Переменные окружения сервера (реестр) и клиента. Основные системные пользователи СУБД, системная роль DBA, специальные системные привилегии (SYSDBA и SYSOPER).
EE, SE (не более 4х процессорных разъемов), SE1 (не более 2х процессорных разъемов), PE (один пользователь), Lite (для мобильных и встраиваемых устройств), XE (бесплатная ограниченная версия).
СУБД, имеющие архитектуру клиент сервер, как правило, состоят из двух частей:
клиент (набор интерфейсных модуле и утилит);
сервер (ядро, языковый процессор, подсистема поддержки времени исполнения).
SYS – генерируемый Oracle (предопределенный) привилегированный пользователь ранга администратора базы данных (АБД), который является владельцем ключевых ресурсов БД Oracle (модули Oracle, таблицы словаря БД, V$-представления словаря, ...).
INTERNAL – специальный привилегированный псевдоним для пользователя SYS, который используется, как правило, для запуска и остановки экземпляра БД Oracle.
SYSTEM - генерируемый Oracle (предопределенный) привилегированный пользователь, которому принадлежат ключевые ресурсы БД Oracle (представления словаря БД, репозиторий инструментов, ...).
SYSMAN - генерируемый Oracle (предопределенный) пользователь, который является владельцем всех ресурсов Enterprise Manager (EM).
DBA – предопределенная роль, которая автоматически создаётся для каждой базы данных Oracle и содержит все системные привилегии, кроме SYSDBA и SYSOPER. Должна назначаться только администраторам, которым требуется полный доступ.
SYSDBA и SYSOPER - специальные привилегии администратора, которые позволяют выполнять базовые задачи администрирования: запуск или остановка экземпляра БД; создание, удаление, открытие или монтирования базы и др. Роль DBA не включает SYSDBA и SYSOPER. Привилегии могут быть указаны при подключении (connect) пользователя к БД.
Архитектура БД под управлением СУБД Oracle: клиент/серверная архитектура, принципы (протоколы) взаимодействия клиента и сервера, абстрактная схема, основные области оперативной памяти, файлы СУБД Oracle, принципы, схема работы с выделенным сервером, схема работы с разделяемыми серверами (многопоточный режим),процессы Oracle (серверные и фоновые), слушатели и диспетчеры, параметры экземпляра Oracle, буферные пулы (DEFAULT, KEEP, RECYCLE).
Клиент-сервер
Взаимодействие клиента и сервера
Абстрактная схема СУБД Oracle
Области оперативной памяти
System Global Area (SGA) – системная глобальная память, состоящая из следующих компонент:
fixed sga – фиксированная часть SGA;
buffer cache – буферный кэш; содержимое кэша регулируется LRU;
log buffer – буферы журналов повтора;
shared pool – разделяемый пул; компоненты разделяемый пула: library cache – библиотечный кэш (откомпилированные SQL-операторы и их планы исполнения, разделяемые курсоры); dictionary cache – словарный кэш (хранение данных словаря БД);
java pool – используется для процедур и функций на Java;
large pool – используется в режиме MTS сервера Oracle.
Program Global Area (PGA) – программная глобальная область: значения переменных для исполняемых SQL-операторов, область сортировки, характеристики обработки курсоров.
Режим работы с выделенным сервером
Три класса процессов экземпляра Oracle
1)серверные процессы (теневые);
2)фоновые процессы;
3)подчиненные процессы.
Серверные процессы Oracle: выполняют запросы клиентов, бывают выделенные и разделяемые. Серверный процесс выполняет следующие операции:
разбирает SQL-запрос клиента;
помещает запрос в разделяемый пул (или находит запрос там);
создает и реализует план запроса;
создает буферный кэш или находит данные в буферном кэше;
Режим многопоточного сервера
Фоновые процессы
ARCn – архивирование журналов;
LGWR – запись журнала;
MMAN – управление памятью (буферный пул, shared, Java, Large);
PMON – монитор процессов(очистка после нештатного прекращения подключения, перезапуск всех процессов, устанавливает связь с Listener);
Подчиненные процессы: процессы ввода-вывода (имитация асинхронных устройств) распараллеливание запросов к базе данных.
BUFFER_POOL (тип буферного пула): значения KEEP (объект по возможности навсегда останется в оперативной памяти), RECYCLE (объект удаляется сразу, как только становится не нужным), DEFAULT (повторное применение буферов по алгоритму LRU); применение KEEP и RECYCLE требует специальной DBA-настройки.