Тема_8 (1122356), страница 6
Текст из файла (страница 6)
Кузнецов. Базы данных.80 Организация данныхОсновные понятия, цели и общая организация System R (76)Организация внешней памяти в базах данных System R (53) Интерфейс RSS (26)Операция добавления поля к существующей таблицеОперация RSS добавления поля к существующей таблицепозволяет в динамике изменять схему таблицыПараметрами операции CHANGE являютсяидентификатор существующей таблицы испецификация нового поля (его тип)При выполнении операции изменяется только описатель даннойтаблице в служебной таблице описателей таблицДо выполнения первой операции UPDATE, затрагивающей новоеполе таблицы, реально ни в одном кортеже таблицы память подновое поле выделяться не будетПо умолчанию значения нового поля во всех кортежах таблицы, вкоторые еще не производилось явное занесение значения,считаются неопределеннымиТем самым, ни для одного поля, динамически добавленного ксуществующей таблице, не может быть запрещено хранениенеопределенных значений12.11.2009С.Д.
Кузнецов. Базы данных.81 Организация данныхОсновные понятия, цели и общая организация System R (77)Организация внешней памяти в базах данных System R (54) Интерфейс RSS (27)Операции управления прохождением транзакцийКаждая операция RSS выполняется в пределах некоторойтранзакцииИнтерфейс RSS включает набор операций управленияпрохождением транзакции:начать транзакцию (BEGIN TRANSACTION),закончить транзакцию (END TRANSACTION),установить точку сохранения (SAVE) ивыполнить откат до указанной точки сохранения или до началатранзакции (RESTORE)Это не отмечалось раньше, но на самом деле при вызовелюбой операции функции RSS, кроме BEGIN TRANSACTION,должен указываться еще один параметр – идентификатортранзакцииЭтот идентификатор и вырабатывается при выполнении операцииBEGIN TRANSACTION, которая сама входных параметров нетребует12.11.2009С.Д.
Кузнецов. Базы данных.82 Организация данныхОсновные понятия, цели и общая организация System R (78)Организация внешней памяти в базах данных System R (55) Интерфейс RSS (28)В любой точке транзакции до выполненияоперации END TRANSACTION может бытьвыполнен откат данной транзакции,т.е. обратное выполнение всех изменений,произведенных в данной транзакции, ивосстановление состояния позиций сканированияОткат может быть произведендо начала транзакциив этом случае о восстановлении позиций сканированияговорить бессмысленноилидо установленной ранее в транзакции точки сохранения12.11.2009С.Д.
Кузнецов. Базы данных.83 Организация данныхОсновные понятия, цели и общая организация System R (79)Организация внешней памяти в базах данных System R (56) Интерфейс RSS (29)Точка сохранения устанавливается с помощьюоперации SAVEПри выполнении этой операции запоминаютсясостояние сканов данной транзакции, открытых кмоменту выполнения SAVE, икоординаты последней записи об изменениях в базеданных в журнале, произведенной от имени даннойтранзакцииОтветным параметром операции SAVEа прямых параметров, кроме идентификаторатранзакции, она не требуетявляется идентификатор точки сохранения12.11.2009С.Д. Кузнецов.
Базы данных.84 Организация данныхОсновные понятия, цели и общая организация System R (80)Организация внешней памяти в базах данных System R (57) Интерфейс RSS (30)Этот идентификатор в дальнейшем может быть использованкак аргумент операции RESTORE, при выполнении которой производится восстановление базыданных по журналус использованием записей о ее изменениях от даннойтранзакциидо того состояния, в котором находилась база данных кмоменту установки указанной точки сохраненияКроме того, по локальной информации в оперативнойпамяти, привязанной к транзакции, восстанавливаетсясостояние ее скановОткат к началу транзакции инициируется также вызовомоперации RESTORE, но с указанием некоторого предопределенного идентификатораточки сохранения12.11.2009С.Д.
Кузнецов. Базы данных.85 Организация данныхОсновные понятия, цели и общая организация System R (81)Организация внешней памяти в базах данных System R (58) Интерфейс RSS (31)При выполнении своих транзакций пользователиSystem R изолированы один от другого,т.е. не ощущают того, что система функционирует вмногопользовательском режимеЭто достигается за счет наличия в RSSмеханизма неявной синхронизацииДо конца транзакции никакие изменения базыданных, произведенные в пределах этойтранзакции, не могут быть использованы вдругих транзакцияхпопытка использования таких данных приводит квременным синхронизационным блокировкам этихтранзакций12.11.2009С.Д.
Кузнецов. Базы данных.86 Организация данныхОсновные понятия, цели и общая организация System R (82)Организация внешней памяти в базах данных System R (59) Интерфейс RSS (32)При выполнении операции END TRANSACTION происходит"фиксация" изменений, произведенных в данной транзакции, т.е. они становятся видимыми в других транзакцияхРеально это означает снятие синхронизационныхблокировок с объектов базы данных, изменявшихся втранзакцииИз этого следует, что после выполнения END TRANSACTIONневозможны индивидуальные откаты данной транзакции RSS просто делает недействительным идентификаторданной транзакции, ипосле выполнения операции окончания транзакции отвергаетвсе операции с таким идентификатором12.11.2009С.Д.
Кузнецов. Базы данных.87 Организация данныхОсновные понятия, цели и общая организация System R (83)Организация внешней памяти в базах данных System R (60) Интерфейс RSS (33)Операция явной синхронизацииПоследняя операция интерфейса RSS – операция явнойсинхронизации LOCKЭта операция позволяет установить явныйсинхронизационную блокировку указанной таблицыпараметром операции является идентификатор таблицыВыполнение операции LOCK гарантирует, что никакаядругая транзакция до конца данной не сможет изменить данную таблицуoooвставить в него новый кортеж,удалить илимодифицировать существующий,если установлена ее блокировка в режиме чтения,или даже прочитать любой кортеж этой таблицы,если установлена монопольная блокировка12.11.2009С.Д.
Кузнецов. Базы данных.88 Организация данныхОсновные понятия, цели и общая организация System R (84)Организация внешней памяти в базах данных System R (61) Интерфейс RSS (34)Из всего, что говорилось раньше по поводу подхода ксинхронизации в System R и соответствующего разбиениясистемы на уровни, следует нелогичность наличия этойоперации в интерфейсе RSSНа самом деле, логически эта операция избыточна, т.е. если бы ее не было, можно вполне реализовать SQL сиспользованием оставшейся части операцийПредварительно до подробного обсуждения средств управлениятранзакциямизаметим, что операция LOCK введена в интерфейс RSS длявозможности оптимизации выполнения запросов12.11.2009С.Д.
Кузнецов. Базы данных.89 Организация данныхОсновные понятия, цели и общая организация System R (85)Организация внешней памяти в базах данных System R (62) Интерфейс RSS (35)Дело в том, что, как видно из описания интерфейса RSS,этот интерфейс является покортежным Следовательно, и информация для синхронизации носитдостаточно узкий характерВ то же время на уровне SQL имеется более полнаяинформация Например, если обрабатывается предложение SQL DELETEFROM EMP, то известно, что будут удалены все кортежиуказанной таблицыПонятно, что как бы не реализовывался механизмсинхронизации в RSS, в данном случае выгоднее сообщитьсразу, что изменения касаются всей таблицы12.11.2009С.Д. Кузнецов. Базы данных.90 Организация данныхОсновные понятия, цели и общая организация System R (86)Организация внешней памяти в базах данных System R (63) Интерфейс RSS (35)Дело в том, что, как видно из описания интерфейса RSS, этотинтерфейс является покортежнымВ то же время на уровне SQL имеется более полная информацияСледовательно, и информация для синхронизации носит достаточноузкий характерНапример, если обрабатывается предложение SQL DELETE FROMEMP, то известно, что будут удалены все кортежи указанной таблицыПонятно, что как бы не реализовывался механизм синхронизации вRSS, в данном случае выгоднее сообщить сразу, что изменениякасаются всей таблицыНо ситуации, в которых очевидна выгода от использования явнойсинхронизации, достаточно редкиПользоваться этим средством можно только очень осмотрительно,потому что неоправданные захваты таких крупных объектов могутрезко ограничить степень асинхронности выполнения транзакций12.11.2009С.Д.
Кузнецов. Базы данных.91 Организация данныхОбщие принципы организации данных во внешней памяти в SQL-ориентированных СУБД (1)Обсудим основные подходы к организацииданных во внешней памяти, принятые всовременных SQL-ориентированных СУБДВ большинстве случаев они основаны на идеях,заложенных в System R, хотя, конечно, в любойразвитой системе имеются собственные приемы,которые здесь обсуждаться не будутSQL-ориентированные СУБД обладают рядомособенностей, влияющих на организациювнешней памятиНаиболее важными являются следующиеособенности12.11.2009С.Д. Кузнецов. Базы данных.92 Организация данныхОбщие принципы организации данных во внешней памяти в SQL-ориентированных СУБД (2)Наличие двух уровней системы:уровня непосредственного управления данными во внешней памятиoooа также обычно управления буферами оперативной памяти,управления транзакциями ижурнализацией изменений БД иязыкового уровня уровня, реализующего язык SQLПри такой организации подсистема нижнего уровня должнаподдерживать во внешней памяти набор базовых структур,конкретная интерпретация которых входит в число функцийподсистемы верхнего уровня.Поддержка таблиц-каталоговИнформация, связанная с именованием объектов базы данных и ихконкретными свойствамиoнапример, структура ключа индексаподдерживается подсистемой языкового уровняС точки зрения структур внешней памяти таблица-каталог ничем неотличается от обычной таблицы базы данных12.11.2009С.Д.