Содержание
- 2. Механизмы среды хранения и архитектура СУБД При добавлении записи: поиск свободного места для размещения новой записи
- 3. Структура хранимых данных Единица хранения данных в БД – хранимая запись. Хранимая запись состоит из двух
- 4. Структура хранимых данных Каждой хранимой записи БД система присваивает внутренний идентификатор, называемый (по стандарту CODASYL) ключом
- 5. Управление пространством памяти Для обеспечения естественной структуризации хранимых данных, более эффективного управления ресурсами и/или для технологического
- 6. Управление пространством памяти Способы управления свободным пространством памяти на страницах: ведение списков свободных участков; динамическая реорганизация
- 7. Управление пространством памяти Ведение списков свободных участков. Здесь можно рассмотреть два варианта: Ссылка на первый свободный
- 8. Виды адресации хранимых записей Рассмотрим три вида адресации: прямую, косвенную и относительную. Прямая адресация предусматривает указание
- 9. Пример косвенной адресации Часть адресного пространства страницы выделяется под индекс страницы. Число статей (слотов) в нём
- 10. Основные физические структуры Oracle TABLESPACE SEGMENT EXTENT BLOCK Файлы – это файлы операционной системы, выделенные для
- 11. Формат блока данных Oracle Заголовок (общий и переменный) Заголовок содержит общую информацию блока, такую как адрес
- 12. Основные объекты Oracle Кластер (CLUSTER) – объект, задающий способ совместного хранения данных нескольких таблиц, содержащих информацию,
- 13. Создание таблицы в Oracle CREATE TABLE [имя_схемы.]имя_таблицы ( имя_столбца тип_данных_столбца [ DEFAULT выражение] [CONSTRAINT имя_ограничения_целостности] [ограничение_целостности_столбца
- 14. Параметры распределения памяти в Oracle Размер памяти (для всех объектов, занимающих память) устанавливается с помощью следующих
- 16. Скачать презентацию
Механизмы среды хранения и архитектура СУБД
При добавлении записи:
поиск свободного места
Механизмы среды хранения и архитектура СУБД
При добавлении записи:
поиск свободного места
выделение необходимого объема памяти под запись;
размещение записи в отведенном месте памяти;
формирование связей с другими записями (зависит от модели данных).
При поиске записи:
поиск места размещения записи в пространстве памяти по заданным значениям атрибутов;
выборка записи для обработки в оперативную память (в буфер данных).
При изменении атрибутов записи:
поиск записи и считывание её в ОП;
изменение значений атрибута (атрибутов) записи;
сохранение записи на диск.
При удалении записи:
удаление записи с освобождением памяти (физическое удаление) или без освобождения (логическое удаление);
разрушение связей с другими записями (механизм зависит от модели данных).
Структура хранимых данных
Единица хранения данных в БД – хранимая запись.
Структура хранимых данных
Единица хранения данных в БД – хранимая запись.
Хранимая запись состоит из двух частей:
Служебная часть. Используется для идентификации записи, задания её типа, хранения признака логического удаления, для кодирования значений элементов записи, для установления структурных ассоциаций между записями и проч. Никакие пользовательские программы не имеют доступа к служебной части хранимой записи.
Информационная часть. Содержит значения элементов данных.
Поля хранимой записи могут иметь фиксированную или переменную длину. Хранение полей переменной длины осуществляется одним из двух способов: размещение полей через разделитель или хранение размера значения поля. Наличие полей переменной длины позволяет не хранить незначащие символы и снижает затраты памяти на хранение данных; но при этом увеличивается время на извлечение записи.
Структура хранимых данных
Каждой хранимой записи БД система присваивает внутренний идентификатор,
Структура хранимых данных
Каждой хранимой записи БД система присваивает внутренний идентификатор,
В Oracle используется термин идентификатор строки, RowID.
Значение КБД формируется системой при размещении записи и содержит информацию, позволяющую однозначно определить место размещения записи (преобразовать значение КБД в адрес записи).
Примеры:
1) Формат DBF: 1 таблица – 1 файл, записи фиксированной длины – в качестве КБД выступает последовательный номер записи в файле (относительная адресация).
2) СУБД Oracle – совокупность номера экстента, блока и номера строки в блоке (относительная адресация).
3) Абсолютный адрес в памяти (СУБД Adabas).
Управление пространством памяти
Для обеспечения естественной структуризации хранимых данных, более эффективного управления
Управление пространством памяти
Для обеспечения естественной структуризации хранимых данных, более эффективного управления
Страницы представляются в среде ОС блоками внешней памяти или секторами, доступ к которым осуществляется за одно обращение. Некоторые СУБД позволяют управлять размером страницы (блока) для базы данных.
Управление пространством памяти
Способы управления свободным пространством памяти на страницах:
ведение списков свободных
Управление пространством памяти
Способы управления свободным пространством памяти на страницах:
ведение списков свободных
динамическая реорганизация страниц.
При динамической реорганизации страниц записи БД плотно размещаются вслед за заголовком страницы, а после них расположен свободный участок. Смещение начала свободного участка хранится в заголовке страницы.
Достоинство такого подхода – отсутствие фрагментации. Недостатки:
Адрес записи может быть определён с точностью до адреса страницы, т.к. внутри страницы запись может перемещаться.
Поиск места размещения новой записи может занять много времени. Система будет читать страницы одну за другой до тех пор, пока не найдёт странницу, на которой достаточно места для размещения новой записи.
Ведение инвентарных страниц.
Управление пространством памяти
Ведение списков свободных участков.
Здесь можно рассмотреть два варианта:
Ссылка
Управление пространством памяти
Ведение списков свободных участков.
Здесь можно рассмотреть два варианта:
Ссылка
Списки свободных участков реализуются в виде отдельных структур. Эти структуры также хранятся на отдельных инвентарных страницах. Каждая инвентарная страница относится к области (или группе страниц) памяти и содержит информацию о свободных участках в этой области. Список ведётся как стек, очередь или упорядоченный список. В последнем случае упорядочение осуществляется по размеру свободного участка, что позволяет при размещении новой записи выбирать для неё наиболее подходящий по размеру участок.
Достоинства и недостатки.
Виды адресации хранимых записей
Рассмотрим три вида адресации: прямую, косвенную и относительную.
Прямая
Виды адресации хранимых записей
Рассмотрим три вида адресации: прямую, косвенную и относительную.
Прямая
Косвенная адресация. В качестве КБД выступает не сам "адрес записи", а адрес места хранения "адреса записи".
Относительная адресация. Общий принцип относительной адресации заключается в том, что адрес отсчитывается от начала той области памяти, которую занимают данные объекта БД. Если память разбита на страницы (блоки), то адресом может выступать номер страницы (блока) и номер записи на странице (или смещение от начала страницы). В случае относительной адресации перемещение записи приведёт к изменению КБД и необходимости корректировки индексов, если они есть.
Пример косвенной адресации
Часть адресного пространства страницы выделяется под индекс страницы. Число
Пример косвенной адресации
Часть адресного пространства страницы выделяется под индекс страницы. Число
Основные физические структуры Oracle
TABLESPACE
SEGMENT
EXTENT
BLOCK
Файлы – это файлы операционной системы, выделенные для
Основные физические структуры Oracle
TABLESPACE
SEGMENT
EXTENT
BLOCK
Файлы – это файлы операционной системы, выделенные для
Табличная область (TABLESPACE, табличное пространство) – область памяти, предназначенная для хранения всех объектов БД. Табличная область имеет имя и занимает один или более файлов операционной системы. Создается командой CREATE TABLESPACE.
Сегмент (SEGMENT) – область памяти, занимаемая данными одного объекта БД. Имя совпадает с именем объекта.
Экстент (EXTENT) – непрерывная область памяти, относящаяся к одному сегменту.
Блок (BLOCK) – область памяти, которая считывается и записывается на диск за одно физическое чтение.
db_block_size – размер блока
Формат блока данных Oracle
Заголовок (общий и переменный)
Заголовок содержит общую информацию
Формат блока данных Oracle
Заголовок (общий и переменный)
Заголовок содержит общую информацию
Оглавление таблиц
Часть блока, составляющая оглавление таблиц, содержит информацию о том, какие таблицы имеют строки в этом блоке.
Оглавление строк
Эта часть блока содержит информацию о действительных строках в блоке (включая адреса каждой порции строки в области данных строк).
После того, как в оглавлении строк распределено пространство, это пространство не освобождается при удалении строки. Это пространство используется повторно лишь тогда, когда в блок вставляются новые строки.
Данные строк
Эта порция блока содержит данные таблицы или индекса.
Свободное пространство
Свободное пространство в блоке используется для вставки новых строк и для обновлений строк, требующих дополнительного пространства.
Основные объекты Oracle
Кластер (CLUSTER) – объект, задающий способ совместного хранения
Основные объекты Oracle
Кластер (CLUSTER) – объект, задающий способ совместного хранения
Таблица (TABLE) является базовой структурой реляционной модели. Таблица может быть пустой или состоять из одной или более строк значений атрибутов.. Создается командой CREATE TABLE, может быть создана в кластере.
Индекс (INDEX) – это объект базы данных, создаваемый для повышения производительности выборки данных. Индекс создается для столбца (столбцов) таблицы и обеспечивает более быстрый доступ к данным этой таблицы за счет упорядочения данных столбца (столбцов) по значению. Создается командой CREATE INDEX.
Кластер
Таблица
Индекс
Кластеры, таблицы и индексы называются объектами, занимающими память, т.к. в них хранятся фактографические данные.
Создание таблицы в Oracle
CREATE TABLE [имя_схемы.]имя_таблицы
( имя_столбца тип_данных_столбца [ DEFAULT выражение]
Создание таблицы в Oracle
CREATE TABLE [имя_схемы.]имя_таблицы
( имя_столбца тип_данных_столбца [ DEFAULT выражение]
имя_ограничения_целостности] [ограничение_целостности_столбца ...]} ,...)
[ ORGANIZATION INDEX ]
[{ CLUSTER имя_кластера ( имя_столбца [, ...]) |
{PCTFREE целое | PCTUSED целое | INITRANS целое | MAXTRANS целое |
TABLESPACE имя_табличной_области | STORAGE размер_памяти |
{ RECOVERABLE | UNRECOVERABLE }} ...]
[PARALLEL возможностъ_параллельной_обработки ]
[{ENABLE проверяемые_ограничения_целостности |
DISABLE игнорируемые_ограничения_целостности }...]
[AS запрос] [CACHE | NOCACHE];
UNRECOVERABLE (без заполнения журнала) не может быть указано без AS SELECT.
Нельзя указать UNRECOVERABLE для кластера или кластеризованной таблицы.
Параметры распределения памяти в Oracle
Размер памяти (для всех объектов, занимающих память)
Параметры распределения памяти в Oracle
Размер памяти (для всех объектов, занимающих память)
STORAGE (INITIAL целое_число{К | М} NEXT целое_число{К | М}
PCTINCREASE целое_число
MINEXTENTS целое_число MAXEXTENTS целое_число
FREELISTS целое_число FREELIST GROUPS целое_число)
где:
INITIAL – размер начального экстента,
NEXT – количество экстентов, выделяемых при создании объекта,
PCTINCREASE – приращение размера каждого следующего экстента,
MINEXTENTS – минимальное количество экстентов (по умолчанию для таблиц 1, для индексов – 2),
MAXEXTENTS – максимальное количество экстентов (по умолчанию не ограничено),
FREELISTS – число списков свободных участков,
FREELIST GROUPS – число групп списков свободных участков.