MyTetra Share
Делитесь знаниями!
1 Основные понятия
Время создания: 14.05.2017 20:04
Раздел: Oracle Admin - Oracloid
Запись: xintrea/mytetra_db_mcold/master/base/1494781498ewsxojh377/text.html на raw.githubusercontent.com

Прежде, чем мы начнем изучение Oracle, необходимо, чтобы всем были ясны термины, которые будут встречаться в тексте. В каждом выпуске рассылки будет раздел "Основные понятия", чтобы читатели не тратили свое время на поиск определений незнакомых слов.

БД (DB) - База Данных. Совокупность данных, специально организованных для упрощения их извлечения. База данных - это действительные данные.

СУБД (DBMS) - Система Управления Базами Данных. Программное обеспечение Oracle - это СУБД.

СУРБД (RDBMS) - Система Управления Реляционными Базами Данных. Внутренний доступ к данным осуществляется реляционным способом. Oracle - это СУРБД.

Буфер - это некоторый объем оперативной памяти, используемый для хранения данных. Буфер содержит данные, которые предполагается использовать, или которые использовались совсем недавно. В большинстве случаев, буфер - это копия блока данных, который хранятся на жестком диске. Данные в буфере могут быть изменены и записаны на диск, буфер может быть создан и для временного хранения данных. Применительно к Oracle - буферы содержат те блоки данных, к которым недавно обращались. Совокупность буферов составляет кэш буферов данных (database buffer cache). Также в буфере сохраняются временные записи журнала операций, которые затем записываются на диск (буфер журнала операций).

Кэш - область памяти для быстрого доступа к данным. С точки зрения аппаратного обеспечения - это небольшой (применительно к оперативной памяти) объем памяти, который значительно быстрее основной памяти. Этот объем памяти используется для снижения времени, необходимого на частую загрузку данных или инструкций в центральный процессор (ЦП). ЦП сам по себе содержит встроенный кэш. В Oracle кэшем считается набор буферов (block buffers - т.е. блоки данных в оперативной памяти) и разделяемый пул (shared pool), поскольку они служат для хранения данных и инструкций, способствующих быстрому доступу. Кэширование - очень полезный механизм, значительно увеличивающий скорость доступа к данным. Так как обычно не удается уместить все буферы в оперативной памяти, то применяют специальные алгоритмы (самый распространенный - это хранение наиболее часто используемых блоков).

Блок (Block) - самая маленькая единица хранения данных в СУБД Oracle. Содержит заголовочную информацию и сам блок (данные или PL/SQL-код). Размер блока конфигурируется от 2 до 16Kb.

Узкое место (Bottleneck) - компоненты, ограничивающие производительность или эффективность системы.

Словарь данных (Data Dictionary) - набор таблиц, используемых для поддержания информации о БД.

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

Схема (Schema) - коллекция объектов БД.

SGA (System Global Area) - разделяемая область памяти, используемая для хранения данных и управляющей информации экземпляра Oracle. SGA размещается в памяти при запуске экземпляра Oracle, и освобождается при завершении работы. SGA составляют буферы данных, буфер журнала изменений и разделяемый пул (shared pool). Это одно из самых важных понятий и мы рассмотрим его более подробно позднее.

Конфигурации ORACLE

Существует много видов конфигураций. Давайте рассмотрим основные из них, проанализируем и определим характеристики.

OLTP (Online Transaction Processing) - оперативная обработка транзакций. Это самая распространенная конфигурация. OLTP-система состоит из пользователей, которые взаимодействуют с системой. Эти системы обычно используются для оперативного ввода первичной информации (заполнение контрактов, проверка номеров кредитных карт, асинхронные транзакции и др.).
Характерные черты OLTP-систем: обычно поддерживает большое число пользователей, работающих с СУРБД. Так как пользователи ждут возвращения данных на запросы, то большое значение имеет время ответа. OLTP-системы сопряжены с интенсивными процессами чтения-записи. В зависимости от приложения рейтинг чтения-записи может варьироваться.

