Автоматическая поддержка целостности по ссылкам

Содержание

Слайд 2

Автоматическая поддержка целостности по ссылкам (продолжение)

Автоматическая поддержка целостности по ссылкам (продолжение)

Слайд 3

Возможны три подхода: а) запретить такую операцию, т.е. предварительно нужно удалить

Возможны три подхода:

а) запретить такую операцию, т.е. предварительно нужно удалить подчиненные

записи либо соответствующим образом изменить значения FK для этих записей

б) во всех подчиненных записях, которые ссылаются на удаляемую запись, присвоить неопределенное значение внешнему ключу (FK)

в) одновременно с удалением записи из главной таблицы удалить все подчиненные записи, которые ссылаются на удаляемую запись (каскадное удаление)

Слайд 4

Установка режимов поддержки целостности связей в СУБД MS Access

Установка режимов поддержки целостности связей в СУБД MS Access

Слайд 5

Реляционная алгебра и реляционное исчисление Реляционная алгебра (РА) и реляционное исчисление

Реляционная алгебра и реляционное исчисление

Реляционная алгебра (РА) и реляционное исчисление (РИ)

– это инструменты для манипулирования табличными данными в реляционных БД.
В частности, любой запрос к БД можно записать в виде некоторой формулы РА или некоторого выражения (предиката) РИ.
Средства РА и РИ эквивалентны между собой, однако отличаются уровнем (степенью) процедурности.
Слайд 6

Можно конструировать вложенные формулы, причем для любой глубины вложенности результатом всегда

Можно конструировать вложенные формулы, причем для любой глубины вложенности результатом всегда

является таблица (свойство замкнутости на таблицы).
Формулы РА, состоящие из отдельных операндов и операций, имеют четко выраженную процедурность, т.к. результат запроса, который записан в виде формулы РА, вычисляется при поочередном выполнении элементарных операций.

РА – это теоретический язык операций, которые позволяют получить на основе одной или нескольких таблиц другую таблицу.

Слайд 7

В отличие от этого, выражение РИ только формулирует условия, которым должен

В отличие от этого, выражение РИ только формулирует условия, которым должен

удовлетворять результат запроса.

Поэтому средства РИ являются непроцедурными или декларативными (описательными), т.к. они всего лишь описывают свойства желаемого результата.

Слайд 8

В совокупности РА и РИ составляют формальную основу реальных языков DML

В совокупности РА и РИ составляют формальную основу реальных языков DML

(Data Manipulation Language) для существующих СУБД.

К примеру, язык SQL с точки зрения пользователя является непроцедурным языком, т.к. при записи запроса на этом языке в первую очередь указываются источники данных и условия, которым должен удовлетворять требуемый результат.
С другой стороны, при выполнении запроса на уровне СУБД реализуется некоторая процедура с использованием операций РА.

Слайд 9

Операции реляционной алгебры Любая таблица (отношение) – это множество записей, а

Операции реляционной алгебры

Любая таблица (отношение) – это множество записей, а отдельная

запись – это множество значений атрибутов.
Следовательно, традиционные операции, которые применяются в теории множеств, пригодны для манипулирования табличными данными в реляционных БД.
Дополнением к этому являются специальные операции, которые нужны для работы с базами данных.
Слайд 10

Этот набор операций РА был предложен Коддом (Codd E.F.) в 1972 г.

Этот набор операций РА был предложен Коддом (Codd E.F.) в 1972

г.
Слайд 11

Среди перечисленных восьми операций основными являются следующие пять: выборка (selection); проекция

Среди перечисленных восьми операций основными являются следующие пять:

выборка (selection);
проекция (projection);
декартово произведение

(Cartesian product);
объединение таблиц (union);
разность таблиц (difference).

Остальные операции – дополнительные:
соединение (join);
пересечение (intersection);
деление (division).
Каждую из дополнительных операций можно выразить в терминах пяти основных.

Слайд 12

Объединение таблиц: R=X∪Y Результатом этой бинарной операции является таблица R, в

Объединение таблиц: R=X∪Y

Результатом этой бинарной операции является таблица R, в которой

каждая запись принадлежит либо таблице Х, либо таблице Y.
Таблицы Х и Y должны быть совместимыми:
одинаковое число атрибутов;
соответствующие атрибуты имеют одинаковый домен.
Слайд 13

Разность таблиц: R=X–Y Результатом этой бинарной операции является таблица R, в

Разность таблиц: R=X–Y

Результатом этой бинарной операции является таблица R, в которой

