
- •Базы данных. Сетевая модель.
- •Реляционная модель.
- •Функции над подмножествами.
- •Декартовое произведение множеств.
- •О тношение порядка
- •Функциональное
- •Отношение в степени 3
- •Транзитивное замыкание отношений.
- •Лекция №3 Базовые понятия реляционной модели данных. Общая характеристика рбд.
- •Отношение атрибуты и кортежи отношений
- •Реляционная алгебра
- •Отношения совместимые по типу.
- •Специальные реляционные операторы. Выборка селекция или ограничение.
- •Оператор Проекция.
- •Соединение.
- •Операция деления.
- •Зависимые реляционные операторы.
- •Запросы выразимые средствами реляционных алгебр. Целостность реляционных данных.
- •Парадоксы:
- •Потенциальные ключи.
- •Замечания:
- •Операции нарушающие целостность по ссылкам.
- •Реляционный способ доступа к данным. Основные сведения о языке sql. Выборка данных:
- •Логические операторы
- •Операторы объединения
- •Упорядочение данных.
- •Продажи данных. Группировка данных
- •Выборка данных их нескольких таблиц
- •Группировка
- •Подзапросы
Парадоксы:
Null-значение не равно самому себе.
Null-значение не неравно самому себе.
Выражение а or not(a) не обязательно является истинной.
Потенциальные ключи.
Пусть дано отношение R, подмножество атрибутов «к» отношения R будем называть потенциальным ключом если «к» обладает следующими свойствами:
Свойство уникальности. В отношении не может быть 2х различных значений с одинаковым значение «К».
Свойство неизбыточности. Никакое подмножество «к» не обладает свойством уникальности.
Отношение может иметь несколько потенциальных ключей. Первичный(ЗНАЧЕНИЕ НЕ ДОЛЖНО ПОВТОРЯТСЯ)и альтернативный ключ.
Замечание: Первичный ключ служит средством идентификации, по нему мы можем однозначно определить объект, а так же потенциальный ключ служит единственным средством адресации на уровне картежей.
Правило целостности сущности заключается в том что в первичном ключе атрибуты не могут принимать null-значение.
Внешние ключи.
№ пост |
Наименование пост |
№ детали |
Наименование детали |
Количество |
1 |
Макаров |
1 |
Болт |
100 |
1 |
Макаров |
2 |
Гайка |
200 |
1 |
Макаров |
3 |
Винт |
300 |
2 |
Маринкин |
1 |
Болт |
150 |
2 |
Маринкин |
2 |
Гайка |
250 |
3 |
Черкасов |
1 |
болт |
1000 |
К
лючевые
поля-№ поставщика и № детали.
Пусть дано отношение R, подмножество «FK» отношения R будет называться внешним ключом если:
Существует отношение S с потенциальным ключом «k».
Каждое значение «FK» в отношении R всегда совпадает со значением «К» для некоторого картежа из S либо является null-значением. Отношение S называют родительским, отношение R-дочерним.
Замечания:
Внешний ключ может быть простым и составным.
Внешний ключ должен быть определён на тех же доменах что и соответствующий первичный ключ родительского отношения.
Внешний ключ не обладает свойством уникальности.
Если внешний ключ всё-таки обладает свойством уникальности, то связь между отношениями имеет тип один к одному.
Значение внешнего ключа должно совпадать со значением потенциального ключа, то обратно не верно.
Для внешнего ключа не требуется чтобы он был компонентом некоторого потенциального.
Null-значение для атрибутов внешнего ключа допустимы только в том случае, когда атрибуты внешнего ключа не входят в состав потенциального ключа.
Операции нарушающие целостность по ссылкам.
Вставка.
Обновление.
Удаление.
Для родительского отношения:
Вставка кортежа в родительское отношение. Целостность не нарушает.
Обновление кортежа в родительском отношении. Целостность нарушается.
Удаление кортежа в родительском отношении. Целостность нарушается
Для дочернего отношения:
Вставка. Целостность нарушается.
Обновление. Целостность нарушается.
Удаление. Целостность не нарушает.
Стратегии:
Restrict (ограничить). Не разрешает применять операции приводящие к нарушению целостности по ссылке.
Cascade(каскадировать). Разрешить выполнение требуемой операции, но вносит при этом поправки в другие отношения так, чтобы не допустить нарушение целостности по ссылкам и сохранить имеющие связи.
Set null(установить в null). Разрешает выполнение требуемой операции, но все возникающие некорректные значения внешнего ключа меняет на null.
Set default(установить по умолчанию).
Ignore. Разрешает все операции, все до одной и не ебёт на целостность.
Применение стратегий в поддержании целостности по ссылкам:
Обновление кортежей в родительском отношении.(допустимые все кроме cascade)
Удаление кортежей в родительском отношении.
Вставка кортежа в дочернее отношение.(допустимые restrict, set null, set default,ignore).