Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по БД.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

7.5. Захват и освобождение объекта

Для обеспечения сериализации транзакций применяются методы «захвата» и «освобождения» объектов, производимого по инициати­ве транзакции: транзакция «захватывает» объект, что приводит к его блокировке для других транзакций, и освобождает его только при своем завершении. При этом захваты объектов несколькими тран­закциями на чтение совместимы (т. е. нескольким транзакциям раз­решается читать один и тот же объект), захват объекта одной тран­закцией на чтение не совместим с захватом другой транзакцией того же объекта на запись, и захваты одного объекта разными транзак­циями на запись не совместимы. Тем самым, выделяются два ос­новных режима захватов:

  • совместный режим — S (Shared), означающий разделяемый захват объекта и необходимый для выполнения операции чте­ния объекта;

  • монопольный режим — X (exclusive), означающий монополь­ный захват объекта и необходимый для выполнения операций записи, удаления и модификации.

Наиболее распространенным в СУБД, основанных на архитек­туре «клиент — сервер», является подход, реализующий соблюдение двухфазного протокола захватов объектов БД. В общих чертах прото­кол состоит в том, что перед выполнением любой операции над объектом базы данных от имени транзакции запрашивается захват объекта в соответствующем режиме (в зависимости от вида операции — совместном или монопольном). В соответствии с этим про­токолом выполнение транзакции разбивается на две фазы: первая фаза транзакции – накопление захватов; вторая фаза (фиксация или откат) — освобождение захватов.

При соблюдении двухфазного протокола основная проблема со­стоит в том, что следует считать объектом для захвата?

В контексте реляционных баз данных возможны следующие ва­рианты:

  • файл - физический (с точки зрения базы данных) объект, область хранения нескольких отношений и, возможно, индексов;

  • таблица логический объект, соответствующий множеству записей данного отношения;

  • страница данных — физический объект, хранящий записи од­ного или нескольких отношений, индексную или служебную информацию;

• запись — элементарный физический объект базы данных. Очевидно, что чем крупнее объект захвата, тем меньше захватов будет поддерживаться в системе, и на это, соответственно, будут тратиться меньшие накладные расходы. Более того, если выбрать в качестве уровня объектов для захватов файл или отношение, то бу­дет решена даже проблема строк-призраков. Однако при использо­вании для захватов крупных объектов возрастает вероятность кон­фликтов транзакций и тем самым уменьшается допускаемая степень их параллельного выполнения. Фактически, при укрупнении объек­та синхронизационного захвата мы умышленно огрубляем ситуацию и видим конфликты в тех ситуациях, когда на самом деле конфлик­тов нет.

Таким образом, можно резюмировать, что транзакция — это законченный блок обращений к базе данных и некоторых действий над ней, для которого гарантируется выполнение четырех условий, так называемых свойств ACID (Atomicity, Consistency, Isolation, Durability):

  • атомарность — операции транзакции образуют неразделимый атомарный блок с определенным началом и концом. Этот блок либо выполняется от начала до конца, либо не выполня­ется вообще. Если в процессе выполнения транзакции про­изошел сбой, происходит откат к исходному состоянию;

  • согласованность — по завершении транзакции все задейство­ванные объекты находятся в согласованном состоянии;

  • изолированность — одновременный доступ транзакций различ­ных приложений к разделяемым объектам координируется та­ким образом, чтобы эти транзакции не влияли друг на друга;

  • долговременность — все изменения данных, осуществленные в процессе выполнения транзакции, не могут быть потеряны

1 Следует отметить, что термин «банк данных» используется сравнительно редко, а некоторыми авторами признается даже архаичным. В современной, в основном переводной литературе, понятию «банк данных» соот­ветствует понятие системы баз данных, хотя, по нашему мнению, «банк данных» вполне адекватное и более широкое понятие.

2 Отсюда следует, что одна и та же БД может описываться по-разному на ЯОД различных СУБД

3 Здесь следует упомянуть достаточно интенсивно развивавшееся в 80—90-е гг. направление создания машин баз данных — аппаратной реализации «нечисловой» обработки, в том числе параллельной и конвейерной обработки, ассоциативных процессоров и памяти.

Сегодня для реализации промышленных БД используются специализиро­ванные серверы баз данных — машины с повышенной отказоустойчивостью, высокопроизводительными подсистемами ввода-вывода и развитой периферией.

4 В последнем случае правильнее говорить об интегрированных информаци­онных системах, объединяющих в общей среде разнородные данные, хранимые возможно в разнотипных базах, но используемых для решения одной приклад­ной задачи.

5 Модель лишь в том смысле, что она — представление, описание на уровне данных только некоторых аспектов, и только некоторой части реального мира, и поэтому не может быть тождественна реальным объектам. Но в то же время БД и сама является частью реального мира.

6 Соотношение понятий «величина» и «значение» аналогично соотношению понятий «данные» и «информация». Информация — это значимые для приемни­ка данные, например изменяющие его внутреннее состояние.

7 И следует отметить, что такая форма в наибольшей степени соответствует машинным формам представления информации.

8 Это соответствует третьему из вышеперечисленных случаев. Два первых мы не рассматриваем, так как в этих случаях используются специализированные системы.

9 Для реляционной СУБД MS SQL Server 2000 реализован импорт/экспорт документов, представленных в XML-формате, в том числе с использованием схем сопоставления, определяющих отношение элементов XDR-схем к табли­цам, а атрибутов — к столбцам.

10Требование операционной простоты определяется производственными и экономическими причинами: устройство должно быть надежным в использова­нии и дешевым в изготовлении (т. е. содержать минимум механических компо­нент и сложной логики).

Функциональная ограниченность управления данными, кроме того, дикту­ется еще и требованием унифицированности: устройство должно одинаково эф­фективно и стандартным способом использоваться в составе различных вычислительных и операционных систем, даже если со временем отдельные ком­поненты систем будут принципиально меняться.

11 В целях общности в этом примере не рассматриваются подготовительные операции, такие как открытие файла и выделение памяти для рабочих и систем­ных буферов, хотя они также достаточно ресурсоемки.

12 Если контроллер не успевает завершить обработку передачи и подготовиться к передаче данных, размещаемых на физически следующем секторе, то придется ожидать завершения полного оборота диска. С целью исключения та­ких потерь диск форматируется так, что логически последовательные секторы разделены одним или несколькими физическими секторами (коэффициент чере­дования), тогда контроллер будет готов выполнить операцию со следующим ло­гическим сектором, не ожидая дополнительного оборота.

13 Такой подход форматирования (разметки) пространства внешней памяти используется и в случае таких устройств «истинно» последовательного доступа, как магнитные ленты, для обеспечения ускоренного «прямого» доступа к сектору по его номеру — прямому адресу (еще с тех времен, когда не были созданы диско­вые накопители, например, ЭВМ второго поколения Минск-22). При этом, по­скольку данные секторов, предшествующих нужному, передавать не надо, пози­ционирование будет выполняться с максимальной скоростью перемещения ленты в режиме «перемотки»

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

15 Сюда относятся не только определения данных в пиле описаний типов, схем баз данных, разделов деклараций, но и упомянутые ранее описания физиче­ской и логической структур носителя, параметры подсистемы ввода-вывода и т. д.

16 В общем случае объект может описываться совокупностью записей, от­носящихся к его составным частям или отражающих динамику изменения со­стояния.

17 Следует отметить некоторые семантические проблемы идентификации че­рез значение атрибута. Значение атрибута идентифицирует запись о состоянии объекта, и в случае изменения значения, например, табельного номера служаще­го, будет невозможно ответить на вопрос: идет ли речь о том же служащем, или о новом.

18 Здесь не рассматриваются простейшие типы, к которым относятся стандартные типы — целые и вещественные числа, логические переменные, симво­лы. Их состав и структура определяется в основном набором встроенных базовых типов данных и операций, свойственных конкретному типу ЭВМ.

19 Память, отводимая для хранения значения элемента данных (поле данных),должна выбираться в соответствии с диапазоном значений, которые может иметь этот элемент. Для выполнения операции присвоения значения элементу данных (установление соответствующих битов в «0» или «1») необходимо сначала выде­лить память, для чего используются две схемы – статическая и динамическая. Для первой характерно выделение памяти до того, как реально появляются зна­чения (обычно на этапе трансляции программы); для второй — в тот момент, когда программа во время исполнения получает конкретное значение. Кроме того, характер данных (тип данных) определяет способ представления и, соответствен­но, некоторое множество стандартных операций (примитивов).

20 Не рассматриваемые здесь очереди и стеки отличаются тем, что для них устанавливаются особые схемы добавления (размещения в памяти) новых элемен­тов и их выборки. Для очереди порядок размещения/выборки определяется пра­вилом «первым размещен — первым выбран», для стека — «первым размещен — последним выбран». Кроме того, выборка элемента влечет его удаление из по­следовательности.

21 В математических дисциплинах понятию «таблица» соответствует понятие «отношение» (relation). Отсюда и произошло название модели – реляционная. То есть, применительно к базам данных понятия «реляционная БД» и «таблич­ная БД» по существу являются синонимами.

