plik


Relacyjne bazy Relacyjne bazy danych danych Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski T. Pankowski, Model relacyjny 1 T. Pankowski, Model relacyjny 2 Model danych Model danych Baza danych Baza danych Baza danych: Model danych: " jest logicznie spjnym zbiorem danych posiadajcych okre[lon struktur, " Aspekt strukturalny: Zbir struktur danych, zbir operacji na na ktrych mo|na wykonywa okre[lone operacje (aspekt skBadniowy i tych strukturach, zbir zale|no[ci midzy danymi. operacyjny); " Aspekt semantyczny: Ustalenie znaczeD  znaczenie " reprezentuje pewien fragment [wiata rzeczywistego zwanego dziedzin (semantyka) struktur danych wzgldem wiedzy o [wiecie przedmiotow (application domain); zmiany w dz.p. odzwierciedlane s w rzeczywistym, okre[lenie semantyki (warto[ci) operacji. bazie danych (aspekt semantyczny); " Aspekt pragmatyczny: Okre[lenie zasad korzystania z " jest projektowana, tworzona i utrzymywana z punktu widzenia przydatno[ci dla okre[lonych zastosowaD, ktrymi zainteresowana jest modelu danych w systemie bazy danych dla rozwizywania okre[lona grupa u|ytkownikw (aspekt pragmatyczny). konkretnych problemw (reprezentacja stanu systemu Z baz danych zwizane s: rzeczywistego, formuBowanie zapytaD, wykonywanie transakcji, ...). " zrdBo, z ktrego wyprowadzane s dane (dz.p.); " okre[lony poziom interakcji ze zdarzeniami zachodzcymi w dz.p.; " grupa u|ytkownikw czynnie zainteresowana zawarto[ci bazy danych. T. Pankowski, Model relacyjny 3 T. Pankowski, Model relacyjny 4 Relacyjny model danych Relacyjne (SQL-owe) bazy danych Relacyjny model danych Relacyjne (SQL-owe) bazy danych Relacyjne bazy danych = SQL-owe bazy danych E.F. Codd, "A relational model of data for large shared " wykraczaj istotnie poza teoretyczny model relacyjny (wBczaj data banks", Communications of ACM 13 (3), 1970, ss. koncepcje obiektowo[ci, XML, programowanie), 377-387. SQL-owe bazy danych " standard SQL-92 Model danych (podstawa teoretyczna): " standard SQL:1999, SQL:2003 " struktury: dane proste (atomowe), krotki, tabele Najwa|niejsze relacyjne SZBD: (relacje); " Oracle 9i, 10g " MS SQL Server 2000, 2005, 2008 " operacje: operacje algebry relacji, rachunki relacji, operacje aktualizacji; " DB2, Sybase, Interbase, ... Inne systemy relacyjne " zale|no[ci: zale|no[ci funkcyjne (klucze gBwne), " dBASE, Clipper, Xbase (stare systemy powszechne w Polsce) zale|no[ci referencyjne (klucze obce), ograniczenia na " Access (Microsoft) warto[ci, ... " MySQL, PostgreSQL (oprogramowanie wolne). T. Pankowski, Model relacyjny 5 T. Pankowski, Model relacyjny 6 Relacyjny model danych Relacyjny model danych Relacyjny model danych Relacyjny model danych Atrybut  symbol, nazwa (np. Nazwisko, NrEwid, DataUr, Cena, ...), U = {A1,...,An}  zbir atrybutw. Dziedzina atrybutu  Dom(A), zbir dopuszczalnych warto[ci atrybutu A. Wszystkie warto[ci s proste (atomowe). Wyr|niona warto[ pusta NULL " Dom(A). Krotka (wiersz, rekord) typu U r = [A1:a1,...,An:an], ai " Dom(Ai), [ ]  krotka pusta, r = (a1,..., an)  zapis uproszczony, gdy ustalona jest kolejno[ atrybutw, Tabela (relacja) R typu U  skoDczony zbir (wielozbir  mog wystpowa duplikaty!) krotek typu U. Formalnie: Krotka jest funkcj z U do V=Dom(A1) *" ... *" Dom(An), r : U ! V, r (Ai) = r.Ai " Dom(Ai) 7 8 Algebra relacji Operacje na tabelach (relacjach) Algebra relacji Operacje na tabelach (relacjach) Att  nieskoDczony i przeliczalny zbir atrybutw, Dwie grupy operacji (wyra|alne za pomoc sze[ciu Val  zbir warto[ci podstawowych): Algebr relacji nazywamy nastpujc struktur: AlgRelAtt,Val = (Tab, {*"X,  X, X, X Y, , E}), 1. Operacje mnogo[ciowe - wynikaj z faktu, |e gdzie: tabela jest zbiorem: Tab  zbir wszystkich tabel utworzonych nad zbiorami Att i Val; *"X  suma mnogo[ciowa tabel typu X, X " Att (X jest skoDczony), " suma, r|nica, przekrj.  X  r|nica mnogo[ciowa tabel typu X, 2. Operacje relacyjne - wynikaj z faktu, |e tabela X  projekcja tabeli na zbir X, X Y  przemianowanie tabeli poprzez zmian nazw z X na jest (wielo)zbiorem funkcji: odpowiadajce im nazwy z Y, " projekcja, przemianowanie, zBczenie (naturalne i  zBczenie tabel o dowolnych typach, iloczyn kartezjaDski), selekcja, zBczenia zewntrzne, E  selekcja z tabeli wedBug warunku E. podzielenie. T. Pankowski, Model relacyjny 9 T. Pankowski, Model relacyjny 10 Suma mnogo[ciowa Suma mnogo[ciowa Operacje mnogo[ciowe  suma Operacje mnogo[ciowe  suma R R *" S = { t | t " R (" t " S}  " R, S  tabele jednakowego typu U, wynik jest zbiorem, nie zawiera duplikatw " Wynik  tabela typu U. " Suma mnogo[ciowa (union): select * from R union select * from S R *" S = { t | t " R (" t " S}. " SQL (UNION  usuwa duplikaty, UNION ALL  pozostawia duplikaty) R *"ALL S = { (k+j)*t | k*t " R (" j*t " S}  select * from Student S wynik jest wielozbiorem, zawiera duplikaty. union select * from Pracownik (k*t " R oznacza, |e krotka t wystpuje k razy w tabeli R) Student Pracownik Student *"ALL Pracownik select * from R union all select * from S T. Pankowski, Model relacyjny 11 T. Pankowski, Model relacyjny 12 Operacje mnogo[ciowe  r|nica Operacje mnogo[ciowe  r|nica Suma mnogo[ciowa Suma mnogo[ciowa " R, S  tabele jednakowego typu U, " Wynik  tabela typu U. R S R *" S R*"ALLS " R|nica mnogo[ciowa (difference): R  S = { t | t " R '" t " S}. " SQL (EXCEPT  usuwa duplikaty): select * from Student EXCEPT select * from Pracownik P select * from Student as S where not exists (select * from Pracownik P where S.Nazwisko=P.Nazwisko and S.Kierunek = P.Kierunek) Student Pracownik Student  Pracownik T. Pankowski, Model relacyjny 13 T. Pankowski, Model relacyjny 14 R|nica mnogo[ciowa R|nica mnogo[ciowa R|nica mnogo[ciowa R|nica mnogo[ciowa S S  R = { t | t " S '" t " R}  S R S  R S LDupR wynik jest zbiorem, nie zawiera duplikatw select * from S except select * from R R S  LDup R = { k*t | k*t " S '" t " R}  wynik jest wielozbiorem, zawiera duplikaty select * from S where not exists( select * from R where R.A=S.A and S.B=R.B) T. Pankowski, Model relacyjny 15 T. Pankowski, Model relacyjny 16 Operacje mnogo[ciowe  przekrj Operacje mnogo[ciowe  przekrj Przekrj mnogo[ciowy Przekrj mnogo[ciowy R )" S = { t | t " R '" t " S}  " R, S  tabele jednakowego typu U, R wynik jest zbiorem, nie zawiera duplikatw " Wynik  tabela typu U. " Przekrj mnogo[ciowy (intersection): select * from R intersect select * from S R )" S = { t | t " R '" t " S}. R )" S = S )" R " SQL (INTERSECT  usuwa duplikaty): : R )"LDup S = { k*t | k*t " R '" t " S}  select * from Student INTERSECT select * from Pracownik P wynik jest wielozbiorem, zawiera duplikaty select * from Student as S select * from R where exists (select * from Pracownik P where S.Nazwisko=P.Nazwisko where exists( and S.Kierunek = P.Kierunek) S select * from S where R.A=S.A and S.B=R.B) Student Pracownik Student )" Pracownik select * from S where exists( select * from R T. Pankowski, Model relacyjny 17 18 where R.A=S.A and S.B=R.B) Przekrj mnogo[ciowy Operacje na krotkach  projekcja Przekrj mnogo[ciowy Operacje na krotkach  projekcja PrzykBad: {A,C}([A:a, B:b, C:c]) = [A:a, C:c] R S R )" S R)"LDupS S)"LDupR Def. (projekcja krotki na zbir atrybutw) Niech r bdzie krotk typu U, i niech X bdzie podzbiorem U, X " U. Projekcj (rzutem, ograniczeniem) (ang. projection) krotki r na zbir X, co oznaczamy X(r), nazywamy krotk t typu X tak, ktra jest identyczna z krotk r na zbiorze atrybutw X, tj.: t = X(r), je[li dla ka|dego A "X, t.A = r. A. Gdy X = {} ({} oznacza zbr pusty), to projekcja jest krotk pust [] PrzykBad: {}([A:a, B:b, C:c]) = []. 19 T. Pankowski, Model relacyjny 20 Operacje na krotkach  przemianowanie Operacje na krotkach  przemianowanie Operacje na krotkach  zBczenie Operacje na krotkach  zBczenie PrzykBad: Def: (zBczenie krotek) A D([A:a, B:b, C:c]) = [D:a, B:b, C:c]. Niech dane bd: Def: (przemianowanie atrybutw w krotce) r  krotka typu X, s  krotka typu Y. Niech r bdzie krotk typu U, B atrybutem w U i C atrybutem nie nale|cym do U. Przemianowaniem atrybutu B na C w krotce r, co oznaczamy B C(r), nazywamy Je[li zbir r *" s jest krotk, to nazywamy go zBczeniem naturalnym r i s i oznaczamy r s. krotk t powstaB z r przez zamian atrybutu B na C, tj. tak krotk t typu Je[li r *" s nie speBnia warunkw krotki, to mwimy, |e r i s s niezBczalne. U  {B} *" {C}, |e: t.A = r. A, dla ka|dego A " U  {B}, PrzykBad: t.C = t.B. [A:a,B:b,C:c] [D:d,E:e] = [A:a,B:b,C:c,D:d,E:e]  krotki rozBcznych typw; [A:a,B:b,C:c] [B:b,E:e] = [A:a,B:b,C:c,E:e]  krotki nierozBcznych typw; Uoglnienie na cigi atrybutw: [A:a,B:b,C:c] [] = [A:a,B:b,C:c]  zBczenie z krotk pust nie zmienia krotki; Niech X=(B1, & , Bk) i Y=(C1, & , Ck) bd cigami atrybutw, X " U, Y )" U = {}. Przemianowanie atrybutw z X na odpowiadajce im atrybuty z Y w krotce r definiujemy nastpujco: [A:a, B:b, C:c] i [B:d, E:e]  krotki niezBczalne ! X Y(r) = Bk Ck(... (B1 C1(r))...) suma [A:a, B:b, C:c, B:d, E:e] nie jest krotk bo atrybut B wystpuje dwa razy  raz z warto[ci 'b' i powtrnie z warto[ci 'd'. 21 T. Pankowski, Model relacyjny 22 WBa[ciwo[ci projekcji i zBczenia krotek WBa[ciwo[ci projekcji i zBczenia krotek SpeBnianie warunku przez krotk SpeBnianie warunku przez krotk Def: (warunek nad zbiorem atrybutw U) {}(t) = []  wynikiem projekcji krotki na zbir pusty jest krotka pusta []; Niech U bdzie zbiorem atrybutw, a Const  zbiore staBych (liczb, tekstw). Niech: r r = r  zBczenie krotki z sam sob nie zmienia krotki; A, A' " U, c " Const,  "{=, !=, <, <=, >, >=, like, ... }  operator porwnania Warunkiem nad U nazywamy wyra|enie logiczne E o nastpujcej skBadni: r s = s t  zBczenie krotek jest przemienne; E ::= A  c | A  A' | (E ) | not E | E or E | E and E Krotka r typu U speBnia warunek E, r (s t) =(r s) t  zBczenie krotek jest Bczne; E (r ) = TRUE, je[li wyra|enie powstaBe z E przez podstawienie za ka|de wystpienie atrybutu r [] = r  krotka pusta jest elementem neutralnym dla zBczenia; A warto[ci r.A jest prawdziwe. T. Pankowski, Model relacyjny 23 T. Pankowski, Model relacyjny 24 SpeBnianie warunku przez krotk SpeBnianie warunku przez krotk SpeBnianie warunku przez krotk SpeBnianie warunku przez krotk Krotki: r = [NrStud:2345, Kierunek: mat ] PrzykBad: s = [NrStud:2346, Kierunek:NULL] E := (Kierunek= mat or Kierunek= fiz ) Warunek: E a" Kierunek= mat (Kierunek= mat or Kierunek= fiz )([NrStud:2345, Kierunek: mat ]) = TRUE SpeBnianie: E(r) = TRUE (Kierunek= mat or Kierunek= fiz )([NrStud:2345, Kierunek: inf ]) = FALSE E(s) != TRUE, E(s) = UNKNOWN Uwaga: (Kierunek= mat or Kierunek= fiz )([NrStud:2345, Kierunek:NULL]) = UNKNOWN Wystpowanie warto[ci NULL powoduje, |e dziaBamy w logice trjwarto[ciowej z warto[ciami logicznymi: {TRUE, FALSE, UNKNOWN} (lub {T, F, U}). Dowolne porwnanie z NULL daje warto[ logiczn UNKNOWN. t.A  NULL = UNKNOWN, NULL  v = UNKNOWN dla ka|dego v, rwnie| rwnego NULL. T. Pankowski, Model relacyjny 25 T. Pankowski, Model relacyjny 26 Operacje na tabelach Operacje na tabelach Operacje na tabelach Operacje na tabelach 1. Projekcja: X(R) = {X(r) | r " R } Projekcja: 2. Przemianowanie: X(R) = {X(r) | r " R } X Y(R) := {X Y(r) | r " R } 3. ZBczenie naturalne: R S = {r s | r " R, s " S } 5. Selekcja: E(R ) = {r | r " R '" E (r ) = TRUE} T. Pankowski, Model relacyjny 27 T. Pankowski, Model relacyjny 28 Projekcja Projekcja Projekcja Projekcja Problem duplikatw SQL: Czy (pielgniarka, 1 500,00) powinna dwa razy wystpowa w select Stanowisko, PBaca {Stanowisko, PBaca} (Pracownik)? from Pracownik - tak, je[li chcemy wyliczy [redni pBac, - nie, je[li sporzdzamy wykaz stanowisk i pBace na tych stanowiskach. usuwanie duplikatw: select distinct Stanowisko, PBaca Szczeglny przypadek: from Pracownik {}(R) = if R = {} then {} else {[]} T. Pankowski, Model relacyjny 29 T. Pankowski, Model relacyjny 30 Operacje na tabelach Przemianowanie (przykBad) (przykBad) Operacje na tabelach Przemianowanie Dla relacji: Studenci(IdStud, Nazwisko, Data_ur, Miejscowo[) Przemianowanie: Miejscowo[ Miasto(Studenci) A B(R) := {A B(r) | r " R } SQL: select IdStud, Nazwisko, Data_ur, Miejscowo[ as Miasto from Studenci T. Pankowski, Model relacyjny 31 T. Pankowski, Model relacyjny 32 ZBczenie naturalne (c.d.) ZBczenie naturalne (c.d.) Operacje na tabelach Operacje na tabelach ZBczenie naturalne: R S = {r s | r " R, s " S } > < T. Pankowski, Model relacyjny 33 T. Pankowski, Model relacyjny 34 ZBczenie naturalne (c.d.) ZBczenie naturalne (c.d.) ZBczenie naturalne (c.d.) ZBczenie naturalne (c.d.) > < W zBczenie naturalnym dwch tabel R i S typw odpowiednio X i Y: " atrybuty wystpujce w X mog wystpowa tak|e w Y, " relacja wynikowa zawiera sum atrybutw z X i Y (bez powtrzeD), " Bczone s te krotki, ktre na wsplnych atrybutach maj jednakowe warto[ci. T. Pankowski, Model relacyjny 35 T. Pankowski, Model relacyjny 36 ZBczenie naturalne (c.d.) ZBczenie  wBa[ciwo[ci ZBczenie naturalne (c.d.) ZBczenie  wBa[ciwo[ci Szczeglne przypadki zBczenia: R relacja typu X, S  relacja typu Y. 1. Je[li X = Y, to R S = R )" S zBczenie naturalne jest przekrojem mnogo[ciowym. SQL: select Nazwisko, P.OddziaB, Ordynator 2. Je[li X )" Y = {}, to zBczenie jest iloczynem from Pracownik P, OddziaB O kartezjaDskim. where P.OddziaB = O.OddziaB 3. R {[]} = R. lub: select Nazwisko, P.OddziaB, Ordynator 4. R {} = {}. from Pracownik P join OddziaB O on P.OddziaB = O.OddziaB T. Pankowski, Model relacyjny 37 T. Pankowski, Model relacyjny 38 Ilustracja wBa[ciwo[ci (4) Ilustracja wBa[ciwo[ci (4) ZBczenie  wBa[ciwo[ci ZBczenie  wBa[ciwo[ci Sprz IdKli,IdTow(Sprz) IdKli,Data(Sprz) Twierdzenie (wBa[ciwo[ci zBczenia naturalnego i kartezjaDskiego) IdKli IdTow Data IdKli IdTow IdKli Data R  tabela typu U, wwczas: a x 1 a x a 1 1. R S = S R a x 2 a y a 2 zBczenie jest przemienne. a y 2 b y b 3 b y 3 2. (R S) T = R (S T) zBczenie jest Bczne. IdKli,IdTow(Sprz) IdKli,Data(Sprz) 3. Je[li X " U, to R X (R) = R zBczenie tabeli z dowoln swoj projekcj daje w wyniku R. IdKli IdTow Data a x 1 4. Je[li X *" Y = U, to R "X(R) Y(R) a x 2 tabela jest zawarta w zBczeniu dowolnych dwch swoich ? a y 1 projekcji, ktrych suma typw jest rwna typowi relacji. a y 2 Zachodzi zawieranie a nie rwno[ (!). b y 3 Sprz "{IdKli,IdTow}(Sprz) {IdKli,Data}(Sprz), krotka [a, y, 1] nie nale|y do Sprz ! T. Pankowski, Model relacyjny 39 T. Pankowski, Model relacyjny 40 Ilustracja wBa[ciwo[ci (4) Ilustracja wBa[ciwo[ci (4) Operacje na tabelach Operacje na tabelach Sprz IdKli,IdTow(Sprz) IdKli,Data(Sprz) IdKli IdTow Data IdKli IdTow IdKli Data a x 1 a x a 1 Selekcja: a x 2 a y a 2 a y 2 b y b 3 E(R ) = {r | r " R '" E (r ) = TRUE} b y 3 IdKli,IdTow(Sprz) IdKli,Data(Sprz) Wynikiem selekcji jest zbir tych krotek tabeli R, IdKli IdTow Data a x 1 ktre speBniaj warunek E. a x 2 ? a y 1 a y 2 b y 3 T. Pankowski, Model relacyjny 41 T. Pankowski, Model relacyjny 42 Selekcja - przykBad Selekcja - przykBad Pochodne operacje na tabelach Pochodne operacje na tabelach Iloczyn kartezjaDski: R MN S = X M.X(R) Y N.Y(S) Ka|da krotka z R jest Bczona z ka|d krotk z S. Je[li R ma nR kolumn i mR wierszy, a S ma nS kolumn i mS wierszy, to select * from Studenci R NM S ma nR + nS kolumn i mR*mS wierszy. where Data_ur >  1981.12.31 and Miejscowosc < >  PoznaD T. Pankowski, Model relacyjny 43 T. Pankowski, Model relacyjny 44 ZBczenie warunkowe, ZBczenie warunkowe, Iloczyn kartezjaDski (c.d.) -zBczenie (-join) Iloczyn kartezjaDski (c.d.) -zBczenie (-join) P PO O Definicja (-zBczenie) Niech R i S bd tabelami typw odpowiednio X i Y, a E niech bdzie warunkiem selekcji nad zbiorem atrybutw X *" Y. ZBczeniem (warunkowym) tabel R i S, wzgldem warunku SQL: E, nazywamy selekcj zBczenia naturalnego R i S select P.Nazwisko, P.OddziaB, O.OddziaB, O.Ordynator wzgldem warunku E from Pracownik P, OddziaB O lub R E S= E (R S), select P.*, O.* from Pracownik P, OddziaB O T. Pankowski, Model relacyjny 45 T. Pankowski, Model relacyjny 46 ZBczenia zewntrzne ZBczenie zewntrzne lewostronne ZBczenia zewntrzne ZBczenie zewntrzne lewostronne (OUTER JOIN) LEFT OUTER JOIN (LOJ) (OUTER JOIN) LEFT OUTER JOIN (LOJ) Definicja Niech R i S bd tabelami typw odpowiednio X i Y, a E niech bdzie Celem wprowadzenia zBczenia zewntrznego jest to, aby w relacji warunkiem selekcji nad zbiorem atrybutw X *" Y. wynikowej zawarte byBy wszystkie krotki nale|ce do jednego z Lewostronnym zBczeniem zewntrznym tabel R i S wzgldem E, co argumentw (relacji le|cej po lewej bdz po prawej stronie operatora), albo do obydwu tych argumentw i to niezale|nie od oznaczamy, R +E S, nazywamy nastpujc tabel typu X *" Y: tego, czy dla danej krotki istnieje dopasowana do niej krotka R +E S= R E S *" {t Null(Y  X) | t " R  X(R E S)} nale|ca do drugiej relacji, czy nie. Wyr|niamy: Do wyniku nale| wic wszystkie krotki lewego operanda (R) zBczone 1. ZBczenie zewntrzne lewostronne - LEFT OUTER JOIN bdz z dopasowanymi krotkami tabeli S, bdz z warto[ciami NULL, gdy brak dla nich w S dopasowanych krotek. 2. ZBczenie zewntrzne prawostronne - RIGHT OUTER JOIN 3. ZBczenie zewntrzne peBne - FULL OUTER JOIN T. Pankowski, Model relacyjny 47 T. Pankowski, Model relacyjny 48 prawostronne RIGHT OUTER prawostronne RIGHT OUTER ZBczenie zewntrzne lewostronne ZBczenie zewntrzne lewostronne JOIN (ROJ) JOIN (ROJ) - przykBad - przykBad Podaj dane o wszystkich studentw wraz z informacjami o zdanych przez nich egzaminach: Definicja Niech R i S bd tabelami typw odpowiednio X i Y, a E niech bdzie warunkiem selekcji nad zbiorem atrybutw X *" Y. Prawostronnym zBczeniem zewntrznym tabel R i S wzgldem E, co oznaczamy, R +E S, nazywamy nastpujc tabel typu X *" Y: R +E S= R E S *" {Null(X  Y) t| t " S  Y(R E S)} Do wyniku nale| wic wszystkie krotki prawego operanda (S) zBczone bdz z dopasowanymi krotkami tabeli R, bdz z warto[ciami NULL, gdy brak dla nich w R dopasowanych krotek. T. Pankowski, Model relacyjny 49 T. Pankowski, Model relacyjny 50 ZBczenie zewntrzne peBne ZBczenie zewntrzne peBne ZBczenie zewntrzne prawostronne ZBczenie zewntrzne prawostronne FULL OUTER JOIN (FOJ) FULL OUTER JOIN (FOJ) - przykBad - przykBad Definicja Niech R i S bd tabelami typw odpowiednio X i Y, a E niech bdzie warunkiem selekcji nad zbiorem atrybutw X *" Y. PeBnym zBczeniem zewntrznym tabel R i S wzgldem E, co oznaczamy, R ++E S, nazywamy sum mnogo[ciow zBczeD lewo- i prawostronnego tabel R i S wzgldem warunku E: R ++E S= R +E S *" R +E S T. Pankowski, Model relacyjny 51 T. Pankowski, Model relacyjny 52 ZBczenie zewntrzne peBne -przykBad ZBczenie zewntrzne peBne -przykBad Podzielenie (division) Podzielenie (division) Podaj wszystkich studentw, wszystkich pracownikw wraz z informacjami o promotorstwie prac magisterskich. Definicja Niech dane bd relacje R(U) i S(X) i niech X " U. Podzieleniem relacji R(U) przez S(X) nazywamy relacj R S, tak|e: R S := {t "U  X(R) | " s " S. t s " R}. T. Pankowski, Model relacyjny 53 T. Pankowski, Model relacyjny 54 Podzielenie  wyra|enie za pomoc Podzielenie  wyra|enie za pomoc Podzielenie - przykBad Podzielenie - przykBad innych operacji innych operacji T1 !U  X (R) T1 !NrStud(Egzamin) Podaj numery studentw, ktrzy zdawali egzamin z ka|dego przedmiotu. T2 !U  X ((S T1)  R) T2 !NrStud((Przedmiot T1)  Egzamin) T = T1  T2 T = T1  T2 Przedmiot T1 Przedmiot T1  Egzamin T. Pankowski, Model relacyjny 55 T. Pankowski, Model relacyjny 56 Podzielenie (c.d) Podzielenie (c.d) (c.d) (c.d) Podzielenie Podzielenie Podaj numery studentw, ktrzy zdawali egzamin z ka|dego przedmiotu. {e.NrStud | Egzamin(E) '""p(Przedmiot(p) ! "e1 (Egzamin(e1) '" e1.NrPrzed=p.NrPrzed '" e1.NrStud= e.NrStud))} Zastpienie ": "x( !  ) !("x('" )) Wyra|a zapytanie typu  dla-ka|dego {e.NrStud | Egzamin(E) '""p(Przedmiot(p) '" Schemat rozumowania (z podwjn negacj): "e1 (Egzamin(e1) '" e1.NrPrzed=p.NrPrzed '" e1.NrStud= e.NrStud))} studenci, dla ktrych nie istnieje przedmiot, z ktrego nie zdawali egzaminu select E.NrStud from Egzamin E select distinct E.NrStud where not exists (select * from Egzamin E from Przedmiot P where not exists (select * where not exists (select * from Przedmiot P from Egzamin E1 where not exists (select * where E1.NrPrzed = P.NrPrzed and E1.NrStud = E.NrStud))) from Egzamin E1 where E1.NrPrzed = P.NrPrzed and E1.NrStud = E.NrStud))) 57 58

Wyszukiwarka

Podobne podstrony:
01 Projektowanie relacyjnej bazy danych Czym jest relacyj
arkusz Historia poziom r rok 01 probny MODEL
[03] Bazy Danych Relacyjny Model Danych
t informatyk12[01] 02 101
r11 01
2570 01
introligators4[02] z2 01 n
Rzutparteru Model (1)
Biuletyn 01 12 2014
beetelvoiceXL?? 01
01
2007 01 Web Building the Aptana Free Developer Environment for Ajax
9 01 07 drzewa binarne

więcej podobnych podstron