




 :  



  1. 



1.   

    ()     , :

1)      (  )  ;

2)           ,      ;

3)    , . .        , . .   ;

4)          (. .      ).

,      ,     .

               .              -  ()  -.

         , . .        .     1970 .     ,   (Codd),     .



2.   

      relation  .

     (       )    



R = {(x, , x) | x&#8712; A,,x&#8712;A},


 A, , A ,   .  ,  R     : A &#215;  &#215; A :



R &#8838; A &#215;  &#215; A.


,              A = A2 = {3, 4, 5}:



R = {(3, 4), (4, 5), (3, 5)} &#8834;A &#215; A;

R = {(5, 4), (4, 3), (5, 3)} &#8834; A &#215; A.


       .

  R:


  R:


 ,  ,                   .

 ,       R  R    ,  , ,   ,    .

,         .          ?  R  R   ,     , ,  ,   ,      .            ,        3, 4, 5, ,    .  ,  ,    (  )             ,    .

    R  R       ,  ,   .           ,     .             .           , . .    ,       .

      R  R    .

   (  R):


   (  R):


 -   (   ,           R  R) .

,  ,      ,     ,    ,   R  R    .

 ,  ,             ,   .

            .            .



  2.  


            :  ( Empty-)   ( Null-).

  ( )   Null-        ,   .       ,           .



1.   (Empty-)

          -    .

  ,    (. .  ,      ,     ):

1) 0 ()         ;

2) false ()        ;

3) B        ;

4)         .

    ,    ,         ,     .                     . -         .  ,     -   ,   .

      :



1) B0;

2) B000;

3)  .


     ,    ?

           , . .  IsEmpty (<>),     .                 .         ,               .

   ,     ,     .   .        ,        01.01.0100.  31.12.9999?            {},     : {. . }  {. . }.           .    ,     ,    .

              ,    .



2.   (Null-)

 Null        .

  ,     ,  ,    :


,    Null-  :

1) ,  , . .  . ,   ,        , ,  -   (   1980 .    ),    , ,     .         Null;

2)  .    ( 2    )       ,             ,   ;

3)    ,         . ,   ,         ,   ,               .  ,     ,     Null- (    ,    ,   ).      , Null-    .     :

1)     Null-  . ,    ( 2    )  2014 ., . .   , Null-   -    ;

2) Null-         (, , , ,   . .);

3)       Null--     Null-;

4)              (      . 4   2).



3. Null-     

     ,  Null-.

    Null- (,     Null-  Null-)    :

1)  ;

2)    ,    (  );

3)     (,    );

4)    (<, &#8804;, &#8800;, &#8805;, >).

 .        Null-:



3 + Null, 1/ Null, (' + '' + Null) &#8788; Null


       &#8788; -     Null-.         ,  ,                 .

 Null-   ,          Null-, :



(x  x), y * (x  x), x * 0 &#8788; Null  x = Null.


   ,   , ,   (x  x)  x = Null,    (Null  Null),         ,  Null-,    ,   Null-       .

  ,     ,  , Null-   ,       Null-.

       Null-   . ,      Null-     True  False:



(Null < Null); (Null &#8804; Null); (Null = Null); (Null &#8800; Null);

(Null > Null); (Null &#8805; Null) &#8788; Null;


 ,  ,     ,  Null-      .    Null-   ,    Null-     .  Null-       ,   ,              ,        .

,  ,  Null-         .        ,  Null-,          True  False,  Null-,    :



(x < Null); (x &#8804; Null); (x = Null); (x &#8800; Null); (x > Null);

(x &#8805; Null) &#8788; Null;


          Null-    :

IsNull (<>),     Null.

    True,     Null    Null,  False    ,      Null.  IsNull        .       ,     False.

:


, , ,    ,   IsNull   ,     False.   ,       ,       Null-,    ,        Null-,    True.



4. Null-   

           :  ,  &   &#8744;.   &#8658;   &#8660;      :



(x &#8658; y) &#8788; (x &#8744; y);

(x &#8660; y) &#8788; (x &#8658; y) & (y &#8658; x);


,         Null-.

,           &   &#8744;        :



(x & y) &#8788; (x &#8744;y);

(x &#8744; y) &#8788;  (x & y);


  ,    , Null-   .

       ,   ,     True  False,   Null-   .     :  True   t,  False  f,   Null  n.

1.  x.


          Null-:

1) x &#8788; x    ;

2) Null &#8788; Null  Null-   .


2.  x & y.


     :

1) x & y &#8788; y & x;

2) x & x &#8788; x  ;

3) False & y &#8788; False,  False   ;

4) True & y &#8788; y,  True   .


3.  x &#8744; y.


:

1) x &#8744; y &#8788; y &#8744; x  ;

2) x &#8744; x &#8788; x  ;

3) False &#8744; y &#8788; y,  False   ;

4) True &#8744; y &#8788; True,  True   .

          &   &#8744;     :



(False & y) &#8788; (x & False) &#8788; False;

(True &#8744; y) &#8788; (x &#8744; True) &#8788; True;


     ,    Null-  False  True          .

        ,  Null-         . ,          (x &#8744; x)     (x = x),   x &#8788; Null :



(x &#8744; x), (x = x) &#8788; Null.


  !    ,   :   Null-     ,          ,         Null-.

 ,  :      Null-            ,  .



5. Null-   

,      ,             (True  False),  ,  Null-        .          ,  Unknown.

,   ,         .    Null- ( )      True,   False.

         Null-   False.             If  While:



If P then A else B;


  :  P   True,    A,   P   False  Null,    B.

      , :



If P then B else A;


  ,    :  P   True,    B,    ,  P   False  Null,     A.

 ,   ,   Null-     .   ,    If     !            , . .  .      !      ,  Null-  P      B,     A.

      While:



While P do A; B;


   ?   P   True,    A,    P   False  Null,   B.

   Null-   False. ,        True (    ,        ).   ,          .

 -          IfNull ( , True),    Null-        .

   If  While    :



1) If IfNull ( P, False) then A else B;

2) While IfNull ( P, False) do A; B;


,   IfNull ( 1,  2)    ,     Null-,        .

 ,      IfNull     .             Null-.



  3.   



1.      

1.   ,      ,  .    ,         ,    , ,  ,      .

  ,  ,    .

2.  ,  ,         ,    .    . , :


        .           :


 ,     ,       , . .    .

   ,    .

3.     .        ,           . ,    ,     .          .    :


4.  ,  ,    -.       ,       ,      , :


     ,             .

5.           .        .

,       .

      ,      , . .    .  ,        ,  ,  ,     .

                  -.



2.   

             . ,    .

,   ( dom(a)),     ,             .     , . :



dom(a) &#8838; {x | type(x) = type(a)};


 ( ),   ,    ,     name(a)    dom(a), . .:



a = (name(a): dom(a));


      , (     )  :.    ,         .

    :



 = (: {1, 2, 3, 4, 5});

 = (: {x | type(x) = real, x 0});

 = (: {x | type(x) = real, x 0});


,         .      ,       .          ,    .

          ,       ,  .    :


 ,      a, a, a  ,  - ,   .



3.  .   

               .  .

  ( S)        , . .:



S = {a | a &#8712; S};


  ,  ,    ( )     .

             : |S|.

       .

    ,   ,       ,    .

S = {a, a, a, a}     .


      .

              , :



 (  , , , ,  ).


,      ,    ,  .

  ,        (S = &#8709;). ,     ,               .

     ( t(a))       ,       , . .:



t(a) = (name(a) : x), x &#8712; dom(a);


,       .

               :

 t(a), t(a), t(a)     t   , , .


      :



(: 5), (: 5);


        ,  5      ,    . ,         ,   ,            .



4. .  

              ,          . ,  ( t,  . tuple  )    S          ,      S.  ,      , def(t), . .:



t&#8801;t(S) = {t(a) | a &#8712; def(t) &#8838; S;.


,            .

         , . .:


 t(S) = {t(a), t(a), t(a), t(a)}  t(S) = {t(a), t(a), t(a), t(a)}  .


           .  :

1) ,          , . . def(t) &#8838; S.

      ;

2) ,         ,   , . . def(t) = S;

3) ,        , . . def(t) &#8834; S;

