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

Wielkość: px
Rozpocząć pokaz od strony:

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

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 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ółowo

JPS. 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 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ółowo

SBQL. 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 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ółowo

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

Ję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ółowo

Technologie baz danych

Technologie 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ółowo

Języki i środowiska przetwarzania danych rozproszonych

Ję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ółowo

Temat : SBQL 1 obiektowy język zapytań.

Temat : 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ółowo

Języki i środowiska przetwarzania danych rozproszonych

Ję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ółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁ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ółowo

3. Podzapytania, łączenie tabel i zapytań

3. 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ółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy 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ółowo

Interpreter Języka Zapytań SBQL dla Office Object Portal

Interpreter 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ółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne 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ółowo

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

Zadania 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ółowo

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Wykł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ółowo

Temat : SBQL 1 obiektowy język zapytań.

Temat : 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ółowo

PODZAPYTANIE (SUBSELECT)

PODZAPYTANIE (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ółowo

Autor: Joanna Karwowska

Autor: 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ółowo

Oracle PL/SQL. Paweł Rajba.

Oracle 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ółowo

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA 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ółowo

Materiały szkoleniowe. Podstawy języka SQL

Materiał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ółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne 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ółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie 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ółowo

Język C++ zajęcia nr 2

Ję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ółowo

Funkcje analityczne SQL CUBE (1)

Funkcje 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 Ć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ółowo

SQL (ang. Structured Query Language)

SQL (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ółowo

Podstawy języka SQL cz. 2

Podstawy 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ółowo

Model relacyjny. Wykład II

Model 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ółowo

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

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 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ółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł 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ółowo

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

Pakiety 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ółowo

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

Wybó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ółowo

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Komentarze 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ółowo

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

Bazy 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ółowo

Model relacyjny. Wykład II

Model 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ółowo

Hurtownie danych - przegląd technologii

Hurtownie 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ółowo

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Metody 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ółowo

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Kolekcje 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ółowo

Wykł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. 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ółowo

Informatyka (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 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ółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne 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ółowo

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

Agregacja 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ółowo

Oracle PL/SQL. Paweł Rajba.

Oracle 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ółowo

Język PL/SQL Procedury i funkcje składowane

Ję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ółowo

Aktualizowalne perspektywy w obiektowych bazach danych

Aktualizowalne 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ółowo

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

Wybó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ółowo

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Bazy 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ółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY 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ółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium 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ółowo

Informatyka 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 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ółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. 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ółowo

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

Fazy 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ółowo

Podzapytania. Podzapytania nieskorelowane i skorelowane

Podzapytania. 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ółowo

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne 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ółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

PL/SQL. Funkcje wbudowane

PL/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ółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy 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ółowo

Grupowanie i funkcje agregacji

Grupowanie 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ółowo

Dynamiczne struktury danych

Dynamiczne 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ółowo

Konstruowanie Baz Danych DQL agregacja danych

Konstruowanie 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ółowo

Standard SQL/XML. Wprowadzenie do XQuery

Standard 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ółowo

Przykładowe B+ drzewo

Przykł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ółowo

Języki i techniki programowania Ćwiczenia 2

Ję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ółowo

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

Oracle 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ółowo

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

Wstę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ółowo

Autor: Joanna Karwowska

Autor: 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ółowo

1 Wstęp do modelu relacyjnego

1 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ółowo

Ję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. 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ółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. 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ółowo

Wykład 6. SQL praca z tabelami 3

Wykł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ółowo

Techniki 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 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ółowo

Struktury. Przykład W8_1

Struktury. 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ółowo

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek 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ółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie 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ółowo

Materiały do laboratorium MS ACCESS BASIC

Materiał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ółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

1 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ółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Procedury i funkcje składowane

Procedury 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ółowo

E S - uniwersum struktury stosu

E 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ółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykł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ółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja 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ółowo

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Kursory 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ółowo

Podstawy programowania skrót z wykładów:

Podstawy 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ółowo

Bazy danych wykład trzeci. Konrad Zdanowski

Bazy 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ółowo

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Kiedy 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ółowo

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Grupowanie 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ółowo

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Aliasy 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ółowo

Podstawy 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. 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ółowo

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

Podstawy 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ółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, 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ółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - 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ółowo

Złaczenia tablic: FROM, WHERE, JOIN

Zł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ółowo

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Przykł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

- 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ółowo

Algorytmy 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. 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ółowo

T-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 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ółowo

Podstawy programowania. Podstawy C# Tablice

Podstawy 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ółowo

Deklarowanie kursora

Deklarowanie 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ółowo

Ję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. 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