.


:




:

































 

 

 

 


UNION|INERSECT|MINUS|TIES|JOIN|DIVIDEBY




(database) 1962 . , ,

- .

- , , , .

, , , , .

 

() - , , , . , , .

 

. ( ) , ().

 

( ) - , , , , .

 

( ), , . .

 

. , . : , , , .

 

. , , .

 

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

 

. , .

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

 

. , , . , .. , , . .

 

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

 

. , , . REDO ( ) . UNDO ( ) . , , .

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

 

. , .

 

. , . ( ) . () SQL (Structured Query Language), , , .

.

.

 

 

:

.

.

, .

.

.

.

 

:

, ,

, , , - ,

, , ,

( ), .

:

o ()

o

o

o -

o -

o

o (NoSQL)

 

, 1970 . . , : , .

 

, . , , , n- . , , , , , , , , , .

 

.

 

. , . :

( ),

,

, , ,

.

 

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

. , . .

 

<_, _ >. . .

 

<_, _>. . . (, record Pascal struct C).

 

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

 

, n ( ), : ( ) ( m ). n m . .

. , , , .

( ). , .

( ). .. , . .

. , , (1NF).

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

 

(.. ).

 

, ( ) ( ).

 

, .

 

, .

 

, . ( ).

 

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

1) ,

2) , .

 

, .

1) ,

2) () (). , , .

 

R2 FK , , : a) R1 ( R1 R2 ) CK; b) FK R2 CK R1.

 

:

, , .

 

, . , , () .

 

. : , . , . , ( ), .

 

, , , :

1) : (UNION), (INTERSECT), (MINUS) (TIMES). , , , .

2) : (WHERE), (PROJECT), (JOIN) (DIVIDE BY).

 

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

 

.

 

_::=

_ | _

_::=

| |

::=

RENAME _ AS _

::=

_ | (_)

::=

WHERE _

::=

| [ __ ]

_::=

_ _

_:: =

UNION|INERSECT|MINUS|TIES|JOIN|DIVIDEBY

.

1) UNION, INTERSECT MINUS , , . . .

2) , UNION, INTERSECT, TIMES JOIN .

3) A B , A JOIN B A TIMES B, . . . .

4) :

( RENAE -). _ AS _.

5) , , , . .

 

, . . .

 

Y :

 

A JOIN B = ((A TIMES (B RENAME Y AS Y1)) WHERE Y=Y1)[X, Y, Z]

 

:

 

A INTERSECT B = A MINUS (A MINUS B)

, :

 

A DIVIDEBY B = A[X] MINUS ((A[X] TIMES B) MINUS A)[X]

(, , , , ) .

 

, :

 

S(Sno: integer, Sname: string, Status: integer, City: string)

P(Pno: integer, Pname: string, Color: string, Weight: real, City: string)

SP(Sno: integer, Pno: integer, Qty: integer)

 

, , , SP () S () P ().

 

1) , 2.

 

((SP JOIN S) WEPE no = 2) [ Sname ]

 

2) , .

 

((( WERE Color = '') JOIN SP) [ Sno ] JOIN S) [ Sname ]

 

:

 

((( WERE Color = '') [ no ] JOIN SP) JOIN S) [ Sname ]

 

: .

 

3) , .

 

((SP [ Sno, no] DIVIDE BY [ no ] JOIN S) [ Sname ]

 

4) , , 2.

 

SP [ Sno, no ] DIVIDE Y (SP WEPE Sno = 2) [ no ]

 

5) ,

 

(((S RENAE Sno AS FirstSno) [ FirstSno, City ] JOIN

(S RENAE Sno AS SecondSno) [ SecondSno, City ])

WEPE FirstSno < SecondSno) [ FirstSno, SecondSno ]

 

6) , 2.

 

((S[ Sno ] MINUS (SP WEPE no = 2) [ Sno ]) JOIN S) [Sname]

 

.

 

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

 

.

 

--::=

RANGE OF IS -

::=

|

-

-::=

(--)[ WHERE wff ]

-::=

|

. [ AS ]

wff::=

|

NOT wff |

AND wff |

OR wff |

IF THEN wff |

EXISTS (wff) |

FORALL (wff) |

(wff)

::=

(wff) |

-

 

.

1) , .

2) , (. . ).

3) WHERE, wff ( ). wff (EXISTS FORALL), , , , () . , wff, .

4) wff, , , , ..

 

T :

 

RANGE OF T IS R1, R2,..., Rn

 

R1, R2,..., Rn . . , T , . . , .

 

.

 

RANGE OF SX IS S

RANGE OF SPX IS SP

RANGE OF SY IS

(SX) WHERE SX.City = '',

(SX) WHERE EXISTS SPX (SPX.Sno = SX.Sno AND SPX.Pno = 1)

 

SY S , , 1, .

 

, .

 

1) , 2.

 

SX.Sname WERE EXISTS SPX (SPX.Sno = SX.Sno AND SPX.Pno = 2)

 

2) , .

 

SX.Sname WERE EXISTS SPX (SX.Sno = SPX.Sno AND

EXISTS (.no = SPX.no AND PX.Color = ''))

 

3) , .

 

SX.Sname WERE FORALL (EXISTS SPX (SPX.Sno = SX.Sno AND SPX.Pno = .no))

 

, , , , () .

 

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

 





:


: 2017-01-28; !; : 358 |


:

:

- - , .
==> ...

1675 - | 1636 -


© 2015-2024 lektsii.org - -

: 0.137 .