Машины баз данных. Основные архитектуры используемые в машинах баз данных. |
Первыми устройствами позволившими создавать информационные системы стали магнитные ленты и барабаны. Емкость магнитных лент велика, но по своей физической природе они обеспечивают только последовательный доступ к данным. В то же время отношение цены носителя на магнитной ленте к его ёмкости до сих пор остаётся непревзойдённым. Магнитные ленты используются до сих пор в качестве носителей для резервных копий данных.
Жесткие диски. Магнитные диски были впервые реализованы в начале 50-х годов XX в. в исследовательской лаборатории корпорации IBM в Сан Хосе (Калифорния). В феврале 1954 года впервые данные были переписаны с перфокарт на диск. Устройства внешней памяти – последние компьютерные устройства работающие с «механическими» скоростями. Для работы крупных СУБД остаётся собирать отдельные диски в массивы и представлять их как единый быстродействующий диск.
RAID - Redundant Array of Independent (Inexpensive) Disks (избыточный массив независимых (или недорогих) дисков)
JBOD (Just a Bunch of Disks) Работает по принципу "наполнил одно - заполняй другое". То есть происходит простое соединение емкостей двух дисков. Только после заполнения одного винчестера происходит заполнение другого. Примитивный способ склеивания двух дисков в один.
RAID 0 (Stripe). Режим, при использовании которого достигается максимальная производительность. Не обладая избыточностью, делает весь массив максимально зависимым от сбоев. Данные располагаются поочередно на все диски, что повышает скорость чтения и записи. Используется весь объем дисков. Область применения - приложения, требующие высоких скоростей обмена с диском.
RAID 1 (Mirror). Несколько дисководов, работающие синхронно на запись, то есть полностью дублирующие друг друга. Повышение производительности происходит только при чтении. Самый надежный способ защитить информацию от сбоя одного из дисков. Используется при хранении очень важных данных.
RAID 2. Использует некоторые диски для хранения кодов ECC. В остальном - технология Stripe с блоками размером в сектор. Так как большинство дисководов имеют свои коды ECC, а эффективность RAID 2 ниже, чем у RAID 3, этот режим практически не используется.
RAID 3. Идентичен RAID 2, только вместо кодов ECC используются коды четности, которые, вкупе с кодами ECC каждого сектора, делают возможным восстановление информации. Из-за синхронизации всех дисководов при операциях чтения и записи, применяется в системах с потоковой обработкой информации.
RAID 4. Усовершенствованный вариант RAID уровня 3, отличием которого является использование Stripe-блоков большей величины. Из-за этого становится возможным одновременно совершать операции чтения. С записью все так же плохо, как и у RAID 3, поэтому применяется довольно редко.
RAID 5 - отказоустойчивый массив с распределенным хранением контрольных сумм. При записи поток данных разбивается на блоки (страйпы) на уровне байтов и распределяется на все диски массива.
RAID 6: Двумерная четность для обеспечения большей надежности В отличие от RAID-5, на каждом из дисков массива хранятся два блока четности. RAID-7 - зарегистрированная марка компании Storage Computer Corporation. Структура массива такова: на n-1 дисках хранятся данные, один диск используется для складирования блоков четности.
2)Преожение SELECT языка SQL. Выборка с использованием IN, вложенный SELECT. Подзапрос с несколькими уровнями вложенности. Коррелированный подзапрос.
SELECT column_name FROM table_name; - простейший вариант селекта
Например: - исходная таблица SELECT LastName, FirstName FROM Persons;
- выводится на экран
SELECT * FROM Persons; - выводит всю таблицу
SELECT IN: SELECT column_name FROM table_name WHERE column_name IN (value1,value2,..); SELECT SUM(Sales) FROM Store_Information WHERE Store_name IN (SELECT store_name FROM Geography WHERE region_name = 'West');
3)Проблема зависимости от незафиксированных обновлений. Способы решения.
Проблема зависимости от незафиксированных обновлений состоит в том, что пользователь А может увидеть данные, которые уже были обновлены пользователем В, но эти обновления еще не были окончательно зафиксированы. Далее пользователь В может в силу различных причин, например из-за выявленных ошибок ввода, провести откат базы данных в исходное состояние. Пользователь А в этом случае будет предпринимать действия над ошибочными данными. Иногда для такого рода проблем используется термин «преждевременное чтение» (Dirty read).
Наиболее популярные алгоритмы управления одновременным доступом основаны на механизме блокировок. Блокировка заключается в запрещении некоторых операций над данными (чаще - корректировки информации), если ее обрабатывает (корректирует) другой пользователь. В такой схеме всякий раз, когда транзакция пытается получить доступ к какой-либо единице данных, на эту единицу накладывается блокировка.
Блокировки накладываются в соответствии с правилами совместимости блокировок, исключающими конфликты чтение-запись, запись-чтение и запись-запись. Сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют следующему правилу: «Ни одна блокировка от имени какой-либо транзакции не должна устанавливаться, пока не будет снята ранее установленная блокировка». Это правило известно под названием двухфазового блокирования, поскольку транзакция проходит при этом сначала фазу роста, когда она устанавливает блокировки, а затем фазу сжатия, когда блокировки снимаются. В общем случае снятие блокировок до завершения транзакции проблематично, поэтому в большинстве алгоритмов управления одновременным доступом применяется подход, когда блокировки не снимаются до конца транзакции.
Блокировка может выполняться автоматически, а может и управляться пользователем. Включение автоматической группировки обусловливается выполняемой над данными операцией. Желательно, чтобы как можно больше ответственности за блокировку было перенесено с разработчика или пользователя на систему управления базой данных.
В зависимости от блокируемых информационных единиц можно выделить следующие уровни блокирования: база данных, совокупность связанных таблиц, таблица, совокупность связанных записей, запись, поле. Выше были названы логические единицы реляционных баз данных.В конкретных СУБД могут быть реализованы не все, а только некоторые из перечисленных уровней блокировок. Так, практически нигде не реализована блокировка на уровне поля.
Блокировка на нижних уровнях приводит к перегрузке менеджера блокировок и, как следствие, к падению производительности системы. С другой стороны, блокировка на более высоком уровне мешает конкурирующим пользователям получить доступ к нужным данным.Некоторые системы предусматривают динамическую схему блокировки, заключающуюся в том, что сначала транзакция блокирует большую информационную единицу, например страницу. Если проявляется другая транзакция, претендующая на какую-то запись внутри этой страницы, то первая транзакция автоматически уменьшит зону блокировки до уровня записи.
Различают пессимистические и оптимистические блокировки. Пессимистические блокировки запрещают доступ к данным других транзакций, когда какая-то транзакция уже работает с ними. Последующие операции, которые могут привести к конфликту, либо ставятся в очередь, либо отменяются. Оптимистические блокировки разрешают параллельное выполнение транзакций, отслеживают случаи возникновения конфликтов и обеспечивают их разрешение.
Серия сообщений "Базы данных":
Часть 1 - Файловые системы. Назначение файловых систем.
Часть 2 - Особенности орган хранения данных
...
Часть 32 - Основные реляционные СУБД: IBM DB2, ORACLE, MS SQL Server, Informix. Сравнение.
Часть 33 - Основные положения теории массового обслуживания (теория очередей).
Часть 34 - Машины баз данных. Основные архитектуры используемые в машинах баз данных.
Часть 35 - Возможности явного блокирования. Предложение LOCK TABLE.
Часть 36 - Проблема информационных хранилищ и складов данных. Хранение больших объёмов данных. Управление складами данных.
...
Часть 43 - Метод вспомогательной таблицы для случая произвольного графа. Отличия от случая моделирования иерархий
Часть 44 - Объектно-ориентированная модель и реляционная модель. Сходство и отличия.
Часть 45 - Использование «координатного» метода для моделирования иерархий и произвольных графов. Его достоинства и
Рубрики: |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |