- •Базы данных: основные понятия и определения. Требования, предъявляемые к базам данных
- •Выбор хранимых данных
- •Реляционная модель данных
- •Реляционная алгебра
- •Операция выборка
- •Операция проекция
- •Операция естественное соединение
- •Операция соединение по условию (θ – соединение)
- •Операция деления
- •Методология проектирования баз данных. Основные задачи проектирования баз данных
- •Основные этапы проектирования баз данных
- •Концептуальное (инфологическое) проектирование бд
- •Логическое (даталогическое) проектирование бд
- •Принципы и средства структурного подхода к разработке по
- •Методология структурного анализа и проектирования sadt
- •Диаграммы потоков данных: внешние сущности, системы и подсистемы, процессы, хранилища данных, потоки данных. Нотация Гейна – Сарсона
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных
- •Функциональные модели, используемые на стадии проектирования
- •14. Методология моделирования idef3: составные элементы, объекты ссылок, перекрестки.
- •15. Подходы к моделированию в базах данных
- •16. Анализ предметной области. Описание объектов и их свойств. Связи между элементами моделей данных. Описание сложных объектов
- •17. Проблема целостности базы данных
- •18. Даталогическое проектирование. Нотация Питера Чена. Нотация idef 1х
- •Нотация Питера Чена.
- •Нотация idef 1x
- •19. Проектирование реляционных баз данных на основе принципов нормализации. Правила технической нормализации
- •20. Алгоритм процесса нормализации схем отношений
- •21. Нормализация. Функциональная зависимость. Первая, вторая, нормальные формы
- •22. Нормализация. Функциональная зависимость. Третья нормальная форма
- •23. Нормализация. Функциональная зависимость. Нормальная форма Бойса – Кодда
- •24. Разработка реляционных баз данных на основе принципов нормализации
- •25. Основные аксиомы Армстронга. Замыкание
- •26. Нормальные формы высших порядков
- •27. Методологии проектирования
- •28. Инфологическое моделирование данных: модель «сущность-связь»
- •29. Принципы поддержки целостности в реляционной модели данных
- •30. Моделирование данных. Метод Баркера
- •31. Моделирование данных. Метод idef1x
- •32. Case-средство для концептуального моделирования данных на стадии формирования требований к ис – Silverrun
- •33. Нормализация. Функциональная зависимость. Первая, вторая, третья нормальные формы. Нормальная форма Бойса – Кодда
- •34. Инструментальные средства моделирования. Проектирование баз данных с использованием са erWin Data Modeler (erWin)
- •35. Алгоритм перехода от er – модели к реляционной схеме данных
- •36. Основные принципы объектно-ориентированного моделирования
- •37. Сущность методологии объектно-ориентированного анализа и проектирования
- •38. Язык объектного моделирования uml. Виды диаграмм uml. Последовательность построения диаграмм
- •Диаграмма состояний
- •Диаграмма последовательностей
- •Диаграмма активности
- •39. Модель прецедентов (вариантов использования, use-cases)
- •40. Моделирование статической структуры системы с помощью диаграммы классов: стереотипы классов
- •41. Моделирование статической структуры системы с помощью диаграммы классов: механизм пакетов
- •42. Моделирование статической структуры системы с помощью диаграммы классов: атрибуты
- •43. Моделирование статической структуры системы с помощью диаграммы классов: основные и вспомогательные операции
- •44. Моделирование статической структуры системы с помощью диаграммы классов: типы связей
- •45. Инкапсуляция, наследование, полиморфизм
- •46. Моделирование поведения системы
- •47. Использование диаграммы последовательностей для упорядочивания сообщений во времени
- •48. Использование диаграммы кооперации для описания структурной организации объектов
- •49. Моделирование физических аспектов функционирования системы с помощью диаграмм развертывания
- •50. Особенности построения физической модели базы данных
- •51. Ограничения ссылочной целостности
- •52. Моделирование процессов обработки данных
- •53. Индексирование
- •54. Методы совместного доступа к базам данных
- •55. Транзакции и блокировки
- •56. Типы параллелизма
- •57. Свойства транзакций. Способы завершения транзакций
- •58. Проблемы параллельного выполнения транзакций
- •59. Методы сериализации транзакций. Механизм блокировок. Типы конфликтов
- •60. Правила совместимости захватов. Проблема тупиковых ситуаций и ее решение
- •61. Уровни изолированности пользователей
- •62. Гранулированные синхронизационные захваты
- •63. Метод временных меток
- •64. Предикатные синхронизационные захваты
58. Проблемы параллельного выполнения транзакций
Проблемы параллельного выполнения транзакций:
· Пропавшие изменения
· Проблемы промежуточных данных
· Проблемы несогласованных данных
· Проблемы строк-призраков (строк-фантомов)
Пропавшие изменения. Если две одновременно изменяют одну и ту же запись в БД, изменения, вносимые одной из транзакций, могут быть проигнорированы программой.
Проблемы промежуточных данных. Если приложение А одного пользователя имеет доступ к промежуточным данным, которые сформировало приложение Б другого пользователя, и использует их, то при откате транзакции, выполненном приложением Б, результирующие данные приложения А окажутся некорректными.
Проблемы несогласованных данных. Если приложение А одного пользователя может изменить кортеж с данными, который уже прочитало приложение Б другого пользователя, у него создается иллюзия нарушения целостности его транзакции, хотя база данных находится в непротиворечивом состоянии.
Проблемы строк-призраков (строк-фантомов). Если приложение выполнило два одинаковых запроса и получило два разных результата, хотя база данных находится в непротиворечивом состоянии – приложение работает некорректно.
59. Методы сериализации транзакций. Механизм блокировок. Типы конфликтов
Механизм блокировок:
Достоинство - ликвидируются проблемы:
- пропавшие изменения;
- неподтвержденные данные;
- несогласованные данные;
- строки-фантомы.
Недостаток - проблема задержки выполнения транзакций из-за блокировок.
Типы конфликтов между двумя параллельными транзакциями:
- W-W - транзакция 2 пытается изменять объект, измененный не закончившейся транзакцией 1;
- R-W - транзакция 2 пытается изменять объект, прочитанный не закончившейся транзакцией 1;
- W-R - транзакция 2 пытается читать объект, измененный незакончившейся транзакцией 1.
Типы объектов блокировки:
- БД - наибольший объект блокировки;
- таблицы;
- отдельные страницы на диске;
- строки.
Типы синхронизационных захватов:
- S (Shared) - совместный режим блокировки - нежесткая или разделяемая блокировка. Разделяемый захват объекта требуется для выполнения операции чтения объекта;
- X (eXclusive) - монопольный режим блокировки - жесткая или эксклюзивная блокировка. Монопольный захват объекта требуется для выполнения операций занесения, удаления и модификации.
Правила совместимости захватов
- Захваты объектов несколькими транзакциями по чтению совместимы (нескольким транзакциям допускается читать один и тот же объект).
- Захват объекта одной транзакцией по чтению не совместим с захватом другой транзакцией того же объекта по записи.
- Захваты одного объекта разными транзакциями по записи не совместимы.
Выполнение транзакций с учетом разных типов блокировки
60. Правила совместимости захватов. Проблема тупиковых ситуаций и ее решение
Взаимная блокировка транзакций.
Граф ожидания транзакций - направленный граф, в вершинах которого расположены имена транзакций.
Наличие цикла - признак возникновения тупиковой ситуации.
2PL (two phase lock) / 2PC (two phase commit) - двухфазный протокол синхронизационных захватов для обеспечения сериализации транзакций.
В соответствии с протоколом выполнение транзакции разбивается на фазы:
• первая фаза транзакции - накопление захватов;
• вторая фаза (фиксация или откат) - освобождение захватов.
SQL - оператор явной блокировки таблицы:
LOCK TABLE имя_таблицы iN {SHARED | EXCLUSIVE} MODE
