Базы данных: конспект лекций
Добавить в закладки К обложке
- Лекция № 1. Введение - Страница 1
- 2. Реляционные базы данных - Страница 2
- Лекция № 2. Отсутствующие данные - Страница 4
- 1. Пустые значения (Empty-значения) - Страница 5
- 2. Неопределенные значения (Null-значения) - Страница 6
- 3. Null-значения и общее правило вычисления выражений - Страница 7
- 4. Null-значения и логические операции - Страница 8
- 5. Null-значения и проверка условий - Страница 9
- Лекция № 3. Реляционные объекты данных - Страница 10
- 2. Домены и атрибуты - Страница 11
- 3. Схемы отношений. Именованные значения кортежей - Страница 12
- 4. Кортежи. Типы кортежей - Страница 13
- 5. Отношения. Типы отношений - Страница 14
- Лекция № 4. Реляционная алгебра. Унарные операции - Страница 15
- 1. Унарная операция выборки - Страница 16
- 2. Унарная операция проекции - Страница 17
- 3. Унарная операция переименования - Страница 18
- 4. Свойства унарных операций - Страница 19
- Лекция № 5. Реляционная алгебра. Бинарные операции - Страница 20
- 2. Операции декартового произведения и естественного соединения - Страница 22
- 3. Свойства бинарных операций - Страница 24
- 4. Варианты операций соединения - Страница 26
- 5. Производные операции - Страница 31
- 6. Выражения реляционной алгебры - Страница 33
- Лекция № 6. Язык SQL - Страница 35
- 1. Оператор Select – базовый оператор языка структурированных запросов - Страница 36
- 2. Унарные операции на языке структурированных запросов - Страница 37
- 1. Операция выборки. - Страница 38
- 2. Операция проекции. - Страница 39
- 3. Операция переименования. - Страница 40
- 3. Бинарные операции на языке структурированных запросов - Страница 41
- 1. Операция объединения. - Страница 42
- 2. Операция пересечения. - Страница 43
- 3. Операция разности. - Страница 44
- 4. Операция декартова произведения. - Страница 45
- 5. Операции внутреннего соединения. - Страница 46
- 6. Операция естественного соединения. - Страница 47
- 7. Операция левого внешнего соединения. - Страница 48
- 8. Операция правого внешнего соединения. - Страница 49
- 9. Операция полного внешнего соединения. - Страница 50
- 4. Использование подзапросов - Страница 51
- Лекция № 7. Базовые отношения - Страница 53
- 1. Базовые типы данных - Страница 54
- 2. Пользовательский тип данных - Страница 56
- 3. Значения по умолчанию - Страница 57
- 4. Виртуальные атрибуты - Страница 58
- 5. Понятие ключей - Страница 59
- Лекция № 8. Создание базовых отношений - Страница 61
- 1. Металингвистические символы - Страница 62
- 2. Пример создания базового отношения в записи на псевдокоде - Страница 63
- 3. Ограничение целостности по состоянию - Страница 66
- 4. Ограничения ссылочной целостности - Страница 67
- 5. Понятие индексов - Страница 70
- 6. Модификация базовых отношений - Страница 71
- Лекция № 9. Функциональные зависимости - Страница 72
- 2. Правила вывода Армстронга - Страница 74
- 3. Производные правила вывода - Страница 76
- 4. Полнота системы правил Армстронга - Страница 78
- Лекция № 10. Нормальные формы - Страница 80
- 2. Первая нормальная форма (1NF) - Страница 82
- 3. Вторая нормальная форма (2NF) - Страница 84
- 4. Третья нормальная форма (3NF) - Страница 86
- 5. Нормальная форма Бойса – Кодда (NFBC) - Страница 87
- 6. Вложенность нормальных форм - Страница 88
- Лекция № 11. Проектирование схем баз данных - Страница 89
- 1. Различные типы и кратности связей - Страница 91
- 2. Диаграммы. Виды диаграмм - Страница 92
- 3. Связи и миграция ключей - Страница 93
- Лекция № 12. Связи классов сущностей - Страница 95
- 1. Иерархическая рекурсивная связь - Страница 96
- 2. Сетевая рекурсивная связь - Страница 97
- 3. Ассоциация - Страница 98
- 4. Обобщения - Страница 100
- 5. Композиция - Страница 102
- 6. Агрегация - Страница 104
- 7. Унификация атрибутов - Страница 105
- Лекция № 13. Экспертные системы и продукционная модель знаний - Страница 106
- 2. Структура экспертных систем - Страница 109
- 3. Участники разработки экспертных систем - Страница 110
- 4. Режимы работы экспертных систем - Страница 111
- 5. Продукционная модель знаний - Страница 112
2. Схема миграции ∃PK (PK |→ FK);
Такая схема миграции должна читаться следующим образом: существуют такие атрибуты первичного ключа родительского класса сущностей, которые при миграции переносятся в состав обязательно неключевых атрибутов дочернего класса сущностей.
Таким образом, в этом случае речь идет о том, что некоторые, а не все, как в предыдущем случае, атрибуты первичного ключа родительского класса сущностей переносятся в дочерний класс сущностей. Кроме того, если предыдущая схема миграции определяла миграцию в первичный ключ дочернего отношения, который при этом становился еще и внешним ключом, то последний вид миграции определяет, что атрибуты первичного ключа родительского класса сущностей мигрируют в обычные, изначально неключевые атрибуты, которые уже после этого приобретают статус внешнего ключа.
Такой тип связи называется неидентифицирующим, ведь, действительно, родительский ключ целиком не участвует в формировании дочерних сущностей, он просто не идентифицирует их.
Среди неидентифицирующих связей также выделяют два возможных типа связей. Таким образом, неидентифицирующие связи бывают двух следующих видов:
1) обязательно неидентифицирующими.
Неидентифицирующие связи называются обязательно не идентифицирующими в том и только в том случае, когда Null-значения для всех атрибутов мигрирующего ключа дочернего класса сущностей запрещены;
2) необязательно неидентифицирующими.
Неидентифицирующие связи называются не обязательно неидентифицирующими в том и только в том случае, когда Null-значе-ния для некоторых атрибутов мигрирующего ключа дочернего класса сущностей разрешены.
Обобщим все вышесказанное в виде следующей таблицы, чтобы облегчить задачу систематизации и понимания приведенного материала. Также в эту таблицу мы включим информацию о том, какие типы связей («не более одного к одному», «многие к одному», «многие к не более одному») соответствуют каким видам связей (полностью идентифицирующими, не полностью идентифицирующими, обязательно не идентифицирующими, не обязательно не идентифицирующими).
Итак, между родительскими и дочерними классами сущностей устанавливается следующий тип связей в зависимости от вида связи.
Итак, мы видим, что во всех случаях, кроме последнего, ссылка не пустая (not null) → 1.
Заметим такую тенденцию, что на родительском конце связи во всех случаях, кроме последнего, устанавливается кратность «один». Это происходит потому, что значению внешнего ключа в случаях этих связей (а именно, полностью идентифицирующая, не полностью идентифицирующая и обязательно не идентифцирующая виды связей) обязательно должно соответствовать (и притом единственное) значение первичного ключа родительского класса сущностей. А в последнем случае из-за того, что значение внешнего ключа допускает равенство Null-значению (флажок допустимости FK: null), на родительском конце связи устанавливается кратность «не более одного».
Проводим наш анализ дальше. На дочернем конце связи во всех случаях, за исключением первого, устанавливается кратность «много». Это происходит потому, что за счет неполной идентификации, как во втором случае, (или вообще отсутствия таковой, во втором и третьем случаях), значение первичного ключа родительского класса сущностей может многократно встречаться среди значений внешнего ключа дочернего класса. А в первом случае связь – полностью идентифицирующая, поэтому атрибуты первичного ключа родительского класса сущностей можгут встречаться среди атрибутов ключей дочернего класса сущностей только однажды.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113