DSS (Decision Support System) - системы поддержки принятия решений, используются в процессах принятия решений. Эти решения могут быть основаны на такой информации, как интенсивность продаж в определенных регионах, выборка покупателей определенного продукта, сортированный список электронных адресов и др.
Характерные черты DSS: долго выполняющиеся запросы в противовес большим объемам данных. Пользователи DSS-систем вынуждены ждать ответа на запрос минуты, часы, а иногда и несколько дней. Данные обычно собираются из разных источников, а затем происходит их обработка. DSS-система сопряжена с интенсивным процессом чтения (процессы записи
происходят гораздо реже).

Хранилище данных (Data Warehouse) - это крупномасштабная система, которая состоит как из OLTP, так и из DSS. Эти системы, как правило, работают с сотнями гигабайт данных и обслуживают огромное количество пользователей.
Характерные черты хранилища данных: имеет некоторые атрибуты DSS-систем, т.е. долго выполняющиеся запросы, а также компоненты для работы в реальном времени. Эти компоненты часто используются в качестве источников данных для DSS-запросов.

Информационная лавка (Data Mart) - это уменьшенная версия хранилища данных (ориентирована на решение узкоспециализированных задач), при этом сохраняет многие особенности Data Warehouse.
Характерные черты информационной лавки: обычно 100 гигабайт данных или менее. Так же, как и хранилище данных поддерживает большое количество пользователей и позволяет генерировать сложные решения.

Видео-сервер: позволяет поддерживать большое количество видеопотоков. Эти видеопотоки могут использоваться по заказу, в качестве развлечения и как обучающие курсы.
Характерные черты видео-сервера: должен иметь широкую полосу пропускания, чтобы поддерживать несколько видеопотоков. Также, должен быть способен справляться с большой нагрузкой ввода/вывода. При чтении с устройств, загружаются сразу большие блоки данных, которые мало фрагментированы.

Веб-сервер: предназначен для работы со статическими и динамическими веб-страницами. Эти страницы могут быть как очень простыми, так и комплексными, генерируемыми из базы данных. Веб-сервер Oracle, как правило, используется для коммерческих веб-приложений. Такие
приложения позволяют покупателям просматривать каталоги, которые содержат изображения товаров и даже видео иллюстрации. Покупатель может приобрести понравившийся товар.
Характерные черты веб-сервера Oracle: обычно поддерживает значительное число пользователей, содержит большое число данных, к которым обращаются часто, и, в то же время, данные, к которым обращаются не очень часто. Производительность сервера может улучшить большое количество оперативной памяти.

OLAP(Online Analytical Processing) - аналитическая обработка в реальном времени. Обычно используется вместе с многомерными данными. OLAP-пользователи - это финансовые аналитики или маркетинговый персонал, работающий с данными на глобальном уровне.
Характерные черты OLAP-систем: требуют большого объема дисковой памяти и мощных вычислительных систем. OLAP-система может поддерживать лишь небольшое количество пользователей. Однако число пользователей зависит от конкретной конфигурации.

DBWR (DataBase WRiter) - фоновый процесс, основная задача которого записывать изменения базы данных на физический жесткий диск.

Чистый буфер (clean buffer) - это такой буфер, содержимое которого не было подвержено изменению. Так как этот буфер не изменился, то процессу DBWR нет необходимости записывать его на жесткий диск.

Грязный буфер (dirty buffer) - буфер, содержимое которого изменилось. DBWR периодически сбрасывает грязные буферы на жесткий диск.

Параллелизм (concurrency) - способность выполнять несколько функций одновременно. Применительно к Oracle, параллелизм - это возможность одновременного доступа к данным для множества пользователей.

DDL (Data Definition Language) - язык описания данных. Команды этого языка предназначены для создания, изменения и удаления объектов схемы. Также для предоставления привилегий и назначения ролей, установки опций аудита и добавления комментариев в словарь данных. Эти команды связаны с менеджментом и администрированием БД Oracle. Перед и после каждой
DDL-команды Oracle обязательно фиксирует все текущие транзакции (чтобы избежать потери информации).

