Oracle SQL, Rodzaj typu realcji pomiędzy tabelami

0

Witam,
Posiadam dwie tabele

Pierwsza:
Nazwa: Pracownicy
Elementy tabeli: NrPracownika, ImieNazwisko, Zaplata

Druga:
Nazwa: Wynagrodzenie
Elementy tabeli: stopien, prog_niski, prog_wysoki

Tabla "Pracownicy" łączy się z tabelą "Wynagrodzenie" w następujący sposób:

SLECT Pracownicy.ImieNaziwsko, Wynagrodzenie.stopien
FROM Pracownicy, Wynagrodzenie
WHERE Pracownicy.Zaplata BETWEEN Wynagrodzenie.prog_niski AND Wynagrodzenie.prog_wysoki;

W ten sposób uzyskuje dla każdego pracownika stopień wynagrodzenia określony w tabeli "Wynagrodzenie".

Jaka jest relacja pomiędzy tymi tabelami i które pola są dokładnie połączone aby uzyskać tego typu relacje ?

Proszę o pomoc,
Pozdrawiam Tomasz Pietraszko :)

0

Kasiu: Czyli tabele po prostu "wiszą" i nie są połączone żadną "nitką" (aka relacją), tak ? :)

Odpowiadam dopiero teraz, bo wcześniej nie zauważyłem Twojej odpowiedzi napisanej w taki sposób, pozdrawiam :)

0

ja napiszę tak - trochę dziwne to pytanie bo o tym czy tabele są połączone relacją czy nie decyduje ktoś, kto projektuje całą bazę a takie pytanie to jest coś na kształt "co autor miał na myśli". Jak masz dostęp do tej bazy to trzeba zobaczyć jakie są w niej PK i FK i będziesz wiedział a próba odpowiedzi na Twoje pytanie na podstawie tylko i wyłącznie zapytania do bazy to bardziej zgadywanie.

0

Z założenia jest tu relacja 1 do 1 ale może być również 1 do wiele, jeżeli pensja pracownika będzie wpadać w kilka zakresów/widełek.

0

coś Ci się chyba pomieszało. Jakby było 1-1 to raz, że każda pensja musiała by być dokładnie taka jak któryś próg (albo niski albo wysoki, w zależności od tego jakbyś tą relację zdefiniował) a dwa, że dany próg musiał by odpowiadać dokładnie jednej pensji. Natomiast przy 1-n też by musiała każda pensja być dokładnie taka jak któryś próg, z tym, że wiele pensji mogły by być takie same. Tutaj nie ma żadnej relacji, przynajmniej nie ma relacji pensja - próg, może są jakieś inne ale tego nie da się stwierdzić na podstawie tego zapytania. Generalnie stwierdzenie czy relacja jest tylko na podstawie zapytania to jak wróżenie z fusów.

0

Hej. Już tłumaczę o co mi chodzi.

Jak wspomniałem są tam dwie tabele tj.

Pierwsza:
Nazwa: Pracownicy
Elementy tabeli: NrPracownika, ImieNazwisko, Zaplata

Druga:
Nazwa: Wynagrodzenie
Elementy tabeli: stopien, prog_niski, prog_wysoki

Tabela pierwsza pt. "PRACOWNICY" zawiera numer pracownika, jego imię i nazwisko oraz wypłatę. Tabela druga określa widełka wynagrodzenia, każdy pracownik należy do 1 widełka, bo tabela ta wygląda w taki sposób:

1 999 2000
2 2001 3500
3 3501 9999

Czyli stopień 1 wynagrodzenia zostanie wyświetlony dla pracownika którego wypłata mieści się w przedziale <999;2000>, jak zrobić taką relację pomiędzy tabelami aby można było wykorzystać moje zapytanie z pierwszego posta w temacie ? Porada Kasi oczywiście nie działa czyli brak relacji.

0

ale OCB??? Przecież to zapytanie zadziała ZAWSZE niezależnie od tego czy będzie tam jakaś relacja czy nie. Chyba nie do końca pojmujesz ideę relacji i po co one tak naprawdę są

0
Misiekd napisał(a)

ale OCB??? Przecież to zapytanie zadziała ZAWSZE niezależnie od tego czy będzie tam jakaś relacja czy nie. Chyba nie do końca pojmujesz ideę relacji i po co one tak naprawdę są

To pytam się dlaczego powyższe zapytanie nie zwraca mi żadnych wyników ?

0
Tomasz Pietraszko napisał(a)

To pytam się dlaczego powyższe zapytanie nie zwraca mi żadnych wyników ?
bo nie masz danych, z których by mogło coś zwrócić... BTW u mnie działa

0
Misiekd napisał(a)
Tomasz Pietraszko napisał(a)

To pytam się dlaczego powyższe zapytanie nie zwraca mi żadnych wyników ?
bo nie masz danych, z których by mogło coś zwrócić... BTW u mnie działa

Dzięki za udzielenie się w moim temacie. Sierota jestem i na zapomniałem wypełnić tabeli w accessie dotyczącej określenia widełek wynagrodzenia, no cóż... wybaczcie moją nieuwagę! ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1