Файлы и файловые системы

Введение

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

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

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

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

Лекция. Развитие технологии баз данных

Содержание лекции:основные понятия информационных систем.

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

Информационные системы

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

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

- надежное хранение информации в памяти компьютера;

- выполнение специфических для данного приложения преобразований информации и вычислений;

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

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

В этом контексте мы различаем понятия данные и информация. Под данными будем подразумевать разрозненные факты, например: Корпорация Microsoft находится в США. Информация же – это обработанные данные. Информация полезна руководителям в вопросах принятия решений.

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

Файлы и файловые системы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Файлы с плотным индексом называются также индексно-прямыми файлами, а файлы с неплотным индексом называются также индексно-последовательными файлами.

Наши рекомендации