- •1. Файловая организация данных в автоматизированных информационных системах, ее недостатки.
- •2. Традиционные файловые системы. Подход, используемый в файловых системах. Достоинства и недостатки.
- •3. Понятие базы данных. Преимущества базы данных.
- •4. Понятие базы знаний. Структура и функции системы управления базой знаний. Язык запросов к базе знаний
- •5. Приложения базы данных. Компоненты базы данных.
- •6. Трехуровневая модель организации баз данных.
- •7. Понятие модели данных. Иерархическая модель, ее достоинства и недостатки.
- •8. Сетевая модель, ее достоинства и недостатки.
- •9. Реляционная модель. Ее базовые понятия (отношение, домен, кортеж, степень отношения), достоинства и недостатки.
- •10. Связь между таблицами в реляционной модели данных. Первичный и внешний ключи, их отличия.
- •11. Реляционная целостность: целостность отношений, ссылочная целостность.
- •12. Постреляционная модель, ее достоинства и недостатки.
- •13. Объектно-ориентированная модель данных. Ее базовые понятия (объекты, классы, методы, наследование, инкапсулирование, расширяемость, полиморфизм), достоинства и недостатки.
- •14. Объектно-реляционная модель данных, ее достоинства и недостатки.
- •15. Реляционная алгебра. Традиционные операции над множествами.
- •16. Реляционная алгебра. Специальные реляционные операции.
- •17. Реляционная алгебра. Соединения. Зависимость реляционных операторов.
- •18. Реализация реляционной алгебры средствами операторов Structured Query Language (sql)
- •19. Понятие проектирования базы данных. Требования, предъявляемые к базе данных.
- •20. Этапы жизненного цикла базы данных.
- •21. Жизненный цикл информационной системы. Проектирование баз данных. Цели и задачи проектирования. Проектирование реляционной бд. Формулирование и анализ требований.
- •22. Модель "сущность-связь", ее понятия: сущность, атрибут, экземпляр сущности, связь, мощность связи. Представление сущности и связи на er-диаграмме.
- •23. Типы связи, их представление на er-диаграмме.
- •24. Класс принадлежности сущности, его представление на er-диаграмме.
- •25. Правила преобразования er-диаграмм в реляционные таблицы в случае связи 1:1.
- •26. Правила преобразования er-диаграмм в реляционные таблицы в случае связи 1:м, м:n.
- •27. Проблемы er-моделирования (ловушка разветвления, ловушка разрыва, ловушка соединения)
- •28. Нормализация таблиц, ее цель. Первая нормальная форма. Вторая нормальная форма. Третья нормальная форма.
- •29. Нормализация таблиц, ее цель. Третья нормальная форма. Четвертая нормальная форма. Нормальная форма Бойса-Кодда.
- •30. Планирование и проектирование баз данных. Концептуальное проектирование. Логическое проектирование. Физическое проектирование. Критерии оценки качества модели.
- •31. Концептуальное проектирование, его цель и процедуры.
- •32. Логическое проектирование, его цель и процедуры.
- •33. Физическое проектирование, его цель и процедуры.
- •34. Основы проектирования баз данных. Словарь данных. Устранение дефектов модели.
- •35. Понятие субд. Архитектура субд.
- •36. Функциональные возможности и производительность субд.
- •37. Классификация субд. Режимы работы пользователя с субд.
- •38. Направления развития субд: расширение множества типов обрабатываемых данных, интеграция технологий баз данных и Web-технологий, превращение субд в системы управления базами знаний.
- •39. Назначение, стандарты, достоинства языка sql.
- •40. Понятие языка запросов к базе данных. Операторы Structured Query Language (sql). Порядок выполнения оператора select
- •41. Структура команды sql.
- •42. Типы данных и выражения в sql.
- •43. Возможности языка sql по: определению данных, внесению изменений в базу данных, извлечению данных из базы.
- •44. Условия целостности в субд. Понятие транзакции. Обработка транзакций в sql.
- •45. Понятие ограничения целостности базы данных. Классификация ограничений целостности. Реализация ограничений целостности средствами sql
- •46. Управление доступом к данным: привилегии, их назначение и отмена.
- •47. Встраивание sql в прикладные программы.
- •48. Диалекты языка sql в субд.
- •49. Эволюция концепций обработки данных.
- •50. Индексирование в базах данных. Управление индексами. Сортировка данных.
- •51. Системы совместного использования файлов. Обработка запросов в них. Недостатки систем.
- •52. Настольные субд, их достоинства и недостатки.
- •53. Клиент/серверные системы: клиенты, серверы, клиентские приложения, серверы баз данных.
- •54. Функции клиентского приложения и сервера баз данных при обработке запросов. Преимущества клиент/серверной обработки.
- •55. Общие сведения о хранимых процедурах и триггерах.
- •56. Характеристики серверов баз данных.
- •57. Механизмы доступа к данным базы на сервере.
- •58. Понятие и архитектура распределенных баз данных (РаБд). Гомогенные и гетерогенные РаБд. Стратегии распределения данных в РаБд.
- •59. Распределенные субд (РаСубд). Двенадцать правил к. Дейта.
- •2.Отсутствие опоры на центральный узел.
- •3.Непрерывное функционирование.
- •4.Независимость от расположения.
- •5.Независимость от фрагментации.
- •6.Независимость от репликации.
- •7.Обработка распределенных запросов.
- •8. Обработка распределенных транзакций
- •60. Обработка распределенных запросов. Преимущества и недостатки РаСубд.
- •61. Хранилища данных. Olap-технология.
- •62. Многомерная модель данных. Olap.
- •63. Пользователи базы данных. Администратор базы данных, его функции.
- •64. Актуальность защиты базы данных. Причины, вызывающие ее разрушение.
- •65. Методы защиты баз данных: защита паролем, шифрование, разграничение прав доступа.
- •66. Восстановление базы данных с помощью резервного копирования базы данных, с помощью журнала транзакций.
- •67. Понятие транзакции. Проблемы параллельной работы транзакций
- •68. Конфликты между транзакциями. Способы разрешения конфликтов
- •69. Механизм блокировок. Типология блокировок. Примеры использования различных типов блокировок
- •70. Назначение блокировок. Проблемы, связанные с установкой блокировок. Преднамеренные блокировки
- •71. Альтернативные методы обеспечения сериализуемости транзакций: метод временных меток, метод выделения версий данных
- •72. Архитектура сетевого приложения, взаимодействующего с базой данных. Техника создания приложений и апплетов на языке Java, взаимодействующих с базами данных.
67. Понятие транзакции. Проблемы параллельной работы транзакций
Транзакция – неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации), такая, что:
1) либо результаты всех операторов, входящих в транзакцию, отображаются в БД;
2) либо воздействие всех операторов полностью отсутствует.
При этом для поддержания ограничений целостности на уровне БД допускается их нарушение внутри транзакции так, чтобы к моменту завершения транзакции условия целостности были соблюдены.
Для обеспечения контроля целостности каждая транзакция должна начинаться при целостном состоянии БД и должна сохранить это состояние целостным после своего завершения. Если операторы, объединенные в транзакцию, выполняются, то происходит нормальное завершение транзакции, и БД переходит в обновленное (целостное) состояние. Если же происходит сбой при выполнении транзакции, то происходит так называемый откат к исходному состоянию БД. Все транзакции должны обладать следующими четырьмя свойствами (известными как свойства АСИД):
-
Атомарность (Транзакция либо фиксирует результат своей операции, либо возвращает всё на место. Если транзакция выполняется успешно, результат транзакции фиксируется. Если по какой-то причине транзакция не удалась, объекты, над которыми осуществлялась операция, возвращаются в исходное состояние.)
-
Согласованность (Consistency). Транзакция вызывает корректную трансформацию системы, при этом сохраняя её состояние. Например, в рамках транзактного добавления одного элемента в двусвязный список, все четыре указателя в ту и в другую сторону обновляются одновременно.
-
Изолированность (Isolation). Выполняющиеся одновременно транзакции изолированы от воздействия незавершившихся транзакций. Данная характеристика также именуется как сериализуемость.
-
Долговечность или устойчивость (Durability). Если транзакция завершилась успешно, её результат будет зафиксирован и сохранён. Более того, в этом случае результат сохранится даже при опасности возникновения сбоя системы.
Современные СУБД являются многопользовательскими системами, т.е. допускают параллельную одновременную работу большого количества пользователей. При этом пользователи не должны мешать друг другу. Т.к. логической единицей работы для пользователя является транзакция, то работа СУБД должна быть организована так, чтобы у пользователя складывалось впечатление, что их транзакции выполняются независимо от транзакций других пользователей.
Простейший и очевидный способ обеспечить такую иллюзию у пользователя состоит в том, чтобы все поступающие транзакции выстраивать в единую очередь и выполнять строго по очереди. Такой способ не годится по очевидным причинам - теряется преимущество параллельной работы. Таким образом, транзакции необходимо выполнять одновременно, но так, чтобы результат был такой же, как если бы транзакции выполнялись по очереди. Трудность состоит в том, что если не предпринимать никаких специальных мер, то данные, измененные одним пользователем, могут быть изменены транзакцией другого пользователя раньше, чем закончится транзакция первого пользователя. В результате, в конце транзакции первый пользователь увидит не результаты своей работы, а неизвестно что. Каким образом транзакции различных пользователей могут мешать друг другу? Различают три основные проблемы параллелизма:
- Проблема потери результатов обновления. Две транзакции по очереди записывают некоторые данные в одну и ту же строку и фиксируют изменения.После окончания обеих транзакций, строка содержит значение , занесенное более поздней транзакцией B. Транзакция A ничего не знает о существовании транзакции B, и естественно ожидает, что в строке содержится значение . Таким образом, транзакция A потеряла результаты своей работы.
- Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание). Транзакция B изменяет данные в строке. После этого транзакция A читает измененные данные и работает с ними. Транзакция B откатывается и восстанавливает старые данные. Транзакция A в своей работе использовала данные, которых нет в базе данных. Более того, транзакция A использовала данные, которых нет, и не было в базе данных!
- Проблема несовместимого анализа включает несколько различных вариантов:
-
Неповторяемое считывание. (Транзакция A дважды читает одну и ту же строку. Между этими чтениями вклинивается транзакция B, которая изменяет значения в строке. Транзакция A ничего не знает о существовании транзакции B, и, т.к. сама она не меняет значение в строке, то ожидает, что после повторного чтения значение будет тем же самым.)
-
Фиктивные элементы (фантомы). (Транзакция A дважды выполняет выборку строк с одним и тем же условием. Между выборками вклинивается транзакция B, которая добавляет новую строку, удовлетворяющую условию отбора. Транзакция A ничего не знает о существовании транзакции B, и, т.к. сама она не меняет ничего в базе данных, то ожидает, что после повторного отбора будут отобраны те же самые строки.)
-
Собственно несовместимый анализ. (Длинная транзакция выполняет некоторый анализ по всей таблице, например, подсчитывает общую сумму денег на счетах клиентов банка для главного бухгалтера. Пусть на всех счетах находятся одинаковые суммы, например, по $100. Короткая транзакция в этот момент выполняет перевод $50 с одного счета на другой так, что общая сумма по всем счетам не меняется. Результат: хотя транзакция B все сделала правильно - деньги переведены без потери, но в результате транзакция A подсчитала неверную общую сумму.)