
- •Базы данных: основные понятия и определения. Требования, предъявляемые к базам данных.
- •Выбор хранимых данных.
- •Реляционная модель данных.
- •Реляционная алгебра.
- •Методология проектирования баз данных. Основные задачи проектирования баз данных.
- •Основные этапы проектирования баз данных.
- •Концептуальное (инфологическое) проектирование бд.
- •Логическое (даталогическое) проектирование бд.
- •Принципы и средства структурного подхода к разработке по.
- •Методология структурного анализа и проектирования sadt.
- •Диаграммы потоков данных: внешние сущности, системы и подсистемы, процессы, хранилища данных, потоки данных. Нотация Гейна – Сарсона.
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных.
- •Функциональные модели, используемые на стадии проектирования.
- •Методология моделирования idef3: составные элементы, объекты ссылок, перекрестки.
- •Подходы к моделированию в базах данных.
- •Анализ предметной области. Описание объектов и их свойств. Связи между элементами моделей данных. Описание сложных объектов.
- •Проблема целостности базы данных.
- •Даталогическое проектирование. Нотация Питера Чена. Нотация idef 1х.
- •Проектирование реляционных баз данных на основе принципов нормализации. Правила технической нормализации.
- •Алгоритм процесса нормализации схем отношений.
- •Нормализация. Функциональная зависимость. Первая, вторая, нормальные формы.
- •Нормализация. Функциональная зависимость. Третья нормальная форма.
- •Нормализация. Функциональная зависимость. Нормальная форма Бойса – Кодда.
- •Разработка реляционных баз данных на основе принципов нормализации.
- •Основные аксиомы Армстронга. Замыкание.
- •Нормальные формы высших порядков.
- •Методологии проектирования.
- •Инфологическое моделирование данных: модель «сущность-связь».
- •Принципы поддержки целостности в реляционной модели данных.
- •Моделирование данных. Метод Баркера.
- •Моделирование данных. Метод idef1x.
- •Case-средство для концептуального моделирования данных на стадии формирования требований к ис – Silverrun.
- •Нормализация. Функциональная зависимость. Первая, вторая, третья нормальные формы. Нормальная форма Бойса – Кодда.
- •Инструментальные средства моделирования. Проектирование баз данных с использованием са erWin Data Modeler (erWin).
- •Алгоритм перехода от er – модели к реляционной схеме данных.
- •Основные принципы объектно-ориентированного моделирования.
- •Сущность методологии объектно-ориентированного анализа и проектирования.
- •Язык объектного моделирования uml. Виды диаграмм uml. Последовательность построения диаграмм.
- •Модель прецедентов (вариантов использования, use-cases).
- •Моделирование статической структуры системы с помощью диаграммы классов: стереотипы классов.
- •Моделирование статической структуры системы с помощью диаграммы классов: механизм пакетов.
- •Моделирование статической структуры системы с помощью диаграммы классов: атрибуты.
- •Моделирование статической структуры системы с помощью диаграммы классов: основные и вспомогательные операции.
- •Моделирование статической структуры системы с помощью диаграммы классов: типы связей.
- •Инкапсуляция, наследование, полиморфизм.
- •Моделирование поведения системы.
- •Использование диаграммы последовательностей для упорядочивания сообщений во времени.
- •Использование диаграммы кооперации для описания структурной организации объектов.
- •Моделирование физических аспектов функционирования системы с помощью диаграмм развертывания.
- •Особенности построения физической модели базы данных.
- •Ограничения ссылочной целостности.
- •Моделирование процессов обработки данных.
- •Индексирование.
- •Методы совместного доступа к базам данных.
- •Транзакции и блокировки.
- •Типы параллелизма.
- •Вертикальный гибридный
- •Свойства транзакций. Способы завершения транзакций.
- •Проблемы параллельного выполнения транзакций.
- •Методы сериализации транзакций. Механизм блокировок. Типы конфликтов.
- •Если одна транзакция заблокировала данные, то остальные транзакции при обращении к данным обязаны ждать разблокировки
- •Взаимоблокировкой считается ситуация когда транзакции оказываются в режиме ожидания, длящемся бесконечно долго
- •Оптимистическое решение проблемы взаимоблокировок позволяет взаимоблокировке произойти, но затем восстанавливает систему откатывая одну из транзакций, участвующих во взаимоблокировке
- •Правила совместимости захватов. Проблема тупиковых ситуаций и её решение.
- •Уровни изолированности пользователей.
- •Гранулированные синхронизационные захваты.
- •Метод временных меток. Более старая транзакция откатывается при попытке доступа к данным, задействованным более молодой транзакцией
- •Предикатные синхронизационные захваты.
Гранулированные синхронизационные захваты.
Гранулированные синхронизационные захваты IS (Intented for Shared lock) - совместный режим (например для чтения) IX (Intented for eXclusive lock) - монопольный захват (например для удаления) SIX (Shared, Intented for eXclusive lock) - совместный захват впоследствии захватываются входящие в него объекты в монопольном режиме
Гранулированные синхронизованные захваты (англ. coarse-grained locking) - это метод синхронизации, при котором блокировка применяется ко всему объекту или структуре данных целиком. Это означает, что только один поток может получить доступ к объекту или структуре данных в любой момент времени, даже если другие потоки не работают с конкретными частями объекта или структуры данных.
Предикатные синхронизованные захваты (англ. fine-grained locking) - это метод синхронизации, при котором блокировка применяется только к определенным частям объекта или структуры данных, которые используются конкретным потоком. Это позволяет нескольким потокам работать с разными частями объекта или структуры данных одновременно.
Таким образом, основная разница между гранулированными и предикатными синхронизованными захватами заключается в том, что гранулированные захваты блокируют весь объект или структуру данных, в то время как предикатные захваты блокируют только конкретные части объекта или структуры данных, которые используются потоком.
Метод временных меток. Более старая транзакция откатывается при попытке доступа к данным, задействованным более молодой транзакцией
Каждой транзакции назначается временная метка TS соответствующая времени начала выполнения. Если Ti старше Tj, то TS(Ti) < TS(Tj).
Когда транзакция откатывается, ей назначается новая временная метка. Каждый объект данных Q задействованный транзакцией помечается двумя метками. W-TS(Q) — временная метка самой молодой транзакции, успешно выполнившей запись над Q. R-TS(Q) — временная метка самой молодой транзакции, выполнившей запись чтения над Q.
Когда транзакция T запрашивает чтение данных Q возможны два варианта.
Если TS(T) < W-TS(Q), то есть данные были обновлены более молодой транзакцией, то транзакция T откатывается.
Если TS(T) >= W-TS(Q), то чтение выполняется и R-TS(Q) становится MAX(R-TS(Q), TS(T)).
Когда транзакция T запрашивает изменение данных Q возможны два варианта.
Если TS(T) < R-TS(Q), то есть данные уже были прочитаны более молодой транзакцией и если произвести изменение, то возникнет конфликт. Транзакция T откатывается.
Если TS(T) < W-TS(Q), то есть транзакция пытается перезаписать более новое значение, транзакция T откатывается. В остальных случаях изменение выполняется и W-TS(Q) становится равным TS(T).
Не требуется дорогостоящего построения графа ожидания. Более старые транзакции зависят от более новых, следовательно в графе ожидания нет циклов. Нет взаимоблокировок, поскольку транзакции не ожидают, а сразу откатываются. Возможны каскадные откаты. Если Ti откатилась, а Tj прочитала данные которые изменила Ti, то Tj тоже должна откатиться. Если при этом Tj уже была закоммичена, то возникнет нарушения принципа устойчивости.