Функция управление буферами оперативной памяти заключается
К основным функциям, которые выполняются системами управления базами данных относятся:
- непосредственное управление данными во внешней памяти;
- управление буферами оперативной памяти;
- управление транзакциями;
- ведение журнала или протокола выполненных операций в базе данных;
- поддержка языков баз данных.
2. Что означает непосредственное управление данными во внешней памяти?
Как известно, для сохранности данных и работы с ними, в базе данных нужно иметь в наличии постоянные запоминающие устройства (носители информации), например магнитные диски (жесткие диски).
Носители информации нужны в двух случаях:
- для сохранения непосредственных данных самой базе данных;
- для служебных целей. Например, для обеспечения быстрого доступа к данным с помощью индексов.
Как правило, система управления базами данных использует собственный механизм работы с устройствами внешней памяти (внешними запоминающими устройствами). Для любой СУБД важна работа с файловой системой некоторого устройства внешней памяти. Пользователь не должен задумываться над особенностями работы СУБД на нижнем уровне.
Для обеспечения непосредственного управления данными во внешней памяти современные СУБД:
- имеют собственную систему наименования объектов;
- могут использовать возможности существующих файловых систем (запоминающих устройств);
- могут использовать низкоуровневые операции при работе с внешними запоминающими устройствами.
3. Что означает управление буфером оперативной памяти?
Одной из важных характеристик системы управление базами данных есть скорость обработки информации в базе данных. Скорость обработки информации существенно зависит от размера базы данных.
Чтобы повысить скорость взаимодействия пользователя с базой данных, используется так называемая буферизация данных в оперативной памяти. Для этого в оперативной памяти создается буфер (кеш) с данными, которые на данный момент используются. И обмен информацией осуществляется через этот буфер. Поскольку, скорость чтения из оперативной памяти значительно выше скорости чтения из внешних запоминающих устройств, то таким образом обеспечивается ускорение работы с базой данных.
4. Что называется транзакцией? В чем состоит суть управления транзакциями?
При работе с любой базой данных выполняется бесконечная последовательность операций. Если последовательность операций объединена в единое целое (с точки зрения СУБД), то эта последовательность называется транзакцией.
В этом случае важно успешное выполнение транзакции. Если транзакция выполняется успешно, то система управления базами данных фиксирует все изменения данных с помощью инструкции COMMIT. Изменения заносятся во внешнюю память.
Если хотя бы одна из операций транзакции заканчивается неудачно, то транзакция считается невыполненной. В этом случае происходит откат транзакции (ROLLBACK). При откате транзакции база данных возвращается в состояние, которое было до начала выполнения транзакции.
5. Для чего нужно управление транзакциями в базе данных?
Поддержка транзакций есть важным условием для логической целостности базы данных. Это касается как однопользовательских так и многопользовательских СУБД.
Задача механизма транзакций – повлиять на пользователя таким образом, чтобы он ощущал себя единым пользователем СУБД. Даже в случае, если с СУБД параллельно работает большое количество пользователей. Фактически, транзакция есть единицей активности пользователя по отношению к базе данных.
6. Что такое сериализация и серийный план транзакций?
Сериализация транзакций необходима при параллельном выполнении транзакций. Она используется в многопользовательских базах данных. Сериализация транзакций это: планирование работы параллельных транзакций таким образом, чтобы при параллельном обращении эти транзакции выполнялись последовательно одна за другой.
Для обеспечения сериализации транзакций строится некий серийный план транзакций. В идеальном случае, при хорошем серийном плане транзакций, пользователь не ощутит присутствие других транзакций в базе данных. Возможно только небольшое замедление работы базы данных.
Рис. 1. Пример сериализации транзакций в случае трех пользователей
7. Что происходит, если две транзакции хотят иметь доступ к одному и тому же объекту базы данных?
Такая ситуация есть конфликтной и может возникнуть в многопользовательской базе данных. В этом случае происходит откат (ROLLBACK) одной из транзакций. Это необходимо для обеспечения сериализации в базе данных.
8. Что такое журнализация или ведение протокола в базе данных?
Журнализация или ведение протокола выполненных команд необходима для восстановления последнего согласованного состояния базы данных после аппаратного или программного сбоя.
Журнализация необходима для обеспечения надежности сохранения данных во внешней памяти (на носителях информации).
Аппаратные сбои возникают вследствие:
- мгновенной остановки компьютера (например, отключение питание, «зависание» операционной системы). Такой аппаратный сбой еще называют «мягкий» сбой;
- потерей информации на носителях внешней памяти. Такой вид сбоя называется «жесткий сбой».
Программные сбои – это, как правило, ошибки в самых программах. Программные сбои могут возникать как в пользовательских программах, так и в самой СУБД.
Журнализация служит дополнительной информацией, которая облегчает восстановление информации в базе данных. В базе данных ведется журнал изменений.
9. Какие требования к сохранению журнала изменений базы данных?
Журнал изменений в базе данных ведется особенно надежно. Журнал изменений есть недоступен для пользователей СУБД. Часто ведутся две копии журнала изменений, которые размещаются на разных носителях.
10. Что такое стратегия «упреждающей» записи при ведении журнала изменений?
Стратегия упреждающей записи (Write Ahead Log – WAL) есть своеобразным протоколом, который работает по следующему принципу: прежде чем изменить объект базы данных, предварительно в журнале надо сформировать запись об изменении данного объекта.
Если придерживаться этой стратегии, то после любого сбоя можно восстановить базу данных с помощью журнала, поскольку запись об изменениях в БД будет сформирована до начала изменения объекта.
11. Что такое локальный журнал транзакций? Какое отличие локального журнала транзакций от общесистемного?
Локальный журнал транзакций отображает операции модификации базы данных, выполненных в данной (конкретной) транзакции. Ведение такого журнала есть простейшим случаем для восстановления БД в случае сбоев. Чтобы восстановить БД после сбоя достаточно осуществить откат транзакции путем выполнения операций транзакции в обратном порядке (с начала до конца), которые записаны в локальном журнале.
Ведение локального журнала транзакций поддерживается в некоторых СУБД.
Общесистемный журнал отличается от локального журнала транзакций тем, что в нем описываются операции, выполненные всеми транзакциями, а не только конкретной транзакцией. В общесистемном журнале записи, которые отвечают одной транзакции, связаны между собою с помощью списка. При возникновении сбоя, происходит восстановление всех операций заданной транзакции в обратном порядке (от конца к началу).
12. Какие основные шаги выполняются СУБД для восстановления базы данных при «мягком» сбое?
«Мягкий сбой» – это случай, когда произошла мгновенная остановка работы компьютера. Примеры «мягких» сбоев:
- отключение питания компьютера (аппаратный сбой);
- «зависание» операционной системы;
- ошибки программирования программ, которые взаимодействуют с базой данных.
При «мягком» сбое могут отсутствовать:
- объекты, которые были модифицированы транзакциями, но эти транзакции еще не завершились на момент сбоя (измененные объекты незавершенных транзакций);
- объекты, которые на момент сбоя размещались в буфере оперативной памяти и которые были модифицированы завершенными транзакциями. Но эти объекты, в результате сбоя, еще не успели сохраниться на внешних носителях, и все равно исчезли бесследно. Как известно, информация из оперативной памяти при выключении питания исчезает бесследно.
После мягкого сбоя СУБД выполняет следующие основные шаги:
- откат незавершенных транзакций;
- воссоздаются операции завершенных транзакций, которые еще не успели зафиксироваться во внешней памяти (исчезли бесследно из буфера оперативной памяти).
13. Какие основные шаги выполняются при «жестком» сбое для восстановления базы данных?
Жесткий сбой характеризуется потерей информации на носителях внешней памяти.
В этом случае, для восстановления базы данных используют:
- журнал операций;
- архивную копию базы данных. Архивная копия базы данных – это полная копия базы данных, которая была сделана на некоторый момент ведения журнала. Если удачно создается архивная копия базы данных, то на данный момент, предшествующие операции в журнале фиксируются и новый учет в журнале начинается из этой позиции.
Важным здесь есть наличие самого журнала.
14. Что такое избыточность данных в базе данных?
Избыточность данных в базе данных – это когда кроме самих данных в базе данных сохраняется еще и другая необходимая информация. Эта информация используется системой управления базами данных.
Например. Для обеспечения надежности в базе данных, ведется журнал изменений базы данных. Для сохранности самого журнала нужно также место на внешних носителях. Таким образом, база данных, кроме самых данных сохраняет еще и другую информацию (журнал, связи между таблицами, индексирование и т.п.). Это и есть избыточность данных.
15. Что собою представляет функция поддержки языков баз данных?
Любая СУБД должна поддерживать языки баз данных. Это означает, что для работы с данными в базе данных, должны использоваться специальные языки. Эти языки называются языками баз данных (например, SQL, MDX, SPARQL, FoxPro, PL/Perl и т.д.).
Для современных баз данных в основном выделяются два языка:
- язык определения схем данных (Schema Definition Language, SDL). Этот язык используется для определения логической структуры базы данных;
- язык манипулирования данными (Data Manipulation Language, DML). Такой язык содержит набор операторов манипулирования данными (добавление, удаление и изменение данных) и выборки данных из базы данных.
Для современных реляционных баз данных стандартным языком использования есть язык SQL (Stuctured Query Language). Этот язык позволяет определять схему данных и манипулировать этими данными.
К основным функциям, выполняемым системами управления базами данных, обычно относят следующие:
· непосредственное управление данными во внешней памяти;
· управление буферами оперативной памяти;
· поддержка языков баз данных.
Рассмотрим каждую из указанных функций более подробно.
Функция непосредственного управления данными во внешней памяти включает обеспечение необходимых структур внешней памяти (постоянных запоминающих устройств — как правило, магнитных дисков) как для хранения данных, непосредственно входящих в базу данных, так и для служебных целей, например для ускорения доступа к данным в некоторых случаях (обычно для этого используются индексы). Причем пользователям базы данных в общем случае не нужно знать, использует ли СУБД файловую систему и если использует, то как организованы файлы. Обычно СУБД поддерживает собственную систему именования объектов БД. В зависимости от способа реализации СУБД может либо использовать возможности существующих файловых систем, либо работать с устройствами внешней памяти на низком уровне.
Объём информации, хранящейся в базе данных, с которой работает СУБД, обычно достаточно велик и практически всегда превышает доступный объем оперативной памяти. При этом время доступа к данным, хранящимся в оперативной памяти, существенно меньше, чем к данным, хранящимся на устройствах внешней памяти. Очевидно, что если при обращении к любому элементу данных будет производится обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти.
Увеличения скорости обмена данными Можно достичь, используя буферизацию данных в оперативной памяти. При этом, даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части базы данных. Поэтому в СУБД обычно поддерживается собственный набор буферов оперативной памяти с собственным механизмом замены буферов.
Транзакцией называется последовательность операций над базой данных, рассматриваемых СУБД как единое целое. Если все операции успешно выполнены, то транзакция также считается успешно выполненной и СУБД фиксирует (COMMIT) все изменения данных, произведенные этой транзакцией (то есть заносит изменения во внешнюю память). Если же хотя бы одна операция транзакции заканчивается неудачей, то транзакция считается невыполненной и производится откат (ROLLBACK) — отмена всех изменений данных, произведенных в ходе выполнения транзакции, и возврат базы данных к состоянию до начала выполнения транзакции. Управление транзакциями необходимо для поддержания логической целостности базы данных. Поддержка механизма транзакций является обязательным условием даже однопользовательских, а тем более для многопользовательских СУБД. То свойство, что каждая транзакция начинается при целостном состоянии базы данных и оставляет это состояние целостным после своего завершения, делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к базе данных. При соответствующем управлении параллельно выполняющимися транзакциями со стороны СУБД каждый из пользователей может, в принципе, ощущать себя единственным пользователем СУБД.
С управлением транзакциями в многопользовательской СУБД связаны важные понятия сериализации транзакций и сериального плана выполнения смеси транзакций. Под сериализациями параллельно выполняющихся транзакций понимается такое планирование их работы, при котором суммарный результат смеси транзакций эквивалентен результату их некоторого последовательного выполнения. Сериальный план выполнения смеси транзакций - это такой план, который приводит к сериализации транзакций. Попятно, что если удается добиться действительно сериального выполнения смеси транзакций, то для каждого пользователя, по инициативе которого образована транзакция, присутствие других транзакций будет незаметно (если не считать некоторого замедления работы по сравнению с однопользовательским режимом).
Существует несколько базовых алгоритмов сериализации транзакций. В централизованных СУБД наиболее распространены алгоритмы, основанные на синхронизационных захватах объектов базы данных. При использовании любого алгоритма сериализации возможны конфликты между несколькими транзакциями по доступу к объектам базы данных, В этом случае для поддержания сериализации необходимо выполнить откат одной или нескольких транзакций. Это один из случаев, когда пользователь многопользовательской СУБД может реально (и достаточно неприятно) ощутить присутствие в системе транзакций других пользователей.
СУБД – системы управления базами данных, комплекс программ, созданный для управления базами данных большого размера. Для управления данными СУБД наделена целым рядом функций. Функции СУБД позволяют осуществлять полное управление данными, а в многопользовательских БД все пользователи управляют БД независимо друг от друга.
Что такое база данных — понятие база данных в информатике
Содержание статьи: Что такое база данных в информатикеЧто такое СУБД и SQLСУБД […]
Управление буферами оперативной памяти
Для ускорения вызова данных из внешней памяти, в СУБД используется буферизация данных в оперативной памяти. Каждая СУБД поддерживает свой набор буферов оперативной памяти.
Другие статьи раздела: База данных
SQL ALTER TABLE — sql запрос на модификацию таблицы базы данных
Команда ALTER, используется если нужно не менять данные в таблицы, и только модифицировать (поменять) отдельные из них по определенным параметрам.
Как было показано выше, традиционных возможностей файловых систем оказывается недостаточно для построения даже простых информационных систем. Мы выявили несколько потребностей, которые не покрываются возможностями систем управления файлами: поддержание логически согласованного набора файлов; обеспечение языка манипулирования данными; восстановление информации после разного рода сбоев; реально параллельная работа нескольких пользователей. Можно считать, что если прикладная информационная система опирается на некоторую систему управления данными, обладающую этими свойствами, то она является системой управления базами данных (СУБД). Тем не менее, полезно сформулировать эти (и другие) важные функции отдельно.
К числу функций СУБД принято относить следующее:
Эта функция включает обеспечение необходимых структур внешней памяти как для хранения непосредственных данных, входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используются индексы). В некоторых реализациях СУБД активно используются возможности существующих файловых систем, в других работа производится вплоть до уровня устройств внешней памяти. Но подчеркнем, что в развитых СУБД пользователи в любом случае не обязаны знать, использует ли СУБД файловую систему, а если использует, то как организованы файлы. В частности, СУБД поддерживает собственную систему именования объектов БД (это очень важно, поскольку имена объектов базы данных соответствуют именам объектов предметной области).
Существует множество различных способов организации внешней памяти баз данных. Как и все решения, принимаемые при организации баз данных, конкретные методы организации внешней памяти необходимо выбирать в тесной связи со всеми остальными решениями.
СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно превышает доступный объем оперативной памяти. Понятно, если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Единственным же способом реального увеличения этой скорости является буферизация данных в оперативной памяти. И даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов. При управлении буферами основной памяти приходится разрабатывать и применять согласованные алгоритмы буферизации, журнализации и синхронизации.
Существует отдельное направление СУБД, которое ориентировано на постоянное присутствие в оперативной памяти всей БД. Это направление основывается на предположении, что в предвидимом будущем объем оперативной памяти компьютеров сможет быть настолько велик, что позволит не беспокоиться о буферизации. Пока эти работы находятся в стадии исследований.
Управление данными во внешней памяти включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в базу данных, так и ускорения доступа к ним.
Управление буферами оперативной памяти используется при обращении к любому элементу данных и определяет скоростью работы СУБД в целом.
Управление транзакциями обеспечивает поддержку логической целостности базы данных.
Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Транзакция либо успешно выполняется, и СУБД фиксирует произведенные изменения данных во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД.
Журнализация и восстановление БД после сбоя обеспечивает физическую целостность базы данных и полное или частичное восстановление данных.
Обычно рассматриваются два возможных вида аппаратных сбоев: мягкие сбои, которое происходят при внезапной остановки работы компьютера, например, аварийное выключение питания, и жесткие сбои - характеризуемые потерей информации на носителях внешней памяти. В любом из описанных случаев для восстановления БД нужно располагать некоторой избыточной информацией, которая фиксируется в журнале изменений БД.
Журнал - это специальная служебная часть БД, недоступная пользователям, в которую поступают записи обо всех изменениях основной части БД.
При различной организации журнала всегда придерживаются стратегии упреждающей записи в журнал. То есть, запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Если в СУБД корректно соблюдается это условие, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.
Устно.
Для восстановления БД после жесткого сбоя используют журнал и архивную копию БД. Архивная копия является полной копией БД к моменту начала заполнения журнала. Восстановление БД состоит в том, что, исходя из архивной копии, по журналу воспроизводится работа всех транзакций, которые закончились к моменту сбоя.
Поддержка языков БД обеспечивает поддержку языка обработки данных и языка манипулирования данными, а также другие инструкции поддержки данных.
Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).
SQL запрос для создания таблицы базы данных — оператор CREATE TABLE
В этой статье простой SQL запрос для создания таблицы базы данных. Работает запрос на основе оператора CREATE TABLE.
Журнализация
Хранение данных и операций над ними (журнализация) одна из важнейших функций СУБД. Возможность журнализации обеспечивают надежность хранения данных. СУБД хранит и может восстановить состояние базы данных после программных сбоев.
Все изменения в БД хранятся в специальном журнале БД. Журнал не доступен пользователям БД. Для надежности копии журналов хранятся на разных физических дисках.
Записи в журнал происходят по протоколу WAL. Этот протокол обеспечивает запись в журнал, раньше, чем измененный объект «вернется» во внешнюю память БД.
Устройство реляционной базы данных
В этой статье вы найдете описание устройства реляционной базы данных. Основные элементы реляционной базы данных.
Классификация баз данных
Знание классификации баз данных позволяет понять, с какой базой данных имеешь дело и как эта модель базы данных описана математически.
Управление операциями над базой данных
Управление операциями над базой данных называют транзакциями. Транзакция это не одна операция, это последовательный ряд операций над базой данных, которая СУБД воспринимает, как единое целое и эти операции позволяют удалять, добавлять, обновлять данные о некотором объекте в БД. Транзакция проводится только по отношению к конкретному объекту, оставляя всю базу данных в неизменном состоянии. Это особенно актуально для многопользовательских баз данных – операция одного пользователя не влияет на других пользователей БД.
Функции СУБД обеспечивающие управление базой данных
В этой статье вы познакомитесь с основными функциями СУБД системами управления базами данных.
Управление объемами БД вне оперативной памяти
СУБД работает с БД больших объемов. Обычно, объем базы данных значительно превосходит оперативную память серверов. Для обеспечения пользователю выполнения всех необходимых операций с данными, СУБД включает необходимые структуры внешней памяти, для хранения данных самой базы данных и служебных целей. Так как СУБД использует свою систему названия объектов, пользователь не знает, использует ли СУБД оперативную память или внешнюю файловую систему.
Первичный ключ и внешний ключ таблиц реляционных баз данных
В этой статье вы найдете, что такое типы данных и их обозначение, что такое первичный ключ и внешний ключ таблиц реляционной базы данных.
Понятие и назначение SQL запроса
Это первая статья из серии практических статей, где на примерах научимся создавать основные виды SQL запросов.
Перечислим основные функции СУБД
- Управление объемами данных вне оперативной памяти;
- Управление буферами оперативной памяти;
- Управление операциями над базой данных (транзакциями);
- Хранение данных и операций над ними (журнализация);
- Поддержка языков программирования для БД;
- Полное администрирование БД.
Концептуальная модель базы данных — диаграмма связи между объектами
В этом посте вы найдете информацию, что такое концептуальная модель базы данных. Условные обозначения концептуальной модели базы данных.
SQL запрос INSERT INTO — наполнить базу данных информацией
В этой статье познакомимся с запросом INSERT INTO, который позволяет наполнить базу данных нужной информацией.
PhpMyAdmin на локальном сервере
В этой статье мы рассматриваем работу с phpMyAdmin на локальном сервере, то есть в рамках настольного компьютера.
Поддержка языков программирования для БД
СУБД «общается» с базой данных специальными языками программирования. С его помощью определяется структура базы данных, задаются имена и свойства объектов, удаляется, извлекается, обновляется информация БД.
Основной язык реляционных БД, на сегодня, является язык SQL (Structured Query Language).
Читайте также: