В последнем случае мы рассматриваем
В последнем случае мы рассматриваем подмножество A отношения R', содержащее все значения атрибута oa всех объектов класса с. Исходя из этого, перепишем правую часть выражение <12> как
oi.E(oa1, … , oan) OєR' E( s(raOID= OIDi)(A1), … , s(raOID= OIDi)(An)) <14>
Для перечисленных далее операторов реляционной алгебры[8,10] справедливы следующие равенства:
-для объединения
s( raOID= OID)(Ak) И s( raOID= OID)(Am) = s( raOID= OID)(Ak И Am),
-для пересечения
s( raOID= OID)(Ak) З s( raOID= OID)(Am) = s( raOID= OID)(Ak З Am),
-для декартова произведения
s( raOID= OID)(Ak) ґ s( raOID= OID)(Am) = s( raOID= OID)(Ak ><( raOID)
Am),
-для вычитания
s( raOID= OID)(Ak) - s( raOID= OID)(Am) = s( raOID= OID)(Ak - Am),
-для проекции
p(rai) (s( raOID= OID)Ak) ) = s( raOID= OID)( p(rai) (Ak) ),
-для выборки
s(q)( s( raOID= OID)(Ak)) = s( raOID= OID)( s(q)(Ak) ), где q - предикат ,
-для соединения
s( raOID= OID)(Ak) ><F s( raOID= OID)(Am) = s( raOID= OID)(Ak ><(raOID and F) Am), где F – предикат,
-для деления
s( raOID= OID)(Ak) ё s( raOID= OID)(Am) = s( raOID= OID)(Ak ё Am).
Исходя из этого, можно утверждать, что для любого выражения E (уровень представления данных) найдется такое выражение E' (уровень хранения данных), что
oi.E(oa1, … , oan) OєR' s( raOID= OIDi)( E' (A1, … , An)) <15>
Рассмотрим объединение результатов применение оператора E к объектам из множества gC = {o1 , … ,ok} , gC Н С
o1.E(oa1, … , oan) И … И ok.E(oa1, … , oan) OєR'
s( raOID= OID1)( E' (A1, … , An)) И … И s( raOID= OIDk) ( E' (A1, … , An)) <16>
из чего следует, что
o1.E(oa1, … , oan) И … И ok.E(oa1, … , oan) OєR' s(raOID О {OID1, … , OIDk}) ( E' (A1, … , An)) <17>
Это позволяет утверждать, что реляционный оператор E применим и к множеству gC объектов класса С
Содержание Назад Вперед