 II

 

      ,        ( 
   ).        
   (  )  . 
,       ,    
 . ,          
; ,     ,    
    .  -     
         
   .       
   ,       ,  
      . 
     ,   8.       I,  
    SQL ( ,    ,  
        ), 
          
     SQL.     
       ,     
     ;      
  8. 


     4 

      :    

    4.1.   

        3,      ,  
   ,   .  
      .   , 
   "" (  ),   . 
4.1.      S      
.     , ,  , , 
,     (         
    ).      
 ,       . 

    . 4.1.   S 

    , : 
      ,       . 
        ,    .  
   ,     . 
           , ..  
   ,         
,         . 
     ,      ,    
      . 
, ,  S#  . 4.1      


        

    S-*(S#)   SNAME   STATUS     CITY 
    SI      Smith	20        London 

                  S2      Jones               10         
Paris                  J 53      Blake	30        Paris      4

   
    54      Clark	20        London    S5 
     Adams           30        Athens   
 
        


     4.   :        79 


  ,    S#   S  
     .    -
  S#   SP      -
  .

 . 4.2    .    
.

1.  ,  "",   ,  -
,    ,  ,   -
,          ,
 .

, ,          ,   
  ,   . (      
    .)

2.       ,   
   3,         -
  .      3     -
 ,    .

  	 

 				 
 				   
  		  
 				   
 				  
  			  
					   



. 4,2.   : 

       -
    ,         -
     .  ,  
      ; -
        .
    .

4.2. 

        ,
     (   
,         ).
      (    
  ).     "
  "   ,   :    -
  (..  )   ,  ,   -
   .     ,   
          
   . ,  ,  , 
  (    ); , 
  ,   .   ,   
,        .

.   ,   "  -
"   [4.8, 4.15].     -
     ;    ,   
 .

    80  II.  

             
 . ,        
  ;        
   ,    , , 10 000. , 
    ,     
 . ,       
  (    );  ,   
     . ,     
        SP    
  (    , ,   
).  ,       #  
        ,     
 #   SP.  ,      
 #         
  ,       #   SP. 
     ,  ,        
  ,       , 
  . ,   8    
,       ,        
        8, ..    
   . 

    ,   

        ?        
 :   .  .  
  SQL       (,    
 ): 

    SELECT   ..... FRCM         ,     SP WHERE    P.P# = SP.P#  ; 

    SELECT   ..... FROM         ,     SP   WHERE    P.WEIGHT = SP.QTY 

       ,   , ,  ,   
,  ,  .   ?     
   ,       
 .#  SP.P#,  (  )     
  ,          
 P.WEIGHT  SP.QTY, , ,    . 
(   "", ,      
,    "".       
.        .) 
    ,     ,   
        ,  ,    
,     ,    
, , ,   ,      
   .  ,       
 ,     , ,    
.        ,  
     .  ,  
    ,   S#  #.  
   ,    
 ,          
. (  "",    ,  
     .       .) 

     4.   :   	81 

     ,  ,    ,   
,      SQL,       
    ,    .    
   SQL.  ,  ,   . 

      

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

    CREATE DOMAIN domain data-type ; 

     domain    , a data-type   
,  CHARM  NUMERIC (). .      
    CREATE DOMAIN,   . 
     . 4.3 (       3) ,   
         . 
 ,        CREATE DOMAIN 
  CREATE BASE RELATION. 
       CREATE BASE RELATION     ; 
   ,       CREATE 
 BASE RELATION     . 
           CREATE DOMAIN   
       . ( ,   
,      3.)       
    CREATE BASE RELATION     
     . 
      .      
  : 
            . 
             . 
              (  
    !). 
     ,     ,    
 ,      . ,   
,     ( ,   
       ).    
     ,      , 
,   ,  , , ,    
    .        
 . 4.3. 
            
        ,  
    ,   . ,  CREATE BASE RELATION 
   S   : 

    82	 II,   

    CREATE BASE RELATION S 
    { S#, SNAME DOMAIN (NAME), STATUS, CITY ) PRIMARY KEY ( SI ) ; 

    CREATE DOMAIN Sit	CHAR(5) ; 
    CREATE DOMAIN NAME	CHAR(20) ; 
    CREATE DOMAIN STATUS	NUMERIC (5) ; 
    CREATE DOMAIN CITY	CHAR(15) ; 
    CREATE DOMAIN P#	CHAR(6) ; 
    CREATE DOMAIN COLOR	CHAR(6) ; 
    CREATE DOMAIN WEIGHT	NUMERIC (5) ; 
    CREATE DOMAIN OTY	NUMERIC (9) ; 

    CREATE BASE RELATION S 
    ( SI	DOMAIN ( SI ), SNAME DOMAIN ( NAME ), STATUS DOMAIN ( STATUS ), 
CITY DOMAIN ( CITY ) ) PRIMARY  KEY  ( SI ) ; 

    CREATE BASE RELATION P 
    ( PI	DOMAIN ( PI ), PNAME DOMAIN ( NAME ), COLOR DOMAIN ( COLOR ), WEIGHT  
     DOMAIN ( WEIGHT ), CITY         DOMAIN ( CITY ) ) PRIMARY KEY ( PI ) ; 

    CREATE BASE RELATION SP 
    ( SI	DOMAIN ( SI ), 
    PI	DOMAIN ( PI ), 
    QTY	DOMAIN ( QTY ) ) 
    PRIMARY KEY	( SI, PI ) 

    FOREIGN KEY	( SI ) REFERENCES S 

    FOREIGN KEY	( PI ) REFERENCES P ; 


    . 4..      ( ) 

     .   ,    .    
   ,       : 

    DESTROY DOMAIN domain ; 

     domain    .      
 ,  ,     
  . (    ,  
 DESTROY DOMAIN    ,  -  
      ,     .) 
    ,   .      
.  ,   : 
    "      - ,  
  ?" 
          : 
    "      ,    
 ?" 
     ,   ,  ,  , 
     .  ,    
, ,        
.     .     
     ,      
  ,   ( ,   
        ). 

        

        ,       
 :          ,    

     4.   :    83 

(      ). ,  
  Pascal   : 

    type Day = { Sun, Mon, Tue, Wed, Thu, Fri, Sat ) ; var Today : Day ; 

         ,  "Day" (  
   ),  ,  "Today", 
    ( ,    
). ,        
  ,    ,  "Day",  , 
 "Today".  ,   ,  
SIMULA 67, MODULA-2  Ada ( Pascal     ),  
     ,     
  [4.8]. 
      ,         , 
   ,      .  
       ,  
      (..  ) 
  ,           
. ,         , 
     ,    ,   , 
       ,  
  ,   " ", " ", 
" ", ""  ..,       
   . 
              ? ,  
    ,  .    
   ,       
(        ).  
-          
 .    ,    
  :      ,   
  .  ,     
,     ,    .  
       . 

    4.3.  

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

    CREATE BASE RELATION S ... ; 

     s,      
    .1 
      ,    ( " ")  
    ;  ,    ,  
   .   ,     
    QTY  : 

    DECLARE OTY INTEGER  . . .   ; 

        ,    
.        ; 
 , 
    '     ,     , , 
,   S      . 
 ,        ,   
 . 

    84	 II.   

  ""     . 
        " 
",    ,       
;       ""  
  .  ,    ,  
    " " ,   
"  " (    ). 

      

       "" (   ): 
        R,     Dl, D2,..., Dn ( 
 ),   :   . ( 
    ,      
,       .) 
1.       , ,  
<-:->: 

    {   <A1:D1>,  <A2:D2>,   ...,  <Al:Dn> }, 

   Aj         
  Dj (j= 1,2,..., ri).    Al, 2,..., An . 
    2.     .  ,   , 
   <-:->: 
    {  <Al:vil>,  <A2:  vi2>,   ...,  <:  vin> } 
    (/ = 1, 2, ..., ,       ).   
      <-:->, .. 
<Aj:vij>,    Aj  .     <Aj:vij> 
vij      Dj,     Aj. 
              
 R. 
          S  . 4.1 (  
    ),  ,    
 . 
       -,       ,  :  
  (S#),   (NAME),    (STATUS)  
   (CITY). (      
,      ,      , 
  , ,    ,   .) 
      ,      :   , 
    .     : 

    (  S#,   SNAME,   STATUS,   CITY  ) 

           : 

    { < S#	:S#	>, 
    < 	:NAME	>, 
    < STATUS	:STATUS	>, 
    < CITY	:CITY	> } 

          ,    
 .   ,    
    . 
    .         
   (..    ),   

     4.   :   	85 

    ,    . , ,   
 ,   ,      . 
         ,  , ,  .  
   -  , ,   

    ( SI, Smith, 20, London ) 

           : 

    { < S#	:	'SI1 
    < 	:	'Smith1 
    < STATUS	:	20     >, 
    < CITY	:	1Londonl > } 

           ,    
  .      
 ,   ,        
   ,     
 ;  ,  ,    
     . ,  "S1"   
  S#,         
,      (   S#).  
,  ,       
  . 
      ,   ,   S  . 4.1 
       ,   
,  ""   (..      
   ).  ,   , 
  ,    ;    
    ;    ;  
      ..    
  " ",       ,  
     . 
      ,          
   (       ).   
          
,       (  )  
 . ,   ...      
    .      
     (  , ,    
),   ,         . 
    (            
,  ,    . ,    
 ,   ,        .  
    (     ),  
        .  . .) 
    .          
    ,    . -, 
       ,   
   (.. )     
 (..    );     
        ,   
   . ,  ,   
   .  ,   ,  
  (..  )     
 ,   .       
  .	

    86	 II.   

      

        [4.1]    "  " 
.      ,       
  , .. ,    
 (       ). , 
  ,  

    CREATE BASE RELATION S   ...   ; 

    s,       
,   , .    "  
",          
/        
(,  ,     "  "). 
     "  "     .   
,          

    DECLARE QTY INTEGER  . . .   ; 

  OTY     "  "  
,    .       
 " ";        
 . 
      R   ;  R    
   .      R  
  . ,     
 S    {S#,SNAME,STATUS,CITY}.1 

        

       ,       
 (  ) .    
 ,   2  ,   3  
 ...      -. (     
  - ,      
 .)        S, P  SP  
 4,5 , . 
       -      
 (         ).  
,         
:  ,    (    
  ).  ,  () 
   ,      (,  
      ).   
     [4.8]. 

    "  " 

        :  ,    
      .  ,   
       .    
  . 4.4. (   PART_STRUCTURE.) 
    1  ,    SQL, ,   SQL  
         
    ALTER TABLE.     
     ,    
           . 

     4.   :   	87 

                   
, ,   ,     , 
       .  . 4.4  
    :   -, , 
        ""  ,   
    . ,    
  ,       
 (,    ),    
 (  )   ,       
      "DOMAIN (domain)" (   
  ). 

    PART STRUCTURE 

    MAJOR_Pt	MINOR_P#	QTY 

    PI		P2		2 
    PI		P3		4 
    P2		P3		1 
    P2		P4		3 
    P3		P5		9 
    P4		P5		8 
    P5		P6		3 

    . 4.4.  PARTSTRUCTURE 


      

       CREATE BASE RELATION: 

    CREATE BASE RELATION base-relation ( attribute-definition-commalist ) Candidate-key-definition-list 
	foreign-key-definition-list ; 

              
base-relation,    ,    . 
   (..   ).   
      . 4.3.   
   . 
    1.  list ()  commalist (,  )  
    (       
).     : 
      xyz   ,  xyz-iist    
,      xyz,   
   ,     xyz     
   . 
      xyz  ,  xyz-comalist   
,      xyz,   
   ,     xyz    
 ( ,    ). 
    , ,    
attribute-defenition-comraalist     
attribute-defenition (..  ),   ,  
 ,    p,    
  Candidate-key-defini-tion-list   
  candidate-key-definition (..  
 ),   ,   ,  
      .       
    foreign-fcey-definition-list. 

     II.   88 

    .          ,  
"candidate key definition" (   ), , 
     . 
    2.      : 
    attribute DOMAIN ( domain ) 
       "DOMAIN ( domain )",  ,   
      . 
    3.         
.     ,     CREATE BASE 
RELATION       : 
    PRIMARY KEY  (  attribute-commalist ) 
    4.         . 
      .      
 : 

    DESTROY BASE RELATION base-relation ; 

             
          . 
      . (  ,   
,   DESTROY BASE RELATION    , 
   ,     
 .        
 .) 

      

        ,     
    ,       
.      ,     . 
      .    
        ; 
          ; 
          ; 
         . 
1.   . 
         ,      
  (),       
   . 
     ,      ,  
         ,    (  ) 
      ,  ,   
       . ( 
"",   ,     
!)   ,  SQL ,   
  .        
,       (   
   [4.5, 4.11]);       
,       ;     
    ,     . ( 
      SQL   8.   
  , ,     .) 

     4.   :   	89 

       ,     ,  
,     .    ,   
        , 
 ,      .  , 
,       -  
   ,   5    
 ,      ,     
; , ,  {S#,CITY}   "",  
    ,       CITY,  
 . ( ,      
.      SP.) 
    2.    ( ). 
         ,      
 ,       . 
,  . 4.1   S     
         .   
   " ", "97- "  " "; 
..       "".2  
 [4.11],        "  
", ,   "  "   
  (    ). 
         ,      
  ,           ,  
     ,        . 
    3.    ( ). 
         ,     
   (). ,  . 4.1   
S   , ,   : SNAME, CITY, STATUS, S#  
      ,        
.     " "  " 
" ( ..),   " " (    
"");  ,     ,  
  .         
 . ,   (   ) 
   - ""    .  
       ,   
      ( 
 )  ,    . 
    ,         ,  
        : 
    ,     . 
    4.    . 
        ,      
    .       ( 

    1 ,        .  
,        . 
       5. 
    2  ""      
    ,     COBOL.     
 ,     .  ,   , 
        
,      "  ". 
 ,       
       . 

    90	 II.   



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

    BEFORE						AFTER 

    S#	PQ					S#	P#	QTY 
    SI S2 S3 S4						SI SI SI SI SI SI S2 S2 S3 S4 S4 S4	PI P2 P3 P4 P5 P6 PI 
P2 P2 P2 P4 P5	300 200 400 200 100 100 300 400 200 200 300 400 
    P#	QTY 
    PI P2 P3 P4 P5 P6	300 200 400 200 100 100 
    
    
    P#	QTY 
    PI P2	300 400 
    
    
    
    P#	OTY 
    P2	200 
    
    
    P#	QTY 
    P2 P4 P5	200 300 400 
    
    . 4.5.   

     ,         
.  ,   ""   
" "    .    ,  
      .  
 BEFORE,   . 4.5.     
BEFORE    ,       
  . 
    ,      ,   
 .     PQ      
-,     ;  
  ,   ,      
 ,    #  QTY.    
   - (      
 ). 
    ,   BEFORE,      
.      ,    
 .     AFTER   ( 
      SP).   AFTER 
 ,          .   
, ,   AFTER,  ; 
,   BEFORE,  ;   
  BEFORE   AFTER  . 
    ,     
  ,      
  ,        . 

     4.   :    91 

    ,      ,   
.         
 .         
    . ,   . 
    1.        S5  5  
 500. 
    2.         S4  5  
 500. 
      AFTER        
,         .   
 BEFORE         , 
      ,  :  
     (..  )   
.         
  "INSERT".       
  "UPDATE",    "DELETE"  ..  
,         ,  
   ; ,    
  ,     
   .. ( ,    ,     
    ,      .) 
,       "    ?" 
  :  ,    ,    
  . 

    4.4.   

            ,   
  (  ,     
    ). 
    1.  ,      , 
     CREATE BASE RELATION, CREATE VIEW  
CREATE SNAPSHOT (   ).   CREATE VIEW 
   3,    CREATE SNAPSHOT     
 . 
    2.      ,   
  (..    ).   
    ,     ( 
   ),        
        ,    
    ( , ,  ). 
    3.    ,  ( 
 )     ,   
,   . 
    . ,     "" 
 "" (  ). 
    4.     ,     
      . 
,      ,   
.  , ,  (  ), 
         
.  ,         
       . 

    92	 .   

    5.     . 
(,    ,   .) 
         
     . 
    6.   (snapshot)     ,   
  (      
).       ,   , 
..          
 ,    (   )  
 .  : 

    CREATE SNAPSHOT SC AS 
    ( ( S JOIN SP ) WHERE P# = 'P21 ) [ S#, CITY ] REFRESH EVERY DAY ; 

         ,   ,  
          (SC 
  )  ,    ,   ( 
    )  "", ..    
,         
 .        . 
    7.       , 
    .    
      ( 
  ,      ). 
    8.       
,     , 
  ,  . ,   : 

    (   (  S JOIN SP  )   WHERE Ptt =   'P2'   )    [  S#,   CITY ] 

    ,    s JOIN SP,   
;   TEMPI.  ,   
 TEMPI WHERE p# = '21,    ; 
  2.  ,    2 [s#, 
CITY],   .     
    ,    
  ( ,      3, 
          ). 
    9.   ,    ,  
    ""  (,  
  "";     
     ). 
      ,         
.      ,    
,  ,         ; 
    ,       
,   ,      .  
        3. 

    4.5.    

          , , ,  
,      ,  
        . 
,   S   : 

     4.   :   	93 

        (S#)    (SNAME)  
   (STATUS)      
(CITY);  ,      . 
        ,      . 
    ,      ,   
,    ;      
  .      
  ( "" ),  ,  , 
 ,       . 
,   

    S# =  'SI'  SNAME =  'Smith'  STATUS = 20 CITY =  'London' 

     ,  .    

    S# =  'SI'  SNAME =  'Abbey'  STATUS = 45 CITY =  'Tucson' 

     ,   (     S1 
   Abbey,   45     ).    
       ,    
 . 
      ,  () ,   
      ,     
  ,       (.. 
    ).    
       ; .. 
  ,      (  
  "")   . 
             
,       . ,  
         . ,  
  S     ,     
(Sl,Smith,20,London)  ,    (Sl,Abbey,45,Tucson)  .1 
    ,    : 
    	 S#    . 
    	 SNAME   . 
    	 STATUS    . 
    	 CITY    . 
    	 S#       . 
     ,   ,   S,    
,    ,  ,   
  ,   S#      
.      "" ( ) 
      (  ) 
       .     
       . 
               . 

    4.6.    

          ,     
 ( ,      )  
"  ".  ,    [4.1], 
 : 

    1     ,    
(Sl,Smith,20,London)   {<S#:'S1'>, <SNAME:'Smith'>, 
<STATUS:20>, <CITY:'London'>}. 

    94	 II.   

            ,   
    (..  )  . 
      ,  " "  
:         
 ,     .      
        , 
         ;  
 , ,  Pascal      
,          
.         
,      . 
        ()     
.     ,     
  .      ,    
   . ,     
, ,    ,   ,  
   , ..    ,   
.           
  CHAR(5)  CHAR(7).  ,   , 
,      . 
    ,  ,       
 (,   ),    (,   
),   (,   ).      
 .      " ", 
  ,   ,     
   ,    , , 
 ,   ,      
.   ,      
     ,     ( 
   "   ",   
" ").  ,    
       ;   
       ,   
    ,     
    .. 

    4.7.  

              
,     .   ,  ,   
(,   ,      
);     ,    
      .   
, ..    ,    
  .  ,    
 . 
        :   .     
 (,  -:-),      . 
   ,      
.      ,    
,    ,     . 
     . 
          . 
          . 

     4.   :   	95 

           . 
           ( ). 
           ,  , 
      .    
       ,    
 . 
          ( 
 ,      ).  
     ,   . 
       
;         , 
       .   
      . 
             
  ,        
   CREATE DOMAIN  DESTROT , CREATE BASE RELATION  DESTROY 
BASE KEIATICN. (     CREATE  DESTROY   
 ;     ,    .) 

     

    4.1.   . 3.4  3 (   
      ): )    
 ,    ,  
  ; ) ,        
 ; )        
   ,     #. 
    4.2. )   CREATE BASE RELATION    
 CREATE DOMAIN   PART_STRUCTURE,   . 
4.4; ) ,          
  . 4.1, ,       
       (); )    
DESTROY,    ,      (). 
    4.3.   ,   ,   CREATE 
DOMAIN  DESTROY DOMAIN, CREATE BASE RELATION  DESTROY BASE 
RELATION,    .        
,     ;      
  (  INSERT, UPDATE, DELETE  SQL)  
  ?  . 
    4.4.      ? 
    4.5.         
.        ; 
 ,  ,   ..,    
   ,      =0 .  
    ?   ? 
    4.6.  . 4.6        
    ,     
,   .  (S),  ()   (J) 
    (S#),   (#)   
 (J#) .    SPJ ( 
) :       
     (  S#-P#-J# 
   ).      
  . 

    96	 II,   

    .        
   . 
        3,  ,  ,  , 
   .      
            
, ..   ,       
 ,   . 

    S											SPJ 

    s#	SNAME		STATUS	CITY					S#	P#	J#	QTY 
    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 
    35	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					35	P3	J4	200 
    J5		RAID		London					35	P4	J4	800 
    J6		EDS		Oslo						35	P5	J4	400 
    J7		Tape		London					35	P6	J4	500 
    
    
    . 4.6.   ,    (  ) 
    4.7.     SPJ   . 

      

            " 
",      . 
    4.1. Codd E.F. A Relational Model of Data for Large Shared Data Banks // 
CACM.  1970.  13,  6. (: Milestones of Research  Selected Papers 
1958-1982 // CACM.  1983.  26,  1.) 
         .      ,  
    ,   . ,  
        ,    
   ,    .  ,  
   ,        
 . 
        : "    "  
"  ". 

     4.   :    97 
   4      

    1.         (  
     ),    
(  ),  (  ),  
,    ,     , 
    2.           
  ,   ..      
         
  .     , 
       ,  ,  
    .  ,    , 
   ,     
,       ,      
  ,   ,     . 
         ,    . 
       :   
 Dl, D2, ..., Dn (  ),   R  
      - ( ),     
    D1,    D2,  .. 
( Dj  '-   R.)   :  
R       . . 
            
         . 
    1.  -,         
 . (       " ", 
     ,     
   ,       
   ,      .)  
      ,    
  . 
    2.           
  .        ,  
        , ,  " 
  " (    ""),   
, ,        
. ( SQL,  ,      
    .) 
    3.   ,         
    (     ) 
   (,    ""  ""), 
        .   
    . 
    ,     ,    
,     . 
    1.    ,        
 " " (      " 
",    , ,   ,    
). ,     ,     
 "" (..      
).      "  

    98	 II,   

 ...  [  ]",   ,   
" "      
        
.    ,    ,  
     ; ,   (.. ,  
"    ",     
"      "),    
.  [4.12]     
    "  3". 
    2.             
 ; ..    " "   
 ,       .   
  (.. )     
.     ,  "    
   []  ,     
       ". 
    3.  ,    ,   
 ,    ,    (  
?    )    ,     
  null-  .   5  
      null-    . 
    4.2. Codd E.F. Derivability, Redundancy, and Consistency of Relations 
Stored in Large Data Banks // IBM Research Report RJ599  1969. 
       [4.1].       
 ( ,  ),     
  ,   [4.1]    ,   
   .        
 . 
    4.3. Codd E.F. Data Models in Databases Management // Proc. Workshop on 
Data Abstraction, Database and Conceptual Modelling (Michael L. Brodie and 
Stephen N. Zilles, eds.).  Pingree Park, Colo., 1980. (ACM SIGART 
Newsletter. 1981 74; ACM SIGMOD Record 11.  1981  2; ACM S1GPLAN Notices. 
1981 16,  1). 
            .  
 ,  ,      , 
   : 
    1.    ,   ,   
   ,  . 
    2.     ,    
   ,     . 
    3.   ,     (  .) 
  . 
             (  
   ),      ,  
    (  ) 
      ;   
   ()      
      . 
    4.4. Codd E.F. The Relational Model for Database Management Version 2.  
Reading, Mass.: Addison-Wesley, 1989. 

     4.   :   	99 

        1980-      
  (       
"the Relational Model Version 1",  RM/V1),      
.           
"the Relational Model Version 2",  RM/V2.     
    :      
       (    
),         . ,    
           , 
      ,  RM/V2  
18 ,       ,    
,   ,  , ,  , 
,        
   .  ,    ,   
  . 
    4.5. Darwen H. The Duplisity of Duplicate Rows // C.J. Date and Hugh 
Darwen. Relational Database Writings 1989-1991.  Reading, Mass.: 
Addison-Wesley, 1992. 
          ,    
 [4.11],         
   .       
  ,     .  
   :       
 ,       
.  ,       "   ". 
    4.6. Darwen H. The Nullologist in Relationland // Ibid. 
       ( ) "   "   
 ,    .     
,    ,  ,       
  ,   .      
     .     
(  )   2   ("  
")   3 ("  "). 
    4.7. Darwen H. (writing as Andrew Warden). Adventures in Relationland // 
C.J. Date. Relational Database Writings 1985-1989.  Reading, Mass.: 
Addison-Wesley, 1992. 
             
,    . 
    4.8. Date C.J. What Is a Domain? // Ibid, 1990. 
           . 
  ,      ,   , 
  ,   .   
        . 
    4.9. Date C.J. Defining Data Types in Database Language // Ibid. 
    ,    ,    
       .     
        SQL (  
   SQL      ). 
    4.10. Date C.J. What Is a Relation? // C.J. Date and Hugh Darwen. 
Relational Database Writings 1989-1991.  Reading, Mass.: Addison-Wesley, 1992. 
         ,   [4.8] .  
  : "       
 ,         
      .         ." 

    100	 II,   

     ,   ,       
    ,    , 
,            . 
    4.11. Date C.J. Why Duplicate Rows Are Prohibited // C.J. Date. Relational 
Database Writings 1985-1989. Reading, Mass.: Addison-Wesley, 1990. 
           , 
         .  
,   ,      
  . 
    4.12. Date C.J. Some Relational Myths Exploded // C.J. Date. Relational 
Database: Selected Writings. Reading, Mass.: Addison-Wesley, 1986. 
     26  ,    
  . 
    4.13. Date C.J. Further Relational Myths // C.J. Date. Relational Database 
Writings 1985-1989.  Reading, Mass.: Addison-Wesley, 1990. 
     [4.12],    " ". 
    4.14. Date C.J. Relational Database: Further Misconceptions Number Three 
// C.J. Date and Hugh Darwen. Relational Database Writings 1989-1991. 
Reading, Mass.: Addison-Wesley, 1992. 
      " ". 
    4.15. Date C.J. Notes Toward a Reconstituted Definition of the Relational 
Model Version 1 (RM/Vl)//Ibid. 
            "RM/V1"   
 . ,     
  1,      -  2. 
    4.16. Date C.J. A Critical Review of Relational Model Version 2 (RM/V2) // 
Ibid.         "RM/V2". 
    4.17. Date C.J. Series of articles in Database Programming & Design (under 
the generic title According to Date). Beginning with 5.  1992.   9. 
         ,    
.    ,    ,  
    .   "  !", ..  
,         
     . 
    4.18. McLeod D.J. High Level Definition of Abstract Domains in a 
Relational Database System // Computer Languages 2.  Pergamon Press, 1977. 
       ,      . 

        

    4.1. )    : 

    TABLES	     RELATIONS 
    COLUMNS	ATTRIBUTES 
    TABNAME	RELNAME 
    COLCOUNT	DEGREE 
    ROWCOUNT	CARDINALITY (CARD) 
    COLNAME	ATTRNAME 

     4.   :   	101 

     ,  RELATIONS     
.     RELATIONS      
(RELTYPE),     ( ,  
 )   .   
    : 
    RELATIONS    I RELNAMEI DEGREE    I CARDINALITY  I RELTYPE   I . ..        I 
    ATTRIBUTES     RELNAME    ATTRNAME 
    )      (DOMAINS),   
  ,     (DOMNAME)   ATTRIBUTES, 
         
 .     : 
    DOMAINS       DCMNAME      DATATYPE 
    RELATIONS      RELNAME      DEGREE   CARDINALITY     RELTYPE 
    ATTRIBUTES     RELNAME      ATTRNAME DCMNAME 
          , , , 
        
     . 
    B) ( ATTRIBUTES WHERE DCMNAME = '#' ) [ RELNAME ] 
    4.2. )  : 
    CREATE DOMAIN P# CHAR(6)   ; CREATE DOMAIN QTY NUMERIC (9)   ; 
    CREATE BASE RELATION PART_STRUCTURE ( MAJOR__P# DOMAIN   (  P#  ), 
MINOR_P# DOMAIN   (  P#  ), QTY	DOMAIN   (  QTY )   ) PRIMARY KEY   (  
MAJOR_P#,   MINOR_P#   )   ; 
    .    PART_STRUCTURE     
  ,       
    FOREIGN KEY ( RENAME MAJOR_P# AS P# ) REFERENCES P FOREIGN KEY ( RENAME 
MINOR__P# AS P# ) REFERENCES P 
       (       5). 
    )       (. 4.7);  , 
  CARDINALITY   RELATIONS    RELATIONS 
    .      
PART_STRUCTURE  0,   7 (     . 4.4  , 
   ), , ,   , 
   . 
    B) DESTROY BASE RELATION PART_STRUCTURE ; DESTROY DOMAIN QTY ; DESTROY 
DOMAIN P# ; 

    102	 II,   

    DCMA RELA ATTR	INS 
    DCMNAME	DATATYPE 
    P# QTY	CHAR(6) NUMERIC (9) 
    TIONS 
    RELNAME		DEGREE	CARDINALITY			RELTYPE 
    PART_STRUCTURE		3	0			Base 
    IBUTES 
    RELNAME		ATTRNAME		DCMNAME 
    PART STRUCTURE PART_STRUCTURE PART STRUCTURE		MAJOR_P# MINOR_P# QTY		P# P# QTY 
    
    
    . 4.7.     PART_STRUCTURE 

    4.3.        , .. 
 INSERT, UPDATE  DELETE.    
       ,     
      (     
),         . 
, ,    SQL DELETE 

    DELETE 
    FRCM 
    RELATIONS 
    WHERE     RELNAME = 'BMP' ; 

     .      
   ,      RELATIONS.  
        , ..   
      .     
      . 
    ,      UPDATE, DELETE  
INSERT       (  ),  
   ,     (, 
    ).     
      (CREATE DCMAIN, CREATE 
BASE RELATION,  ..). ,     CREATE 
BASE RELATION   , -,      
 RELATIONS , -,    ,    
    ,   ATTRIBUTES. (  
     , , ,    
 .)  ,   CREATE    
    INSERT  .   
  DESTROY      DELETE;  
 SQL,       ALTER   
   ,  ALTER   
  UPDATE. 
    .    ,       
 .        CREATE. 
          
 .  ,  ""  . 

     4.   :    103 

    4.4. ,        .  
  : 

          DCMNAME               NAME 
    RELNAME	 
    ATTRNAME	NAME 
    DATATYPE	DATATYPE 
    DEGREE	CARDINALS CARDINALITY                       CARDINALS 
    RELTYPE	RELTYPE 

     ,   ,     : 
     NAME      . 
     DATATYPE         
(CHAR(n), NUMERIC(n),  ..).        
   . 
     CARDINALS       ,  
      . 
     RELTYPE    { "Base", "View", "Snapshot"}. 
     ,    ()   ,  
         ,    
  .     ,    
 ,     ,     
-  (,       ,   
  ). 
    4.5.           
     (  ,   
 ).  , ,      
 ,    .    
,     ,  . 
      , ,  ,     
      !     
  ,   ,    
     .     
 ,      ,   
,   ,  - .   
     ,   ,   0- 
(.. ,     ).     
  ,   0-   .  
    (,  )  : , 
    ,  ,     
.     , ,   (Darwen) [4-6, 
4.7],    "" :    TABLE DEE,  
 TABLE_DUM,    DEE  DUM (DEE  0- , a DUM  ). 
                
    :     
   ,   DEE    true ( yes), a 
DUM   false ( ).       
      .   
    [4.6, 4.7]. 
    4.6. CREATE DOMAIN S#	CHAR(5) ; 

    104	 II,   

    CREATE DCMMN NAME	CHAR(20) ; 
    CREATE DOMAIN STATUS	NUMERIC (5) ; 
    CREATE DOMAIN CITY	CHAR (15) ; 
    CREATE DCMAIN Ptt	CHAR(6) ; 
    CREATE DCMAIN COLOR	CHAR (6) ; 
    CREATE DCMAIN WEIGHT	NUMERIC (5) ; 
    CREATE DCMAIN J#	CHAR(4) ; 
    CREATE DCMAIN QTY	NUMERIC(9) ; 
    CREATE BASE RELATION S 
    ( Stt    DCMAIN ( Stt ), SNAME DCMAIN ( NAME ) , STATUS DCMAIN ( STATUS ), 
CITY  DCMAIN ( CITY ) ) PRIMARY KEY ( S# ) ; 
    CREATE BASE RELATION P 
    ( P#    DCMAIN ( P# ), PNAME DCMAIN ( NAME ), COLOR DCMAIN ( COLOR ), 
WEIGHT DCMAIN ( WEIGHT ), CITY  DCMAIN ( CITY ) ) PRIMARY KEY ( Ptt ) ; 
    CREATE BASE RELATION J 
    ( Jtt   DCMAIN ( Jtt ), JNAME DCMAIN ( NAME ), CITY DCMAIN ( CITY ) ) 
PRIMARY KEY ( Jtt ) ; 
    CREATE BASE RELATION SPJ 
    ( Stt  DCMAIN ( Stt ), 
    Ptt  DCMAIN ( Ptt ), 
    J#  DCMAIN ( Jtt ) , 
    QTY    DCMAIN   (  CfTY  )   ) PRIMARY KEY   (  Stt,   Ptt,   Jtt   ) 
FOREIGN KEY   (  Stt   )   REFERENCES S FOREIGN KEY   (  Ptt   )   REFERENCES 
P FOREIGN KEY   (  Jtt   )   REFERENCES J ; 
    4.7.  {<S#:s, P#:p, l#:j, QTY:g>}    SPJ   
 ,    : 
       s,p,j, q    . 
      s     S#   S;    
     / 
       SPJ  q'^q   {<S#:s, P#:p, J#'j, QTYig^}. 

     4.   :   	105 

             . 
      (),  s      j  
 q.   , ,    
     . 

    106  II.   

