Algebra relacyjna Przykłady:

Slides:



Advertisements
Podobne prezentacje
Równowaga chemiczna - odwracalność reakcji chemicznych
Advertisements

1 Dr Galina Cariowa. 2 Legenda Iteracyjne układy kombinacyjne Sumatory binarne Sumatory - substraktory binarne Funkcje i układy arytmetyczne Układy mnożące.
Czy wiesz, że?... INTERNET …TO JEST SPIS TREŚCI NIEBEZPIECZEŃSTWO SPOŁECZNOŚĆ INTERNETOWA DZIECKO W INTERNECIE ZAUFANE STRONY INTERNETOWE WIRUSY.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
Stężenia Określają wzajemne ilości substancji wymieszanych ze sobą. Gdy substancje tworzą jednolite fazy to nazywa się je roztworami (np. roztwór cukru.
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
Wyszukiwanie informacji w Internecie. Czym jest wyszukiwarka? INTERNET ZASOBY ZAINDEKSOWANE PRZEZ WYSZUKIWARKI Wyszukiwarka to mechanizm, który za pomocą.
Rozliczanie kosztów działalności pomocniczej
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
Excel 2007 dla średniozaawansowanych zajęcia z dnia
Sposób oraz zakres gromadzonych informacji regulują następujące przepisy prawne: 1.ustawa z dnia 19 lutego 2004 r. o systemie informacji oświatowej (Dz.
Wyrażenia Algebraiczne Bibliografia Znak 1Znak 2 Znak 3 Znak 4 Znak 5 Znak 6 Znak 7 Znak 8 Znak 9 Znak 10 Znak 11.
Połączenie towarzystw budownictwa społecznego Opracowano w BNW UMP 2008.
Poczta elektroniczna – e- mail Gmail zakładanie konta. Wysyłanie wiadomości.
EWALUACJA PROJEKTU WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIE J „Wyrównywanie dysproporcji w dostępie do przedszkoli dzieci z terenów wiejskich, w.
Bezpieczeństwo i zdrowie w pracy dotyczy każdego. Jest dobre dla ciebie. Dobre dla firmy. Partnerstwo dla prewencji Co badanie ESENER może nam powiedzieć.
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Rozwiązywanie równań I-go stopnia z jedną niewiadomą
Porównywarki cen leków w Polsce i na świecie. Porównywarki w Polsce.
W KRAINIE TRAPEZÓW. W "Szkole Myślenia" stawiamy na umiejętność rozumowania, zadawania pytań badawczych, rozwiązywania problemów oraz wykorzystania wiedzy.
Algorytmy Informatyka Zakres rozszerzony
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Matematyka przed egzaminem czyli samouczek dla gimnazjalisty Przygotowała Beata Czerniak FUNKCJE.
Działanie 321 „Podstawowe usługi dla gospodarki i ludności wiejskiej” TARGOWISKA STAŁE Europejski Fundusz Rolny na rzecz Rozwoju Obszarów Wiejskich Europejski.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
Warszawska Wyższa Szkoła Informatyki Andrzej Kuska Promotor : dr inż. Paweł Figat Konsultant : mgr inż. Andrzej Ptasznik.
Relacyjny model danych. 2 Model danych Struktury danych Ograniczenia integralnościowe Operacje.
Apteka Oliwna Jak poprawnie złożyć zamówienie
 Przedziałem otwartym ( a;b ) nazywamy zbiór liczb rzeczywistych x spełniających układ nierówności x a, co krócej zapisujemy a
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Mikroprocesory.
PODSTAWY TEORII BAZ DANYCH
Test analizy wariancji dla wielu średnich – klasyfikacja pojedyncza
Schematy blokowe.
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
terminologia, skale pomiarowe, przykłady
On-the-Fly Garbage Collection
Full Text Finder Przegląd Publication Finder
Liczby pierwsze.
FIGURY.
ALGORYTMY I STRUKTURY DANYCH
Funkcja – definicja i przykłady
Budowa, typologia, funkcjonalność
Przewodnik Udoskonalanie listy wyników w wyszukiwarce naukowej
Materiały pochodzą z Platformy Edukacyjnej Portalu
Bezpieczeństwo dostępu do danych w systemie Windows
Problem Plecakowy (Problem złodzieja okradającego sklep)
Broszura firmy To miejsce jest doskonałe na określenie misji firmy
Kwerendy wybierające (Select queries)
Koszyk danych.
Podstawy informatyki Zygfryd Głowacz.
Strukturalne wzorce projektowe
MATEMATYKAAKYTAMETAM
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
Doskonalenie rachunku pamięciowego u uczniów
REGRESJA WIELORAKA.
Obsługa bazy danych z poziomu phpMyAdmin
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
Kwerendy funkcjonalne (Action queries)
Program na dziś Wprowadzenie Logika prezentacji i artykułu
Mikroekonomia Wykład 4.
Andrzej Majkowski informatyka + 1.
Grazyna Mirkowska Matematyka Dyskretna PJWSTK 2001
Zapis prezentacji:

Algebra relacyjna Przykłady: Projektowanie systemów relacyjnych baz danych – R. M. Riordan Northwind.mdb

Instrukcja SELECT SELECT <ListaPól> FROM <ListaZestawówRekordów> <RodzajŁączenia> JOIN <Warunek> WHERE <KryteriaWyboru> GROUP BY <ListaPólGrupujących> HAVING <KryteriaWyboru> ORDER BY <ListaPólPorządkujących>

Logika trójwartościowa

Logika trójwartościowa

Operatory relacyjne Podstawowe operatory relacyjne: wyboru, rzutu, łączenia, dzielenia Pierwsze dwa wpływają na tylko jeden zestaw rekordów. Operator łączenia jest chyba najbardziej fundamentalny w modelu relacyjnym, gdyż definiuje sposób łączenia ze sobą dwóch zestawów rekordów. Ostatni operator, dzielenia, jest rzadko używany, ale stanowi czasem wygodną metodę ustalenia, które rekordy w jednym zestawie rekordów pasują do wszystkich rekordów drugiego zestawu. Wszystkie te operatory są implementowane za pomocą jakiejś formy instrukcji SQL-a SELECT. Można je łączyć w dowolny sposób, mając jedynie na uwadze systemowe ograniczenia dotyczące długości i złożoności instrukcji.

Operatory relacyjne wybór Operator wyboru zwraca tylko te rekordy, które spełniają podane kryteria. Jest on implementowany przy użyciu klauzuli WHERE instrukcji SELECT. SELECT * FROM Pracownicy WHERE Nazwisko = "Davolio"; Kryteria wyboru podane w klauzuli WHERE mogą być dowolnie skomplikowane. Wyrażenia logiczne mogą zawierać operatory AND i OR. Wyrażenie jest obliczane dla każdego rekordu zestawu i jeśli wynikiem jest wartość True, rekord jest dołączany do zestawu wynikowego. Jeśli wyrażenie zwraca dla danego rekordu wartość False lub Null, nie jest on dołączany.

Operatory relacyjne rzut Rzut zwraca tylko podzbiór pól oryginalnego zestawu rekordów. SQL realizuje tę prostą operację przy użyciu pozycji <ListaPól> w instrukcji SELECT, która powoduje włączenie do wynikowego zestawu rekordów tylko pól podanych na tej liście. SELECT Nazwisko, Imię, TelefonWewnętrzny FROM Pracownicy ORDER BY Nazwisko, Imię; Jedyne, co wykonuje klauzula ORDER BY, to sortowanie danych. W tym przypadku spis będzie posortowany alfabetycznie według pola Nazwisko, a w drugiej kolejności według pola Imię.

Operatory relacyjne łączenie Operacje łączenia są najbardziej typowymi operacjami relacyjnymi. Są one z pewnością najistotniejsze dla modelu - nie byłoby możliwe dekomponowanie danych na wiele relacji, gdyby nie można było ich odpowiednio połączyć ze sobą. Dokładnie to robi właśnie operator łączenia. Łączy on ze sobą zestawy rekordów na podstawie porównania jednego lub więcej wspólnych pól. Łączenie jest implementowane za pomocą klauzuli JOIN instrukcji SELECT. Istnieją różne kategorie łączenia w zależności od rodzaju stosowanego porównania pól i sposobu traktowania wyniku tego porównania.

Operatory relacyjne – łączenie RÓWNOŁĄCZENIE Gdy łączenie jest dokonywane na bazie równości, mówimy o równołączeniu (ang. equi-join). W operacji równołączenia zwracane są tylko te rekordy, których podane pola mają równe wartości. Jest to typowy przypadek łączenia tabel uzyskanych w wyniku procesu normalizacji. IDZamówienia jest kluczem głównym tabeli Zamówienia i jednocześnie kluczem obcym tabeli Opisy zamówień. Aby ponownie połączyć te tabele (i w konsekwencji doprowadzić do denormalizacji), należy użyć następującej instrukcji:

Operatory relacyjne – łączenie RÓWNOŁĄCZENIE SELECT Zamówienia.IDZamówienia, Zamówienia.IDKlienta,[Opisy Zamówień].IDProduktu FROM Zamówienia INNER JOIN [Opisy zamówień] ON Zamówienia.IDZamówienia = [Opisy zamówień].IDZamówienia WHERE (((Zamówienia.IDZamówienia)=10248));

Operatory relacyjne – łączenie ŁĄCZENIE NATURALNE Szczególnym przypadkiem równołączenia jest łączenie naturalne. Aby operacja łączenia była łączeniem naturalnym, musi spełniać następujące warunki: Operatorem porównania musi być równość. W łączeniu muszą uczestniczyć wszystkie pola wspólne. Jeden i tylko jeden zbiór pól wspólnych musi być włączony do wynikowego zestawu rekordów. Zasadniczo nie ma niczego magicznego w łączeniach naturalnych. Nie działają one w jakiś szczególny sposób, a aparat bazy danych nie oferuje żadnej specjalnej ich obsługi. Jest to po prostu najbardziej typowa forma łączenia. Tak typowa, że aż otrzymała własną nazwę.

Operatory relacyjne – łączenie ŁĄCZENIE THETA Technicznie wszystkie łączenia są łączeniami typu theta. Zwyczajowo jednak, jeśli operatorem porównania jest operator równości, łączenie nazywane jest równołączeniem albo po prostu łączeniem. Łączenie oparte na jakimkolwiek innym operatorze porównania (o, >, >=, <, <=) jest łączeniem theta. Łączenia theta zdarzają się w praktyce bardzo rzadko, ale mogą być użyteczne przy rozwiązywaniu niektórych problemów. Problemy te dotyczą głównie szukania rekordów zawierających na przykład wartość większą od średniej lub sumy w całym zestawie lub rekordów o wartości należącej do jakiegoś przedziału.

Operatory relacyjne – łączenie ŁĄCZENIE THETA ŚrednieZProduktówKategorii Utworzono dwa rzuty, jeden zawierający średnią liczbę towarów sprzedanych w ramach każdej kategorii, a drugi zawierający całkowite liczby sprzedanych produktów. ProduktyOgółem

Operatory relacyjne – łączenie ŁĄCZENIE THETA Podana niżej instrukcja SELECT, oparta na operatorze porównania >, zwraca spis najlepiej sprzedających się produktów w każdej kategorii: SELECT DISTINCTROW ŚrednieZProduktówKategorii.NazwaKategorii, ProduktyOgółem.NazwaProduktu FROM ŚrednieZProduktówKategorii INNER JOIN ProduktyOgółem ON ŚrednieZProduktówKategorii.IDKategorii = ProduktyOgółem.IDKategorii AND ProduktyOgółem.SprzedażCałkowita > [ŚrednieZProduktówKategorii].[SprzedażŚrednia];

Operatory relacyjne – łączenie ŁĄCZENIE THETA

Operatory relacyjne – łączenie ŁĄCZENIE THETA Lub za pomocą klauzuli WHERE: SELECT DISTINCTROW ŚrednieZProduktówKategorii.NazwaKategorii, ProduktyOgółem.NazwaProduktu FROM ŚrednieZProduktówKategorii INNER JOIN ProduktyOgółem ON ŚrednieZProduktówKategorii.IDKategorii = ProduktyOgółem.IDKategorii WHERE (((ProduktyOgółem.SprzedażCałkowita)>[ŚrednieZProduktówKategorii].[SprzedażŚrednia])) ;

Operatory relacyjne – łączenie ŁĄCZENIE THETA Technicznie wszystkie łączenia, również równołączenia i łączenia naturalne, można wyrazić za pomocą operatora wyboru. W przypadku łączeń theta taka forma jest niemal zawsze najlepsza, gdyż aparaty baz danych lepiej optymalizują jej wykonanie.

Operatory relacyjne – łączenie ŁĄCZENIE ZEWNĘTRZNE Wszystkie omawiane dotąd łączenia były łączeniami wewnętrznymi, czyli łączeniami zwracającymi tylko te rekordy, w których warunek łączenia daje wartość True. To nie jest to samo, co zwrócenie rekordów, w których podane pola pasują do siebie, chociaż zwykle w ten właśnie sposób opisuje się łączenie wewnętrzne. „Pasują" sugeruje równość, a jak wiadomo, nie wszystkie łączenia oparte są na równości.

Operatory relacyjne – łączenie ŁĄCZENIE ZEWNĘTRZNE Algebra relacyjna udostępnia jeszcze jeden rodzaj łączenia - łączenie zewnętrzne. Łączenie zewnętrzne zwraca wszystkie rekordy zwracane przez sprzężenie wewnętrzne plus wszystkie rekordy jednego lub obu pozostałych zestawów rekordów. Brakujące wartości („niedopasowane") są zastępowane wartością Null. Łączenia zewnętrzne są kwalifikowane jako lewe, prawe lub pełne, w zależności od tego, które dodatkowe rekordy mają być dołączone.

Operatory relacyjne – łączenie ŁĄCZENIE ZEWNĘTRZNE obie kolejne instrukcje zwracają wszystkie rekordy X i tylko te rekordy Y, w których <warunek> ma wartość True: SELECT * FROM X LEFT OUTER JOIN Y ON <warunek> SELECT * FROM Y RIGHT OUTER JOIN X ON <warunek>

Operatory relacyjne – łączenie ŁĄCZENIE ZEWNĘTRZNE Pełne łączenie zewnętrzne zwraca wszystkie rekordy obu zestawów, łącząc ze sobą tylko te rekordy, w których warunek jest spełniony (daje wartość True). SQL Server umożliwia pełne łączenia zewnętrzne za pomocą warunku FULL OUTER JOIN: SELECT * FROM X FULL OUTER JOIN Y ON <warunek> Aparat bazy danych Jet nie umożliwia bezpośrednio pełnego sprzężenia zewnętrznego, ale można je zastąpić przez sumę lewego sprzężenia zewnętrznego i prawego sprzężenia zewnętrznego.

Operatory relacyjne dzielenie Ostatnią operacją relacyjną jest dzielenie. Operator dzielenia relacyjnego (zwanego tak w celu odróżnienia go od dzielenia matematycznego) zwraca rekordy jednego zestawu, które mają wartości pasujące do wszystkich odpowiadających im wartości w drugim zestawie rekordów. Na przykład mając zestaw rekordów podający kategorie produktów kupowanych od każdego dostawcy, za pomocą dzielenia relacyjnego można uzyskać listę tych dostawców, którzy oferują produkty we wszystkich kategoriach.

Operatory relacyjne dzielenie Nie jest to wcale taka rzadka sytuacja, ale rozwiązanie nie jest proste, gdyż instrukcja SQL-a SELECT, nie pozwala wykonywać bezpośrednio dzielenia relacyjnego. Jest jednak kilka innych sposobów uzyskania tego samego rezultatu, jaki daje dzielenie relacyjne. Najprostszą metodą jest inne sformułowanie zapytania.

Operatory relacyjne dzielenie Zamiast „listy dostawców, którzy oferują produkty we wszystkich kategoriach", co jest trudne do przetworzenia, można uzyskać „listę wszystkich dostawców, dla których liczba kategorii oferowanych produktów jest równa liczbie wszystkich kategorii produktów". Jest to przykład operacji rozszerzenia. Nie zawsze jest to możliwe i w takich sytuacjach można implementować dzielenie za pomocą skorelowanych kwerend.

Operatory mnogościowe suma Ogólnie suma relacyjna jest konkatenacją dwóch zestawów rekordów. Jest to mniej więcej relacyjna wersja dodawania. Dodanie zestawu rekordów A do zestawu rekordów B to w praktyce to samo, co dodanie wszystkich rekordów A do B. Przykład: potrzebujemy do korespondencji seryjnej listy wszystkich nazwisk i adresów zawartych w bazie danych. Oba zestawy rekordów Klienci i Pracownicy w bazie danych Northwind zawierają adresy i w związku z tym mogą być łatwo łączone za pomocą operacji sumowania.

Operatory mnogościowe suma W tym przypadku można użyć instrukcji UNION w następującej postaci: SELECT NazwaFirmy As Nazwa, Adres, Miasto, KodPocztowy FROM Klienci UNION SELECT [Imię] & " " & [Nazwisko] As Nazwa, Adres, Miasto, KodPocztowy FROM Pracownicy ORDER BY Nazwa;

Operatory mnogościowe suma

Operatory mnogościowe przecięcie Operator przecięcia zwraca rekordy wspólne dla dwóch zestawów rekordów. Jest to zasadniczo operacja „znajdź duplikaty" i w ten właśnie sposób jest najczęściej używana. Przecięcie implementuje się za pomocą łączeń zewnętrznych.

Operatory mnogościowe przecięcie Przypuśćmy na przykład, że otrzymano z kilku różnych systemów listy klientów i trzeba znaleźć powtarzających się: ZdublowaniKlienci1 ZdublowaniKlienci2

Operatory mnogościowe przecięcie Instrukcja SELECT zwracająca zdublowane rekordy: SELECT ZdublowaniKliencil.* FROM ZdublowaniKliencil LEFT JOIN ZdublowaniKlienci2 ON (ZdublowaniKliencil.IDKlienta = ZdublowaniKlienci2.IDKlienta) AND (ZdublowaniKliencil.NazwaFirmy = ZdublowaniKlienci2.NazwaFirmy) WHERE (((ZdublowaniKlienci2.IDKlienta) IS NOT NULL));

Operatory mnogościowe przecięcie

Operatory mnogościowe różnica O ile przecięcie dwóch zestawów rekordów używane jest do „znalezienia duplikatów", różnica dwóch zbiorów pozwala znaleźć „rekordy osierocone". Różnica relacyjna dwóch zestawów rekordów to rekordy należące do jednego zestawu, ale nie do drugiego.

Operatory mnogościowe różnica Aby w poprzednim przykładzie znaleźć z pierwszego zestawu tylko te rekordy, które nie powtarzają się w drugim, należy wykonać następującą instrukcję: SELECT ZdublowaniKliencil.* FROM ZdublowaniKliencil LEFT JOIN ZdublowaniKlienci2 ON (ZdublowaniKliencil.IDKlienta = ZdublowaniKlienci2.IDKlienta) AND ZdublowaniKliencil.NazwaFirmy = ZdublowaniKlienci2.NazwaFirmy) WHERE (ZdublowaniKlienci2.IDKlienta IS NULL);

Operatory mnogościowe produkt kartezjański Ostatnim operatorem mnogościowym jest produkt kartezjański. Podobnie, jak jego odpowiednik w tradycyjnej teorii mnogościowej, produkt kartezjański dwóch zestawów rekordów łączy każdy rekord jednego zestawu z każdym rekordem drugiego zestawu. Produkt kartezjański (lub po prostu „produkt") dwóch zestawów rekordów jest zwracany przez instrukcję SELECT bez klauzuli JOIN. Podana niżej instrukcja zwraca każdego klienta z kombinacji z każdym przedstawicielem serwisu klienta (PSK): SELECT NazwiskoKlienta, NazwiskoPSK FROM Klienci, PSK; Produkty kartezjańskie są czasem wygodne do przeprowadzania analizy lub jako wyniki pośrednie do dalszych operacji. Najczęściej jednak powstają przez przypadek.

Specjalne operatory relacyjne podsumowanie Operator podsumowania wykonuje dokładnie to, czego można się po nim spodziewać: zwraca rekordy zawierające podsumowanie danych pogrupowanych według wybranych pól. Operacja podsumowania jest implementowana za pomocą klauzuli GROUP BY instrukcji SELECT. Dla każdej różnej wartości w podanym polu lub w polach jest zwracany dokładnie jeden rekord. Jeśli podane jest więcej niż jedno pole, grupy są zagnieżdżane.

Specjalne operatory relacyjne podsumowanie Pola wymienione w pozycji <ListaPól> instrukcji SELECT muszą być również umieszczone w pozycji <ListaPólGrupujących> albo być argumentem funkcji agregującej SQL. Funkcje agregujące SQL podsumowują wartości we wszystkich rekordach. Najczęściej używanymi funkcjami agregującymi są AVERAGE, COUNT, SUM, MAXIMUM i MINIMUM.

Specjalne operatory relacyjne podsumowanie SELECT Kategorie.NazwaKategorii, Produkty.NazwaProduktu, SUM([Opisy zamówień].Ilość) AS Sumallości FROM (Kategorie INNER JOIN Produkty ON Kategorie.IDKategorii=Produkty.IDKategorii) INNER JOIN [Opisy zamówień]ON Produkty.IDProduktu = [Opisy zamówień].IDProduktu GROUP BY Kategorie.NazwaKategorii, Produkty.NazwaProduktu;

Specjalne operatory relacyjne podsumowanie

Specjalne operatory relacyjne rozszerzenie Operator rozszerzenia pozwala definiować pola wirtualne, wyliczane na podstawie stałych i wartości znajdujących się w bazie danych, ale nie przechowywane nigdzie fizycznie. Aby utworzyć pole wirtualne, wystarczy zdefiniować je w pozycji <ListaPól> instrukcji SELECT. SELECT [CenaJednostkowa]*[Ilość] AS CenaCałkowita FROM [Opisy zamówień];

Specjalne operatory relacyjne przemianowanie Ostatnim typowym operatorem jest przemianowanie. Operacja przemianowania może dotyczyć zarówno zestawu rekordów w pozycji <ListaZestawówRekordów>, jak i indywidualnych pól z pozycji <ListaPól>. W aparacie bazy danych Jet przemianowanie ma następującą składnię: SELECT <NazwaPola> AS <PseudonimPola> FROM <NazwaTabeli> AS <PseudonimTabeli> Jak widać poniżej, w SQL Serverze słowo kluczowe „AS" nie jest konieczne: SELECT <NazwaPola> <PseudonimPola> FROM <NazwaZestawuRekordów> <PseudonimZestawuRekordów>

Operatory relacyjne – rozszerzenia Microsoft transform Instrukcja TRANSFORM, częściej nazywana kwerendą krzyżową, pobiera wynik operacji podsumowania (GROUP BY) i obraca go o 90 stopni. Ta niezwykle użyteczna operacja jest dostępna tylko w aparacie bazy danych Jet, gdyż nie została (jak dotąd) zaimplementowana w SQL Serverze. Instrukcja TRANSFORM ma następującą podstawową składnię: TRANSFORM <FunkcjaAgregująca> SELECT <ListaPól> FROM <ListaZestawówRekordów> GROUP BY <ListaPólGrupujących> PIVOT <NagłówekKolumny> [IN (<ListaWartości>)]

Operatory relacyjne – rozszerzenia Microsoft transform Klauzula TRANSFORM <FunkcjaAgregująca> definiuje podsumowane dane, mające wypełnić wynikowy zestaw rekordów. Instrukcja SELECT musi zawierać klauzulę GROUP BY i nie może z kolei zawierać klauzuli HAVING. Jak w przypadku każdej klauzuli GROUP BY <ListaPólGrupujących> może zawierać wiele pól. (W instrukcji TRANSFORM <ListaPól> i <ListaPólGrupujących> są niemal zawsze identyczne). Klauzula PIVOT identyfikuje pole, którego wartości będą używane jako nagłówki kolumn. Standardowo aparat bazy danych Jet umieszcza kolumny w wynikowym zestawie rekordów alfabetycznie od lewej do prawej. Opcjonalna instrukcja IN pozwala jednak podać w pozycji <ListaWartości> nazwy kolumn w takiej kolejności, w jakiej mają być wyświetlone.

Operatory relacyjne – rozszerzenia Microsoft transform TRANSFORM Count(Produkty.IDProduktu) AS LiczbalDProduktów SELECT Dostawcy.NazwaFirmy FROM Dostawcy INNER JOIN (Kategorie INNER JOIN Produkty ON Kategorie.IDKategorii = Produkty.IDKategorii) ON Dostawcy.IDDostawcy = Produkty.IDDostawcy GROUP BY Dostawcy.NazwaFirmy PIVOT Kategorie.NazwaKategorii;

Operatory relacyjne – rozszerzenia Microsoft transform

Operatory relacyjne – rozszerzenia Microsoft rollup Operator grupowania implementowany przy użyciu klauzuli GROUP BY generuje zestaw rekordów zawierających podsumowane dane. Klauzula ROLLUP umożliwia logiczne rozszerzenie tej operacji poprzez dostarczenie sum całkowitych. Klauzula ROLLUP jest dostępna tylko w SQL Serverze.

Operatory relacyjne – rozszerzenia Microsoft rollup Jest ona implementowana jako rozszerzenie klauzuli GROUP BY: SELECT Kategorie.NazwaKategorii, Produkty.NazwaProduktu, SUM([Opisy zamówień].Ilość) AS Sumallości FROM (Kategorie INNER JOIN Produkty ON Kategorie.IDKategorii = Produkty.IDKategorii) INNER JOIN [Opisy zamówień] ON Produkty.IDProduktu = [Opisy zamówień].IDProduktu GROUP BY Kategorie.NazwaKategorii, Produkty.NazwaProduktu WITH ROLLUP;

Operatory relacyjne – rozszerzenia Microsoft rollup

Operatory relacyjne – rozszerzenia Microsoft cube Operator CUBE jest dostępny tylko w SQL Serverze i jest implementowany jako rozszerzenie klauzuli GROUP BY. Zasadniczo klauzula CUBE podsumowuje każdą kolumnę w pozycji <ListaPólGrupujących> według każdej innej kolumny. Operator CUBE jest w zasadzie podobny do operatora ROLLUP, o ile jednak ROLLUP podaje sumy całkowite dla każdej kolumny wymienionej w pozycji <ListaPólGrupujących>, CUBE dokonuje podsumowania danych dla dodatkowych grup.

Operatory relacyjne – rozszerzenia Microsoft cube Na przykład, jeśli <ListaPólGrupujących> zawiera trzy pola - A, B i C - operator CUBE zwróci siedem następujących wartości zagregowanych: Sumę wszystkich C, Sumy wszystkich C pogrupowanych według A, Sumy wszystkich C pogrupowanych według C w ramach A, Sumy wszystkich C pogrupowanych według B w ramach A, Sumy wszystkich C pogrupowanych według B, Sumy wszystkich C pogrupowanych według A w ramach B, Sumy wszystkich C pogrupowanych według C w ramach B.