JPS. cwiczenia 3. Stosy, proste zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych
|
|
- Krystyna Jastrzębska
- 5 lat temu
- Przeglądów:
Transkrypt
1
2 JPS cwiczenia 3. Stosy, proste zapytania Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych
3 Baza danych używana w przykładach
4 Baza danych używana w przykładach <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, "Sales"> <i27, loc, "Pozna!"> <i26, dept, {i27, i28}> <i18, salary, 3500> <i21, ename, "Nowak"> <i28, dname, "Accounting"> <i19, works_in, i4> <i20, job, "Programmer">
5 Co to jest zapytanie?
6 Co to jest zapytanie? dowolny literał, np. 5, 3.5, Ala ma kota
7 Co to jest zapytanie? dowolny literał, np. 5, 3.5, Ala ma kota dowolna nazwa, np. emp, sal
8 Co to jest zapytanie? dowolny literał, np. 5, 3.5, Ala ma kota dowolna nazwa, np. emp, sal jedno lub dwa zapytania połączone z jakimś operatorem
9 Ważniejsze operatory w SBQL
10 Ważniejsze operatory w SBQL operatory algebraiczne (makroskopowe i nie makroskopowe) +, -, /, *, %, etc. >, <, >=, <=,!=, etc. or, and union, intersect, minus, in min(), max(), avg(), count(), bag(), sequence() as, group as,
11 Ważniejsze operatory w SBQL operatory algebraiczne (makroskopowe i nie makroskopowe) +, -, /, *, %, etc. >, <, >=, <=,!=, etc. or, and union, intersect, minus, in min(), max(), avg(), count(), bag(), sequence() as, group as, operatory niealgebraiczne (makroskopowe) where. join order by for all
12 Rodzaje rezultatów w SBQL
13 Rodzaje rezultatów w SBQL wartość atomowa np. 5, 3.5, Ala ma kota, true referencja np. i0 struktura np. struct(1, 2, 3, 4) bag np. bag(1, 2, i0, blabla ) sekwencja np. sequence(1, 2, 3, 4, 5) binder np. imie(i0), x(bag(1, 2, 3))
14 Stos rezultatów (QRES)
15 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań
16 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań Składa się z elementów będących rezultatami zapytań
17 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań Składa się z elementów będących rezultatami zapytań Operacja push umieszcza nowy element na szczycie stosu
18 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań Składa się z elementów będących rezultatami zapytań Operacja push umieszcza nowy element na szczycie stosu Operacja pop usuwa element ze szczytu stosu
19 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań Składa się z elementów będących rezultatami zapytań Operacja push umieszcza nowy element na szczycie stosu Operacja pop usuwa element ze szczytu stosu 5 Przykład stosu QRES
20 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań Składa się z elementów będących rezultatami zapytań Operacja push umieszcza nowy element na szczycie stosu Operacja pop usuwa element ze szczytu stosu Przykład stosu QRES
21 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań Składa się z elementów będących rezultatami zapytań Operacja push umieszcza nowy element na szczycie stosu Operacja pop usuwa element ze szczytu stosu Ala ma kota Przykład stosu QRES
22 Stos rezultatów (QRES) Służy do tymczasowego przechowywania rezultatów zapytań Składa się z elementów będących rezultatami zapytań Operacja push umieszcza nowy element na szczycie stosu Operacja pop usuwa element ze szczytu stosu Przykład stosu QRES
23 Proste zapytanie bez nazwy
24 Proste zapytanie bez nazwy * 3-4
25 Proste zapytanie bez nazwy * 3-4 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
26 Proste zapytanie bez nazwy * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
27 Proste zapytanie bez nazwy * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
28 Proste zapytanie bez nazwy * 3-4 * 2 3 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
29 Proste zapytanie bez nazwy * * 2 3 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
30 Proste zapytanie bez nazwy * * 2 3 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
31 Proste zapytanie bez nazwy * * 2 3 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
32 Proste zapytanie bez nazwy * * 2 3 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
33 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * 2 3 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
34 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * 2 3 Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES 1
35 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES 1 1
36 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES 1 1 1
37 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
38 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
39 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
40 Proste zapytanie bez nazwy * tree_walk(node) { if (node is leaf) // wstaw wartość na QRES else if (node is operator) { 1 tree_walk(node.left); tree_walk(node.right); // pobierz element(y) (zależy od operatora) z QRES // wykonaj operację związaną z operatorem // odłóż wynik na QRES } + 4 * Jeśli w zapytaniu nie ma nazw, to do ewaluacji wystarczy stos QRES
41 Stos środowiskowy (ENVS)
42 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw)
43 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów
44 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych
45 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu
46 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu Operacje pop usuwa sekcję ze szczytu stosu
47 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu Operacje pop usuwa sekcję ze szczytu stosu Operacja bind dokonuje wiązania nazw
48 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu Operacje pop usuwa sekcję ze szczytu stosu Operacja bind dokonuje wiązania nazw Operacja push zazwyczaj wywoływana jest razem z operacją nested
49 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu Operacje pop usuwa sekcję ze szczytu stosu Operacja bind dokonuje wiązania nazw Operacja push zazwyczaj wywoływana jest razem z operacją nested emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) Przykład stosu ENVS
50 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu Operacje pop usuwa sekcję ze szczytu stosu Operacja bind dokonuje wiązania nazw Operacja push zazwyczaj wywoływana jest razem z operacją nested ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) Przykład stosu ENVS
51 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu Operacje pop usuwa sekcję ze szczytu stosu Operacja bind dokonuje wiązania nazw Operacja push zazwyczaj wywoływana jest razem z operacją nested dept(i5) ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) Przykład stosu ENVS
52 Stos środowiskowy (ENVS) Służy do zamieniania nazw występujących w tekscie programu na konkretne byty programistyczne (wiązanie nazw) Składa się z sekcji, a każda sekcja składa się z binderów Pierwsza sekcja (sekcja bazowa) inicjalizowana jest automatycznie zawartością bazy danych). Trafiają do niej bindery do obiektów korzeniowych bazy danych Operacja push umieszcza nową sekcję na szczycie stosu Operacje pop usuwa sekcję ze szczytu stosu Operacja bind dokonuje wiązania nazw Operacja push zazwyczaj wywoływana jest razem z operacją nested employs(i22), loc(i23), dname(i24) dept(i5) ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) Przykład stosu ENVS
53 Wiązanie nazw
54 Wiązanie nazw Operacja bind pobiera jako argument nazwę, a następnie przechodzi ENVS od góry w dół poszukując tej nazwy. Przeszukiwanie przerywane jest w pierwszej sekcji, w której nazwa zostanie znaleziona.
55 Wiązanie nazw Operacja bind pobiera jako argument nazwę, a następnie przechodzi ENVS od góry w dół poszukując tej nazwy. Przeszukiwanie przerywane jest w pierwszej sekcji, w której nazwa zostanie znaleziona. employs(i22), loc(i23), dname(i24) Kolejność przeszukiwania dept(i5) ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26)
56 Wiązanie nazw Operacja bind pobiera jako argument nazwę, a następnie przechodzi ENVS od góry w dół poszukując tej nazwy. Przeszukiwanie przerywane jest w pierwszej sekcji, w której nazwa zostanie znaleziona. Przykłady: bind( emp ) = bag(i1, i2, i3) bind( dept ) = bag(i5) bind( works_in ) = bag(i17, i29) bind( loc ) = bag(i23) Kolejność przeszukiwania employs(i22), loc(i23), dname(i24) dept(i5) ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26)
57 Proste zapytanie z nazwą
58 emp Proste zapytanie z nazwą
59 Proste zapytanie z nazwą emp Ewaluacja elementarnych zapytań będących nazwami polega na wywołaniu operacji bind
60 Proste zapytanie z nazwą emp Ewaluacja elementarnych zapytań będących nazwami polega na wywołaniu operacji bind Zatem jeśli w dowolnym zapytaniu występuje nazwa, to do ewaluacji potrzebny jest stos QRES i stos ENVS
61 Proste zapytanie z nazwą emp Ewaluacja elementarnych zapytań będących nazwami polega na wywołaniu operacji bind Zatem jeśli w dowolnym zapytaniu występuje nazwa, to do ewaluacji potrzebny jest stos QRES i stos ENVS Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. emp(i1), emp(i2), emp(i3), eept(i4), dept(i5), dept(i26)
62 Proste zapytanie z nazwą emp Ewaluacja elementarnych zapytań będących nazwami polega na wywołaniu operacji bind Zatem jeśli w dowolnym zapytaniu występuje nazwa, to do ewaluacji potrzebny jest stos QRES i stos ENVS Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. Wyliczamy bind( Emp ). Wynik na QRES. ENVS pozostaje bez zmian. emp(i1), emp(i2), emp(i3), eept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i1, i2, i3)
63 Proste zapytanie z nazwą emp Ewaluacja elementarnych zapytań będących nazwami polega na wywołaniu operacji bind Zatem jeśli w dowolnym zapytaniu występuje nazwa, to do ewaluacji potrzebny jest stos QRES i stos ENVS Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. Wyliczamy bind( Emp ). Wynik na QRES. ENVS pozostaje bez zmian. emp(i1), emp(i2), emp(i3), eept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i1, i2, i3) Inne zapytania nie są już takie proste...
64 Wyznaczanie wnętrza obiektów
65 Wyznaczanie wnętrza obiektów Operacja nested pobiera jako argument rezultat zapytania. W zależności od rodzaju argumentu wynikiem jest:
66 Wyznaczanie wnętrza obiektów Operacja nested pobiera jako argument rezultat zapytania. W zależności od rodzaju argumentu wynikiem jest: Dla wartości atomowej: pusty zbiór Dla referencji do obiektu prostego: pusty zbiór Dla referencji do obiektu złożonego: zbiór zawierający bindery z nazwami identyfikatorami podobiektów tego obiektu Dla referencji do obiektu referencyjnego: zbiór zawierający binder z nazwą i identyfikatorem obiektu wskazywanego Dla bindera: ten sam binder Dla struktury: suma operacji nested wszystkich elementów struktury Dla pozostałych rezultatów: pusty zbiór
67 Wyznaczanie wnętrza obiektów Operacja nested pobiera jako argument rezultat zapytania. W zależności od rodzaju argumentu wynikiem jest: Dla wartości atomowej: pusty zbiór Dla referencji do obiektu prostego: pusty zbiór Dla referencji do obiektu złożonego: zbiór zawierający bindery z nazwami identyfikatorami podobiektów tego obiektu Dla referencji do obiektu referencyjnego: zbiór zawierający binder z nazwą i identyfikatorem obiektu wskazywanego nested(5) = { } nested(i4) = { loc(i6), dname(i7), employs(i8), employs(i9) } nested(i8) = { emp(i3) } nested(struct(i26, i29)) = { loc(i27), dname(i28), dept(i26) } Dla bindera: ten sam binder Dla struktury: suma operacji nested wszystkich elementów struktury Dla pozostałych rezultatów: pusty zbiór
68 Operator.
69 Operator. q1.q2 q1. q2
70 q1.q2 Zainicjalizować dotres = bag() Operator. Wykonać eval(q1) i zrobić q1res = QRES.POP() Dla każdego elementu x q1res wykonać: Utworzyć nową sekcję na ENVS Wykonać nested(x). Wynik wprowadzić do sekcji utworzonej w poprzednim kroku Wykonać eval(q2) i zrobić q2res = QRES.POP() Dodać q2res do dotres (dotres q2res) Zamknąć sekcję ENVS Zrobić QRES.PUSH(dotres) q1. q2
71 Przykład
72 Przykład emp.ename Zapytanie powinno nam zwrócić referencje do wszystkich nazwisk pracowników emp ename.
73 Przykład emp.ename Zapytanie powinno nam zwrócić referencje do wszystkich nazwisk pracowników emp ename. Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26)
74 Przykład emp.ename Zapytanie powinno nam zwrócić referencje do wszystkich nazwisk pracowników emp ename. Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. Wyliczamy bind( emp ). Wynik na QRES. ENVS pozostaje bez zmian. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i1, i2, i3)
75 Przykład emp.ename Zapytanie powinno nam zwrócić referencje do wszystkich nazwisk pracowników emp ename. Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. Wyliczamy bind( emp ). Wynik na QRES. ENVS pozostaje bez zmian. Robimy QRES.POP(). ENVS pozostaje bez zmian. QRES pusty. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i1, i2, i3)
76 Przykład emp.ename Zapytanie powinno nam zwrócić referencje do wszystkich nazwisk pracowników emp ename. Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. Wyliczamy bind( emp ). Wynik na QRES. ENVS pozostaje bez zmian. Robimy QRES.POP(). ENVS pozostaje bez zmian. QRES pusty. Robimy nested(i1). ENVS dostaje nową sekcję. QRES bez zmian. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i1, i2, i3)
77 Przykład emp.ename Zapytanie powinno nam zwrócić referencje do wszystkich nazwisk pracowników emp ename. Inicjalizujemy ENVS i QRES. ENVS z binderami obiektów korzeniowych. QRES pusty. Wyliczamy bind( emp ). Wynik na QRES. ENVS pozostaje bez zmian. Robimy QRES.POP(). ENVS pozostaje bez zmian. QRES pusty. Robimy nested(i1). ENVS dostaje nową sekcję. QRES bez zmian. Wyliczamy bind( ename ). Wynik wrzucamy na QRES. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) ename(i16), works_in(i17), job(i15), works_in(i29) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i1, i2, i3) bag(i16)
78
79 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES trafia do resdot, więc resdot = bag{i16}. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26)
80 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES trafia do resdot, więc resdot = bag{i16}. Robimy nested(i2). ENVS dostaje nową sekcję. QRES bez zmian. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26)
81 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES trafia do resdot, więc resdot = bag{i16}. Robimy nested(i2). ENVS dostaje nową sekcję. QRES bez zmian. Wyliczamy bind( ename ). Wynik wrzucamy na QRES. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i21)
82 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES trafia do resdot, więc resdot = bag{i16}. Robimy nested(i2). ENVS dostaje nową sekcję. QRES bez zmian. Wyliczamy bind( ename ). Wynik wrzucamy na QRES. Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES do resdot, więc resdot = bag{i16, i21}. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i21)
83 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES trafia do resdot, więc resdot = bag{i16}. Robimy nested(i2). ENVS dostaje nową sekcję. QRES bez zmian. Wyliczamy bind( ename ). Wynik wrzucamy na QRES. Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES do resdot, więc resdot = bag{i16, i21}. Robimy nested(i3). ENVS dostaje nową sekcję. QRES bez zmian. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i10), job(i11), ename(i12), works_in(i13) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i21)
84 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES trafia do resdot, więc resdot = bag{i16}. Robimy nested(i2). ENVS dostaje nową sekcję. QRES bez zmian. Wyliczamy bind( ename ). Wynik wrzucamy na QRES. Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES do resdot, więc resdot = bag{i16, i21}. Robimy nested(i3). ENVS dostaje nową sekcję. QRES bez zmian. Wyliczamy bind( ename ). Wynik wrzucamy na QRES. emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i18), works_in(i19), job(i20), ename(i21) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i10), job(i11), ename(i12), works_in(i13) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) salary(i10), job(i11), ename(i12), works_in(i13) emp(i1), emp(i2), emp(i3), dept(i4), dept(i5), dept(i26) bag(i21) bag(i12)
85
86 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES do resdot, resdot = bag{i16, i21, i12}. emp(i1), emp(i2), emp(i3), dept (i4), dept(i5), dept(i26)
87 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES do resdot, resdot = bag{i16, i21, i12}. Wrzucamy resdot na QRES. Koniec wykonywania zapytania. emp(i1), emp(i2), emp(i3), dept (i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept (i4), dept(i5), dept(i26) bag(i16, i21, i12)
88 Usuwamy sekcję z ENVS i wartość z QRES. Wartość z QRES do resdot, resdot = bag{i16, i21, i12}. Wrzucamy resdot na QRES. Koniec wykonywania zapytania. emp(i1), emp(i2), emp(i3), dept (i4), dept(i5), dept(i26) emp(i1), emp(i2), emp(i3), dept (i4), dept(i5), dept(i26) bag(i16, i21, i12) W ten sposób mamy nazwiska wszystkich pracowników
89 Operator where
90 Operator where q1 where q2 where q1 q2
91 Operator where q1 where q2 Zainicjalizować whereres = bag() where q1 q2 Wykonać eval(q1) i zrobić q1res = QRES.POP() Dla każdego elementu x q1res wykonać: Utworzyć nową sekcję na ENVS Wykonać nested(x). Wynik wprowadzić do sekcji utworzonej w poprzednim kroku Wykonać eval(q2) i zrobić q2res = QRES.POP() Jeśli q2res == true, wtedy dodać x do whereres Zamknąć sekcję ENVS Zrobić QRES.PUSH(whereres)
92 Operator where q1 where q2 Zainicjalizować whereres = bag() where q1 q2 Wykonać eval(q1) i zrobić q1res = QRES.POP() Dla każdego elementu x q1res wykonać: Utworzyć nową sekcję na ENVS Wykonać nested(x). Wynik wprowadzić do sekcji utworzonej w poprzednim kroku Wykonać eval(q2) i zrobić q2res = QRES.POP() Jeśli q2res == true, wtedy dodać x do whereres Zamknąć sekcję ENVS Zrobić QRES.PUSH(whereres) Reszta podobnie jak w przypadku operatora....
93
94 Ć w i c z e n i a
JPS Duży przykład ewaluacji zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych
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
Bardziej szczegółowoJPS. cwiczenia 2. Skład danych. 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 Obiekty Proste np. , Obiekty Obiekty Proste
Bardziej szczegółowoSBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009
SBQL język zapytań dla obiektowych baz danych Kamil Adamczyk Uniwersytet Warszawski 20.IV.2009 Spis treści 1. Wstęp 2. Obiektowe bazy danych Model danych Języki zapytań Dostępne produkty 3. Sbql Główne
Bardziej szczegółowoJęzyki i Środowiska Programowania Baz Danych 2010/2011 PJWSTK, 2010
JPS Języki i Środowiska Programowania Baz Danych 2010/2011 PJWSTK, 2010 Emil Wcisło Wykład i ćwiczenia z JPS są poświęcone obiektowym bazom danych. Studenci poznają podstawowe założenia podejścia stosowego
Bardziej szczegółowoTechnologie baz danych
Plan wykładu Technologie baz danych Wykład 6: Algebra relacji. SQL - cd Algebra relacji operacje teoriomnogościowe rzutowanie selekcja przemianowanie Małgorzata Krętowska Wydział Informatyki Politechnika
Bardziej szczegółowoJęzyki i środowiska przetwarzania danych rozproszonych
Języki i środowiska przetwarzania danych rozproszonych Wykładowca: Tomasz Kowalski Język SBQL (Stack- Based Query Language) Operatory nie-algebraiczne Wykłady przygotowane na podstawie materiałów prof.
Bardziej szczegółowoTemat : SBQL 1 obiektowy język zapytań.
Laboratorium Języki i środowiska przetwarzania danych rozproszonych Temat : SBQL 1 obiektowy język zapytań. Historia zmian Data Wersja Autor Opis zmian 23.4.2012 1.0 Tomasz Kowalski Utworzenie dokumentu
Bardziej szczegółowoJęzyki i środowiska przetwarzania danych rozproszonych
Języki i środowiska przetwarzania danych rozproszonych Wprowadzenie do przetwarzania kolekcji w językach programowania Wykładowca: Tomasz Kowalski Wykład przygotowany na podstawie materiałów prof. Kazimierza
Bardziej szczegółowoMATERIAŁY DO ZAJĘĆ II
MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych
Bardziej szczegółowo3. Podzapytania, łączenie tabel i zapytań
3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,
Bardziej szczegółowoSystemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
Bardziej szczegółowoInterpreter Języka Zapytań SBQL dla Office Object Portal
POLSKO-JAPOŃSKA WYŻSZA SZKOŁA TECHNIK KOMPUTEROWYCH PRACA MAGISTERSKA Nr... Interpreter Języka Zapytań SBQL dla Office Object Portal Student/studentka Nr albumu Promotor Specjalność Katedra Data zatwierdzenia
Bardziej szczegółowoPrzestrzenne bazy danych Podstawy języka SQL
Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured
Bardziej szczegółowoZadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)
Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE) W Bazie występują trzy tabele, o następujących schematach: EMP {empno(pk), ename, deptno(fk), mgr(fk), sal, comm, hiredate, job} DEPT {deptno(pk), dname,
Bardziej szczegółowoWykład 5 Wybrane zagadnienia programowania w C++ (c.d.)
Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Kontenery - - wektor vector - - lista list - - kolejka queue - - stos stack Kontener asocjacyjny map 2016-01-08 Bazy danych-1 W5 1 Kontenery W programowaniu
Bardziej szczegółowoTemat : SBQL 1 obiektowy język zapytań.
Laboratorium Języki i środowiska programowania systemów rozproszonych Temat : SBQL 1 obiektowy język zapytań. Historia zmian Data Wersja Autor Opis zmian 23.4.2012 1.0 Tomasz Kowalski Utworzenie dokumentu
Bardziej szczegółowoPODZAPYTANIE (SUBSELECT)
2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje
Bardziej szczegółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Kolekcje Operacje na kolekcjach Testowanie kolekcji Kolekcje w bazie danych Funkcje tabelaryczne Kolekcje wielopoziomowe - 2 -
Bardziej szczegółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne Sortowanie Dane wejściowe : trzy liczby w dowolnym porządku Dane wyjściowe: trzy liczby
Bardziej szczegółowoMateriały szkoleniowe. Podstawy języka SQL
Materiały szkoleniowe Podstawy języka SQL Spis treści Zawartość tabel wykorzystywanych na kursie... 4 Zawartość tabeli DEPT...5 Zawartość tabeli EMP...5 Zawartość tabeli SALGRADE...5 Budowa tabel wykorzystywanych
Bardziej szczegółowoRelacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Bardziej szczegółowoKonstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania
Bardziej szczegółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Bardziej szczegółowoFunkcje analityczne SQL CUBE (1)
Funkcje analityczne SQL CUBE (1) JOB DEPTNO SUM(SAL) --------- ---------- ---------- 29025 10 8750 20 10875 30 9400 CLERK 4150 CLERK 10 1300 CLERK 20 1900 CLERK 30 950 ANALYST 6000 ANALYST 20 6000 MANAGER
Bardziej szczegółowoĆwiczenie zapytań języka bazy danych PostgreSQL
Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.
Bardziej szczegółowoSQL (ang. Structured Query Language)
SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze
Bardziej szczegółowoPodstawy języka SQL cz. 2
Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.
Bardziej szczegółowoModel relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Bardziej szczegółowoFunkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji
Bardziej szczegółowoPaweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,
Bardziej szczegółowoPakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.
Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą
Bardziej szczegółowoWybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee
Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych
Bardziej szczegółowoKomentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)
Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak
Bardziej szczegółowoBazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski
Bazy danych Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 5 Strukturalny język zapytań (SQL - Structured Query Language) Algebraiczny rodowód podstawowe działania w przykładach Bazy danych.
Bardziej szczegółowoModel relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Bardziej szczegółowoHurtownie danych - przegląd technologii
Funkcje analityczne SQL CUBE (1) Hurtownie danych - przegląd technologii Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel JOB DEPTNO SUM(SAL) 8750
Bardziej szczegółowoMetody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.
Bardziej szczegółowoKolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle
Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.
Bardziej szczegółowoWykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.
Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,
Bardziej szczegółowoInformatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro
Informatyka (5) SQL dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Język zapytań SQL Język deklaratywny (regułowy) - SQL, ProLog,
Bardziej szczegółowoRelacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Bardziej szczegółowoAgregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING
Agregacja w SQL 1 Bazy Danych Wykład p.t. Agregacja i Grupowanie Danych Funkcje Agregacji. Opcje GROUP BY oraz HAVING Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały:
Bardziej szczegółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -
Bardziej szczegółowoJęzyk PL/SQL Procedury i funkcje składowane
Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone
Bardziej szczegółowoAktualizowalne perspektywy w obiektowych bazach danych
POLITECHNIKA ŁÓDZKA Wydział Elektrotechniki, Elektroniki, Informatyki i Automatyki Katedra Informatyki Stosowanej Praca dyplomowa magisterska Aktualizowalne perspektywy w obiektowych bazach danych Krzysztof
Bardziej szczegółowoWybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.
Typy numeryczne Typy daty i czasu. W celu uniknięcia niejasności czy zapis 11-08-2005 oznacza - 11 sierpnia 2005, czy może 8 listopada 2005, należy ustalić sposób interpretacji daty (europejski lub amerykański).
Bardziej szczegółowoBazy danych 2. Wykład 4 Structured Query Language (SQL)
Bazy danych 2 Wykład 4 Structured Query Language (SQL) Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language)
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoLaboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING
Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.
Bardziej szczegółowoInformatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych
Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy
Bardziej szczegółowoPodzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę
Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem
Bardziej szczegółowoFazy przetwarzania zapytania zapytanie SQL. Optymalizacja zapytań. Klasyfikacja technik optymalizacji zapytań. Proces optymalizacji zapytań.
1 Fazy przetwarzania zapytanie SQL 2 Optymalizacja zapytań część I dekompozycja optymalizacja generacja kodu wyraŝenie algebry relacji plan wykonania kod katalog systemowy statystyki bazy danych wykonanie
Bardziej szczegółowoPodzapytania. Podzapytania nieskorelowane i skorelowane
Podzapytania w SQL 1 Bazy Danych Wykład p.t. Podzapytania. Zagnieżdżanie zapytań. Podzapytania nieskorelowane i skorelowane Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano
Bardziej szczegółowoPrzydatne sztuczki - sql. Na przykładzie postgres a.
Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
Bardziej szczegółowoPL/SQL. Funkcje wbudowane
Slajd 1 PL/SQL Opis funkcji SQL PL/SQL(funkcje SQL) M. Rakowski - WSISiZ 1 Slajd 2 Funkcje wbudowane Funkcje wbudowane mają za zadanie umożliwić bardziej zaawansowane operowanie danymi. Funkcje operacji
Bardziej szczegółowoBazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8
Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika
Bardziej szczegółowoGrupowanie i funkcje agregacji
Grupowanie i funkcje agregacji Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula GROUP BY Grupowanie polega
Bardziej szczegółowoDynamiczne struktury danych
Dynamiczne struktury danych 391 Dynamiczne struktury danych Przez dynamiczne struktury danych rozumiemy proste i złożone struktury danych, którym pamięć jest przydzielana i zwalniana na żądanie w trakcie
Bardziej szczegółowoKonstruowanie Baz Danych DQL agregacja danych
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania
Bardziej szczegółowoStandard SQL/XML. Wprowadzenie do XQuery
Standard SQL/XML Wprowadzenie do XQuery Marek Wojciechowski marek@cs.put.poznan.pl http://www.cs.put.poznan.pl/~marek/ Języki zapytań dla XML Wraz z pojawieniem się standardu XML pojawiały się również
Bardziej szczegółowoPrzykładowe B+ drzewo
Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
Bardziej szczegółowoOracle 12c: Nowości w SQL i PL/SQL
Oracle 12c: Nowości w SQL i PL/SQL Marek Wojciechowski Politechnika Poznańska, PLOUG Nowe możliwości w klauzuli DEFAULT Odwołania do sekwencji Obsługa jawnie wstawianych wartości NULL Wartości na poziomie
Bardziej szczegółowoWstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)
Języki i Paradygmaty Programowania Laboratorium 1 Obiekty i klasy C++ Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) UWAGA! Umiejętność tworzenia
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.
Bardziej szczegółowo1 Wstęp do modelu relacyjnego
Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared
Bardziej szczegółowoJęzyk SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.
Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. 1 Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym
Bardziej szczegółowoPodzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę
Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem
Bardziej szczegółowoWykład 6. SQL praca z tabelami 3
Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoStruktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Bardziej szczegółowoMarek Rakowski Podstawy zdania SELECT Strona 1 z 12
Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL
Bardziej szczegółowoProgramowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Bardziej szczegółowoMateriały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
Bardziej szczegółowo1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.
Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
Bardziej szczegółowoProcedury i funkcje składowane
Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe
Bardziej szczegółowoE S - uniwersum struktury stosu
Temat: Struktura stosu i kolejki Struktura danych to system relacyjny r I r i i I U,, gdzie U to uniwersum systemu, a i i - zbiór relacji (operacji na strukturze danych). Uniwersum systemu to zbiór typów
Bardziej szczegółowoPrzykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.
Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna
Bardziej szczegółowoAdministracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Optymalizacja zapytań Pobieranie planu wykonania Indeksy i wydajność - 1 - Zadania optymalizatora
Bardziej szczegółowoKursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1
Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoBazy danych wykład trzeci. Konrad Zdanowski
SQL - przypomnienie Podstawowa forma kwerendy SQL: select A1,..., Ak from R1,..., Rn where ; Odpowiada jej w algebrze relacji operacja π A1,...,Ak (σ (R1 Rn)) SQL semantyka select R.
Bardziej szczegółowoKiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja
1 struktura, kolekcja Kiedy potrzebne Duża liczba danych takiego samego typu tablice a jak nieznana liczba elementów? dane zawierające wartości różnego typu (osoba: pesel, nazwisko, rok urodzenia, pracuje/niepracuje,
Bardziej szczegółowoGrupowanie i funkcje agregacji. Grupowanie z użyciem rollup
Grupowanie i funkcje agregacji Grupowanie z użyciem rollup Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula
Bardziej szczegółowoAliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;
Dane z kilku tabel Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Łączenie kilku selectów w jeden posortowany wynik 1. UNION suma bez powtórzeń. Powoduje,
Bardziej szczegółowoPodstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.
Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna
Bardziej szczegółowoPodstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus
Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne
Bardziej szczegółowokoledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,
Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi
Bardziej szczegółowoC++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Bardziej szczegółowoZłaczenia tablic: FROM, WHERE, JOIN
JOIN Łączenie tablic 1 Bazy Danych Wykład p.t. Złaczenia tablic: FROM, WHERE, JOIN Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały: http: //www.postgresql.org/docs/8.3/interactive/index.html
Bardziej szczegółowoPrzykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.
LINQ w Microsoft Visual Basic 'zapytanie pobierające wszystkie liczby z kolekcji 'zmienna zapytanie jest typu: System.Collections.Generic.IEnumerable(Of Integer) Dim zapytanie = From wiersz In liczby 'lub
Bardziej szczegółowo- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji
6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation
Bardziej szczegółowoAlgorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos)
Algorytmy i struktury danych Wykład 3: Stosy, kolejki i listy Dr inż. Paweł Kasprowski pawel@kasprowski.pl Kolejki FIFO First In First Out (kolejka) LIFO Last In First Out (stos) Stos (stack) Dostęp jedynie
Bardziej szczegółowoT-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15
T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest
Bardziej szczegółowoPodstawy programowania. Podstawy C# Tablice
Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej
Bardziej szczegółowoDeklarowanie kursora
Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Bardziej szczegółowo