Системы хранения данных на основе файлов
Тема 1 Разработка и проектирование баз данных
Лекция 1. Основные понятия и определения теории баз данных.
Данные, информация
Понятие «базы данных» возникло в 60-х годах, наиболее бурное развитие этого направления пришлось на 70-е годы. Тогда же сложился, в основном, и теоретический фундамент этого направления. Состояние вычислительной техники в то время заметно отставало от теоретических разработок, и это не позволило в полной мере оценить их значимость. Последующее увлечение мини- и микро-ЭВМ оттеснило на второй план тематику, связанную с централизованным хранением и коллективным использованием больших массивов данных. Однако история повторяется: микро-ЭВМ, объединенные в сети, быстро достигли, а затем и превысили возможности старых «больших» машин, накопленные данные стали востребованы многочисленными пользователями, и это вновь возродило интерес большим базам данных.
Осознание в 60-х годах проблемы обработки больших объемов данных определилось всей логикой развития информатики. На первых этапах основные усилия были направлены на создание сносной вычислительной техники, после чего, по сути, и появилось настоящее программирование. Разработка теоретических основ программирования позволила оснастить программистов качественным инструментарием, что в свою очередь привело к появлению большого количества программ, особенно прикладных, дающих возможность не только обрабатывать текущую информацию, но и накапливать ее. С момента осознания проблем, связанных с хранением и обработкой больших объемов информации, начинается информатика, ориентированная на пользователя. Информацию необходимо интерпретировать с точки зрения некоторой предметной области – это вызвало появление экспертных систем, базирующихся на понятии искусственного интеллекта.
Таблица иллюстрирует изменение «основного вопроса информатики», и ключевой фигуры в процессе развития вычислительной техники от примитивных счетных машин к современным.
Этап 1 | Этап 2 | Этап3 | Этап4 | |
обеспечение | аппаратное | программное | информационное | интеллектуальное |
субъект | электроник | программист | пользователь | эксперт |
В последнее время с развитием вычислительных сетей, в том числе, глобальных, стали актуальными проблемы хранения распределенных данных и доступа к ним, а также проблемы доступа к слабоструктурированным данным. Таким образом, вопросы организации данных снова заняли достойное место.
Основная задача при работе с данными – получить достоверные данные в нужное время, в нужном месте за приемлемую цену.
Определение. Данные – это представление фактов и идей в формализованном виде, пригодном для передачи и переработки в некотором процессе, информация – это смысл, который придается данным при их представлении. Обработка данных – выполнение систематических последовательных действий с данными.
Информация, относящейся к некоторой задаче, образует ее информационную среду, которая представляется как совокупность носителей данных, включенных в обработку при решении этой задачи. Данные обычно бывают взаимозависимыми – связанными, причем, число связей по мере детализации постановки задачи увеличивается. Взаимосвязанные данные называют системами данных. Естественно, данные должны где-то храниться. Эти хранилища часто называют системами хранения информации.
Утверждение. Цель существования систем хранения информации – обеспечить выдачу достоверной информации в определенное время, определенному лицу, в определенном месте, за определенную плату.
Для упрощения дальнейшего изложения приведем некоторые термины.
· Предметная область (ПО) – совокупность информационной среды и технологии обработки информации, ориентированная на конечного пользователя.
· Объект – понятие, характеризующееся данными предметной области.
· Атрибут – элемент данных объекта.
· Значение атрибута – его реальное содержание.
· Экземпляр объекта – совокупность значений атрибутов объекта.
· Ключевой атрибут – тот, по которому можно определить другие атрибуты объекта.
· Запись данных – совокупность связанных атрибутов.
· Файл данных – упорядоченная совокупность записей (плоский файл – совокупность однородных записей).
· Источник данных – среда, из которой поступает информация. Примеры – больница (история болезни, коечный фонд), авиалинии (самолеты, рейсы, места), торговля (товар, покупатель, поставщик).
· Первичные документы – носители информации, используемые в источнике данных.
Системы хранения данных на основе файлов
В начальной стадии развития информатики прикладные информационные системы работали непосредственно с файлами данных. Программы обработки занимались ведением конкретных файлов, то есть, в основном, добавлением, удалением, корректировкой данных, сортировкой и выдачей. Файлы содержали все данные, необходимые для обработки. Получающаяся избыточность с высокой вероятностью приводила к противоречивости данных. Исключение избыточности существенно увеличивало сложность обработки за счет вовлечения в нее одновременно нескольких файлов. Логическая структура данных, как правило, определялась разработчиком для конкретной задачи, в крайнем случае, для группы задач. Более того, нередко данные различных приложений отличались и физическими структурами. В этой ситуации шагом вперед стало использование обобщенных методов доступа к данным, которые определяли их структуру на нижнем уровне. Системы, поддерживающие эти методы, обычно называются Системами Управления Файлами – СУФ (File Manager – FMGR), они включаются в операционные системы (ОС). Но универсальные программы работают с единственным представлением данных или же с фиксированным числом представлений. Примером может служить СУФ в ОС RTE фирмы Hewlett-Packard, где используется 6 форматов файлов.
Главный недостаток системы, построенной на файлах, связан с тем, что короткие записи, ориентированные на решение частных задач, приводят к избыточности, возникающей из-за повторения одних и тех же данных в разных файлах. Это порождает проблему противоречивости данных, которая усугубляется слабым контролем достоверности данных. Кроме того, к недостаткам подобных систем следует отнести
· ограничение разделения данных;
· ограничение по доступности;
· сложность в управлении.
Попытка борьбы с противоречивостью путем объединения записей приводит к следующим неприятностям:
· ведение длинных записей представляет собой трудоемкую задачу;
· система данных на длинных записях отличается крайне низкой гибкостью;
· при недостаточности средств защиты возможен несанкционированный доступ к данным;
· процесс восстановления данных сложен и требует значительного времени;
· стоимость и сложность в эксплуатации таких систем крайне высока.
База данных
Определение. Под базой данных (БД) будем понимать совокупность связанных данных конкретной предметной области, в которой определения данных и отношений между ними отделены от процедур.
Основное отличие баз данных от систем на основе файлов состоит в том, что эти системы имеют несколько назначений и несколько представлений о данных, а базы данных – несколько назначений и одно представление о данных.
Определение. Система управления данными (СУБД) – комплекс программно-аппаратных средств, обеспечивающих доступ к БД и управление данными.
Требования к СУБД
· Эффективное выполнение функций ПО.
· Минимизация избыточности.
· Предоставление непротиворечивой информации.
· Безопасность.
· Простота в эксплуатации.
· Простота физической реорганизации.
· Возможность централизованного управления.
· Упрощение приложений.
Минимальная избыточность. Данные, хранимые в БД, могут содержать как “полезную”, так и “вредную” избыточность. Последняя всегда имеет место при отсутствии концептуального представления данных, когда каждый пользователь создает для своих приложений отдельный набор данных. В этом случае, если нескольким пользователям требуются одни и те же данные, то они должны быть повторены в каждом наборе. Например, приложение, связанное с учетом профессионального образования, и приложение, связанное с учетом служащих некоторого предприятия, могут иметь общие атрибуты: ФИО, ТАБ_НОМЕР, НОМЕР_ОТДЕЛА для каждого служащего. Такая избыточность является неконтролируемой, поскольку о ее существовании пользователи могут и не подозревать. Интеграция пользовательских представлений в единое концептуальное представление, как правило, устраняет эту избыточность данных. К “полезной” избыточности можно отнести периодические копии данных, хранящихся в БД. Эта избыточность легко контролируется. Более того, она является необходимой, например, для восстановления данных, разрушенных при случайных сбоях и в катастрофических ситуациях.
Таким образом, требование минимальной избыточности следует понимать как устранение “вредной” (неконтролируемой) и сведение к минимуму “полезной” (контролируемой) избыточности данных.
Целостность данных . Состоит в поддержании “правильности” и актуальности данных. Обеспечивается восстановлением данных после разрушения, а также устранением противоречивости данных, которая заключается в появлении различных экземпляров для одних и тех же атрибутов. Противоречивость может появиться при обновлении избыточных данных в том случае, если оно будет выполнено только на части данных.
Безопасность и секретность . Обеспечивается защитой данных от аппаратных и программных сбоев, от катастрофических и криминальных ситуаций, а также от некомпетентного или несанкционированного (неразрешенного) доступа к данным.
Независимость данных. Подразумевает возможность изменения структуры БД без изменения прикладных программ пользователей. Понимается в двух аспектах, а именно, как логическая и физическая независимость.
Логическая независимость предполагает возможность изменения концептуальной схемы БД без изменения прикладных программ пользователей.
Физическая независимость подразумевает возможность изменения способа размещения данных на физических носителях и (или) методов доступа к данным без изменения прикладных программ пользователей.
Производительность. Характеризуется временем ответа на запросы пользователей.
Гибкость и способность к расширению. Понимается как способность БД к наращиванию данных, а также увеличению количества возможных приложений и расширению функций в пределах каждого приложения.
Базы данных призваны ликвидировать неприятности, присущие системам на основе файлов, и они это успешно делают, но по сравнению с ними они тоже имеют некоторые недостатки. Объективно – это довольно высокая стоимость и необходимость специальной подготовки, что в простейших случаях хранения данных представляется излишним. Субъективно – пользователь нередко хочет видеть данные в своих файлах без посредников в виде СУБД. Кроме того, при переходе к использованию БД наблюдается снижение ответственности исполнителя, что влияет на достоверность данных. В свою очередь, достоверность трудно контролировать из-за отсутствия избыточности. Возникают проблемы и с защитой данных, для этого требуются специальные мероприятия.