Cтраница 3
Команда GET UNIQUE требует аргумента поиска сегмента для каждого типа сегмента вдоль пути от корневого до целевого типа сегмента, но в других командах они факультативны. [31]
![]() |
Спецификация сегмента переменной длины НАЗНАЧЕНИЕ. [32] |
Последовательные выборки обычно выполняются в соответствии с порядком, определяемым значениями ключа. Средство вторичного индексирования позволяет вам последовательно выбирать сегменты или осуществлять поиск сегментов в порядке, отличном от обычной иерархической упорядоченности. Как правило, применение вторичного индекса прозрачно для прикладной программы, но существуют некоторые случаи, когда вам следует об этом знать. Мы не будем здесь глубоко вникать в вопросы проектирования или реализации вторичных индексов, которые являются прерогативой АБД, а попыта ем я лишь определить несколько терминов, необходимых для описания вторичного индекса, покажем, как они могут использоваться, и дадим несколько примеров, иллюстрирующих их влияние на прикладную программу. [33]
![]() |
Аргументы поиска сегмента.| Входная перфокарта программы выборки. [34] |
Код функции, адрес РСВ и адрес области ввода-вывода необходимы в случае выборки сегмента. Дополнительно ( но необязательно) вы можете специфицировать от одного до пятнадцати элементов, называемых аргументами поиска сегмента, или SSA, которые продолжают описание вашего запроса. [35]
Группы позволяют отделить активно используемые данные от редко используемых, что повышает производительность базы данных благодаря уменьшению пути поиска следующего требуемого сегмента от текущего. В методе доступа HISAM группы позволяют сократить число физических операций ввода-вывода вследствие уменьшения числа просматриваемых при поиске блоков. Как для метода доступа HISAM, так и для методов доступа HD наблюдается тенденция к уменьшению числа физических операций ввода-вывода ( числа блоков, передаваемых по каналам ввода-вывода во вторичную память или из нее) вследствие повышения вероятности расположения искомого сегмента в одном и том же блоке с текущим сегментом. Для баз данных с методом доступа HISAM группы обеспечивают также дополнительное повышение производительности за счет прямого доступа к сегментам второго уровня без предварительного доступа к корневым сегментам. В помощь проектировщику при решении подобных задач процедуры логического проектирования могут в удобной форме представить данные о коэффициентах производительности, длинах и числе экземпляров сегментов. [36]
![]() |
Представление сегмента БОЛЬНИЦА для прикладной программы. [37] |
В функции АБД при проектировании базы данных БОЛЬНИЦА входит решение вопросов не только о том, что будет храниться в каждом из сегментов, но и о том, какие из полей внутри каждого сегмента могут служить для DL / 1 ключевыми, а какие - поисковыми. Допустим, мы решили, что сегмент БОЛЬНИЦА должен содержать название больницы, ее адрес и номер телефона и что ни одно приложение никогда не потребует от DL / 1 поиска сегмента по полям адресов или номеров телефонов. Единственное поле, которое будет представлять интерес для DL / 1 - это поле названия больницы. На рис. 3.1 показано, как представляется сегмент БОЛЬНИЦА прикладной программе, осуществляющей его поиск. Но, если речь идет о DL / 1, сегмент БОЛЬНИЦА будет представляться так, как показано на рис. 3.2 для случая, когда DL / 1 манипулирует этим сегментом. [38]
Выбор единицы наблюдения критериев сегментации зависит от товара и фазы развития рынка, на котором осуществляется сегментация. На начальных этапах развития конкретного товарного рынка предприятие концентрирует усилия на уровне товара; с увеличением числа конкурентов предприятие вынуждено дифференцировать предложение. Начинается поиск сегментов на марочном уровне для определения различий в предпочтениях у потребителей одного и того же товара. Сегменты могут быть сформированы на основе предпочтений различных свойств товара. Следовательно, с развитием товарного рынка повышается степень необходимости выделения отдельных сегментов, а также повышаются требования к обоснованности выбора критериев сегментации. [39]
В частности, если при этом возникает ошибка, связанная с отсутствием искомого сегмента, управление передается обработчику ошибок сегментов, который запоминает необходимые атрибуты сегмента в соответствующем сегменте-описателе и сбрасывает бит ошибки сегмента в сегменте связи. Обработчику ошибок сегментов в нашей модели соответствует базовая файловая система. В процессе поиска сегмента SQRT обработчик просмотрит находящуюся в памяти таблицу сегментов, чтобы определить, не загружен ли уже искомый сегмент. Если в таблице нет соответствующей ссылки, сегмент SQRT загружается. После того как сегмент помещается в память, обработчик ошибок сегментов помещает номер сегмента, его адрес и информацию о праве доступа по отношению к заданию с номером 1 в сегмент-описатель. Если бы сегмент SQRT был загружен в сегмент другого задания, это привело бы к установке других битов доступа. [40]
![]() |
Структура директивы загрузки загрузить. [41] |
После загрузки данного сегмента с описан нем внутреннего сегмента описание займет три ячейки. Первые две ячейки остаются свободными, а в третьей располагается имя внутреннего сегмента, который будет загружаться. По этому имени происходит поиск загружаемого сегмента на магнитных лентах системной или личной библиотеки. При каждой загрузке внутреннего сегмента в первых двух ячейках его описания во внешнем сегменте программа ЗАГРУЗЧИК размещает базисные адреса головной программы загружаемого сегмента. В разрядах А2 первой из трех ячеек описания внутреннего сегмента находится нулевой базисный адрес АБО, определяющий адрес перехода при обращении к загруженному сегменту. [42]
![]() |
Структура директивы загрузки загрузить. [43] |
Первые две ячейки остаются свободными, а в третьей располагается имя внутреннего сегмента, который будет загружаться. По этому имени происходит поиск загружаемого сегмента на магнитных лентах системной или личной библиотеки. При каждой загрузке внутреннего сегмента в первых двух ячейках его описания во внешнем сегменте программа ЗАГРУЗЧИК размещает базисные адреса головной программы загружаемого сегмента. В разрядах Л 2 первой из трех ячеек описания внутреннего сегмента находится нулевой базисный адрес АБО, определяющий адрес перехода при обращении к загруженному сегменту. [44]
![]() |
Сегмент ПАЦИЕНТ. [45] |