3d4df0a7acf3e55645a4b59202bd20aa.ppt
- Количество слайдов: 29
Релационна алгебра Богдан Шишеджиев - Релационна алгебра 1
Алгебрични операции • Означения Ще означим с A(X) множеството на всички възможни реализации на релационната схема X. L/Y е ограничението на реализацията L върху множеството от атрибути Y. • Релационни операции • сума R+S • произведение или естествено съединение R*S • декартово произведение R S • обединение R S • пресичане R S • допълнение R • разлика R-S Богдан Шишеджиев - Релационна алгебра • Проекция YR • Деление R S • Селекция ER • Съединение R ⋈X 1ΘY 1 S • Външно съединение R ⟕X 1ΘY 1 S (⟖ ⟗) 2
Примерна база D 1 = { гайка, болт, винт} D 2 = { петър, павел, мария } D 3 = { a, b, c } X={ ЧАСТ: D 1, ДОСТАВЧИК: D 2 } Y={ЧАСТ: D 1, ПРОЕКТ: D 3} Z={ЧАСТ: D 1, ДОСТАВЧИК: D 2, ПРОЕКТ: D 3 } R: ЧАСТ ДОСТАВЧИК S: ЧАСТ ПРОЕКТ гайка петър гайка a гайка павел гайка b болт мария болт a Сума Произведение Богдан Шишеджиев - Релационна алгебра 3
Операция сума (1) Z=X Y (2) R+S = { L A(Z) такава, че(L/X R) или (L/Y S) } R+S ЧАСТ ДОСТАВЧИК ПРОЕКТ петър a гайка петър b гайка петър c гайка павел a гайка павел b гайка павел c болт мария a болт мария b болт мария c болт петър a болт павел a гайка мария b гайка Примерна база 4
Операция произведение или естествено съединение (1) Z=X Y (2) R*S = { L A(Z) такава, че(L/X R) и (L/Y S) } R*S ЧАСТ ДОСТАВЧИК ПРОЕКТ гайка петър a гайка петър b гайка павел a гайка павел b болт мария a Богдан Шишеджиев - Релационна алгебра Примерна база 5
Преименуване на атрибути • S(Y) = b/a. R(X) (1) Y = X където атрибутът a е преименован b (2) S(Y) = R(X) S: ЧАСТ ПРОЕКТ гайка a гайка b болт T= ПИ/ЧАСТS: a ПИ ПРОЕКТ гайка b болт Богдан Шишеджиев - Релационна алгебра a a 6
Операция декартово произведение X и Y нямат общи атрибути T= ПИ/ЧАСТS: (1) Z=X Y (2) R S = R*S R: ЧАСТ ПИ ПРОЕКТ гайка R Т ЧАСТ b болт ДОСТАВЧИК a a ДОСТ. ПИ ПРОЕКТ гайка павел гайка петър гайка a болт S: петър мария гайка петър гайка b гайка петър болт а гайка павел гайка a ЧАСТ ПРОЕКТ гайка a гайка b гайка павел гайка b болт a гайка павел болт а болт мария гайка a болт мария гайка b болт мария болт a Еквисъединение Богдан Шишеджиев - Релационна алгебра 7
Операция обединение (1) Y = X (2) R S = R+S = { L A(X) / L R L S } R: ЧАСТ ДОСТАВЧИК гайка петър гайка павел болт мария R S: ЧАСТ ДОСТАВЧИК гайка петър гайка павел болт мария Богдан Шишеджиев - Релационна алгебра 8
Операции сечение и разлика (1) Y = X – една и съща схема (2) R S = R*S = { L A(X) : (L R) (L S) } (3) R-S = { L A(X) : (L R) (L S) } R: ЧАСТ ДОСТАВЧИК S: ЧАСТ ДОСТАВЧИК гайка петър гайка павел болт R S: петър мария болт мария ЧАСТ ДОСТАВЧИК гайка петър болт R -S: ЧАСТ гайка ДОСТАВЧИК павел мария Богдан Шишеджиев - Релационна алгебра 9
Операция допълнение (1) Y = X (2) ¬R(X) = { L A(X) / L R } R: ЧАСТ ДОСТАВЧИК гайка петър гайка павел болт мария ¬R : ЧАСТ ДОСТАВЧИК винт петър винт павел винт мария болт петър болт павел гайка мария Богдан Шишеджиев - Релационна алгебра 10
Операция проекция (1) Z = Y (2) YR ={L A(Y) такава, че L' A(X), (L'/Y = L) (L' R) } Пример: X={ЧАСТ: D 1, ДОСТАВЧИК: D 2, ПРОЕКТ: D 3} Y={ЧАСТ: D 1, ДОСТАВЧИК: D 2} R ЧАСТ ДОСТАВЧИК ПРОЕКТ гайка петър a гайка петър b болт павел a YR ЧАСТ ДОСТАВЧИК гайка петър болт павел Богдан Шишеджиев - Релационна алгебра 11
Деление Y X и S ≠ (1) Z = X-Y (2)R S = {L A(Z) такава, че L' A(X) ако (L'/Z = L) и (L'/Y S), то L' R } или още R S = z. R - z ((S z. R) - R) Пример: X={ЧАСТ: D 1, ДОСТАВЧИК: D 2} Y={ДОСТАВЧИК: D 2} R : ЧАСТ ДОСТАВЧИК винт петър болт павел болт ДОСТАВЧИК павел болт R S петър винт ЧАСТ мария гайка S : петър винт павел болт петър Богдан Шишеджиев - Релационна алгебра 12
Операция селекция (ограничение, избор) 1) Y =X 2) ER = { L A(X) / (L R) и (E(L) = true) } R КЛАС ИМЕ. ГРАД РАЖД СПОРТ 6 петър софия 21. 02. 1995 футбол 5 иван варна 30. 04. 1996 баскетбол 6 георги правец 12. 08. 1995 футбол 7 павел пловдив 03. 06. 1994 тенис 5 атанас софия 05. 12. 1995 плуване E =(ГРАД='софия') (РАЖД ≤ '30. 12. 1995') ((СПОРТ='плуване') (SPORT='футбол')) E R КЛАС ИМЕ. ГРАД РАЖД СПОРТ 6 петър софия 21. 02. 1995 футбол 5 атанас софия 05. 12. 1995 плуване Богдан Шишеджиев - Релационна алгебра 13
Операция съединение X и Y нямат общи атрибути q (=, <, >, ≤, ≥, ≠) (1) Z=X Y (2) R ⋈ X 1 или още R ⋈ q Y 1 S = { L A(Z) така, че L/X R et L/Y S и (X 1 q Y 1)(L) = true } X 1 q Y 1 S = X 1 q Y 1 (R S) R: A B C S: D E 9 8 7 3 6 5 4 5 3 2 1 R ⋈B≤D S : A B C D E 4 3 2 1 3 4 6 3 2 1 5 6 6 5 4 5 6 Богдан Шишеджиев - Релационна алгебра 14
Операция съединение • Еквисъединение R ⋈ЧАСТ=ПИ S ЧАСТ ДОСТ. ПИ ПРОЕКТ гайка петър гайка a гайка петър гайка b гайка павел гайка a гайка павел гайка b болт мария болт a Примерна база Богдан Шишеджиев - Релационна алгебра 15
Свойства на операциите • • Идемпотентност на сумата : R+R = R Идемпотентност на произведението : R*R = R Асоциативност на сумата: R+(S+T) = (R+S)+T Асоциативност на произведението: R*(S*T) = (R*S)*T Комутативност на сумата: R+S = S+R Комутативност на произведението: R*S = S*R Дистрибутивност на сумата по отношение на произведението: R+(S*T) = (R+S)*(R+T) • Дистрибутивност на произведението по отношение на сумата: R*(S+T) = (R*S)+(R*T) Богдан Шишеджиев - Релационна алгебра 16
JET : #JET 100 101 102 Пример за композиция JETNAME airbus carav PILOTE : CAP 300 200 LOC nice paris toulouse PLNOM serge ADR nice 2 jean paris 3 FLY : #PL 1 claude grenoble #FLY #PL #JET DC AC DH AH it 100 1 100 nice paris 7 8 it 101 2 100 paris toulouse 11 12 it 102 1 101 paris nice 12 13 it 103 3 102 grenoble toulouse 9 11 it 104 3 101 toulouse grenoble 17 18 Богдан Шишеджиев - Релационна алгебра 17
Пример за композиция R 1 : #JET R 1 = #JET, JETNAME JET (проекция) 100 R 2 = #JET, #PL FLY (проекция) 101 R 3 = R 1 * R 2(произведение) 102 R 4 = JETНАМЕ, #PL R 3 (проекция) R 5 = JETНАМЕ JET (проекция) R 6 = R 4 R 5(деление) R 7 = #PL, PLNAME PILOTE [#PL, PLNAME](проекция) R 8 = R 7 * R 6(произведение) ОТГОВОР = PLNAME R 8 [PLNAME] (проекция) R 4 : JETNAME airbus #PL 1 airbus 2 JETNAME airbus 3 carav R 7 : #PL PLNOM 1 serge 2 claude 102 101 #PL 1 101 airbus 1 100 airbus 2 airbus 3 102 #PL PLNOM 3 claude JETNAME airbus 101 R 6 : #JET 100 carav 3 #PL 3 PLNOM claude jean 3 101 3 O: R 8 : 100 3 R 3 : 100 1 carav #JET 2 airbus #PL 1 JETNAME airbus 3 R 5 : R 2 : Богдан Шишеджиев - Релационна алгебра 18
Неопределени стойности TRUE FALSE INDEFI NITE TRUE FALSE E FALSE TRUE FALSE TRUE . . TRUE FALSE INDEFINI TE TRUE FALSE ¬ TRUE Богдан Шишеджиев - Релационна алгебра 19
Външно съединение X Y= (1)Z=X Y (2)R ⟕X 1 q. Y 1 S = T ( (R - XT) W(Y) ) където T = R ⋈ X 1 q. Y 1 S (3) R ⟖X 1 q. Y 1 S = T ( (S - YT) W(X) ) където T = R ⋈ X 1 q. Y 1 S (4) R ⟗X 1 q. Y 1 S = R ⟕X 1 q. Y 1 S R ⟖X 1 q. Y 1 S R: ЧАСТ гайка S ЧАСТ 1 ДОСТАВЧИК гайка болт павел мария винт R ⟗ЧАСТ=ЧАСТ 1 S : ЧАСТ 1 ДОСТАВЧИК гайка павел болт мария винт Богдан Шишеджиев - Релационна алгебра 20
Изчисления върху домени • Разширение • Агрегиране – Sum, Count, Average, Max, Min R Article Prix quant Clou 8. 00 200 boulon 12. 00 100 ecrou 12. 00 120 Total 1600. 00 boulon 1200. 00 ecrou Sum( Total. S) Article Clou S= Article, e(Prix*quant) as Total. R 1440. 00 Total 4240. 00 Богдан Шишеджиев - Релационна алгебра 21
Примерна схема EMPLOYEES(Number, Name, Age, Salary) SUPERVISION(Head, Employee) SUPERVISION EMPLOYEES Number Name Age Salary Head Employee 101 Mary Smith 34 40 210 101 103 Mary Bianchi 23 35 210 103 104 Luigi Neri 38 61 210 104 105 Nico Bini 44 38 231 105 210 Marco Celli 49 60 301 210 231 Siro Bisi 50 60 301 231 252 Nico Bini 44 70 375 252 301 Steve Smith 34 70 375 Mary Smith 50 65 Богдан Шишеджиев - Релационна алгебра 22
Заявки • Да се намерят номерата, имената и възрастта на служителите със заплати над 40 хил. Number, Name, Age ( Salary 40(EMPLOYEES)) Number 101 101 Name Mary Smith Age Age 34 34 34 Salary 40 40 103 104 104 210 Mary Bianchi Luigi Neri Marco Celli 23 38 38 38 49 49 35 61 61 60 105 231 210 252 Nico Bini Siro Bisi Marco Celli Nico Bini 44 50 50 49 44 44 38 60 60 70 231 301 252 375 Siro Bisi Steve Smith Nico Bini Mary Smith 50 34 34 44 50 50 60 70 70 65 301 Steve Smith 34 70 375 Mary Smith 50 65 Богдан Шишеджиев - Релационна алгебра 23
Заявки • Да се намерят началниците, които имат подчинени с големи заплати (над 40) Head(SUPRVISION Employee=Number( Salary 40(EMPLOYEES))) Number 101 Head 104 103 104 210 210 231 105 231 301 252 210 252 301 231 375 252 Name Mary Smith Head Luigi Neri Mary Bianchi Luigi Neri 210 Marco Celli Luigi Neri Marco Celli 301 Siro Bisi Nico Bini Siro Bisi 375 Nico Bini Marco Celli Nico Bini Age Salary 34 40 38 23 61 35 38 61 Head Employee 210 101 210 104 103 49 38 49 50 44 50 60 61 60 60 38 60 301 210 104 301 231 105 70 60 70 70 60 375 301 252 210 Steve Smith Siro Bisi 44 49 44 34 50 301 231 Mary Smith Nico Bini 50 44 65 70 375 252 301 Steve Smith 34 70 375 Mary Smith 50 65 Богдан Шишеджиев - Релационна алгебра 24
Заявки • Да се намерят всички началници с техните имена и заплати Name. H, Salary. H( Number. H, Name. H, Salary. H. Age. H Number, Name. Salary, Age(EMPLOYEES) Number. H=Head(SUPERVISION Employee=Number(EMPLOYEES))) Name. H Number. H Ag Salar Head Age. H Salary. H Name Emplo Numbe Name. H Age. H 101 Mary Smith 34 40 er Number e y yee Name Salary r. H Head Employee 103 Mary Bianchi Age Salary. H 35 23 Name. H 101101 104 Mary Smith 34 40 210 38 101 61 210 Marco 49 Luigi Neri 34 40 210 101 60 Smith Marco Celli Name. H Celli 105 Nico Bini 44 Salary. H 38 103 Mary Bianchi 23 35 210 103 210 Marco Celli 210 60103 49 60 210 103 Mary Marco Celli 23 35 Marco 49 104 231 Luigi Neri 38 50 60 60 61 Siro Bisi 210 104 Bianchi Marco Celli 60 Number Name Nico Bini Age 44 60 70 Head Celli Employee Salary 105 252 Nico Bini Siro Bisi 44 38 231 105 104 Luigi Neri 38 61 210 34 Siro Bisi 301 Steve Smith 34 60104 101 Mary Smith. Steve Smith 40 70 70 210 Marco 49 101 210 375 Marco Celli 210 301 Mary Smith 49 7060 50 65 Steve Smith 103 Mary Bianchi 23 35 65 210 103 231 Nico Bini 44 38 Siro Bisi Mary Smith 60 50 105 231 Siro Bisi 50 301 231 Steve Smith 104 Luigi Neri 38 70 61 210 104 44 70 210252 Marco Nico Bini 60 49 301 210 301 Steve 252 34 375 105 Celli Mary Smith Nico Bini 44 65 38 231 Smith 105 301 Steve Smith 34 70 210 Marco Celli 49 301 Steve 210 34 231375 Siro Bisi 50 60 301 60 231 301 Mary Smith 50 65 231 Siro Bisi 50 60 301 Smith 231 252 Nico Bini 44 70 44 375 70 252 375 Mary 252 50 Smith Salary H 60 60 70 70 25 65
Заявки • Да се намерят служителите, които печелят повече от собствените си началници Number, name, Salary, Numberh, name. H, Salary. H ( Salary>Salary. H ( Number. H, Name. H, Salary. H. Age. H Number, Name. Salary, Age(EMPLOYEES) Number. H=Head(SUPERVISION Employee=Number(EMPLOYEES)))) Number Name Age Salar y Head Employ ee Number Name. H H Age. H Salary. H 101 Mary 34 40 210 Number Smith Name Age Salar Head Name y Salary 103 Number Mary 23 35 210 104 Bianchi Luigi Neri 61 Luigi Neri 38 210 61 104 Luigi Neri 38 61 210 252 Nico Bini 70 252 Nico Bini 44 70 375 105 Nico Bini 44 38 231 101 210 Marco Employ Number Celli Name. H ee H Number. H 103 210 Name. H Marco Celli 104 210 Marco Celli Marco 210 Celli 104 210 Marco 375 Mary Smith Celli 252 375 Mary Smith 105 231 Siro Bisi 49 Age. H Salary. H 49 49 60 49 65 50 50 60 Salary. H 60 60 60 65 60 210 Marco Celli 49 60 301 210 301 Steve Smith 34 70 231 Siro Bisi 50 60 301 231 301 Steve Smith 34 70 252 Nico Bini 44 70 Богдан Шишеджиев - 375 252 375 Релационна алгебра Mary Smith 50 26 65
Заявки • Да се намерят началниците, всичките служители на които печелят повече от 40 хил. Number, Name(EMPLOYEES Number=Head(SUPERVISION) – ( Head(SUPERVISION Employee=Number( Salary 40(EMPLOYEES))))) Head Employee Number Name Age Salary 210 101 101 Number Mary Smith 3434 Name 103 Number. Mary Bianchi 2323 103 301 Mary Bianchi Steve Smith 38 104 301 Luigi Neri 104 375 Luigi Neri 38 Mary Smith 44 105 375 Nico Bini 105 Nico Bini 44 4040 Age 3535 34 6161 50 3838 210 Marco Celli 4949 6060 Number 231 Siro Bisi 5050 6060 Head Name Siro Bisi. Age Salary Head Number Name Age Salary 101 210 Mary Smith 34 252 Nico Bini 40 4444 210 7070 101 Mary Smith 34 40 103 231 Mary Bianchi 23 301 Steve Smith 35 3434 210 Steve Smith 7070 103 Mary Bianchi 23 35 105 375 Nico Bini Mary Smith 38 5050 231 44 375 Mary Smith 6565 105 Nico Bini 44 38 Salary 70 65 210 Head 210 301 231 375 301 Employee 375 101 103 105 Богдан Шишеджиев - Релационна алгебра 103 104 105 210 231 Head 252 210 Head 231 301 375 27
Оптимизация на изразите • • • Нека са дадени E(X), E 1(X 1), E 2(X 2), πAB (σΛ>B(E)) σΛ>B(πAB(E)) F 1 F 2(E) F 1( F 2(E)) X(E) X ( XY(E) F (El ⋈ E 2) El ⋈ F(E 2) ако F X 2 Ако Y 2 X 2 и Y 2 X 1 X 2, то – X 1(El ⋈ E 2) El ⋈ Y 2(E 2) – Y(El ⋈ F E 2) Y( Y 2(El) ⋈ F Y 2(E 2) • F (El ⋈ E 2) El ⋈ F E 2 Богдан Шишеджиев - Релационна алгебра 28
Оптимизация на изразите Номерата на началниците на служители под 30 години Head( Number=Employee Age < 30(EMPLOYEES SUPERVISION)) Head( Number=Employee ( Age < 30(EMPLOYEES SUPERVISION))) Head ( Age < 30(EMPLOYEES) Number=Employee SUPERVISION) Head ( Number( Age < 30(EMPLOYEES)) Number=Employee SUPERVISION) Богдан Шишеджиев - Релационна алгебра 29
3d4df0a7acf3e55645a4b59202bd20aa.ppt