Предисловие

 

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

Как отмечается в [4], базам свойственна «перманентность» данных. Соответственно назначение систем управления базами данных – обеспечение в течение длительного времени их сохранности, а также возможностей выборки и актуализации. Данные существуют всегда, пока есть потребность в их использовании[1], хотя характер использования, как и пути извлечения практической пользы могут быть самыми разными: от оперативной актуализации значений до уничтожения данных, от их использования для совершенствования сложных систем управления до формирования «чемоданов компромата».

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

Достаточно консервативны и концепции баз данных. Эта консервативность не только следствие свойства «долговечности», но и того факта, что базы вторичны по отношению к описываемым ими реальным процессам и объектам, достаточно стабильным и типичным. Кроме того, модели данных строились в значительной степени «по аналогии» с организационными и технологическими структурами – иерархическими, сетевыми, матричными.

 

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

Но, как было отмечено ранее, база данных - это важная, но не основная (функционально), а обеспечивающая (информационная) составляющая некоторой, обычно, достаточно крупной человеко-машинной системы. И здесь интересно отметить принципиальное отличие в развитии способностей взаимодействующих субъектов (человек-машина). Разделение  информации на табличную (числовую), текстовую  и графическую отражает последовательность, в которой эти виды информации "осваивались" компьютерами. Первые языки программирования были рассчитаны исключительно на обработку числовой информации (Fortran, Algol). Первыми появляются и табличные базы данных, также преимущественно рассчитанные на обработку числовых таблиц (файлов). Затем осваиваются текстовые файлы и текстовые БД (автоматизированные информационно-поисковые системы с библиографическими и полнотекстовыми базами). Наконец, с существенным повышением быстродействия и ёмкости памяти компьютеров, на сцену выходят графические и мультимедийные базы.

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

 

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

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

 

Базы данных – это уже достаточно хорошо проработанная научная дисциплина. Существует множество, в том числе и фундаментальных, работ и учебников (на материал которых авторы опирались при подготовке этого учебника, и убедительно рекомендуют их тем, кто серьезно интересуется этой проблематикой), среди которых необходимо выделить такие монографии, как «Организация баз данных в вычислительных системах» Дж. Мартина, «Введение в системы баз данных» К. Дейта, «Алгоритмы и структуры данных» Н. Вирта, «SQL» Дж. Гроффа и П. Вайнберга.

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

 

Материал курса, представленный в одиннадцати главах и приложении, условно можно отнести к следующим разделам:

-        введение в машинную обработку данных и структуры данных;

-        общесистемные основы и технологии проектирования баз данных;

-        язык управления данными (SQL);

-        основы организации и технологии доступа к данным.

 

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

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

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

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

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

В главе 6 описывается пример проектирования реляционной базы данных, включая технологию проектирования и нормализации отношений.

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

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

Глава 9 посвящена понятию «транзакция», рассматриваемого как основа технологии параллельной обработки данных. Обсуждаются модели транзакций и способы управления транзакциями.

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

Глава 11 кратко характеризует основные проблемы и направления развития систем баз данных. Рассматривается объектно-ориентированная парадигма, хранилища данных, работа с базами данных в Internet.

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

 

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

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

 

 

К оглавлению

Вперед к разделу "Глава 1. Введение в базы и банки данных"



[1] Правильнее было бы говорить, что данные создаются, но создаются не ради их самих, а для того, чтобы в дальнейшем они были использованы в каком-то процессе.