DML (Data Manipulation Language) - язык манипулирования данными. Команды этого языка позволяют строить запросы и оперировать с данными существующих объектов схемы. В отличие от DDL, фиксирование транзакций после каждой команды не производится. Существуют следующие команды DML: DELETE, INSERT, SELECT и UPDATE; EXPLAIN PLAN - команды; и LOCK
TABLE - команды.

Динамические таблицы производительности (Dynamic Performance Tables) - эти таблицы создаются при запуске экземпляра Oracle и используются для хранения характеристик этого экземпляра. Эти характеристики включают в себя информацию о соединениях, вводе/выводе, первоначальные значения параметров среды и др.

Функция - это совокупность SQL или PL/SQL-команд, которая реализует определенную задачу. Функция отличается от процедуры тем, что возвращает какое-либо значение (процедура ничего не возвращает). Выполняя SQL-код посредством функций, Вы уменьшаете число инструкций,
передаваемых по сети.

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

Программный блок - относительно СУБД Oracle - это программа, используемая для описания пакета, хранимой процедуры или последовательности.

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

Сегодняшний выпуск рассылки в последний раз включает объемный блок основных понятий и условных сокращений. Все самое необходимое мы умудрились охватить за три выпуска!!! Не поленитесь, перечитайте этот раздел два-три раза, просмотрите его в предыдущих выпусках. Это действительно очень важно. Это основы. Если я что-то объяснил невнятно или неуклюже - пишите, я всегда рад вашим комментариям.

Ad-Hoc запрос - в переводе с латинского означает "экспромтом", простой запрос. Этот термин часто используется в англоязычной литературе. Кроме того, в установленной СУБД Oracle Вы можете обнаружить каталог ADHOC. Угадайте, что в него можно запихнуть? ;-)

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

Транзакция - логически-завершенный фрагмент последовательности действий (одна или более SQL-команд, завершенных фиксацией или откатом). Производительность системы СУБД часто оценивается числом производимых транзакций в секунду или в минуту.

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

Таблица - основная единица хранения данных БД Oracle. Состоит из имени таблицы, строк и столбцов. Каждый столбец также имеет имя и тип данных. Таблицы хранятся в табличных пространствах, причем, часто, в одном табличном пространстве находятся несколько таблиц.

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

Индекс - структура, которая позволяет извлекать данные быстро и эффективно (точно также как содержание какой-либо книги позволяет найти интересующий раздел). Индекс объявляется для одного или нескольких столбцов. Доступ к таблице происходит по проиндексированному столбцу
(столбцам).

Представление (вид) - это как бы рамка, окно для просмотра данных из одной или более таблиц. Вид не хранит никаких данных, он только представляет их. С видами можно делать те же операции, что и с таблицами (строить запросы, обновлять, удалять), но с некоторыми ограничениями. Представления часто используются, чтобы упростить восприятие пользователем хранящихся в базе данных путем извлечения из таблицы лишь части необходимых данных или набора данных из нескольких таблиц. Кроме того, представления могут использоваться для ограничения доступа пользователей к некоторым данным. Физически представление хранится в БД просто как текст запроса.

Хранимая процедура - это предопределенный SQL-запрос, хранимый в словаре данных. Хранимые процедуры разрабатываются для эффективного выполнения запросов. При использовании хранимых процедур можно уменьшить сетевой трафик СУРБД и, тем самым, увеличить
производительность.

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

Обзор архитектуры ORACLE

Система Управления Реляционными Базами Данных (СУРБД) Oracle предназначена для одновременного доступа к большим объемам хранимой информации. СУРБД складывается из двух составляющих: База Данных (информация) и экземпляр (конкретная реализация системы). База данных состоит из физических файлов, хранящихся в системе, и из логических частей (например, схема БД). Эти файлы могут быть совершенно разными, их мы рассмотрим чуть далее. Экземпляр - это способ доступа к данным, который состоит из процессов и системной памяти.

Примечание: В Oracle8 появилась система объектов. В связи с этим, корпорация Oracle иногда называет свой продукт объектно-ориентированной СУРБД (О-СУРБД). Однако, для ясности, я буду называть ее просто СУРБД.

