
- •Ко Номер вопроса в списке, номер темы. Номер вопроса в теме.
- •1,1.1 Системы бд и их характеристики. Бд, банк бд, субд, ипс.
- •2,1.2 Субд (определение, функции)
- •3,1.3 Уровни классификации пользователей систем баз данных.
- •4,1.4 Определение данных в базах данных.
- •5,1.5 Языки запросов субд.
- •6,1.6 Манипулирование данными в субд.
- •7,1.7 Модификация баз данных.
- •Добавить новую запись в таблицу:
- •Модификация записей:
- •Удаление записей
- •8,1.8 Реструктуризация баз данных.
- •9,1.9 Понятие целостности баз данных.
- •11,1.11 Модели данных. Классификация моделей.
- •12,1.12 Объекты и отношения. Er-диаграммы, концептуальное проектирование.
- •13,1.13 Этапы проектирования баз данных.
- •14,1.14 Архитектура (общая схема) систем баз данных.
- •15,1.15 Сравнение реляционного, иерархического и сетевого подхода к форме моделей данных.
- •18. Сетевая модель баз данных
- •19,1.19 Логические структуры данных. (элемент, группа (кортеж), отношение, представление).
- •20,1.20 Организация физических записей. Способы выделения элементов в физической записи.
- •21,1.21 Последовательный файл, файл с указателем, индексирование по одному элементу.
- •22,1.22 Инвертированная организация файлов.
- •23,1.23 Списковые структуры (списки).
- •24,1.24 Хэш-адресация.
- •25,1.25 Иерархическая организация (структура хранения).
- •26,1.26 Бинарные деревья и их использование в субд.
- •28,2.1 Создание форм в субд Visual Foxpro
- •29,2.2 Создание меню в субд Visual Foxpro.
- •30,2.3 Создание отчетов в субд Visual Foxpro
- •7.3. Итоговые значения отчета
- •31,2.4 Создание этикеток (label) в субд Visual Foxpro
- •32,2.5 Создание форм "один-ко-многим" в субд Visual Foxpro. Установление отношения в форме.
- •33,2.6 Определение данных в системе Visual foxpro.
- •34,2.7 Объектно-ориентированное визуальное проектирование форм в субд Visual Foxpro
- •35,2.8 Характеристика субд Visual foxpro
- •36,2.9 Создание и ведение бд в Visual foxpro (основные команды).
- •37,2.10 Программирование в субд Visual foxpro.
- •38,2.11 Операторы доступа и поиска командного языка системы Visual foxpro.
- •39,2.12 Установление отношения в базе данных в субд Visual FoxPro.
- •45,3.3 Булевы операции над отношениями. Дополнение, активное дополнение, выбор, проекция, соединение.
- •46,3.4 Оператор деления. Постоянные отношения. Переименование атрибутов, эквисоединение. Деление
- •Постоянные отношения. Переименование атрибутов
- •Эквисоединение, естественное и -соединение
- •47,3.5 Расширение для сравнения на доменах. Расширение оператора выбора. Оператор о - соединения.
- •48,3.6 Оператор расщепления.
- •49,3.7 Оператор фактор.
- •50,3.8 Функциональные зависимости. Алгоритм проверки функциональной зависимости satisfies.
- •52,3.10 2-Ая нормальная форма. Примеры.
- •53,3.11 Транзитивная зависимость. 3-я нормальная форма. Примеры
- •54,3.12 Назначение языка баз данных sql. Основные принципы языка
- •55,3.13 Sql.: Управление таблицами: создание, удаление. Типы данных в таблицах.
- •56,3.14 Sql: Управление данными: добавление, удаление записей.
- •57,3.15 Sql: Команда select. Общая структура команды (блоки from, where и т.П.)
- •58,3.16 Sql: Команда select. Выборка из нескольких связанных таблиц.
- •59,3.17 Sql: Команда select. Вложенные запросы к таблицам.
- •60,3.18 Sql: Объединение таблиц (команда join). Общая структура команды.
- •61,3.19 Sql: Объединение таблиц (команда union). Общая структура команды. Отличие от команды join.
- •62,3.20 Sql: Представления (view). Создание, удаление, использование.
- •64,3.22 Аксиомы вывода. Аксиомы вывода
- •65,3.23 Нормализация.
- •66,2.31 Однородные и неоднородные системы распределенных бд. Архитектура распределенных систем бд.
- •67,2.32 Обработка запроса в распределенной системе бд.
- •68,2.33 Сетевая субд. Типы функциональных узлов в распределенной системе бд.
- •69,2.34 Справочники бд. Их распределение.
- •70,2.35 Стратегии распределения данных в распределенных бд.
- •71,2.36 Целостность распределенных бд.
- •72,2.37 Организация ввода и коррекции информации в распределенных бд. Журнализация изменений в бд.
- •73,2.38 Дифференцальные файлы.
- •74,2.39 Понятие транзакции.
- •75,2.40 Сериализация транзакций в распределенных субд. Двухфазная фиксация изменений. Многоверсионный вариант двухфазного протокола синхронизации
- •76,2.41 Сериализация транзакций в распределенных субд на основе временных меток. Временные метки
- •77,2.42 Уровни изоляции при чтении данных.
- •78,2.43 Многопользовательская система с файл-сервером(на примере субд foxpro).
- •79,2.44 Архитектура "клиент-сервер" для распределенных систем баз данных.
- •7.1.2.Модели взаимодействия клиент-сервер.
- •80,2.45 Безопасность распределенных бд.
- •81,2.29 Управление доступом, привилегии доступа.
- •82,2.30 Управление доступом, привилегии безопасности.
75,2.40 Сериализация транзакций в распределенных субд. Двухфазная фиксация изменений. Многоверсионный вариант двухфазного протокола синхронизации
Рассмотрим вариант широко известного двухфазного протокола синхронизации транзакций (multiversion two-phase locking protocol, MV2PL), адаптированного для применения в версионной базе данных. Будем различать три типа версии элемента данных:
завершенные (commited) — версии, созданные транзакциями, которые уже успешно закончили свою работу;
текущая версия (current) — последняя из завершенных версий;
незавершенные (uncommited) — версии, созданные транзакциями, которые еще находятся в работе.
планировщик следит за тем, чтобы в каждый момент времени существовало не более одной незавершенной версии. В зависимости от того, позволяется ли транзакциям читать незавершенные версии данных, различаются два варианта алгоритма: с чтением незавершенных данных и без..
Все операции, которые обрабатывает планировщик, разделяются на два класса: обычные и финальные операции. Под финальной операцией понимается последняя операция транзакции перед ее завершением или же сама операция завершения. Обе интерпретации допустимы. При этом каждая отдельная операция транзакции обрабатывается следующим образом:
если операция не является финальной, то: a) операция r(x) выполняется незамедлительно; ей сопоставляется последняя из завершенных к данному моменту версий x (или последняя из незавершенных версий x во втором варианте алгоритма); b) операция w(x) выполняется только после завершения транзакции, записавшей последнюю версию x.
если операция является финальной для транзакции ti, то она откладывается до тех пор, пока не завершатся: a) все транзакции tj, прочитавшие текущую версию данных, которую должна заменить версия, записанная ti (тем самым устраняется возможность неповторяющегося чтения); b) все транзакции tj, которые записали версии, прочитанные ti (это требуется только во втором варианте алгоритма).
Как видно, этот алгоритм ничего не говорит о количестве версий одного и того же элемента, которые могут одновременно существовать в базе данных, что вызывает проблемы с хранением версий. Во-первых, они могут занимать слишком много места. Во-вторых, возникают трудности с размещением этих «старых» данных. Учитывая, что количество версий заранее не известно, сложно придумать эффективную структуру их хранения, которая бы не вызывала заметных накладных расходов. И наконец, такая система слишком сложна в реализации.
76,2.41 Сериализация транзакций в распределенных субд на основе временных меток. Временные метки
планировщик обрабатывает операции таким образом, чтобы суммарный результат выполнения операций был эквивалентен последовательному выполнению транзакций. Порядок сериализации задается порядком временных меток, которые получают транзакции во время старта. Временные метки также используются для идентификации версий данных при чтении и модификации — каждая версия получает временную метку той транзакции, которая ее записала. Планировщик не только следит за порядком выполнения действий транзакций, но также отвечает за трансформацию операций над данными в операции над версиями — каждая операция вида «прочитать элемент данных x», должна быть преобразована планировщиком в операцию: «прочитать версию y элемента данных x».
Временную метку, полученную транзакцией ti в начале ее работы, будем обозначать как ts(ti), операцию чтения транзакцией ti элемента данных x как ri(x). Для обозначения того, что транзакция ti читает версию элемента данных x, созданную транзакцией tk, будем писать ri(xk), для обозначения того, что транзакция ti записывает версию элемента данных x, будем использовать запись wi(x). Опишем алгоритм работы планировщика MVTO.
Планировщик преобразует операцию ri(x) в операцию ri(xk), где xk — это версия элемента x, помеченная наибольшей временной меткой ts(tk), такой что ts(tk) <= ts(ti).
1) Операция wi(x) обрабатывается планировщиком следующим образом:
a) если планировщик уже обработал действие вида rj(xk), такое что ts(tk) < ts(ti) < ts(tj), то операция wi(x) отменяется, а ti откатывается;
b) в противном случае wi(x) преобразуется в wi(xi).
3) Завершение транзакции ti (commit) откладывается до того момента, когда завершатся все транзакции, записавшие версии данных, прочитанные ti.
Последний шаг нужен только в том случае, когда хотят предотвратить «грязное» чтение.