Предисловие
Основные сведения
За последних 30 лет в области теории систем баз данных была проведена серия исключительно продуктивных исследований. Полученные результаты вполне можно считать наиболее важным достижением информатики. Базы данных стали основой информационных систем и в корне изменили методы работы многих организаций. В частности, развитие данной технологии в последние годы привело к созданию весьма мощных и интуитивно понятных систем. Все это сделало системы баз данных доступными широкому кругу пользователей. К сожалению, кажущаяся простота данных систем способствовала тому, что пользователи стали самостоятельно создавать базы данных и приложения, не имея достаточных знаний о методах проектирования эффективно работающих систем. Поэтому, один раз возникнув, "кризис программного обеспечения", или, как его еще называют, "депрессия программного обеспечения", продолжается и поныне.
Основанием для написания этой книги стал многолетний опыт работы автора в качестве консультанта по проектированию баз данных для создаваемого программного обеспечения, а также по разрешению проблем (что возможно далеко не всегда), вызванных несоответствием существующих систем предъявляемым к ним требованиям. Кроме того, занимаясь преподавательской работой, автор столкнулся с аналогичными проблемами, возникающими в совершенно иной пользовательской среде — среди студентов. Поэтому целью написания данной книги стало создание учебного пособия, в котором ясно и четко были бы изложены практические основы теории баз данных, в частности конкретная методология проектирования баз данных, предназначенная для использования как профессиональными разработчиками, так и непрофессионалами.
Предложенная в этой книге методология работы с реляционными Системами Управления Базами Данных (в дальнейшем — СУБД), доминирующими в настоящее время в бизнес-приложениях, успешно прошла проверку временем как в практической, так и в академической среде. Проектирование баз данных состоит из трех фаз: концептуальной, логической и физической. Первая фаза предусматривает создание концептуальной модели данных, не зависящей от каких-либо физических характеристик. Во второй фазе, назначение которой состоит в создании логической модели данных, концептуальная модель подвергается доработке посредством удаления элементов, которые не могут быть реализованы в реляционных системах. В третьей фазе логическая модель данных преобразуется в физический проект, предназначенный для реализации в среде конкретной целевой СУБД. При этом анализируются структуры хранения данных и методы доступа, необходимые для эффективной работы с базой данных, размещенной на внешних запоминающих устройствах.
Каждая из фаз предлагаемой методологии представлена в виде последовательности этапов. Предполагается, что неопытный проектировщик будет выполнять эти этапы в указанной последовательности, придерживаясь приведенных рекомендаций. Более опытному разработчику не так уж обязательно жестко придерживаться данной методологии, ее, скорее, следует использовать как некую основу или контрольный перечень необходимых действий. Чтобы облегчить читателю процесс изучения методологии и понимания некоторых важных вопросов, в трех главах этой книги дано подробное описание практического примера — учебного проекта, получившего название DreamHome. Помимо этого, в приложении А, "Учебный проект Wellmeadows Hospital", приводится описание еще одного учебного проекта, называемого Wellmeadows Hospital и предназначенного для того, чтобы читатель смог применить на практике предложенную ему методологию.
Что нового во втором издании
Первое издание книги было существенно переработано с целью повысить ее читабельность, обновить или расширить уже существующий и включить новый материал. Ниже перечислены основные изменения, которые были внесены в книгу при подготовке ее второго издания.
- Описание расширенной модели "сущность–связь" (Enhanced Entity-Relationship model — EER), дополненной понятием категоризации.
- Описание нормализации расширено обсуждением четвертой и пятой нормальных форм.
- Методология проектирования баз данных более явно делится на три фазы: концептуальную, логическую и физическую, каждая из которых описана в отдельной главе. Вслед за этой главой идут три главы с описанием учебного примера использования предлагаемой методологии на практике.
- В главе, в которой рассматривается пример физического проектирования базы данных, в качестве целевой СУБД используется СУБД Access фирмы Microsoft.
- Описание языка SQL расширено рассмотрением стандарта Open Database Connectivity (ODBC).
- Если раньше вопросы обеспечения целостности и безопасности данных рассматривались в одной главе, то теперь они разнесены по отдельным главам и описываются более обстоятельно.
- Описание методов управления транзакциями дополнено обсуждением усовершенствованных моделей транзакций.
- Добавлена новая глава об обработке запросов.
- Прежняя глава о распределенных базах данных разделена на две главы. Первая знакомит с понятиями и методами разработки распределенных баз данных, а вторая содержит подробное описание методов управления распределенными транзакциями, поддержки согласованности и восстановления данных, а также включает новый материал о серверах репликации и последней модели обработки распределенных транзакций (Distributed Transaction Processing — DTP), называемой X/Open.
- Прежняя глава об объектных базах данных разбита на три главы. В первой главе сформулированы требования, связанные с дальнейшим усовершенствованием приложений баз данных, а также основные понятия объектно-ориентированной парадигмы. Во второй главе расширен и обновлен материал об объектно-ориентированных СУБД, включающий выпущенную в 1997 году обновленную версию стандарта ODMG (Object Database Management Group). В третьей главе дается существенно расширенное описание новейшей концепции объектно-реляционных СУБД и дополнительно предлагается обзор очередного выпуска стандарта языка SQL — SQL3.
- Добавлена новая глава о Web-технологиях, использующих СУБД.
- Включена новая глава о технологии создания и использования хранилищ данных.
- Добавлена новая глава об оперативной аналитической обработке (Online Analytical Processing — OLAP) и методах так называемой "разработки" данных.
На кого рассчитана эта книга
Эта книга представляет собой учебное пособие для одно- или двух-семестрового курса, посвященного управлению базами данных или проектированию баз данных, для студентов младших и старших курсов, а также для аспирантов. Курсы, как правило, включаются в учебные планы следующих специальностей: информационные системы, информационные технологии в бизнесе, информатика и др.
Кроме того, как справочное пособие эта книга может быть полезна опытным специалистам в области информационных технологий — например, системным аналитикам или проектировщикам, прикладным или системным программистам, разработчикам баз данных, а также всем тем, кто занимается самообразованием. Благодаря широкому распространению баз данных, в наши дни такие профессионалы есть или должны быть в любой фирме, использующей в своей деятельности базы данных.
Желательно, чтобы студенты имели базовые знания об организации файлов и структурах данных. Перед чтением главы 9, в которой описывается физическая структура базы данных, и главы 18, посвященной обработке запросов, рекомендуется ознакомиться с основными понятиями, используемыми в упомянутой области, которые изложены в приложении Б, "Структура данных в файлах с различной организацией". Однако лучше всего, если эти знания будут получены на каком-то предварительном курсе. Если это невозможно, то в таком случае материал приложения Б следует освоить в самом начале курса изучения баз данных — например, непосредственно после главы 1, "Введение в базы данных".
Понимание основ языков программирования высокого уровня, например языка С, весьма желательно при чтении разделов 14.5 и 14.6, которые посвящены вложенным и динамическим операторам языка SQL.
Отличительные особенности книги
- Простая в использовании пошаговая методология концептуального и логического проектирования баз данных, основанная на применении широко распространенной модели "сущность–связь", в сочетании с нормализацией, применяемой в качестве методики проверки. Две главы этой книги посвящены описанию применения данной методологии на практике. Кроме того, в отдельной главе освещается то, какое место занимает проектирование базы данных в процессе разработки всей системы в целом.
- Простая в использовании пошаговая методология физического проектирования баз данных, описывающая процесс преобразования логической модели в проект физической реализации, включая выбор схемы файловой организации и индексов, соответствующих разрабатываемым приложениям, а также анализ необходимости введения контролируемой избыточности данных. В одной из глав этой книги описано практическое использование этой методологии.
- Ясное и понятное представление материала с четко сформулированными определениями, целями и резюме в каждой главе. Для иллюстрации используемых понятий в каждой главе приводятся многочисленные примеры и диаграммы. В главах книги последовательно рассматривается выполнение реального учебного проекта, а в приложении представлен еще один учебный проект, который можно использовать в качестве задания для студентов.
- Расширенное описание новейших формальных и фактических стандартов (язык SQL (Structured Query Language) и язык QBE (Query-By-Example)), а также стандарта на объектно-ориентированные базы данных группы ODMG.
- Две главы с вводным описанием нового стандарта языка SQL (SQL-92), в которых рассматриваются интерактивные и вложенные выражения SQL.
- Глава с вводным описанием языка QBE на примере его использования в СУБД Microsoft Access.
- Полное описание концепций и понятий, связанных с распределенными СУБД и серверами репликации.
- Всестороннее введение в концепции и понятия объектно-ориентированных СУБД (значение которых возрастает с каждым днем), включая обзор стандарта ODMG, а также обширное рассмотрение очередной версии стандарта на язык SQL (SQL3) для объектно-реляционных СУБД.
- Расширенное описание среды World Wide Web как новой платформы для создания приложений баз данных.
- Подробное ознакомление с технологиями хранилищ данных, оперативной аналитической обработки (OLAP) и разработки данных.
- Обсуждение основ реализации систем СУБД, включая управление согласованностью и восстановлением данных, обеспечение безопасности, обработку и оптимизацию запросов.
- Обзор существующих систем и подробный сравнительный анализ трех традиционных моделей данных: реляционной, сетевой и иерархической.
Замечания для преподавателей
Приступая к работе над этой книгой, автор задумывал ее как удобное пособие с доступным изложением материала для любых категорий читателей, независимо от степени их подготовки и опыта работы. Еще до того как было принято решение о запуске этого проекта, личный опыт автора, накопленный благодаря чтению большого количества учебников, а также в результате общения с коллегами, клиентами и студентами, показал, что существует множество вариантов изложения материала, которые могут нравиться или не нравиться отдельным читателям. Имея в виду эти соображения, автор выбрал для книги следующие стиль и структуру изложения.
- В начале каждой главы предлагается перечень рассматриваемых вопросов.
- При введении каждого важного понятия дается его четкое определение, помещенное в рамку.
- Для иллюстрации и пояснения обсуждаемых концепций в книге повсеместно используются таблицы, рисунки и диаграммы.
- С целью поддержания практической ориентации в каждой главе предлагается необходимое количество реальных примеров, иллюстрирующих обсуждаемые понятия.
- В конце каждой главы помещается резюме, содержащее краткое описание представленных в этой главе основных понятий.
- В каждой главе имеется серия обзорных вопросов, ответы на которые можно найти в тексте данной главы.
- Для каждой главы предлагается набор упражнений, которые могут быть использованы преподавателями или всеми желающими с целью проверки уровня понимания прочитанного материала. Ответы на эти вопросы можно найти в отдельном издании "Instructor's Guide" (подробнее об этом — в следующем разделе).
Руководство инструктора
Обширный дополнительный материал с многочисленными учебными ресурсами для этой книги можно получить в издательстве Addison Wesley Longman. Во вспомогательном издании Instructor's Guide (Руководство инструктора) представлен следующий материал.
- Структуры курсов. Содержат рекомендации, касающиеся материала, который следует включить в состав разнообразных курсов.
- Рекомендации для преподавателей. Включают лекции, указания, а также идеи в отношении студенческих проектов, в которых могут использоваться материалы той или иной главы.
- Ответы. Этот раздел содержит ответы и решения всех предлагаемых в данной книге контрольных вопросов и упражнений.
- Экзаменационные вопросы. Подборка экзаменационных задач (аналогичных вопросам и упражнениям, приведенным в этой книге) с решениями.
- Образцы прозрачных пленок. Набор прозрачных пленок, предназначенных для проецирования на экран увеличенного изображения иллюстраций и таблиц из этой книги, которые помогут инструктору связать материал лекций и семинарских занятий с материалами этого учебного пособия. Кроме того, прилагается набор прозрачных пленок с лекционными заметками по материалам основных глав этой книги.
Дополнительную информацию о руководстве инструктора и этой книге можно найти на Web-сервере издательства Addison Wesley Longman (http://www.awl-he.com/computing).
Структура этой книги
Часть I. Основные сведения
Часть I, "Основные сведения", этой книги содержит вводное описание концепций систем баз данных и методов проектирования баз данных, а также знакомит читателя с реляционной моделью, которой и уделяется основное внимание.
В главе 1, "Введение в базы данных", дается вводное описание основ управления базами данных, перечень проблем, существовавших при работе с предшественниками систем баз данных (т.е. с файловыми системами), а также приводится перечень преимуществ, достигаемых за счет использования баз данных. Здесь же дается описание учебного проекта DreamHome, который подробно рассматривается в этой книге и постоянно используется в качестве примеров.
В главе 2, "Среда базы данных", рассматривается среда базы данных, обсуждаются преимущества трехуровневой архитектуры ANSI-SPARC, дается вводное описание самых популярных моделей данных, а также предлагается обзор функций, которые должны быть представлены в многопользовательской СУБД. В этой главе также рассматривается базовая архитектура программного обеспечения СУБД, изучение которой можно пропустить при первом знакомстве с основами управления базами данных.
В главе 3, "Реляционная модель", приведено вводное описание понятий, лежащих в основе реляционной модели — наиболее популярной в настоящее время модели данных, которая чаще всего выбирается для типичных бизнес-приложений. После описания терминологии и представления связей с математическим понятием "отношения" рассматриваются правила поддержки целостности отношений, целостности сущностей и ссылочной целостности данных.
Введение в реляционную алгебру и реляционное исчисление дано с представлением необходимых примеров, иллюстрирующих все операции. Его можно пропустить при первом знакомстве с основами управления базами данных. Однако знание основ реляционной алгебры необходимо для понимания принципов обработки запросов (глава 18) и фрагментации в распределенных СУБД (глава 19). Помимо этого, сравнительный анализ процедурной алгебры и непроцедурного исчисления может рассматриваться как полезное (хотя и не обязательное) введение перед изучением языка SQL, рассматриваемого в главах 13 и 14. Эта глава завершается обзором представлений, которые более подробно рассматриваются в главе 14.
В главе 4, "Планирование, проектирование и администрирование базы данных", завершается вводное описание, составляющее первую часть книги. В ней представлен обзор основных этапов разработки и применения, т.е. всего жизненного цикла, информационных систем, а также обсуждается их связь с этапом создания приложений баз данных. В частности, подчеркивается важность проектирования баз данных и разъясняется, как этот процесс можно разделить на три фазы: концептуальную, логическую и физическую. Также рассматривается, как проектирование приложения (функциональный подход) влияет на проектирование базы данных (подход, основанный на данных). Решающим моментом всего процесса создания приложения баз данных является выбор подходящей целевой СУБД. В этой главе рассматривается процесс выбора СУБД и приведены некоторые указания и рекомендации. Завершается глава обсуждением важности администрирования данных и администрирования базы данных.
Часть II. Методология
В части 2, "Методология", этой книги излагается методология концептуального, логического и физического проектирования баз данных для реляционных СУБД.
В главе 5, "Модель "сущность–связь", рассмотрены концепции предложенной Ченом модели "сущность–связь", или ER-модели (Entity-Relationship — ER), и расширенной ER-модели (Enhanced Entity-Relationship — EER), позволяющей разрабатывать более совершенные модели данных с использованием подклассов и суперклассов, включая специализацию/генерализацию и категоризацию. EER-моделирование представляет собой популярную технологию разработки высокоуровневой концептуальной модели данных и служит базовой технологией в представленной здесь методологии проектирования баз данных. Для демонстрации создания EER-модели используется рабочий пример — учебный проект DreamHome.
В главе 6, "Нормализация", рассматриваются основные концепции нормализации — еще одной важной технологии, широко используемой в методологии логического проектирования баз данных. На рабочих примерах из учебного проекта DreamHome показано, как следует выполнять переход от макета, созданного в одной нормальной форме, к макету в другой нормальной форме, а также продемонстрированы преимущества, достигаемые за счет выполнения логического проектирования баз данных в соответстви с требованиями различных нормальных форм, вплоть до пятой нормальной формы.
В главе 7, "Методология концептуального проектирования баз данных", представлена пошаговая методология концептуального проектирования баз данных. Показано, как разложить общее предметное поле проекта на составные и более управляемые части, руководствуясь отдельными пользовательскими представлениями, а также предложены рекомендации для идентификации сущностей, атрибутов, отношений и ключей.
В главе 8, "Методология логического проектирования реляционных баз данных", представлена пошаговая методология логического проектирования реляционных баз данных. Показано, как концептуальная модель данных преобразуется в логическую модель данных, после чего выполняется проверка ее корректности в отношении необходимых транзакций и на соответствие общим требованиям нормализации. В завершение описания методологии логического проектирования показано, как объединить созданные локальные модели данных в единую глобальную модель данных, которая содержит все пользовательские представления для моделируемой области деятельности предприятия.
В главе 9, "Методология физического проектирования реляционных баз данных", представлена пошаговая методология физического проектирования реляционных баз данных. Показано, как можно преобразовать глобальную модель данных, разработанную во время логического проектирования базы данных, в физический проект для выбранной (целевой) реляционной СУБД. Эта методология позволяет добиться повышения производительности полученной реализации базы данных за счет использования рекомендаций по выбору файловой организации и структур хранения данных, а также за счет применения денормализации, т.е. введения контролируемой избыточности данных.
В главах 10, "Пример разработки концептуального проекта базы данных", и 11, "Пример разработки логического проекта базы данных", рассматривается вполне реалистичный учебный пример применения методологии концептуального и логического проектирования базы данных в проекте DreamHome. Эти главы иллюстрируют процесс создания и проверки корректности локальных моделей данных для двух пользовательских представлений, а также методы их слияния с целью получения обобщенного глобального представления.
В главе 12, "Пример разработки физического проекта базы данных", предлагается конкретный пример использования методологии физического проектирования базы данных в учебном проекте DreamHome. Он иллюстрирует практическую реализацию части глобальной логической модели данных, предложенной в главе 11, в среде целевой СУБД Microsoft Access.
Часть III. Языки баз данных
В части III, "Языки баз данных", описываются два основных языка реляционных СУБД: SQL и QBE.
В главе 13, "Язык SQL", дается описание стандарта языка SQL выпуска 1992 года — SQL-92. Эта глава представляет собой вводный курс с рядом рабочих примеров, которые демонстрируют основные концепции языка SQL. Основное внимание в ней уделяется операторам управления данными: SELECT, INSERT, UPDATE и DELETE. Здесь также описаны типы данных, принятые в SQL-92, и показаны основные типы операторов определения данных.
В главе 14, "Дополнительные средства языка SQL", рассмотрены дополнительные возможности стандарта SQL-92. Эта глава также является вводным курсом. В ней рассматриваются представления, средства поддержки целостности (Integrity Enhancement Feature — IEF) и дополнительные возможности операторов определения данных, в том числе операторов управления доступом GRANT и REVOKE. Здесь же рассматриваются вложенные и динамические операторы SQL (в сочетании с примерами простых программ на языке С). В этой главе также обсуждается стандарт ODBC (Open Database Connectivity), который фактически стал промышленным стандартом доступа к гетерогенным базам данных SQL. При предварительном изучении СУБД три последних раздела этой главы можно пропустить.
В главе 15, "Язык QBE", на практических примерах показано использование интерактивного языка запросов по образцу — Query-by-Example (QBE), — который приобрел репутацию одного из самых простых средств доступа к информации в базах данных и вполне доступен даже начинающим пользователям. Возможности языка QBE продемонстрированы на примере конкретной целевой СУБД — Microsoft Access.
Часть IV. Некоторые аспекты эксплуатации баз данных
В части IV, "Некоторые аспекты эксплуатации баз данных", рассмотрены три специальные темы, которые, по мнению автора, необходимо включать в любой современный учебный курс по СУБД.
В главе 16, "Защита баз данных", рассмотрены вопросы защиты базы данных, причем не только в контексте безопасности самой базы данных, но и в контексте защиты всей среды СУБД. В этой главе обсуждаются различные решения, как связанные с компьютерами, так и не связанные с ними. Глава завершается рассмотрением методов анализа риска.
В главе 17, "Управление транзакциями", основное внимание сконцентрировано на трех функциях, которые должны поддерживать любые современные СУБД: на управлении транзакциями, средствах поддержки согласованности данных и средствах восстановления. Эти функции предназначены для поддержания стабильности и непротиворечивости базы данных при одновременном доступе к ней большого количества пользователей, а также при наличии сбоев отдельных компонентов аппаратного и программного обеспечения. В этой главе также обсуждаются усовершенствованные модели управления транзакциями, которые более пригодны для транзакций с длительным временем выполнения.
В главе 18, "Обработка запросов", описываются вопросы обработки и оптимизации запросов. В ней рассмотрены две основные технологии оптимизации запросов: использование эвристических правил, которые упорядочивают операторы запроса, и технология, которая сравнивает различные стратегии на основе оценки относительных затрат и выбирает ту, которая позволяет минимизировать использование ресурсов.
Часть V. Новые направления
В части V, "Новые направления", описываются распределенные СУБД и объектно-ориентированные СУБД.
Технология распределенных СУБД является одним из важнейших текущих достижений в области систем баз данных. Предыдущие главы этой книги были посвящены централизованным СУБД — т.е. системам с единственной логической базой данных, расположенной в одном месте (на одном компьютере), под управлением единственной СУБД.
В главе 19, "Концепции и разработка распределенных СУБД", обсуждаются концепции и назначение распределенных СУБД, при работе с которыми пользователи могут осуществлять доступ к базам данных, расположенным не только на их собственном компьютере, но и на других удаленных компьютерах. Существует мнение, что в течение следующих нескольких лет централизованные СУБД станут "антикварной редкостью", поскольку в большинстве организаций они будут заменены распределенными СУБД.
В главе 20, "Распределенные СУБД — дополнительные концепции", рассматриваются более глубокие понятия, связанные с распределенными СУБД. В частности, в ней уделяется большое внимание протоколам управления распределенными транзакциями, поддержке согласованности данных, предотвращению взаимных блокировок и процедурам восстановления базы данных. Кроме того, в этой главе обсуждается новый протокол обработки распределенных транзакций X/Open, а также серверы репликации, выступающие в качестве альтернативы распределенным СУБД.
Во всех упомянутых главах этой книги рассматриваются преимущественно реляционная модель и реляционные системы. Это можно объяснить тем, что такие СУБД теперь доминируют в традиционных бизнес-приложениях баз данных. Однако реляционные системы не лишены недостатков, поэтому развитие объектно-ориентированных СУБД можно считать наибольшим достижением в области баз данных, поскольку они позволяют эти недостатки устранить. Суть этой новейшей технологии подробно излагается в главах 21, 22 и 23.
В главе 21, "Введение в объектные СУБД", представлено введение в объектно-ориентированные СУБД, начинающееся с рассмотрения новых типов приложений баз данных, появившихся в последнее время. Здесь же обсуждаются недостатки реляционной модели данных, которая не годится для приложений этих типов, а также рассмотриваются основные концепции объектно-ориентированного подхода.
В главе 22, "Объектно-ориентированные СУБД", рассматриваются объектно-ориентированные СУБД (ОО СУБД), причем глава начинается с введения в объектно-ориентированные модели данных и перманентные языки программирования. В этой главе обсуждаются различия между используемой в обычных СУБД двухуровневой моделью хранения и одноуровневой моделью хранения в ОО СУБД, а также их влияние на доступ к данным. В ней также рассматриваются различные подходы к реализации функций хранения в существующих языках программирования, разные технологии смешивания указателей, управление версиями, схема эволюции и существующие архитектуры ОО СУБД. В этой главе также описывается новая объектная модель, предложенная группой ODMG, которая фактически стала стандартом ОО СУБД, а также показано, как представленная в части II этой книги методология может быть расширена с целью использования в среде объектно-ориентированных баз данных.
В главе 23, "Объектно-реляционные СУБД", описывается объектно-реляционная СУБД, а также подробно рассматриваются функции управления объектами, которые предлагается включить в следующий выпуск стандарта языка SQL — SQL3. В этой главе также обсуждается, как следует модернизировать обработку и оптимизацию запросов с целью более эффективной поддержки расширенного набора типов данных.
Часть VI. Перспективные направления
В заключительной части книги рассматриваются четыре новые области, значение которых возрастает с каждым днем, а именно: интеграция СУБД в среду World Wide Web, использование хранилищ данных, применение технологии оперативной аналитической обработки и поддержка концепции "разработки" данных.
В главе 24, "Web-технологии и СУБД", обсуждается интеграция СУБД в среду World Wide Web. После краткого введения в основы Internet и Web-технологии, в этой главе анализируются возможности использования Web в качестве платформы для развертывания приложений баз данных, а также обсуждаются недостатки и преимущества этого подхода. Рассматривается также несколько других вариантов интеграции СУБД в среду WWW, включая сценарии на языке CGI, серверные расширения, аплеты языка Java, языки сценариев, активные страницы Active Server Pages и универсальный сервер данных Universal Data Server фирмы Oracle. В этой главе также обсуждаются свойственные Web проблемы, связанные с безопасностью данных и приложений, а также предлагаются некоторые способы их разрешения.
В главе 25, "Хранилища данных", обсуждается технология использования хранилищ данных (warehouse): что это такое, история их развития и области применения. Кроме того, в ней описаны достоинства и недостатки, присущие подобным системам. В главе рассматриваются архитектура хранилища данных, его основные компоненты, а также связанные с ним инструменты и технологии. Здесь также обсуждаются концепция магазина данных (data mart) и все вопросы, связанные с разработкой и управлением магазинами данных. Глава завершается описанием подхода к проектированию базы данных, предназначенной для использования в качестве хранилища или магазина данных, создаваемого для обслуживания системы принятия решений.
В главе 26, "OLAP и разработка данных", описываются методы оперативной аналитической обработки (OLAP) и новая технология, получившая название "разработка данных" (data mining). В ней также рассматриваются концепции многомерных баз данных и обсуждаются характеристики трех основных типов инструментов для OLAP-обработки, а именно: инструменты многомерной OLAP-обработки (Multidimensional Online Analytical Processing — MOLAP), реляционной OLAP-обработки (Relational Online Analytical Processing — ROLAP) и среды управляемых запросов (Managed Query Environment — MQE). Здесь же описываются способы расширения SQL для обеспечения функций анализа сложных данных (например, Red Brick Intelligent SQL (RISQL)). Кроме того, в этой главе представлены понятия, связанные с разработкокй данных, приведены основные характеристики операций, технологий и инструментов разработки данных, рассмотрена связь между разработкой данных и хранилищами данных.
Приложения
В приложении А, "Учебный проект Wellmeadows Hospital", вниманию читателей предлагается дополнительный учебный проект — Wellmeadows Hospital, — который может быть использован в качестве шаблона курсового или дипломного проекта.
В приложении Б, "Структура данных в файлах с различной организацией", предлагаются основные сведения о файловой организации и структурах хранения данных, которые необходимо знать, чтобы понимать методологию физического проектирования баз данных, обсуждаемую в главе 9, а также принципы обработки запросов, описываемые в главе 18.
В приложении В, "Сетевая модель данных", излагаются основные сведения о сетевой модели данных.
В приложении Г, "Иерархическая модель данных", приведены основные сведения об иерархической модели данных.
В приложении Д, "Сравнение сетевых, иерархических и реляционных СУБД", дается сравнительный анализ свойств трех традиционных моделей баз данных: реляционной, сетевой и иерархической.
В приложении Е, "Краткий обзор методологии проектирования реляционных баз данных", предложен краткий обзор этапов методологии концептуального, логического и физического проектирования баз данных, представленной в главах 7, 8 и 9.
В приложении Ж, "Примеры Web-сценариев", рассмотрены некоторые примеры Web-сценариев, дополняющие материал главы 24, посвященной интеграции Web и СУБД.
Благодарности от авторов
Эта книга является результатом многолетнего опыта научной и преподавательской работы авторов. Поэтому довольно трудно перечислить всех тех, кто прямо или косвенно помогал нам. Так, в свое время некоторые высказанные идеи могли показаться довольно незначительными, но впоследствии оказали на нас решающее влияние. Мы приносим извинения всем тем, кого забыли упомянуть в этой связи. Но прежде всего особую благодарность и извинения мы хотели бы выразить нашим семьям, которые на протяжении многих лет были забыты, а в моменты наибольшей работы даже игнорировались нами.
За участие в работе над первым изданием мы хотели бы поблагодарить наших редакторов доктора Саймона Пламтри (Simon Plumtree) и Никки Джагера (Nicky Jaeger) за их помощь, одобрение и профессионализм; нашего производственного редактора Мартина Титлера (Martin Tytler) и редактора копирования Лайонела Брауни (Lionel Browne). Мы также хотели бы поблагодарить рецензентов первого издания за их существенные замечания, предложения и рекомендации. В частности, хотелось бы упомянуть Вильяма Х. Гвинна (William H. Gwinn), инструктора Технического Университета Техаса (Texas Tech University); Адриана Ларнера (Adrian Larner) из Университета Де Монфорта, Лечестер (University De Montfort, Leicester); профессора Эндрю Мак-Гетрика (Andrew McGettrick) из Университета Страсклайда (University of Strathclyde); профессора информатики Денниса Мак-Леода (Dennis McLeod) из Университета Южной Калифорнии (University of Southern California); адъюнкт-профессора Жозефины Де-Гузман Мендоза (Josepnine DeGuzman Mendoza) из Калифорнийского Университета (California State University); Джефа Нотона (Jeff Naughton) и профессора А.Б. Шварцкопфа (A.B. Schwarzkopf) из Университета Оклахомы (University of Oklahoma); адъюнкт-профессора Джанпин Сан (Junping Sun) из Нового Юго-Восточного Университета (Nova Southeastern University); адъюнкт-профессора Донована Юнга (Donovan Young) из Технического Университета Джорджии (Georgia Tech); преподавателя информатики доктора Барри Иглстоуна (Barry Eaglestone) из Университета Бредфорда (University of Bradford); Джона Вэйда (John Wade) из фирмы IBM. Мы благодарим и многих других, чьи имена нам известны, за время, затраченное ими на работу над рукописью.
За участие в работе над вторым изданием мы прежде всего хотели бы поблагодарить нашего редактора Салли Мортимор (Sally Mortimore), а также Мартина Клопстока (Martin Klopstock) и Дилана Рейзенбергера (Dylan Reisenberger) из нашей рабочей команды. Мы также хотели бы поблагодарить рецензентов второго издания за их замечания, предложения и советы. В частности, хотелось бы упомянуть Стефано Цери (Stephano Ceri) из Политехнического Университета Милана (Politechnico di Milano); Ларса Жильберга (Larsa Gillberg) из Университета Средней Швеции, Остерсунд (Mid Sweden University, Oestersund); Дона Джутла из Университета Св. Марии, Галифакс, Канада (St Mary’s University, Halifax, Canada); Джули Мак-Канн из Городского Университета Лондона (City University, London); Муниндара Сингха (Munindar Singh) из Государственного Университета штата Северная Каролина (North Carolina State University); Хью Дарвина (Hugh Darwen), Харсели, Великобритания (Hursely, UK); Клода Делобель (Claude Delobel), Париж, Франция (Paris, France); Денниса Мюррея (Dennis Murray), Рединг, Великобритания (Reading, UK); а также сотрудников нашего факультета Джона Кавала (John Kawala) и доктора Питера Кнагса (Peter Knaggs).
Мы также хотели бы выразить свою благодарность Малкольму Бронте-Стюарту (Malcolm Bronte-Stewart) за идею учебного проекта DreamHome, Мойре О’Доннелл (Moira O’Donnell) за тщательную подготовку учебного проекта Wellmeadows Hospital, а также Линдону Мак-Леоду (Lyndonne MacLeod), секретарю Томаса, и Джун Блэкберн (June Blackburn), секретарю Каролин за их помощь и поддержку в течение этих лет.
Томас М. Конноли
Каролин Э. Бегг
Глазго, апрель 1998 года
Благодарности от издателей
Издатели хотели бы выразить благодарность перечисленным ниже фирмам за разрешение опубликовать принадлежащие им материалы: фирме Oracle за любезное разрешение привести рис. 24.13 и 24.14; издательству McGraw-Hill Companies, Inc., Нью-Йорк, за разрешение опубликовать рис. 24.15 , впервые появившийся в статье "Secure Electronic Transactions Protocol" июньского номера журнала BYTE Magazine за 1997 год; корпорации Microsoft Corporation за разрешение включить копию окна броузера Microsoft Internet Explorer — рис. Ж.2; корпорации Netscape Communications Corporation за разрешение использовать копию окна броузера Netscape Navigator — рис. 24.2 и 24.6. Корпорация Netscape Communications Corporation не санкционировала, не спонсировала, не рекомендовала, не одобряла эту публикацию и, таким образом, не отвечает за ее содержание. Логотипы Netscape и Netscape Communications Corporate являются торговыми марками и именами корпорации Netscape Communications Corporation.
Издатели всегда пытались найти владельцев авторских прав и получить их разрешение на публикацию материалов, но в некоторых случаях это сделать было просто невозможно. Мы выражаем благодарность владельцам авторских прав на материалы, которые приведены здесь без упоминания их авторства, и предлагаем им связаться с издателем.