Вы находитесь на странице: 1из 127

1. .....................................................................

6
1.1. ....................................................... 6
1.2. ............................. 7
1.3. ............................................................................................. 9
1.4. ............................................... 12
2. .................................................................................. 13
2.1. ........................................ 13
2.2. ....................................................................................... 16
2.3. .................................................................................. 19
2.3.1. ................................................................ 19
2.3.2. .................................................. 19
2.4. .................................. 21
2.4.1. " "................ 21
2.4.2. . .................................. 25
3. .................................................. 26
3.1. .............................................................................. 26
3.1.1. ........................................ 27
3.1.2. .............................................. 28
3.1.3. .................................... 28
3.1.4. ........................................................ 28
3.1.5. ................................................................. 30
3.1.6. ......................................................................................... 31
3.1.7. ................................................................................ 31
3.1.8. .................................................................................... 31
3.1.9. ..................................................... 32
3.2. ...................................................... 32
3.2.1. ............................................................ 32
3.2.2. .......................................................................................... 33
3.2.3. ......................................................................................... 34
3.2.4. ................................................................................................. 35
3.2.5. ............................................................... 35
3.2.6. .......................................................................... 39
3.3. ........................................... 40
4. ....................................................................................... 44
4.1. ...................................................... 44
4.2. ...................................................................................... 45
4.2.1. .............................................. 46
4.2.2. .................... 49
4.2.3. ............................................. 49
3

4.3. .......................................................... 50
4.3.1. .................................. 50
4.3.2.
.......................................................................................................... 51
4.3.3. .................................. 52
5. ...................................................... 53
5.1. .................................................................................... 53
5.2. ......................................... 55
5.2.1. ........................................................................................ 55
5.2.2. .......................................................... 57
5.2.3. .......................................................................... 58
5.3. ....................................................................... 61
5.4. ................................................................... 62
6. .................................................... 64
6.1. ..................... 64
6.2. .................................................................. 66
6.2.1. ........................................................ 67
6.2.2. ............................................................................... 68
6.2.3. .............................................................. 68
6.2.4. ............................................................. 70
6.2.5. .............................................................. 71
6.2.6. ............................................... 72
6.2.7. ....................................................... 73
6.2.8. ............................................................... 74
6.3. .................................... 75
6.2.1. ..................................... 75
6.2.2. ................................................... 76
6.2.3. 1 :1 ... 77
6.2.4. 1: N .. 78
6.2.5. "/" ..................... 79
6.2.6. : N . 80
6.2.6.
.............................................................................................. 80
6.2.7. .................................. 81
7. ............................................ 81
7.1. ........................................ 81
7.2. .................................................................................... 84
7.2.1. - ................................................................. 85
7.2.3. - .............................................. 86
7.2.3. - ....................................... 88
7.2.4. ................................................................ 90
4

8. ............................ 92
8.1. ............................................................................ 92
8.1.1. (Union) ........................................................................ 93
8.1.2. ............................................................................................ 93
8.1.3. .................................................................. 94
8.1.4. ....................................................................................... 95
8.1.5. (Project) ............................................................................ 95
8.1.6. (Select) .................................................................................... 96
8.1.7. (Join) ............................................................................. 96
8.1.8 ................................................................................................ 97
8.2. ..................................................................... 98
8.2.1. ................................ 99
8.2.2. ............................................................... 101
8.2.3. ................................................................... 103
9. SQL ...................................................................................................... 104
9.1. SELECT.
........................................................................................................................ 104
9.1.1. ........................................................................... 105
9.1.2. ........................................................... 106
9.1.3. ......................................................... 107
9.1.4. ....................................................................... 110
9.1.5. ............................................................. 110
9.2. ......................................... 114
9.2.1. INSERT .................................................. 114
9.2.2. DELETE ........................................... 115
9.2.3. UPDATE ....................................... 115
9.3. ...................................................... 116
9.3.1. ............................................................................ 116
9.3.2. ........................................................................ 118
9.3.2. ............................................................................ 118
9.3.3. .................................. 119
10. ........... 119
10.1. .......................................................... 121
10.2 ................................................................ 121
10.3. ............................................................ 123
10.4. ....................................................................................... 123
10.5. ......................................................................................... 125
10.6. ..................................................... 126
10.7. ........................................................................ 128

1.
1.1.

.
,
,

.

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

,
,

.
.
()
, ,
.
()
,

,
,
,

() .
(),
.

,
() .
.

, , ,
.

() .
: , ,
,
,
-
,

.

, , ,
,
.
,
,
. , ,
. ,
, ,
, Delphi Visual Studio, .
1.2.

.


.

,
.

,

.

,


.

.

.

-
,
,
.

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

. 1.1.
.

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

.
.
8

: , ,
.
1.3.
, , ,
.

.


.
,
.
, ,

. :
, ,

;
,

.
,
, ,
, .
"", . . " ".
.
, .
, ,

, ,
. ,
. ,
, .
,
.
. ,
, .
, ,
.
, .
,
.
9

: ,
,
, . 1.2.
, .

. 1.2. ER-

10

, ER- (Entity-Relationship),
:
, ,
, ,

:
: (_, _, _);
: (_, _, _);
: (_, _);
: (_, , );
: (_, _);
: (__, , );
,
, :
, ;
,
;
,
;

, ,
;
,
.
,
.
.
.
.
.
, , .

, , ,
.
.

.
.
,
. ,
.
. :
;
11

;
.
1.4.
, ,
, ,
,
.

.
-

.
,
.

.


(, ).

, , .


,
.
,
.

.
1. ,
, , ,
.


,
,
.
2. , ,

.
3.
,
12


.
4.
.
5.
:
,
;

,

;
,

;
,
,

.
2.
2.1.

,
, ,
.

. ,
, -, - .

(. 2.1), ,
.
:
, ,

() ;
,
;
,
,
;
.

13

. 2.1.
.
,
.
,


, .

.
,
. :
.

,
. ,
, ,

14


.

, .
,
, ,
,

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


.


.
,
.


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

.
,
.
.
15



.
:

;
(
);
;
.

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

.
2.2.


,
, , .

, ,
, .

,
.
,
.
,
. ,
.

.
16



.
,

.
:
,
(, );
,
.

, ,
, .

.

,
.

,
, ,
.

SQL (Structured Query Language
). SQL
.



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

17

,
;
,
.


,

.
,
,
.
,
, ,
.
,
.

. ,

,
.

.

.

,

.

:
.

,
.
, ,
,
.

18


.
,
, ,
,
.
2.3.

. :
{DDL Data Definition
Language);
(DML Data Manipulation
, Language).
2.3.1.
,
: ,
.
.
,
, .
,
.
,
, . .
, , ,
,
.
.
2.3.2.

, . . ,
, ,
.

:.
1. ;
2. :

;

19


;

.
.

, ,
.
.
() .

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


SQL QBE.

SQL, ,
.
,

, SQL :
DDL () , DML ()
.

QBE,
.
,



,
,
,

.
20

2.4.
2.4.1. " "
,

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

. 2.2.
.

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

, :

21

, .
. .


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

. 2.3.

,
,
.

:
;
,
,
;
,
;

22

.
, ,

.
, .


. .
,
.
SQL.
. 2.4.

. 2.4.
,

, ,
,
,
. ,
,
SQL, .
, , ,
.
23

, :
SQL
;

;
,

.

" "
: Informix, Ingres, Sybase, Oracle, MS SQL Server.

.
,
.
, ,

.
.

.
.
,
.
,
. .

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

.

24

. 2.5.
2.4.2. .


. . 2.6.

. 2.6.
25

, :
,
, ,
,
.

:
, ,

, .
,
,
: ,
, ,
, ,
.

,
.
3.
3.1.
,
().
,
.
(. 3.1):
1. ;
2. ;
3. ;
4. :
;
;
;
5. :
;
;
6. ;
7. ;
8. ;
9. :

26


;
,
.

. 3.1.
3.1.1.
,

.

: , .

, .
.
,
, .

, .

.
, :

;
, ;
27

;
;

.
3.1.2.

, .
,

.
3.1.3.

.

