Модели и проектирование баз данных

Дополнительные реляционные операции


.

Определенные к настоящему моменту операции обеспечивают манипуляции кортежами, но не дают никаких средств для работы со скалярами, а это часто бывает необходимо.

Например, могут понадобиться сведения о весах поставок.  Их  можно получить из отношения (SPJ JOIN P)[SPJ#, We, Qt], вычислив для каждого кортежа значение We*Qt. Однако имеющимися средствами невозможно получить производное отношение со схемой {SPJ#, Tot_We}, где Tot_We

принимает значения выражения We*Qt.

Это пример «горизонтальных вычислений», т.е. комбинирования значений атрибутов из текущего кортежа отношения-операнда. В процессе анализа данных часто нужно комбинировать  значения атрибута в различных кортежах – проводить «вертикальные» вычисления.

Например, для создания отчета о поставках может понадобиться отношение, содержащее номера поставщиков, номера поставляемых ими деталей и общие объемы поставок этих деталей, выполненных этими поставщиками. Чтобы получить такое отношение, нужно:

·

сгруппировать кортежи отношения SPJ по значениям подмножества атрибута {S#, P#};

·  сформировать отношение со схемой {S#, P#, Tot_Qt}, где Tot_Qt принимает для каждого значения  {S#, P#} единственное значение, равное сумме значений атрибута Qt во всех кортежах группы.

Определенные ниже операции производят отношения, содержащие результаты «горизонтальных» и «вертикальных» вычислений.



Содержание раздела