4)   ,       , . . def(t) = &#8709;.

  .     ,   .


  t = {10, 20, 30}, t = {10, 20, Null}, t = {Null, Null, Null}.   ,   t  ,      def(t) = { a, b, c} = S.

 t  , def(t) = { a, b} &#8834; S. , ,  t    ,    def(t3) = &#8709;.

 ,         ,       .      : &#8709;(S).       ,      ,    Null-.

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



5. .  

    ,    ,     . ,  ( r,  . relation  )    S      ,      S.  :



r &#8801; r(S) = {t(S) | t &#8712;r};


                : |r|.

,   ,   . ,  :

1) ,          : [def(t) &#8838; S].

 (   )  ;

2) ,     &#8704;t &#8712; r(S) : [def(t) = S];

3) ,  &#8707;t &#8712; r(S) def(t) &#8834; S;

4)   ,  &#8704;t &#8712; r(S) [def(t) = &#8709;].


       .             .   ,         :     ,         (   {&#8709;(S)}).

 (   ), . .,  ,          .        .

   ,     ,      , . .    ,    ,  .



  4.  .  


 ,   ,    ,         , . .  .

       ,      .           ,        .



1.   

  ,   ,         ,  ,  - , . .  -,     .

   &#963;<P>,    P<S>, . .,  &#963;        P,    P      S.           S    r    :



&#963;<P>r(S) &#8801;&#963;<P>r = {t(S) |t &#8712; r & P<S>t} = {t(S) |t &#8712; r & IfNull(P<S>t, False};


           S,     t(S)  -,     P<S>t. ,   ,   -   ,        .

      ,  .     :



S:  (  , , , ).


   :



P<S> = ( =  and  > 3).


    -   ,      ,     ,    .

       :



t(S) &#8712; r(S): {(  : 100), (: ), (:  ), (: 5)};


      t, :



P<S>t = (  =  and 5 > 3);


       .

     



&#963;< = '' and  > 3 > 


  ,    ,   .



2.   

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

   [S']  &#960;<S'>.  S'      S, . .   .   ?  ,   S  ,   S,    S'     ,     .   ,   r(S' ),   ,     r(S),    ,       .  ,   &#960;< S'>    r(S)          r(S' ),    t(S) [S' ]   .     ?    t(S)   r(S)   S'   :



t(S) [S] = {t(a)|a &#8712; def(t) &#8745; S}, S' &#8838;S.


 ,      , . .  ,  ,      .

   ,            :



&#960;<S'>r(S) &#8801; &#960;<S>r &#8801; r(S) [S] &#8801; r [S' ] = {t(S) [S] | t &#8712; r };


 ,     .

       :



S:  (  , , , );


        ,        ,   S'    :



S' : (  , ).


   r(S)    S'.

,     t(S)   :



t(S) &#8712; r(S): {(  : 100), (: ), (:  ), (: 5)};


,       S'    :



t(S) S': {(  : 100), (: )};


       ,    [  , ]      ,     ,  :     .  ,     .



3.   

   ,   ,    .       ,      ,       .

    : &#961;<&#966;>,  &#966;  .

   -      S  &#348;,   S    ,  &#348;      .  ,  &#961;<&#966;>     r(S)      &#348;,         .

         :



&#961;<&#966;> r(S) &#8801; &#961;<&#966;>r = {&#961;<&#966;> t(S)| t &#8712; r};


    :

     ,  :



S:  (  , , , );


    &#348;,    ,       :



&#348; : ( , , , );


,           .      ,     :



&#966; : (  , , , ) &#8594; ( , , , );


,       ,         :



&#966; : (  , ) &#8594; ( , );


,          :



t(S) &#8712; r(S): {(  : 100), (: ), (:  ), (: 5)};


     :



&#961;<&#966;> t(S): {( : 100), (: ), (:  ), (: 5)};


,      ,    .

   



&#961; <   ,  &#8594;  ,  >  


  ,     ,   .



4.   

  ,     ,   .     .

    ,     ,    . (,           .) ,        ,        .

,          ,           .

:

1)  :

)   : | &#963;<P>r |&#8804; |r|;

)   : | r[S'] | &#8804; |r|;

)   : | &#961;<&#966;>r | = |r|;

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

    ,    ,   ,          ;

2)  :

)   : &#963;<P> &#963;<P>r = &#963;<P>;

)   : r [S] [S] = r [S'];

)         .

  ,           -     .

    ,  ,     ,       .

              ,  .

  ,   ,   .  ,        ;

3)  :

)   : r&#8838;r &#8658; &#963;<P> r&#8658;&#963; <P>r;

)   : r&#8838;r&#8658;r[S'] &#8838;r [S'];

)   : r&#8838;r&#8658;&#961;<&#966;>r &#8838; &#961; <&#966;>r;

           , . :    r  r      ,  r &#8838; r,         ,      .



  5.  .  



1.  , , 

      ,   ,       .  -  ,                  .       ,   ,   ,      ,    .

1.      r(S)  r(S)    r(S),      r(S)  r(S),              .

 ,     :



r(S) = r(S) &#8746; r(S) = {t(S) | t &#8712;r &#8746;t &#8712;r};


 ,     :

   :

r(S):


r(S):


 ,       ,     .       r(S),     :



r3(S) = r(S) &#8746; r(S):



,   S  ,    .

2.           .       ,         ,       r(S)  r(S) (      ).

       :



r(S) = r(S) &#8745; r(S) = {t(S) | t &#8712; r & t &#8712; r};


       ,    :

r(S):


r(S):


     r(S)  r(S)    r(S),       :



r(S) = r(S) &#8745; r(S):



,         ,     : {b, 2}.        r(S).

3.          . -,  ,     ,     ,          ,    , . .:



r(S) = r(S) \ r(S) = {t(S) | t &#8712; r & t &#8713; r};


     r(S)  r(S),      :

r(S):


r(S):


        . ,   ,   r5(S)    :



r(S) = r(S) \ r(S):



    ,     ,  .



2.      

                  ,    .

        ,   -    ,       ,   .

,    .   ,                 ,   .

        r(S)  r(S),        r(S),        ,      . ,          ,     , . , ,    -,      ,  .

           :



r(S) = r(S) &#215; r(S) = {t(S &#8746;S) | t[S] &#8712; r& t(S) &#8712; r};


 ,     ,  .     r(S)  r(S),      :

r(S):


r(S):


 ,      ,     S  S .  :

1)  {a, 1}  r(S)    {1, x}  r(S);

2)  {b, 1}  r(S)     {1, x}  r(S);

3)  {c, 3}    {3, z}.

,      r(S)      .  , r(S)       :



r(S) = r(S) &#215; r(S):



  :  S      S,    S,        ,     .

 ,         .

  r   :


  r  :


       :


,   -     ,    ,  .

        .  , ,       ,   ,            .         ,    -,           ,           .

 ,           :



r(S) = r(S1) &#215; r(S) = {t(S&#8746; S) | t [S] &#8712; r & t(S) &#8712; r}, S &#8745; S= &#8709;;


  ,  ,       ,     .

    r(S1)  r(S),       :

r(S):


r(S):


,  ,       r(S)  r(S), ,     .     r(S)        -. :



r(S) = r(S1) &#215; r(S):



    r(S)       ,            .

,      ,       .

 r    :


  r :


        :


           .



3.   

      , , ,       .

1.  ,      ,    :

1)   :



|r&#8746; r| &#8804; |r| + |r|;


2)   :



|r &#8745; r | &#8804;min(|r|, |r|);


3)   :



|r \ r| &#8804; |r|;


4)    :



|r &#215; r| = |r|  |r|;


5)    :



|r &#215; r| &#8804; |r|  |r|.


 ,   , ,            . ,   ?     r  r     -.   ?    ,      ,    . ,   ,       ,  ,       ,    ,     , . . ,   (  -).    {b, 2}   .

           -.     :       ,      .  ,          -,      .         ,     ,          -   -.

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

,                 -. ,    ,          ,    .

, ,     ,          . -   ,  -    ,       .

2.  :

1)   : r &#8746; r = r;

2)   : r &#8745; r = r;

3)   : r \ r &#8800; r;

4)     (  ,   );

5)    : r &#215; r = r.

,          ,          . ,  ,     -    ,   .          ,     .

3.  :

1)   :



r &#8746; r = r &#8746; r;


2)   :



r &#8745; r = r &#8745; r;


3)   :



r \ r &#8800; r \ r;


4)    :



r &#215; r = r &#215; r;


5)    :



r &#215; r = r &#215; r.


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

4.  :

1)   :



(r &#8746; r) &#8746; r = r &#8746;(r &#8746; r);


2)   :



(r &#8745; r) &#8745; r = r &#8745; (r &#8745; r);


3)   :



(r \ r) \ r &#8800; r \ (r \ r);


4)    :



(r &#215; r) &#215; r = r &#215; (r &#215; r);


5)    :



(r &#215; r) &#215; r = r &#215; (r &#215; r).


   ,      ,   .     ,       .   ,  , ,           -.           .

         :   ,    ,   ,      ,     ,           ,        .



4.   

       , ,     , , ,      (       ),     ,       .       .

            .

    -            .

    :



r(S) &#215; r(S) = &#963; <P> (r &#215; r), S &#8745; S = &#8709;;


 P = P <S &#8746; S> ,       -.           r  r   .

 ,            .     ,         .

  -,      ,   .

      ,   .

     r(S)  r(S)    :

r(S):


r(S):


          P = (b1 = b2).

r(S) &#215; r(S):


,  ,     ,  ,     ,        P = (b1 = b2).

                  . .

        ,      -.            ,       -.

,           ,  .   -     - Null-.

 ,                 .

          ,    .

     r(S)  r(S)     S  S,     .

    ,         ,             :



1) r (S&#8746; S) &#8788; r(S) &#215; r(S);


r (S&#8746; S)        r(S)  r(S).           ,        ;



2) r(S) &#8788; r(S&#8746;S) [S];


 ,     ,        - r(S).   r(S)   ;



3) r (S) &#8788; r(S) \ r(S);


 r(S)      -,  r(S)    ,  .  ,     ,   r(S)        -;



4) r(S)&#8788; {&#8709;(S)};


{&#8709;(S)}       (S),    ,    Null-.       r(S);



5) r (S&#8746; S) &#8788; r(S) &#215; r(S);


      ,    - (r(S))       - S Null-, . .   ,         r(S),    ;



6) r(S1) &#8594;&#215;  r(S) &#8788; (r &#215; r) &#8746; r (S &#8746; S);


     , ,   ,     - r  r   r (S&#8746; S),    .

              ,          . :

1)           :



r(S) &#8594;&#215; r(S) &#8788; (r &#215; r) &#8746; [(r \ (r &#215; r) [S]) &#215; {&#8709;(S)}];


2)               :



r(S) &#8594;&#215; r(S) &#8788; (r &#215; r) &#8746; [(r \ (r &#215; r) [S]) &#215; {&#8709;(S)}];


       ,  .

1.  :

1)     :



r(S) &#8594;&#215; r(S) &#8800; r(S) &#8594;&#215; r(S);


2)     :



r(S) &#8592;&#215; r(S) &#8800; r(S) &#8592;&#215; r(S)


,  ,           ,             , . . :

1)     :



r(S) &#8594;&#215; r(S) = r(S) &#8594;&#215; r(S);


2)     :



r(S) &#8592;&#215; r(S) = r(S) &#8592;&#215; r(S).


2.          ,      -        , . . :

1)     :



r(S1) = (r &#8594;&#215; r) [S];


2)     :



r(S) = (r &#8592;&#215; r) [S].


 ,  ,    -        ,   ,       (r &#215; r)      S, [S].

    -          (r &#215; r)       S.

            .      r(S)  r(S)    :

r(S):


r(S):


   - r(S)    {d, 4}.  ,          -.

    r(S)  r(S)   : P = (b1 = b2).         :

r(S) &#8594;&#215; r(S):


,    ,       ,         , . .     -.      ()  -      Null-.

        ,   ,  P = (b1 = b2)  - r(S)  r(S)   :

r(S) &#8592;&#215; r(S):


,            ,      -.  ,    ,    r(S) ,   {2, y}.        ,    ()      Null-.

, ,       .

   .         ,     ,          .

             (         )     ,    -.         :



r(S) &#8596;&#215; r(S) = (r &#8594;&#215; r) &#8746; ( r &#8592;&#215; r);


       ,          .     -      (           )     :



r(S) &#8596;&#215; r(S)= r(S) &#8596; &#215; r(S);


      ,  ,      .    r(S)  r(S)   .



r(S)


r(S):


     r(S)  r(S) : P = (b1 = b2),     .

       r(S)  r(S)   P = (b1 = b2)   :

r(S) &#8596;&#215; r(S):


,  ,                  .            (, r(S)),    (, r(S))  -.



5.  

,      ,     , ,     ,        :   , ,     , , ,     .           .

1. ,             .  .

     :



r(S) &#8745; r(S) = r \ r \ r


,     :



r(S) &#8745; r(S) = r \ r \ r;


2.   ,           .                 ,    . ,   ,             . ,  ,       ,   .

         .

     r(S)  r(S)      .  :

r(S):


r(S):


    ,           :

r(S) &#8788; r(S) &#215; r(S):


       r(S)  r(S)   P = (b1 = b2)   :

r(S) &#8788; r(S) &#215; r(S):


   ,    r(S)  r(S).

,         , ,  ,     .

  ,          .



r(S) &#215; r(S) = { &#961; <&#981;> r &#215; &#961;< &#981;>r}[S&#8746; S],


 E   ;



E= &#8704;a &#8712;S &#8745; S [IsNull (b1) & IsNull (2) &#8746;b1 = b2];




b = &#981; (name(a)), b = &#981; (name(a));


    &#981;  ,     (   &#981;)  ,     .

  E           Null-,     (    )             .



6.   

,                .

        -   :



 ( ,  ,  );

 ( ,  , );

 ( ,  );


  [1 -            ()  . (. . )]   (. . ) ,     .

,   ,           ,      ( )     ( )  ,      -     .

  , ,  ,     ,   ,     .

1.         ,         .                r.



 &#215;  &#8788; r ( ,  ,  , ,  );


      ,      .  ,     ,             , . .:



 &#215;  &#8788; r ( ,  ,  ,  );


2.    ,     ,       .    ,     ,    ,    .



r &#215;  [ ,  ] &#8788; r ( ,  ,  , ,  ,  );


   r,   :



r &#215;  [ ,  ] &#8788; r ( ,  ,  ,  ,  );


,         :     .    ,       r,    :  [ ,  ], . .,         ,                 .

 ,    ,   ,   , . .        -  .

    ,   ,           .

3.       <  = >    r,    .      ,   ,    [ ,  ,  ],        ,            .

:



(&#963;<  = > r) [ ,  ,  ] &#8788; r ( ,  ,  ,  ,  ).


  ,   r,     (    ),       .         , , ,    .             ,      .

4.        r,                 .



( \ r) [ ,  ] &#8788; r ( ,  ,  );


  r,             ,     .

,  ,                ,     . .



  6.  SQL


    .

 SQL,      ,    1970- . (   1974 .)      IBM         .     SEQUEL (Structured English Query Language)       . ,           SQL,       Structured Query Language,      . ,                . ,  ,          , ,        ,  :

1)       ;

2)       (    );

3)     ;

4)     ,    ;

