Кубанский государственный университет
Опубликован: 24.12.2013 | Доступ: свободный | Студентов: 680 / 8 | Длительность: 24:28:00
Лекция 1:

Введение в базы данных

Лекция 1: 1234567 || Лекция 2 >

1.4 Аппаратная реализация

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

Базы данных используют все виды памяти:

  • Первичная (оперативная) память имеет емкость до единиц гигабайт. Время обращения десятки или сотни наносекунд (10-8-10-7c). НЕ СОХРАНЯЕТ ИНФОРМАЦИЮ ПРИ ПЕРЕРЫВАХ В ПИТАНИИ!!
  • Вторичная память (как правило, жесткий магнитный диск) имеет емкость от сотен гигабайт до единиц, десятков или сотен терабайт. Время обращения — сотые доли секунды.
  • Третичная память (массивы магнитных или оптических дисков, другие оптические носители) — емкость практически не ограничена. Время обращения секунды, десятки секунд или минуты.

В соответствии с традицией термин память означает первичная память.

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

Давайте посмотрим, как устроен жесткий магнитный диск (рисунок 1.8).

Жёсткий магнитный диск

Рис. 1.8. Жёсткий магнитный диск

Внутри него может быть установлено несколько двусторонних магнитных дисков. Данные со всех поверхностей считываются и записываются на них с помощью магнитных головок, объединённых держателем, перемещаемым с помощью серводвигателя. Диск вращается с постоянной скоростью, измеряемой в оборотах в минуту. Данные на диске организованы в цилиндры, дорожки и секторы. Цилиндры — это наборы дорожек на дисках в виде концентрических окружностей, расположенных одна над другой. Дорожка разделяется на секторы. Минимальная единица данных на диске — сектор.

Внешняя дорожка длиннее внутренней, поэтому на ней можно разместить больше секторов, чем на внутренней дорожке.

Скорости вращения диска лежат в пределе от 3600 до 7200 об./мин. Существуют более быстрые диски со скоростью около 10-15 тысяч об./мин. Однако, уже при скорости 7200 об./мин возникают проблемы с теплоотводом.

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

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

Для диска со скоростью вращения 3600 об./мин среднее время ожидания сектора, соответствующее половине оборота диска составляет 1/60/2, примерно 8,3 мс. Если учесть время подвода головки, составляющее несколько миллисекунд, приходится признать, что время обращения к диску составляет не менее 10 мс (0, 01 с). А если нужные вам данные находятся на нескольких цилиндрах? А если одновременно с базой работает 100 человек? Придётся ждать от секунд до многих минут.

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

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

Hit\_ratio=\frac{число\_обращений\_в\_кэш}{число\_обращений\_к\_данным}

Показатель эффективности буфера должен быть как можно ближе к 1. Если, например, Hit\_ratio=0.95Hlt_ratlo=0.95, то из двадцати обращений к данным только одно вызывает обращение к диску. Остальные данные выбраны из кэша. Практика показывает, что возможны значения Hit_ratio ещё более близкие к единице.

1.5 Определение базы данных

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

Будем понимать под базой данных (БД) собрание данных, которое должно обладать следующими свойствами:

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

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

1.6 Что такое администрирование базы данных

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

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

Пользователей можно разделить на два вида:

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

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

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

Существуют системы, в которых такие требования к пользователям не реализуемы.

Положим вы хотите собрать сведения о пользователях вашего сайта. Пусть на вопрос об имени я ответил "DJVasja". Вы этого запретить мне не можете. А теперь, представьте, что такой фокус выкинул бухгалтер, начисляющий заработную плату. Представили? Мне это трудно вообразить. В дальнейшем изложении будем предполагать, что пользователи всегда обучены и ответственны. И только в "Семантика баз данных" допустим другие возможности

Перечислим основные задачи, которые решает администратор базы данных:

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

В этой книге администрированием мы почти не будем заниматься. Это не наша тема. Так что остаётся надеяться на лучшее, не умея пока преодолевать худшее, и высказать традиционное админское пожелание: "Хороших вам данных!".

Лекция 1: 1234567 || Лекция 2 >