JPS Duży przykład ewaluacji zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych



Podobne dokumenty
JPS. cwiczenia 3. Stosy, proste zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

JPS. cwiczenia 2. Skład danych. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Technologie baz danych

Temat : SBQL 1 obiektowy język zapytań.

Bazy danych. Plan wykáadu. Powtórzenie BCNF i 3NF. Nowa forma redundancji. Wykáad 6: Postaci normalne. SQL - zapytania záo*one.

Języki i środowiska przetwarzania danych rozproszonych

Materiały szkoleniowe. Podstawy języka SQL

Języki i Środowiska Programowania Baz Danych 2010/2011 PJWSTK, 2010

Technologie semantyczne i sieci społecznościowe laboratorium

3. Podzapytania, łączenie tabel i zapytań

Języki i środowiska przetwarzania danych rozproszonych

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

SQL (ang. Structured Query Language)

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

Oracle 12c: Nowości w SQL i PL/SQL

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Temat : SBQL 1 obiektowy język zapytań.

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Fazy przetwarzania zapytania zapytanie SQL. Optymalizacja zapytań. Klasyfikacja technik optymalizacji zapytań. Proces optymalizacji zapytań.

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Standard SQL/XML. Wprowadzenie do XQuery

Plan wykładu BAZY DANYCH II WYKŁAD 4. Co to jest kursor? Rodzaje kursorów

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Wykład 5: PHP: praca z bazą danych MySQL

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych. Plan wykładu. Operacje w algebrze relacji. Pojcie algebry relacji. Wykład 8: Algebra relacji. SQL - cd

Wsparcie dla czasopism naukowych w POL-index podręcznik użytkownika

Funkcje analityczne SQL CUBE (1)


Optymalizacja zapytań część I

Grupowanie i funkcje agregacji

Hurtownie danych - przegląd technologii

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Java Podstawy. Michał Bereta

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

Autor: Joanna Karwowska

Pong to dwuwymiarowy symulator tenisa sportowego. Gracz, poruszając prostokątem symulującym paletkę, stara się zdobyć punkt poprzez posłanie piłki

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

PODSTAWY BAZ DANYCH 13. PL/SQL

Odczyt danych z klawiatury Operatory w Javie

Tips & Tricks. Czy wiesz że. wersja Aktualizacja dokumentu: Copyright COMARCH S.A.

PL/SQL. Zaawansowane tematy PL/SQL

PODZAPYTANIE (SUBSELECT)

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Autor: Joanna Karwowska

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ

STEKOP S.A. Białystok 2003 INSTRUKCJA OBSŁUGI TERMINALA KONTROLI DOSTĘPU SYSTEMU INTEGRUJĄCEGO ULISSES

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Liczby losowe i pętla while w języku Python

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Wzorce tygodniowe kartoteki obiekty kalendarzowe wzorce czasu pracy wzorce tygodniowe

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

PL/SQL. Funkcje wbudowane

Przypisywanie adresów IP do MAC-adresów

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

Oracle11g: Wprowadzenie do SQL

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Komunikacja z bazą danych psql

Wstęp do programowania

Ćwiczenia 2 IBM DB2 Data Studio

Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z =

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

VBA ZAJĘCIA NR 7! praca z plikami (kontynuacja zajęć 6)

Pętla for. Wynik działania programu:

Podstawowe funkcje dodatku linq w C#

PHP: bloki kodu, tablice, obiekty i formularze

Dodawanie punktu na mapie: 1. Aby dodać punkt do mapy, należy zalogować się na mapie Targeo (htps://mapa.targeo.pl):

Wstęp do informatyki- wykład 7

Plan wykładu. Domain Name System. Definicja DNS. Po co nazwy? Przestrzeń nazw domen Strefy i ich obsługa Zapytania Właściwości.

SQL. Æwiczenia praktyczne

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix)

Podzapytania. Podzapytania nieskorelowane i skorelowane

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

XML Repository. Maciej Zakrzewicz.

Jak rozliczyć projekt

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

siedziba POZNAŃ tel. (061) tel. kom fax (061)

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa

Bloki anonimowe w PL/SQL

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Transkrypt:

JPS Duży przykład ewaluacji zapytania Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

Baza danych używana w przykładzie <i6, loc, "Warsaw"> <i7, dname, "R&D"> <i4, dept, {i6, i7, i8, i9}> <i8, employs, i3> <i10, salary, 3500> <i11, job, "Programmer"> <i3, emp, {i10, i11, i12, i13}> <i9, employs, i2> <i12, ename, "Kowal"> <i13, works_in, i4> <i16, ename, "Dudek"> <i1, emp, {i15, i16, i17, i29}> <i17, works_in, i5> <i0, entry, {i1, i2, i3, i4, i5, i26}> <i22, employs, i1> <i23, loc, "Kraków"> <i5, dept, {i22, i23, i24}> <i29, works_in, i26> <i15, job, "Clerk"> <i2, emp, {i18, i19, i20, i21}> <i24, dname, ""> <i27, loc, "Pozna!"> <i26, dept, {i27, i28}> <i18, salary, 3500> <i21, ename, "Nowak"> <i28, dname, "Accounting"> <i19, works_in, i4> <i20, job, "Programmer">

Początek przykładu emp where in works_in.dept.dname; Wszyscy pracownicy z departamentu where emp in. works_in. dept dname Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. Wyliczamy bind( emp ). Wynik na QRES. ENVS pozostaje bez zmian. Realizujemy QRES.POP(). ENVS pozostaje bez zmian. QRES pusty. Pętla dla i1, i2, i3. bag(i1, i2, i3)

Na kilku kolejnych slajdach przetwarzamy element i1 z where Realizujemy nested(i1). ENVS dostaje nową sekcję. QRES bez zmian. Lewe podzapytanie in. Wrzucamy na QRES. ENVS pozostaje bez zmian. Prawe podzapytanie in. Realizujemy bind( works_in ). Wynik na QRES. ENVS pozostaje bez zmian. QRES.POP(). Początek pętli dla i17 i i29. Tutaj zaczynamy przetwarzanie elementu i17 z pierwszej kropki nested(i17). Wynik do nowej sekcji na ENVS. dept(i5) bag(i17, i29)

bind( dept ). Wynik na QRES. ENVS bez zmian. dept(i5) bag(i5) QRES.POP() Pętla dla i5. dept(i5) employs(i22), loc(i23), dname(i24) nested(i5) Wynik na ENVS. dept(i5)

employs(i22), loc(i23), dname(i24) bind( dname ) Wynik na QRES. dept(i5) bag(i24) Ściągamy element z QRES i dodajemy go do whereres z drugiej kropki. Wyrzucamy sekcję z ENVS. dept(i5) Koniec ewaluacji drugiej kropki. Wrzucamy dotres drugiej kropki na QRES. dept(i5) bag(i24)

Ściągamy element z QRES i dodajemy go do dotres z pierwszej kropki. Podnosimy sekcję z ENVS. Tutaj zaczynamy przetwarzanie elementu i29 z pierwszej kropki nested(i29). Wynik do nowej sekcji na ENVS. dept(i26) bind( dept ). Wynik na QRES. ENVS bez zmian. dept(i26) bag(i26) QRES.POP() Pętla dla i26. dept(i26)

loc(i27), dname(i28) nested(i26) Wynik na ENVS. dept(i26) loc(i27), dname(i28) bind( dname ) Wynik na QRES. dept(i26) bag(i28) Ściągamy element z QRES i dodajemy go do whereres z drugiej kropki. Podnosimy sekcję z ENVS. dept(i26)

dept(i26) Koniec drugiej kropki. Wrzucamy whereres na QRES. bag(i28) Koniec przetwarzania elementu i29. Podnosimy sekcję z ENVS. Podnosimy element z QRES i dodajemy do dotres z pierwszej kropki. Koniec pierwszej kropki. Wrzucamy dotres pierwszej kropki na QRES. bag(i24, i28) Ewaluacja operatora in. Podnosimy dwa elementy QRES i sprawdzamy czy choć jeden departament ma nazwę.wynik sprawdzenia na QRES. Jesteśmy w where. Ściągamy element z QRES, widzimy że jest true, więc dodajemy i1 do whereres. Wyrzucamy sekcję ze środowiskiem pierwszego pracownika z ENVS. true Przerwa na kawę i robimy następnego pracownika...

Na kilku kolejnych slajdach przetwarzamy element i2 z where Robimy nested(i2). ENVS dostaje nową sekcję. QRES bez zmian. Lewe podzapytanie in. Wrzucamy na QRES. ENVS pozostaje bez zmian. salary(i18) salary(i18) Prawe podzapytanie in. Robimy bind( works_in ). Wynik na QRES. ENVS pozostaje bez zmian. Tutaj zaczynamy przetwarzanie elementu i19 z pierwszej kropki QRES.POP(). Początek pętli dla i19. nested(i19). Wynik do nowej sekcji na ENVS. salary(i18) bag(i19)

bind( dept ). Wynik na QRES. ENVS bez zmian. bag(i4) QRES.POP() Pętla dla i4. employs(i9), loc(i6), dname(i7) nested(i4) Wynik na ENVS.

employs(i9), loc(i6), dname(i7) bind( dname ) Wynik na QRES. bag(i7) Ściągamy element z QRES i dodajemy go do whereres z drugiej kropki. Wyrzucamy sekcję z ENVS. Koniec ewaluacji drugiej kropki. Wrzucamy dotres drugiej kropki na QRES. bag(i7)

Ściągamy element z QRES i dodajemy go do dotres z pierwszej kropki. Podnosimy sekcję z ENVS. Koniec pierwszej kropki. Wrzucamy dotres pierwszej kropki na QRES. bag(i7) Ewaluacja operatora in. Podnosimy dwa elementy QRES i sprawdzamy czy choć departament ma nazwę. Wynik sprawdzenia na QRES. Jesteśmy w where. Ściągamy element z QRES, widzimy że jest false, więc nie dodajemy i2 do whereres. Wyrzucamy sekcję ze środowiskiem drugiego pracownika z ENVS. false Przerwa na ciastko i robimy następnego pracownika...

Na kilku kolejnych slajdach przetwarzamy element i3 z where Robimy nested(i3). ENVS dostaje nową sekcję. QRES bez zmian. Lewe podzapytanie in. Wrzucamy na QRES. ENVS pozostaje bez zmian. Prawe podzapytanie in. Robimy bind( works_in ). Wynik na QRES. ENVS pozostaje bez zmian. Tutaj zaczynamy przetwarzanie elementu i13 z pierwszej kropki QRES.POP(). Początek pętli dla i13. nested(i13). Wynik do nowej sekcji na ENVS. bag(i13)

bind( dept ). Wynik na QRES. ENVS bez zmian. bag(i4) QRES.POP() Pętla dla i4. employs(i9), loc(i6), dname(i7) nested(i4) Wynik na ENVS.

employs(i9), loc(i6), dname(i7) bind( dname ) Wynik na QRES. bag(i7) Ściągamy element z QRES i dodajemy go do whereres z drugiej kropki. Wyrzucamy sekcję z ENVS. Koniec ewaluacji drugiej kropki. Wrzucamy dotres drugiej kropki na QRES. bag(i7)

Ściągamy element z QRES i dodajemy go do dotres z pierwszej kropki. Podnosimy sekcję z ENVS. Koniec pierwszej kropki. Wrzucamy dotres pierwszej kropki na QRES. bag(i7) Ewaluacja operatora in. Podnosimy dwa elementy QRES i sprawdzamy czy choć jeden departament ma nazwę. Wynik sprawdzenia na QRES. Jesteśmy w where. Ściągamy element z QRES, widzimy że jest false, więc nie dodajemy i3 do whereres. Wywalamy sekcję ze środowiskiem trzeciego pracownika z ENVS. false Na koniec wrzucamy whereres na QRES. bag(i1) W ten sposób mamy wszystkich pracowników, którzy pracują w dziale

Ć w i c z e n i a