     5 

      :      

    5.1.  

      ,    ,   
  .   , , 
  ,    ,  ,    
      .      
    ,     
    ,    .   
    ,       
;  ,     ,   
    . ,     
      ,     
     . 
        ,     .  
 . 
    1.           
  , , , ,    
" ", ..      
 . 
    2.       ,  
         
. ,       ,   
     " 7   25 ", , 
   ,         . 
    3. ,      , 
  ,    ,   
       (     
,     ),  ,   
    .     , 
,      INSERT  UPDATE   
,      ,      
    . 
           ,  
  . ,         
   : 
           Snnnn,     
    ; 
           ,     
    ; 
            1-100; 
             ; 

     5.   ... 107 

            ; 
            ; 
             100; 
              ; 
          ,       
20;  .. 
              
'  ,        ,   
    , ,    
  .       
(          
   )         
.        ,     
 ,       .   
     ( )     
.          . 
            , 
,  ,       null- 
( ).  ,      
 null-,   .     
       null-,   
     . 
        ,     . 
          
   . , ,  ,    
   ,  ,    
      ,    
,  .       
    . ,    
 S  , ,      
,  , ,       
 . 
        ,    
    ,    
.  ,       
  ,    
  .  ,    
          
.         . 
           .     
   ,       
    .        
,       . 

    5.2.   

            ;   
,          
 .         
      .   
 .  R   .   , 
,   R      R,  
 : 

    108  II.   

    1.   . 
          R    . 
1.   . 
           . 
     ,  (     4)   
,   ,   ,     
 ; ..   , ,   , 
         
 . 
          ,  ,  
  (     ). 
              
,          
 . 
    (    .)    
   ,  ,   
 . ,  ,    
     , ..   
