Лекции и практики (1). Курс лекций и материалы для практических занятий
Скачать 1.01 Mb.
|
Преобразования операций реляционной алгебрыОперандами операций реляционной алгебры (РА) являются отношения, т.е. неупорядоченные множества кортежей. Для выполнения операций необхо- димо просмотреть все кортежи исходного отношения (или отношений). След- ствием этого является большая размерность операций РА. Уменьшения размер- ности можно достичь, изменяя последовательность выполняемых операций. В качестве примера приведём отношения R1 и R2, содержащие по 1000 кортежей, причём только 10 кортежей в каждом отношении удовлетворяют условию F. Если выполнять следующую последовательность операций: F (R1 U R2), то после выполнения объединения получится 2000 кортежей (если отношения не содержат одинаковых кортежей), а после селекции останется 20 записей. Ес- ли изменить последовательность выполнения операций: F (R1) U F (R2), то после селекции останется по 10 записей из каждого отношения, объединение которых даст 20 требуемых кортежей. Если учитывать, что объединение обыч- но выполняется путем сортировки данных (для удаления одинаковых кортежей) и промежуточный результат надо хранить, то выигрыш и по объёму памяти и по времени очевиден: гораздо быстрее отсортировать 20 кортежей, а не 2000. Два выражения реляционной алгебры считаются эквивалентными, если они описывают одно и то же отображение. Преобразование операций РА основано на понятии эквивалентности ре- ляционных выражений. Операндами выражений являются переменные- отношения Ri и константы. Каждое выражение реляционной алгебры определя- ет отображение кортежей переменных-отношений Ri (i=1,…,n) в кортежи един- ственного отношения, которое получается в результате подстановки кортежей каждого Ri и выполнения всех определяемых выражением вычислений. Существуют законы, которые в соответствии с этим определением позволяют выполнять эквивалентные преобразования выражений реляционной алгебры: Закон коммутативности для декартовых произведений: R1 R2 = R2 R1. Закон коммутативности для соединений (F – условие соединения): R1 ⊳⊲ F R2 = R2 ⊳⊲ F R1. Закон ассоциативности для декартовых произведений: (R1 R2) R3 = R1 (R2 R3). Закон ассоциативности для соединений (F1, F2 – условия соединения): (R1 ⊳⊲ F1 R2) ⊳⊲ F2 R3 = R1 ⊳⊲ F1 (R2 ⊳⊲ F2 R3). Комбинация селекций (каскад селекций): F1 ( F2 (R)) = F1 F2 (R). Комбинация проекций (каскад проекций): A1,A2,...,Am (B1,B2,...,Bn(R)) = A1,A2,...,Am(R), где {Am} {Bn}. Перестановка селекции и проекции: F (A1,A2,...,Am(R)) = A1,A2,...,Am(F (R)). Перестановка селекции с объединением: F (R1 U R2) = F (R1) U F (R2). Перестановка селекции с декартовым произведением: F (R1 R2) = (F1 (R1)) (F2 (R2)), (если F = F1F2, где F1 содержит атрибуты, присутствующие только в R1, а F2 содержит атрибуты, присутствующие только в R2); F (R1 R2) = (F (R1)) R2, (если F содержит атрибуты, присутствующие только в R1); F (R1 R2) = R1 (F (R2)), (если F содержит атрибуты, присутствующие только в R2); F (R1 R2) = F2 (F1 (R1) R2), (если F = F1F2, где F1 содержит атрибуты, присутствующие только в R1, а F2 содержит атрибуты, присутствующие и в R1, и в R2). Перестановка селекции с разностью: F (R1 – R2) = F (R1) – F (R2). Перестановка селекции с пересечением: F (R1 R2) = F (R1) F (R2). |