- •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. Методы доступа к данным. Типы соединений таблиц.
15. Проектирование реляционных баз данных. Цели проектирования, основные этапы.
Цели проектирования:
• понизить избыточность данных,
• повысить надежность и достоверность данных (т.е. устранить некоторые аномалии).
Применительно к реляционным базам данных это сводится к решению следующих вопросов:
• какие отношения включать в состав базы данных,
• сколько отношений включить в состав базы данных.
1 этап Проектирование концептуальной модели данных |
Выявление информационных потребностей пользователя и их классификация (анализ запросов) |
Анализ предметной области, определение объектов, связей между ними, а также свойств объектов и связей | |
Анализ существующих и будущих прикладных программ | |
Построение диаграммы объектов-связей | |
2 этап Проектирование логической модели данных |
Построение логической модели данных в соответствии с концептуальной моделью ПО и выбранной реляционной моделью данных СУБД |
Проверка логической модели с помощью правил нормализации | |
Выявление и описание ограничений целостности данных | |
Построение диаграммы объектов-связей | |
3 этап Проектирование физической модели данных |
Построение физической модели данных в соответствии с логической моделью и выбранной реляционной СУБД |
Определение первичных, альтернативных и внешних ключей | |
Реализация ограничений целостности данных | |
Построение схемы связей |
16. Проектирование реляционных баз данных. Проблемы обновления, удаления, добавления данных. Типы ограничений целостности.
Пример. ПОСТАВКА ИЗДЕЛИЙ (S#, SNAME, CITY, P#, PNAME, PRICE, QTY).
Аномалии при выполнении операций:
Проблема обновления: если информация дублируется, то при модификации строк возможны ошибки: например, в одной строке изменили стоимость товара, а в другой, где также присутствует информация об этом же товаре, забыли.
Проблема добавления данных: часть PK может быть = NULL. Пример: если нужно хранить информацию, например, о товаре, который еще никто не поставляет, то ее нельзя включить в данное отношение, так как первичный ключ отношения состоит из двух атрибутов – S# и P#, и атрибуты первичного ключа не могут иметь пустое значение.
Проблема удаления: возможна потеря данных. Пример: если, например, удаляется информация о некотором товаре, и некоторый поставщик поставляет только один этот товар, вместе с информацией о товаре удалится и информация о поставщике.
Главное требование: гарантированное поддержание целостного состояния БД. В узком смысле, практически полностью проблемы решаются декомпозицией (разбиением таблицы на несколько взаимосвязанных). В широком: приведением БД к нормальным формам. Первые 3 нормальные формы практически полностью решают аномалии представленные выше.
Типы ограничений целостности:
Внутренние ограничения:
Категорная целостность - кортеж не может записываться в БД до тех пор, пока значения его ключевых атрибутов не будут полностью определены. Иными словами: никакой ключевой атрибут любого кортежа отношения не может содержать отсутствующего значения, обозначаемого определителем NULL.
Ссылочная целостность - При построении отношений для связывания строк одной таблицы со строками другой таблицы используются внешние ключи. Значение внешнего ключа дочернего отношения должно быть равно одному из текущих значений первичного ключа родительского отношения.
Явные ограничения:
Семантические зависимости: зависимости между атрибутами отношения, определяемые предметной областью, например: сумма бюджетов всех отделов не должна превышать бюджет предприятия;
Функциональная зависимость: дополнительные ограничения, накладываемые на реляционную схему; ограничения на значения одних атрибутов в зависимости от значений других атрибутов, например: во всех кортежах, где встречается один и тот же номер товара, название и цена товара также должны быть одними и теми же.
Пример: Если для некоторой схемы R кроме функциональной зависимости PK → R существуют еще и другие, типа A → B, где A → R и B → R, то, вообще говоря, схема отношения R будет характеризоваться некоторой избыточностью.