В начало

Лекция 6

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

 

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

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

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

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

 

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

 

Здесь термины логический и физический отражают различия аспектов представления данных. Логическое представление указывает на то, как данные используются в прикладной программе, т.е. – отражают логику обработки. Физическое представление – это то, как данные хранятся на физическом носителе (слайд 2).

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

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

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

 

Схема организации файлового ввода-вывода        (слайд 3)

Рассмотрим основные способы адресации и последовательность операций выборки данных, обеспечивающих чтение прикладной программой с тома внешней памяти (например, магнитного диска ПЭВМ) некоторой произвольной (I-ой) записи (в целях общности не рассматриваются подготовительные операции, такие как открытие файла и выделение памяти для рабочих и системных буферов, хотя они также достаточно ресурсоемки). Отметим еще раз, что «специализация» компонентов, участвующих в операциях ввода-вывода, выражается прежде всего в используемом способе адресации.

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

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

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

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

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

 

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

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

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

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

4.     Завершение операции (проверка корректности чтения, например по контрольной сумме) и возврат управления ОС для обработки считанных данных;

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

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

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

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

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

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

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

 

Эволюция концепций обработки данных   (слайд 4)

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

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

 

Простые (линейные) файлы данных (начало 60-х годов)           (слайд 5)

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

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

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

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

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

 

Методы доступа к записям (конец 60-х годов)                 (слайд 6)

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

Организация хранения и доступа в этом случае характеризуется следующими особенностями.

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

Файл создается в прикладной программе как набор данных с последовательным, индексно-последовательным или с прямым доступом (по физическому адресу). Возможен последовательный или произвольный доступ к записям (но не к полям). Поиск по многим ключам, как правило, не используется. Если используются иерархические файлы, то взаимосвязь «исходный – порожденный» программируется в прикладной программе.

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

Средства обеспечения защиты данных недостаточно надежны.

 

Первые системы управления базами данных (начало 70-х годов)     (слайд 7)

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

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

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

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

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

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

 

Системы управления базами данных                 (слайд 8)

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

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

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

Для этого вводятся два уровня независимости данных.

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

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

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

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

Для систем управления базами данных характерны следующие особенности:

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

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

 

Схема управления данными в СУБД            (слайд 9)

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

Ø   (1)  Прикладная программа (клиентское приложение) формирует и выдает системе управления базами данных запрос на чтение необходимых данных, содержащихся в базе.

Ø   (2-3)  СУБД отыскивает описание затребованных данных в структуре описания данных прикладного уровня (внешняя модель).

Ø   (4-5)  СУБД по глобальному описанию БД (концептуальная схема) определяет необходимые данные на логическом уровне.

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

Ø   (8-9)  СУБД через подсистему управления массивами данных выдает операционной системе запрос на чтение хранимой записи.

Ø   (10-11) Подсистема управления вводом-выводом операционной системы осуществляет физическое чтение записи в системный буфер ОС.

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

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

Файлы обладают следующими свойствами (слайд 10):

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

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

Базы данных имеют следующие особенности  (слайд 11):

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

-                    база данных существует независимо от конкретной прикладной программы – база создается с целью интеграции данных, объединяющей данные многих приложений (но определенного назначения). База данных предназначена для совместного, многофункционального использования многими пользователями  один раз введенных данных.

 

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

Коренное же отличие СУБД от файловых систем ОС состоит в том, что СУБД устанавливает связь между содержанием и адресом, а ОС - между именем и адресом данных.