     7 

     : 

    .   

    7.1.  

      6 ,    ,   
,    ,       
,       .  , 
       . 
    :     
   (, ,   ..),   
,   ,       
    ,      
        
    . , ,  " 
   ,   2".   
     (    
   6): 
            S  SP  
 S#. 
              2. 
       ,     ( )  
 S#  CITY. 
          ,  
,   : 
         S#  CITY   ,   
    SP      S#   
 2  #. 
           
 ,   ,  ,   
..,    . ,  , ,   
 ,        
,     .    
,    ,      
  . ,   ,   
  (,   ,    , 
     ),    . 
    , ,      .  
     .     
    ,      
       , .. 
   - .    
  :     ,    
  .    :    , 
  ;  ,       " 
"    .     
     . 

     7.  : II.  	179 

          ,  
  .      
          - 
(Kuhns) [7.8].    ..   
          
  [7.2],   [7.3]    ,  
     "  ALPHA".   ALPHA 
   ,   QUEL [7.7, 7.12-7.14], , 
,          SQL, 
    ALPHA,       QUEL. 
        [7.2]    
 (    ). ,  
   ,  " "  , .. 
,       .  
,         R,   
   7'    t  R. 
,  "     ,   
 "      QUEL : 

    RANGE OF SX IS S 
    RETRIEVE ( SX.S# ) WHERE SX.CITY = "London" 

        SX,      S ( 
RANGE     ).  RETRIEVE 
 : "     SX  
 S#  ,      CITY   London." 
       ,       
 ,       (. )   
  .        . 
         (Lacroix and Pirotte) [7.9]  
  ,   ,   
    , .. , 
  ,    .  ILL,    
,      [7.10].     
   : FQL [7.11], DEDUCE [7.1]  () 
Query-By-Example,  QBE [7.15].     , , 
QBE;      .    
       ,   QBE  
    [7.15]. 
    .       6,   
    ,    
 .       ""  
 (    )   . 

    7.2.   ( ) 

          6,      
 ,      . 
        - 
()    . 7.1. 
    .   "["  "]"      
  ,   ,  ,    
,     . 

    180	 II.   

        

    1.    commalist ( ,  
)     4. 
    2.     relation (), variable ()  
attribute ()   .    
,       . 

    range-variable-definition 
    ::=	RANGE OF variable IS range-item-coramalist ; 
    range-item 
    : :=    relation | expression 
    expression 
    : :=	(   target-item-commalist )   [ WHERE wff } 
    target-item 
    : :=	variable  \   variable .  attribute [ AS attribute ] 
    wff 
    : :=    condition I NOT wff 
    I condition AND uff I condition OR wff I IF condition THEN wff I EXISTS 
variable ( uff ) I FORALL variable ( wff ) I ( wff ) 

    . 7.1.       - () 

    3.   condition ()    WFF, 
   (.  4),      

    comparand 6 comparand 

     "9"       (=, 
^, >, >,  ..),   :    ,  
 ,       
. (  "  "). 
    .  ,    ,  
(condition)            
 . 
    4.   wff  "  " 
(well-formulated formula  WFF,  "").   
 WFF   . 
    .    , ,     
    WFF. 

      

      (  )   : 

    RANGE OF   IS XI,   2,    ...,    

     җ   ,  Xi (/ = 1, 2,..., )   
 ,    .  Xi  
 Ri (i - 1, 2, ..., ).  /?/, R2, ..., Rn   
  , . .     .  
     

     7.  : II.   181 

      , ..        
         . , 
        
 R (  ),      
       R. 
           "": 

    RANGE OF SX IS S ; 
    RANGE OF SPX IS SP ; 
    RANGE OF SY IS ( SX ) WHERE SX.CITY = 'London', 
    ( SX ) WHERE EXISTS SPX ( SPX.S* = SX.S# AND SPX.P* = 'PI' ) ; 

      SY       S  
,     ,    1 (  
  ).    . 
    .     ,   
   [7.2]    ,  
   -,    . 
        UNION,  
  !      . 
        ,     
 : 

    RANGE OF SX	IS S 
    RANGE OF SY	IS S 
    RANGE OF SZ	IS S 
    RANGE OF PX	IS P 
    
    RANGE OF PY	IS P 
    RANGE OF PZ	IS P 
    RANGE OF SPX	IS SP ; 
    RANGE OF SPY	IS SP ; 
    RANGE OF SPZ	IS SP ; 

    ,   ,   ,    
        . 
      . 

        

          WFF   , 
 .        ,  
,       .   
    WFF      
  WFF )      . (    
,     7),  )  , 
       EXISTS  
 FORALL (    ).   , 
,       (  
"")    . 
    1.    ,  ".  < ",   . 
    2.      WFF "( f )"  "NCT /'     
  ,     /    WFF "f 
AND g", "f OR g"  "IF f THEN g"       , 
    / g. 
    3.    ,    /   
 WFF "EXISTS  ( f >"  "FORALL  ( f )".    