5)        .

               :    ,         .

   SQL     ,    .

                    ,       .  -      SQL,           .     .

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

                   ,         .               ,         SQL.               (    ).                  SQL,           .

,                 ,     , ,    ,            , , ,   .



1.  Select      

      SQL   Select,              .

 Select     ,    .                ,    ,     .

,  ,               .               (     ),       .

,     Select.           :



Select 

From 

Where  ;


        ,          .       Select    :



Select - 

From - 

Where -   


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

 ,         .

 ,        Select:

1)      ;

2) ,     .   ;

3)           Select    . (      ,     ,       ; ,    ,        ,    .)

 .

     r,       :


        Select:



Select ,  

Fromr

Where  > 200;


      :



(, . ).


(                   .)



2.      


    ,          Select      ,   .

 ,          ,     Select         ,   -  .

,           .



1.  .

    SQL   Select  :



Select 

From 

Where ;


  ,    ,    *.              .

   (     )         not (), and (), or ().       .

 .    :



 (  , ,  , , );


,    ,     .

  Select  ,    :



Select *

From 

Where    = 100 and  = 6;


,                .



2.  .

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



Select  

From ;


        -,          Select.

    ,          .           ,         distinct.         .      Select    :



Selectdistinct   

From ;


  SQL           [].           :



Select [distinct]   

From ;


            - ,   distinct   ,    , . .     .

 ,       .       :



 (  , ,  , , ).


    Select:



Select  , ,  

From;


,   ,       .    distinct  ,     .    ,   ,   .      ,    ,     .



3.  .

         .       :

1)      Select   ,   ;

2)         as;

3)     as     ,      .

 ,    , ,    ,    :



Select  1 as    1, 

From ;


     .       :



 (  , ,  ,, );


        ,               .

,     Select,    :



Select  as  , ,  ,  as , 

From;


 ,        ,         .



3.      


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



1.  .

             Select,     -    -.       Select     Union.   , ,            :



Select    1

From  1

Union

Select    2

From  2;


 ,                   .     ,      ,      .

,   ,         .        ,     Select.

  ,    Union         . ,   ,        ,   Union        Union All.           :



Select    1

From  1

Union All

Select    2

From  2;


          .

            Select,            :



Select    1

From  1

Union [All]

Select    2

From  2;




2.  .

              (     ,  ,   ,   ,  , ,  ). ,          .

      Select,     (    ),       , .     .

,        (R  R),    :

R (, ) 

R (, );

        in,      (    )  .

,    ,            :



Select *

From R

Where in

(SelectFrom R);


 ,  ,           .           R. ,      ,    ,         R,        R.  ,   ,      ,    ,    .



3.  .

    ,         .  ,      Select,  ,      .

        ,         ,   not in,         (      )    .

, ,     ,       (R  R),  :

R (, ) 

R (, );

 ,        .

 ,           :



Select *

From R

Where  not in

(Select  From R);


 ,         R,         R.    ,   ,    R   R.   ,         (     )   ,       ,  .

    ,   ,   .        ,  , .         .



4.   .

     ,    -           .             ,    cross join,         .

 Select  ,        ,       :



Select *

From Rcross join R


 R  R    -.  cross join ,        (,         *),      R  R.

          .         .  :



r(S) = r(S) &#215; r(S) = {t(S &#8746; S) | t[S] &#8712; r& t(S) &#8712; r}, S &#8745; S= &#8709;;


    ,        .         SQL  ,   -      .         ,          , . .        as,    .

 ,        ,      . ,    :



R ( A, B),

R (B, C);


 ,   R.B  R.B   .     Select,         ,    :



Select , R.B as B1, R.B as B2, C

From Rcross join R;


 ,     as,     ,       -.



5.   .

     ,          , ,     ,   .        ,    ,          .           .

,       ,    :



r(S) &#215; r(S) = &#963; <P> (r &#215; r), S&#8745;S = &#8709;.


       ,    - S  S   .

            inner join,           .

 Select          :



Select *

From Rinner join R;


,   , R  R    -.

        -.



6.   .

   ,         . ?          -    .         -,             .

            ,       ,      , . .  inner join.      Select            -    ,         on.    ,    ,     ,     .

   Select      :



Select *

From  1inner join  2

on  ;


 .

   :



R ( A, B, C),

R (B, C, D);


          :



Select, R.B, R.C, D

FromRinner joinR

onR.B = R.B and R.C = R.C


       ,      Select,  ,    .

 ,              .       ,        ,  ,       ,     .

,      (R.B = R.B and R.C = R.C) ,      Null-  .        .



7.    .

     SQL              inner    left outer.

 ,         :



Select *

From  1 left outer join  2

on  ;




8.    .

                   inner    right outer.

, ,      SQL       :



Select *

From  1 right outer join  2

on  ;




9.    .

         ,      ,           inner    full outer.

 ,        :



Select *

From  1full outer join  2

on  ;


 ,       SQL    ,                .



4.  

      ,              (, ,    SQL-. ,        ,                  -      . ,        ,    .

      ,      -  :



 ( ,  );

 (  , , , );

 ( ,   , );


 SQL-,       ,            .         ,                 .

  ,  ,   ,      Null-    .      ,                   ,   .    ,         ,      ,      .

,         , ,     (     ),     .        ,             .

,         ,     ,       .

-,     Trim,  Trim (), . .     .    ?      ,        , . .,   , ,  : Trim ()  Trim (-),          .

 -,     Left,   Left (, ), . .     ,    ,   , .     ,  ,          .

,  :



Left (, 1) + . + Left (, 1)


  . ..              .

,     .

     ,     ,  :



Select   , 

From

Where  = (Select 

From

Where  =  )

as  ;


   as ,         .          .

,    :



Select 

From

Where  =  ;


      ,     , . .   .

,          ,         , . .    .

               (     ),   ,   , . .       .

   ,    .



Select.   ,

Trim () +   + Left (, 1) + . + Left (, 1) + .as,   . 

Frominner join

(

Select   , 

From

Where  = (Select 

From

Where  =  )

) as  .

on.    =   .   .


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

              .   ,    ,        .      ,     .

 ,     ,        Null-    ,   ,   λ (Trim () +   + Left (, 1) + . + Left (, 1) + .as ),     , .



  7.  


   ,        ,       ,    .

 ,        ,   :

1)  ;

2)  .

             -    .

               ,    .           ,       .



1.   

 ,   ,     .

(       ,     .)

       ,       , . .     (     ,         ).

        , ,     :

1)  ;

2)  ;

3)  ;

4) ,    ;

5)  .

            ,     -    .

 .

1.     :

1) Integer.        ;

2) Real,    ;

3) Decimal (n, m).    .    n   ,     ,  m ,        ;

4) Money  Currency,         .

2.          ,  Logical.

3.        (  , ,  ):

1) Bit (n).       n;

2) Varbit (n).    ,    ,   n ;

3) Char (n).       n;

4) Varchar (n).   ,   ,   n .

4.           :

1) Date    ;

2) Time   ,   ;

3) Date-time   ,    ,  .

5.                 ,   GUID (  ).

 ,             .  :     integer    (bigint)   (smallint)  .

      GUID.            .             NewId ().        New Identification,         .             .

