Системы хранения данных на основе файлов

Тема 1 Разработка и проектирование баз данных

Лекция 1. Основные понятия и определения теории баз данных.

Данные, информация

Понятие «базы данных» возникло в 60-х годах, наиболее бурное развитие этого направления пришлось на 70-е годы. Тогда же сложился, в основном, и теоретический фундамент этого направления. Состояние вычислительной техники в то время заметно отставало от теоретических разработок, и это не позволило в полной мере оценить их значимость. Последующее увлечение мини- и микро-ЭВМ оттеснило на второй план тематику, связанную с централизованным хранением и коллективным использованием больших массивов данных. Однако история повторяется: микро-ЭВМ, объединенные в сети, быстро достигли, а затем и превысили возможности старых «больших» машин, накопленные данные стали востребованы многочисленными пользователями, и это вновь возродило интерес большим базам данных.

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

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

Этап 1 Этап 2 Этап3 Этап4
обеспечение аппаратное программное информационное интеллектуальное
субъект электроник программист пользователь эксперт

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

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

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

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

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

Для упрощения дальнейшего изложения приведем некоторые термины.

· Предметная область (ПО) – совокупность информационной среды и технологии обработки информации, ориентированная на конечного пользователя.

· Объект – понятие, характеризующееся данными предметной области.

· Атрибут – элемент данных объекта.

· Значение атрибута – его реальное содержание.

· Экземпляр объекта – совокупность значений атрибутов объекта.

· Ключевой атрибут – тот, по которому можно определить другие атрибуты объекта.

· Запись данных – совокупность связанных атрибутов.

· Файл данных – упорядоченная совокупность записей (плоский файл – совокупность однородных записей).

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

· Первичные документы – носители информации, используемые в источнике данных.

Системы хранения данных на основе файлов

В начальной стадии развития информатики прикладные информационные системы работали непосредственно с файлами данных. Программы обработки занимались ведением конкретных файлов, то есть, в основном, добавлением, удалением, корректировкой данных, сортировкой и выдачей. Файлы содержали все данные, необходимые для обработки. Получающаяся избыточность с высокой вероятностью приводила к противоречивости данных. Исключение избыточности существенно увеличивало сложность обработки за счет вовлечения в нее одновременно нескольких файлов. Логическая структура данных, как правило, определялась разработчиком для конкретной задачи, в крайнем случае, для группы задач. Более того, нередко данные различных приложений отличались и физическими структурами. В этой ситуации шагом вперед стало использование обобщенных методов доступа к данным, которые определяли их структуру на нижнем уровне. Системы, поддерживающие эти методы, обычно называются Системами Управления Файлами – СУФ (File Manager – FMGR), они включаются в операционные системы (ОС). Но универсальные программы работают с единственным представлением данных или же с фиксированным числом представлений. Примером может служить СУФ в ОС RTE фирмы Hewlett-Packard, где используется 6 форматов файлов.

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

· ограничение разделения данных;

· ограничение по доступности;

· сложность в управлении.

Попытка борьбы с противоречивостью путем объединения записей приводит к следующим неприятностям:

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

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

· при недостаточности средств защиты возможен несанкционированный доступ к данным;

· процесс восстановления данных сложен и требует значительного времени;

· стоимость и сложность в эксплуатации таких систем крайне высока.

База данных

Определение. Под базой данных (БД) будем понимать совокупность связанных данных конкретной предметной области, в которой определения данных и отношений между ними отделены от процедур.

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

Определение. Система управления данными (СУБД) – комплекс программно-аппаратных средств, обеспечивающих доступ к БД и управление данными.

Требования к СУБД

· Эффективное выполнение функций ПО.

· Минимизация избыточности.

· Предоставление непротиворечивой информации.

· Безопасность.

· Простота в эксплуатации.

· Простота физической реорганизации.

· Возможность централизованного управления.

· Упрощение приложений.

Минимальная избыточность. Данные, хранимые в БД, могут содержать как “полезную”, так и “вредную” избыточность. Последняя всегда имеет место при отсутствии концептуального представления данных, когда каждый пользователь создает для своих приложений отдельный набор данных. В этом случае, если нескольким пользователям требуются одни и те же данные, то они должны быть повторены в каждом наборе. Например, приложение, связанное с учетом профессионального образования, и приложение, связанное с учетом служащих некоторого предприятия, могут иметь общие атрибуты: ФИО, ТАБ_НОМЕР, НОМЕР_ОТДЕЛА для каждого служащего. Такая избыточность является неконтролируемой, поскольку о ее существовании пользователи могут и не подозревать. Интеграция пользовательских представлений в единое концептуальное представление, как правило, устраняет эту избыточность данных. К “полезной” избыточности можно отнести периодические копии данных, хранящихся в БД. Эта избыточность легко контролируется. Более того, она является необходимой, например, для восстановления данных, разрушенных при случайных сбоях и в катастрофических ситуациях.

Таким образом, требование минимальной избыточности следует понимать как устранение “вредной” (неконтролируемой) и сведение к минимуму “полезной” (контролируемой) избыточности данных.

Целостность данных . Состоит в поддержании “правильности” и актуальности данных. Обеспечивается восстановлением данных после разрушения, а также устранением противоречивости данных, которая заключается в появлении различных экземпляров для одних и тех же атрибутов. Противоречивость может появиться при обновлении избыточных данных в том случае, если оно будет выполнено только на части данных.

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

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

Логическая независимость предполагает возможность изменения концептуальной схемы БД без изменения прикладных программ пользователей.

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

Производительность. Характеризуется временем ответа на запросы пользователей.

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

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