Тема Архитектура Oracle

Вид материалаКраткое содержание

Содержание


Таблицы и индексы
Экземпляр базы данных
Подобный материал:
Программа дисциплины

"Корпоративные базы данных"





Краткое содержание лекций

Тема 1. Архитектура Oracle

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


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

Вся информация базы данных Oracle, как пользовательская, так и служебная располагается в табличных пространствах (tablespace). Каждое табличное пространство представляет из себя один или несколько файлов данных. Файл данных является обычным файлом операционной системы, который может быть создан SQL-оператором CREATE TABLESPACE. Информация обо всех файлах данных, составляющих физическое пространство базы данных, хранится в виде словаря данных DBA_DATA_FILES, а обо всех табличных пространствах в виде словаря данных DBA_TABLESPACES.

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

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

При создании объекта в соответствии с параметрами команды CREATE ему выделяется некоторое пространство - сегмент. При увеличении объекта размер сегмента может увеличиваться на заданный размер расширения сегмента, называемый экстентом (extents). Каждый сегмент может состоять из одного или из нескольких экстентов.

Табличное пространство может содержать любые из следующих сегментов:
  • сегменты данных (data segments);
  • сегменты индексов (index segments);
  • сегменты отката (rollback segments);
  • временные сегменты (temporary segments).

Служебные таблицы, журналы и сегменты


База данных Oracle хранит информацию различных видов:
  • таблицы и индексы пользователей;
  • кластеры таблиц;
  • словарь данных, содержащий всю служебную информацию;
  • сегменты отката;
  • хэш-кластеры.

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

Oracle также располагает вне базы данных файлы с LOB-объектами типа BFILE.

Сегменты базы данных


Сегменты базы данных являются объектами информационной структуры. В базе данных Oracle имеются следующие сегменты:
  • все созданные пользователем объекты (таблицы и индексы), хранимые в базе данных;
  • сегменты отката;
  • временные сегменты.

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

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

Каждый сегмент отката состоит из экстентов (не менее двух), а экстент из блоков. Одна транзакция может занимать несколько экстентов, но только в пределах одного сегмента отката. Несколько транзакций могут заносить информацию в один экстент, но только в разные блоки.

Таблицы и индексы


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

Каждая таблица состоит из столбцов и строк. Столбец имеет имя и тип.

Для ссылки на строку таблицы можно использовать псевдостолбец ROWID, формируемый Oracle, который содержит уникальный адрес каждой строки. Использование ROWID для поиска или изменения строки является самым быстрым способом доступа к строке.

Кластеры


Кластер это объект схемы, состоящий из одной или нескольких таблиц, которые имеют один или несколько общих столбцов.

Кластеры предоставляют больший контроль за физическим хранением строк в базе данных. Одновременно они уменьшают:
  • время доступа к таблице из кластера;
  • пространство, необходимое для хранения таблицы.

Столбцы, определенные в операторе CREATE CLUSTER составляют ключ кластера. Эти столбцы имеют собственное имя, но по типу и по размеру должны соответствовать столбцам, включенным в кластер из таблиц.

Кластеры могут быть двух типов:
  • индексируемые кластеры (indexed cluster);
  • хэшируемые кластеры (hash cluster).

Словарь данных


В словаре данных (Data Dictionary) хранится вся служебная информация об объектах базы данных Oracle. Большинство видов словаря данных могут быть доступны любому пользователю с полномочиями CREATE_SESSION. Виды, чье название начинается с префикса DBA_ , доступны только для пользователей с полномочиями SELECT_ANY_TABLE. Первоначально при инсталляции базы данных такие полномочия назначаются роли DBA.

Параметры инициализации


Администратор базы данных может устанавливать параметры инициализации для достижения более оптимального режима работы сервера Oracle для каждого локального компьютера. Эти параметры хранятся в текстовом файле init.ora на локальном компьютере (администратор может изменить имя этого файла) в каталоге $ORACLE_HOME/database. Для каждого параметра инициализации указывается его название и его значение в кодировке, использующей набор символов по умолчанию для локального компьютера.

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


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

Схема (schema) - это набор объектов различной логической структуры данных. Каждая схема принадлежит пользователю базы данных и имеет одинаковое с ним имя. Каждый пользователь владеет одной схемой: для каждого пользователя создается своя учетная запись, представляющая собой схему БД. По умолчанию при создании любой базы данных Oracle создаются учетные записи SYS и SYSTEM.

Схема SYS является владельцем всех внутренних таблиц базы данных, всех представлений v$ и представлений словаря данных.

Схема может содержать следующие объекты:
  • кластеры;
  • линки базы данных, иногда называемые связями базы данных;
  • триггеры базы данных;
  • библиотеки внешних процедур;
  • индексные таблицы (art-only tables);
  • индексы;
  • пакеты;
  • последовательности;
  • хранимые функции;
  • хранимые процедуры;
  • синонимы;
  • таблицы;
  • представления;
  • снимки;
  • журналы репликаций;
  • объектные таблицы;
  • объектные типы.

Объекты схемы могут состоять из других объектов, называемых подобъектами схемы. К ним относятся столбцы таблиц и видов, разбиения таблиц и видов (partitions), ограничения целостности таблиц, пакетные процедуры и функции и другие элементы, хранимые в пакетах.

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

Журналы транзакций


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

После завершения каждой следующей транзакции все измененные блоки данных из буфера журнала транзакций, располагаемого в SGA-области, заносятся в оперативные журналы транзакций, располагаемые в памяти сервера. Число оперативных журналов транзакций не может быть меньше двух.

Экземпляр базы данных


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

Тема 2. Архитектура Microsoft SQL Server

Физическая архитектура базы данных


Экземпляр Microsoft SQL Server включает в себя системные базы данных (master.model, msdb, tempdb), содержащие служебную информацию, и пользовательские базы данных. Каждая база данных размещается в отдельных файлах – минимум двух: один для самой базы данных – файл данных (mdf-файл), и один для журнала транзакций (ldf-файл). Первый файл данных (mdf-файл) является основным и кроме самих данных содержит системную информацию, второй и все последующие файлы данных являются вторичными (ndf-файлами) и содержат непосредственно сами данные.

Страницы и экстенты


Для более эффективного управления страницами они объединяются в экстенты – по 8 страниц в экстенте. Экстенты могут быть двух типов:
  • mixed – страницы, входящие в такой экстент могут принадлежать разным объектам;
  • uniform- экстент содержит станицы, принадлежащие одному объекту.

SQL Server использует в файлах данных следующие типы страниц:
  • Data - станица содержит строки всехданных за исключением данных типа text, ntext, image, nvarchar(max), varchar(max), varbinary(max) и xml-данных;
  • Index - станица содержит информацию о индексах;.
  • Text/Image страница для хранения некоторых LOB-объектов столбцов переменной длины, чей размер строки превышает 8 KB;
  • Global Allocation Map - станица данного типа содержит информацию об используемости экстентов (на одной странице хранятся данные об используемости 64000 экстентов);
  • Shared Global Allocation Map - станица данного типа содержит информацию об используемости экстентов типа Mixed;
  • Page Free Space - страница содержит информацию о количестве свободного пространства на странице;
  • Index Allocation Map - страница содержит данные, какие экстенты имеют страницы, принадлежащие одному объекту-владельцу;
  • Bulk Changed Map - станица содержит информацию об экстентах, измененных посредством набора операций, выполненных после последней операции копирования базы данных (BACKUP LOG);
  • Differential Changed Map - станица содержит информацию об экстентах, измененных с момента последней операции копирования базы данных (BACKUP DATABASE).

Разбиение таблицы


Таблицы и индексы хранятся как наборы страниц. Таблица может быть подразделена на одно или несколько разбиений (partitions), содержащих строки.

Разбиение таблицы определяет пользователь при ее создании.

Таблицы SQL Server 2005 используют для организации их страниц данных в разбиении один из следующих двух методов:
  • Кластерные таблицы (для которых создан кластерный индекс, требующий физического перестроения данных в соответствии со структурой индекса);
  • Кучи (Heaps) – таблицы, не имеющие кластерного индекса.

Схема


В версии Microsoft SQL Server 2005 схемой называется набор элементов (entities) базы данных, формирующий единое пространство имен. В предыдущих версиях Microsoft SQL Server понятие схемы было тесно связано с именем пользователя базы данных: для каждого пользователя предназначалась одноименная схема базы данных. В версии Microsoft SQL Server 2005 пользователь может размещать свои объекты в различных схемах.

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

Несколько пользователей могут владеть одной схемой через членство в роли или группе Windows.

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


Логически данные в базе данных хранятся в виде объектов базы данных. Объекты данных хранятся в схеме базы данных.

SQL Server предоставляет следующие объекты данных:
  • таблицы;
  • представления;
  • сининимы;
  • индексы;
  • хранимые процедуры;
  • триггеры;
  • пользовательские типы данных;
  • функции пользователя;
  • ключи, обеспечивающие ссылочную целостность;
  • ограничения целостности;
  • умолчания
  • правила (используются для обратной совместимости)

К объектам базы данных также относятся схемы, пользователи и роли.

В SQL Server введены новые объекты, используемые Service Broker:
  • типы сообщений (структура сообщения, отправляемого от одного сервиса другому),
  • контракты (соглашения между двумя сервисами),
  • очереди (сообщения, направленные сервису),
  • сервисы (наборы задач, где каждая задача представляется контрактом), сервисные программы.