GUID- ,  ,     , . .    -    .

 GUID-            .

    GUID             .

         Counter (x, &#8710;x),         .  x   ,  &#8710;x   .

   Counter   .

 ,              . ,    Counter  ,          ,    ,        .  ,             !       .   ,              .

        .      ,         .         ,    . , ,   ,  ,        ,      ,     .  ,   .    ,  - ,     :


       .

          ,      .        :


 ,           ,       ,    .            ,             .

    , . .    .

 ,                 100 . ,   :



1  = 365  * 24  * 60  * 60  < 366  * 24  * 60  * 60  < 2 .

1  > 2 .

2  / 1 / = 2  > 2  > 100 .




2.   

        ,           ,         .                   .

 ,         , . .         .

   ,         :



Create subtype 

Type  

As ;


,         ,   ,             ,  , , ,     ,               .     ,     .

      Create,   .        , ,    .           .          ,      .  ,     :



Create subtype 

Typedecimal (6, 0)

As  > 0.


    decimal (6, 0)?    ,  ,             .             .

 ,     ,     , . .  ,     not, and, or       .                   ,        , . .           .                .

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



Drop subtype  ;


  ,  ,       .



3.   

             ,    , .          ,          ,    .

                  Create.             default,    .  ,         ,    :



Create default 

As ;


,              ,         . , ,  ,            ,        .

 ,        Create    Transact-SQL,    Microsoft SQL Server.

,   ?  ,      ,    ,    .            .

   .        ,           -.            ,   .       ,                   .       Create   ,      -.



Create default  

As 9999-12-31 23: 59:59


      Transact-SQL,         (  , 9999-12-31 23: 59:59)      .              . ,    ,        ,   .

     ,     ,     ,   .          ,  ,      .   Drop      :



Drop default ;




4.  

        (    )    .        ,      ,  ,  . ,   ,      ,   .   ?  ,         ,          .        .

  ,  ,      , ,     .       .


,  ,            ,            .       ,               .

 ,     ,        ,   ,          ,  ,  .

   , ,         ,          - .            Convert,          . Convert        .    :



Convert ( , );


,     Convert,       ,      .

 .       2*2,          4,   .        Convert:



Convert (Char (1), 2 * 2).


 ,  ,     Convert      .



5.  

          .        .        ,     ,        .

,     .

       ,      ,         .    ,     ,    ,  ,            .  :



t = t(S) = {t(a) | a &#8712; def( t) &#8838; S}   ,

t(S) [S ] = {t(a) | a &#8712; def (t) &#8745; S}, S &#8838; S     ;


,         .

,       ?

      S      , ,    ,     :



Inv < K &#8594; S > r(S):

Inv < K &#8594; S > r(S) = &#8704;t, t &#8712; r (t[ K] = t [K ] &#8594; t(S) = t(S)), K &#8838; S;


,    Inv < K &#8594; S > r(S)   ,      t  t,   r(S),      ,                  S.  ,   ,   , ,    .

   ,    ,   .   ?   ,           .

   ,        ,        . ,   ,  :

      ,            , . .      .

,          .    :

1)     ,       .

,           ,         ;

2)     ,      . ,            .  -           ,   , . .  ,    ;

3)       . ,      .     ,     ,  ,  ,      .        ,         .        ,     ;

4)      ,        . ,         .  ,           Null-.

           primary key      ,     ;

5)       ,    .

         ? -,     ,    ,    ,    . , -,        Null-,         .

            candidate key    ,       ,   ,      ;

6)     ,    ,              -   .

  ,     ,   ( ) .  ,   ,  .

        foreign key,           ,   ,       references ()        ,        .

          ,    ,        .



  8.   


          .         ,       ,   , . .   .



1.  

   ,         ,    .      ,     , , ,          .

        ,       . :

1)   {}.          .    ,   , ,  ;           .               ;

2)   [].     :          .        ,   ,     ,  ,   . , ,    ,      ,         ;

3)   |.     ,     .     ,        , ,   ;

4)   . ,    -  ,         ;

5)   ,...      ,   .       ,..,      ,     .

  ,        :



 [, ] 






,.. ;




2.        

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

  ,        ,      check.

      : on update,    ,  on delete,    .   ?  ,        ,     ,     . (     .)

           Create,          table (). , ,               ,     ,      .

,      ,     :



Create table  

{  

   

check (  )

{Null | not Null}

default (  )

},..

[  

as ( )

],..

[,check ( )]

[,primary key ( ,..)]

[,candidate key ( ,..)]

[,foreign key ( ,..) references   ( ,..)

on update {Restrict | Cascade | Set Null}

on delete {Restrict | Cascade | Set Null}

]


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

      .

              , ,   ,   Null-    .  ,          , . .       .      ,    .        :



Create table  



integer

check (1 <=  and  <= 5;


  1 <=  and  <= 5             , . .   .

  Null- (Null | not Null)  (not Null) , ,  (Null)  Null-   .

     ,      Null-   :



Create table  



integer

check (1 <=  and  <= 5);

Not Null;


,         Null-,            .

   (default (  ))      ,         .

 ,        Null-,   Null-      .

         .

    ,             .       .   ,         .  .



Create table  

 

     

check (    )

not Null

default (  )

 .  

     .  

check (    .  )

not Null

default (  )



 .

as (  *  .  )


     ,    ,    .     ,     ,    .

   ,      ?      ,     ,      ,        .

 ,      :



Create table  

min  

    min  

check (   min  )

not Null

default (  )

max  

    max  

check (   max  )

not Null

default (  )

check (0 < min   and min   < max  );


 ,            .

       .         ,      : ,   .

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

    ,   ,       ,      .

, ,       .           ,     .          Drop.           :



Drop table  ;




3.    

            .

       , ,   ,           ,    .

                 (           :        ).

  ?  ,    :

1)       ;

2)       , . .    ;

3)      , . .   ;

4)        .

,               .            .

,       :

1) , . .      ;

2) , . .              .

        Create   .    .           , . .   .

     :

1)    .

,   , . .  integer          ;

2)   ,   ,    .

,      ,      , ,             check, . .:



check (1 <=  and  <= 5);


3)        Null-,       (Null) , ,  (not Null) Null-.

    ,       , . .    .

      ,    . ,           ,        , . .,          ,   .

          ,      ,  :



check (0 < min   and min   < max  );


, ,              .     ,          (primary key)   (candidate key) .

,  ,    ,        ,     .



4.   

,           (foreign key).      ,             .         .

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

      ?     ,            -   ,        Null-  - .

  ,   ,  .

,        ,        ,       .       ,      .

, ,           ,    ,                    .      ,          .    ? ,                   , . .    .

                  ,          (. .,     , on update)        (on delete).  ,                . ,         ,             !

,      ,        ?  .

1. Restrict,   .       ,             ,                    ,           , . .  Restrict    - ,      .

     .

   :

 


 


 ,     (2, )  (2, )    (, 2)  ,   (3, )      (, 3)  .  (100, )    ,  .

     (, 1)  (, 4)       ,             .

    ,       :



Create table 

Primary_key

Integer

not Null

primary key (Primary_key)


Create table 

Foreign_key

Integer

Null

foreign key (Foreign_key) references  (Primary_key)

on update Restrict

on delete Restrict


2. Cascade,    .                Cascade,                       .

 ,        .          :

 




 


,   ,       ,     (, 2)   (, 20), . .   :

 


                      Cascade, . .        :



Create table  

Primary_key

Integer

not Null

primary key (Primary_key)


Create table 

Foreign_key

Integer

Null

foreign key (Foreign_key) references  (Primary_key)

on update Cascade

on delete Cascade


             ?    :

 


 , ,  Cascade             .

3. Set Null,    Null-.                   Set Null,                 Null-      ,  Null- . ,  ,    .

 ,     .      :

 


 


  ,     Null-, ,  Set Null     .

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

 


   ,              Set Null,     :

 


  (, 1)       ,         .

        Set Null        :



Create table  

Primary_key

Integer

not Null

primary key (Primary_key)


Create table  

Foreign_key

Integer

Null

foreign key (Foreign_key) references   (Primary_key)

on update Set Null

on delete Set Null


,  ,          ,    on update  on delete    .

   ,               ,        , . .      .                 .

,              ,         -  ,    .

         -     ,               .  ,          .



5.  

         .

   .

     ,        -       ,     .

        :

1) .

          ;

2) .

       ,    .

,       ,            . :

1)     ,       .

 ,  ,    ;

2)     ,     .

 ,   ,      .

 ,       , . .   ,  :




  Primary key    , Foreign key   . ,    ,   Primary key  ,      , . .  ,    Foreign key  ,     .    20       -.

        .              .

,                .    ?      , . .  :



10 = (10) = 2;


             Create,       index.     :



Create index 

On   ( ,..);


       ,..,      , . .       ,   .

    ,   index    unique,            :



Create unique index 

On   ( );


    ,       (  []),          :



Create [unique] index 

On   ( ,..);


        ,   Drop,    :



Drop index {  .  },.. ;


        .  ?         ,           ,   .



6.   

             -     .

            ?  :

1)  .

          ;

2)   .

         ,  ,             -   ;

3)  .

            ,              .

,       .        ?         ,    .       :

1)       .   Insert.    :



Insert into   ( ,..)

Values ( ,..);


  ,..,       ,  ,           .               .

  into       Insert     ,         .

  Values      , ,       ;

2)         .    Update,         .             :



Update  

Set {    },..

Where;


,        Update    ,     .

  Set    ,        ,   ,     .

       ,       ,...

      Where  , ,        ;

3)  Delete,   -    .             :



Delete from  

Where;


  from      Delete    .             ,     - .

        Where ()  ,    ,       .



  9.  



1.   

 ,       ,    ,     .

    ,   .

   ,     -   .      :



 (  , , , , , );


        (     )    . ,           .

,   ,    ,        ,          , ,               ,   .


      -        - ,        100,  ,    ,         (  ,            ).  ,   ,          ,        .

 ,      ,      .

     .

:  X, Y     S,    S    X &#8594; Y ( X  Y).     inv<X &#8594; Y>    ,      S   ,      X,        Y.

      :



Inv<X &#8594; Y>r(S) = t, t &#8712; r(t[X] = t[X] &#8658;t[Y] = t [Y]), X, Y &#8838; S;


,         ,     . ,  ,     ,       -,   ?        ,       -     ( X)        -    Y   ,  Y    X.

 ,      Y  X,  ,  X   Y   Y    X.     X &#8594; Y  X   ,   Y   .

                .

 .


  ,     , . .  Y,     ,           . :



Inv<K &#8594; S> r(S) = &#8704;t, t &#8712; r(t[K] = t [K] &#8594; t(S) = t(S)), K &#8838; S;


       X     K,      ,  Y     S, . ., ,                    .

    :



{  } &#8594; {, , };

{  , } &#8594; {};




2.   

 -       ,            ,       .

        .

         ,       &#9500;,      .              ,   ,    ,  ,    .

         .

.   ,    .

  1. &#9500; X &#8594; X;

  2. X &#8594; Y&#9500; X &#8746; Z &#8594; Y;

  3. X &#8594; Y, Y &#8746; W &#8594; Z &#9500; X &#8746; W &#8594; Z;

 X, Y, Z, W      S.           ().

1.         :  : X     X.       .     .

 ,   ,   ,   ,  .        .

2.         :  X   Y,   :   X  Z     Y.         .

3.         :   X      Y    Y  W     Z,   :   X  W    Z.

    ,    W: = 0.     :



X &#8594;Y, Y &#8594; Z &#9500;X &#8594; Z.


 ,    ,  ,         .         .

  1. inv <X &#8594; X> r(S);

  2. inv <X &#8594; Y> r(S) &#8658; inv <X &#8746; Z &#8594; Y> r(S);

  3. inv <X &#8594; Y> r(S) & inv <Y &#8746; W &#8594; Z> r(S) &#8658; inv<X &#8746; W &#8594; Z> r(S);

    .

1.               Y   X.

,    :

Inv <X &#8594; Y> r(S)     X  Y, :

Inv <X &#8594; X> r(S),      .

  .

2.        .

     :

: X &#8594; Y


 :

: X &#8746; Z &#8594; Y


    X &#8746; Z.     X.        Y.

  .

3.       ,       .

    :

 1: X &#8594; Y


 2: Y &#8746; W &#8594; Z


, ,     :

: X &#8746; W &#8594; Z


    X &#8746; W.      X,   W.   1,      Y. ,   2,      Z.

  .

  .



3.   

  ,    ,       ,      .

   ,   ?

,     ,  ,     ,    ,  ,      .

  ,               .

         .

.

       .

  1. &#9500; X &#8746; Z &#8594; X;

  2. X &#8594; Y, X &#8594; Z &#9500; X &#8746; Y &#8594; Z;

  3. X &#8594; Y &#8746; Z &#9500; X &#8594; Y, X &#8594; Z;

 X, Y, Z, W,       ,     S.

1.          :

 :   X  Z     X.

    ,    ,  .        .

,        ,   ,          .  ,     ,         .          .

2.          :   X    Y,  X    Z,       : X     Y  Z.

3.          .    :   X     Y  Z,      : X    Y   X    Z, . ., ,       .

,                , ,    .

             ,       ,   .

     .

1.   .

 ,     ,  :

1) : X &#8594; X (    );

2)  : X &#8746; Z &#8594; X (,      ,       ).

  .

2.     :

1) : X &#8594; Y (  1);

2) : X &#8594; Z (  2);

3) : Y &#8746; Z &#8594; Y &#8746; Z (    );

4) : X &#8746; Z &#8594; Y &#8746; Z (       ,         );

5) : X &#8746; X &#8594; Y &#8746; Z (,     ,        );

6)  X &#8594; Y &#8746; Z (   ).

  .

3. , ,     :

1) : X &#8594; Y &#8746; Z, X &#8594; Y &#8746; Z ( );

2) : Y &#8594; Y, Z &#8594; Z (      );

3) : Y &#8746; z &#8594; y, Y &#8746; z &#8594; Z (           );

4) : X &#8594; Y, X &#8594; Z (,     ,          ).

  .

    .



4.    

 F(S)     ,     S.

  inv <F(S)> ,     .  :



Inv <F(S)> r(S) = &#8704;X &#8594; Y &#8712;F(S) [inv <X &#8594; Y> r(S)].


,   ,   ,   :        X &#8594; Y,     F(S),     inv <X &#8594; Y> r(S),     r(S).

 -  r(S)   .

      ,    F(S),     ,        . ,  ,      F(S)   ,         .       :

  1.inv < X &#8594; X > r(S);

  2.inv <X &#8594; Y> r(S) &#8658;inv <X &#8746; Z &#8594; Y> r(S);

  3.inv <X &#8594; Y> r(S) & inv <Y &#8746; W &#8594; Z> r(S) &#8658;inv <X &#8746; W &#8594; Z>;

   ,   F(S) ,         .        ,         .          ,    F(S)   F(S).

,    ,              ,  ( +)    ,   .

 ,      ,     ,       .

  ,       (,   !)         .

       ,  :



F(S) &#8838; F(S), [F(S)]= F(S);


    (. . , )       ,   ,      ,    ,  .