22 Недопустимо, чтобы в ячейке таблицы содержались более одной порции информации, что иногда происходит при создании композиционных данных (информационное кодирование). Примером служит идентификационный номер автомобиля. Если записать его в одну ячейку, то будет нарушен принцип недели­мости информации, поскольку в ячейке окажутся разделяемые данные, имею­щие разную информационную сущность, такие как наименование модели, номер кузова, двигателя, сведения о предприятии-изготовителе и т. д.

23 В некоторых операционных системах, например IBM, файл на внешних носителях называют набором данных в отличие от логического файла.

24 В современных файловых системах практически не используется.

25 В поток-ориентированных файловых системах этому соответствует организация текстовых файлов, где запись — это последовательность символов, обра­зующих строку, которая завершается специальными кодами «CR» «LF».

26 Блокирование записей переменной и неопределенной длины в этом случае будет практически невозможно.

27 Именно такой подход обеспечил возможность реализации надежных достаточно эффективных СУБД, функционирующих по современным меркам в крайне скромных рамках наличных вычислительных ресурсов.

28 Например, MS ACCESS.

29 Для СУБД важно знать, что этот объект надо хрипим, целиком и что размеры этих объектов от записи к записи могут меняться. В общем случае размер не ограничен.

30 Транзакция — неделимая последовательность операторов манипулирова­ния данными.

31 Применяемые формальные языки представления предметной области не позволяют описывать все отношения, которые проектировщик считает важными. С другой стороны, многие проекты (и, в частности, рассматриваемые примеры) воспринимаются как достаточно простые, а проектные решения кажутся очевид­ными. Кроме того, опытный программист всегда может предложить некоторый эмпирический и, возможно, действительно эффективный способ для целевого представления и обработки нужной информации. Однако это означает отказ от единого формализма, что при увеличении количества данных и связей значи­тельно усложняет проблемы управления базой и, в частности, понимание поль­зователем организации и методов доступа.

32 Такие описания реализуются, например, в виде схем.

33 Правильнее было бы говорить о неформализованности, связанной с невозможностью обоснованного однозначного выбора (из реально существующих) как множества объектов, так и средств, используемых для моделирования (описания выделенных объектов).

34 Здесь не рассматриваются работы, относящиеся к другим этапам жизненного цикла баз данных, такие, как определение процедур заполнения и сопрово­ждения БД, разработка конкретных программ обработки данных, развитие и улучшение структуры БД и т. д.

35 Еще раз отметим, что они, в отличие от моделей данных, используемых в качестве инструмента моделирования конкретных баз данных, не обязательно поддерживаются механизмами используемой СУБД, хотя это и может иметь ме­сто на практике.

36 Существует много версий ER-диаграмм, которые по-разному представля­ют связи, сущности и атрибуты, и которые имеют различные ограничения и условия применимости. Приведенный здесь пример не является полным и не претендует на точное соответствие какой-либо версии построения ER-диаграмм или CASE-продукту.

37 Такое определение связи, как сущности особого рода, отражает существо реляционного подхода, для которого характерно единообразное представление сущностей всех типов, включая связи посредством переменных-отношений.

38 В большинстве CASE-систем принята упрощенная форма: эта ассоциация всегда должна быть бинарной и может существовать между двумя разными сущ­ностями или между сущностью и ею же самой (рекурсивная связь).

39 Согласно положениям реляционной модели, «правильной» связью являет­ся только связь типа «многие ко многим», поскольку для ее реализации создается отдельная переменная-отношение. Связи «один к одному», «один ко многим» все­гда могут быть представлены с помощью механизма внешнего ключа одной из переменных-отношения.

40 В большинстве CASE-систем имени свойств вносятся и прямоугольник, изображающий сущность, под именем сущности и изображаются малыми бука­ми, возможно, с примерами.

41 В большинстве CASE-систем связь всегда должна быть бинарной или ре­курсивной, и этом случае в ER-диаграмме связь представляется в виде линии, связывающей две сущности или ведущей от сущности к ней же самой. В любой связи выделяются два конца (в соответствии с существующей парой связываемых сущ­ностей), на каждом из которых указывается имя конца связи, степень конца связи (сколько экземпляров данной сущности связывается), обязательность связи (т.е. любой ли экземпляр данной сущности должен участвовать в данной связи). При этом в месте «стыковки» связи с сущностью используются трехточечный вход в прямоугольник сущности, если для этой сущности в связи могут использоваться много экземпляров сущности, и одноточечный вход, если в связи может участвовать только один экземпляр сущности. Обязательный конец связи изображается сплошной линией, а необязательный — прерывистой линией.