02 OperowanieDanymiid 3913 ppt

background image

Techniki operowania danymi

w bazach relacyjnych

Warszawa, 2010

© Witold Marowski, IMRC PW

Politechnika Warszawska, Wydział Samochodów

i Maszyn Roboczych

Studia Inżynierskie, semestr VII

background image

Przegląd zagadnień

Rodzaje operacji na danych w bazie

relacyjnej

Operowanie danymi w bazach relacyjnych:

język SQL, technika Query by Example

Struktura i podstawowe cechy języka SQL
Kwerendy wyszukujące dane w języku SQL

Składnia ogólna, warunki wyszukiwania,

porządkowanie zbioru wyników

Wyszukiwanie danych w pojedynczej tabeli
Wyszukiwanie danych w kilku tabelach

Kwerendy agregujące: operacje statystyczne na

danych

Kwerendy zagnieżdżone

Wprowadzanie nowych wierszy do tabeli
Edycja danych w tabeli
Usuwanie wierszy z tabeli

background image

Podstawowe zasady operowania
danymi

Operacje na danych są dokonywane przy użyciu

odwołań do logicznej struktury relacyjnej bazy

danych

Struktura logiczna

(uporządkowanie

danych)

Operowanie

danymi

Rodzaje operacji na danych

Wyszukiwanie danych, które spełniają zadane

kryteria wyboru, z jednej lub wielu tabel (

zwracanie zbiorów rekordów

)

Wstawianie nowych wierszy do tabeli

Modyfikowanie wartości pól w tych wierszach

tabeli, które spełniają zadane warunki (

operacje na zbiorach wierszy

)

Usuwanie tych wierszy tabeli, które spełniają

zadane warunki (

operacje na zbiorach wierszy

)

background image

Język SQL

Przedmiotowo zorientowany język IV generacji

przeznaczony do obsługi relacyjnych baz
danych

Historia: początki ok. 1975 (IBM), implementacja

rynkowa 1979 (Oracle), ostatni standard
ANSI/ISO: 1992

Język nieproceduralny (

co

zrobić, nie

jak

)

DDL

(Data Definition Language) – język

definiowania danych – definiowanie obiektów bazy
danych oraz określanie powiązań między nimi (np.
definiowanie struktury tabel oraz relacji między
tabelami)

DML

(Data Manipulation Language) – język

operowania danymi – przeprowadzanie operacji
na danych w istniejącej strukturze logicznej
relacyjnej bazy danych

Nazwa:

S

tructured

Q

uery

L

anguage

Podzbiory poleceń języka SQL

background image

Język SQL, cd.

Polecenia języka SQL

dowolna wielkość liter

logika trójwartościowa (

True, False, Unknown

)

ciągi znakowe zgodne ze składnią języka

Operatory języka operowania danymi

dowolny podział na wiersze, brak znaku

kontynuacji

NULL

– wartość pusta

łączenia ciągów znakowych (konkatenacji):

&

,

||

arytmetyczne:

+

,

-

,

*

,

/

relacji (ogólne):

=

,

<>

,

>

,

>=

,

<

,

<=

logiczne:

NOT

,

AND

,

OR

relacji (specyficzne dla SQL):

[

NOT

]

IN (

lista

)

,

[

NOT

]

BETWEEN

WartośćMin

AND

WartośćMax

,

[

NOT

]

LIKE

wzorzec

,

IS

[

NOT

]

NULL

background image

Wyszukiwanie danych przy użyciu
języka SQL

Instrukcja SELECT – kwerenda wybierająca

zwraca zbiór rekordów danych pochodzących z

jednej lub wielu tabel

Składnia ogólna instrukcji SELECT

rekordy zbioru wyników spełniają zadane

kryteria wyszukiwania

jeżeli brak jest rekordów spełniających kryteria

wyszukiwania, zbiór wyników jest pusty

SELECT

specyfikacja danych podlegających wyszukiwaniu

FROM

źródło danych

WHERE

kryteria wyszukiwania

ORDER BY

sposób uporządkowania zbioru wyników

Człony

obowiązkowe

Człony

opcjonalne

background image

Wyszukiwanie danych przy użyciu
języka SQL

Struktura logiczna przykładowej bazy danych

KURSY

background image

Wyszukiwanie danych przy użyciu
instrukcji SELECT języka SQL

Wybór całej zawartości tabeli

SELECT * FROM

nazwa tabeli