X &#8594; Y &#8712; F(S) &#8658; &#8704;r(S) [inv <F(S)> r(S) &#8658;inv <X &#8594; Y> r(S)];


,       ,           .

(      ,             .)



  10.  



1.     

,       ,     , . .          ,    ,       .

               ,          ,   .  ,        ,       ,    ,  .

      ,       ,      .             .

          :

1)    (1 NF);

2)    (2 NF);

3)    (3 NF);

4)      (BCNF);

5)    (4 NF);

6)   ,    - (5 NF  PJ/NF).

(            ,           .)

      :

1)           ;

2)           .

      , . .  ,     ,     ,       (   ,               ).

    ,    ,    ,       .        :

1) , . .         ,     ( ,   );

2) , . .    (     ).

     ,         .                  ,       ,     ,         .               .

            ,   .

     ,      .       .

,  1   .



		 (  , , , , , )


  ,       ,    :



Primary key (  , );


       :



{  } &#8594; {, , };


          .          ,            .


      , . .       {  } &#8594; {, , }  , ,             .          (          ),        ,     , . .  .     (  )                   (. .  -    )  .

,         :  ,        ,   ,      .      ,         .

,          .

 2   .



 (  , , , ),

Primary key (  ).


 (  , , ),

Primary key (  , ),

Foreign key (  ) references  (   ).



   ?             : ,   .          ,   , . .          .       :          ,               .

 ,    ,  ,        .



 ,  ,      ,   ,               ,      .



2.    (1NF)

                      .        ,        .      .

 ,    ,  ,     .

 ,    ,  ,   .

  , ,    .

  ,  :


    , ,     ,  .

   ,   :


  ,  ,    ,  ,      ,  .

       .    ,  ,     :


                :    (1NF),    (2NF),    (3NF)       (NFBC). :  NF       Normal Form. ,  ,      ,       .

           ,     ,        .          .


.            ,           ,        .

         .

,   ,   .

,  1         :



 ( ,   ,  , ,    );




Primary key ( );


,       , . .   ,       :

1)      , . .    ;

2)    , . .     ;

3)         , . .     ,    .

, ,   ,     ,        ,         -       .

          ?

-,       ,  ,      ,      .

 -,     , . .        ,      .

 ,              1NF                .

,  2 :



 ( , , , ,  ,  ,  );

Primary key ( );


 ( , );

Primary key ( , );

Foreign key ( ) references  ( );


,   ?          ,       ,   ,      .

 ,                   ,      . ,   ,         ,   .

, ,   ,         ,     .     ,       .             ,       ,     :     , . .    - ,       .            ,    ,   ,   ,      , . .            ,      .  ,      .                    ,      .

,                   .         ,       .



3.    (2NF)

        ,  2NF.

  ,       ,      ,     .

.                ,        ,  ,         .

         ,    -     .

          -   .

 ,                 , . . ,       ,      ,    .

,      (  )      .    ,        ,         .

,      ,         .

,  1  :



 ( ,  ,  . ,    );

Primary key ( ,  );

 ,     :

{ } &#8594; {   };


  ?           ,          .   ,          ,  . ?  ,              ,  ,     , . .    . ,      ,      , ,   ,             .

 ,        ,     , ,  ,           ,     - .

 ,   ,  ,     ,   . ,   ,    2  ,               :



 ( ,    );

Primary key ( );


 ( ,  ,  . );

Primary key ( ,  );

Foreign key ( ) references  ( );


   ?                 .          .

       .            ,      .       .          ,     ,          .

 ,    ,    ,          .

           (   )   .     .



4.    (3NF)

  ,    ,     ( 3NF).      ,       ,          . ,     ,        .

.                ,                 .

 , ,    ,  ,      ,   .           ,          ,    .

        .    : ,      .

,  1   :



 ( , , , ,  , );

Primary key ( );


 ,         :



{ } &#8594; {};


,  ,  ,  ,           , . .   .

           ,  ,           ,       .

,            ,       ,  ,  .

   ,      :

,  2   :



 ( , );

Primary key ( );


 ( , , , ,  );

Primary key ( );

Foreign key ( ) references  ( );


,   ,                    .

,         , ,             .         ,      .

           ,     .

   ,            .  , ,              .

            (. . ,     ).       .



5.      (NFBC)

            .               (  3 NF).     ?       :

.             ,       ,              ,            .

 ,               ,    ,     .

 ,       ,         .           ,  ,            .       ,    , ,      ,      .

  ,       ,             .

    ,                   ,     .      ,                       .

                ,       ,    .                 .            .          ,    ,          ,  .

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

        ,    .



6.   

       ?

               .

        .  ,       :



              .

           (         ). ,       ,  ,                (      ).

          ,              .           ,    ,   ,      .

              ,        ,  .

   ,   ,           .



  11.    


                   .     ER-,  ER     Entity  Relationship,        .

     ,    .

       .

            - .                    .  ,      ,   .

         .

        , ,   .       .       ( ),       .

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

         (     ), . .     ,       -  .              ,   .

 ,       ,       UML.

 -  UML ( Unified Modeling Language)    ,        (     ).

, UML     :  ,  , -, ,      . .

,  ,    ,  UML       .       ( ),       .       ,        ER-.

   ,          ,    ER-,  - ,     UML,   ,  . ER-   UML,    , ,  .   ,    ER-        ,  ER-    ,         .

 UML   .     ( , , )  .  UML     -    ,       ,    ,        .        ,        ,      ER-     .

,       UML     ,     .               ,       .

(         .)



1.     

           ,   .

       (  )   (. .  )      .       .

 (multiplicity)  , ,                - .

             . ,  1   ,             ,              .   0..1   ,            -   ,          .    .

,           :

1) 1         ;

2) 0 1     ,            ;

3) 0 &#8734;      . , ,  ,   ;

4) 1 &#8734;        .

          .


  ,   ,      , ,   ,     -  (   ) .

       .  :

1) 1 : 1        , . .    -   ;

2) 1 : 0 &#8734;        .      1 : ̻.    ,   ,      ;

3) 0 &#8734; : 1           ;

4) 0 &#8734; : 0 &#8734;        , . .       ;

5) 0 1 : 0 1   ,        , ,   ,        ;

6) 0 1 : 0 &#8734;   ,      ,       ;

7) 0 &#8734; : 0 1   ,   ,      ,       .

  ,      ,        ,            .



2. .  

  , ,       .

     .          .     :

1)  ;

2)  ;

3)   .

                  .

1.  .

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

 ,  ,    (     , . .   , ,      ).

           ,        .     ,        ,   ,       .

2.  .

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

 ,   ,              , . .          ,                   .

3.   .

           ,        .  ,    ,     ,  ,    ,   ,       ,             .

     -  , . .               . ,               ,   ,       ,         .



3.    

      ,      .  ,       .

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

                , ,        .  ,                ,      .

     ,    :

1) PK          (primary key);

2) FK          (foreign key);

3) K        / , . .   ,                     .

 ,      PK  FK     .     FK  K    -      .

,     ,        -   . , ,           .

     .

1.   &#8704;PK (PK |&#8594;K);

    |&#8594;   , . .     :  ()    PK     ()     K   , , ,        .

      ,               .

    ,            .

   ,   ,       . ,      :

1)  .

           ,            (  )    .

      ,           ;

2)   .

            ,             (  )    .

 ,     K       PK.     PFK         PK   ,     PK         PK   ,     .

2.   &#8707;PK (PK |&#8594; FK);

      :        ,            .

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

    , , ,         ,     .

        .  ,      :

1)  .

            ,  Null-         ;

2)  .

            ,  Null--         .

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

,               .


,  ,    ,  ,    (not null) &#8594; 1.

  ,        ,  ,   .   ,         ( ,  ,         )    (  )      .     - ,       Null- (  FK: null),         .

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



  12.   


