Тема_8 (1122356), страница 4
Текст из файла (страница 4)
Кузнецов. Базы данных.51 Организация данныхОсновные понятия, цели и общая организация System R (47)Организация внешней памяти в базах данных System R (26) Индексы и кластеризация таблиц Во-вторых, при реализации этого механизма возникают(15) дополнительные синхронизационные проблемы нижнегоуровня (уровня совместного доступа к страницам данных) В частности, наличие прямых ссылок между страницамиданных увеличивает вероятность возникновениясинхронизационных тупиков.Наконец, в-третьих, все эти дополнительные накладныерасходы не окупались преимуществами, предоставляемымимеханизмом связей Действительно, максимального эффекта от использованиясвязей можно достичь только при выполнении операциисоединения двух таблиц, кластеризованных по этой связи,если поле соединения совпадает с полем связывания иусловия, накладываемые на родительскую таблицу, выделяют внем ровно один кортежОчевидно, что такие запросы на практике редки12.11.2009С.Д.
Кузнецов. Базы данных.52 Организация данныхОсновные понятия, цели и общая организация System R (48)Организация внешней памяти в базах данных System R (27) Индексы и кластеризация таблиц Кроме(16)таблиц и индексов при работе System R во внешнейпамяти могут располагаться еще и временные объекты –списки (list)Список – это временная структура данных, создаваемая сцелью оптимизации выполнения SQL-запроса, содержащая некоторые кортежи хранимой таблицы базыданных, не имеющая имени и, следовательно, не видимая на уровне интерфейса SQLКортежи списка могут быть упорядочены по возрастанию илиубыванию полей соответствующей таблицыСредства работы со списками имеются в интерфейсе RSS,но их, естественно, нет в SQL12.11.2009С.Д.
Кузнецов. Базы данных.53 Организация данныхОсновные понятия, цели и общая организация System R (49)Организация внешней памяти в базах данных System R (28) Индексы и кластеризация таблиц Соответственно,(17)эти средства используются только внутрисистемы при выполнении запросов в частности, один из наиболее эффективных алгоритмоввыполнения соединений основан на использованииотсортированных списков кортежейПубликации по System R не дают точного представления оструктурах данных, используемых при организации списков,но исходя из здравого смысла можно предположить, что они устроены не так, как таблицы (например, для кортежа,входящего в список, не требуется адресация через tid), и что располагаются они во временных файлах (в случае сбоясистемы все временные объекты пропадают12.11.2009С.Д.
Кузнецов. Базы данных.54 Организация данныхОсновные понятия, цели и общая организация System R (50)Организация внешней памяти в базах данных System R (28) Интерфейс RSS (1)Описываемый интерфейс RSS не соответствует в точностини одной из публикаций, посвященных System R, а являетсяскорее некоторой компиляцией, согласующейся сзавершающими публикациямиНа уровне RSS отсутствует именование объектов базыданных, употребляемое на уровне SQL Вместо имен объектов используются их уникальныеидентификаторы, являющиеся прямыми или косвеннымиадресами внутренних описателей объектов на внешнейпамяти для постоянных объектов или в основной памяти длявременных объектов Замена имен объектов базы данных на их идентификаторыпроизводится компилятором SQL на основе информации,черпаемой им из системных таблиц-каталогов12.11.2009С.Д.
Кузнецов. Базы данных.55 Организация данныхОсновные понятия, цели и общая организация System R (51)Организация внешней памяти в базах данных System R (29) Интерфейс RSS (2)Можно выделить следующие группыопераций:операции сканирования таблиц и списков;операции создания и уничтожения постоянныхи временных объектов базы данных;операции модификации таблиц и списков;операция добавления поля к таблицы;операции управления прохождениемтранзакций;операция явной синхронизации12.11.2009С.Д.
Кузнецов. Базы данных.56 Организация данныхОсновные понятия, цели и общая организация System R (52)Организация внешней памяти в базах данных System R (30) Интерфейс RSS (3)Операции сканирования таблиц и списковОперации группы сканирования позволяютпоследовательно, в порядке, определяемом типомсканирования, прочитать кортежи таблицы или списка,удовлетворяющие требуемым условиямГруппа включает операции OPEN, NEXT и CLOSE,означающие, соответственно, начало сканирования, требование чтения следующего кортежа, удовлетворяющегоусловиям, и конец сканированияДля таблицы возможны два режима сканирования: прямоесканирование и сканирование через индекс12.11.2009С.Д.
Кузнецов. Базы данных.57 Организация данныхОсновные понятия, цели и общая организация System R (53)Организация внешней памяти в базах данных System R (31) Интерфейс RSS (4)При прямом сканировании единственным параметромоперации OPEN является идентификатор таблицы включающий и идентификатор сегмента, в котором этатаблица хранитсяПо причине того, что в System R допускается размещение водной странице данных кортежей нескольких таблиц, прямоесканирование предполагает последовательный просмотр всех страниц сегмента свыделением в них кортежей, входящих в данную таблицу; это очень дорогой способ сканирования таблицыПри этом порядок выборки кортежей определяется ихфизическим размещением в страницах сегмента, т.е.предопределен системой12.11.2009С.Д. Кузнецов.
Базы данных.58 Организация данныхОсновные понятия, цели и общая организация System R (54)Организация внешней памяти в базах данных System R (32) Интерфейс RSS (5)При начале сканирования таблицы через индекс в числопараметров операции OPEN входит идентификатор какоголибо индекса, определенного ранее на полях этой таблицы Кроме того, можно указать диапазон сканирования втерминах значений поля (полей), составляющего ключиндексаПри открытии сканирования через индекс производитсяначальная установка указателя сканирования в позициюлиста B-дерева индекса, соответствующую левой границезаданного диапазонаПроцесс сканирования состоит в последовательномпродвижении по листовым вершинам индекса до достиженияправой границы диапазона сканирования с выборкойидентификаторов кортежей и чтением соответствующихкортежей12.11.2009С.Д.
Кузнецов. Базы данных.59 Организация данныхОсновные понятия, цели и общая организация System R (55)Организация внешней памяти в базах данных System R (33) Интерфейс RSS (6)Легко видеть, что в худшем случае можетпотребоваться столько чтений страниц данныхиз внешней памяти, сколько идентификаторовкортежей было встречено, т.е.эффективность сканирования по индексу определяется«широтой» заданного диапазона сканированияПри этом, конечно, имеется то преимущество,что порядок сканирования соответствует порядкувозрастания или убывания значений ключаиндекса12.11.2009С.Д. Кузнецов.
Базы данных.60 Организация данныхОсновные понятия, цели и общая организация System R (56)Организация внешней памяти в базах данных System R (34) Интерфейс RSS (7)Наконец, при сканировании списка, как ипри прямом сканировании таблицы,единственным параметром операцииOPEN является идентификатор списка, но,в отличие от прямого сканирования таблицыэто сканирование максимально эффективно:читаются только страницы, содержащие кортежи изданного списка, ипорядок сканирования совпадает с порядкомзанесения кортежей в список или порядком списка,если он упорядочен12.11.2009С.Д. Кузнецов.
Базы данных.61 Организация данныхОсновные понятия, цели и общая организация System R (57)Организация внешней памяти в базах данных System R (35) Интерфейс RSS (8)Наконец, при сканировании списка, как и при прямомсканировании таблицы, единственным параметром операцииOPEN является идентификатор списка, но, в отличие от прямого сканирования таблицы этосканирование максимально эффективно:читаются только страницы, содержащие кортежи из данногосписка, ипорядок сканирования совпадает с порядком занесениякортежей в список или порядком списка, если он упорядоченВ результате успешного выполнения операции открытиясканирования вырабатывается и возвращаетсяидентификатор сканирования, который используется вкачестве аргумента других операций этой группы12.11.2009С.Д. Кузнецов. Базы данных.62 Организация данныхОсновные понятия, цели и общая организация System R (58)Организация внешней памяти в базах данных System R (36) Интерфейс RSS (9)Операция NEXT выполняет чтение следующегокортежа указанного сканирования,удовлетворяющего условию данной операцииУсловие представляет собой дизъюнктивнуюнормальную форму простых условий,накладываемых на значения указанных полейтаблицыПростое условие – это условие вида номер-поляop константа, где op – операция сравнения<, <=, >, >=, =, !=Общее условие является параметром операцииNEXT12.11.2009С.Д.
Кузнецов. Базы данных.63 Организация данныхОсновные понятия, цели и общая организация System R (59)Организация внешней памяти в базах данных System R (37) Интерфейс RSS (10)Семантика операции NEXT следующая:начиная с текущей позиции сканирования выбираютсякортежи таблицы в порядке, определяемом типомсканирования, до тех пор, пока не встретится кортеж,значения полей которого удовлетворяют указанномуусловию Этот кортеж и является результатом операцииЕсли при выборке кортежа достигается правая границадиапазона сканирования правая граница значения ключа при сканировании черезиндексу или последний кортеж таблицы или списка при прямомсканировании, то вырабатывается особый признакрезультатаПосле этого единственным разумным действием являетсязакрытие сканирования – операция CLOSE12.11.2009С.Д.
Кузнецов. Базы данных.64 Организация данныхОсновные понятия, цели и общая организация System R (60)Организация внешней памяти в базах данных System R (38) Интерфейс RSS (11)Операция CLOSE может быть выполнена вданной транзакции по отношению к любомуранее открытому сканированию независимо отего состояния,т.е. независимо от того, достигнута ли присканировании правая граница диапазона сканированияПараметром операции является идентификаторсканирования, иее выполнение приводит к тому, что этотидентификатор становится недействительными, соответственно, уничтожаются служебные структурыпамяти RSS, относящиеся к данному сканированию12.11.2009С.Д. Кузнецов. Базы данных.65 Организация данныхОсновные понятия, цели и общая организация System R (61)Организация внешней памяти в базах данных System R (38) Интерфейс RSS (11)Операции создания и уничтожения постоянных ивременных объектов базы данныхГруппа операций создания и уничтожения постоянных ивременных объектов базы данных включает операциисоздания таблиц (CREATE TABLE), списков (CREATE LIST), индексов (CREATE IMAGE)и уничтожения любого из подобных объектов (DROP TABLE, DROP LIST и DROP IMAGE)Входным параметром операций создания таблиц и списковявляется спецификатор структуры объекта, т.е.