ORDER BY

kolumna1 [DESC][, kolumna2 [DESC], ...]

Określenie źródła

danych i

zwracanych kolumn,

obowiązkowe

Porządkowanie

zbioru

wyników,

opcjonalne

SELECT * FROM Wykladowcy ORDER BY WYK_NAZ

Wybór niektórych kolumn tabeli

SELECT

lista elementów

FROM

nazwa tabeli

ORDER BY

kolumna1 [DESC][, kolumna2 [DESC], ...]

obowiązkowe

opcjonaln

e

Nazwy kolumn lub wyrażenia zbudowane z ich

użyciem

SELECT WYK_TYTUL, WYK_IMIE, WYK_NAZ FROM Wykladowcy
ORDER BY WYK_NAZ, WYK_IMIE, WYK_TYTUL

background image

Wyszukiwanie danych przy użyciu
instrukcji SELECT języka SQL

Wybór wierszy z tabeli zgodnie z kryteriami

wyszukiwania

SELECT

lista elementów

FROM

nazwa tabeli

WHERE

kryteria wyszukiwania

ORDER BY

kolumna1

[DESC][,

kolumna2

[DESC], ...]

Nazwy kolumn

lub wyrażenia

zbudowane z

ich użyciem

SELECT KURS_NAZ, KURS_OD, KURS_DO, KURS_OPL FROM Kursy
WHERE KURS_NAZ <> "AutoCAD – kurs wstępny" AND KURS_OPL < 750
AND (KURS_OD >= #03/01/03# OR KURS_DO >= #04/01/03#)
ORDER BY KURS_NAZ, KURS_DO DESC

Wyrażenie logiczne, którego argumentami są

nazwy kolumn tabeli lub wyrażenia zbudowane

przy ich użyciu. Kwerenda zwraca tylko te wiersze

tabeli, dla których wyrażenie logiczne

umieszczone po słowie WHERE

ma wartość PRAWDA (True)

Określenie

źródła

danych i

zwracanych

kolumn,

obo-

wiązkowe

background image

Wyszukiwanie danych przy użyciu
instrukcji SELECT języka SQL

Zwracanie tylko jednego z identycznych

rekordów zbioru wyników przeszukiwania
źródła danych

SELECT

DISTINCT

lista elementów

FROM

nazwa tabeli

WHERE

kryteria wyszukiwania

ORDER BY

kolumna1 [DESC][, kolumna2 [DESC], ...]

Zbiór wyników takiej kwerendy jest

nieedytowalny, gdyż jeden jego rekord może być

przedstawicielem wielu różnych rekordów źródła

danych

Słowo kluczowe DISTINCT – tylko różne

rekordy w zbiorze wyników działania

kwerendy

SELECT DISTINCT WYK_TYTUL
FROM WYKLADOWCY
ORDER BY WYK_TYTUL

Przykład: lista tytułów wykładowców nie zawierająca powtórzeń

background image

Wyszukiwanie danych przy użyciu
instrukcji SELECT języka SQL

Przeszukiwanie wielu tabel (źródeł

danych)

Należy określić warunki złączenia, czyli

sposób, w jaki powinny być kojarzone ze sobą
wiersze danych z poszczególnych obiektów
źródłowych. Zazwyczaj używanym warunkiem
jest żądanie identycznych wartości klucza
obcego oraz jego rodzica, tj.

nazwa kolumny klucza obcego = nazwa kolumny

rodzica

Trzeba stosować jednoznaczne odwołania do

kolumn źródeł danych podlegających złączeniu,
w razie potrzeby należy używać składni

nazwa obiektu.nazwa kolumny

Brak określenia warunków złączenia: zostaje

zwrócony iloczyn kartezjański wierszy złączanych

obiektów

background image

SELECT

lista elementów z obu złączonych tabel

FROM

nazwa1

INNER JOIN

nazwa2

ON

[nazwa1.]kolumna1

= [nazwa2.]kolumna2

WHERE

kryteria wyszukiwania

ORDER BY

kol_porz1 [DESC][, kol_porz2 [DESC], ...]

Instrukcja SELECT języka SQL

Przeszukiwanie wielu tabel: złączenie

wewnętrzne

Kolumny

lub wyrażenia

(ew. składnia

obiekt.kolumna

)

Pełne

odwołanie do

kolumny tabeli

źródłowej

(jednoznacznoś

ć)

Określenie źródeł danych i sposobu ich

złączenia. Tutaj: złączenie wewnętrzne dwóch

tabel.

Wartości pól kolumn użytych do zdefiniowania złączenia nie

muszą wchodzić w skład zbioru wyników działania kwerendy.

SELECT PRZ_NAZ, ZAJ_GODZ
FROM PRZEDMIOTY INNER JOIN ZAJECIA
ON PRZEDMIOTY.PRZ_ID = ZAJECIA.PRZ_ID
WHERE KURS_ID = 3
ORDER BY PRZ_NAZ

Złączenie wewnętrzne

tabel PRZEDMIOTY i ZAJECIA

background image

Instrukcja SELECT języka SQL

Złączenie wewnętrzne więcej niż

dwóch tabel

SELECT KURS_NAZ, PRZ_NAZ,
ZAJ_GODZ FROM

KURSY INNER JOIN

(ZAJECIA INNER JOIN PRZEDMIOTY
ON ZAJECIA.PRZ_ID =
PRZEDMIOTY.PRZ_ID)

ON

KURSY.KURS_ID = ZAJECIA.KURS_ID

ORDER BY KURS_NAZ, PRZ_NAZ

W członie FROM instrukcji SELECT buduje się

przy użyciu nawiasów kolejne złączenia par tabel
według wzoru:

tabela_A

INNER JOIN (

złączenie tabel B i C przy

użyciu klucza obcego i jego rodzica

) ON

para klucz

obcy – jego rodzic pozwa-lająca na złączenie tabeli A z
parą tabel złączonych w nawiasie

Złączenie tabeli PRZEDMIOTY z tabelą

ZAJECIA

Złączenie tabeli KURSY ze

złączeniem tabel PRZEDMIOTY i

ZAJECIA

Przykład: utworzenie listy kursów wraz z przedmiotami wchodzącymi do ich programów

background image

SELECT PRZ_NAZ, KURS_ID
FROM PRZEDMIOTY LEFT JOIN ZAJECIA
ON PRZEDMIOTY.PRZ_ID = ZAJECIA.PRZ_ID
ORDER BY PRZ_NAZ

Przykład: lista wszystkich proponowanych przedmiotów + ew. numery kursów,

na których te przedmioty są prowadzone

SELECT

lista elementów z obu złączonych tabel

LEFT

FROM

nazwa1

JOIN

nazwa2

RIGHT

ON

[nazwa1.]kolumna1

= [nazwa2.]kolumna2

WHERE

kryteria wyszukiwania

ORDER BY

kol_porz1 [DESC][, kol_porz2 [DESC], ...]

Instrukcja SELECT języka SQL

Przeszukiwanie wielu tabel: złączenie

zewnętrzne

Kolumny

lub wyrażenia

(ew. składnia

obiekt.kolumna

)

Pełne

odwołanie do

kolumny tabeli

źródłowej

(jednoznacznoś

ć)

Określenie źródeł danych i sposobu ich złączenia

(lewe lub prawe złączenie wewnętrzne dwóch

tabel)

Lewe złączenie zewnętrzne

tabel PRZEDMIOTY i ZAJECIA

background image

Instrukcja SELECT języka SQL

Kwerendy agregujące – zasada działania

A

A
A

A
A
A

B

B

W1

W1
W1

W1

W2

W2

W2

W3

Wybór:

tylko A

(WHERE)

A
A
A
A
A
A

W1

W1

W2

W2

W2

W3

Źródło danych

Wyniki

wyszukiwani

a

Grupowanie

według wartości

kolumny W

(GROUP BY)

A

W3

A
A

W1
W1

A
A
A

W2
W2

W2

O

b

lic

ze

n

ia

s

ta

ty

s

ty

k

(f

u

n

k

c

je

a

g

re

g

u

c

e

)

Warunki dla grup

(HAVING)

W1 wyniki obliczeń statyst.

W2 wyniki obliczeń statyst.

W3 wyniki obliczeń statyst.

W1 wyniki obliczeń statyst.

W3 wyniki obliczeń statyst.

Ostateczny

zbiór

wyników

background image

Instrukcja SELECT języka SQL

Kwerendy agregujące – składnia ogólna

SELECT

lista kolumn grupujących i funkcji agregujących

FROM

źródło danych

WHERE

kryteria wyszukiwania rekordów w źródle danych

GROUP BY

lista kolumn grupujących wyniki wyszukiwania

HAVING

warunki dla grup, dla których zwracane są wyniki obliczeń

ORDER BY

kolumny grupujące lub wyniki obliczeń statystycznych

człony opcjonalne, każdy z nich może być

pominięty

SELECT KURS_NAZ, Count(PRZ_ID) AS LiczbaPrzedmiotow
FROM KURSY INNER JOIN ZAJECIA
ON KURSY.KURS_ID = ZAJECIA.KURS_ID
GROUP BY KURS_NAZ
HAVING Count(PRZ_ID) > 2
ORDER BY KURS_NAZ

Przykład: określenie liczby przedmiotów w programach poszczególnych kursów,

jednak z pominięciem kursów, w których programach są mniej niż trzy przedmioty

background image

Instrukcja SELECT języka SQL

Przegląd funkcji agregujących

COUNT(*) liczba wierszy źródła danych, które spełniają

kryteria wyszukiwania

COUNT(

arg

) liczba różnych od NULL wartości argumentu

(kolumny lub wyrażenia) w spełniających kryteria
wyszukiwania wierszach źródła danych

AVG(

argnum

)

wartość średnia z wartości argumentu numerycznego

(kolumna lub wyrażenie typu numerycznego)
w spełniających kryteria wyszukiwania wierszach
źródła danych

SUM(

argnum

)

suma wartości argumentu numerycznego (kolumny

lub wyrażenia typu numerycznego) w spełniających
kryteria wyszukiwania wierszach źródła danych

MAX(

arg

)

wartość maksymalna argumentu (kolumny lub
wyrażenia dowolnego typu) w spełniających kryteria
wyszukiwania wierszach źródła danych

MIN(

arg

)

wartość minimalna argumentu w zbiorze określonym
tak samo, jak dla funkcji MAX

background image

Instrukcja SELECT języka SQL

Kwerendy agregujące – warunki WHERE i

HAVING

W członie HAVING należy zamieszczać tylko te
warunki, których
spełnienie można ocenić dopiero po wykonaniu
obliczeń przez
funkcje agregujące
Kryteria wyboru rekordów ze źródła danych, które
można
sprawdzić bezpośrednio na podstawie wartości pól
danego
rekordu należy zamieścić w członie WHERE
(zmniejszenie
wielkości zbioru, na którym dokonywane są obliczenia
agregujące)

A

B

A

B

A

B

B

B

A
A
A

Wybór:

tylko A

(WHERE)

Źródło danych

Wyniki wyszukiwania –

zbiór wyjściowy dla

obliczeń agregujących

background image

Instrukcja SELECT języka SQL

Kwerendy agregujące – przykłady

stosowania warunków WHERE i HAVING

SELECT KURS_NAZ, AVG(KURS_DO – KURS_OD + 1) AS
PrzecietnaLiczbaDni
FROM KURSY
GROUP BY KURS_NAZ
HAVING KURS_NAZ NOT LIKE " *bazy danych* "
ORDER BY KURS_NAZ

Przykład: Określenie przeciętnego czasu trwania kursów (w dniach),

w zależności od nazwy kursu. Ze statystyki wyłączone są kursy

zawierające w nazwie ciąg znakowy "bazy danych"

Ten warunek można
sprawdzić w członie

WHERE

SELECT KURS_NAZ, AVG(KURS_DO – KURS_OD + 1) AS
PrzecietnaLiczbaDni
FROM KURSY
WHERE KURS_NAZ NOT LIKE " *bazy danych* "
GROUP BY KURS_NAZ
ORDER BY KURS_NAZ

Wstępne ograniczenie

liczby rekordów danych

background image

Instrukcja SELECT języka SQL

Kwerendy zagnieżdżone

SELECT

lista

FROM

źródło danych

WHERE

nazwa kolumny

IN

(SELECT

element

FROM

źródło

danych kwerendy zagnieżdżonej

WHERE

kryteria wyboru

dla kwerendy zagnieżdżonej

)

ORDER BY

lista kolumn porządkujących

kwerenda zagnieżdżona tworzy listę argumentów

operatora IN

kwerenda zagnieżdżona: ujęta w nawiasy instrukcja

SELECT umieszczona w członie WHERE nadrzędnej
instrukcji SELECT

kwerenda zagnieżdżona może zawierać następną

kwerendę zagnieżdżoną

kwerendy zagnieżdżone wykonywane są w pierwszej

kolejności, zaczynając od kwerendy najgłębiej
zagnieżdżonej i określają argument(y) wyrażenia
logicznego w członie WHERE kwerendy nadrzędnej

przykład składni kwerendy zawierającej kwerendę

zagnieżdżoną:

background image

Instrukcja SELECT języka SQL

Kwerendy zagnieżdżone - przykład

SELECT DISTINCT ZAJECIA.KURS_ID, KURS_NAZ, KURS_OD
FROM KURSY INNER JOIN ZAJECIA
ON KURSY.KURS_ID = ZAJECIA.KURS_ID
WHERE WYK_ID IN

(SELECT WYK_ID FROM WYKLADOWCY WHERE WYK_TYTUL LIKE "

*dr* ")

ORDER BY KURS_NAZ, KURS_OD

Wybór kursów, dla których przynajmniej jeden z wykładowców ma tytuł,

w skład którego wchodzi ciąg znakowy "dr"

Zamiast kwerendy zagnieżdżonej lepiej jest

stosować złączenie tabel i warunek WHERE,
jeżeli jest to możliwe, np.:

SELECT DISTINCT ZAJECIA.KURS_ID, KURS_NAZ, KURS_OD
FROM WYKLADOWCY INNER JOIN (KURSY INNER JOIN ZAJECIA
ON KURSY.KURS_ID = ZAJECIA.KURS_ID)
ON WYKLADOWCY.WYK_ID = ZAJECIA.WYK_ID
WHERE WYK_TYTUL LIKE " *dr* "

ORDER BY KURS_NAZ, KURS_OD

background image

Wprowadzanie do tabeli nowego
wiersza

Instrukcja INSERT języka SQL

INSERT INTO

nazwa tabeli

(

lista nazw kolumn

)

VALUES (

lista wartości pól kolumn w nowym

wierszu tabeli

)

dotyczy pojedynczego wiersza tabeli
postać ogólna:

wartości pól typu innego niż numeryczny należy

ujmować w odpowiednie separatory (np. tekst: "
lub ', data: #)

w bazach programu Access daty podaje się w formacie

amerykańskim. tj.

mm/dd/rr

(miesiąc/dzień/rok)

możliwe źródła błędów: naruszenie referencyjnej

integralności danych, naruszenie reguł
poprawności, próba powtórzenia wartości w obrębie
jednoznacznego indeksu

INSERT INTO KURSY (KURS_NAZ, KURS_OD, KURS_DO, KURS_OPL)
VALUES ("Programowanie obrabiarek CNC", #02/03/03#,
#02/07/03#, 650)

... ale wówczas trzeba nadać wartości wszystkim polom

wiersza (zgodnie z ich kolejnością określoną w projekcie

tabeli)

Listę nazw kolumn
można pominąć ...

background image

Modyfikowanie danych w tabeli

Instrukcja UPDATE języka SQL

UPDATE

nazwa tabeli

SET

nazwa kolumny 1

=

wartość pola 1
[, nazwa kolumny 2 = wartość pola 2, ...]

WHERE

warunki dla rekordów, których pola

podlegają edycji

dotyczy wszystkich wierszy spełniających podane

w członie WHERE kryteria wyboru

wartości pól typu innego niż numeryczny należy

ujmować w odpowiednie separatory (np. tekst: "
lub ', data: #)

postać ogólna:

możliwe źródła błędów: naruszenie referencyjnej

integralności danych, naruszenie reguł
poprawności, próba powtórzenia wartości w obrębie
jednoznacznego indeksu

UPDATE KURSY SET KURS_OD = KURS_OD + 1
WHERE KURS_OD BETWEEN #04/01/03# AND #04/24/03#

Jeżeli nie podano kryteriów wyboru modyfikowanych

rekordów, edycji zostaną poddane WSZYSTKIE

WIERSZE TABELI !

Wartość

stała

lub

wyrażenie

background image

Usuwanie wierszy z tabeli

Instrukcja DELETE języka SQL

DELETE * FROM

nazwa tabeli

WHERE

kryteria wyboru rekordów usuwanych z

tabeli

dotyczy wszystkich wierszy spełniających podane

w członie WHERE kryteria wyboru

postać ogólna:

możliwe źródło błędów: naruszenie referencyjnej

integralności danych (próba usunięcia z tabeli
znajdującej się po stronie jeden
relacji typu jeden do
wielu
takiego rekordu, do którego odwołują się
klucze obce w tabeli po stronie wiele
tej relacji)

DELETE * FROM KURSY WHERE KURS_DO <= #12/31/00#

DELETE * FROM WYKLADOWCY WHERE WYK_NAZ = "Kowalski"

Jeżeli nie podano kryteriów wyboru usuwanych

rekordów,

z tabeli zostaną usunięte WSZYSTKIE WIERSZE !

background image

Wykorzystywanie poleceń języka SQL

Interaktywne

zażądanie

wykonania
polecenia

ręczne wpisanie treści polecenia języka SQL w

interfejsie odpowiedniego programu obsługi bazy
danych

obejrzenie

zwróconego zbioru
rekordów

background image

Wykorzystywanie poleceń języka SQL

Zagnieżdżenie w kodzie innego języka

programowania

zastosowanie techniki umożliwiającej

interpretację

i wykonanie wpisanej instrukcji (metody

obiektów tworzonych przez środowisko budowy
aplikacji bazy danych, obiekty dostępu do danych,
prekompilatory)

wpisanie do kodu programu instrukcji SQL w

postaci

ciągu znaków lub zaprogramowanie tworzenia

takiej instrukcji przez wykonywany segment kodu
odpowiednio do aktualnego kontekstu pracy
programu

ewentualne wykorzystanie w kodzie aplikacji

zwróconego zbioru danych (zestawy rekordów,
kursory)

SQLText = "DELETE FROM DOK_OBIEKTY WHERE OBPR_ID = " & _
CStr(Me.df_OBPR_ID)
DoCmd.RunSQL SQLText, True

background image

Wykorzystywanie poleceń języka SQL

Związanie ze zdarzeniami

umieszczenie instrukcji SQL w procedurze

wykonywanej w reakcji na wystąpienie
określonego zdarzenia

określenie źródła danych dla formularza

Związanie z właściwościami obiektu

wchodzącego w skład interfejsu
użytkownika aplikacji

określenie źródła danych dla formantu

typu lista lub pole kombi (lista rozwijalna)

background image

Interfejs budowy poleceń operowania
danymi

Technika QBE (Query by Example)

Przeciąganie

żądanych

pól myszą

Samochody

ID_Samochodu

Nr rejestracyjny

Opis

Rocznik

Naprawy

ID_Naprawy

Data przyjęcia

Data wydania

ID_Samochodu

1

N

Praca w graficznym interfejsie użytkownika bazy

danych

Idea: graficzna budowa wzorcowej postaci wiersza

zbioru wyników wyszukiwania wraz z kryteriami i
sposobem sortowania

W tle tworzona jest instrukcja SELECT języka SQL

Nr rejestracyjnyRocznik

Data przyjęcia Data wydania

Like ‘WID*’

> 25.10.02

Rosnąco

Rosnąco

Struktura wiersza wyników

Kryteria wyszukiwania

Uporządkowanie wyników

background image

Technika QBE – realizacja w programie
Access

Interfejs

projektowani
a kwerendy
wybierającej
dane z tabel
bazy

Utworzona w

tle instrukcja
SELECT

języka SQL

background image

Technika QBE – realizacja w środowisku Visual
Studio

Utworzo
na
instrukc
ja
SELECT

Interfejs
projektowan
ia kwerendy
wybierającej
dane z tabel
bazy

Wynik
wykona
nia
kwerend
y

background image

Techniki operowania danymi

w bazach relacyjnych

Warszawa, 2010

© Witold Marowski, IMRC PW

Politechnika Warszawska, Wydział Samochodów

i Maszyn Roboczych

Studia Inżynierskie, semestr VII


Document Outline


Wyszukiwarka

Podobne podstrony:
02 3id 3357 ppt
02 6id 3367 ppt
02 wyklad3id 3850 ppt
02 2id 3352 ppt
11W sObligacje skarbowe 01 02 2008id 13126 ppt
02 MAKROEKONOMIAid 3667 ppt
01 Inwestycje Biz portferowe kryzysy 17 02 081id 2825 ppt
02 Urządzenia sterowe ppt
02 4id 3361 ppt
02 xmlid 3920 ppt
02 JakoscWProcesieid 3637 ppt
02 3696id 3556 ppt
02 Grawimetriaid 3907 ppt
02 Nerkiid 3685 ppt
02 wyklad1id 3845 ppt

więcej podobnych podstron