     18 

     

    18.1.  

          ,   
  .     , 
        
 .     ,   
       ,   
         
   .   ,   
,         
 ,  ""    
 (  ""   , ,  ,  
   ,    ).  
   (  ) ,   
        .   
    ,      
 . ( ,       
     ,    
     .)   
   ,       
     (..  ,   
,        
).     .   , 
    ,  -.  
    .      . 
    1.        ""!  
  ,     . 
,      ,  
        ,  
      ,   
     .. (     
,        .)     
        
  .      
  . 
    2.   ,         
 (,     ),   
      ,   
;  ,    ,  
-.       
         
.   ,     
  , , ,   . 

    474  V.   

    3.     ,    ""   
 .       
    ,      
    -  (  ,  ). 
    4.        "  " , 
        . ,   
        
    . 
           ,  
 (  )    
  . 
             
   .      
   ,    .  
   ,   , 
        
.           
.        , 
   .      , 
       (,  JOIN). 
        
 .  ,     . 
       .        
  .    ,   , 
 ,   ,  ,  
          
:  ,    ,      
.  ,     "" ,    
 ,      
   .   ""   
 ,       
 . (  ,      
 ,       
  [18.27].) 

    18.2.   

        ,     
,      .   
"  ,    2".  
   : 
    (   (  SP JOIN S   )   WHERE Pt =   '2'   )    [  SNAME  ] 
    ,       100   10000 
 ,  50       2. 
  ,   S  SP     
