Программирование >>  Хронологические базы данных 

1 ... 67 68 69 [ 70 ] 71 72 73 ... 348


( ТЗ WHERE XSl = YSI AND XP# < YP# ) AS T4 : T4 { XPt, YPt }

6.27. ( SUMMARIZE SPJ { St, J# }

PER RELATION { TUPLE { S S# ( Si ) } } ADD COUNT AS N ) { N }

Напоминаем, что фигурирующее в предложении PER выражение является вызовом оператора выбора (в действительности это отнощение-литерал).

6.28. ( SUMMARIZE SPJ { S#, Р#, QTY }

PER RELATION { TUPLE { S# S# ( Si ), P# P# ( Pi ) } } ADD SUM ( QTY ) AS Q ) { Q }

6.29. SUMMARIZE SPJ PER SPJ { P, Jl } ADD SUM ( QTY ) AS Q

6.30. WITH ( SUMMARIZE SPJ PER SPJ { P#, J }

ADD AVG ( QTY ) AS Q ) AS Tl, ( Tl WHERE Q > QTY ( 350 ) ) AS T2 : T2 { Pt }

6.31. ( J JOIN ( SPJ WHERE S# = S# ( SI ) ) ) { JNAME }

6.32. ( P JOIN ( SPJ WHERE S# = S# ( SI ) ) ) { COLOR }

6.33. ( SPJ JOIN ( J WHERE CITY = London ) ) { Pi }

6.34. ( SPJ JOIN ( SPJ WHERE St = St ( Si ) ) { Pt } ) { Л }

6.35. ( ( ( SPJ JOIN

( P WHERE COLOR = COLOR ( Red ) ) { Pt } ) { St }

JOIN SPJ ) { Pi } JOIN SPJ ) { SI }

6.36. WITH ( S { SI, STATUS } RENAME S AS XS,

STATUS AS XSTATUS ) AS Tl, ( S { SI, STATUS } RENAME Si AS YS,

STATUS AS YSTATUS ) AS T2,

( Tl TIMES T2 ) AS T3,

( T3 WHERE XSl = SI ( SI ) AND

XSTATUS > YSTATUS ) AS T4 :

T4 { YSI }

6.37. ( ( EXTEND J ADD MIN ( J, CITY ) AS FIRST )

WHERE CITY = FIRST ) { Jl }

Каким будет результат выполнения этого запроса в случае, когда базовая перемен-ная-отнощение J пуста?

6.38. WITH ( SPJ RENAME Л AS ZJl )AS Tl,

( Tl WHERE ZJl = Jl AND P = Pi ( Pi ) ) AS T2,

( SPJ WHERE PI = PI ( PI ) ) AS T3,

( EXTEND T3 ADD AVG ( T2, QTY ) AS QX ) AS T4,

T4 { Jl, QX } AS T5,

( SPJ WHERE Jl = Jl ( Jl ) ) AS T6,



{ EXTEND Тб ADD MAX ( Тб, QTY ) AS QY ) AS T7, ( T5 TIMES T7 { QY } ) AS T8, ( T8 WHERE QX > QY ) AS T9 : T9 { Jt }

6.39. WITH ( SPJ WHERE P# = P ( Pi ) ) AS Tl,

Tl { St, Jt, QTY } AS T2,

( T2 RENAME Jt AS XJt, QTY AS XQ ) AS T3,

( SUMMARIZE Tl PER SPJ { Jt }

ADD AVG ( QTY ) AS Q AS T4, ( T3 TIMES T4 ) AS T5, ( T5 WHERE XJI = Jt AND XQ > Q ) AS Тб : Тб { St }

6.40. WITH ( S WHERE CITY = London ) { St } AS Tl,

( P WHERE COLOR = COLOR ( Red ) ) AS T2, ( Tl JOIN SPJ JOIN T2 ) AS T3 : J { Jt } MINUS T3 { Jt }

6.41. J { Jt } MINUS ( SPJ WHERE St ;6 S ( SI ) ) { Jt }

6.42. WITH ( ( SPJ RENAME Pt AS X ) WHERE X = Pt ) { Jt } AS Tl,

( J WHERE CITY = London ) { Jt } AS T2, ( P WHERE Tl > T2 ) AS T3 : T3 { Pi }

6.43. S { St, P# } DIVIDEBY J { J# } PER SPJ { St, Pt, Jt }

6.44. ( J WHERE

( ( SPJ RENAME Jt AS Y ) WHERE Y = Jt ) { Pt } > ( SPJ WHERE St = St ( SI ) ) { Pt } ) { Jt }

6.45. S { CITY } UNION P { CITY } UNION J { CITY }

6.46. ( SPJ JOIN ( S WHERE CITY = London ) ) { Pt } UNION

( SPJ JOIN ( J WHERE CITY = London ) ) { Pt }

6.47. ( S TIMES P ) { St, Pt } MINUS SP { St, Pt }

6.48. Предоставляем два решения этой задачи. В первом решении, принадлежащем Хью Дарвену, используются только операторы из разделов 6.2 и 6.3.

WITH ( SP RENAME S AS SA ) { SA, Pt } AS Tl,

/* Tl {SA, Pt} : SA поставляет деталь Pt */

( SP RENAME SI AS SB ) { SB, Pt } AS T2, /* T2 {SB, Pt} : SB поставляет деталь Pt */

Tl { SA } AS T3,

/* T3 {SA} : SA поставляет некоторую деталь */ Т2 { SB } AS Т4,

/* Т4 {SB} : SB поставляет некоторую деталь */ 240 Часть II. Реляционная модель



( Tl TIMES T4 ) AS T5,

/* T5 {SA,SB,P#} : SA поставляет некоторую деталь, и SB поставляет деталь Р */

( Т2 TIMES ТЗ ) AS Тб,

/* Тб {SA,SB,Pt} : SB поставляет некоторую деталь, и SA поставляет деталь Р# */

( Т1 JOIN Т2 ) AS Т7,

/* Т7 {SA,SB,P} : SA и SB поставляют деталь Р */ ( ТЗ TIMES Т4 ) AS Т8,

/* Т8 {SA,SB} : SA поставляет некоторую деталь, и SB поставляет некоторую деталь */

SP { Р# } AS Т9,

/* Т9 {Р} : деталь Р поставляется некоторым поставщиком */

( Т8 TIMES Т9 ) AS ТЮ,

/* ТЮ {SA,SB,P} :

SA поставляет некоторую деталь,

SB поставляет некоторую деталь, и

деталь Р# поставляется некоторым поставщиком */

( ТЮ MINUS Т7 ) AS Til,

/* Til {SA,SB,pi} : деталь Pi поставляется,

но не поставщиками SA и SB */

( Тб INTERSECT Til ) AS Tl2,

/* T12 {SA,SB,P#} : деталь Pi поставляется поставщиком SA, но не SB */

( Т5 INTERSECT Til ) AS T13,

/* T13 {SA,SB,P} : деталь Pi поставляется поставщиком SB, HO не SA */

T12 { SA, SB } AS T14,

/* T14 {SA,SB} : SA поставляет некоторую деталь,

не поставляемую поставщиком SB */

Т13 { SA, SB } AS T15,

/* T15 {SA,SB} : SB поставляет некоторую деталь,

не поставляемую поставщиком SA */

( Т14 UNION Т15 ) AS Т1б,

/* Т1б {SA,SB} : некоторая деталь поставляется

поставщиком SA или SB, но не обоими */



1 ... 67 68 69 [ 70 ] 71 72 73 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика