Тема_8 (1122356), страница 5
Текст из файла (страница 5)
число полей объекта и спецификаторы их типов12.11.2009С.Д. Кузнецов. Базы данных.66 Организация данныхОсновные понятия, цели и общая организация System R (62)Организация внешней памяти в базах данных System R (39) Интерфейс RSS (12)Кроме того, при спецификации полей таблицыуказывается разрешение или запрещениеналичия неопределенных значений полей вкортежах этой таблицы или спискаНеопределенные значения кодируютсяспециальным образомЛюбая операция сравнения константы данноготипа с неопределенным значением поопределению вырабатывает значение false,кроме операции сравнения на совпадение соспециальной литеральной константой NULL12.11.2009С.Д. Кузнецов.
Базы данных.67 Организация данныхОсновные понятия, цели и общая организация System R (63)Организация внешней памяти в базах данных System R (40) Интерфейс RSS (13)В результате выполнения этих операцийзаводится описатель в служебной таблицеописателей таблиц или основной памятив зависимости от того, создается ли постоянный объектили временный,и вырабатывается идентификатор объекта,который служит входным параметром другихопераций, относящихся к соответствующемуобъектув частности, параметром операции OPEN при открытиисканирования объекта12.11.2009С.Д.
Кузнецов. Базы данных.68 Организация данныхОсновные понятия, цели и общая организация System R (64)Организация внешней памяти в базах данных System R (41) Интерфейс RSS (14)Входными параметрами операции CREATE IMAGE являютсяКроме того, может быть указан признак уникальности индексаидентификатор таблицы, для которой создается индекс,список номеров полей, значения которых составляют ключ индекса,ипризнаки упорядочения по возрастанию или убыванию для всехполей, составляющих ключт.е.
запрещения наличия в данном индексе ключей-дубликатовЕсли операция выполняется по отношению к пустой в этотмомент таблице, то выполнение операции такое же простое, каки для операций создания таблиц и списков:создается описатель в служебной таблице описателей индексов ивозвращается идентификатор индексакоторый, в частности, используется в качестве аргумента операцииоткрытия сканирования таблицы через индекс12.11.2009С.Д. Кузнецов.
Базы данных.69 Организация данныхОсновные понятия, цели и общая организация System R (65)Организация внешней памяти в базах данных System R (42) Интерфейс RSS (15)Если же к моменту создания индекса соответствующая таблица непуста (а это допускается), то операция становится существенноболее дорогостоящей,При этом, если создаваемый индекс имеет признак уникальности,то это контролируется при создании B-дерева,поскольку при ее выполнении происходит реальное создание B-дереваиндекса, что требует, по меньшей мере, одного последовательногопросмотра таблицыи если уникальность нарушается, то операция не выполняется (т.е.индекс не создается)Из этого следует, что хотя создание индексов в динамике незапрещается, более эффективно создавать все индексы на даннойтаблице до ее заполненияЗаметим, что создание кластеризованного индекса для непустойтаблицы запрещено,поскольку соответствующую кластеризацию таблицы без еереструктуризации получить невозможно12.11.2009С.Д.
Кузнецов. Базы данных.70 Организация данныхОсновные понятия, цели и общая организация System R (66)Организация внешней памяти в базах данных System R (43) Интерфейс RSS (16)Операции DROP TABLE, DROP LIST и DROP IMAGE могут бытьвыполнены в любой момент независимо от состояния объектовВыполнение операции приводит к уничтожению соответствующегообъекта и, вследствие этого,Следует отметить, что массовые операции над постояннымиобъектами (CREATE IMAGE и DROP TABLE) требуютдополнительных накладных расходов в связи с необходимостьюобеспечения возможности откатов транзакции, для чего требуетсявыполнение массовых обратных действийОсобенно сильно это затрагивает операцию уничтожения непустыхтаблиц,недействительности его идентификатора.поскольку требует журнализации всех кортежей, содержащихся в них кмоменту уничтоженияПоэтому, хотя уничтожение непустых таблиц и не запрещено,нужно иметь в виду, что это очень дорогостоящая операция12.11.2009С.Д.
Кузнецов. Базы данных.71 Организация данныхОсновные понятия, цели и общая организация System R (67)Организация внешней памяти в базах данных System R (44) Интерфейс RSS (17)Операции модификации таблиц и списковГруппа операций модификации таблиц и списков включаетоперации вставки кортежа в таблицу или список (INSERT), удаления кортежа из таблицы (DELETE) и обновления кортежа в таблице (UPDATE)Параметрами операции вставки кортежа являются идентификатор таблицы или списка и набор значений полей кортежаСреди значений полей могут быть литеральныенеопределенные значения NULL Естественно, при выполнении операции контролируетсядопустимость неопределенных значений в соответствующихполях12.11.2009С.Д. Кузнецов.
Базы данных.72 Организация данныхОсновные понятия, цели и общая организация System R (68)Организация внешней памяти в базах данных System R (45) Интерфейс RSS (18)При занесении кортежа в кластеризованнуютаблицу поиск места в сегменте под кортежпроизводится с использованиемкластеризованного индекса:система пытается вставить кортеж в страницу данных,уже содержащую кортежи с теми же или близкимизначениями полей кластеризацииПри занесении кортежа в некластеризованнуютаблицу место под кортеж выделяется в первойподходящей странице данныхНаконец, при вставке кортежа в список онпомещается в конец списка12.11.2009С.Д. Кузнецов.
Базы данных.73 Организация данныхОсновные понятия, цели и общая организация System R (69)Организация внешней памяти в базах данных System R (46) Интерфейс RSS (19)При занесении кортежа в таблицу производится коррекция всехиндексов, определенных на этой таблицеРеально это выражается во вставке новой записи во все Bдеревья индексовПри этом могут произойти переполнения одной или несколькихстраниц индекса, что вызоветЕсли индекс определен с атрибутом уникальности, топроверяется соблюдение этого условия, ипереливание части записей в соседние страницы илирасщепление страницесли оно нарушено, операция вставки считается невыполненнойИз этого видно, что операция вставки кортежа тем болеенакладна, чем больше индексов определено для даннойтаблицыэто относится и к операциям удаления и модификации кортежей12.11.2009С.Д. Кузнецов.
Базы данных.74 Организация данныхОсновные понятия, цели и общая организация System R (70)Организация внешней памяти в базах данных System R (47) Интерфейс RSS (20)В результате успешного выполнения операции вставкикортежа в таблицу вырабатывается идентификатор новогокортежа, который выдается в качестве результата операции и может быть в дальнейшем использован как прямой параметропераций удаления и модификации кортежей таблицыПри занесении кортежа в список значение идентификаторакортежа не вырабатывается для списков допускается только последовательноесканирование и добавление новых кортежей в конец списка; над ними нельзя определить индексов, и поэтому косвеннаяадресация кортежей списков через их идентификаторы нетребуется12.11.2009С.Д. Кузнецов.
Базы данных.75 Организация данныхОсновные понятия, цели и общая организация System R (71)Организация внешней памяти в базах данных System R (48) Интерфейс RSS (21)Операции удаления и модификации кортежей допускаютсятолько для кортежей таблицЕстественно, что для выполнения этих операцийнеобходимо идентифицировать соответствующий кортежВ интерфейсе RSS допускаются два способа такойидентификации: с помощью идентификатора кортежа (явная адресация) и с использованием идентификатора открытого к этомувремени сканированияПервый вариант возможен, поскольку идентификаторкортежа сообщается как ответный параметр операциизанесения кортежа в постоянную таблицу12.11.2009С.Д. Кузнецов. Базы данных.76 Организация данныхОсновные понятия, цели и общая организация System R (72)Организация внешней памяти в базах данных System R (49) Интерфейс RSS (22)При идентификации кортежа с помощью идентификаторасканирования имеется в виду кортеж, прочитанный спомощью последней операции NEXTЕсли при такой идентификации выполняется операцияDELETE или операция UPDATE, задевающая порядоксканирования т.е.
сканирование ведется по индексу и операциямодификации меняет поле кортежа, входящее в составключа этого индекса,то текущий кортеж сканирования теряется, и его идентификатор нельзя использовать для идентификациикортежа до выполнения следующей операции NEXT12.11.2009С.Д. Кузнецов. Базы данных.77 Организация данныхОсновные понятия, цели и общая организация System R (73)Организация внешней памяти в базах данных System R (50) Интерфейс RSS (23)Единственным параметром операции DELETE являетсяидентификатор кортежа или идентификатор сканированияПараметры операции UPDATE включают, кроме этого,спецификацию изменяемых полей кортежа список номеров полей и их новых значенийСреди значений могут находиться литеральные изображениянеопределенных значений, если соответствующие поля таблицы допускают хранениенеопределенных значенийПри выполнении операции DELETE производится коррекциявсех индексов, определенных на данной таблицеОперация UPDATE также может повлечь коррекциюиндексов, если затрагивает поля, входящие в состав ихключей12.11.2009С.Д.
Кузнецов. Базы данных.78 Организация данныхОсновные понятия, цели и общая организация System R (74)Организация внешней памяти в базах данных System R (51) Интерфейс RSS (24)Кроме описанных «атомарных» операций сканирования имодификации таблиц и списков, интерфейс RSS включаетодну «макрооперацию» BUILDLIST, позволяющую за одно обращение к RSS построить список,отсортированный в соответствии со значениями заданныхполейЭта операция включает сканирование заданной таблицы или списка, создание нового списка, в который включаются указанныеполя выбираемых кортежей, и сортировку построенного списка в соответствии созначениями указанных полейИдентификатор заново построенного отсортированногосписка является ответным параметром операции12.11.2009С.Д.
Кузнецов. Базы данных.79 Организация данныхОсновные понятия, цели и общая организация System R (75)Организация внешней памяти в базах данных System R (52) Интерфейс RSS (25)Соответственно, параметрами операции BUILDLISTявляются набор параметров для открытия сканирования допускается любой способ сканирования, список номеров полей, составляющих кортежи нового списка,и список номеров полей, по которым нужно производитьсортировкуКак и в случае создания нового индекса, можно отдельнодля каждого из этих полей указать требование к сортировкепо возрастанию или убыванию значений данного поляОтдельным параметром операции BUILDLIST являетсяпризнак, в соответствии со значением которого в новом списке допускаются или не допускаются кортежидубликаты12.11.2009С.Д.