Введение в системы БД (542480), страница 225
Текст из файла (страница 225)
Приведем три примера. 1. С поставщиком с номером 'Я!' был заключен договор (т.е. подписан контракт) от 1 июля 1999 года. 2. Договор с поставщиком с номером 'Б1' действителен с 1 июля 1999 года. 3. Договор о поставках с поставщиком с номером 'Я!' имеет силу на период с 1 июля 1999 года и по настоящий день. Каждое из этих высказываний представляет собой возможную интерпретацию кортежа с двумя атрибутами: номером поставщика со значением 'Я!' и временной отметкой '1 июля 1999 года'.
Причем каждое из этих высказываний может соответствовать кортежу, который содержится в базе данных типа моментального снимка, представляющей текущее состояние некоторого предприятия. Выделенные слова от, с и на период характеризуют эти различные интерпретации. Зачечанае. Везде в этой главе слова "с" и "на период'" будут использоваться исключительно в смысле "с тех пор" и "в течение всего времени" (рассматриваемого периода) соответственно, если противное не будет указано явно. Хотя здесь приведены три возможные интерпретации, можно возразить, что во всех этих высказываниях в действительности говорится об одном и том же, но с использованием различных выражений.
На самом деле высказывания 2 и 3 считаются равносильными, а высказывания 1 и 2 (или 1 и 3) — нет. Покажем, что это действительно так. ° В высказывании 1, безусловно, утверждается, что с поставщиком с номером 'Я!' договор о поставках не был заключен до определенной даты (30 июня 1999 года), которая непосредственно предшествует указанной дате подписания контракта. В высказывании 2 этот факт не утверждается и из него никак не следует. 856 Часть г'. Дополнительные аспекты ° Предположим, что сегодня ("текущий день") 25 сентября 2000 года.
Тогда в высказывании 2, безусловно, утверждается, что заключенный с поставщиком с номером ' 51' договор был действителен каждый день, начиная с 1 июля 1999 года и по 25 сентября 2000 года включительно. Однако в высказывании 1 этот факт не утверждается и не подразумевается. Таким образом, высказывания 1 и 2 не равносильны и не следуют одно из другого. Кортежи в базах данных типа моментального снимка часто включают элементы со значением "указанная дата". В этом случае в качестве подразумеваемой интерпретации чаще всего понимаются высказывания, подобные высказыванию 2 (или 3). В рассмотренном выше примере высказывание 1 в той форме, в которой оно прелставлено, является не совсем точной интерпретацией заданного кортежа. Точнее, его следовало бы сформулировать так: "Договор с поставщиком с номером '51' был заключен не раннее 1 июля 1999 года".
Более того, если эта версия высказывания 1 действительно соответствует тому, что подразумевается пол данным гипотетическим кортежем с двумя атрибутами, то высказывание 2 в его приведенной форме также представляет собой не совсем точную интерпретацию. Корректнее было бы сформулировать его так: "Договор с поставщиком с номером 'Я!' не был заключен до 30 июня 1999 года, но 1 июля 1999 года он действительно был заключен". Обратите внимание, что высказывание 1 отражает момент, в который имело место определенное событие, в то время как высказывания 2 и 3 отражают интервал времени, на период которого сохраняется определенное состояние.
Здесь умышленно был выбран пример, в котором об определенном состоянии можно судить исходя из информации, касающейся определенного события. Поскольку договор с поставщиком с номером '81' был заключен не раньше 1 июля 1999 года, договорные отношения с этим поставщиком существуют начиная с этой даты и по настоящее время. В классической технологии баз данных вполне удовлетворительно обрабатываются экземпляры вр«мени (время, когда произошло событие), однако совсем плохо обрабатываются интервалы времени, т.е.
периоды времени, в течение которого сохраняется определенное состояние (это будет показано в разделе 22.3). Обратите также внимание, что хотя высказывания 2 и 3 логически равносильны, их формы заметно отличаются. Точнее, форма высказывания 2 не может использоваться для хранения исторических сведений, в то время как форма высказывания 3 это позволяет, если только заменить в нем фразу "по настоящий день" какой-либо явной датой, например 25 сентября 2000 года. (Конечно, тогда высказывание будет соответствовать кортежу с тремя атрибутами, а не с двумя.) Таким образом, можно сделать вывод, что понятие "на период' является очень важным для ведения исторических записей, по крайней мере для данных о состояниях, если не для данных о состоянииз.
Терминазагия. Время, когда произошло определенное событие, или интервал времени, когда сохраняется определенное состояние, иногда называют допустимым временам. Точнее говоря, допустимое время высказывания р — это множество моментов времени, Здесь не лишне было бы замепшть, чта несл~атря на павтаряющевся использование таких терминав, как Щютарические записи". и храналагичгских базах данных могут таклге садгржаться данные, атнасяиазеся к будущему времени. Например, люжет возникнуть неабхадимасть зафиксировать тот факт, что с паспзавщикам с номерам 'б! ' будет заключен дагавар на периад аремени ат а да Ь, где абе даты — будущие даты 857 Глава 22.
Хронологические базы данных когда данному высказыванию доверяют как истинному. Это время отличается от времени транзакции, которое является множеством моментов времени, когда данное высказывание действительно было представлено в базе данных как истинное. Допустимое время может быть обновлено для отображения изменения доверия к высказыванию, а время транзакции — не может.
Время транзакции полностью управляется системой, и ни олин пользователь не может его изменить (обычно это время явно или неявно записывается в журнал транзакций). Замечание. В предыдушем абзаце упоминались интервалы и множества моментов времени, которые неявно представляют хотя и простую, но важную идею, а именно— что интервал с начальным временем в и конечным временем е фактически означает множество таких моментов 1, что в < б < е (где "<" означает, конечно, "раньше чем"). Хотя это простое понятие вполне "очевидно", оно имеет далеко идущие последствия, в чем мы убедимся в последующих разделах.
Большая часть предыдущего обсуждения умышленно была построена так, чтобы у читателя возникли определенные вопросы. Независимо от того, достигнута ли данная цель, перечислим эти вопросы и попытаемся на них ответить. 1. Определяют ли такие выражения, как "множество моментов с, такое, что в < б < е", бесконечные множества элементов, вызываюшие, как и другие бесконечные множества, некоторые концептуальные и вычислительные трудности, характерные для работы с ними? Ответ. Да, сказанное выше имеет место. Но все эти трудности можно обойти, если предположить, что "шкала времени" содержит конечную последовательность дискретных неделимых квантов времени (долей времени). В этом случае интервал с начальным временем в и конечным временем е содержит заведомо конечное число таких квантов.
Замечание. Во многих работах квант времени называется хрононом, Однако при этом сам хронон определяется как интервал (см., например, словарь терминов в [22.21) и подразумевается, что он имеет начальную н конечную точки (возможно, еше точки между ними) и, следовательно, не является неделимым. (Что конкретно представляют собой эти точки? Чем еще они могут быть, кроме хрононов?) Мы считаем, что здесь есть противоречие, и поэтому будем избегать данного термина. 2. В высказываниях 1 — 3, вероятно, подразумевается, что кванты времени — это дни, но система, безусловно, поддерживает отсчет времени с точностью до долей секунды. Если с поставщиком с номером 'Б1' договор был заключен 1 июля 1999 года, а не 30 июня 1999 года, то что можно сказать о периоде от начала суток 1 июля до момента подписания договора с поставщиком с номером ' Б1'? Ответ. Необходимо четко различать кванты времени как таковые, являюшиеся самыми малыми единицами времени, которые могут быть представлены в системе, и единицы времени, используемые для конкретного применения, например год, состояший из месяцев, каждый из которых, в свою очередь, состоит из дней или недель, и т.д.
Подобные единицы мы будем называть моментамн времени, или, для краткости, просто моментами, подчеркивая тем самым, что для наших целей они также рассматриваются как неделимые. Тогда неформально можно 858 Часть К Дополнительные аспекты сказать, что моменты времени являются "отрезками шкалы времени" (т.е. множеством квантов времени), которые продолжаются от границы одного кванта до границы следующего, например от полуночи одного дня до полуночи следующего дня. Поэтому можно сказать, опять-таки неформально, что моменты времени имеют продолжительность (в нашем примере зто один день). Однако формально моменты времени, повторяем, неделимы и понятие протяженности для них ни коим образом не применяется. Замечание. Во многих публикациях для ссылки на моменты времени как мы их определили, используется термин гранула. Однако, к сожалению, как и в случае термина хронон, гранулу рассматривают как интервал.