- •1. Модели данных.
- •2.Реляционная модель. 3.Отношения: определение, свойства, ключ.
- •Реляционные ключи. Начало{
- •4. Реляционные ключи (дополнительно можно взять из вопроса 2).
- •5. Реляционные языки.
- •6. Реляционная алгебра. (Унарные операции).
- •7. Реляционная алгебра. ( Бинарные операции).
- •8. Реляционное исчисление доменов.
- •9. Реляционное исчисление кортежей.
- •10. Языки баз данных.
- •11. Концепция er-модели.
- •12. Основные положения проектирования схем реляционных баз данных.
- •13. Избыточность данных и аномалии обновления.
- •14. Функциональные зависимости и нормализация отношений.
- •14. Функциональные зависимости и нормализация отношений.
- •15. Ограничения целостности и пять основных типов подобных ограничений.
- •16. Типы стратегий, которые могут применяться для обработки попыток удаления строки родительского отношения, на которую имеются ссылки в дочернем отношении.
- •17. Третья нормальная форма и нормальная форма Бойса-Кодда.
- •17. Третья нормальная форма и нормальная форма Бойса-Кодда.
- •18. Обзор процесса нормализации.
- •19. Основные этапы проектирования баз данных.
- •20. Смысл понятия "представление пользователя" и основные источники информации для него.
- •21. Методология концептуального проектирования.
- •22. Методология логического проектирования. 23. Основные задачи логического этапа проектирования базы данных.
- •24. Проверка логической модели с помощью правил нормализации и в отношении транзакций пользователей.
- •25. Определение требований поддержки целостности данных.
- •26. Общий обзор методологии физического проектирования реляционных баз данных.
- •27. Основные этапы обработки запросов.
- •28. Эксплуатация баз данных.
- •29. Администрирование баз данных.
- •30. Защита информации в базах данных.
15. Ограничения целостности и пять основных типов подобных ограничений.
Выделяют следующие группы правил целостности:
-обязательные данные; -целостность по сущностям; -целостность по ссылкам; -целостность, определяемая пользователем; -ограничения для доменов атрибутов. Обеспечение целостности базы данных обеспечивается заданием ограничений целостности. По способам реализации ограничения целостности делятся на:
-декларативные, выполняемые средствами языка SQL; -процедурные, выполняемые посредством триггеров и хранимых процедур.
Декларативные ограничения целостности должны обеспечивать:
-задание первичных ключей для обеспечения целостности по сущностям;
-определение необходимых внешних ключей для обеспечения целостности по ссылкам; -контроль функциональных ограничений на значения атрибутов, определяемых требованиями предметной области;
-задание неопределенных значений и значений по умолчанию;
-задание условий каскадного удаления и пр.
16. Типы стратегий, которые могут применяться для обработки попыток удаления строки родительского отношения, на которую имеются ссылки в дочернем отношении.
Ссылочная целостность может нарушиться в результате операций, изменяющих состояние базы данных. Таких операций три - вставка, обновление и удаление кортежей в отношениях. Т.к. в определении ссылочной целостности участвуют два отношения - родительское и дочернее, а в каждом из них возможны три операции - вставка, обновление, удаление, то нужно рассмотреть шесть различных вариантов. Допустимые стратегии:
- RESTRICT (ОГРАНИЧИТЬ) - не разрешать удаление, если имеется хотя бы один кортеж в дочернем отношении, ссылающийся на удаляемый кортеж.
- CASCADE (КАСКАДИРОВАТЬ) - выполнить удаление и каскадно удалить кортежи в дочернем отношении, ссылающиеся на удаляемый кортеж.
- SET NULL (УСТАНОВИТЬ В NULL) - выполнить удаление и во всех кортежах дочернего отношения, ссылающихся на удаляемый кортеж, изменить значения внешних ключей на null-значение.
- SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) - выполнить удаление и во всех кортежах дочернего отношения, ссылающихся на удаляемый кортеж, изменить значения внешних ключей на некоторое значение, принятое по умолчанию.
- IGNORE (ИГНОРИРОВАТЬ) - выполнить удаление, не обращая внимания на нарушения ссылочной целостности.
17. Третья нормальная форма и нормальная форма Бойса-Кодда.
3-я нормальная форма. Если имеет место
A ->B
B->C
то говорят, что атрибут C транзитивно зависит от A через атрибут B, при условии, что атрибут A функционально не зависит ни от атрибута B, ни от атрибута C. N_сотрудника -> N_отдела N_отдела -> N_адреса_отдела
Отношение удовлетворяет 3-ей НФ, если оно находиться во 2-ой НФ, и не имеет атрибутов для входящих в первичный ключ, которые бы транзитивно зависли от этого ключа. Если в отношение существует транзитивная зависимость, то она исключается из отношения, образуя новое отношение, которое помещается в зависимые атрибуты в месте с копией детерминанта. Объекты (N_объекта, Адрес, Стоимость, N_владельца) Владельцы (N_владельца, ФИО_владельца)
Т.о. общую схему декомпозиции отношения «Клиент_Аренда» мы можем представить следующим образом:
Процесс нормализации отношения заключается в декомпозиции отношения посредством выполнения последовательных операций в проекции. Полученное отношение можно соединить без потерь и вернуться к исходному отношению. Текущую процедуру называют без проигрышной или неаддитивной.
Нормальная форма Бойса-Кодда
Однако бывает необходимость введения более сильных зависимостей – НФ Бойса-Кодда (НФ БК).
НФ БК учитывает все потенциальные ключи, которые входят в отношения. Если отношение имеет единственный потенциальный ключ, то 3-я НФ и НФ БК – эквивалентны. Считается, что отношение находящееся в НФ БК, если каждый его детерминант является потенциальным ключом. Что бы убедиться, что отношение находится в НФ БК необходимо отыскать все его детерминанты и убедиться, что они являются потенциальными ключами.
Клиенты, Объекты, Владельцы удовлетворяют НФ БК.
(N_клиента, N_объекта)
(N_клиента, Нач_аренды)
(N_объекта, Нач_аренды)
Нарушение требований НФ БК происходит:
1 – если имеются два или более составных ключа;
2 – если перекрывается потенциальный ключ, т.е. если какой-то атрибут входит в несколько ключей.
Рассмотрим отношение «Собеседование».
(N_клиента, Дата_собеседования)
(N_сотрудника, Дата_собеседования, Время_собеседования)
(N_комнаты, Время_собеседования, Дата_собеседования)
f1: N_клиента, Дата_собеседования - > Время_собеседования, N_сотрудника, N_комнаты
f2: N_сотрудника, Дата_собеседования, Время_собеседования -> N_клиента
f3: N_комнаты, Дата_собеседования, Время_собеседования -> N_сотрудника, N_клиента
f4: N_сотрудника, Дата_собеседования -> N_комнаты
Исходное отношение разбивается на два отношения:
- Собеседование1
- Место собеседования
Собеседование1(N_клиента, Дата_собеседования, Время_собеседования, N_сотрудника)
Место собеседования (N_сотрудника, Дата_собеседования, N_комнаты)