
- •Базы данных: основные понятия и определения. Требования, предъявляемые к базам данных
- •Выбор хранимых данных
- •Реляционная модель данных
- •Реляционная алгебра
- •Операция выборка
- •Операция проекция
- •Операция естественное соединение
- •Операция соединение по условию (θ – соединение)
- •Операция деления
- •Методология проектирования баз данных. Основные задачи проектирования баз данных
- •Основные этапы проектирования баз данных
- •Концептуальное (инфологическое) проектирование бд
- •Логическое (даталогическое) проектирование бд
- •Принципы и средства структурного подхода к разработке по
- •Методология структурного анализа и проектирования 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. Предикатные синхронизационные захваты
61. Уровни изолированности пользователей
(Комментарий: на этом рисунке показаны проблемы, которые могут возникнуть при параллельном проведении транзакций, и способы их предотвратить в своей базе данных. Тут еще важный момент, что не всегда нужно использовать более жесткие уровни изоляции, так как они более сложные для работы субд)
SQL-оператор задания уровня изолированности выполнения транзакции:
SET TRANSACTION IZOLATION LEVEL
[{SERIALIZABLE | REPEATABLE READ | READ COMMITED | READ UNCOMMITED}]
[{READ WRITE | READ ONLY}]
62. Гранулированные синхронизационные захваты
Уровень объекта захвата (файл, отношение, кортеж) определяется выполняемой операцией.
Объект любого уровня может быть захвачен в режимах:
S (разделяемом);
X (монопольном);
IS (Intented for Shared lock - предваряющий разделяемую блокировку) по отношению к некоторому составному объекту O означает намерение захватить некоторый входящий в O объект в совместном режиме;
IX (Intented for eXclusive lock - предваряющий жесткую блокировку) по отношению к некоторому составному объекту O означает намерение захватить некоторый входящий в O объект в монопольном режиме;
SIX (Shared, Intented for eXclusive lock - разделяемая блокировка объекта, предваряющая дальнейшие жесткие блокировки его составляющих) по отношению к некоторому составному объекту O означает совместный захват всего этого объекта с намерением впоследствии захватывать какие-либо входящие в него объекты в монопольном режиме.
Матрица совместимости блокировок:
Блокировка L1 называется более сильной по отношению к блокировке L2 тогда и только тогда, когда для любой конфликтной ситуации (Нет - недопустимо) в столбце блокировки L2 в некоторой строке матрицы совместимости блокировок существует также конфликт в столбце блокировки L1 в той же строке.
63. Метод временных меток
Основа: если транзакция T1 началась раньше транзакции T2, то система обеспечивает такой режим выполнения, как если бы T1 была целиком выполнена до начала T2.
При выполнении операции над объектом r транзакция T помечает его своей временной меткой, соответствующей времени начала T и типом операции (R/W).
Перед выполнением операции над объектом r транзакция T1:
• Проверяет, не завершилась ли транзакция T, пометившая этот объект. Если T закончилась, T1 помечает объект r и выполняет свою операцию.
• Если транзакция T не завершилась, то T1 проверяет конфликтность операций. Если операции неконфликтны, при объекте r остается или проставляется временная метка с меньшим значением, и транзакция T1 выполняет свою операцию.
• Если операции T1 и T конфликтуют, то если t(T)> t(T1), производится откат T и T1 продолжает работу.
• Если же t(T) <t(T1) (T "старше" T1), то T1 получает новую временную метку и начинается заново.
64. Предикатные синхронизационные захваты
Метод заключается в оценке множества кортежей, которое связано с той или иной транзакцией: если эти два множества, относящиеся к одному отношению, не пересекаются, то две транзакции могут оперировать ими параллельно без взаимной блокировки, а результаты выполнения обеих транзакций будут корректными.
Основа - простые условия типа конъюнкции простых предикатов вида:
имя-атрибута {операция сравнения} значение,
где операция сравнения: =,>, <
Для простых условий совместимость предикатных захватов определяется на основе геометрической интерпретации.
Пусть R — отношение с атрибутами a1, a2, ..., an, а m1, m2, ..., mn — множества допустимых значений a1, a2, ..., an соответственно (все множества — конечные). Тогда можно сопоставить R конечное n-мерное пространство возможных значений кортежей R. Любое простое условие "вырезает" m-мерный прямоугольник в этом пространстве (m <= n).
S-X, X-S, X-X предикатные захваты от разных транзакций совместимы, если соответствующие прямоугольники не пересекаются.
Пример действия предикатных состояний:
В каких бы режимах не требовала транзакция 1 захвата условия (1<=a <=4) & (b=5), а транзакция 2 — условия (1<=a <=5) & (1<=b<=3), эти захваты всегда совместимы.