,    ,      ,    ,     ,          ,      .

 ,   ,     .



1.   

      ,   ,      .

  (  )        .

           .

   (   )          .

      ,     .

          (            )               .           .

 ,    ,   ,              ,         , Null-           .

  ,                   .           .

 ,         ,       ,    .

    ,       ,     .

   :


      :


 ,     ,    .      , ,    ,       .        :


   ,    .          :           ,    ,     .              .   ,        :         .               .

,       ,    ,    :


,  ,           .



2.   

                 .

             ,         ,      . -            ,    .

        ,           (    ,   ,     ).

,              ,      .                   ,           .         .

    (  ,     )          ,           .  ,    ,   ,       .            .

     ,               .

        ,                        . ,     ,  ,          .

     ,     ,       .

   :


      :


   ?   ,   ,     ,      .   0 &#8734;        ,     . ,   ,      -   ,      .

, ,  ,          .        ,     ,    .   .

:


:


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

 ,   ,  :


,         ,           .



3. 

   ,       ,     .     ,       .

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

,        ,          .

, ,  ,             .   ,  ,      .

  ,          ,    ,       ,     ,     .

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

      ()     .

  .

, ,     ,        :


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

      ,           .        ,   ,         (  ,       ,      ,     ).

,       :


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

  ,                 .                  .   ,    ,       ,     ,   ,   .

 ,              .      ,      ,  ,         .        ,   ,         (,    ).         ,   ?   ,                 . ,              ,     .     ,             . ,       (        ,   )         .

            .      (   )         .      (   )          .           .

          ,          .

     ,          ,        .

,   ,     ,   .


,      .

-,      , ,       ,     ,     ,       ,     .     .

-,  ,        ,             .          .  ,        Null-,         .

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

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

, , ,   ,          ,     .

,                      , . .                . ,  ,     ,     Null-,          .  ,           .

     ,            .         . ,        ,   ,                    (    ).      ,          (    Null-  : Null),          ,  ,  .



4. 

      ,   ,    .     .

,                (      ,              ).

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

 ,           .

        ,  ,            . .            .

           .               (. .      ): ,   .

,   ,           ,    .


,    ?

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

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

                cascade. , :



Create table 



primary key ( )

foreign key ( ) references  ( )

on update cascade

on delete cascade


Create table 



primary key ( )

foreign key ( ) references  ( )

on update cascade

on delete cascade;


 ,  ,      ( )     ,      ( ) .  cascade    ,                    ()   .                       .

 ,         ,      ( )       ,        .

     ,    ,     . ,   -:

   ,         :


   :


    :


    :



, ,  ,          ,    , . . ,   .           .

  ,              . ,     1       ,   ,     ( , ,   )          (  ).

      ,        .



5. 

    ,      ,      .

 (,     ,  )            ,        . .

       ,    ,  ,   ,     , . .                .              .

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

         (     ).  (  )  , :

1)       ;

2)       .

 (,     )                       .

  ,            , . .       .

    ,      ,    ,    . ,      :


,     .

    ?

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

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

, ,       ,       (,     ,  )   ,           cascade.

,      :



Create table 



primary key ( ,  )

foreign key ( ) references  ( )

on update cascade

on delete cascade


Create table 



primary key ( ,  )

foreign key ( ) references  ( )

on update cascade

on delete cascade;


 ,            .        cascade,        .

            .    ,     ,   ,         .

      :


    :


        :


,   ,       ,        ,         .



6. 

        ,       .     ,                .

,             .         :

1)    ;

2)    .

,                   ,    Null-      .                ,    Null-      .

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

               ,              .

,   ,      ,   ,    .

        (    ).  ,  ,          ,      .

,      :


,        ?

-,               ,          Null-.   , Null--      ,   ,         , ,      .   ,                 .         .            ,         .

-,                ,             Null-. ,   ,  ,    ,         . ,  ,      ,                .           ,          .

 .     ,                .



Create table 



primary key ( )

foreign key ( ) references  ( )

on update cascade

on delete set Null


Create table 



primary key ( )

foreign key ( ) references  ( )

on update cascade

on delete cascade;


 ,           cascade,          .       (  cascade)       set Null.       :  -            ,               Null-.



7.  

                        ,     , . .      .

,  ,      ,       ,         :


              ,        .  :

1)     K          ;

2)   ,   FK    Null-           .

         /  ,     .

   ,    :


     .



  13.      



1.   

       ,    ,  ,         ,        .

  80- . XX .          ,    .            ,      .      ,      ?              . ,      ,  ,  -      .          (       ,  ),     ,       ,     .            .             .            .  ,              .

                 ,    .                ,   .

    -   .        1960  1985 .        .   ,    1985 .,      1987  1990 .        .

        :

1)         ,    ,              ;

2)               ,   ,  , ,     ,      ;

3)        ,         ,         . .;

4)                , -,      ,   ; -,   ,  ,     .

      ,        :

1)          , , , , ,    ;

2)   ,    ,         - .

          , . .            ,     ,   ,     .        -.

    :

1) , , ,       ;

2) , , ,          ;

3)      ;

4)            .

        ,      .               .             .

        .     .

1. .

 ,  ,           .

        .                 .                  .

        .      ,      .    ?    - ,       , ,    .    ,     .

2. .

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

3.   .

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

4.   .

 ,   ,   .      ,     .

           ,    ,           .

5. .

 ,  ,    ,       .

      .

6. .

 ,  ,        .      ,               .                  ,        .

                      ,     .

7. .

  ,   ,  ,       .     ,     .         ,  ,        ,             .

      :  ,    .         ,  ,  ,  ,    ,     .



2.   

           .     ,      ,    ,     ,     ,      .

         .

     .

        :

1)  ,    ;

2)  ;

3) ,   ;

4)   ;

5)  ;

6)  .

     .

  (    , . .   )              .

      ,    ,  ,        .

,   ,   :            ,   ,         .  ,       ;

         , . .              .

  ,      ,              .  ,       .

        ,       ,         , ,   .

            ,          .

,   ,         ,  ,     .    :


        ,       ,     .  ,    ,   ,   .

,        ,      .

 ,           ,            .

               :

1)    ;

2)     .

            .         .

 ,         ,       ,       .

        .

           .



3.    

       .        . ,  :

1) ;

2)   ;

3)     .

      .

       ,            .

          .           .             ,         ,    .

,        , . .   ,          ,      .

, ,     (    ),      .           ;          ,     .



4.    

      :

1)    ;

2)     (   ,     ).

   ,             ,     ,       , ,    .             .      ,           - .

     .

              .    ,    ,    (), ,   ,               .

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

       , . .   .

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



5.   

         ,         .    . ,   ,          ,      ,    . , ,              .

,       .

         :

1)   ( ),     ;

2)  ,     ,   ,         ;

3)    ,    ,    ,   .

,  ,      .

 ,     ,     .        ,   ,  .      ,     ,      .

      ,       :



(i) Q; P; A &#8594; B; N;


 i          ,           ,   .        ,    .        ,       .

  :      . ,      ,    .  ,    .

 .  Q        .       ,     ,  ,   .  .

  : ,         ,    ,  ,    ,  ,     .        .          ,        -    ,         .

,         ,          &#8594; .     ,     ,     ».

         ,        :    ,     ,     ».

            ,          &#8594;.               , . .           .

          . , ,    - ,     ,       .

      .

  ,     .    ,    .   ,     , . .  ,     .

        :



 ;     ,           .


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

 , ,   N.

 N     .     ,       .

     :                  , . .    (,  ),           .      .

 ,   ,       , . .     ,   :

1)       ;

2)     .

          ,           .              ,     .







notes





1

           ()  . (. . )