, ,
(
, , ,
, , .


: ,
,
.

,
, ,
, "
".
3.1.4.
,
.



.

, ,
.

28

,
,

, .

" " (Entity-Relationship model ER-)
,
. .
" " .
,
, .

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


.


.
,

, .

(, , ),

.

, ,
,
.

29



.
, ,
, .
.
:

,
;

,
;
.
3.1.5.

.
.

.
,
,

. ,

.
:
, ;
;
, ;
.


,
.


:
;
;
30

;
;
;
;
;
;
;

;

;
;
;
.

3.1.6.

,
.

.
.
.

. ,
, ,
.
,

, CASE (Computer-Aided Software Engineering).
3.1.7.

, ,
. , ,
.
3.1.8.


:
31

;
;
;
.

, , . .
, , ,
.
.
.

.
,

.

,
,
.
.

,
.
3.1.9.
,

.
,
,
,
.
3.2.
3.2.1.

,
, . ,

,
.

32


" " (ER-),
. 1976 ,
.

, .
, .

{. 3.2).
3.2.2.
,

.
- ( )

. ,
, .

. 3.2.

,
(. 3.3).

33

. 3.3. ER-
3.2.3.
,
.
. ,
:
_,
_,
_,
.
(. 3.4).

. 3.4.

, ,
.
.

: : (, , _)
34

( .., 93--22, 1992) .


,
. ,
,
.
3.2.4.
,
.
. ,
,
.
. ,
(_, _, _)

.

. ,
.
. ,
, .

,
.
, :
(_, _, _,
) ,
:
(_, _, _).
3.2.5.
.

,
, .
,
.
. ,
,
, , , .
,
,
(. 3.5).
35

. 3.5.
,
, , .
,
, .

,
,
(. 3.6).

. 3.6.
, ,
.
.

.


, . ,
36

, ,

(. 3.7).

.
,
.
:

. 3.7.


, , ,
, . : 1,*, 1
. * "" (
"" * N). ,
,
, 1,1.


,
.

:
" " (1 : 1), " "(1 : N), " "
( : N).

, " " (1 : 1).
, , ,
,
:
<-----> .

37

,
, " " (1 : N).
, ,
:
<----->> .
. 3.8.

. 3.8.


: (
1, N)
( , ,
, ,
). .
,
, " " (M : N).
, ,
:
<<----->> .
.
, :
:

:
__

38

:
_



, ,

.
3.2.6.
,
,
, .
,
, .
, ,
.
, ,
.
. , ,
: , , ,
.
,
.
" ".


, .
(. 3.9) ,
. ,
, U- ,
. U ""
. D,
, .

.
, D.

39

. 3.9.
3.3.
ER
- . ,
,
.
,
6-7 . ,
ER-
.
, :
. , . 3.10.
, , ,
.

40

. 3.10.
, :
, , , .
, . , ,
, .
: (. 3.11).
.

, :
,
.

M:N,
,
. ,
, . 3.12.

41

. 3.11.
,

,
. ,
.

. , , ,
.
. , ,
:

,
.

42

. 3.12.

,
.
:
1. :
: _
_
_
: _
_
_
_
: _
_
_
2. :
: <-----> 1:N
: <-----> M:N
3. :
_: , 6
43

_: , 50
_:
.


, , .
4.

.
,

, .
,
, .
:

,

;
,
;
,
.
.
, ,
,
,
,
.
4.1.
,
.
:
;
;
.

,
,
.

44

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


,
.

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


.
-
,
.
-
, ( ),
.
.

, ,

.

,
, ,

:
.
4.2.

, .
, .
, .
45


,
" " " .

.
4.2.1.

, .

, (. 4.1).

. 4.1.

, (
). (
, ).


(. 4.2).

. 4.2.

46

.
,
, .
(. 4.3).

.
.

,
: .

. 4.3.

(. 4.2).
. , ,
10 (. 4.4).

. 4.4.
47


, .
" " " "
.
.
, . 4.5, -
- ,
" " . ,
. " "
, - ,
, -.

. 4.5.
,
(. 4.6),
,
.


, .

48

. 4.6.

4.2.2.

. ,
.
" " " ".

, ,
,
.
, " ",
:
"" , ""
-. " "
- -
.
4.2.3.

, :
.

, .
, .
:

49


;
- - ;
;
- .

, ,
,
.

: , ,
.
:

;

;
;
;
;
;
.

.
4.3.

,
.
4.3.1.

.
, .
.
.
.
,
,
.
,
.
.
50

,
.
(.4.7).

. 4.7.
4.3.2.


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

51

,
.
4.3.3.

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

, ,
, .
,
.

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

:

, ;

;

.

,

52

(
):
;
;
.

. :

5.
5.1.
IBM
. . . , .
.
"A Relational Model of Data for Large Shared Data Banks",
1970 , ,
,
(relation).
, .

,
, .
,
,
. ,
,
.

.
.
.
:
,


, ;

,

;

53



.
,
.
1. .

, .
2. .
( )

, .
3. .

,
,

.
4. ,
.
, ,
, ,
,
.
5. .

(, ).
, , ,


:
;
;
( );
;
;
(, ).
6. . ,
,
.
7. , .

54

, ,
.
8.

.


.
9. .


,

.
10. .
,
,
, .
11. .
.
12. .
( ),
,
,
(
).
5.2.
5.2.1.
()
. ,
.
,
, , .

.
.
, .
.
r. r
R = {A1, A2, ... n}.
, ,
.

: {__, , }

55

__


__
.
i, 1 >= i <= n
. Di,
.
,
.

:
D = D1 D2 ... Dn.
r R
{t1, t2, ... tp) R D. t r
:
t(Ai) Di 1 <= i <= n.
.
,
.
.
,
. ,
.
.
,
. :
. ,
, , n n-.
.
. 5.1

56

. 5.1.
5.2.2.
, ,
. .
,
.
.
,
.
,
, .
,
.
() .
.
,
. :
,
;
,
;

57

,
;

,
;
, ,
, ;
,
,
;
,
.
5.2.3.

,
. .
, = {Ai, Aj, ..., Ak} r
r ,
:
:
r Ai,
Aj, ..., ;
: Ai, Aj, ....
K .
. ,
, .
,
, , ,
,
. ,
,
.
( )
.
,
. , ,
.
.
,
.

.
58

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

, .
5.2. ,
" ".
: ,
" ".
.
.
,
.

. 5.2.

59

,
, ,
. :
, , .
. 5.3.

. 5.3.
. 5.4 ,
. :
4- _
, ;
: _ {: 1...4},
{ }, _ {..., ...,
}, _ {, , _};

_. , ;
: _ {}.
_ {, , , ,
, }, __ {: 54, 102, 36};

_, _, , ,

.

60

. 5.4.
,
.
.
5.3.

;
;
;
.
.
r (A1, A2, ..., An)
:
ADD (r: Al=dl, A2=d2, ..., An=dn).
,
:
ADD (r: dl, d2,, dn).

:

61


;

;
,
.
.
:
DEL (r; Al=dl, A2=d2,, An=dn),
:
DEL (r; dl, d2,, dn) .

:
DEL (r; ) .
,
.

. r {1, 2, ... ,} {1, A2, ..., n}
:
(r; Al=dl, A2=d2, ..., An=dn; l=el, 2=e2, ..., p=ep).
K = {B1, B2, ..., Bk} ,
:
(r; Bl=dl, B2=d2, ..., Bk=dk; l=el, 2=e2, ..., p=ep).
,
:
;
;
.
5.4.

, .
,
, :
, .
.

.

.
: ,
. :

62

,
NULL.
.

. ,

, .
,

;
,

.
, ,
,

.


.

,
, .

,
.
.

.


, .
,
,
.
, .

.
, .


:

63

,

;

.
.
, ,
, -,

.
,
,

. :

;
,

.
6.
6.1.
,
,
. ,
, .
(. 6.1),
:
6.1.
__ _ _ _
20--201
20--215
20--217
20--211

..
..
.
..

20--11
20--12
20--11
20--11

..
..
..
..

. ..
. ..
. ..
. ..

__

, .
, ,
,
.

64

:
;
;
.



, .
NULL
, __,
.
, ,
.
, . 6.1
, , ,
, .
, ,
, ,
. 6.2 6.3.
6.2
__
20--201
20--215
20--217
20--211

_
..
..
..
..

_
20--11
20--12
20--11
20--11

6.3
_
20--11
20--12

_
..
..

. ..
. ..


, . 6.1.
:
20--215 .P. 20-T-12 .. . ..
20--12.
.

.
,
.

65


-
. ,
20--11 , , ..

_ ..
..
,
. 6.1.
,
. ,
_
. 6.3.

,
.
.
,
,
,
. ,
, ,
.
.
,
, .
,
, ,
.
,
, . .
,
.
6.2.

.

.
,
. :
1 ;

66

2 ;
;
;
4 ;
5 .

. ,

.
1, 2,
.
.
4
.
5 : .


().
,
1.

. ,
, ,
.
6.2.1.
,
1.
.
R(1, 2, ...., n).
2 1
1 2 (. .
, 1,
2)
: 1 2.
,
.
-/ .
F.

.

67

r- R, X, Y R.
r X Y,
t1 t2 r t1(X) = t2(X), t1(Y) = t2(Y).
6.2.2.
r(R)
F-, .
F-,
. F- F,
r.
,
r(R), ,
R. , F, r, .
, F F.
- , F-
, .
, ,
F-,
F-.
F-.
r R, W, X,
, Z R.
.
F1. : X X.
F2. : Y XZ Y.
F3. : Y Z YZ.
F4. : YZ Y.
F5-: Y Y Z Z.
F6. : Y YZ W Z
W.
6.2.3.
,
() . ,
,
.
. ,
, .
, ,
. ,
. 6.4.
68

6.4.

5 1986
25 1987
1 1987
14 1986


,
1. , ,
, , , 1,

. 1,
, . 6.5.
6.5.

5
25
1
14

1986
1987
1987
1986

, , . 6.6 ,
1 , ,
. ,
1, ,
. 6.7.
6.6.

{, }

6.7.

69

6.2.4.


.

, . . ,
. ,
, 2.
.

1.

Y,

F+ F.
2. Y
, X Z,
Y.
Y , Y o X.
Y X.
3. R R
F R
R F, -
R. R.
, R 2 F,
1,
.
2 F,
F 2.
_
:
(__, __, , _, ,
_, _, , , ).
,
, ,
,
. .
(__, __, ) (_, ,
_, _, , , ).
_,
.
:
-_ (_, ).

70

_, _

, :
__ (_. _).

,
,
.

:
(__, _, );
(__, _, _);
(__, __, , ,
, ).
6.2.5.
:
, -/ ( ), , .
, .

.

F,
1 R
R.
F,
F.
.
(__, _, );
(__, _, _);
(__, __, , ,
, ).
:
(__, __, )
.
,
, :
,
;

,
.

71


,
, .
, ,
, :
(__, _, );
__, _, _);
(__, __, , ,
);
(, ).