БД Oracle состоит из двух уровней: физический и логический. Физический уровень включает файлы, которые хранятся на диске, а логический уровень представляет компоненты физического уровня. Рассмотрим эти уровни более подробно.

Физический уровень

Физический уровень включает три категории файлов:

1) один или более файлов данных - В этих файлах хранится информация, имеющаяся в БД. Вы можете иметь как один файл данных, так и сотни таких файлов. Информация из одной таблицы может быть разбросана по нескольким файлам данных (а несколько таблиц могут делить между собой пространство файлов данных). Распределение таблиц по нескольким файлам данных может значительно увеличить производительность системы. Количество файлов данных ограничено параметром MAXDATAFILES.

2) два или более файлов журналирования операций (redo log files) - Файлы журналирования операций содержат информацию, необходимую для процесса восстановления в случае сбоя системы. Файлы журналирования операций (называемые также просто журналом операций) хранят все изменения, которые произошли в БД. С помощью журнала операций восстанавливаются те изменения, которые были произведены, но не зафиксированы перед сбоем системы. Файлы журналирования операций должны быть очень хорошо защищены против аппаратных сбоев (как на программном, так и на аппаратном уровне). Если информация журнала операций будет утеряна, то Вы не сможете
восстановить систему.

3) один или более управляющих файлов - Управляющие файлы содержат информацию, необходимую для запуска экземпляра Oracle (в том числе расположение файлов данных и файлов журналирования операций). Управляющие файлы должны быть хорошо защищены. Oracle предоставляет механизм для хранения нескольких копий управляющих файлов.

Логический уровень

Логический уровень составляют следующие элементы:

1) Одно или несколько табличных пространств;

2) Схема БД, состоящая из таблиц, кластеров, индексов, представлений, хранимых процедур и т.д.

Табличные пространства и файлы данных

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

Используя несколько файлов данных для одного табличного пространства, можно распределить их по разным дискам, увеличив тем самым скорость ввода-вывода и, соответственно,
производительность системы. Таким образом, БД Oracle состоит из табличных пространств, которые, в свою очередь, состоят из файлов данных. А файлы данных могут быть разбросаны по нескольким физическим дискам. Зарисуйте эту схему или четко представьте ее в голове.

В процессе создания БД Oracle автоматически, специально для Вас, строится табличное пространство SYSTEM. Хотя для небольших баз данных может хватить этого табличного пространства, но все же следует создать дополнительные табличные пространства для пользовательских данных. В табличном пространстве SYSTEM хранится словарь данных. Как Вы, наверное, помните, в словаре данных содержится информация о таблицах, индексах, кластерах и т.д.

Сегменты, экстенты и блоки данных

В СУБД Oracle контроль над дисковым пространством происходит с использованием специальных логических структур. Эти структуры следующие:

блоки данных - Это наименьшая единица хранения данных в БД Oracle. Блок БД содержит заголовочную информацию о себе, и данные.

экстенты - Экстент состоит из блоков данных.

сегменты - Сегмент состоит из совокупности экстентов, содержащих определенный вид данных.

Сегменты

БД Oracle использует четыре типа сегментов:

сегмент данных - хранит пользовательские данные.

индексный сегмент - содержит индексы.

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

временный (промежуточный) сегмент - создается в случае, если для выполнения SQL-выражения необходимо дополнительное рабочее пространство. Эти сегменты уничтожаются сразу после выполнения SQL-команд. Промежуточные сегменты используются также в разнообразных операциях с БД, например, при сортировке.

Экстенты

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

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

Блоки данных

Это наименьшие единицы БД Oracle. Они физически хранятся на диске. Блоки данных на большинстве систем 2Кб (2048 байт), но Вы можете изменить этот размер на свое усмотрение для увеличения эффективности работы системы.

Итак, сегодняшний выпуск подошел к концу. Думаю, Вы с нетерпением будете ждать следующего (впрочем, я тоже). Очень рад быть полезным Вам!


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования