русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объекты базы данных Oracle.


Дата добавления: 2015-07-09; просмотров: 14355; Нарушение авторских прав


В базе данных Oracle содержатся различные типы объектов. Их можно подразделить на две категории: объекты схемы и объекты, не принадлежащие схеме.

Схема – это набор объектов различной логической структуры данных. Каждая схема принадлежит пользователю базы данных и имеет одинаковое с ним имя. Схема может содержать следующие объекты:

1) таблицы (tables);

2) представления или виды (views);

3) синонимы (synonyms);

4) последовательности (sequence);

5) индексы (indexes);

6) кластеры (clusters);

7) связи с БД (database links);

8) снимки (snapshots);

9) триггеры (triggers).

10) хранимые процедуры и функции (stored procedures and functions);

11) пакеты (packages);

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

Дадим краткое описание объектов, принадлежащих схеме.

Таблицы – представляют собой сегменты базы данных, в которых хранятся собственно данные. Каждая таблица состоит из строк (записей). Каждый столбец таблицы имеет имя и содержит данные одного типа. Информация о таблицах хранится в представлении DBA_TABLES словаря данных.

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

Синонимы – это псевдонимы или альтернативные имена объектов базы данных, которыми может быть таблица, представление, последовательность, процедура, функция, пакет или снимок. При создании синонима задается его имя и имя объекта, на который указывает синоним. Когда сервер Oracle встретит синоним в запросе, он автоматически заменит его названием объекта ссылки. Синонимы часто используются для удобства работы с данными, а также могут использоваться в целях обеспечения безопасности. Информация о синонимах хранится в представлении DBA_SYNONYMS словаря данных.



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

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

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

Связи с БД – это хранимые определения подключений к удаленным базам данных. Они используются при запросах к удаленным таблицам в распределенных базах данных.

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

Триггеры – хранимые процедуры, написанные на языке PL/SQL, которые активизируются и выполняются в следующих случаях:

1) при модификации некоторой таблицы базы данных;

2) при создании, изменении или удалении объектов схемы базы данных.

Триггеры представляют собой удобное средство для обеспечения целостности данных. Информацию о триггерах можно получить через представление DBA_TRIGGERS словаря данных.

Хранимые процедуры и функции представляют собой программы на языке PL/SQL, создаваемые пользователем и хранящиеся в базе данных. Могут запускаться как с помощью интерактивного редактора, так и с помощью других хранимых процедур и функций. Информация о хранимых процедурах и функциях содержится в представлениях DBA_OBJECTS и DBA_SOURCE словаря данных. Там же сохраняется и их исходный код.

Пакеты представляет собой совокупность процедур, переменных и функций, объединенных для выполнения некоторой задачи. Пакеты имеют заголовочную часть и тело. В заголовочной части описываются курсоры, исключительные ситуации, заголовки функций, процедур, переменные. В теле непосредственно реализуются функции и процедуры. Информация о пакетах хранится в представлениях DBA_OBJECTS и DBA_SOURCE словаря данных.

11.3. Словарь данных Oracle.

Словарь данных (Data Dictionary) представляет собой совокупность таблиц и представлений, содержащих всю справочную информацию (он хранит метаданные – данные о данных) обо всех объектах базы данных: таблицах, индексах, представлениях, триггерах, пакетах, процедурах и функциях. Иногда его называют каталогом системы. В словаре данных содержатся определения объектов базы данных, размеры выделенной памяти для каждого объекта схемы, описания фактического физического расположения объектов в памяти, список пользователей с указанием привилегий и ролей, ограничения целостности, значения столбцов по умолчанию и т.д. Все запросы к базе данных обрабатываются с использованием словаря данных. Словарь данных создается системой автоматически одновременно с базой данных, хранится в табличном пространстве SYSTEM и ведется ядром Oracle. Словарь данных доступен только в режиме чтения, причем для разных категорий пользователей доступны разные уровни. Все входящие в словарь таблицы и представления делятся на 4 вида.

1) Внутренние таблицы СУБД (X$-таблицы).

2) Таблицы словаря данных.

3) Представления текущей активности (V$-представления).

4) Представления словаря данных.

Рассмотрим подробнее их назначение.

Внутренние (базовые) таблицы СУБД – это таблицы, которые используются только самой системой Oracle. Они являются ключевым компонентом всей информационной структуры базы данных. Именно к ним обращается СУБД за всей внутренней информацией о текущем состоянии и процессах, происходящих в системе. Таблицы хранят информацию о базе данных в закодированном виде, что затрудняет их использование пользователями.

Таблицы словаря данных содержат информацию обо всех типах объектов, хранящихся в БД. Таблицы словаря данных имеют в конце имени знак доллара. Большую часть информации из них можно найти в представлениях словаря данных.

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

Представления словаряданных предназначены для просмотра информации из словаря данных пользователями. Они формируются на базе X$-таблиц и таблиц словаря данных. Пользователи получают доступ к представлениям словаря данных посредством операторов языка SQL. Большинство представлений словаря данных имеют префиксы USER_, ALL_, DBA_.

Представления с префиксом USER_ содержат информацию обо всех объектах, принадлежащих пользователю.

Представления с префиксом ALL_ содержат информацию обо всех объектах базы данных, к которым может получить доступ пользователь при выполнении запроса.

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

11.4. Архитектура базы данных Oracle.

Термин база данных Oracle используется для обозначения физической и логической структур данных совместно со всей служебной информацией. Чтобы разделить описание логической организации данных от способов их хранения и доступа к ним, в Oracle используется двухуровневая организация базы данных. Объекты верхнего (логического) уровня называются логическими структурами, а объекты нижнего (физического) уровня – физическими структурами базы данных.

Опишем физическую организацию базы данных Oracle. Физически база данных Oracle организована как совокупность файлов, создаваемых обычными средствами операционной системы. Таким образом, основой физического уровня является файл.

Все компоненты физического уровня базы данных можно разделить на две большие группы – системные объекты, используемые внутри системы и необходимые СУБД для выполнения ее функций, и объекты пользователя. Системные файлы создаются и настраиваются администратором базы данных и не могут быть доступны пользователю в явном виде. В число системных объектов входят:

1) файл параметров инициализации;

2) управляющий файл;

3) файлы журнала регистрации транзакций;

4) файлы трассировки.

К пользовательским объектам физического уровня базы данных относятся файлы данных.

Файл параметров инициализации Init.оra содержит список параметров и ключей настройки, каждый из которых связан с определенной функцией системы или компонентом базы данных и представляет собой обычный текстовый файл. Этот файл считывается перед запуском базы данных, формировании экземпляра Oracle и считывании управляющих файлов. Значения параметров, которые заданы в Init.оra, определяют характеристики формируемого экземпляра Oracle и создаваемой базы данных. В частности, здесь заданы параметры распределения памяти для разделяемого пула, кэш-буфера данных, буфера журнала транзакций, характеристики автоматически запускаемых фоновых процессов, считываемых управляющих файлов, сегментов отката и т.д.

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

Файлы журнала регистрации транзакций делятся на оперативные и архивные файлы журнала регистрации транзакций. Оперативные файлы журналов регистрации транзакций, используются для записи содержимого буфера журнала транзакций. Эти журналы хранят сведения обо всех транзакциях, которые так или иначе связаны с изменениями содержимого базы данных и при необходимости могут быть использованы для восстановления базы данных. Минимальное количество оперативных файлов журнала регистрации транзакций равняется двум. Запись в них производится поочередно. Файл журнала регистрации транзакций, в который производится запись, называется активным. После заполнения одного файла журнала регистрации транзакций система переключается на следующий файл, а информация первого файла начинает перезаписываться в архивные файлы журнала регистрации транзакций. Архивные файлы транзакций совместно с создаваемой регулярно копией базы данных позволяют полностью восстановить содержание базы, если произойдет искажение или потеря информации базы данных. В целях обеспечения бесперебойной работы системы создаются группы (как минимум две группы) оперативных файлов журнала регистрации транзакций, где каждая группа состоит из множества одинаковых элементов. Как только группа становится активной, очередная запись в журнале производится параллельно во все элементы группы.

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