" ".       SP  
    ,      QTY. 
        ,      
     (..   ),    
 .     ,  
 ,         
    ,      
  ,      , 
     . 
     ,   ,    {S#,P#}   
     SP,     ,    
           
;    ,      R,   
  SP,      R   
  . 
            
    (  ). 
     R   .   , , 
  R -     R,   
 : 
    1.  . 
            R   
 . 
    1.  . 
           . 
        " "    
  (   ). 
            
  (,    CREATE BASE RELATION  
  ,   ,    ): 
    Candidate-key-definition 
    : :=	CANDIDATE KEY ( attribute-comnalist ) | PRIMARY KEY   (  
attribute-coiwna-tist ) 

     5.   ... 109 

       . 3.9  4.3. (  ,    
    ,    .  
      .) 
           ,  
     . 
     -,          
 , ,  ,   . , ,  
   ELEMENTS,    .  
    ,   (, 
   "")    .  ,   
      : 

    CREATE BASE RELATION ELEMENTS ( NAME   ... , SYMBOL  . . . , NUMBER .... 
    CANDIDATE KEY	( NAME ) 
    CANDIDATE KEY	( SYMBOL ) 
    CANDIDATE KEY	( NUMBER ) 

    -, ,       
.       " ", .. 
 . ,       {S#}   
   S, {#}      , 
{S#,P#}      SP.     
  ,       . 
  , ,  S# ( {S#})     
 S. 
    .  ,      , 
 .  ,    , 
 . 
     ,     .   
, ,    " ",   , 
             
   . , ,  
    S   {S#,CITY}  S#. 
     ,   
   " ";      
   ,      
  " ", ..    .  , 
         
 . 
    .        
 ,     .   ,  
  ,    ""   ( 
   ),    ""  ,  
,       . 
     ,      (    
)    .  ""  
    , ,   ,   
 1 "",     ,    

    110  II.   

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

         

           ,   
         
. ,      
  -       
 . ,    

    S WHERE S# =   'S3' 

          .1 ,  
 SNAME       S ( 
,  ,   . 4.6,    ), 
   

    S WHERE SNAME =  'Blake' 

           .     

    S WHERE CITY =  ' Paris' 

          ,   . 
 ,         
   ,      
  ,     .    
  : 
    1. "",     , .. "", 
  ,     
       . 
    2. ,      ,  
    ,    
" ",         
  . 
        "  "  "  
",    ,     
. (      .) 

    5.3.     

       ,     ( , , 
 )    .     
           
      ,    
,   ,    .   
 ELEMENTS,     ,    
" "    ,  " " 
 " " 
    1 ,   ,       . 

     5.   ...	111 

      ,   ,     
 ,   ,   ,    
       . ,  
      . 
    .        
,      ,  ,   . 
         :     
(    )       
  (   ),       
,         [5.8]. 
    ,       ,    
   .      
,             
   (        
   ).  ,     
    (    ) 
.       .    
  ,        ,  
 ,          
  . 
        ,  ,     
    , ..    
     (      
    ). 
       (      ): 

    Candidate-key-defini tion 
    ::=	CANDIDATE KEY  (  attribute-commalist ) | PRIMARY KEY  ( 
attribute-commalist ) 

    (   , commalist     
 .) 
        CREATE BASE RELATICN  ,  
 ,    .      
    , ..     
   PRIMARY KEY. 
        .  " 
"  " "      .  
""         . ,  
    , ,   
 .      ,   
, -,  ,  ,  ,  
,  ,  ,  ,  
  ..,   .  ,   
,     ,    . 
    (      ,   - 
       ( "")   
    ,  , ,  ! 
  ,     ""  ,  
        .  , 
       ,     
 ,       .) 

    5.4.   

               
S#  SP. ,         
      ,       
 

    112	 II.   

       S#  S (      
   ). ,      
  SP   , , S8,     S  
-  S8. ,     # 
 SP         ,   
        #  ;   
        SP   , 
, 8,         8.  S#  
#  SP,  ,   ,    
 . 
      ,     ,    
,       .  
  ,       
 ,      (, [5.2]).  
       ,    
  (, [5.3, 5.4]).     
      :    
      ,    
,       . (    
    [5.8].)      ,   
   ,       
   ;      ,   . 
        .    " ". 
     R2   .   , , FK   
R2      R2,  : 
        Rl (R1  R2   )  
  ; 
       FK    R2     
      R1. 
       . 
    1. ,   ,   ,   
 .      " 
" ( ). ,   SP    
   ,  ,   {S#}  {#},   S#  #. 
      ,    
   . 
    2.          
   .  ,   
 ; ..  ,    , 
  ,        
 . ,        
(    . 3.8)    S5   
    . 
    3.     , ..      
 ,    ,    
   .       ,  
     . 
    4.  ,     ,    
   ,      
 . 
    5.     ,      
  -      ,   
           

     5.   ...	113 

     (       SP  
    ).     ( 
       3, . 3.6,    
s ):	! 

    DEFT ( DEPT#, ONAME, BUDGET ) 
    PRIMARY KEY ( DEPT# ) EMP  ( EMPt, EWAME, DEPT#, SALARY ) 
    PRIMARY KEY ( EMP# ) 
    FOREIGN KEY ( DEPTtt ) REFERENCES DEPT 

         DEPT#  EMP   , 
   DEPT#  DEPT;  , ,  
    # (    
)  .        
  -   (  ). 
    6.   ,       , 
     (  
  ).    ,     
     ,    
 . ,      
       , 
  . ,    , 
  ,  ,   
  ,      
 (target relation). 
    7.   .       
.         
   : 

    S <- SP -- . 

           ,   
 ;        , 
   . 
    .      ,  
 ,      ,   
 ,    .   , 
          
 ( ),     . 
: # # 

    S <- SP -  

      , ,         
,         . 
    8. , ,      , 
    R2   : 

    R3 - R2 ~> R1. 

       " ".   Rn, R(nl), ..., 
R2, Rl ,      Rn  R(n-l),  
  R(n-l)  -2),...     R2  R1: 

    > Rn -> R(n-l)  -> R(n-2)   ->  ...  -> R2 -> Rl. 

        Rn  R1     Rn  R1. 

    114	 II.   

    9. ,   R1  R2      
 , ..      , 
       
    .      : 
     ( #, . . ., SALARY, . . ., MGR__EMP#, ... ) PRIMARY KEY ( EMP# ) 
FOREIGN KEY ( RENAME MGR_EMP# AS EMP# ) REFERENCES EMP 
        MGR_EMP#     
,    #  .  #  
 , a MGR_EMP#   ,     
. (,    4    MGR_EMP# 
 ,         .  
   RENAME.)     . 
    10.  ,       
,         
,     .  Rn, R(n-l), ..., 
R2, R1   ,   Rn   , 
  R(n-l),  R(n-l)   ,   
R(n-2), ...  ,  R1   ,   
 Rn.   :   ,     
   Rn  : 
    Rn -> R(n-l)  -> R(n-2)  -...- R2 - R1- Rn. 
    11.  ---   "", 
      .       
:        
  .   ,     
  . ,     
     ,   CITY 
 S  .    CITY    .  
    ,        
   CITY   . 
          ( ,   
 CREATE BASE RELATION       
 ): 

    FOREIOt KEY  (  element-comnalist )   REFERENCES base-relation 

      element       
,   ( ),    

    FENJME attribute AS attribute 

       attribute      
,    attribute       
,           
.           
        
,    REERENCES.     
 . 3.9  4.3 ( );      
 MGR_EMP# (    RENAME).  
   RENAME      . 

      

             
 (  ): 
      . 
            . 

     5.   ...	115 

     "   "     
,         
     .  , 
 ,      ,    . 
     , ,   " "  " " 
    .    ,   
 ,      (  , 
 ),      ,    
,      (-,   
,  ).  ,  "  
"  "  "       . 

    5.5.    

     ,    ,  
     .    , 
   , ;     
 ?       . 
         ,     , 
   .     
   ,     
  ,  ,    
    . ,    
  S1   S,      
 S1   SP  -     
 (, ,      
 " "). 
    ,       (     
  )    ,   
  ,   ,      
,   ,  .       
  .  ,        
   . 
        .      
    . 
    1.          ? 
,  ,   ,   ,  
.      .    
    : 
       ""  ,  ,    
   (    ); 
       ""  ,   
 . 
    2.         ,  
 }   ? ,     
,   ,   ,   
.        .    
 |       :	' 
       ""    ,   
    (    ); 

    116	 II.   

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

    FOREIGN KEY  (...)   REFERENCES base-relation DELETE option UPDATE option 

      option    RESTRICTED ()  
CASCADES ().       . 
    1. ,  RESTRICTED  CASCADES .    
    :     , 
    .       
      . : 
           ; 
             ; 
    1       -  . 
    ,      .    
  option        
      (  " 
"  " "). 
    2.    R2       (R2 -> RI). 
             
, ..      R1   
   R2 (  ).  ,  
  R2,   ,    R3: 

    R3 -> R2 - R1. 

         R2    
   ; ..     , 
     R3  R2.     
  (      R3  R2 
   ),      ,    
 .        . 
            
   ,      R2  
-       ,  
      R3. 
       ,       
     (  ),    
       , 
,   . 
    3.  ,     , , 
,           
 ,          
,     (      ).  
         . 

     5,   ...	117 

    5.6. Null- 

        ,      
     .  ,    
 ,       ,  null-. 
     null-      
 ,       . , 
   null-     , 
,      null- . 
         . 
       null-,     , 
     .   
     . ,    
  ,  "  ";    
   ,  " ";   
   ,  "    
". ,    ,  
        . 
     [5.1]       ,    
     , 
 null-.    :    
 null-    ,   ,    
      . ,  
   null QTY ()   ,   
,    ;     
COLOR () null  ,       
    .  , null-      
,     ;      
      ,      
"" ( ,  ,   " " 
 ). 
     ,          
 null-;       , 
  ,   . ( ,  " 
"   CREATE BASE RELATION       

     NULLS   ALLOWED (null- )  NULLS   NOT   ALLOWED 
(null- 6  ).) 

          null-, 
      null-   . 
      ,        
null-   .     :   
, null-      ,    
,           
  ,     .  
 ,  , : )        
; )         
  ; )  null-   
        .   
 ,      :  
,    null-    
  [4.4]. 
        ,         
  null-      , 
  . 

    118	 II,   

    5.7.    null- 

         ,    
,  (  ,   )    
         ,  
 ,   ,     .  
        : 
      . 
              null-. 
     ,       
        NULL NOT 
ALLOWED.    : 
      , ,     
   . ,   S   . 
          , ..   
 . 
             
   (). 
             
 (..      ). 
         ,    S  
,    S#  null-.   , 
   ,     (  , 
   ). 
      ,   null- ?   ,  
"  ", , ,     ;  
 ,    , , 
  .    " ",  
   . ,      
 ( ),      ,    
 ( ,   " "!).  , , 
 : "  ?"   : " ". 
               
 null-.       
  ,   : ",  
  ,  " (     
" "). 
     ,  ,     
,           
,    null-,    . 
     :     ,     
   ,        
 ,         
     .     
    : 
              -, 
    . 

     5.   ,,.	119 

      ,   ,   
     : "    
".   .       
      .   
   (),      
      null-. 
         .     
,        null-,     
,  .      . 
             .   
    ,   null- 
.   . ,     
" null-"        , 
,   7,    COLOR ()     
null-.   ,    
 "   ".      
,     , ,  
,       null-    
.  ,      ( 
 )      . 
 ,  , ,     
"   "    ? 
            .   
 null-     .   
   ,    null-,  
            
.      ,    
 ""    ?  ,   , 
       null-,   
           
   . 
           ,  
,          ,  
, null-    !     
 null-? 
           [5.2]    
   ,   null-,    
 ,      " ".  
,        
 .   ,     ,  
     .  ,  
[4.4]    ,  ,     
   null-  , "   ", 
    . 
      ,       null-   
       (.. 
,     ). ,      
   ,         
  -1 (       
).           
       . 

    120	 II.   

    . , ,       
"         
 "    ,      ( 
 ,       ,   
  ).  . 5.1   , 
 SURVEY (),         
 ;       , 
 ,        
    (BIRTHYEAR ( )  
 ).         ("????") 
 ,       "  ?". 

    SURVEY 
    BIRTHDAY	AVGSAL	MAXSAL	MINSAL 
    1940	85	130K	33K 
    1941	82	125K	32K 
    1942	77	99K	32K 
    1943	78	97K	35K 
    1970	29	35K	12K 
    ????	56	117K	20K 

    . 5.1.  SURVEY 


    5.8.    null- 

              3. , 
  ,    , ,    
      .       
   ,       
  DEPT#. 
           , 
     .     MGR_EMP# 
  ? 
      ,     , 
     null-   
 . ( ,  , ,   null- 
     "  ",   
" ".)       
        ( 
  ). 
     R2   .   , , FK   
R2      R2,  : 
        Rl (R1  R2   )  
  ; 
        FK    R2   
null-,          
 R1. 
       "       
   "  ,   
 "    "     
-11-  ,      
       . 

     5.   ... 121 

     . 

    1.       (    
  ,     )  ,  
  null-, ..       
  ,       null-. 
       : 

    FOREIGN KEY (...) REFERENCES base-relation DELETE option 
    UPDATE option	. . NULLS null-option 

    (  null-option    ALLOWED ()  
NOT ALLOWED ( )),      . 
    2.      FK   null-  
,         ,  
     FK     
null,    ,     ,   
   FK   null-   
-null-.       ( ) 
. (. [5.4, 5.7],     .) 
    3.        ,      
  ,     : ,  
  ,   ,   ,  
 .        
 .     ,  SP.S#, 
null- ,         
(..        option),   
NULLIFIES (). 
         NULLIFIES     
null    ,     . 
    4.         ,     
 -_  ,     : 
,    ,   ,  
 ,   .      
  .     ,  SP.S#, 
null- ,        
 (..        option), 
  NULLIFIES. 
         NULLIFIES     
null    ,     . 

       

         ,  null-     
      - ,   
        
  (..        
 null-). (    , ,   
, null- " ".) 
     ,   ,      
null-,         
  . , ,   
"   "        

    122	 II.   

            ( 
null-)    .     
,     ,    
   .     
       null-,  
         
 null-. 

    5.9.  

         ,     
    ,     
  .        
.      . 
             ,   
        . 
         ""    
 .         
   (    )  . 
      ,   
  ,   ,   .  ! 
        ,      
     . 
           ,   
      (  ,  
 );       
.     [5.8]   
    ,      (  
,           
). ,    ( ) 
      ,   
      . 
               
   ,  ,    . 
     ,    
    ,      , 
    [5.9]      
   ,       
  ,   .     
    ,   ,    
  . 
                 
  ,          
,          
       .    
     RESTRICTED ()  CASCADES (). 
     ,    ,    
null-,      .  
 ( , ,  ),   
    null-   ,   
,   . 

     5.   ...	123 

        ,  ,  null-    
  .  ,       
  ,          
    ,      
 .      NULLIFIES () 
      . 
            
  ,    null-   
.  ,   6  7   ,  
null-     . 
        .      
 "   ",  :    
 .        
,     ,     . 
      , ,   .   
,        
  (, ,   ). 
             .   
          
 ,  ,    S#   SP 
   S#   S;     
       #   SP   #  
 .  ,      
         .  , 
  ,      ,     
  . 
             . 
      .      ,    
      :   
  .    ,    .  
  ,        ,  
  ,   : 
        . 
          . 
    ,          
       ,  ,  
  S#   S     , 
  SNAME   S      .. 

     

    5.1.     . 4.6   4,   
        , 
  . 
    5.2.     ,    
 . 4.6, ,       : 
    )   J7,   CITY  New York; 
    )   5,   #  4; 
    )   S5,   S#  S8,   
     RESTRICTED; 

    124	 II.   

    )   S3,      
  CASCADES; 
    )   2,      
  RESTRICTED; 
    )   J4,      
  CASCADES; 
    )   S1-P1-J1,   S#  S2; )  
 S5-P5-J5,   J#  J7; )   
