Правило ограничения (3.6.1), когда можно удалить кортеж?
Как на SQL реализуется естественное соединение (inner join)?(2.9.3)
Операция естественного соединения является частным случаем операции внутреннего соединения inner join по условию равенства кортежей на пересечении схем отношений, например:
R1(A, B, C), R2(B, C, D)
select A, R1.B, R1.C, D
from R1 inner join R2 on R1.B = R2.B and R1.C = R2.C
Здесь ссылаться на общие атрибуты B и C просто по именам нельзя, так как будет неясно, к какому отношению они относятся. Использованная формулировка условия соединения (после ключевого слова on) предполагает, что общие атрибуты соединяемых отношений null-значений не допускают.
Операции левого, правого и полного внешних соединений реализуются аналогичным образом с заменой ключевого слова inner на left outer, right outer и full outer соответственно.
Примечание к 2.9.3. Что произойдет, если условный запрос будет являться пустым?(может понадобиться с примером)
Тогда формально внутренний подзапрос вернет null-значение, условие выборки станет тождественно ложным, а запрос с псевдонимом, как и результирующий запрос – пустым.
Проверка условий (2.3.4)
if P then A else B – при IsNull(P) выполнится B
if not P then B else A – при IsNull(P) выполнится A
while P do A; B – при IsNull(P) выполнится B
(встроенный предикат IsNull(выражение) – «есть null». Предикат возвращает значение false или true (но не null) и может применяться к выражению любого типа)
Производные операции реляционной алгебры (2.5.4)
Введенные варианты операций соединения(левое,правое,внутреннее)являлись производными операциями от 8-ми исходных операций реляционной алгебры. Но и среди исходных операций имеются производные.(и еще смотреть таблицы из методички, как раз про исходные операции)
Пример отношения, находящегося в третьей нормальной форме, но не находящейся в форме Бойса-Кодда.(4.2.4)
Рассмотрим пример отношения R с атрибутами X, Y, Z, находящего в третьей нормальной форме, но не находящегося в форме Бойса-Кодда:
R(X, Y,Z)
primary key(X, Y)
{Z} → {Y}
Если, как обычно, провести декомпозицию так, чтобы ненавязанная функциональная зависимость {Z} → {Y} была навязана объявлением ключа Z в выделяемом отношении R1(Z, Y), то получим
R1(Z, Y)
primary key(Z)
R2(X, Z)
foreign key(Z) references R1(Z)
Что такое функциональная зависимость?(см. 4.1)
функциональная зависимость - это однозначная зависимость, затабулированная в базе данных.
Какие бывают кратности?(5.1)
Связь между двумя классами сущностей может характеризоваться наименованием и кратностью роли класса в связи, а также наименованием связи (безотносительно к роли). Типичными кратностями являются:
1) 1 – один,
2) 0 . . . 1 – не-более-один,
3) 0 . ..∞ – много («много» допускает и «ничего»),
4) 1 . ..∞ – один-или-более.
Иерархическая рекурсия (5.4)
тип связи- не-более-один-ко-многим
вид связи- неидентифицирующий, и кроме того, необязательный.
Рис. 5.6.: Иерархическая рекурсия. Абстрактная ключевая диаграмма
Сетевая рекурсия (5.5)
тип связи – многое-ко-многим
вид связи – неполностью идентифицирующая
Узлы | 0. | . оо | Дуги | ||||
РК | КодУ Атрибуты | PF PF | КодУ-Из КодУ-На | ||||
0. | . оо | ||||||
Рис. 5.12.: Сетевая рекурсия. Абстрактная ключевая диаграмма
Ассоциация (5.6)
тип связи – многое-ко-многим
вид связи- описывается связями различных видов- полностью или неполностью идентифицирующими, обязательными или необязательными неидентифицирующими.
Рис. 5.19.: Детализация связей многие-ко-многим. Абстрактная ключевая диаграмма
Обобщение (5.7)
тип связи – многие-ко-многим
вид связи – полностью идентифицирующая
Рис. 5.27.: Обобщение. Абстрактная ключевая диаграмма
Композиция (5.8)
тип связи – один-ко-многим.
вид связи – связи трех типов- полностью и неполностью идентифицирующие и обязательные неидентифицирующие на родительском конце связи
Рис. 5.33.: Композиция. Абстрактная ключевая диаграмма
Агрегация (5.9)
тип связи – не-более-один-ко-многим
вид связи – необязательные неидентифицирующие связи
Рис. 5.38.: Агрегация. Абстрактная ключевая диаграмма
Правило ограничения (3.6.1), когда можно удалить кортеж?
restrict– правило ограничения. Обновление ключа в родительском отношении или удаление кортежа из родительского отношения не выполняется, если на этот кортеж родительского отношения ссылается хотя бы один кортеж дочернего отношения. В примере на рис. 3.2 кортежи родительского отношения лишь со значением первичного ключа 1 и 4 допускают обновление ключа PK-РодОтн или удаление кортежа.