
- •1. Определение информации. Основные проблемы, возникающие при хранении информации.
- •2. Отличительные особенности субд как программного продукта. Понятие экземпляра и базы данных.
- •3. Категории пользователей субд. Функциональные требования различных категорий пользователей к субд.
- •4. История развития субд. Особенности не реляционных моделей данных.
- •5. Общая характеристика моделей данных. Основные свойства. Понятие атрибутов, доменов.
- •6. Отношения модели данных. Понятия сущности и связи.
- •7. Ограничение целостности модели данных. Трехуровневая архитектура ansi/sparc.
- •8. Структурные компоненты модели данных в нотации idef1x. Понятия сущность, связь. Типы сущностей и связей.
- •9. Реляционная модель данных. Базовые структурные компоненты реляционной модели данных. Основные свойства.
- •10. Свойства реляционной модели данных. Представление сущности.
- •11. Свойства реляционной модели данных. Представление связи.
- •12. Требования целостности в реляционной модели данных.
- •13. Язык определения данных в реляционной модели данных. Основные возможности. Примеры.
- •14. Типы ограничений целостности, основные типы данных, основные операции реляционной модели данных.
- •15. Проектирование реляционных баз данных. Цели проектирования, основные этапы.
- •16. Проектирование реляционных баз данных. Проблемы обновления, удаления, добавления данных. Типы ограничений целостности.
- •17. Функциональная зависимость. Нормализация отношений. Концепция нормальных форм.
- •18. Первая и вторая нормальные форма. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •19. Третья нормальная форма. Нормальная форма Бойса-Кодда. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •20. Понятие многозначной зависимости. Примеры.
- •21. Четвертая и пятая нормальные формы. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •22. Основные свойства sql, как языка программирования. Отличие от других языков программирования.
- •23. Основы построения sql- запросов. Источники данных запроса. Условия выборки кортежей. Примеры.
- •24. Левые, правые и полные соединения. Функции для работы с null значениями. Выборка уникальных записей. Примеры.
- •25. Использование подзапросов. Типы подзапросов. Примеры.
- •26. Коррелированные подзапросы. Особенности использования in, not in,exists, not exists.
- •27. Теоретико-множественные операции в sql-запросах. Примеры.
- •28. Агрегирующие функции. Группировка кортежей. Примеры.
- •29. Представления. Особенности использования. Примеры.
- •30. Триггеры в Transact sql. Пример реализации триггера.
- •31. Курсоры. Основные функции. Правила применения. Примеры.
- •32. Внутренние структуры данных. Двухуровневая система доступа к данным. Отношения каталогов.
- •33. Методы доступа к данным. Бинарные деревья.
- •34. Методы доступа к данным. Многоходовые деревья.
- •35. Методы доступа к данным. Сбалансированные деревья. Структура, правила следования. Основные свойства.
- •36. Операция вставки элемента в в-дерево. Проблема переполнения, методы решения. Пример.
- •37. Операция удаления элемента из в-дерева. Проблема антипереполнения. Методы решения. Пример
- •42. Индекс на основе битовых карт. Основные свойства.
- •43. Индекс на основе битовых карт. Структура листового блока. Операция добавления элемента.
- •44. Индекс на основе битовых карт. Операция обновления элемента. Блокировка записей.
- •45. Методы доступа к данным. Основные операции выполнения sql-выражения.
- •46. Методы доступа к данным. Типы соединений таблиц.
43. Индекс на основе битовых карт. Структура листового блока. Операция добавления элемента.
Индексы на основе битовых карт (bitmapped indexes) разработаны для ответов на запросы, которые затрагивают столбцы с небольшим числом возможных значений, каждое из которых потенциально соответствует большому числу строк. Число возможных значений для столбца называется количеством элементов (cardinality). В отличие от иерархических индексов, хранящих указатели на строки, используя идентификаторы строк (rowids), индекс на основе битовых карт хранит для каждого возможного значения столбца битовую карту. Битовая карта для каждого из возможных значений имеет столько битов, сколько строк есть в таблице. Бит устанавливается, если соответствующая строка имеет данное значение.
Индексы на основе битовых карт BITMAP индексы: Используются для колонок с небольшим количеством уникальных значений (низкая кардинальность); Чаще всего используются в хранилищах данных и системах DSS; Используются в схеме типа «звезда»; Должно быть минимальное количество DML- операций ; Хранят указатели на множество строк, соответствующих одному значению ключа индекса. Индексы на основе битовых карт по нескольким столбцам можно эффективно комбинировать, используя операторы AND OR NOT.
Структура листового блока: 1) Каждое значение bitmap индекса представлено одной или несколькими битовыми картами 2) Каждая битовая карта указывает на диапазон RowID 3) Каждая запись в листовом блоке имеет структуру:
4) Составной индекс будет иметь дополнительные ключевые колонки в структуре листового блока 5)Промежуточные блоки соответствуют внутренним узлам B+ дерева.
44. Индекс на основе битовых карт. Операция обновления элемента. Блокировка записей.
Раскрыто в вопросе 42 нижняя половина страницы, в инете присутствует информация узкоспециализированная по работе в Оракле, у шустовой более ничего нет
45. Методы доступа к данным. Основные операции выполнения sql-выражения.
IndexUniqueScan Метод для поиска одного ключа с помощью уникального индекса. Всегда возвращает одно значение.
IndexRangeScan Метод доступа к нескольким значениям колонки. Выполняется сканирование диапазона индекса. Применятся при использовании операторов ><<>>= <= between
IndexFullScan Метод доступа чтения всех записей индекса, исключает сортировку. Является альтернативой полного сканирования таблицы для получения отсортированных данных в соответствии с упорядоченностью индекса
IndexFastFullScan Метод доступа чтения всех записей индекса не требующих сортировку. Является альтернативой полного сканирования таблицы для получения неотсортированных данных, т.к. возможно параллельное чтение данных.
IndexSkipScan Метод доступа путем разделения составного индекса на логические части. БД определяет количество таких логических частей (subindexes) по числу неповторяющихся значений (distinct values) лидирующего столбца составного индекса. И если таких subindexes будет мало, оптимизатор предпочтет именно IndexSkipScan. Но если лидирующий столбец имеет много различных значений, то оптимизатор предпочтет TABLE FULL SCAN.
Пример: select emp_id,address from employees; План запроса:
Gender |
Emp_id |
Ж |
98 |
Ж |
100 |
М |
101 |
М |
102 |
М |
103 |
М |
104 |
1. INDEX SKIP SCAN BE_IX
Сканирование таблицы будет произведено для части Ж и М отдельно.