Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Механизмы хранения [ править ]

Многие современные СУБД поддерживают несколько механизмов хранения в одной базе данных. Например, MySQL поддерживает InnoDB, а также MyISAM .

Некоторые механизмы хранения являются транзакционными .

Дополнительные типы двигателей включают:

Соображения по дизайну [ править ]

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

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

Иерархия хранилищ базы данных [ править ]

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

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

Структуры данных [ править ]

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

Базы данных могут хранить данные во многих типах структур данных. [1] Типичные примеры:

  • упорядоченные / неупорядоченные плоские файлы
  • хеш-таблицы
  • B + деревья
  • ISAM
  • кучи

Ориентация данных и кластеризация [ править ]

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

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

Например, может быть полезно сгруппировать запись «предмета на складе» со всеми соответствующими записями о «заказах». Решение о том, кластеризовать определенные объекты или нет, зависит от статистики использования объектов, размеров объектов, размеров кешей, типов хранилищ и т. Д.

Индексирование базы данных [ править ]

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

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

Ссылки [ править ]

  1. ^ Lightstone, S .; Теорей, Т .; Надо, Т. (2007). Physical Database Design: руководство для профессионалов по базам данных по использованию индексов, представлений, хранилищ и многого другого . Морган Кауфманн Пресс. ISBN 978-0-12-369389-1.

Внешние ссылки [ править ]

  • https://web.archive.org/web/20100330045149/http://dev.mysql.com/tech-resources/articles/storage-engine/part_3.html
  • Библия администратора MySQL Глава 11 «Механизмы хранения»