S5-P5-J5,   J#  J8; )   S5-P6-J7; ) 
  S4-P7-J6; 
    )   S1 -P2-jjj, ( jjj      ). 
    5.3.          
 .         
       ;    
        , 
   .     
  .    : 

    COURSE	( COURSE, TITLE ) 
    PREREQ	( SUP_COURSE#, SUB_COURSE# ) 
    OFFERING	( COURSE*, OFF, OFFDATE, LOCATION ) 
    TEACHER	( COURSE, OFF, EMP ) 
    ENROLLMENT	( COURSE, OFF*, EMP#, GRADE ) 
    EMPLOYEE	( EMP#, ENAME, JOB ) 

      PREREQ ( )   ,  
  (SUP_COURSE#)    (SUB_COURSE#)   
  ;      
  .       
 .      (.. 
   CREATE 

    DOMAIN  CREATE BASE RELATION). 

    5.4.      ,  
    : 

    DEPT   (DEPT#,   ...,   M3R_EMP#,   ...   ) EMP     (EMP#,   ...,   DEPT#, 
  ...   ) 

         (MGR_EMP#),      
 (DEPT#).        
   . 
    5.5.      ,  
    : 
         (#,   ...,   JOB,   ...   ) PGMR   (#,   ...,   LANG,   ...  
 ) 
       ,   .   
        . 
    5.6.         ,  
  " "  . ? 

     5.   ...	125 

    5.7.    . 4.5  4    ( ) 
 DEE  DUM  0.       ? 
    5.8.  R    .    
     ? 

      

    5.1. Codd E.F. Extending the Relational Database Model to Capture More 
Meaning// ACM TODS.  1970.  4,  4. 
       ,   ,    
 ""     . 
,       ,   
     (1979 ),    
         
(  ,      ). 
        [4.1],     
   .        
   null-   ,   
    . 
     ,    ,  ,  
    .     ,   
,   ,       ( 
 ).     , ,   
  S#  #. 
    5.2. Codd E.F. Domains, Keys, and Referential Integrity in Relational 
Databases // InfoDB.  1988. 3, 1. 
          ,    
 .  , , ,    
   ; ,     ,  , 
         . 
 ,         
,         
: "        ,   
           
,         
(,   ,   )."   
,    ,       
   . (      
     .    
      .) 
    5.3. Date C.J. Referential Integrity // Proc. 7th Intern. Conf. on Very 
Large Data Bases.  Cannes, France, 1981. 
         (Date C.J. Relational Database: 
Selected Writings. Reading, Mass.: Addison-Wesley, 1986). 
          ( RESTRICTED, CASCADES, 
NULLIFIES),     .     
  (VLDB 1981)      ,   
        ,   
         
(       . 

    126	 II,   

    5.4. Date C.J. Referential Integrity and Foreign Keys. Part I: Basic 
Concepts; Part II: Further Considerations // C.J. Date. Relational Database 
Writings 1985-1989. Reading, Mass.: Addison-Wesley, 1990. 
          (     80 
)     ,    
   ( ).     
        
 ;  ,  ,  
  ,     
,   null-,    (.. 
  ,       ). 
    .  ,    ,  (  
)    [5.8]. 
    5.5. Date C.J. Integrity // C.J. Date and Colin J. White. A Guide to DB2 
(4th ed.).  Reading, Mass.: Addison-Wesley, 1993. 
         DB2  IBM   
         
 .        . 
     ,    DB2    
  ,      
 .   .   R   
       1  2 ,  
  : "       
/?".          
   2  4.   DB2     2 
(   4),     1 (  2),  
  .       1 
(   2),         
   (   ). ,  ,  
   .    
,  DB2   ,     
. ,   ,      
 [5.11]. 
     ,       
" ", ..      
   .      
(       6),   
   . 
    5.6. Date C.J. Composite Keys // C.J. Date and Hugh Darwen. Relational 
Database Writings 1989-1991.  Reading, Mass.: Addison-Wesley, 1992. 
        : "      
 [   ]     
  ...   ." 
    5.7. Date C.J. Composite Foreign Keys and Nulls // Ibid. 
    5.8. Date C.J. The Primacy of Primary Keys: An Invistigation // InfoDB.  
1992.  7, 3. 
    5.9. Horowitz . . A Run-Time Execution Model for Referential Integrity 
Maintenance. // Proc. 8th Intern. Data Engineering Conf.  Phoenix, Ariz., 1992. 

     5.   ...	127 

     ,   
    1)     (..  ,    
  ), 
    2)        , 
    3)         
             
      .   
     : )    ; ) 
       ,  
        - 
; )        
.     ,   ()   
  ;       
().            
  .  ,      
   . 
      -  (Horowitz)    , 
     SQL,  ,   
 ,     ,   
 . 
    5.10. Markowitz V. M. Referential Integrity Revisited: An Object-Oriented 
Perspective // Proc. 16th Intern. Conf. on Very Large Data Bases.  Brisbane, 
Australia, 1990. "- "   
,    : "    
   - ".   
     -  .   
 ,     - 
   ,      , 
  [5.4] (  ,   
  ,   null-).    
    (DB2, SYBASE  INGRES)    
 .  DB2,    
,   ;  SYBASE  INGRES,  
    (    ""  
""),   ,  DB2,    
   (  ,     
INGRES " "   SYBASE). 
    5.11. Markowitz V. M. Safe Referential Integrity Structures in Relational 
Databases // Proc. 17th Intern. Conf. on Very Large Data Bases.  Barselona, 
Spain, 1991.    " ",   
,    , , ,  
[5.4, 5.9],  .    ,   
      DB2, SYBASE  INGRES.  
  DB2 ,    ,   
  [5.5],  ,       
 (..   DB2     
).   SYBASE  INGRES ,   
         
 (  !)  . 

    128	 II.   

        

    5.1.     CREATE BASE RELATION ()  
 SPJ: 

    CREATE BASE RELATION SPJ 
    ( S#    DOMAIN ( S# ), S#    DOMAIN ( P# ), J#    DCMAIN ( J# ), OTY   
DCMAIN ( QTY ) ) PRIMARY KEY ( S#, P#, J# ) FOREIGN KEY ( S# ) REFERENCES S 
DELETE CASCADES UPDATE RESTRICTED FOREIGN KEY ( P# ) REFERENCES P DELETE 
CASCADES UPDATE RESTRICTED FOREIGN KEY ( J# ) REFERENCES J DELETE CASCADES 
UPDATE RESTRICTED ; 

    5.2. )  ; 
    )    (   ); 
    )    (     
 RESTRICTED); 
    )   (   S3   
  S3); 
    )    (     
 RESTRICTED); 
    )   (   J4   
   J4); )  ; 
    )    (   ); ) 
   (  ); )  
; )    (  ); 
    )    (      
  jjj     J). 
    5.3.     . 5.2.  , 
 . 
    .       
    CANDIDATE KEY. He  (   
   ),          
 PRIMARY KEY. 

     5.   ...	129 5      

    |       PREREQ SUP_COURSE#  |           | SUB_COURSE# COURSE COURSE* 
COURSE#,OFF# ,       OFFE'R^G     |. COURSE#,OFF# TEACHER                      
                       ENROLLMENT 1  J     EMPLOYEE        1 FMnt  
       1  .   .           FMDit 
    EMP# 
    EMP# 

    . 5.2.       

    CREATE DOMAIN COURSE#       CHAR(5) ; CREATE DOMAIN TITLE CHAR(256) ; 
CREATE DOMAIN OFF* CHAR(5) ; CREATE DOMAIN OFFDATE       DATE ; 
    CREATE DOMAIN CITY CHAR(15) ; 
    CREATE DOMAIN EMP* CHAR (6) ; CREATE DOMAIN NAME CHAR{20) ; CREATE DOMAIN 
JOB  CHAR (48) ; CREATE DOMAIN GRADE CHAR(l) ; 
    CREATE BASE RELATION COURSE 
    ( COURSE# DOMAIN ( COURSE ), 
    TITLE  DOMAIN ( TITLE ) ) CANDIDATE KEY ( COURSES ) ; 
    CREATE BASE RELATION PREREQ 
    ( SUP_COURSE# DOMAIN ( COURSE! ), SUB_COURSE# DOMAIN ( COURSE* ) ) 
    CANDIDATE KEY ( SDP_COURSE#, SUB_COURSE# ) 
    FOREIGN KEY ( RENAME SUP_COURSE# AS COURSE* ) 
    REFERENCES COURSE DELETE CASCADES UPDATE CASCADES 
    FOREIGN KEY ( RENAME SUB_COURSE# AS COURSE* ) REFERENCES S 
    REFERENCES COURSE DELETE CASCADES UPDATE CASCADES ; 
    CREATE BASE RELATION OFFERING 
    ( COURSE* DOMAIN ( COURSE* ), OFF*   DOMAIN ( OFF* ), OFFDATE DOMAIN ( 
OFFDATE ), 

    130  II.   

    LOCATION DOMAIN ( CITY ) ) CANDIDATE KEY ( COURSE*, OFF* ) FOREIGN KEY ( 
COURSE* ) REFERENCES COURSE 
    DELETE CASCADES UPDATE CASCADES ; 
    CREATE BASE RELATION EMPLOYEE 
    ( EMP*   DOMAIN ( EMP* ), ENAME  DOMAIN ( NAME ), JOB    DCMAIN ( JOB ) ) 
CANDIDATE KEY ( EMP# ) ; 
    CREATE BASE RELATION TEACHER 
    ( COURSE* DCMAIN ( COURSE* ) , OFF*   DOMAIN ( OFF* ), EMP*   DCMAIN ( 
EMP* ) ) CANDIDATE KEY ( COURSE*, OFF*, EMP* ) FOREIGN KEY ( COURSE*, OFF* ) 
REFERENCES OFFERING 
    DELETE CASCADES UPDATE CASCADES 
    FOREIGN KEY ( EMP* )      REFERENCES EMP 
    DELETE CASCADES UPDATE CASCADES ; 
    CREATE BASE RELATION ENROLLMENT 
    ( COURSE* DCMAIN ( COURSE* ), OFF*    DOMAIN ( OFF* ) , EMP*   DCMAIN ( 
EMP* ) , GRADE  DOMAIN ( GRADE ) ) CANDIDATE KEY ( COURSE*, OFF*, EMP* ) ; 
    FOREIGN KEY ( COURSE*, OFF* )      REFERENCES OFFERING 
    DELETE CASCADES UPDATE CASCADES 
    FOREIGN KEY { EMP* )      REFERENCES EMP 
    DELETE CASCADES UPDATE CASCADES ; 

    : 

    1.    COURSES   TEACHER  COURSE*   ENROLLMENT 
     ,    COURSE. 
      TEACHER  OFFERING,  
ENROLLMENT  OFFERING   OFFERING  COURSE   , 
     TEACHER  COURSE   
. (       [5.4].) 

     5.   ...	131 

    2.   OFFERING        
:      OFFERING  ENROLLMENT 
   OFFERING  COURSE: 

    ENROLLMENT -> OFFERING - COURSE 

    3.   ,        
 ENROLLMENT   COURSE:   (  
COURSES   ENROLLMENT)      OFFERING ( 
  {COURSE#,OFF#}   ENROLLMENT  COURSE*   OFFERING): 

    I	\ 
    ENROLLMENT - OFFERING -> COURSE 

            (  
    ). (    
   [5.4].) 
           PREREQ  COURSE,  
      (    ). 
(       [5.4].) 
    
    5.4.     . 5.3.       
  (..          
),            
 null- (     ),  
     (     ). 
    
    . 5.3.     

           ,   
     . 

    5.5.     CREATE BASE RELATION (): 

    CREATE BASE RELATION EMP ( EMP# ... , 
    ...... / 
    JOB  ... ) PRIMARY KEY ( EMP# ) ) ; 
    CREATE BASE RELATION PGMR ( EMP# ... , 
    LANG ... ) 
    PRIMARY KEY ( EMPt ) FOREIGN KEY ( EMP# ) REFERENCES EMP DELETE CASCADES 
UPDATE CASCADES ; 
    
    DEPT         | MGR_EMP#       i                    DEPT# |           EMP   
       | 
    
    132	 II.   

    : 
    1.          ,    
      ,  .   
    ,    PGMR    , 
  ;    ,  
  PGMR,       (,  
  ).    PGMR   , 
     ;  ,    
     -  () 
   ().       
      . (    
  .) 
    2.  ,         
,    :    
   PGMR    ,    
EMP.JOB     "".     . 
    5.6.   " "      
,        (  
       )  
     , ..   , 
,        .  
         . 
          ,     
        S     
        . 
          ,     
        S     
        . 
      ,  " "    
,         . 
 " "    ,    
  .    ,     
  " ". 
    5.7.         ,  
    {} (  0). 
          .  
       DEE  DUM.   
      /?,    
  : 
             
 R,          
    ,  ,    
. (      ,   
   .) 
       R      ,    
          . 
     ,          
 . : 

     5.   ...	133 

    CREATE BASE RELATION R ( X . . ., Y..., Z ... ) PRIMARY KEY ( ) ; 

           , .. , 
     DEE  DUM: 

    CREATE BASE RELATION R ( ) 
    PRIMARY KEY ( ) ; 

          : ,  
    ,       
  . ,       
     ,  . 
    5.8.      ,    /2. 
     R       
,          
 ,           
/-1    .     
    
    \/(\*(-)\). 
            
 .       ELEMENTS, 
   : 

    CREATE BASE RELATION ELEMENTS 
    ( NAME .. . , SYMBOL ... , NUMBER .. .) CANDIDATE KEY ( NAME ) CANDIDATE 
KEY ( SYMBOL ) CANDIDATE KEY ( NUMBER ) 
        : 
    CREATE BASE RELATION MARRIAGES 
    ( WIFE ... , HUSBAND ... , WEDDING_DATE. .. ) CANDIDATE KEY ( WIFE, 
HUSBAND ) CANDIDATE KEY ( HUSBAND, WEDDING_DATE ) CANDIDATE KEY ( 
WEDDING_DATE, WIFE ) 

     ,              . 

    134	 II,   

