- •20.7. Средства sql
- •20.8. Резюме
- •21.1. Введение
- •21.2. Некоторые аспекты технологам поддержки принятия решений
- •21.3. Проектирование базы данных поддержки принятия решений
- •21.5. Хранилища данных и магазины данных
- •21.6. Оперативная аналитическая обработка
- •21.7. Разработка данных
- •21.8. Резюме
- •22.1. Введение
- •22.2. Хронологические данные
- •22.3. Основная проблема хронологических баз данных
- •22.4. Интервалы
- •22.5. Интервальные типы
- •22.6. Скалярные операторы для интервалов
- •22.7. Операторы обобщения для интервалов
- •22.8. Реляционные операторы для обработки интервалов
- •22.9. Ограничения, включающие интервалы
- •22.10. Операторы обновления, включающие интервалы
- •22.11. Проектирование базы данных
- •22.12. Резюме
- •23.1. Введение
- •23.2. Обзор основных концепций
- •23.3. Исчисление высказываний
- •23.4. Исчисление предикатов
- •23.5. Базы данных с точки зрения доказательно-теоретического подхода
- •23.6. Дедуктивные субд
- •23.7. Обработка рекурсивных запросов
- •23.8. Резюме
- •Часть VI
- •24.1. Введение
- •24.2. Объекты, классы, методы и сообщения
- •24.3. Еще раз об объектах и объектных классах
- •Cdo для класса set (ref(emp))
- •24.4. Простой пример
- •1 | Course с001 , с001 0ffs , с001 ny offs |
- •24.5. Дополнительные аспекты
- •24.6. Резюме
- •25.1. Введение
- •X2 rational, y2 rational ) ... ;
- •25.2. Первая грубейшая ошибка
- •25.3. Вторая грубейшая ошибка
- •25.4. Вопросы реализации
- •25.5. Преимущества реального сближения двух технологий
- •25.6. Резюме
22.1. Введение
Замечание. Автор оригинального текста этой главы — Хью Дарвен (Hugh Darwen).
Хронологическая база данных — это, говоря упрощенно, база данных, содержащая исторические накопленные данные вместо (или кроме) текущих данных. Такие базы данных начали активно исследоваться с середины 70-х годов. В некоторых из исследований была принята крайняя точка зрения, согласно которой информация в подобные базы данных только вносится и никогда не удаляется и не обновляется (см. обсуждение хранилищ данных в предыдущей главе), поэтому база данных содержит только исторические данные. Другая крайность— базы данных типа моментальный снимок1, которые содержат только текущие данные, удаляемые или обновляемые, когда содержание этих данных уже не соответствует действительности. Иными словами, база данных типа моментального снимка — это просто база данных в обычном понимании, а вовсе не хронологическая база данных.
В качестве примера еще раз рассмотрим базу данных поставщиков и деталей, представленную на рис. 3.8. Безусловно, эта база данных имеет тип моментального снимка. Например, в ней содержатся сведения о текущем статусе поставщика с номером 'S1', который в данный момент равен 20. Однако в хронологической версии этой базы данных был бы отражен не только текущий статус поставщика с номером 'S1', равный 20, но также было бы указано, что его статус равен 20 с 1 июля, а, скажем, с 5 апреля по 30 июня его статус был равен 15, и т.д.
В базе данных типа моментального снимка временем выполнения этого снимка обычно считается "данный момент времени", т.е. время, в которое база данных фактически рассматривается. Даже если время выполнения моментального снимка на самом деле отличается от "данного момента времени", это не имеет особого значения для сопровождения и использования данных, которые помещены в моментальный снимок. Однако, как мы вскоре убедимся, в хронологических базах данных сопровождение и использование данных во многом отличается от обычных баз данных, чему и посвящена эта глава.
Не
имеют ничего общего с моментальными
снимками, описанными в главе 9.
Философский вопрос. Имеет ли время начало и/или конец?
Научный вопрос. Время непрерывно или представляет собой дискретные кванты?
Психологический вопрос. Как лучше всего определить такое важное понятие, как данный момент времени, которое часто называют моментом пересылки?
Хотя эти вопросы, возможно, и интересны сами по себе, они не являются вопросами исключительно теории баз данных, поэтому в данной главе мы не будем в них углубляться. Вместо этого там, где это необходимо, мы просто будем делать некоторые (надеюсь, достаточно разумные) предположения, что позволит уделить больше внимания аспектам, которые непосредственно относятся к общей задаче, поставленной при написании книги. Однако необходимо отметить, что некоторые из исследований свойств времени привели к интересным обобщениям, которые неопровержимо доказывают, что идеи, разработанные для поддержки хронологических данных, могли бы иметь применение и в других областях. (Несмотря на последнее высказывание мы будем следовать обычной практике использования понятий "хронологические ключи", "хронологические операторы", "хронологические отношения" и т.д., хотя часто они применимы не только к хронологическим базам данных как таковым.)
Предупреждение автора! Учитывая сказанное выше, мы сосредоточим внимание лишь на самых интересных и важных идеях, полученных в результате проведенных исследований. Иными словами, в настоящей главе предпринята попытка извлечь и рассмотреть "лучшие стороны" исследований, хотя это и будет отклонением от принятого в литературе перечня рассматриваемых вопросов и других условностей. Предупредим, что лишь некоторые из рассматриваемых здесь технологий можно встретить в какой-либо коммерческой СУБД. На наш взгляд, причины такого состояния дел следующие.
Дисковая память лишь совсем недавно стала настолько дешевой, что хранилища исторических данных большого объема стали практически реализуемыми. Однако, как указывалось в главе 21, "хранилища данных" сейчас становятся обыденной реальностью. Поэтому пользователи будут все чаще сталкиваться с проблемами, связанными с хронологическими базами данных, и нуждаться в их решении.
Хотя большинство, если не все, из описанных здесь возможностей реализованы в виде прототипов, их внедрение в существующие продукты— особенно в SQL-продукты (поскольку язык SQL все больше отклоняется от реляционной модели вместо того, чтобы ей следовать) — может стать пугающей перспективой. Помимо этого, большинство разработчиков сейчас заняты попытками реализовать поддержку объектно-реляционных баз данных (глава 25).
Мнение сообщества исследователей относительно того, какой именно подход является лучшим для решения данной проблемы, по-прежнему в определенной мере разделено, и такое отсутствие единства также оказывает влияние на разработчиков. Одни исследователи отдают предпочтение весьма специализированному подходу (предусматривающему определенное отклонение от реляционных принципов), приспособленному конкретно для хронологических баз данных, но в этом случае остаются нерешенными иные проблемы (см.,
например, [22.4]). Другие же отдают предпочтение более общим операторам,
которые при необходимости могли бы служить основой для реализации специализированного подхода, не отступая при этом от основных реляционных принципов (см., например, [22.3]). Излишне говорить, что мы поддерживаем именно последний подход.
Структура этой главы будет рассмотрена в следующем разделе.