каждая запись принадлежит таблице Х, но не принадлежит таблице Y.
Таблицы Х и Y должны быть совместимыми.
Слайд 14

Пересечение таблиц: R = X∩Y Результатом этой бинарной операции является таблица

Пересечение таблиц: R = X∩Y

Результатом этой бинарной операции является таблица R,

в которой каждая запись принадлежит как таблице Х, так и таблице Y.

Выражение (X–Y) дает записи из Х, которых нет в Y. Тогда из тождества X∩Y=X–(X–Y) вытекает, что операция пересечения является производной от операции разности.

Слайд 15

Декартово произведение: R=X×Y Результатом этой бинарной операции является таблица R, в

Декартово произведение: R=X×Y

Результатом этой бинарной операции является таблица R, в которой

все записи получены как неповторяющиеся сцепления одной записи из таблицы Х и одной записи из таблицы Y.
Ограничений на структуру таблиц Х и Y нет.
Слайд 16

Проекция таблицы: R=Π (X) Эта унарная операция получает результирующую таблицу R

Проекция таблицы: R=Π<список>(X)

Эта унарная операция получает результирующую таблицу R путем удаления

из таблицы Х всех атрибутов, которые не входят в заданный список.
Повторяющиеся записи исключаются.
Слайд 17

Выборка из таблицы: R=σ (X) Эта унарная операция включает в результирующую

Выборка из таблицы: R=σ<условие>(X)

Эта унарная операция включает в результирующую таблицу R

только те записи из таблицы Х, которые удовлетворяют заданному условию.
Слайд 18

Операция соединения (join) При этой операции соединяются записи, которые хранятся в

Операция соединения (join)

При этой операции соединяются записи, которые хранятся в разных

таблицах и характеризуются определенными логическими связями.
Операция соединения имеет несколько разновидностей.

1. Естественное соединение: R=X▷◁Y

Из таблиц Х и Y связываются записи, которые имеют равные значения в общих (одноименных) столбцах.
В таблице R каждый из общих столбцов остается в единственном экземпляре.

Слайд 19

Слайд 20

2. Θ-соединение: R=X ▷◁Θ Y Из таблиц Х и Y связываются

2. Θ-соединение: R=X ▷◁Θ Y

Из таблиц Х и Y связываются записи,

в которых значения для определенных столбцов удовлетворяют заданному условию Θ.
Условие Θ записывается в виде логического выражения, в котором могут присутствовать следующие операторы сравнения: =, <>, <, >, <=, >=.

X ▷◁Θ Y = σΘ(X × Y)

Если в выражении Θ используется только условие равенства (=), то Θ-соединение называют эквисоединением.

Слайд 21

3. Внешнее соединение (outer join) Левое внешнее соединение: R=X ⊃◁Y Выполняется

3. Внешнее соединение (outer join)

Левое внешнее соединение: R=X ⊃◁Y
Выполняется как естественное

соединение, но в таблицу R попадают даже те записи из таблицы Х, для которых не подходит ни одна из записей в таблице Y.
Следовательно, в таблицу R включаются абсолютно все данные из таблицы Х.

Для этой операции существует несколько разновидностей.

Слайд 22

Слайд 23

Правое внешнее соединение: R=X▷⊂ Y Выполняется как естественное соединение, но в

Правое внешнее соединение: R=X▷⊂ Y

Выполняется как естественное соединение, но в таблицу

R попадают даже те записи из таблицы Y, для которых не подходит ни одна из записей в таблице Х.
Следовательно, в таблицу R включаются абсолютно все данные из таблицы Y.
Полное внешнее соединение: R=X ⊃⊂ Y
Формируется как объединение результатов левого и правого внешних соединений для таблиц Х и Y:
X ⊃⊂ Y = (X ⊃◁Y) ∪ (X▷⊂ Y)
Слайд 24

Слайд 25

Слайд 26

Примеры запросов в виде формул РА Рассмотрим БД со следующей структурой:

Примеры запросов в виде формул РА

Рассмотрим БД со следующей структурой:

Слайд 27

Запрос 1: вывести список клиентов, которые покупали товар с кодом 2518

Запрос 1: вывести список клиентов, которые покупали товар с кодом 2518

Вариант

2
A := σPROD_ID=2518(SALES)
R := ΠCUST_NAME(CUSTOMERS▷◁ A)

Для варианта 2 кардинальность таблицы А значительно меньше, чем у таблицы SALES.
Следовательно, в этом случае операция соединения выполняется существенно быстрее.

Вариант 1
A := CUSTOMERS▷◁ SALES
R := ΠCUST_NAME( σPROD_ID=2518(A) )