Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Базы данных

Покупка
Основная коллекция
Артикул: 046850.06.01
К покупке доступен более свежий выпуск Перейти
Голицына, О. Л. Базы данных: Учебное пособие / О.Л. Голицына, Н.В. Максимов, И.И. Попов. - 2-e изд., испр. и доп. - Москва : Форум: ИНФРА-М, 2009. - 400 с.: ил.; . - (Профессиональное образование). ISBN 978-5-91134-098-8. - Текст : электронный. - URL: https://znanium.ru/catalog/product/182482 (дата обращения: 04.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.

О. Л. Голицына, Н. В. Максимов, И. И. Попов






БАЗЫ ДАННЫХ





Издание 2-е, исправленное и дополненное





Допущено Министерством образования Российской Федерации в качестве учебного пособия для студентов учреждений среднего профессионального образования, обучающихся по специальностям Автоматизированные системы обработки информации и управления (по отраслям), Программное обеспечение вычислительной техники и автоматизированных систем, Техническое обслуживание средств вычислительной техники и компьютерных сетей














Москва ФОРУМ - ИНФРА-М 2009

УДК 004.6(075.32)
ББК 32.973я723
      Г60





Рецензенты:
доктор физико-математических наук, профессор РГГУ В. А. Орлов; преподаватель Математического колледжа В. П. Агальцов







      Голицына О. Л., Максимов Н. В., Попов И. И.
Г60 Базы данных: учеб. пособие. — 2-е изд., испр. и доп. — М.: ФОРУМ: ИНФРА-М, 2009. — 400 с.: ил. — (Профессиональное образование).

        ISBN 978-5-91134-098-8 (ФОРУМ)
        ISBN 978-5-16-002966-5 (ИНФРА-М)

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

                                                      УДК 004.6(075.32)
                                                      ББК 32.973я723


ISBN 978-5-91134-098-8 (ФОРУМ)
ISBN 978-5-16-002966-5 (ИНФРА-М)

©О. Л. Голицына, Н. В. Максимов, И. И. Попов, 2007
© Издательство «ФОРУМ», 2007

                Предисловие









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

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

Предисловие

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

Предисловие

5

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

Предисловие

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

Предисловие

7

Представлены типовые подходы к идентификации объектов и дана типология запросов атрибутивного поиска описаний объектов. Определены различия между подходами, используемыми в фактографических и документальных базах данных. Приведены основные структуры организации данных, рассматриваемые как базовые конечные средства представления информации в вычислительной среде. Вводится понятие модели данных.
   В гл. 4 приведены типовые модели физической организации данных, акцентирующие внимание на различиях в вариантах структур и связей. Рассматриваются схемы организации данных для линейных, иерархических и сетевых структур. Обсуждаются архитектуры организации данных на уровне файловых компонент. Материал этой главы является ключевым для понимания существа внутримашинной обработки данных и, соответственно, путей построения высокоэффективных систем БД.
   Глава 5 посвящена проблемам моделирования баз данных. Определяются стадии проектирования и объекты моделирования. Обсуждаются отличия подходов к моделированию предметных областей, характерных для фактографических и документальных баз данных. Подробно рассматривается содержание ин-фологического и даталогического этапов проектирования.
   В гл. 6 описывается пример проектирования реляционной базы данных, включая технологию проектирования и нормализации отношений.
   Глава 7 полностью посвящена описанию SQL, который является стандартным языком для работы с реляционными базами данных. Возможности использования операторов языка рассматриваются на серии примеров, иллюстрирующих этапы создания и использования базы данных, описание проектирования которой приведено в предыдущей главе.
   В гл. 8 представлены модели и технологии распределенной обработки данных. Проведен сравнительный анализ базовых архитектур, отражающих характер распределения данных и процессов между компонентами распределенной системы. Рассмотрены типовые технологии и средства доступа к данным, распределенным в узлах вычислительной сети.
   Глава 9 посвящена понятию «транзакция», рассматриваемого как основа технологии параллельной обработки данных. Обсуждаются модели транзакций и способы управления транзакциями.

Предисловие

   Глава 10 знакомит с основными понятиями и процессами управления базами данных в СУБД. Здесь затрагиваются вопросы физического планирования БД, организация управления доступом пользователей к объектам БД, программирование процессов управления обработкой данных (представления, хранимые процедуры, триггеры), а также управление репликациями и резервным копированием.
   Глава 11 кратко характеризует основные проблемы и направления развития систем баз данных. Рассматриваются объектно-ориентированная парадигма, хранилища данных, работа с базами данных в Internet.
   Приложение содержит примерное описание физических структур реальных СУБД. Сравнительный анализ этих примеров позволит прилежному читателю уяснить различия и, что нам кажется важнее, сходство решений, а также практически оценить роль моделей, которым уделялось так много внимания в большинстве глав.
   Данное пособие написано в предположении, что читатели владеют математическими основами баз данных и в том числе реляционной алгеброй, а также знакомы с современными языками программирования.
   Книга также может рассматриваться как введение в проблематику теории и практики информационных систем, основанных на базах данных. Для заинтересованного читателя материал книги должен стать отправной точкой, пособием для освоения специальных разделов, каковыми авторы считают «Информационные системы» и «Проектирование информационных систем», что позволит читателям заменить общие и местами схематичные формулировки и положения строгими выводами и исчерпывающе полными объяснениями и примерами.

Глава 1




                ВВЕДЕНИЕ В БАЗЫ И БАНКИ ДАННЫХ










1.1. Понятие базы и банка данных


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


Рис. 1.1. Схема автоматизированной информационной системы

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

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

   ¹ Следует отметить, что термин «банк данных» используется сравнительно редко, а некоторыми авторами признается даже архаичным.

В современной, в основном переводной литературе, например [4], понятию «банк данных» соответствует понятие системы баз данных, хотя, по нашему мнению, «банк данных» вполне адекватное и более широкое понятие.

К покупке доступен более свежий выпуск Перейти