Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.Физическая Организация Баз Данных.pdf
Скачиваний:
27
Добавлен:
20.02.2016
Размер:
448.66 Кб
Скачать

Лекции / Физический доступ к базе данных

Технологии баз данных и знаний

 

 

 

 

 

 

 

 

 

 

 

Главная

Типовая

Лекции

Практикум

Индивидуальные

Заочникам

Экзамен/зачет

Тесты

 

 

программа

задания

 

 

 

 

 

 

 

 

 

 

 

ЛЕКЦИИ

Лекция на тему

ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ БАЗ ДАННЫХ

Разработчик: ст. преподаватель Черепица Л.С.

План лекции

1.Физический доступ к базе данных

2.Индексирование и хеширование

3.Сжатие данных Литература Глоссарий

&

1.ФИЗИЧЕСКИЙ ДОСТУП К БАЗЕ ДАННЫХ

1.1.Объемы современных баз данных и устройства для их размещения

Система физического доступа к базе данных представлена на рис. 1.

http://www.bseu.by/it/tohod/lekcii3.htm[17.05.2013 13:07:25]

Лекции / Физический доступ к базе данных

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

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

словарь данных.

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

Управление буферами (диспетчер дисков) – программное обеспечение,

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

на диске и структурами данных.

Словарь данных часть СУБД, определяющая структуру пользовательских данных и возможности их использования.

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

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

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

§выбор способа размещения файлов на диске;

§определение требуемого объема дисковой памяти;

§распределение информации на диске.

Выбор способа размещения файлов на диске. Большинство СУБД позволяют администратору системы выбрать один из способов размещения файлов базы данных на дисках: на «чистых» дисках или в файловой системе.

Достоинством хранения информации на «чистых» дисках является то, что внешняя память используется более эффективно и, как правило, увеличивается производительность обмена с дисками. Экономия внешней памяти от 10 до 20% достигается на основе устранения необходимости организации самой файловой системы. Так, в ОС UNIX служебная информация файловой системы составляет примерно 10% от емкости дисков.

К достоинствам работы с дисками через файловую систему относят:

1.использование файловой системы обладает большей гибкостью, так как дает

администратору стандартные средства обслуживания файлов: утилиты резервного копирования, архивации, восстановления, а также возможность пользования другими программами работы с файлами (редакторами, антивирусными программами, утилитами контроля качества носителя и т. д.);

2.в некоторых случаях выполнение операций ввода/вывода через файловую

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

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

http://www.bseu.by/it/tohod/lekcii3.htm[17.05.2013 13:07:25]

Лекции / Физический доступ к базе данных

таблицы, заранее выделенное пространство для хеш-таблиц и индексов, пространство

для сортировки, файлы журнала, архивы и др.

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

Сегодня, высокая производительность баз данных является необходимым условием работы на растущих глобальных рынках. Надёжные, масштабируемые хранилища данных позволяют менеджерам и аналитикам обрабатывать огромные объёмы накопленной информации. Так, например компании HP и Oracle сообщили об установлении нового мирового рекорда в эталонном тесте TPC-H на базе данных объемом в 10 Тбайт.

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

Технически возможно разместить несколько функциональных дисковых областей на одних и тех же (физических или логических) дисках. Так практически всегда делается на СУБД, работающих на ПЭВМ. Однако совместное хранение разнородной информации на одних и тех же дисках приводит к перегрузке подсистемы ввода/вывода и, соответственно, к потере производительности. Перегрузка возникает из-за существенных временных затрат на позиционирование головок на диске.

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

Впроцессе работы с БД, важными являются вопросы хранения и методы доступа к

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

1.2.Функции СУБД

Кчислу функций СУБД принято относить следующие:

üуправление данными во внешней памяти;

üуправление буферами оперативной памяти;

üуправление транзакциями;

üжурнализация и восстановление БД после сбоев;

üподдержание языков БД.

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

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

http://www.bseu.by/it/tohod/lekcii3.htm[17.05.2013 13:07:25]

Лекции / Физический доступ к базе данных

скоростью устройства внешней памяти. Практически единственным способом реального

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

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

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

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

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

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

Во всех случаях придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

http://www.bseu.by/it/tohod/lekcii3.htm[17.05.2013 13:07:25]

Лекции / Физический доступ к базе данных

Самая простая ситуация восстановления - индивидуальный откат транзакции. Для

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

Поддержка языков БД. Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.

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

SQL (Structured Query Language).

1.3. Функции Диспетчера файлов и Диспетчера дисков в процессе доступа к базе данных

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

§СУБД определяет искомую запись в БД, для чего в оперативную память

помещается набор записей, в котором ищется запрашиваемая, а для извлечения записи запрашивается так называемый Диспетчер файлов;

§ Диспетчер файлов определяет страницу, на которой находится искомая запись, а

затем для извлечения этой страницы запрашивается диспетчер дисков; § Диспетчер дисков определяет физическое расположение страницы на устройстве

хранения информации и посылает запрос на ввод-вывод данных.

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

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

http://www.bseu.by/it/tohod/lekcii3.htm[17.05.2013 13:07:25]

Лекции / Физический доступ к базе данных

Все страницы диска делятся на несвязанные наборы, один из наборов, содержит все

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

Основные операции, выполняемые Диспетчером дисков с наборами страниц по запросу со стороны диспетчера файлов следующие:

§извлечь страницу S из набора страниц N;

§заменить страницу S из набора страниц N;

§добавить новую страницу в имеющийся набор страниц N;

§удалить страницу S из набора страниц N.

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

Каждый хранимый файл имеет уникальные в рассматриваемом наборе страниц имя

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

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

К основным операциям с файлами, выполняемыми Диспетчером файлов, по запросу со стороны СУБД, относятся:

§извлечь хранимую запись Z из хранимого файла F;

§заменить хранимую запись Z в хранимом файле F;

§добавить новую хранимую запись Z в хранимый файл F;

§удалить хранимую запись Z из хранимого файла F;

§создать новый хранимый файл F;

§удалить хранимый файл F.

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

§внутрифайловую кластеризацию, которая осуществляется в рамках одного

хранимого файла; § межфайловую кластеризацию, которая охватывает сразу несколько файлов.

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

Основная функция диспетчера дисков – управлением страницами при котором осуществляется скрытие от Диспетчера файлов всех деталей физических дисковых операций ввода-вывода и замена их логическими страничными операциями ввода-вывода.

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

Хранимые записи идентифицируются с помощью идентификационного номера записи Z, который состоит из двух частей: номера страницы S, на которой данная запись

http://www.bseu.by/it/tohod/lekcii3.htm[17.05.2013 13:07:25]

Лекции / Физический доступ к базе данных

находится, и информации о смещении записи от конца страницы S. Если известен

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

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

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

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

© Минск БГЭУ, 2005 - 2011

http://www.bseu.by/it/tohod/lekcii3.htm[17.05.2013 13:07:25]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]