/       WFF    , 
    / 

    182	 II.   

    . 

     : 
    SX.S# = 'SI1 SX.S# = SPX.S# SPX.P#  PX.P# 
       SX, PX  SPX . 
       WFF: 
    PX.WEIGHT <  15 OR PX.WEIGHT > 25 
    NOT   (  SX.CITY =  'London1   ) 
    SX.S# = SPX.S# AND SPX.P# # PX.P# 
    IF PX.COLOR =  'Red'  THEN PX.CITY =   'London' 
        SX, PX  SPX  . 

       WFF: 
    EXISTS SPX ( SPX.S* = SX.S# AND SPX.P# = 'P2' ) FORALL PX ( PX.COLOR = 
'Red' ) 
        . 

     

      : EXISTS ()  FORALL ( ).  , 
 /  WFF,     ,  

    EXISTS   (  f ) 
     
    FORALL   (  f ) 

       WFF,       . 
  : "       
 ,    WFF/  ".   
: "       WFF/  
 ". , ,      
 "    1993 ",   , /  
WFF "  ".1   "EXISTS  { f )"    
WFF,    (true)',  "FORALL  ( f >"   
  WFF,        (false). 
        .    
 EXISTS.       : 

    EXISTS SPX   (  SPX.S# = SX.SS AND SPX.P# =   'P2'   ) 

      WFF     : 
       SP,  SPX,    S#  
-  SX.S#,   # 2. 
      SPX    .   SX . 
      EXISTS     OR 
().  ,  R     77, 72,..., \ җ 
  ,     ; af(T)   
 WFF,       ,   WFF 

    EXISTS   (   f  (    )   ) 

        WFF: 

    false OR  (  f (   Tl )   )  OR  ...  OR  (  f (   En )   ) 

    1   , ,  ,   
  ,   . 7.1.    
    WFF. 

     7.  : II.  	183 

    ,  ,       
,   R . 

    .   R   : 

    (	1,	2,	3	) 
    (	1,	2,	4	) 
    (	1,	3,	4	) 

      ,      
    ,        
   71/].      
  : 

    EXISTS   	(	[3]	>	1   )	:	true 
    EXISTS  	(	[2]	>	3  )	:	false 
    EXISTS  	(	[1]	>	1 OR [3]	= 4   )          :	true 

        FORALL,      
   : 

    FORALL    (  .COLOR =  'Red'   ) 

      WFF     : 
        ,  ,   COLOR   
  Red. 

          . 

     ,  EXISTS     OR,  
 FORALL    AND ().  , 
 R, /()  ,   ,   WFF 

    EORALL   (  ?  (    )   ) 

        WFF: 

    true AND   (  f (   Tl  }   }  AND  ...  AND   (  f (   Bn )   ) 

    ,  ,       
,   R . 
    .   R     ,     
,        : 

    FORALL	 (	[1]	>	1   )	:   false 
    FORALL	 (	[2]	>	1   )	:   true 
    FORALL	 (	[1]	=	1 AND [3]	> 2  )     :  true 

    .  FORALL      ;   
 ,      ,   
 WFF,   FORALL,     
  WFF,   EXISTS: 

    FORALL    (   f" )   = NOT EXISTS X   (  NOT f ) 

    ( ,  " ,  /'    
,   "  ,     /'). 
    ,() 
    "      ,    > "   
    "    ,     ,    > ". 
            FORALL,   
  EXISTS   ;  ,   
   . 

           

    ,        ,  
  WFF 
    EXISTS X   (   > 3   ). 

    184	 II.   

          WFF     
,          
 .   WFF  ,    
 ,  ,   3. , ,  
  WFF    ,      
      .  , 
 WFF 

    EXISTS   (   > 3   ) 

       .    WFF 

    EXISTS X  (  X > 3  )   AND  < 0. 

        ,     . 
           
      .    
     .  ,    WFF, 
 ,    ,    . 

    EXISTS   (  > 3  )   AND  <  EXISTS   (   > 3   )   AND  <  

     ,  ,     
 WFF    ,      
 .       WFF,    
 ,    . 
     .  WFF,     
,    WFF.   WFF    
,         (..  
 ). 

       

            , 
  ,    

    .  [ AS X } 

     җ   ,       
(        
,    ;    
 ), ՗        
 ( . ).  ,   "AS "   
;         
   (    
    ).      
-  ,      . 
     ,      ,  
     

    T.KL,   T.A2,   ...,   . An, 

     /, 2,..., An   ,   . 

    : 

    sx.s# 
    SX.S# AS SNO 
    SX 
    SX.SS,   SX.CITY AS SCITY,   PX.PS,   PX.CITY AS PCITY 

     ,        , 
   .    ,  
    .   ,  

     7,  : II.  	185 

        ,  , U,..., V.  , 
    ,  TR, UR,..., VR . 
             (         
) 1,2,...,: \.      

    TR TIMES UR TIMES . . . TIMES VR 

    2. ,     ^??    \et3\w o\v& 
\\     1. 
    3.    2    XI, 2,..., . 

     

         

    (  target-item-commalist )   [ WHERE f ] 

           f (  )  
      target-item-commaiist.   
,        
   IK TIMES UR TIMES ... TIMES VR,  
   f  ,    WHERE f ,  
       . 
     XI, 2,...,  ( 7 
 ). 
    .       ,  
 ,    ,     
,        . 
    '. 

    (	SX.S# ) 
    {	SX.S# ) WHERE SX.CITY = 'London' 
    (	SX.S# AS SNO ) WHERE SX.CITY = 'London' 
    (	SX.S#, SX.CITY ) WHERE EXISTS SPX ( SPX.Stf = SX.Stt AND 
    SPX.P* = 'P2' ) 
    (	SX.Stt, PX.P# ) WHERE SX.CITY * PX.CITY 
    (	SX ) 

              
 S;     ,   . 
   ,   ,     
  SNO.        
   "     ,  
  2" (   ,    
; ,     ,     
,    ).    
      "   
 - ,         
 ".       . 

    7.3.  

          
   .      
      6.     ,  
  ,         
    ;     . 

    7.3.1.         20 

    ( SX.S# WHERE SX.CITY = 'Paris' AND SX.STATUS > 20 

    186	 II.   

    7.3.2.      ,    
    

    ( SX.S* AS FIRSTS*, SY.S* AS SECONDS! ) WHERE SX.CITY = SY.CITY AND SX.S# 
< SY.S# 

    .  "AS FIRSTS*"  "AS SECONDS*"    
', ,        
WHERE       WHERE  "sx.s# < SY.S*",   "FIRSTS* 
< SECONDS*". 

    7.3.3.   ,    2 

    SX.SNAME WHERE EXISTS SPX ( SPX.S* = SX.S* AND SPX.P* = 'P2' ) 

    7.3.4.   ,       
  

    SX.SNAME WHERE EXISTS SPX ( SX.S* = SPX.S* AND 
    EXISTS PX ( PX.P* = SPX.P# AND PX.COLOR = 'Red1 ) )   

 (    ,     
    WFF): 

    SX.SNAME WHERE EXISTS SPX ( EXISTS PX ( SX.S* = SPX.S* AND 
    SPX.P* = PX.P* AND PX.COLOR = 'Red' ) ) 

              
   ,     ,  
       .  
,      ,   . 
 WFF 

    quant-l  vble-1   {  quant-2 vble-2  (  wff )   ) 

   (    quant-i  quant-2    
EXISTS,   FORALL, vbie-i  vbie-2  )   
     

    quant-l vble-1 quant-2 vble-2  (  wff ) 

     ,       ( 
)  : 

    SX.SNAME WHERE EXISTS SPX EXISTS PX ( SX.S* = SPX.S* AND 
    SPX.P* = PX.P* AND PX.COLOR = 'Red' ) 

               
 . 
    7.3.5.   ,       
,   S2 

    SX.SNAME WHERE EXISTS SPX ( EXISTS SPY ( SX.S* = SPX.S* AND 
    SPX.P* = SPX.P* AND SPY.S* = 'S2' ) ) 

    7.3.6.   ,     

    SX.SNAME WHERE FORALL PX ( EXISTS SPX ( SPX.S* = SX.S* AND 
    SPX.P* = PX.P* ) ) 

          FORALL: 

    SX.SNAME WHERE NOT EXISTS PX ( NOT EXISTS SPX 
    ( SPX.S* = SX.S* AND SPX.P* = PX.P* ) ) 

    ,      " ,  
  "     100% (     
     DIVIDEBY). 

     7.  : II.  	187 

    7.3.7.   ,     2 

    SX.SNAME WHERE NOT EXISTS SPX 
    (   SPX.S* = SX.Sft AND SPX.Ptt =   'P2'   ) 

     ,         7.3.3. 
    7.3.8.   ,       
,   S2 

    SX.S# WHERE FORALL SPY ( SPY.Sft # 'S2' OR 
    EXISTS SPZ   (   SPZ.S* = SX.S# AND SPZ.Pt = SPY.P#   )   ) 

           : " 
 ,  SX, ,     SPY  
     S2,     S2,  
  SPZ  SPY   SX". 
       ,    
  ,  ,  :     
  . / g  WFF,   
  

    IF f THEN g 

       WFF  ,    

    ( NOT / )   OR g 

     , ,  ,    ( 
) : 

    SX.S# WHERE FORALL SPY ( IF SPY.S* = 'S2' THEN 
    EXISTS SPZ ( SPZ.Stt = SX.S# AND SPZ.P# = SPY.P# ) ) 

      : "  ,  SX, 
,     SPY      S2  
 SPZ  SPY   SX". 
    7.3.9.   ,     16 ,  
  S2,      

    RANGE OF PU IS PX.P# WHERE PX.WEIGHT >  16, 
    SPX.P* WHERE SPX.S* =   'S2'   ; PO.P# 

            
 . 
     ,     .  
 ,       SP     , 
      " ". 

    .# WHERE PX.WEIGHT > 16 
    OR   EXISTS SPX ( SPX.Ptt = PX.P# AND SPX.S# = 'S21 ) 

    7.4.      

        ,      
    .     
.       [7.2],  ,   
,  . (       
  ""    .)  
 ,  ,  "  ",  
         
  .        
,   

    188	 II.   

      ,    ,    .1 
               
  ,     ,   
  4    .    . 7.2  
       ( . 4.6). 

    S								SPJ 
    s#	SNAME		STATUS	CITY					S#	P#	J#	C?TY 
    SI	Smith		20	London					SI	PI	Jl	200 
    S2	Jones		10	Paris					SI	PI	J4	700 
    S3	Black		30	Paris					S2	P3	Jl	400 
    S4	Clark		20	London					S2	P3	J2	200 
    S5	Adams		30	Athens					S2	P3	J3	200 
    S2	P3	J4	500 
    S2	P3	J5	600 
    	P#	PNAME		COLOR		WEIGHT		CITY		S2	P3	J6	400 
    
    PI	Nut		Red		12		London		S2	P3	J7	800 
    P2	Bolt		Green		17		Paris		S2	P5	J2	100 
    P3	Screw		Blue		17		Rome		S3	P3	Jl	200 
    P4	Screw		Red		14		London		S3	P4	J2	500 
    P5	Cam		Blue		12		Paris		S4	P6	J3	300 
    P6	Cog		Red		19		London		S4	P6	J7	300 
    S5	P2	J2	200 
    S5	P2	J4	100 
    J	J#		JNAME		CITY					S5	P5	J5	500 
    Jl		Sorter		Paris					S5	P5	J7	100 
    J2		Display		Rome					S5	P6	J2	200 
    J3		OCR		Athens					S5	PI	J4	100 
    J4		Console		Athens					S5	P3	J4	200 
    J5		RAID		London					S5	P4	J4	800 
    J6		EDS		Oslo					S5	P5	J4  '	400 
    07		Tape		London					S5	P6	J4	500 
    
    
    . 7.2.   ,    (  ) 

     : "    ,   
       (Athens)      
50   ".      : 

    ( SX.SNAME, SX.CITY ) WHERE EXISTS JX FORALL PX EXISTS SPJX 
    ( JX.CITY = 'Athens' AND JX.J# = SPJX.Jtt AND PX.P# = SPJX.P# AND SX.S# = 
SPJX.Stt AND SPJX.QTY > 50 ) 

     SX, PX, JX  SPJX   ,     
 S, , J  SPJ .  ,    
,    . 
     I.         (.. 
     ),   .  
",  " ,    , 
   

    1   ,   [7.2],   
 [7.4].  ,  ,    ,  
   ,  ,    
 ,   .   ,   ,    
,    , , , 
   ,  (. [6.13]). 

     7.  : II.   189 

    WHERE,   ,      
 .       : 
    SX	:	   S	5  
    	:	   	6  
    JX	:	  J,   CITY = 'Athens'	2  
    SPJX	:	  SPJ,   CITY > 50	24  

     2.    ,    .  

    #	SN	scare	CITY	P#	?N	COLOR	WEICHT	CITY	J#	JN	CITY	Sff	P#	J#	QTY 
    31	Sm	20	Lon	Pi	Nt	Red	12	Lon	J3	OR	Ath	SI	PI	Jl	200 
    SI	Sm	20	Lon	PI	Nt	Red	12	Lon	J3	OR	Ath	SI	PI	J4	700     
    
    
     ..    5*6*2*24 = 1440 . . 
       .     
 (     ),   
    ,   ,   S#, , 
   S,      SPJ.     
 . 
    
     3.    ,      
   " "  WHERE.     
 : 

    JX.J# = SPJX.J* ANDPX.Ptt = SPJX.Ptt AND SX.Sft  =SPJX.S# 

        ,    S# 
    S# ,  #     
# ,  J#     J# ,   
   ,     : 
    
    s#	SN	STATUS	CITY	P#	PN	COLOR	WEIGHT	CITY	J#	JN	CITY	S#	P#	J#	OTY 
    SI	Sm	20	Lon	PI	Nt	Red	12	Lon	J4	Cn	Ath	SI	PI	J4	700 
    S2	Jo	10	Par	P3	Sc	Blue	17	Ron	J3	OR	Ath	S2	P3	J3	200 
    S2	Jo	10	Par	P3	Sc	Blue	17	Ron	J4	Cn	Ath	S2	P3	J4	200 
    S4	Cl	20	Lon	P6	Cg	Red	19	Lon	J3	OR	Ath	34	P6	J3	300 
    S5	Ad	30	Ath	P2	Bt	Green	17	Par	J4	Cn	Ath	35	P2	J4	100 
    S5	Ad	30	Ath	PI	Nt	Red	12	Ion	J4	Cn	Ath	35	PI	J4	100 
    S5	Ad	30	Ath	P3	Sc	Blue	17	Ron	J4	Cn	Ath	35	P3	J4	200 
    S5	Ad	30	Ath	P4	Sc	Red	14	Lon	J4	Cn	Ath	S5	P4	J4	800 
    S5	Ad	30	Ath	P5	Cm	Blue	12	Par	J4	Cn	Ath	S5	P5	J4	400 
    S5	Ad	30	Ath	P6	Cg	Red	19	Lon	J4	Cn	Ath	S5	P6	J4	500 

    (, ,   .)  4.  
    : 
         "EXISTS RX" ( RX  ,  
    )    , 
     R. 
        "FORALL "      
 "  ",  RX,   
 .          
 R. 
         : 

    EXISTS JX FORALL PX EXISTS SPJX 

      . 
    1.  EXISTS SPJX. ,    SPJ (SPJ.S#, 
SPJ.P#, SPJ.J#  SPJ.QTY).   : 

    190  II.   

    s#	SN	STATUS	CITY	P#	PN	COLOR	WEIGHT	CITY	J#	JN	CITY 
    SI	Sm	20	Lon	PI	Nt	Red	12	Lon	J4	Cn	Ath 
    S2	Jo	10	Par	P3	Sc	Blue	17	Rom	J3	OR	Ath 
    S2	Jo	10	Par	P3	Sc	Blue	17	Rom	J4	Cn	Ath 
    S4	Cl	20	Lon	P6	Cg	Red	19	Lon	J3	OR	Ath 
    S5	Ad	30	Ath	P2	Bt	Green	17	Par	J4	Cn	Ath 
    S5	Ad	30	Ath	PI	Nt	Red	12	Lon	J4	Cn	Ath 
    S5	Ad	30	Ath	P3	Sc	Blue	17	Rom	J4	Cn	Ath 
    S5	Ad	30	Ath	P4	Sc	Red	14	Lon	J4	Cn	Ath 
    S5	Ad	30	Ath	P5	Cm	Blue	12	Par	J4	Cn	Ath 
    S5	Ad	30	Ath	P6	Cg	Red	19	Lon	J4	Cn	Ath 

    2.  FORALL PX.    .   : 

    s#	SN	STATUS	CITY	J#	JNAME	CITY 
    S5	Adams	30	Athens	J4	Console	Athens 
    (    ,    ,  .) 

    3.  EXISTS jx. ,    J (J.J#, J.NAME  
J.CITY).   : 

    s#	SN	STATUS	CITY 
    S5	Adams	30	Athens 

     5.    4      
  .        

    SX.SNAME,   SX.CITY 

    ,   : 

    SNAME	CITY 
    Adams	Athens 

       ,     
     , 
    ,         
   (!). 
      . ,     (  
    ),      
 ;    ,   ,  
 . 
    ,       (   ) 
     .   
        
 .  ,   ,   QUEL 
[7.7],    ,     
  ,        ,    
  (,  ,   
),        
 .   , ,  
  ,      
 . (       
 .      .) 
      ,      
         
(  ).       6; 
    . 

     7.  : II.   191 

    -,    ,     
,   ,    , ..  
,       ,  
         
[7.2]. (   ,  " "  ,   
  ,   , ,    , 
   .  ,      
 ,      .) 
            
       .  ,   
    ,      
 ,     ,   
       ,   
  ,    ,   
  . 
    ,    , ,  ,  
  L   ,  ,   
 L       (   
 ,        )   
    L      .  
SQL    ,       
 (    8).  QUEL     .  
     ,      
  ,       
.         
 ,    . 
       ,        
  -  . , ,    
 " ", ..     
. ,        
  ,          
 ;       ,  
    EXTEND  SUMMARIZE (    6). 
   ,    ,   
   . 
          .    
,         
,  , ,   ,     
.   :     
   ,  , ,   , 
    ;  , ,  
[7.16].  ,     . 

    7.5.   

          : 
   .    ,  
      ,   ,   
,   ,     ()   
 .       
  "AS attribute"  ,     
 ,     . 
     ,      ,   
  .         
: aggregate-function ( expression [, attribute ] ) 

    192	 II.   

       (aggregate-function)   COUNT, SUM, AVG, 
  MEN (, ,   ), egression   
  ( ), a attribute    
 ,    .   COUNT 
 attribute    ;      
   ,       
expression           
   egression   . 
, ,         
       . 
          : 
    1.          
.  ,   expression      
    "(tic) WHERE f",  tic    
    (target-item-ccmmalist), a f   WFF,     

        /         
   
    aggregate-function ((tic ) WHERE f [, attribute ]) 
    2.    ,    SQL, ,     
                    ,   expression 
   attribute, 
        SQL    
 DISTINCT    ,   , 
   .   expression  
,        
.  attribute    ,  
   ,     
      . ,    
      ,  ,   
   . 
        .     
 ,       
 6. 
    7.5.1.        ,     
10 000 
    ( .#, .WEIGHT * 454 AS GMWT ) WHERE PX.WEIGHT * 454 > 10000 
    ,   "AS GMWT"     
.         WHERE  
  "PX.WEIGHT * 454"    . 
    7.5.2.   ,      "" 
    ( SX,   ''  AS TAG ) 
    7.5.3.            
    
    ( SPX.St, SPX.QTY, , PX.WEIGHT * SPX.QTY AS SHIPWT ) WHERE PX.P# = SPX.P# 
    7.5.4.           
    ( .#, SUM ( SPX WHERE SPX.P* = .#, OTY ) AS TOTCTY ) 

     7.  : II.  	193 
    7      

    ,     "BY (P#)"     
      ;   
 (  )    ,   
 .   ,      
   ,   ,      
   (      
 ). 
    7.5.5.      

    SUM   (SPX,   QTY  )   AS GFANDTOTAL  ) 

           SUMMARIZE,   
   (  ),   SP . 
    7.5.6.          
   

    { SX.S#, COUNT ( SPX WHERE SPX.S# = SX.S# ) AS #_OF_PARTS ) 

           SUMMARIZE,    
,      S5 (  ). 
    7.5.7.  ,    )    ; 
)      

    PX.CITY WHERE COUNT   (   PY WHERE PY.CITY = PX.CITY 
    AND PY.COLOR =   'Red'   )   > 5 

            ().   
     SUMMARIZE,     
     ()    ">"  "<". 

    7.6.   ( ) 

         ,  ,   
 (  ),     ,   
      , .. 
,      ,   . 
(. " "     " ", 
       , .. ,    .) 
      . 
             
       ,     
   ,      
.        : R ( 
pair, pair,   ...  ), 
     R    ,    pair   A:v (   
  , a v    ,  ).  
   ,         
R,      . , 
  

    SP  ( S#:'SI1,   P#:'P1'   ) 

      ,       SP   
  S#,  S1,   #,  1. ,   

    SP  ( S#:SX,   P#:PX ) 

      ,       SP  
   S#,      SX 
(    ),   #,    
   (      ). 

    194	 II.   

           , 
   X, Y, Z,...    , 
   ,    "#"     
"#"  .  ,       
      ,     ,  
  SNAME  PNAME,     
  NAME. 
       : 

    ( SX ) 
    ( SX ) WHERE S ( S#:SX ) { SX ) WHERE S ( S#:SX, CITY:'London1 ) ( SX, 
CITYX ) WHERE S ( S#:SX, CITY:CITYX ) AND SP ( S#:SX, P#:'P2' ) 
    ( SX, PX ) WHERE S (S#:SX, CITY:CITYX ) AND P ( P#:PX, CITY:CITYY ) AND 
CITYX * CITYY 

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

    7.6.1.         20 


    SX WHERE EXISTS STATUSX (STATUSX > 20 AND S ( S#:SX, STATUS:STATUSX, 
CITY:'Paris' ) ) 

    ,     .     
    ,     .   
, ,  ,   ; ,  , 
   . 

    7.6.2.      ,    
    

    ( SX AS FIRSTS#, SY AS SECONDS* ) 
    WHERE EXSIST CITYZ 
    ( S ( S#:SX, CITY:CITYZ) AND S ( S#:SY, CITY:CITYZ) AND SX < SY ) 

    7.6.3.   ,       
  

    NAMEX WHERE EXISTS SX EXISTS PX 
    ( S ( S#:SX, SNAME:NAMEX ) AND SP ( S#:SX, P#:PX ) AND P ( P#:PX, 
COLOR:'Red' ) )	 

    7.6.4.   ,    	|  
 ,   S2 

    NAMEX WHERE EXISTS SX EXISTS PX 
    (  S   (  S#:SX,   SNAME:NAMEX  ) 

    1        ,  
          . 

     7.  : II.  	195 

    AND SP   (  S#:SX,   P#:PX  ) AND SP   (  S#:'S21,   P#:PX  )   ) 

    7.6.5.   ,     

    NAMEX WHERE EXISTS SX ( S ( S#:SX, SNAME:NAMEX ) AND FORALL PX ( IF P ( 
P#:PX ) 
    THEN SP ( S#:SX, P#:PX ) ) ) 

    7.6.6.   ,     2 

    NAMEX WHERE EXISTS SX ( S ( S#:SX, SNAME:NAMEX ) 
    AND NOT SP (S#:SX, P:'P2' ) ) 

    7.6.7.   ,       
,   S2 

    SX WHERE FORALL PX ( IF SP ( S# : ' S2 ', P#: PX } 
    THEN SP ( S#:SX, P#:PX ) ) 

    7.6.8.   ,     16 ,  
  S2,      

    PX WHERE EXISTS WEIGHTX 
    ( P ( P#:PX, WEIGHT:WEIGHTX ) 
    AND WEIGHTX > 16 ) OR SP ( S#:'S2', P#:PX ) 

     ,    ,   
  (..   ).    
, ,    (Ullman) [7.16]. 

    7.7.  

          ,  
 .        
,   ,       
     ,      
         . 
        :     
.       ,    
    (   ,   
  ),        
   (   ,    
 ;   , , " "   
  ). 
             
   WHERE,   WFF ("  
")-   WFF    (EXISTS  FORALL), 
   , ,  ,  
()   .   ,  
   WFF,        . 
    .       ,   
 ,  ,    ,    . 
       ,      
       
  ,      
   .     
,   ,    ,   
 L     . 

    196	 II.   

     , ,       
  (     
 EXTEND  SUMMARIZE).    ,    
  SUMMARIZE       ,   
  ,     ""  
   [7.2]. 
     ,         
 (    ),      
.  ,  ,     
   . 

     

           
,         
    . (    
     ""      
    ,     
 .) 
    7.1.  f(x)  g   WFF,      
      .   
  ? ( =>  "";  = 
 "".) 
    ) EXISTS  ( g ) = g 
    ) FORALL  (  ) =  
    B) EXISTS  ( f () AND g ) s EXISTS x ( f (x) ) AND g ) FORALL x ( f (x) 
AND g )  FORALL x ( f (x) ) AND g ) FORALL x ( f (x) ) => EXISTS X ( f (x) ) 
    7.2.  f(x,y)    WFF      
.     ? 
    a) EXISTS x EXISTS  ( f(x,y) ) s EXISTS  EXISTS X ( f(x,y) ) 
    6) FORALL x FORALL  ( f (x,y) ) s FORALL  FORALL X ( f (x,y) ) 
    B) FORALL x ( f(x,y) ) = NOT EXISTS x ( NOT f (x,y) ) 
    ) EXISTS x ( f (x,y) ) = NOT FORALL x ( NOT f(x,y) ) 
    ) EXISTS x FORALL  ( f (x,y) ) = FORALL  EXISTS x ( f (x,y) ) 
    6) EXISTS  FORALL x ( f (x,y) ) => PORALL X EXISTS  ( f(x,y) ) 
    7.3.  f(x)  g(y)    WFF   
    .     ? 
    a) EXISTS  ( f(x) ) AND EXISTS  ( g(y) ) = 
    EXISTS x EXISTS  ( f(x) AND g(y) ) 6) EXISTS x ( IF f (x) THEN g(x) ) = 
    IF FORALL x ( f (x) ) THEN EXISTS X ( g(x) ) 
    7.4.   ,     : " 
 ,   ,   S2".  
        : 
    SX.Sf WHERE FORALL SPY ( IF SPY.St * 'S2' THEN 
    EXISTS SPZ ( SPZ.Stt = SX.S# AND SPZ.P* = SPY.PS ) ) 

     7.  : II.  	197 

          ,   S2  
  ?  ,    SX  SPX   ? 

    7.5.       ,    ( 
     ): 

    (   PX.NAME,   PX.CITY  )   WHERE FORALL SX TORALL JX EXISTS SPJX 
    (  SX.CITY =   'London1   AND OX.CITY =  'Paris'  AND SPJX.S# = SX.S# AND 
SPJX.PJt = PX.P# AND SPJX.J* = OX.J# AND SPJX.QTY < 500  ) 

    )      ; 
    )  ,    ,  ""    
 .      - ,  
    ? 

    7.6.       "   
 ." 

    7.7.     PART_STRUCTURE   
4 (    . 4.4).     
 "  ,     
 ,   1",  ,   
PART_LIST (, , ,    
PART_STRUCTURE),        
 (  ).  ,  PART_STRUCTURE 
          
(  ). ? 

    7.8. ,    S    
LS, PS, AS ... (     ; ,  LS 
     ).  ,    
,     ,    ,  
   .   "     
 S1?"         ( 
)?  . 

    7.9.    . 6.13-6.48    . 

    7.10.       
        ,  
  7.5. 

    7.11.    . 6.13-6.48    . 

      

    7.1. Chang C.L. DEDUCE  A Deductive Query Language for Relational Data 
Bases // C.H. Chen (ed.) Pattern Recognition and Artificial Intelligence.  
New York: Academic Press, 1976. 
    7.2. Codd E.F. Relational Completeness of Data Base Sublanguages // Data 
Base Systems, Courant Computer Science Symposia Series 6.  Englewood Cliffs, 
N.Y.: Prentice-Hall, 1972. 

    198	 II.   

         .    
      (..  
,    6).       
 ,      , ,   
  ,   ,    ,     
. (,   ,   ,   
,         
 UNION.)        
  (   )     
  .     . 
    1.   . ,   ,   
       
 ,    .. 
    2.       (  , 
    ..). ,  
        
 ,          . 
    3.     .  ,   
      ,   
 .           
      .  
,         
  . 
      ,       , 
,     . ,   
 ,      ,    
,       SQL    
! ,    SQL     
  SQL      . 
    7.3. Codd E.F. A Data Base Sublanguage Founded on the Relational Calculus 
// Proc. 1971 ACM SIGFIDET Workshop on Data Description, Access and Control. 
San Diego, Calif., 1971. 
       "  ALPHA".    
,  ALPHA,       
.     ,     
   ,     , 
   .  QUEL  SQL   
  .   QUEL, ,     

    RETRIEVE   (  S.S#   )   WHERE S.SITY = "London" 

     

    RANGE OF SX IS S 
    RETRIEVE   (  SX.Stt  )   WHERE SX.SITY =  "London" 

         , , , "S"  "S.S#"  
  S,    ,  S, 
       . 
    7.4. Date C.J. A Note on the Relation Calculus // ACM SIGMOD Record.  
1989.  18, 4. (: An Anomaly in Codd's Reduction Algorithm // C.J. 
Date and Hugh Darwen. Relational Database Writings 1989-1991. Reading, Mass.: 
Addison Wesley, 1992.) 

     7.  : II.  	199 

              
  [7.2]. 
    7.5. Date C.J. Why Quantifier Order Is Important // C.J. Date and Hugh 
Darwen. Relational Database Writings 1989-1991.  Reading, Mass.: Addison 
Wesley, 1992. 
    7.6. Date C.J. Relational Calculus as an Aid to Effective Query 
Formulation // Ibid. 
             SQL, 
    (  ).   ,   
,  ( )     
    ""  SQL. 
    7.7. Held G.D., Stonebraker M.R., Wong E. INGRES  A Relational Data Base 
System // Proc. NCC 44.  Anaheim, Calif.; Montvale, N.J.: AFIPS Press, 1975. 
         70-      
:  R   IBM   INGRES   
  .        
         
 DB2 (   R)     INGRES (  
 INGRES). 
    .  INGRES   " INGRES",  
      . 
     INGRES    SQL-,    QUEL 
("Query Language"),       SQL.  
 ,  QUEL -     
   ,     QUEL    
   .  ,   
 INGRES,     QUEL. 
    .  [7.12-7.14]. 
    7.8. Kuhns J.L. Answering Questions by Computer:  A Logical  Study // 
Report RM-5428-PR.  Santa Monica, Calif.: Rand Corp., 1967. 
    7.9. Lacrorix M., Pirotte A. Domain-Oriented Relational Languages // Proc. 
3rd Intern. Conf. on Very Large Data Bases.  1977. 
    7.10. Lacrorix M., Pirotte A. ILL: An English Structured Query Language 
for Relational Data Bases // G.M. Nijssen (ed.). Architecture and Models in 
Data Base Management Systems.  Amsterdam, Netherlands: North-Holland; New 
York, N.Y.: Elsevier Science, 1977. 
    7.11. Pirotte, Wodon P. A Comprehensive Formal Query Language for 
Relational Data Base // R.A.I.R.O. Informatique/Computer Science.  1977.  
11,  2. 
    "  " (formal query language  FQL)  (  
 ILL)    ,      ILL   
 (..       ). 
    7.12. Stonebraker M. (ed.). The INGRES Papers: The Anatomy of a Relational 
Database Management System.  Reading, Mass.: Addison-Wesley, 1986. 
           
INGRES        . (  
   [7.13, 7.14].)     
,    ,     
   .     
 . 

    200	 II.   

    7.13. Stonebraker M., Wong E., Kreps P., Held G. The Design Implementation 
of INGRES // ACM TODS.  1976.  1,  3. ( [7.12].) 
       INGRES. 
    7.14. Stonebraker M. Retrospection on a Data Base System // Ibid.  1980. 
 5,  2. ( [7.12].) 
         INGRES (  1979.).  
      ,   . 
    7.15. Zloof .. Query By Example // Proc. NCC 44.  Anaheim, Calif. 
Montvale, N.J.: AFIPS Press, 1975. 
      Query-By-Example (QBE),     
    .     
        " 
"      . ,  
QBE   "  ,     
  ,   S2" (  )  
 : 
    S          S#                SNAME                       SP	S#	P# 
    SX             P.   NX	SX	_PX 
    SP	s#	# 
    S2	 
    .         
   ,    S     SP,  
   ,    . ,  
,  "" (..  );  
  .      
"" ("")    (_NX) ,    
 _SX,  _SX    _,   _,   
,    S2. ,    
  (, ,      
QUEL)   ,       . 
      : "    ,  
      ". 
    S	s#	CITY 
    SX	CZ                            P.              SX              SY 
    _SY	_CZ 
     ,  QBE    ,  ,  
 (  )    (NOT EXISTS). 
    (, "  , 
   ")       QBE. 
    (    QBE  ""  NOT EXISTS, no 
  ,        
.     ,      
,         ,  
,  ,    . [7.5].    
  [7.5].) 
     (  )      QBE.  
    ,     . 
    7.16. Ullman J.D. Principles of Database and Knowledge-Base Systems: 
Volume I.  Rockville, Md.: Computer Science Press, 1988. 

     7.  : II.   201 

     ,     ,    
       .  ,  
     .    
     ,    
      RANGE,    
       WHERE.    
  "    ", ,  
  

    SX WHERE SX e S AND SX.CITY =  'London1 

     

    RANGE OF SX IS S  ; 
    SX WHERE SX.CITY =   'London1 

      ,       
  ,     ,   

    SX WHERE NOT   (  SX e  S  ) 

       "",      
  ( ,      S, ). 
    ,    
 .       (   
,     ). 
        
    7.1. ) ; ) ; ) ; ) ; )  . 
    : ,   ()  ,   ,   
 FORALL      .  ,  
 EXISTS     . , ,  
 "     100 " ,    
 ,     . 
    ,  (!)        
    ,      
  ,    6 (  
    ).       
. 7.2  7.3. 
    7.2. ) ; ) ; )  (    ); ) 
 (,       ); )  
; ) .  ,    
    ()  ()         
  ,          
 ()      .  
 , ,        
  /  WFF " > ". ,   

    FORALL X EXISTS   (  >  ) 

    ("      ,  ")  ,    
  

    EXISTS  FORALL   ( >  ) 

    ("  ,     ")  .  
,      . 
   ,   ,   
   WHERE    [7.5]. 

    202	 II.   

    7.3. ) ; ) . 
    7.4.   S2      ,  
        S (,  
,   S2,     
   S      SP).    
SX  SPX,       ,   
 SP.     :   
"  ,       , 
  S2" ( ),    " 
 ,          
    ,    S2." 
    7.5. )       ,   
           500 
; )      . 
    7.6.    ! ,    ,  
  . (     ,    
   "   ,    
   .")   ,     
      .     
 ,        
  ,    . (  
    ). 
          ,  
  ,        
  .       . 
,    ALPHA [7.3]     
,  (  )      .  
 ALPHA     : 

    (3) ( .#, PX.PNAME, PX.COLOR, PX.WEIGHT, PX.CITY } DOWN PX.WEIGHT 

     " (3)"    (  ); "DOWN PX.WEIGHT" 
: "       
     WEIGHT". 
     Rdb/VMS  DEC      , 
   . 
    7.7.  PSA, PSB, PSC, ..., PSw     
PART_STRUCTURE;  ,       1. : 
    )     "     
,     1 (  )"  : 
    PSA.MINOR_P# WHERE PSA.MAJOR_P# = 'PI' 
    )     "     
,     1 (  )"  : 
    PSB.MINOR_P# WHERE EXISTS PSA 
    ( PSA.MAJOR_P# = 'PI' AND 
    PSB.MAJOR_P# = PSA.MINOR_P# ) 

     7.  : II.  	203 

    )     "     
,     1 (  )"  : 
    PSC.MINOR_P# WHERE EXISTS PSA EXISTS PSB 
    ( PSA.MAJOR_P# = 'PI1 AND ( PSB.MAJOR_P# = PSA.MINOR_P# AND PSC.MAJOR_P# = 
PSB.MINOR_P# ) 
     ..     "     
,     1 ( - )"  : 
    PSn.MINOR_P# WHERE EXISTS PSA EXISTS PSB ... EXISTS PS(n-l) ( PSA.MAJOR_P# 
= 'PI' AND ( PSB.MAJOR_P# = PSA.MINOR_P# AND PSC.MAJOR_P# = PSB.MINOR_P# AND 
........................... AND 
    PSn.MAJOR_P# = PS(n-l) .MINOR_P# ) 
       (, , ,...)    
    PART_LIST. 
       ,      , 
    .  ,     
  ,       
     ,    
 , .. ,     ,  
 ( ). 
    .      " "  
"  ",       , 
     .      
"  "       
.  ,       
 ,  ,  ,  
  ,    .. 
    7.8.        ,    
. ,      , ,  , 
       : 
       R ,       R 
,  7.S# = 'Sr? 
     ,         
,   ,  , ,    
   , ,     
() .         
 ,      
,     ( ,  
   ,    ). 
    , ,        "-" 
(     ).    
,           
,         
,   .    "-"    
    ,    

    204	 II.   

    !     ,  ,  ""  
"" (   )    . 
    TABLE_DEE  TABLE_DUM .  
       4. 
    7.9.     7.9.,      
   6, .. . ..  ,  SX, SY, PX, PY, JX, 
JY, SPJX, SPJY ( ..)   ,    S, P, 
J, SPJ ;       . 
    7.9.13.  
    7.9.14. OX WHERE JX.CITY = 'London1 
    7.9.15. SPJX.Stt WHERE SPJX.Jtt = '' 
    7.9.16. SPJX WHERE SPJX.QTY > 300 AND SPJX.QTY < 750 
    7.9.17. ( PX.COLOR, PX.CITY ) 
    7.9.18. ( SX.Stt, PX.P#, JX.J# ) WHERE SX.CITY = PX.CITY 
    AND  PX.CITY = JX.CITY AND  JX.CITY = SX.CITY 
    7.9.19. ( SX.Stt, PX.Ptt, JX.J# ) WHERE SX.CITY  PX.CITY 
    OR   PX.CITY  JX.CITY OR   JX.CITY  SX.CITY 
    7.9.20. ( SX.Stt, PX.Ptt, JX.Jtt ) WHERE SX.CITY  PX.CITY 
    AND  PX.CITY  JX.CITY AND  JX.CITY  SX.CITY 
    7.9.21. SPJX.P# WHERE EXISTS SX ( SX.Stt = SPJX.Stt AND 
    SX.CITY = 'London' ) 
    7.9.22. SPJX.Ptt WHERE EXISTS SX EXISTS JX 
    ( SX.Stt = SPJX.Stt AND SX.CITY = 'London1 AND JX.J# = SPJX.J# AND JX.CITY 
= 'London' ) 
    7.9.23. ( SX.CITY AS SCITY, JX.CITY AS JCITY ) 
    WHERE EXISTS SPJX ( SPJX.Stt = SX.Stt AND SPJX.Jtt = JX.Jtt ) 
    7.9.24. SPJX.Ptt WHERE EXISTS SX EXISTS JX 
    ( SX.CITY = JX.CITY AND SPJX.Stt = SX.Stt AND SPJX.J* = JX.Jtt ) 
    7.9.25. SPJX.Ptt WHERE EXISTS SX EXISTS JX 
    ( SX.CITY  JX.CITY AND SPJX.Stt = SX.S# AND SPJX.Jtt = JX.Jtt ) 
    7.9.26. ( SPJX.Ptt AS XPtt, SPJY.Ptt AS YPtt ) 
    WHERE SPJX.Stt = SPJY.S* AND SPJX.Ptt < SPJY.Ptt 
    7.9.27. COUNT ( SPJX.Jtt WHERE SPJX.S# = 'si' ) AS N 
    7.9.28. SUM ( SPJX WHERE 
    SPJX.Stt = 'SI1 AND SPJX.Ptt = 'PI1, OTY ) AS Q 
     ""   (?): 
    SUM ( SPJX.OT.Y WHERE 

     7.  : II.  	205 

    SPJX.S* =   'SI1  AND SPJX.P# =   'PI1,   QTY )   AS Q 
    (.     QTY    
 .) 
    7.9.29. ( SPJX.P*, SPJX.J#, 
    SUM ( SPJY  SPJY.P# = SPJX.P* 
    AND     SPJY.J# = SPJX.J*, QTY ) AS Q ) 
    7.9.30. SPJX.P* 
    WHERE AVG ( SPJY WHERE SPJY.P# = SPJX.PS 
    AND     SPJY.J# = SPJX.JS, QTY ) > 320 
    7.9.31. JX.JNAME WHERE EXISTS SPJX ( SPJX.J* = JX.J#  
    SPJX.S# = 'SI1 ) 
    7.9.32. PX.COLOR WHERE EXISTS SPJX ( SPJX.P* = PX.P# AND 
    SPJX.S# = 'SI' ) 
    7.9.33. SPJX.P* WHERE EXISTS JX { JX.CITY = 'London' AND 
    JX.J# = SPJX.J# ) 
    7.9.34. SPJX.J* WHERE EXISTS SPJY ( SPJX.P* = SPJY.P# AND 
    SPJY.S* = 'SI' ) 
    7.9.35. SPJX.Sft WHERE EXISTS SPJY EXISTS SPJZ EXISTS PX ( SPJX.Ptt = 
SPJY.P# AND SPJY.S* = SPJZ.SS AND SPJZ.P# = PX.P# AND PX.COLOR = 'Red' ) 
    7.9.36. SX.S# WHERE EXISTS SY ( SY.S# = 'SI' AND 
    SX.STATUS < SY.STATUS ) 
    7.9.37. JX.J# WHERE TORALL JY   (  JY.CITY > JX.CITY  )  JX.J# WHERE 
JX.CITY = MIN   (  JY.CITY  ) 
    7.9.38. SPJX.J# WHERE SPJX.P# =   'PI'  AND 
    AVG   (  SPJY WHERE SPJY.Pft =   'PI' 
    AND      SPJY.J# = SPJX.J*,   QTY  )   > MAX   (  SPJZ.QTY WHERE SPJZ.J# = 
  'Jl'   ) 
    7.9.39. SPJX.S# WHERE SPJX.P# = 'PI' AND  SPJX.QTY > AVG ( SPJY 
    WHERE SPJY.P# = 'PI' 
    AND  SPJY.J# = SPJX.Jtt, QTY ) 
    7.9.40. JX.J# WHERE NOT EXISTS SPJX EXISTS SX EXISTS PX ( SX.CITY = 
'London' AND PX.COLOR = 'Red' AND SPJX.S* = SX.SS AND SPJX.P# = PX.P# AND 
SPJX.J* = JX.J# ) 
    7.9.41. JX.J# WHERE FDRALL SPJY ( IF SPJY.JS = JX.J# 
    THEN SPJY.Stf = 'SI' ) 

    206	 II.   

    7.9.42. PX.P# WHERE FORALL JX 
    ( IF JX.CITY = 'London1 THEN EXISTS SPJY ( SPJY.P* = PX.PS AND SPJY.J# = 
JX.J# ) ) 
    7.9.43. SX.S# WHERE EXISTS PX FORALL OX EXISTS SPJY ( SPJY.Stt = SX.S# AND 
SPJY.P# = PX.P# AND SPJY.J* = JX.J# ) 
    7.9.44. JX.Jt WHERE FORALL SPJY ( IF SPJY.S* = 'SI' THEN 
    EXISTS SPJZ ( SPJZ.J# = JX.J# AND SPJZ.P# = SPJY.P# ) ) 
    7.9.45. RANGE OF VX IS ( SX.CITY ), ( PX.CITY ), ( JX.CITY ) ; VX.CITY 
    7.9.46. SPJX.P# WHERE EXISTS SX ( SX.S# = SPJX.S* AND 
    SX.CITY = 'London' ) 
    OR        EXISTS JX   (   JX.J# = SPJX.Jtt AND JX.CITY =  'London'   ) 
    7.9.47.   (  SX.Sft,   PX.P#   )   WHERE NOT EXISTS SPJX 
    (  SPJX.S# = SX.Stt AND SPJX.Ptf = PX.P#  ) 
    7.9.48. ( sx.s# AS xs#, SY.S# AS YS# ) WHERE FORALL PZ 
    ( ( IF  EXISTS SPJX ( SPJX.S* = SX.S# AND SPJX.Ptt = PZ.P# ) 
    THEN EXISTS SPJY ( SPJY.Stt = SY.S# AND SPJY.P* = PZ.Ptt ) ) AND 
    (   IF  EXISTS SPJY ( SPJY.S* = SY.S# AND SPJY.P# = PZ.P# ) 
    THEN EXISTS SPJX ( SPJX.Stf = SX.S# AND SPJX.P* = PZ.P# ) ) ) 
    7.10.   . 
    7.11.     7.11.,     
   6, .. . 6..     
    ,     . 
    7.11.13. ( JX, NAMEX, CITYX ) 
    WHERE J ( J#:JX, JNAMEiNAMEX, CITY:CITYX ) 
    7.11.14. ( JX, NAMEX, 'London' AS CITY ) 
    WHERE J ( J#:JX, JNAMEiNAMEX, CITY:'London' ) 
    7.11.15. SX WHERE SPJ ( S#:SX, J#:'J1' ) 
    7.11.16. ( SX, PX, JX, QTYX ) 
    WHERE SPJ ( S#:SX, P#:PX, J#:JX, OTY:OTYX ) AND  OTYX > 300 AND OTYX < 750 
    7.11.17. ( COLORX, CITYX ) WHERE P ( COLOR:COLORX, CITY:CITYX ) 
    7.11.18. ( SX, PX, JX ) WHERE EXISTS CITYX 
    ( S ( S#:SX, CITY:CITYX ) AND P ( P#:PX, CITY:CITYX ) AND J ( J#:JX, 
CITY:CITYX ) ) 

     7.  : II.  	207 

    7.11.19. ( SX, PX, JX ) WHERE EXISTS CITYX EXISTS CITYY EXISTS CITYZ ( S ( 
S#:SX, CITY:CITYX ) AND P ( P#:PX, CITY:CITYY ) AND J ( J#:JX, CITY:CITYZ ) 
AND ( CITYX # CITYY OR CITYY * CITYZ OR CITYZ  CITYX ) ) 
    7.11.20. ( SX, PX, JX ) WHERE EXISTS CITYX EXISTS CITYY EXISTS CITYZ { S ( 
S#:SX, CITY:CITYX ) AND P ( P#:PX, CITY:CITYY ) AND J ( J#:JX, CITY:CITYZ ) 
AND ( CITYX * CITYY AND CITYY  CITYZ AND CITYZ * CITYX ) ) 
    7.11.21. PX WHERE EXISTS SX ( SPJ ( P#:PX, S#:SX ) AND 
    S ( S#:SX, CITY:'London' ) ) 
    7.11.22. PX WHERE EXISTS SX EXISTS JX 
    ( SPJ ( S#:SX, P#:PX, J#:JX ) AND S ( S#:SX, CITY:'London' ) AND J ( 
J#:JX, CITY:'London' ) 
    7.11.23. ( CITYX AS SCITY, CITYY AS JCITY ) WHERE EXISTS SX EXISTS JY 
    ( S ( S#:SX, CITY:CITYX ) AND J ( J#:JY, CITY:CITYY ) AND SPJ { S#:SX, 
J#:JY ) ) 
    7.11.24. PX WHERE EXISTS SX EXISTS JX EXISTS CITYX ( S ( S#:SX, CITY:CITYX 
) AND J ( J#:JY, CITY:CITYX ) AND SPJ ( S#:SX, P#:PX, J#:JX ) ) 
    7.11.25. JY WHERE EXISTS SX EXISTS CITYX EXISTS CITYY ( SPJ ( S#:SX, J#:JY 
) AND S ( S#:SX, CITY:CITYX ) AND J ( J#:JY, CITY:CITYY ) AND CITYX * CITYY ) 
    7.11.26. ( PX AS XP#, PY AS YP# ) WHERE EXISTS SX 
    ( SPJ ( S#:SX, P#:PX ) AND SPJ ( S#:SX, P#:PY } AND PX < PY ) 
    7.11.27-30.  . 
    7.11.31. NAMEX WHERE EXISTS JX 
    ( J ( J#:JX, JNAME:NAMEX ) AND SPJ ( S#:'S1', J#:JX ) ) 
    7.11.32. COLORX WHERE EXISTS PX 

    208	 II.   

    (     (  #:,   :  )  AND SPJ  (  S#:'SI1,   P#:PX )   } 
    7.11.33.  WHERE EXISTS OX 
    ( SPJ ( P#:PX, J#:JX ) AND J ( J|:JX, CITY:'London' ) } 
    7.11.34. JX WHERE EXISTS PX 
    ( SPJ ( P#:PX, J#:JX ) AND SPJ { Pl:PX, S#:'SI' ) ) 
    7.11.35. SX WHERE EXISTS PX EXISTS SY EXISTS PY ( SPJ ( S#:SX, P#:PX ) AND 
SPJ ( P#:PX, S#:SY ) AND SPJ ( S#:SY, P#:PY ) AND P ( P#:PY, COLOR:'Red' ) ) 
    7.11.36. SX WHERE EXISTS STATUSX EXISTS STATUSY 
    ( S ( S#:SX, STATUS:STATUSX ) AND S ( S#:'S1', STATUS: STATUSY ) AND 
STATUSX < STATUSY ) 
    7.11.37. JX WHERE EXISTS CITYX 
    ( J ( J#:JX, CITY:CITYX ) AND FORALL CITYY ( IF J ( CITY:CITYY ) 
    THEN CITYY > CITYX ) ) 
    7.11.38-39.  . 
    7.11.40. JX WHERE J ( J#:JX ) AND 
    NOT EXISTS SX EXISTS PX 
    ( SPJ ( S#:SX, P#:PX, J#:JX ) AND S ( S#:SX, CITY:'London' ) AND P ( 
P#:PX, COLOR:'Red' ) ) 
    7.11.41. JX WHERE J ( J#:JX ) 
    AND  FORALL SX ( IF SPJ ( S#:SX, J#:JX ) THEN SX = 'SI' ) 
    7.11.42. PX WHERE P ( P#:PX ) 
    AND  FORALL JX ( IF J ( J#:JX, CITY:'London' ) THEN SPJ ( P#:PX, J#:JX ) ) 
    7.11.43. SX WHERE S ( S#:SX ) 
    AND  EXISTS PX FORALL JX 
    ( SPJ ( S#:SX, P#:PX, J#:JX ) ) 
    7.11.44. JX WHERE J ( J#:JX ) 
    AND  FORALL PX ( IF SPJ ( S#:'SI', P#:PX ) 
    THEN SPJ ( P#:PX, J#:JX ) ) 
    7.11.45. CITYX WHERE EXISTS S ( CITY:CITYX ) OR P ( CITY:CITYX } OR J ( 
CITY:CITYX ) 
    7.11.46. PX WHERE EXISTS SX ( SPJ ( S#:SX, P#:PX ) AND 

     7.  : II.  	209 

    S ( S#:SX, CITY:'London' ) ) OR   EXISTS JX ( SPJ ( J#:JX, P#:PX } AND 
    J ( J#:JX, CITY:'London' ) ) 
    7.11.47. ( SX, PX ) WHERE S ( S#:SX ) AND P ( P#:PX ) AND  NOT SPJ ( 
S#:SX, P#:PX ) 
    7.11.48. ( SX AS XS#, SY AS YS# } WHERE S ( S#:SX ) AND S ( S#:SY ) AND 
FORALL PZ 
    ( ( IF SPJ ( S#:SX, P#:PZ ) THEN SPJ ( S#:SY, P#:PZ ) ) AND ( IF SPJ ( 
S#:SY, P#:PZ ) THEN SPJ ( S#:SX, P#:PZ ) ) ) 

    210  II.   