Файлы данных предназначены для хранения как служебной, так и пользовательской информации. К служебной информации относятся словарь данных и другие служебные таблицы и представления, к пользовательской – объекты, созданные пользователем. Файл данных является обычным двоичным файлом операционной системы. Файлы данных формируются при создании или модификации табличных пространств, являющихся объектами логической структуры базы данных Oracle. При первоначальном создании файлы данных разбиваются сервером на блоки Oracle. Информация обо всех файлах данных, составляющих физическое пространство базы данных, хранится в представлении словаря данных DBA_DATA_FILES.

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

В каждом блоке Oracle предусмотрено место для заголовка, будущих обновлений данных блока и реально существующих строк данных. Заголовок содержит информацию о том, какому сегменту данных (какой таблице, индексу и т.д.) принадлежат строки, хранящиеся в блоке, о максимальном числе транзакций, которые могут быть одновременно адресованы к данным блока. Строки данных, помещенные в блок, нумеруются. Некоторая часть блока остается свободной. Размер свободной части блока регулируется параметром PCTFREE, используемым при создании таблицы, задающим размер свободной части блока в процентах. Это свободное пространство резервируется для возможного увеличения объема строк данных, хранящихся в блоке, в результате модификации.

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

Информационная часть блока содержит строки данных. При помещении очередной строки в блок для нее формируется внутренняя информационная структура Oracle – ROWID, представляющая собой физический адрес размещения строки. Этот адрес остается неизменным до удаления строки или реорганизации сегмента и имеет формат: BBBBBBBB.RRRR.FFFF, где:

BBBBBBBB – шестнадцатеричный номер блока в файле данных, в котором находится строка;

RRRR – шестнадцатеричный номер строки в блоке;

FFFF – шестнадцатеричный номер файла, содержащего блок.

Логическая структурабазы данных Oracle состоит из пользовательских компонент. Форма и назначение объектов логической структуры имеют смысл только в контексте сервера Oracle. К ним относятся табличные пространства (tablespace), сегменты (segments) и экстенты (extents).

Табличное пространство – это логический объект, который используется для группировки данных с целью организации более четкой структуры базы данных. В одно табличное пространство пользователь базы данных может поместить логические объекты, близко связанные между собой. Например, все таблицы, используемые одним и тем же приложением, могут быть объединены в одно табличное пространство. Физически табличное пространство реализовано совокупностью одного или нескольких файлов данных. Каждый файл данных размещен в одном табличном пространстве и хранит текущие данные этого пространства. Файлы данных табличного пространства создаются одновременно с созданием табличного пространства. При создании базы данных по умолчанию создается табличное пространство SYSTEM, содержащее файлы словаря данных и других служебных таблиц и представлений. Имена табличных пространств, за исключением SYSTEM, могут выбираться произвольно. Табличные пространства могут быть добавлены, удалены из базы данных. Кроме этого, добавляемые табличные пространства могут переводиться в автономное состояние (состояние блокировки) или в оперативное состояние (доступны для работы). Табличное пространство SYSTEM не может быть ни удалено, ни переведено в автономное состояние. При формировании объекта базы данных нужно указывать табличное пространство, которому оно будет принадлежать. После этого данные (которые, собственно, и образуют объект) будут храниться в файлах данных, принадлежащих указанному табличному пространству. Поэтому строки одной таблицы, например, могут храниться в нескольких файлах данных. Информация обо всех табличных пространствах базы данных и их статусе храниться в представлении словаря базы данных DBA_TABLESPACES.

Сегмент – это общее название для объектов информационной структуры, которые хранятся в базе данных, то есть занимают место в файлах базы данных. Сегмент использует определенное число блоков Oracle, которые находятся в одном табличном пространстве, но могут принадлежать различным файлам. Объединение сегментов образует табличное пространство. Существует четыре типа таких объектов.

1) Сегменты данных (data segments).

2) Сегменты индексов (index segments).

3) Сегменты отката (rollback segments).

4) Временные сегменты (temporary segments).

Сегменты отката и временные сегменты создаются, как правило, системой. Сегменты данных и сегменты индексов – это объекты пользователя. Следует отметить, что многие объекты схемы имеют сегменты, располагаемые в табличных пространствах. Однако в базе данных есть ряд объектов пользователя, которые нельзя квалифицировать как сегменты. Это представления, последовательности, синонимы, связи, триггеры, хранимые функции и процедуры и пакеты. Информация о них хранится в словаре данных, но в базе данных они места не занимают.

При создании объекта ему в указанном табличном пространстве выделяется некоторое пространство – сегмент. Задавая имя табличного пространства, следует учесть объем имеющегося свободного места в табличном пространстве и возможность автоматического расширения файлов данных, составляющих табличное пространство. При увеличении объекта размер сегмента может увеличиться на заданный размер расширения сегмента, называемый экстентом.

Экстенты – это объекты информационной структуры хранения данных. Каждый сегмент базы данных состоит из одного или нескольких экстентов. Внешняя память для объекта базы данных выделяется порциями из определенного числа блоков. В файлах базы данных эти блоки должны быть смежными. Группа смежных блоков называется экстентом. Следует отметить, что память для объектов выделяется экстентами, которые могут находиться на разных дисках. После выделения экстента объекту, эти блоки не могут быть использованы другими объектами базы данных. При создании объекта система Oracle автоматически распределяет в соответствующий сегмент начальный экстент для данного объекта. Если начальный сегмент полностью заполняется данными во время работы с объектом, то Oracle автоматически выделяет дополнительные экстенты для этого объекта. При удалении информации экстенты освобождаются, но они остаются связанными с объектом (за исключением экстентов сегмента отката и временного сегмента) до тех пор, пока не будет выполнена операция удаления объекта. Например, если удалить все строки таблицы, то распределенные ей блоки все равно остаются закрепленными за этой таблицей. Таблицу нужно удалить (оператор DROP) или усечь (оператор TRUNCATE), чтобы освободить внешнюю память, выделенную таблице. Удаление объектов может привести к фрагментации. В системе Oracle устранением фрагментации занимается системный монитор SMON.

Кратко опишем назначение перечисленных типов сегментов.

Сегменты данных предназначены для хранения обычных таблиц и кластеризованных таблиц, следовательно, содержат строки таблиц данных. Экстенты для таблицы могут быть выделены из различных файлов, но эти файлы должны обязательно принадлежать одному табличному пространству. Одной таблице соответствует один сегмент.

Сегменты индексов служат для хранения индексов – это специальные таблицы, которые содержат информацию из ключевого столбца таблицы и идентификатор номера строки – ROWID.

Сегменты отката – это объекты информационной структуры базы данных. Они строятся системой и используются при выполнении транзакций. При модификации данных транзакцией их предыдущее состояние копируется в сегмент отката, а изменения выполняются в блоках, сохраняемых в кэш-буфере данных. Если другой запрос пользователя затребует эти данные, то они извлекаются из сегмента отката. Когда же результаты модификации считаются окончательно принятыми, соответствующий сегмент отката помечается как недействительный. Если транзакция завершается неуспешно, то информация из сегмента отката помещается назад в базу данных, и исходное состояние базы данных восстанавливается. Сегменту отката необходимо как минимум два экстента. Первый сегмент отката создается автоматически при создании базы данных, имеет имя SYSTEM и размещается в табличном пространстве SYSTEM. Сегменты отката также используются для восстановления базы данных после сбоев оборудования или отмены действий операторов модификации данных.

Временные сегменты создаются системой и используют пространство в файлах базы данных, чтобы создать временную рабочую область для промежуточных стадий обработки запроса, записанного на языке SQL, и для больших операций сортировки. Следующие операции могут приводить к созданию временных сегментов:

1) создание индекса;

2) использование фраз ORDER BY, DISTINCT или GROUP BY в операторе SELECT;

3) использование операторов работы с множествами UNION, INTERSECT, MINUS;

4) создание соединений таблиц;

5) использование некоторых типов подзапросов.

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



<== предыдущая лекция | следующая лекция ==>
Характеристика СУБД Oracle. | Архитектура экземпляра базы данных Oracle.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.328 сек.