" " (.  4).   ,    
   (..   ),   
    : 
    1.   SP  S (  S#).     
  10 000    10 000     100 
 (     ).    
 ,   10 000  . 

     18. 	475 

     (  ,   
    ()    ). 
    2.          2  , 
   1.      10 000  
       ,    
50  ,   ,     . 
    3.   ,    2,   SNAME.  
     (   50 , 
     ). 
           ,  
     ,    . 
    1.          2   SP.  
    10000    ,  
  50 , ,   ,    
 . 
    2.    ,    1,   S ( 
 S#).        100  
(  ,        ,     
   2    ).   50 
 (     ). 
    3.    ,    2,   SNAME 
(  3   ).  
 (  50 )    . 
           1 030 000  
- ,         10 100 
 -. ,  ,    
"  - "    , 
    100   . (   
    - ,   
 ,        .)  
,  ,        
  ,   ! 
     ,  ,      
 ( ,   ,  ,   
)     . 
   ,   SP   
   #.     ,   
 1  ,   10 000   50,   
   7 000   .    
-   S.S#    2   
 -   100   50,    
     10 000     
.  ,       
 3 ,        
 .  ,    . 
           ,    
  .  ,     
,    .     
    .  , ,  
           
 .      ,   
         , 
   . 

    476	 V.   


    18.3.    

     [18.3]     . 
    1.      . 
    2.     . 
    3.     . 
    4.           . 
           . 
     1.      
             
,     .    
     (  " "  
   )      
 . 
      : "     
  ?"   ,   , 
    ,    ,   
   .  ,     
,   ,     
 .      
    ,   
. ,  . 18.1       
  ("  ,    2"). 

      
    t    SNAME 
    t  ,   # = '2' 
    t    Sit 
    	 
    SP	s 

    . 18.1.   "  ,   
 2" 

    ,       ,  
   :     . 
    ,    . 18.1,  
       
      (      
).    , ,   
    .    ,  , 
     . 18.1    
  : 
    (   ( SP JOIN S  )   WHERE P# =   '2'   )    [  SNAME  ] 
     2.     
           , 
 "  "    , 
   ,     .   ,    
(  

     18. 	477 

    )       
 (   ) . ,    
"  ,    2"  SQL  
   1,    ,  
    =    =      q  q AND p. 
         
,   .      
       .   
       
2  ,   ,   ,  
        . 
       .     
        .   
    .  Q   
(),         ( 
:  ql  q2     ,   
 ). ,     Q  
      Q     
    ,    q  Q 
      .  ,     
   q.  "" ,   
 q,     . ,    
"" ,       
,      Q. 
        .     
1   ,    ,  
      ,  . 
    . 
     

    ( A JOIN   )   WHERE -- 

        ,     

    ( A WHERE -- )   JOIN  

          6.  ,  
       , 
  ,    . 
     3.     
            
()    ,   , 
   .       
     ,    
,      .. ,   
 1  2      . 
        ,      
  (,   ..),   -  
   .     .   

    1   ,  ,   SQL  
  .   (,   )  
        
 .   ""  SQL    
   (  ),     
 . 
    2         (..  
 )   .   "" 
    " ".  . . 

    478	 V.   

        ,     
  ,     .  ,  
 , ,  ,    
  ,      . 
           
  . ,     
  :        
   ;    
,    ;    
,     ,  ..   
      (.  [18.4-18.14]). 

    .       ,  
 ""   (..     
 ).       - 
 ,          
 .       4.  
[18.4-18.14]        
     . 

    ,          
 ( ,     ..)    
,  ,      
-      .   
    . (.  [18.29, 18.30].  
,           
 3  4,    . ,    
 ,       :  
 3     4.) 
     4.           
           
 ,      (..  ) 
  .       
  ,        
  . ,       
       ,   
.  , ,       
,           
           
   '.       
 (,  )    
      [18.3].  " 
 "      ,  
          
("")  ("")    . 
             
   .         
  ,     .  
, 

    1    (     )  , 
 DB2,      ,     . 

     18. 	479 

             
 .    ,     
    ( ),    
.    ,    ,  
     ,   
   ,     
. ,        
.  [18.3]         
     . 

    18.4.   

        ,   
   2  .    
,      ,    
  . 
    ,   ,       
       ,  
    . ,   
   ,       
 (. ),        
       . 
(        . 
,   "     V",  V 
    S   S#  CITY.)  , 
   ,     
   ,     ,   
    ""   . 

       

       ,      . 
    1.         
  (  AND)   . ,  
    ( A WHERE -1 ) WHERE -2 
      
    A WHERE -1 AND -2 
    2.          
,  .  ,  
    (  [ -1 ]   )   [ -2 ]   
      [ -2 ] 
    ,     ,  ,  
 -2,     -1. 
    3.        . ,  
    (   [   ]   )  WHERE  
      
    ( A WHERE  ) [  ] 

    480	 V.   

    ,          
 ,         
    , ,    , 
         
 . 

      

     ,   ,     
 (        
 ),         
,   . ,   
/    ,        

    f (    ) = f  (  )   f  (  ). 

    ,     SQRT (  
)    ,        

    SQRT   (   *   )   = SQRT   (    )   *  SQRT   (   ) . 

    ,      
          
.   ,   SQRT    
 ,          +  
       . 
            
,   .      
 ,   ,     (  
 )    AND      
      .    
       (   
      ),    
         
  .       ,  
"   ".       
,        , 
     .  ,   
          . 
           
,      . -,   
      (    
). -,       
,     ,       
. ,  

    ( A JOIN  )   [   ] 

      

    (  [ - ]   )   JOIN  (   [ - ]   ) 

       ,       
     -  -   
,    .      
"  ",        
,    . 

     18. 	481 
    16      

       

              
. ,      ,  
       

       =   . 

    ,         
,       .    
   ,   ,  
      . 
      .  ,     
 ,    ,      

       (      }   =   (    )   . 

    ,         
,     .     
  ,   ,    
    . , ,     
  , ,   ,      
 ,    ,     
,   .       
        . 

     

          .  
    ,        

       = . 

     ,         
  .     , 
    ,     
  . 

       

            
. ,   ,     
    .   .  

     *  +  *   

        

     *   (   +  ) 

     ,    "*"    
 "+".        
 ,        
   EXTEND  SUMMARIZE.    ,  
        
.    ""    , 
   .   ,     
, "*"  "+",  . ,     
    U,    ,   

     U   (       )   =   (  U  )      (A U ) 

    (      U  "*",    "+"). 

    482	 V.   


     

         ,    
   . ,     -    
,   

     >  AND  > 3 

    (    )    

     >  AND  > 3 AND  > 3 

           . 
        ,   ">"  
. ,      
,        (  
 " > 3")    " ",  
 " > ".   .     
  , ,      
 ()   (     ). 

    .       , 
  DB2,       . 

       .  

     >  OR   (    = D AND  < F ) 

        

    (   >  OR  = D )   AND   (  >  OR  < F ) 

     ,   OR    AND.  
    : "    
   ,    
 ()." -   

    Cl AND C2 AND   . . .   AND Cn, 

     CJ, 2, ...,   (  ),   
   AND.     ,  
- ,       . 
, - ,        
 .    AND  (A AND    AND 
),          
,      ( ).    
  ,    ,   
 --  . 
     ,       
   .  ,     
 ,    ,   
 -  . 
       ,    "",   
,   ,      
,     ,   ">",   , 
  AND  OR,   ,   "+",  .. 

      

      : 

    ( SP JOIN S   )    [  #   ] 

          
-----.     
   SP       S. 
,   

     18. 	483 

 SP       S.  , 
     SP       
 #.  ,    !  
    

    SP [ # ] 

      ,        
   ()  .  ,    
     ,    
     ,     
         
. ,       
  .      
   SP        S 
  ()  (     
 ),  ,       
   . ,  ,  
,        . 
    ,      , 
   [18.23],  ,   
  ,   . 
        
 ,   , ,   ,  , 
   ,     
   . 
     ,         
    (       
     ).  ,    
    . , , 
        "  
    ".  : 
         ,  () 
    ,      ,  
 . 
       !       
    : 
     ,        . 

    .        
     [14.7]. 

             
 .       
   ,    
        
.        
[18.24-18.28]     [18.23]. 

       

            
   ,    .  
,     , ..     
    ,    
,  

    484	 V.   

        .    
    ,    
     "  " 
(    ).   ,      
  ,      .. 

    18.5.    

      3  4    (   
"  ")      , 
    (      
).       ( 
)    ,   
   DB2  INGRES.    
,   DB21. 
         : 
      ; 
      ,   ; 
       ,   . 
           : 
          ; 
          ; 
          ; 
         (   ),  
  ,        . 
        : 
     , ,     " "; 
           , 
   ; 
          ; 
         . 

    .         
 -   ,    
  .     , 
..     RUNSTATS,     
  ,     . 
       ,    
 INGRES,      OPTIMIZEDB. 
        ,   INGRES. 

    .   INGRES      
 .         
     . 

    1        SQL,    
   ""  ""   
""  "" .  ,    
       . 

     18. 	485 

         : 
      ; 
          ; 
          . 
            : 
          ; 
     ,       ; 
              (). 

    18.6.  "  " 

          ,    
         
    "  ". ,  
        
,      ,    
      .    
    "  "   
,      INGRES [18.31, 18.32]. 

    .       INGRES 
(    INGRES,      
    INGRES)      (Kooi)  
 (Frankforth) [18.2],    [18.34]. 

         ,     
     
-.  ,   ,     
  .      
   . 
             ,   
       . 
                              
 -   (    ). 
          ,   
  (.  ).   ,     
    ( )   
,       , 
      . 
          (  
  [18.31]).  : "    
 ,        
25 ,    200 ."     
  QUEL,        QO: 

    QO: RETRIEVE ( S.SNAME) WHERE	S.CITY  =	"London" 
    AND	S.S#    =	SP.S# 
    AND	SP.QTY  >	200 
    AND	SP.P#   =	P.P# 
    AND	P.COLOR =	"Red" 
    AND	P.WEIGHT <	25 

     -   S, P  SP,    
    . 

    486	 V.   

        ,  ,    
    25 . ,   
-  (     ),   
  : 

    Dl: RETRIEVE INTO P1 (P.P#) WHERE P.COLOR = "Red" 
    AND  P.WEIGHT < 25 

        ,       
 (   )      
.    D1       
 # (  SP.P# = P.P#),   #     
  .  ,    
    ,    25 . 
     D1,    
  '. (  INTO   ,   
  '    #.    
      RETRIEVE.)  , 
          '.  
    Q1: 

    Ql: RETRIEVE (S.SNAME) WHERE S.CITY = "London" AND  S.S#  = SP.S# AND  
SP.QTY > 200 AND  SP.P# = P'.P# 

          Q1,    
- ,     SP.  
  D2,       Q1  Q2. 

    D2: RETRIEVE INTO SP1 (SP.S#, SP.P#) WHERE SP.OJTY > 200 
    Q2: RETRIEVE (S.SNAME) WHERE S.CITY = "London" AND  S.S#  = SP'.S* AND  
SP'.P* = P'.P# 

            S: 

    D3: RETRIEVE INTO S' (S.S#, S.SNAME) WHERE S.CITY = "London" 
    Q3: RETRIEVE (S'.SNAME) WHERE S'.S# = SP1.S# AND  SP'.P# = P' . P# 

     ,   ,    
 SP'  ': 

    D4: RETRIEVE INTO SP'1 (SP'.Stt) WHERE SP'.P* = P'.Ptt Q4: RETRIEVE 
(S'.SNAME) WHERE S'.Stt = SP" .S# 
     ,   QO     , D1, 
D2  D3 (     ),    
, D4  Q4 (     ). 
      ,   . 18.2. 

      

     
    S' -> Q4	- SP' ' 
    t	 
    D3   '	- D4 <- SP1 
    t    t	t S    Dl         D2 
    t	t 
    P	SP 

    , 18.2.    QO 


     18. 	487 

         : 
       Dl, D2  D3     , SP  S  
    ', SP'  S' . 
         D4     '  SP'   
  SP". 
       ,  Q4     S  SP"    
  . 
    ,   Dl, D2  D3      
    (  ).  , 
 D3  D4         
  D1  D2.   ,  D4  Q4  
         
.      Q4.     
,    ,      
SP".S#   : {SI, S2, S4}.      
 SP".S#.  ,  Q4   : 

    RETRIEVE   (S'.SNAME)   WHERE S1 .S#	=  "SI" 
    OR        S'.S#	=  "S2" 
    OR        S'.Stt	=  "S4" 

     [18.31]       
      .    
   .  ,     
    ,    
      ( INGRES , 
  ,      ,  
   ).      
         
    . 
     [18.31]      . 
  ,          
INGRES [8.13].     INGRES    
  ,      
.     ,   , 
        (,  
 -). 
     [18.32]     
     ,  
  ,       
     .    
   . 
    1.     ,       . 
    2.         ,   
  -,    . 
    3.            
 ,     " "   
- (    )    ,  
  .  INGRES    . 

    488	 V.   


    18.7.    

             
   ,    
 .        
    ,      
  .     
  . 

    .         
,       . 

      ,   .    
 ""       (COUNT, SUM, MAX 
 ..).     : 
    1.    . 
    2.  ,  ,   . 
       .  ,     
  ,     . 
    .    
 -     ,  
    [18.30]. ,  

    SUMMARIZE SP BY ( ) ADD AVG ( QTY ) AS AQ 

     ,   QTY (,    
)      SP.    
   COUNT   (  COUNT    
).      MIN,       
    (  )   (  MIN) 
  (  ,     
  ). 
             (.. 
     ).      
 : 

    SUMMARIZE SP BY   (  #  )   ADD SUM  ( OTY )   AS TOTQTY 

       , ,     
, ,      .      
   ,         
         
.         
 ,       ,  
      (,  )  
.     . 
    1.   . 
    2.    . 
    3.    -. 
    4.  . 
    5.  . 
    6.    . 
     . 18.3-18.7      
   (       
 ).      .  
, R  S   ,    ,  ї  
  (, )  . ,  
 -

     18. 	489 

      R  5     
.        R[l], 
2], ..., R[m]  5[1], 5[2],..., S[n] .   
,    R[i]  ?[/],   
 R[i] * S[/].  ,  R   ,  
 S ,    . 18.3. 

      

      (    "")   ,  
     (..    R 
      S,    . 18.3). 

    .      " ",   
  ,       
  ,  . 

     
    	do i := 1 to  ;	/*     */ 
		do j := 1 to n ;  /*   */ 
			if ft[i] .C = S[j] .C then         
				R[i] * 5[j] ; 
		end ; 
	end ; 

    . 18.3.   

        .     
 *    .      ?  
   ? (   
     ,    
  .) 
        ,  ,   -- 
(,   ----) 
     (  )  
       ,   , R  S, 
   ""  . 
            --.  
dCR        R,   
 , a dCS     S.  
,     (    
     ,    ),   
   R  n/dCS    S   
 ,         
 R.  ,      (.. 
  )   ( * n)/dCS.    
 ,      S,    
  ( * m)/dCR. ,      
   dCS * dCR, ..   R  , 
    S  .      
  . 
    ,   ,     
- ,   .  ,    R  
S     pR  pS  (, 
   m/pR  n/pS ).   , 
 ,     . 18.3,  (m/pR) + 
(m*ri)/pS   .   ,    
 R  S ( S  ,  R  ),   
    (n/pS) + (n*m)/pR. 

    490	 V.   

      ,   = 100,  = 10 000, pR = 1  pS = 10.  
     100 100  1 001 000   
 . 

    .        
   (    ""   
 ). 

         ,    
   .    ,  
 S    ,  -   ,  
  . ,   (Bitton) 
[18.12], ,     (   
-)   ,     , 
    -      
      - (. ).   
   [18.32]. 

       

      ,     S.   
 S   X(. 18.4).     
     ,       
 R   "" (  X)   
    S.       
 R  S       (. 
  ).        R 
 S  (/) + (mn/dCS)   ,   
     S     . 

    /*   X   S.C */ 
    do 2 := 1 to  ;	/*            */ 
    /*      [^].        */ 
    /*  k  : [1], ..., X[k]	*/ 
    do j := 1 to k ;	/*         */ 
    /*  5[j] -   5,     X[j] */ 
         R[i] * S[j] ; end ; end ; 

    . 18.4.    

       S       
,         (m/pR) + 
(mn/dCS)/pS.     ,    ( = 
100, = 10000, pR = 1, pS= 10),  ,  dCS= 100,   
  : 10 100  200 .    
 ,        
 . 
           , 
   .   ,   
     S     R 
 ""   ,      
   .  ,  / ,  
         *1 . 
   /  3   ( ,  , 
          ,  
      ). 

     18. 	491 


      - 

      -       ,  
  "  "   S.    S 
   - (. 18.5).    
        . 

    f 
    /*  -:    S.C */ 
    /*   
    / 
    do i := 1 to m ; 
    k := hash (ft[j.] .Q 
    /*   H[k]  h    S  */ do j: := 1 
to  ;	/*     */ if [2] . = S[j] . then 
         R[i] * S[j] ; end ; end ; 

    . 18.5.   - 


     

      ,    R  S   
   ,    . 
    ,       
 ,       
          (. 18.6). 

    /*	  ,   S,   	*/ 
    /*	  .	*/ 
    /*	      --,	*/ 
    /*	   --   	*/ 
     := 1 ; s := 1 ; do while r <  and s <  ;	/*   */ 
    v := [] . ; 
    do j  := s by 1 while S[j] .C<  v ; 
    end ; 
    s := j ; 
    do j := s by 1 while S[j].C = v ; /*   */ 
	do i := r by 1 while R[i] .C = v ; 
         R[i] * S[j] ; end ; 
    end ; 
    s := j ; 
    do J. := r by 1 while [^] . = v ; 
    end ; 
    r := -i ; end ; 

    . 18.6.  (   --) 

     ,   ,     
   (  ,      
 --        --). 
 ,      (/) + (n/pS). 
  : 

    492  V.   

               
 ,   , ..    
    ,    
     [18.6]. 
         ,      
 -         
    (,    
  ).        
( ) - [18.7]. 
          [18.30]. 

     

      ,         
  (. 18.7).      - 
   S.   S.     : 
  , ,     
S     .      
  R      -   
 R.C.     R   -   
     S,   ,  
   .  S.C,    ,    
 () .      
     ,   R  S    
 ,  ,   . 

    /*  -    S.  */ 
    do j := 1 to  ;	/*       */ 
    k := hash (S[j} .Q 
    I*   S[j]    H[k] */ end ; 
    /*     -  R *I 

    . 18.7.  

           -,     
      . 

    18.8.  

        ,      
  ,     . 
          
.        
 ,  .      
 ,    (   
        10 
000:1).      . 
            (     
  ,      
       ). 

     18. 	493 

               . 
             
    . 
                 
      . 
        ,   
      ,   
.  ,      
   ,     . 
      .   
     .    
   , ..  , 
   ""   . 
             , 
  DB2  INGRES.      
  "  "   ,  
    INGRES.   ,   
 "  "      
   . 
     ,      
 ,    .    
      :  , 
  ,   -,   .   
    . 
        , ,  ,   
     ,   
 ,   ,  (      
).       ,  
     ,     
 (,    ).   
 , ,      
  [4.11]    (     ). 

     

    18.1.        , 
   ,   .    
 ? 

    al) S JOIN ( ( P JOIN J } WHERE CITY = 'London' a2) ( P WHERE CITY = 
'London' ) JOIN ( J JOIN S ) 

    61) ( S MINUS ( ( S JOIN SPJ ) WHERE P# = 'P2' ) 
    [ S#, SNAME, STATUS, CITY ] ) [ S#, CITY ] 
    62) S [ S#, CITY ] MINUS 
    { S [ S#, CITY ] JOIN 
    ( SPJ WHERE P# = 'P2' ) ) [ S#, CITY ] Bl) ( S [ CITY ] MINUS P [ CITY ] ) 
MINUS J [ CITY ] B2) { S [ CITY ] MINUS J [ CITY ] ) 
    MINUS ( P [ CITY ] MINUS J [ CITY ] ) rl) ( J [ CITY ] INTERSECT P [ CITY 
] ) UNION ( S [ CITY ] ) 

    494	 V.   

    2) J [CITY ] INTERSECT ( S [ CITY ] UNION P [ CITY ] ) 
    1) ( ( SPJ WHERE S# = 'SI' ) UNION ( SPJ WHERE P# = 'PI' ) ) 
    INTERSECT  ( ( SPJ WHERE J# = 'Jl1 ) UNION ( SPJ WHERE S# = 'SI' } ) 2) { SPJ WHERE 
S# = 'SI' ) 
	UNION   ( ( SPJ WHERE P# = 'PI' ) INTERSECT ( SPJ WHERE J# = 'Jl' ) ) el) ( S 
WHERE CITY = 'London' ) UNION ( S WHERE STATUS > 10 ) e2) S WHERE CITY = 
'London' AND STATUS > 10 1) ( S [ S# ] INTERSECT ( SPJ WHERE J# = 'Jl' ) [ S# 
] ) 
    UNION ( S WHERE CITY = 'London' ) [ S# ] 
    2) S [ S# ] INTERSECT ( ( SPJ WHERE J# = ' Jl' ) [ S# ] ) UNION ( S WHERE 
CITY = 'London' ) [ S# ] ) 

    31) ( SPJ WHERE J# = 'Jl' ) [ S# ] 
    MINUS ( SPJ WHERE P# = 'PI' ) [ S# ] 

    32) ( ( SPJ WHERE J# = 'Jl' ) 
    MINUS ( SPJ WHERE P# = 'PI' ) ) [ S# ] 

    18.2. ,  ,     
,    . 
    18.3. ,  ,     
,    . 
    18.4. , : )    ; ) 
   . 
    18.5. ,      : a) A UNION ( A INTERSECT ) = ; ) A 
INTERSECT ( A UNION  ) = . .     
.    ,   ..,   
     . 
    18.6. , : )     , 
       ; )  
     ,   
     .   
   . 
    18.7.   ,    18.4, 
,    EXTEND  SUMMARIZE. 
    18.8.    -    
  ? 
    18.9.       ,  
   AND, OR  NOT.     
 "    AND", ..  A AND  
   AND . 
    18.10.     ,     
 ,     EXISTS  FORALL.  
  ,    7    
,    FORALL,     
 EXISTS. 

     18, 	495 

    18.11.         
,   . 
         (London),  (Paris),  
(Rome),  (Athens),  (Oslo),  (Stockholm),  (Madrid)  
 (Amsterdam). 
                 . 
                . 
               
    . 
                
   . 
          ,       
  . 
            . 
            15. 
            2. 
             50 . 
           ,  . 
          (  ), 
 . 
           : 
    )  ,     2; 
    )    ,      
  ,     ; 
    )   ,      
,      ; 
    )   ,     
   ,     ; 
    )  ,         
  ,          
    ; 
    )   ,       
 ,     ; 
    )  ,       
     ,   ; 
    )   ,       
      ; 
    )  ,        
,     ,    ; 
    )   ,     , 
     . 
             
  (    ;      
  ). 

    496	 V.   

    18.12.    .     
  (    )?   ,   
 ? 
    18.13.    .   , 
: "  ,    2",  
          
   (,    SQL).    
   ,        
  .     ,   
   ,     
     .    
  .  ,      
 . 

    . ,       
.    , , ,    
      .   
  ,       ! 

    18.14.     .     
-    (    )   ,  ? 
         - ? 
     ,       
  ?     (  ,  
      )? 
    18.15.     ,    ,  
 DB2,         
    .     ? 
    18.16.         
 (    18.7    
 ).       
 , ,        
  -, ..      
       .   
  ,     . 

      

            
        .   
   .  [18.118.3]     
     .  [18.4-18.14]  
     ,   
  .  [18.15-18.28]    
 ,    ,    [18.23-18.28] 
  .  [18.29-18.39]  
,    System R, DB2  INGRES,    
       SQL (.  8). 
 [18.40-18.49]    ,   , 
     ..  [18.50]   (  
) . 

     18. 	497 


    . ,      
 ,      (.  21). 

    18.1. Kirn  W.,  Reiner D.S.,  Batory  D.S.  (eds.).  Query  Processing  
In  Database Systems. New York, N.Y.: Springer-Verlag, 1985. 
      ,      ( 
  ).       
(Jarke),  (Koch)   (Schmidt),  ,   
  [18.3];    ,   
   :   ,  
,  ;    , 
  (, CAD/CAM),    
  . 
    18.2. Special Issue on Query Optimization // IEEE Database Eng.  1982.  
5,  3. 
     13   (   ),  
     . 
    18.3. Jarke M., Koch J. Query Optimization in Database Systems // ACM 
. Surv.  1984.  16, 2. 
      .      
,  ,     (   
   ),     ,    
.          
:    ,  
           
 .       
.      ( 
). ,   1984        
  ,   1984 . 
           ,   
    (,    
     )     
 . 
    18.4. Bing Yao S. Optimization of Query Evaluation Algorithms // ACM 
TODS. 1979. 4, 2. 
          ,   
    .     
      . 
    1.   . 
    2.   . 
    3.  . 
    4.    . 
    5.   . 
    6.   . 
    7.   . 
    8.   . 
    9.  . 
    10. . 
    11. . 

    498	 V.   

           
  ,       
    .      
         
.          
      .  
  ,    . 
    18.5. Pecherer R.M. Efficient Evaluation of Expressions in a Relational 
Algebra // Proc. ACM Pacific Conf.  1975. 
       ,     
.       
  (     ). 
    , , .  
,          
      ,    
 .      .  
 ,        
    . 
    18.6. Blasgen M.W., Eswaran .P. Storage and Access in Relational 
Databases // IBM Sys. J.  1977.16, 4. 
          ,  
   ,   ,    
   -. 
    18.7. Merrett .. Why Sort/Merge Gives the Best Implementation of the 
Natural Join // ACM SIGMOD.  1983.  13,  2. 
          ,   
 -     .  
    ,      
,        ,  
   (   ,    
  ,      ,   
     ,    
);         
(  ) , ,   ,    
     . 
      ,  ,       
 . ,       
 (..       ),  
        -   
 ,    .  [18.8-18.11]  
  ,    -  
     . 
    18.8. Sacco G.M. Fragmentation: A Technique for Efficient Query Processing 
// ACM TODS. 1986.  11, 2. 
         "  "   
 .       
    ("")    

     18. 	499 

   .     
-,       
. ,      
-,   ,     
,    ,      
  () .  ,    
     ,     . 
    18.9. Negri M., Pelagatti G. Distributive Join: A new Algorithm for 
Joining Relations // Ibid.1991.16, 4. 
          "  ", 
 "...    , ...     
 ...     ,    
, ,  ,     
   ."    
      
 SI, S2,... Sn (    (Sacco) [18.8],   
        ), 
  : (5[/]) < MIN(5[/+1])   /(1, 2,..., 
-!). ,      -. 
    18.10. DeWitt D.J. et al. Implementation Techniques for Main Memory 
Database Systems // Proc. ACM SIGMOD Intern. Conf. on Management of Data.  
Boston, Mass., 1984. 
    18.11. Shapiro L.D. Join Processing in Database Systems with Large Main 
Memories // ACM TODS.  1986.  11,  3. 
         .    
 "       , 
      ".  
      ,   
   .  ,     
   ,        . 
    18.12. Bitton D., DeWitt D.J., Turbyfill . Benchmarking Database Systems: 
A Systematic Approach // Proc. 9th Intern. Conf. on Very Large Data Bases.  
Florence, Italy, 1983. 
      ,    " " (  
       ).    
      .   
      
  (,   ,   
    ).  ,  
        . 
    18.13. Bitton D., DeWitt D.J. Duplicate Record Elimination in Large Data 
Files // ACM TODS. 1983. 8, 2. 
            
   .     
,      . 

    500	 V.   

    18.14. Bitton D, Boral H., DeWitt D.J., Wilkinson K. Parallel Algorithms 
for the Execution of Relational Database Algorithms // Ibid.  8,  3. 
        , , 
,      .  
   ,   -,  
,  .       
 . 
    18.15. Palermo P.P. A Data Base Search Problem // J.T. Tou (ed.). 
Information Systems: COINS IV  New York, N.Y.: Plenum Press, 1974. 
         .     
 ,        
       (Codd).  
,      ;  
  : 
            . 
              
(""   ,      
        ).   
     "" , , 
  ,     , , 
,  ,      . 
     ,    -,   
  , ..  "" .   
    ,     
,     . 
            
,     (, S.S# = SP.S#),  
      ( 
       ).  
   ,    . 
      ""  
     . 

    .         
,             . 

    18.16. Rothnie J.B. (Jr.). An Approach to Implementing a Relational Data 
Management System // Proc. ACM SIGMOD Workshop on Data Description, Access, 
and Control.  Ann Arbor, Mich., 1974. 
    18.17. Rothnie J.B. (Jr.). Evaluating Inter-Entry Retrieval Expressions in 
a Relational Data Base Management System // Proc. NCC 44.  Anaheim, Calif.; 
Montvale, N.J.: AFIPS Press, 1975. 
         .     , 
     DAMAS (   
 MIT)      .  ,   
    ,    INGRES  
" " [18.31, 18.32].  [18.17]   
  ,  [18.16]    
    .     
  (-

     18, 	501 

         ),   
        (primitive 
Boolean conditions  ).    ,     
 (true)   (false)       
  , ..     .  
   DAMAS,   ,   : 
    1.    ,   /?  . 
    2.     ,      
 . 
    3.      ,      . 
        .    ,   ,  
     (   ) 
R1 ( )  R2 (  ). ,  
        R1. 
(       R1  R2    
 ,     R1  R2.) 
     1.     ,   R2, 
  ,    .   
 , //.   R1,    
/?/,     . 
     2.   (    )   
R1.          ,  
  2.    R2 ,   2? 
     3,. (.)     R2.     
,   R1,     -.  
 ,   R1  ,       
,          
  R1,      . ( 
          
-.)    ,    
 R2,      ,    
  4.     RI,    4, 
     . 
     3,6. (.)  />5,     R1,  
   (  2)  ,   R2     
,    (       
2).     R1. 
     4.   2-3,   R1  . 
        , ,    
        .  
 ,    ,    , , 
        
    .       
,      .   DAMAS   
  ,        
  . 

    502	 V.   

    18.18. Smith J.M., Yen-Tang Chang P. Optimizing the Performance of a 
Relational Algebra Database Interface // CACM.  1975.  18,  10. 
     ,    "Smart Query Interface for a 
Relational Algebra" (SQUIRAL).    : 
          ,  
    (     ). 
             
         . 
          ,  
  . 
           . 
    18.19. Hall P.A.V. Optimization of a Single Relational Expression in a 
Relational Data Base System // IBM J. R&D.  1976.  20,  3. 
       ,    PRTV, 
,   SQUIRAL [18.18],     
        
.  PRTV  ,     
  ,    .   
          
     (.   
    6).  ,   
        
.      SQUIRAL,    
  . 
        ,   . 
           . 
       . 
     ,      , . 
         . 
          ,   
   . 
    18.20. Jarke M., Koch J. Range Nesting: A Fast Method to Evaluate 
Quantified Queries // Proc. 1983 ACM SIGMOD Intern. Conf. on Management of 
Data.  San Jose, Calif, 1983. 
       ,   
   .   
    ,      
    ,  " 
 ".       
  ( , ,   FORALL).  
,         
,   . 
    18.21. Makinouchi A., Tezuka M., Kitakami H., Adachi S. The Optimization 
Strategy for Query Evaluation in RDB/V1 // Proc. 7th Intern. Conf. on Very 
Large Data Bases  Cannes, France, 1981. 

     18. 	503 

     RDB/V1     	J 
AIM/RDB  Fujitsu ( SQL-).      
,     .    
  ,     INGRES  System 
R.           
     MIN    . 
           
  .      
  ,     S    
 CITY.   S    S.CITY.   
   S.CITY      MIN, 
   HIGH  LOW.     
  ,       
,    

    LCW < P.CITY AND P.CITY < HIGH 

    18.2la. Pirahesh H., Hellerstein J.M., Hasan W. Extensible Rule Based 
Query Rewrite Optimization in Starburst // Proc. 1992 ACM SIGMOD Intern. Conf. 
on Management Data.  San Diego, Calif, 1992. 
      (Query Rewrite)      
 .  ,    
,   ,      .  
       IBM 
Starburst.         
      . 
    18.22. Mumick I.S., Finkelstein S.J., Pirahesh ., Ramakrishnan R. Magic 
is Relevant // Proc. 1990 ACM SIGMOD Intern. Conf. on Management Data.  
Atlantic City, N.J., 1990. 
      "magic" ()      
   ,      
,   ,       
Datalog.      - ,  
   ,      
   (,      
 ,      ).   
         , 
  " " (    
  INGRES [18.31, 18.32])  ,      
 ,     .    
,       : 

    R := EX.ENAME WHERE EX. JOB = 'Clerk' AND EX.SAL > 
    AVG ( EY WHERE EY.DEPTtf = EX.DEPTtt, SAL ) ; 

    ("   (clerk),       
.")     "" (..  ,   
),     ,    
,   ,        
,      .    
     : 

    504	 V.   

    Tl := ( EX.DEPT*, 
    AVG ( EY WHERE EY.DEPTtt = EX.DEPTft, SAL ) AS ASAL ) ; T2 := EMP.ENAME 
WHERE EMP.JOB = 'Clerk1 AND 
    EXISTS Tl ( EMP.DEPT# = T1.DEPT# AND EMP.SALARY > Tl.ASAL ) ; 

               
 ,    ,     
,       ,     . 
    ""        
         ,  
     . 

    /*   : */ /* ,     
*/ 1 := ( EMP.ENAME, EMP.DEPT#, EMP.SAL ) 
    WHERE EMP.JOB = 'Clerk' ; /*   : */ /* 
,     */ 2 := T1.DEPT* ; 
    /*   : */ /* ,    
, */ /*       */  := ( T2.DEPT#, 
    AVG ( EMP WHERE EMP.DEPT* = T2.DEPT*, SAL ) AS ASAL ) ; /* 
- */ 
    R := Tl.ENAME WHERE EXISTS T3 ( Tl.DEPT* = T3.DEPT# AND 
    Tl.SAL > T3.ASAL ) ; 

    ""   ,  ,   
  . 
    18.23. King J.J. QUIST: A System for Semantic Query Optimization in 
Relational Databases // Proc. 7th Intern. Conf. on Very Large Data Bases.  
Cannes, France, 1981. 
        (    
).    QUIST (query improvement through 
semantic transformation      
),    . 
    18.24. Shenoy S.T., Ozsoyoglu Z.M. A System for Semantic Query 
Optimization // Proc. 1987 ACM SIGMOD Intern. Conf. on Management of Data.  
San Francisco, Calif, 1987. 
         (King) [18.23],  , 
        
    ,     
  .     
  :   (, "    
 300  ,       ")  
  (, " -

     18. 	505 

,   ,      "). 
        
         
  .     
        
  . 
    18.25. Siegel M, Sciore E., Salveter S. A Method for Automatic Rule 
Derivation to Support Semantic Query Optimization // ACM TODS.  1992.  17,  4. 
         ,    
    .   ,  
 ,    . 
    1.      ,     
(..      )? 
    2.           
. , ,  ,     
 ,     ,     
.        
 ? 
    3.          
 ,    ,       
 .     EMP.AGE < 50, 
       (  
   50 ,           
 50 ). 
        ,   . 
    18.26. Chakravarthy U.S., Grant J., Minker J. Logic-Based Approach to 
Semantic Query Optimization // Ibid.  1990.  15,  2. 
      : "      
       ... 
           
         . 
   ,      
        ,  
        
    ,   , 
  ". 
    18.27. Aho A.V., Sagiv Y., Ullman J.D. Efficient Optimization of a Class 
of Relational Expressions // Ibid.  1979. 4,  4. 
        ,   ( 
 ) ,    .   
   SPJ- ( , select, projection, join  
, , ). SPJ-    
 ,      , 
 AND   EXISTS.       
(),   ,     
,    ,    ,  
,        
.         
. ,  

    506	 V.   

    _S#_____STATUS______CITY_________PJ______COLOR______ 
_______al______________________________________      al         London	- 
 S                            2                -  SP 
    2     Red        -  P 

      "  (!)  ()  , 
    (62)".      
 ,    ,     "" 
(      ,   
,      ),    
,   .       
    . ,  "" 
     ,  ""     
 .      "". 
               
,      ,    
  . (     
   Query-By-Example (QBE),    
,    QBE.)      
    ,   ,   
    .    
  ,       ( 
 ). (       
,       .) 
        -  
    . 
           , 
   ,     
 ( ,  ,    
" "). , ,    
 (view) V,     S  SP  
 S#,     

    V   [   #   ] 

            : 

    (  SP JOIN S   )    [   #  ] 

      ,      ,     
        (..  
    ): 

    SP   [  #  ] 

      , ,     ,   
 ,        
,       . 
    18.28. Sagiv Y., Yannakakis M. Equivalences Among Relational Expressions 
with the Union and Difference Operators // JACM.  1980.  27,  4. 
      [18.27] ,       , 
    . 

     18. 	507 

    18.29. Selinger P.G. et al. Access Path Selection in a Relational Database 
System // Proc. 1979 ACM SIGMOD Intern. Conf. on Management of Data. Boston, 
Mass., 1979. 
       ,     
System R. 
    .   System R    
 DB2.  [18.30]    ,   DB2. 
      System R    SQL-,  
    SELECT-FROM-WHERE ( ).   
      .  System R  
 ,      .   
        
        . 
  (   ,     
) ,         
,     "  ". 
    .         
 ,   , ..   
 .  [18.35-18.39]      
  . 
          ,    
(        ). 
    1.   ,       ()  
 ,      
    (   )  
       ,  
       () . 
    2.   ,       , 
    JOIN, ,     () 
  ,     
   1     . 
        . ,   
       ,    
       ,    
        . 
         -,   
   .       ,  
 , ,   (A JOIN ) JOIN   
     A JOIN   
    .   ,   
 A JOIN      ,  
     .     
 A JOIN  . (      6.) 
           .  
      -

    508	 V.   

 5-20         
 . (,  System R,   DB2,  
 ,      
     .)   ,   
   "      
     "   IBM System 370 
Model 158. "       ." 
    18.30. Cheng J.M., Loosley C.R., Shibamiya A., Worthington P.S. IBM 
DATABASE 2 Performance: Design, Implementation, and Tuning // IBM Sys. J.  
1984.  23,  2. 
          DB2 (    
):   ,    , 
 ,      .   
       DB2,   . 
    18.31. Wong E., Youssefi . Decomposition A Strategy foe Query Processing 
// ACM TODS.  1976.  1,  3. 
    18.32. Youssefi K., Wong E. Query Processing in a Relational Database 
Management System // Proc. 5th Intern. Conf. on Very Large Data Bases.  Rio 
De Janeiro, Brazil, 1979. 
    18.33. Epstein R. Techniques for Processing of Aggregates in Relation 
Database Systems.  Berkley: University of California, Electronics Research 
Laboratory Memorandum, 1979.   UCB/ERL M79/8. 
      ,     INGRES  
    COUNT, SUM, AVG  ..  ,  
 ,       . 
    18.34. Rowe L.A., Stonebraker M. The Commercial INGRES Epilogue // M. 
Stonebraker (ed.). The INGRES Papers: The Anatomy of a Relational Database 
Management System.  Reading, Mass.: Addison-Wesley, 1985. 
    Commercial INGRES ( )    , 
   University INGRES ( ).  
      Commercial INGRES  
University INGRES. 
    1.      , .. 
,    ,  ,   ,  
 ,      ,  .. 
       , 
     . 
    2.       
(, )    ,      
.       
  , ,  ,  -, 
    . 
    3.          
   . 
    4.       (. 
 1).      .   
,  ,    

     18, 	509 

 ,       
(        ), 
    5.         
,      "   
   -,  -, 
  -,   -   ". 
    18.35. Kirn W. On Optimizing an SQL-Like Nested Query // ACM TODS,  1982.  
    7,3, 
    CM. [18.39]. 
    18.36. Kiessling W. On Semantic Reefs and Efficient Processing of 
Correlation Queries with Aggregates // Proc. llth Intern. Conf. on Very Large 
Data Bases. Stockholm, Sweden, 1985. 
    CM. [18.39]. 
    18.37. Ganski R.A., Wong H.K.T. Optimization of Nested SQL Queries 
Revisited // Proc. 1987 ACM SIGMOD Intern. Conf. on Management of Data. San 
Francisko, Calif, 1987. 
    CM. [18.39]. 
    18.38. Gunter von Bultzingsloewen. Translating and Optimizing SQL Queries 
Having Aggregates // Proc. 13th Intern. Conf. on Very Large Data Bases. 
Brighton, England, 1987. 
    CM. [18.39]. 
    18.39. Muralikrishna M. Improved Unnesting Algorithms for Join Aggregate 
SQL Queries // Proc. 18th Intern. Conf. on Very Large Data Bases.  1992, 
     SQL   " ", ..  
SELECT-FROM-WHERE,     .   
    .   
SQL- ("  ,    2"),  
       Q1: 

    SELECT S.SNAME FRCM  S WHERE S.S# IN 
    ( SELECT SP.S# FRCM  SP WHERE SP.P# = 'P2' ) ; 

      System R [18.29]      . 
         R, 
    .      
   S       S  
  R  ,      
 .     (  
 R  ). 
       Q2: 

    SELECT	S.SNfiME 
    FRCM	S, SP 
    WHERE	S.S# = SP.S# ; 

    510	 V.   

     ,      ,  
 System R       
.  ,   S  SP     
  ,    ,  
  . ,      
,       ,    
,    ,  Q1,  , 
 Q2,    .     
   [18.35-18.39]. 
     (Kirn) [18.35]  ,      .   
        
 .     , 
 ,      
     - . 
      ,  (Kiessling) [18.36] ,    
 ,    (  )   
     COUNT (   
 ,    COUNT   
).  " "     
  ,       
      .  
,  ,      
(        
     ).    ,   
  ,      QUEL   SQL 
(. [18.33]). 
        (Ganski and Wong) [18.37]   
,  .   ,   
        
 (     ).    
      ,    
.   ,     .    
   (  " " 
[18.36]),       EXISTS   SQL. 
     [18.38]        
 (     , ,   
 ,         
    ).  [18.38]   
       ( 
       (nulls))   
    (    
,     ,  ).  
  SQL        
 ,     .   , 
  : 
    1.       SQL   ,  
  ,     SQL,   
 [18.35-18.37].       -

     18. 	511 


 .     UNION    
  ALL,     unknown  
   SQL (      ). 
    2,      " "    
   .      
  ,   ,  (   ) 
         
  . 
     ,   [18.39] ,     
   [18.35],   ,   
 " ",   [18.37].   [18.39] 
       .  
,       . 
    18.40. Warren D.H.D. Efficient Processing of Interactive Relational 
Database Queries Expressed in Logic // Proc. 7th Intern. Conf. on Very Large 
Data Bases.  Cannes, France, 1981. 
             
.  ,    ,   
 Prolog.   -    ,   
System R,         
.   ,       ,  
 QUEL  SQL, ,   ,   Prolog,  
  ,   : 
      ,     ; 
      ,    ; 
        ,     . 
      ,          
. ,        
   ,     
,     -  . 
    18.41. loannidis Y.E., Wong E. Query Optimization by Simulated Annealing 
// Proc. 1987 ACM SIGMOD Intern. Conf. on Management of Data.  San Francisco, 
Calif, 1987. 
       ,   ,   
  .      
     , ,  
   (" ")    
.   ,   ,    CAD/CAM,  
         . 
 ,    "" (.. ) 
 [18.43]    .   
   .     
  ,      
   . 

    512	 V.   

              
       .  
   ,       
   ,    , ,  
 ,       .  
, ,        
.   ( " ",   
    ,     
,    ,     ) 
  ,      
    . 
    .  [18.42]. 
    18.42. Swami A., Gupta A. Optimization of Large Join Queries // Proc. 1988 
ACM SIGMOD Intern. Conf. on Management of Data.  Chicago, 111., 1988. 
           , 
    (     
),   .     
  ,     : 
 ,   ,  
,      ( 
  ""   ,    
).      
     ,   
       -. 
    18.43. Sellis .. Multiple-Query Optimization // ACM TODS.  1988.  13, 
 1. 
      ,      
     .   
         
 .        ,  
          
   .     .   
  "    ?"    
   : 
     "    40 000 ?" 
     "    35 000 ,      
  5 ?" 
     "    30 000 ,      
  3 ?" 
      ,       
  ,     
  . 
       ,      
  ()   ,     
     . 

     18. 	513 
    1 7      

    18.44. Lohman G.M, Grammar-Like Functional Rules for Representing Query 
Optimization Alternatives // Proc. 1988 ACM SIGMOD Intern. Conf. on Management 
of Data,  Chicago, 111., 1988. 
            
 .   , ,   , 
   ,      . 
        
   .  ""    
  ,      
  ,  .   
 , ,    , 
 .     
        
 . 
      ,      . 
         ,  
       
.      (   
    Starburst),      
  ,    .  
,   STAR (strategy alternative rules   
 ),      
     "   " (low-level plan 
operator  LOLEPOP),       , 
 ,   ..    LOLEPOP   
. ,  LOLEPOP    
-,   .. 
      ,       
:  (STAR)   ,     
;   ,      , 
        ,   
 ;  ,   . 
    18.45. Nakano R. Translation with Optimization from Relational Calculus to 
Relational Algebra Having Aggregate Functions // ACM TODS.  1990.  15,  4. 
        7,   ,   , 
   : )   
     ; )  
   ; )   
 .      ()  ) 
  , ..       
      . , 
   "   ...     
   ".    
   ,    
       
  . 
    18.46. Whang K.-Y., Krishnarnurthy R. Query Optimization in a 
Memory-Resident Domain Relational Calculus Database System // Ibid.  1990.  
15,  1. 
          (    
  ,     )   

    514	 V,   

 .        
    . 
    18.47. Freytag J.C., Goodman N. On the Translation of Relational Queries 
into Iterative Programs // Ibid.  1989.  14,  1. 
           
     ,    Pascal. ,    
  ,    ,   
   ()    
  . 
    18.48.  ., Lohman G.M. Measuring the Complexity of Join Enumeration in 
Query Optimization // Proc. 16th Intern. Conf. on Very Large Data Bases.  
Brisbane, Australia, 1990. 
           ,  
   N  (N> 2)    
.        
"" .    ,   
 ,         .. 
 , ,   A JOIN  JOIN  JOIN D,  
  (( D JOIN  ) JOIN  ) JOIN ,         A 
JOIN D ) JOIN (  JOIN  ).  ,   
 ,      . 
     "  ",  
        . 
            
  IBM Starburst.  ,    
   ,      
,        
 . 

    .       , 
Starburst     R.A = S.B +    
.  ,      
 . 

    18.49. loannidis Y.E., Ng R.T., Shim ., Sellis .. Parametric Query 
Optimization // Proc. 18th Intern. Conf. on Very Large Data Bases.  
Vancouver, Canada, 1992. 
      : 

    EMP WHERE SALARY > salary 

     salary ()   ,     
. ,   SALARY ()  . : 
      salary   10 000   ,    
    (    
    ). 
         1 000   ,    
     (  
     ). 
         ,     
     ,    
.       

     18. 	515 

     (   "" 
        
 )       ,  
    .  ,   
          . 
  ,      
         
 .   ,      
  . "   
      ,  
    ." 
    18.50, Graefe G. Query Evaluation Techniques for Large Databases // ACM 
. Surv.  1993. 25, 2. 

        

    18.1. ) ; ) ; ) ; )  
; ) ; )   (   
,    AND  OR); )  ; )  . 
    18.2.    ,    
.  A JOIN   {, Y]  A{Y, Z}    
  {X, Y, Z}   {:, Y:y, Z:z} ,    
        ,       z 
    .     
   .  A JOIN    JOIN A. 
    18.3.      . 
 A UNION             
  ,    ,  ,     /, 
       .  ,      
   , : 
      ( A UNION  ) UNION          
,     t,    A UNION , 
   ; 
      A UNION (  UNION  )         
,     t,     UNION , 
    . 
         ,      
   ,       ,   
,    . 
    18.4. ,     . 
      /   A   UNION   (     INTERSECT   ),  t     t    
INTERSECT . 
      /     ,  t      A   UNION    t      A   UNION  , 
 t  
    ( A  UNION   )   INTERSECT   ( A  UNION   ). 
      t         INTERSECT  ,  t        t   6   ,  t       
( A  UNION   )      t  
    ( A UNION  ). , /  ( A UNION  ) INTERSECT ( A UNION  ). 
        ,  t  ( A UNION  > INTERSECT ( A UNION  ), 
     t     (A   UNION    )   t     (A   UNION    ).   , 
 t     t 

    516	 V,   

         . , t e A UNION  (  
    INTERSECT   ). 
    18.5. ,  A UNION ( A INTERSECT  ) = .  ;  ,  ,  
?   UNION (  INTERSECT  ).    ,  /   UNION (  
INTERSECT  ),  t <=   /      .   
 ,  t e . 
    18.6.        
.  (A JOIN ) [X]   A[Y] JOIN B[Z] 
   ,    X   
   Z   ,     . 
    18.9.       [18.3]. 
    18.10.       [18.3]. 
    18.11. )  ,       
  2; 
    )  ,    ; 
    )    , ,     
 ,      ; 
    )   ; 
    )    ; 
    )  ; 
    )    ; 
    )     ; 
    )    ; 
    )    , ,     
,      . 
    ,     (  ,  
  (), (), ()  ())     
 . 
    18.15.    ,     
      . ,  
  "employee name" ( )     Z,  
     ,   . 
, ,        
    ,     . 

     18. 	517 

