- •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, взаимодействующих с базами данных.
70. Назначение блокировок. Проблемы, связанные с установкой блокировок. Преднамеренные блокировки
Повышение эффективности работы при использовании небольших транзакций связано с тем, что при выполнении транзакции сервер накладывает на данные блокировки. Блокировкой называется временное ограничение на выполнение некоторых операций обработки данных. Блокировка может быть наложена как на отдельную строку таблицы, так и на всю базу данных. Управлением блокировками на сервере занимается менеджер блокировок, контролирующий их применение и разрешение конфликтов. Транзакции и блокировки тесно связаны друг с другом. Транзакции накладывают блокировки на данные, чтобы обеспечить выполнение требований ACID. Без использования блокировок несколько транзакций могли бы изменять одни и те же данные.
Различают два вида блокировки:
• блокировка записи – транзакция блокирует строки в таблицах таким образом, что запрос другой транзакции к этим строкам будет отменен;
• блокировка чтения – транзакция блокирует строки так, что запрос со стороны другой транзакции на блокировку записи этих строк будет, отвергнут, а на блокировку чтения – принят.
Преднамеренные блокировки
Как видно из анализа поведения транзакций, при использовании протокола доступа к данным не решается проблема фантомов. Это происходит оттого, что были рассмотрены только блокировки на уровне строк. Можно рассматривать блокировки и других объектов базы данных:
Блокировка самой базы данных.
Блокировка файлов базы данных.
Блокировка таблиц базы данных.
Блокировка страниц (Единиц обмена с диском, обычно 2-16 Кб. На одной странице содержится несколько строк одной или нескольких таблиц).
Блокировка отдельных строк таблиц.
Блокировка отдельных полей.
Кроме того, можно блокировать индексы, заголовки таблиц или другие объекты.
Чем крупнее объект блокировки, тем меньше возможностей для параллельной работы. Достоинством блокировок крупных объектов является уменьшение накладных расходов системы и решение проблем, не решаемых с использованием блокировок менее крупных объектов. Например, использование монопольной блокировки на уровне таблицы, очевидно, решает проблему фантомов.
Современные СУБД, как правило, поддерживают минимальный уровень блокировки на уровне строк или страниц. (В старых версиях настольной СУБД Paradox поддерживалась блокировка на уровне отдельных полей.).
При использовании блокировок объектов разной величины возникает проблема обнаружения уже наложенных блокировок. Если транзакция A пытается заблокировать таблицу, то необходимо иметь информацию, не наложены ли уже блокировки на уровне строк этой таблицы, несовместимые с блокировкой таблицы. Для решения этой проблемы используется протокол преднамеренных блокировок, являющийся расширением протокола доступа к данным. Суть этого протокола в том, что перед тем, как наложить блокировку на объект (например, на строку таблицы), необходимо наложить специальную преднамеренную блокировку (блокировку намерения) на объекты, в состав которых входит блокируемый объект - на таблицу, содержащую строку, на файл, содержащий таблицу, на базу данных, содержащую файл. Тогда наличие преднамеренной блокировки таблицы будет свидетельствовать о наличии блокировки строк таблицы и для другой транзакции, пытающейся блокировать целую таблицу не нужно проверять наличие блокировок отдельных строк. Более точно, вводятся следующие новые типы блокировок:
Преднамеренная блокировка с возможностью взаимного доступа (IS-блокировка - Intent Shared lock). Накладывается на некоторый составной объект T и означает намерение блокировать некоторый входящий в T объект в режиме S-блокировки. Например, при намерении читать строки из таблицы T, эта таблица должна быть заблокирована в режиме IS (до этого в таком же режиме должен быть заблокирован файл).
Преднамеренная блокировка без взаимного доступа (IX-блокировка - Intent eXclusive lock). Накладывается на некоторый составной объект T и означает намерение блокировать некоторый входящий в T объект в режиме X-блокировки. Например, при намерении удалять или модифицировать строки из таблицы T эта таблица должна быть заблокирована в режиме IX (до этого в таком же режиме должен быть заблокирован файл).
Преднамеренная блокировка как с возможностью взаимного доступа, так и без него (SIX-блокировка - Shared Intent eXclusive lock). Накладывается на некоторый составной объект T и означает разделяемую блокировку всего этого объекта с намерением впоследствии блокировать какие-либо входящие в него объекты в режиме X-блокировок. Например, если выполняется длинная операция просмотра таблицы с возможностью удаления некоторых просматриваемых строк, то можно заблокировать эту таблицу в режиме SIX (до этого захватить файл в режиме IS).