,
.
,
.
6.2.6.
,
,
, , ,
. ,
.
, :
( ) ;
;
, . . ,
, .
R F ,
.
,

_ :
(_, _, _,
_).
, _
_
.
:
( , _);
(_, _).
_
_,
72

, , , .
,

, ,
.
, ,
.

.

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

_ _,
;
(_, _, _);
(_, _).
6.2.7.
, ,
.
: (_,
, _).
-
, ,
, .
, .

:(_, , _)

.
,
, ,
.

73

1971

().

: ,
1 : .
.
R(A, , )
, ,
,
.

:
_ ->> ;
_ ->> _.

: ->> |
.

.
.
R (, , C)
R1 (, ) R2 (, ) ,
R -: ->> .
-.
(4)
,
R,
->> . R
A.
,
, ,

, .

- :
- (_, );
- (_, _).
6.2.8.

.
74


,
,
.
"n- " n > 2.
,
n , e
.



.
R (X, , ..., Z)
*(, , ..., Z), , R
X, , ..., Z
,
.
6.3.
:
, , .
,
, . ,
, ,
,
.
,
:

,
;

;
.
.
6.2.1.

:

;
(
,
75

)
,
.

,
.


,
.
6.2.2.
,
,
.
,

. ,
, ,
. ,

, .
.

(. 6.1).

. 6.1.
,
, ,
.


.
76

, ,
, . ,
- ,
.
,
, .
6.2.3. 1
:1

, 1 : 1 (. 6.2)

.

:
;
__ , , ;
_ ;
;
_ .

. 6.2. 1 : 1
,
, :
(, __, _, , _).

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

77

, ,
,
.

( ) .
:
(, __, _, );
(, _).

,
:
(, __O, _);
(, _);
(, )

, .

.
6.2.4.
1: N

1: N (. 6.3).
.
N- ,
1-
.

. 6.3. 1 : N
.
, .
,
, , ,
78


.
, "" ,
, ""
.
,
.
:
(, __, _);
(, _, ).
.
. :
(
) .

:
(, _);
(, __, _);
(, )
6.2.5. "/"

"/"
, .

.
,
"/".

,
,

,
.

, , ,
(. 6.4). ,

.
.

:

79


(_.
__,
,
_).

(_,
__);
(_. __);
_ (_):
(_).

. 6.4. "/"
6.2.6.
: N

:
,
,
.
.
:
(, _);
(, __, _);
(, ).
,
,
,
.


.
6.2.6.



80


.

.
, ,
, , , .

, ,
- . ,
,
.


.
6.2.7.
:
;
;
;
;
- .

, ,
. ,
,
.
7.
7.1.

:
,
;
,
()

;
,
;
,
.

81



(. 7.1).

.
,
,
.

.

. 7.1.

, .
. ,
,
.
,
.
, ,
.
, . 7.2.
82


, (. 7.3
).


.
( 0),

.

. 7.2.

. 7.3.
.
,
,
, ,

83

,
(. 7.4).

. 7.4.
7.2.

.
(. 7.5).
, ,
.

. 7.5.
,
: . ,
84

,
.
,
.
, . . .

,
. ,

.
7.2.1. -
-
,
,
,
.
,
, -

. .
.

.
, ,
, , ,
.
,
, .

.

.
, .

(
) (. 7.6).

85

. 7.6. -

,
.

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

,
.

,

86

. ,
.
:
.

.
(. 7.7).
.

. ,
.
.

. 7.7. -

, .
:

;

87

, ,
, ,
,
.
7.2.3. -
-
,
.


,
.

,
,
. ,
,

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

. . ,

.

,
. ,

.
.
,
(, ),
.

88


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

.
, .

. 7.8. -
- , ,
,
. . .
V - .
,
.

(, N),
V. N
, V ,
.
( , . .
) N (,
2n ) N1
N2. S 2n + 1 ,
2n V. n
( )
N1, n N2,
W
. ,
89

U ,
N1, U W,
N2, U > W.

W .


.

, .
, .
7.2.4.

,
.
, .

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

,
.
.

.

:

;
,
;

,
.

90

.7.9.

.
, ,
,

.

91

,
:
;

;
.
8.
. .

.

. ,
,
.
.

.

. , ,
,
, , .
, ,
, .
8.1.

.
, .

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

92


.
,
.
8.1.1. (Union)
s, t = r s
r s, , t,
, s, .

:
r 1

s 2

01
03
04

02
03
04

1
2
3

2
2
3

:
?
t=r s.
, .
_

01
02
03
04

1
2
2
3

8.1.2.
s, t = rs
r s, , t,
r, s.
. r
, s ,
, t = rs
, .

93

r -

s -

Bec

01
02
03
04
05

02
03
04

1
2
2
3
1

2
2
3

t= - s

_e
01
05

1
1

8.1.3.

,
.

. r
s, t = r * s = 1 + k2, 1 - r, a k2
s, r s,
, k1 r,
k2 s.

r (__, );
s (_, _, , ),
r * s _ (__, , _,
_, , ).
r

s -

__
02--01
02--02
02--05

_
01
02
03

..
..
..

10.01.03
15.01.03
20.01.03

__
02--01
02--01
02--01
02--02

..
..
..
..

_
01
02
03
01
94

10.01.03
15.01.03
20.01.03
10.01.03

02--02
02--02
02--05
02--05
02--05

..
..
..
..
..

02
03
01
02
03

15.01.03
20.01.03
10.01.03
15.01.03
20.01.03

8.1.4.
r s, t = r s
r s, , t,
r s.
. : t = r s = r - (r - s).

:
r - 1

s - 2

01
02
03
04
05

1
2
2
3
1

02
04
03
06

2
3
2
1

: ,
.
.
:
_
02
04
03

2
3
2

8.1.5. (Project)
( )
.
.
r(R)
Y, t = Y() r,
r
R.
, R Y ,
, R Y,

95

, ,
.
r:

:
AC(r)

8.1.6. (Select)

. ,
. r
,
r, .
, r
t = (),
r, .
, .
,
.
A q B > 1(r)
C b(r)

B
1

8.1.7. (Join)
r (X, ) s (Y, Z)
, X, , Z- Y
, r s,
t = r >< s

96

- r s, ,
t, r s, .
:
t = (r * s),
- r
s, .


.
(Join) _ = 01

__

02--01
..
02--02
..
02--05
..

_
_
01

01

01

10.01.03
10.01.03
10.01.03

8.1.8

,

, -.
r(, ) k1 p(Z) k2, Y
Z , t = r p k1 k2
r p, t
p , r.

, ,
,
:
VEDOM

RASP

__ _

02--01

10.01.03

14.01.03

02--01

14.01.03

10.01.03

02--02

10.01.03

02--02

14.01.03

02--05

14.01.03
97

: ,
.
:
t=rp
STUD = VEDOM RASP
__
02--01

02--02

8.2.

.
. ,
, , .
.

.
,
, ,
,
. ,
,
.
, ,
, .
(, , )
, .
,
, ,
.
:
r
_
01
02
03
04

1
2
2
3

: , 2?

98


,
:
r,
r ,
r , 2
:
_

02
03

2
2


_.
:
_


:
{ t._ t in r and t.Bec = 2},
t , .
, t, in r
, t .
t._ _ r; (|)
. :
t._ ;
t in r and t.Bec = 2 ;
t.Bec = 2 , t 2.
"{}", ,
, .
, .
.
8.2.1.

,
. .
,
,
.

99

_
, t
t in r and t. = 2.
r .
t
. t. = 1,
, ,
t.H_ .
, t
. ,
.
r.
, :
_


.
{t._, t._, t. t in r and t.Bec = 2}.
. :
- 1
_
01
02
03
04
05

s - 2

1
2
2
3
1

_
02
04
03
06

B
K

2
3
2
1

_(r s)
, ,
:
_

100

, t r, s,
:
t._ - ;
t in r and in s and t.o_ = ._ and t.Bec = . and
t.H_ = ._ .
,
.
,
: , .

.
:
.
8.2.2.
,
.
,
.
:

_
01
02
03
04
05

1
2
2
3
1

_
01
03
04

05
10
02

_
100
250
2

: ,
, .
, ,
. ,
:
t._,
t .
s .
,
. ,
,
. , _
_ >
, .
, :
101

, _ s._ > t..


:
exists s in
(s._ = t._ and s. > t.).
: " s
, s._ = t._ s. _ > t.".
t. ,
t s, t.H_
.
s t._
.

:
{t._ t in and exists s in (s._ =
t._ and s._ > t. )}.
,
,
. ,
t "".

, ,
.
( t)
_ = , ,
, _ = 01,
_ > t.. ,
s. , t ,
t.H_ .
.
, t,
s .
,
.
, ,
, :
_
A


. , ,

102

,
.
8.2.3.
,
.
, .
,
, .
:
VEDOM

RASP

__ _

02--01

10.01.03

14.01.03

02--01

14.01.03

10.01.03

02--02

10-01.03

02--02

14.01.03

2--5

14.01.03

,
, RASP.
,
.
, .
, ,
.

FORALL :
{t. | t in VEDOM and s in RASP and
FORALL s {t. __ = s._ and t. = s.)},
t VEDOM;
s RASP.
:

t VEDOM
,
t, , s
RASP t VEDOM,
103

, s
RASP t VEDOM
:
t (1) t (2): t (1) s (2)
t (2) s (1);
t (3) t (4): t (3) s (2)
t (4) s (1);
t (5): t (5) s (1),
s (2) t.
RASP
. ,
.
9. SQL
9.1. SELECT.

SELECT
.
SELECT:
SELECT [DISTINCT| ALL] {* [< >]} FROM
< >
[WHERE <- ;>] [GROUP
BY < >]
[HAVING <- >]
[ORDER BY < ,
>]
.
SELECT:
ALL ( ) ,
,
,
;
DISTINCT
,
;
"*" ,

.
FROM .
WHERE
,
104

.
:
" = , <>, >, <, >=, <="
;
AND, OR, NOT;
BETWEEN AND ,
;
IN ,
;
LIKE NOT LIKE , ,
,
;
IS NULL ,
:
EXIST NOT EXIST, .
GROUP BY .
HAVING -,
.
ORDER BY ,
,
.
9.1.1.
.
1
.
:
Name_kaf Nom_telef,
:
SELECT Name_kaf, Nom_telef
FROM kafedra;
:
Name_kaf

Nom_telef
23-34-24
23-65-43
23-78-72
23-99-77
23-66-62

2
.
:
105

SELECT *
FROM kafedra
WHERE Name_kaf = '';
:
Kod_kaf Name_kaf Nom_telef Nom_Auditoria Col_sotr Zav_kaf
004

23-99-77
385
18
C.C.

3
,
, ,
1 99.
:
SELECT *
FROM kafedra
WHERE NonuAuditoria BETWEEN 1 AMD 99;
:
Kod_kaf Name_kaf
Nomtetef Nom_Auditoria Col_sotr Zavjcaf
002
23-65-43 003
22

005

23-66-62 028
24

4
,
Name_kaf .
:
SELECT *
FROM kafedra
ORDER BY Namejtaf ASC;
:
Kod_kaf
004
003
002
005
001

Name_kaf

Nom_telef
23-99-77
23-78-72
23-65-43
23-66-62
23-34-24

Nom_Auditoria
385
465
003
028
132

Col_sotr
18
16
22
24
25

Zav__kal

..

9.1.2.
SQL :
COUNT ;
SUM ;
AVG ;
MIN ;
.
106


,
. SUM AVG
. COUNT, MAX MIN ,
. ,
COUNT (*),

. COUNT (*)
, .
5
.
:
SELECT COUNT (*) AS count
FROM kafedra;
:
ount
5

6
,
.
:
SELECT AVG(Col_sotr) AS avg
FROM kafedra;
:
avg
21

9.1.3.
,
,
.
.
,
, ,
, .

.
SQL
SELECT GROUP BY. ,

107

GROUP BY,

, ,
, .
:
.
,

: R= (, , ).
.
r

..
..
..
..
..
..
..
..
..
..
..

1
1
1
2
2
2
3
3
3
4
4

()
1000
2000
500
500
500
1000
1000
1000
2000
2000
3000

,
,
:
S = (, , );
s

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.

108

4
5
3
4
4
5
3
5
4
5
5
4
5
3
5
4
4
4
5
3

C .
7
. ,
, .
SELECT
: , COUNT () AS count, SUM
() AS sum,
.
. ,

SELECT , COUNT () AS count, SUM ()
AS sum FROM r GROUP BY
ORDER BY ;
:

..
..
..
..
..

count
3
3
2
2
1

sum
2500
3500
1500
4000
3000

8
.
, .
:
SELECT , COUNT (*) AS count
FROM s
GROUP BY
ORDER BY ;
:

count

2
3
3
4
4
4

109

. ,
,
.

HAVING COUNT (! > 1.

SELECT , () AS count, SUM ()
AS sum
FROM r
GROUP BY
HAVING COUNT() > 1
ORDER BY , .

..
..
..
..

count
3
3
2
2

sum
2500
3500
1500
4000

9.1.4.
SELECT
SELECT.
WHERE HAVING SELECT, TO
().
10
. ,
.
:
SELECT , ,
FROM r
WHERE > (SELECT avg() FROM r);
:

. .
..
..
..

1
3
4
4

()
2000
2000
2000
3200

9.1.5.


110

.
.
,
,
,
. ,
.
SELECT ,
,
.
SELECT
:
SELECT *
FROM rl, r2;
r1 r2.

SELECT rl.A, r2.B


FROM rl, r2;

r1 r2.
,

. r1, r2
r3. , r1, r2 r3
.
R1 = (, );
R2= (, );
R3= (, , ).
r1

..
.
..
..
..

r2

03
03
03
04
04

03
03
03
04
04

111

1
2
3
3
4

r3

. .
.
..
. .
.
..
.
..
..
..
..

1
1
1
2
2
2
3
3
3
4
4

()
1000
2000
500
500
500
1000
1000
1000
2000
2000
3000


, c :
S1 = (, , )
;
S2= (, ) ;
S3 = (, ) ,
.
s1

..
..
..
..
..
..
..
..
..
..
.
..
. .
P.O.
..
..
..
..
P.O.
..

"

_
_

4
5
3
4
4
5
3
5
4
5
5
4
5
3
5
4
4
4
5
3

112

s2

s3

..
..
..
..
..
..
..
..
..

02--21
02--21
02--21
02--21
02--12
02--12
02--12
02--12
02--12

02--21
02--21
02--21
02--12
02--12
02--12

11
. 03,
_3.
:
SELECT r3., r3.
FROM rl, r3
WHERE
rl. = '03' AND
rl. = r3. AND
r. = '_3';
:

..
..

_3
_3

12
,
.
:
SELECT s2.
FROM s1, s2
WHERE s1. = s2. AND
s1. = 5
GROUP BY s2. , s1.
HAVING count (*)> 1;
HAVING
, ,
TRUE.
:

02--21
02--12

113

, NOT EXISTS.

.
13
,
, ,
:
SELECT
FROM s2,S3
WHERE s2.pya=s3. AND
= '' AND NO EXISTS (SELECT
FROM SI
WHERE = . AND
= '');
:

. .

, EXISTS , ,
, EXISTS
. EXISTS , .
, ,
,
, NOT EXISTS.
.
,
, EXISTS TRUE,
.
9.2.
9.2.1. INSERT
INSERT :
INSERT INTO [(< >)] VALUES
(< }
.
, s2 :
INSERT INTO s2 ( , ) VALUES (' ..', '02-21');
, ,
, .
, ,
114

CREATE TABLE.
,
, ,
:
INSERT INTO S2
VALUES (' ..', '02--21');

:
;

, :
.
.;

.
9.2.2. DELETE

,
. DELETE :
DELETE FROM _
[WHERE _]
, .
,
. ,
. , ,
.
, ,
s1 :
DELETE FROM s1;
WHERE ,
SELECT. ,
. , P.O. s2
:
DELETE FROM s2
WHERE = ' P.O.';
9.2.3. UPDATE
UPDATE ,
. ,
,
:
115

UPDATE _
SET _1 = _1 [,__02 =
_2...]
[WHERE _]
UPDATE ,
SET .
,
.
WHERE ,
DELETE. , DELETE,
,
. ,
.

. ,
10%.
:
UPDATE r3
SET = * 1.1;
,

, WHERE. ,
,
..
"" "".
:
UPDATE sI SET s1. = 5
WHERE sI. = ' ..' AND
s1. = '';
9.3.
9.3.1.
CREATE
TABLE. :
CREATE TABLE _
( _ _ [NULL | NOT NULL ] [,...]}

<_>, ,
. ,
, ,
,
NULL. NULL

116

, .

ROT NULL.
s1 ,

CREATE TABLE s1 (

VARCHAR (20)
NOT NULL,

VARCHAR (20)
NOT NULL,

SMALLINT
NOT NULL);
CREATE TABLE
.

.
CREATE TABLE :
CREATE TABLE _
({ _ _ [NOT NULL] [UNIQUE]
[DEFAULT ]
[CHECK ( ) [,...] }
[PRIMARY KEY ( ),]
{[UNIQUE ( ),] [,...]}
{[FORING KEY { )
REFERENCES [(
-)],
[MATCH {PARTIAL | FULL}
[ON UPDATE ]
[ON DELETE ]] [,...]}
{[CHECK ( )] [,...]})
s1
:
CREATE TABLE sI (

VARCHAB (20)
NOT NULL,

VAHCHAR (20)
NOT NULL,

SMALLINT
NOT NULL);
PRIMARY KEY (, ),
FORING KEY REFERENCES S2
ON UPDATE CASCADE
ON DELETE CASCADE);
, SQL
, :
, .
,

117


.
9.3.2.

ALTER TABLE, :
ALTER TABLE _
[ADD [COLUMN] [NOT NULL] [UNIQUE]
[DEFAULT ] [CHECK (
)]]
[DROP [COLUMN] ] _ [RISTRICT | CASCADE]]
[ADD [CONSTRAINT [ )] ]
[DROP CONSTRAINT [RISTRICT I CASCADE]]
[ALTER [COLUMN] SET DEFAULT ]
[ALTER (COLUMN] DROP DEFAULT]

:
ADD
COLUMN;
DROP COLUMN;
ADD
CONSTRAINT;

DROP
CONSTRAINT;

ALTER [COLUMN] SET DEFAULT;

ALTER [COLUMN] DROP DEFAULT.
s1 ,
, :
ALTER TABLE s1
ADD varchar (7) NOT NULL;
9.3.2.

DROP TABLE [RISTRICT I CASCADE].


RISTRICT CASCADE
,
. RISTRICT
.
CASCADE
118

,
.
s1:
DROP TABLE s1;
9.3.3.


.
, .
SQL .

, ,
-
,
.
.
:
CREATE [UNIQUE] INDEX _
OK _ ( [ASC| DESC] [,_.])
:
DROP INDEX _
CREATE INDEX UNIQUE,
TO
.
: ASC ( )
DESC
10.

()
, ..
. ,
,
.

. .
, P ( )
TOTQTY,
. TOTQTY
QTY
119

. . 10.1.
1000 S5 P1.
BEGIN TRANSACTION;
INSERT ({S#:S5, P#:P1, QTY:1000}) INTO SP;
IF THEN GO TO UNDO;
UPDATE P WHERE P# = P1 TOTQTY:=TOTQTY+1000;
IF THEN GO TO UNDO;
COMMIT TRANSACTION;
GO TO FINISH;
UNDO:

ROLLBACK TRANSACTION;

FINISH:

RETURN;

.10.1
,
.
(Insert
SP, Update TOTQTY P1).
,
, TOTQTY P1
QTY . ,
,
. ,
,

.
,
,
Commit transaction Rollback Transaction.
Commit transaction

, , ..
.
Rollback Transaction

, .
( ),
,
. ,
120



.
10.1.
Begin
Transaction
Commit, Rollback. Commit
,
, , ,
. Rollback
,
Begin Transaction, ..
.
,
,
.
,
: , , .
. ( ).
. , ..

.
. . ,
,

, .
. , ,
.
10.2

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

(,
),
, , ,
.
.

( ).
,
, ,
.
, ,

,
.
, ,
,
. (
)
.

,
.
.10.2.
.

T1
T2
T3
T4
T5

(Tc)

(Tf)

. 10.2.
, T3 T5
, T2 T4 ,
T1 ,
Tc, ..
.
122

,
T2-T5.
.
1. : UNDO
() REDO (). UNDO
, (..
, Tc), REDO
.
2. (),
.
3. Begin Transaction
T,
UNDO.
4. Commit
T, REDO.
5. , REDO
T2 T4,
REDO T3 T5,
UNDO.
,
UNDO, ,
REDO.
10.3.
.
(
) ( )
,
. ,
.
, ,

.
,
/. -
.
, .

.
10.4.

,
123

.

.

,
.
,
,
- .
,
:
;
;
.

, .10.3.

p
p


t1
p
t2
t3
p
t4

.10.3. t4 ,

, ,
, t4
, .

,
(,
, ) ,
, .
, ,
, .
,
( , ).
.10.4 .10.5.

124


p
t1
t2

t3

.10.4.
t2

p


p
t1
t2

t3

.5.
t2,
t3

.6. ,
. ,
10 3 1.
110, , ,
,
. ,

.
1 40, 2 50, 3 - 30


1
t1
Sum=40
2
t2
Sum=90
3
t3
3
t4
30 20
1
t5
1
t6
40 50

t7
3
t8
Sum = 110 ( 120)

.10.6.
10.5.


. : ,
125


( )
, .

:
1. , ,
: (
), X-,
, S-.
2.
(X-),
.
3.
(S-),
X-
;
S-
(..
S-).
,
X S-
, .
1. , ,
S- .
2. , ,
X- . , ,
,

/ S-,
X-.
3.
-
,
.
, ,
.
4. X-
( ). S
.
10.6.
,
.

126


. 10.7. ,
.3.,
.

p
( S-)

t1

p
( S-)

t2
p
( X - )

t3
p
( X-)

t4

.10.7. , t4


.10.8 .10.9 ,
.10.4 .10.5 .

.

p
( S-)


p
t1
( X-)
t2

( X-)

t3

:
( S-)

.10.8.
t2

p
( X-)


p
t1
( X-)
t2

( X-)

t3

:
( X-)

.10.9.
t2
127


.10.10 .10.6
.
1 40, 2 50, 3 - 30

1
t1
( S-
1)
Sum=40
2
t2

Sum=90
t3
t4

t5
t6

3
t7
( S-
3)

3
( S-
3)
3
( X-
3)
30 20
1
( S-
1)
1
( X-
1)
40 50

.10. ,
t7
10.7.
,
,
. ,
.
.
,
,

.
,
.

128

, ..
,
.

. , ,
.

129

Оценить