Скачиваний:
103
Добавлен:
02.05.2014
Размер:
2.54 Mб
Скачать

22.4. Интервалы

А теперь займемся разработкой соответствующего набора сокращений. Первый и наиболее важный шаг— понять необходимость применения интервалов как таковых вместо того, чтобы интерпретировать их как пары отдельных значений, как мы это дела­ли до сих пор.

Что же конкретно представляет собой интервал времени? Согласно рис. 22.3 постав­щик с номером 'S1' мог поставлять деталь с номером 'Pi' в течение интервала с дня4 по день 10. Но что означает выражение "интервал с дня 4 по день 10"? Ясно, что дни 5, 6, 7, 8 и 9 в него включаются, но что можно сказать о начальной и конечной точках, о днях 4 и 10? Оказывается, задавая некоторый конкретный интервал, мы иногда считаем, что указанные начальная и конечная точки включаются в интервал, а иногда — нет. Если интервал с дня 4 по день 10 включает день 4, то говорят, что он закрыт относительно его начальной точки, в противном случае говорят, что интервал открыт относительно его начальной точки. Точно так, если интервал включает день 10, то говорят, что он за­крыт относительно его конечной точки, в противном случае говорят, что интервал от­крыт относительно его конечной точки.

Поэтому принято обозначать интервал начальной и конечной точками (именно в этом порядке), предваряя его открывающей квадратной скобкой или открывающей круглой скобкой и заключая его закрывающей квадратной скобкой или закрывающей круглой скобкой. Квадратные скобки используются, когда интервал закрыт, а круглые скобки — когда он открыт. Таким образом, интервал, например, с 4 по 10 день, можно обозначить четырьмя различными способами.

[d04,dl0] [d04,dll) (d03,dl0) (d03,dll)

Замечание. Вам может показаться странным, например, что используются откры­вающая квадратная скобка и закрывающая круглая скобка. Однако есть веские причины использования всех четырех вариантов обозначения интервалов. В действительности на практике наиболее часто используется так называемый "закрыто-открытый" вариант (открывающие квадратные скобки и закрывающие круглые скобки)6.

Однако "закрыто-закрытый" вариант (открывающие квадратные скобки и закрываю­щие квадратные скобки), несомненно, наиболее интуитивно понятный, и поэтому мы бу­дем отдавать предпочтение именно ему.

6 Чтобы понять, почему "закрыто-открытый" вариант интервала может быть более предпочтительным, рассмотрим операцию разбиения интервала [U0$,Ul(l] перед, скажем, днем d07. В результате получим смежные интервалы /d04,d07 ) и fd07,d!0 ).

Поскольку интервалы, такие как[d04,dl0], сами по себе являются значениями, имеет смысл объединить атрибуты FROM и ТО переменной-отношения, скажем, SP FROMJTO (см, рис. 22.3),,в отдельный атрибут DURING, значения которого берутся из интервального типа (подробности приводятся в следующем разделе). Непосред­ственное преимущество этой идеи заключается в том, что отпадает необходимость в произвольном выборе одного из двух потенциальных ключей ([S#,FROM] или [SI,ТО]) в качестве первичного. Еще одно преимущество состоит в том, что теперь не нужно решать, как интерпретировать интервалы FR0M-T0, показанные на рис. 22.3, — как закрытые или как открытые по отношению к каждому значению ат­рибутов FROM и ТО. Фактически интервалы [d04,dl0], [d04,dll), (d03,dl0) и (d03,dll) теперь становятся четырьмя отдельными возможными представлениями одного и то же интервала и нам нет необходимости знать, каково реальное пред­ставление. К тому же к преимуществам можно отнести и то, что ограничения пере­менной-отношения для предотвращения появления "ошибочных пар атрибутов FR0M-T0, в которых точка ТО предшествует точке FROM" (как указывалось в разде­ле 22.3) больше не нужны, поскольку ограничение "FROM < ТО" подразумевается в самом понятии интервального типа. Также является преимуществом то, что теперь не придется иметь дело с "хронологическими ключами", которые на самом деле та­ковыми не являются (в классическом понимании этого термина), как указывалось в разделе 22.9. Остальные ограничения, которые рассматривались в разделе 22.9, так­же могут быть упрощены. На рис. 22.4 показано, как изменится наш пример базы данных, если использовать этот новый подход.

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]