Читать книгу Основы использования и проектирования баз данных - Владимир Михайлович Илюшечкин - Страница 4

Глава 1
Основные сведения о хранении данных
1.2. Системы с использованием баз данных

Оглавление

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

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

База данных (БД) – это поименованная совокупность взаимосвязанных данных, управляемых специальной системой, называемой СУБД.

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

БД и СУБД являются составными частями более сложной системы, именуемой банком данных [6]. Банк данных (БнД) – это система, состоящая из баз данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных. Термин «банк данных» схож с понятием «система баз данных». Система баз данных представляет собой совокупность программного обеспечения, данных и аппаратного обеспечения компьютеров, которая реализует набор приложений и моделей данных, и использует СУБД и прикладное программное обеспечение для создания конкретной информационной системы [18]

БнД является сложной человеко-машинной системой, состоящей из взаимосвязанных и взаимозависимых компонентов (рис. 1.1).

Рис. 1.1. Компоненты БнД.


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

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

Языковые средства СУБД относятся к языкам четвертого поколения. Языковые средства предназначаются для пользователей разных категорий: конечных пользователей, системных аналитиков, профессиональных программистов. По функциональным возможностям выделяются 10 категорий языков [6]. По форме представления различают аналитические, табличные и графические языковые средства.

Некоторые СУБД предоставляют пользователю несколько языков для достижения одной и той же цели. Например, в системе Delphi [19] для работы с базами данных могут использоваться:

– процедурный язык Object Pascal;

– табличный язык запросов QBE (Query-By-Example);

– язык SQL (Structured Query Language).

В системе FoxPro доступны процедурный язык xBase, табличный язык запросов Relation QBE, а также язык SQL.

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

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

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

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

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

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

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

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

– преобразованием логической модели данных в набор таблиц и ограничений целостности данных;

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

– проектированием любых требуемых мер защиты данных.

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

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

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

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

Опытные пользователи знакомы со структурой базы данных и возможностями СУБД. Для выполнения требуемых операций они могут использовать такой язык запросов высокого уровня, как SQL. А некоторые опытные пользователи могут даже создавать собственные прикладные программы.

Использование СУБД для доступа к данным дает ряд преимуществ, к которым относятся [13]:

– контроль за избыточностью данных;

– непротиворечивость данных;

– больше полезной информации при том же объеме хранимых данных;

– совместное использование данных;

– поддержка целостности данных;

– повышенная безопасность;

– применение стандартов;

– повышение эффективности с ростом масштабов системы;

– возможность нахождения компромисса при противоречивых требованиях;

– повышение доступности данных и их готовности к работе;

– улучшение показателей производительности;

– упрощение сопровождения системы за счет независимости от данных;

– улучшенное управление параллельной работой;

– развитые службы резервного копирования и восстановления.

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

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

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

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

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

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

Применение стандартов. Объединение данных позволяет администратору баз данных определять и применять необходимые стандарты. Например, стандарты предприятия, государственные и международные стандарты могут регламентировать формат данных при обмене ими между системами, соглашения об именах, форму представления документации, процедуры обновления и правила доступа.

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

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

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

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

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

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

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

Однако использование СУБД дает не только преимущества, но сопряжено и с такими негативными последствиями, как:

– сложность СУБД;

– большой размер СУБД;

– значительная стоимость некоторых СУБД;

– дополнительные затраты на аппаратное обеспечение;

– затраты на преобразование имеющейся инфраструктуры предприятия;

– снижение производительности;

– более серьезные последствия при выходе системы из строя.

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

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

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

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

Затраты на преобразование. В некоторых ситуациях стоимость СУБД и дополнительного аппаратного обеспечения может оказаться несущественной по сравнению со стоимостью преобразования существующих приложений для работы с новой СУБД и новым аппаратным обеспечением. Эти затраты включают также стоимость подготовки персонала для работы с новой системой, а также оплату услуг специалистов, которые будут оказывать помощь в преобразовании и запуске новой системы. Все это является одной из основных причин, по которой некоторые предприятия остаются сторонниками прежних систем и не хотят переходить к более современным технологиям управления базами данных. Термин «традиционная система» иногда используется для обозначения устаревших и, как правило, не самых лучших систем.

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

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

Основы использования и проектирования баз данных

Подняться наверх