Top 5 fizetésű alkalmazottak listája

Top5 fizetés

Top5 fizetésAz a fela­da­tunk, hogy az Oracle HR sé­má­ból le­kér­dez­ve állít­suk elő a top 5 fizetésű alkalmazottak listáját, a fizetések csökkenő sorrendjében. Ez egytáblás lekérdezéssel megvalósítható. Az EMPLOYEES táb­lában megtalálható az összefűzött névhez szükséges FIRST_NAME és LAST_NAME mezők, valamint a fizetés a SALARY mezőben. Min­den alkalmazottnak van neve és fizetése. Előfordul legalább 5 különböző fizetés.

Oracle HR séma

Tanfolyamainkon többféleképpen modellezzük és tervezzük meg a feladat megoldását.

Megoldás (Java SE szoftverfejlesztő tanfolyam)

A Java SE szoftverfejlesztő tanfolyam 45-52. óra: Adatbázis-kezelés JDBC alapon alkalmain a következők szerint modellezünk és tervezünk.

Kiindulunk az alábbi egyszerű lekérdező parancsból (V1):

Top5SalaryV1Select

Eredményül ezt kapjuk (részlet, V1):

Top5SalaryV1 Eredmény

A kapott 107 rekordból álló eredménytáblát a Java kliensprogram fejlesztése során leképezzük egy generikus POJO listába, a rekordonként összetartozó két adatból előállítva az objektumok tulajdonságait. Kiderül, hogy a 17000 többször is előfordul. Mivel bármely fizetés előfordulhatna többször is, így előre nem tudjuk, hogy az eredménytáblából mennyi rekordot kell áttölteni a listába. A fizetésekből generikus halmazt építhetve, addig tudjuk folytatni a beolvasást, amíg a halmaz elemszáma kisebb ötnél. Eredményül hat rekordot kapunk. A Java kliensprogram forráskódját most nem részletezzük, de tanfolyamaink hallgatói számára ILIAS e-learning tananyagban tesszük elérhetővé a teljes forráskódot. Ennél a megoldásnál egyszerűbb a lekérdező parancs, de több feladat hárul a Java kliensprogramra.

Lássunk néhány tévutat és az általános megoldás helyett konkrét megoldásokat! Ha szeretnénk adatbázis oldalon megoldani a feladatot, akkor használhatnánk a ROWNUM pszeudooszlopot. Ez 1-től sorszámozza az eredménytáblát, így használható lehetne arra, ha limitálni szeretnénk a visszaadandó rekordok számát.

1. elvi hibás lekérdező parancs:

Top5SalaryV2 Select

1. elvi hibás eredmény:

Top5SalaryV2 Eredmény

A hiba elvi, a lekérdező parancs szintaktikailag helyes. A harmadik oszlopban látjuk, hogy a rekordok sorszámozása megtörténik, de a kapott nevek és fizetések eltérnek a V1 esetben kapott helyes eredménytől. Az okokat természetesen megbeszéljük. Támpont: próbáljuk meg a lekérdező parancs feltételében kicserélni az 5-öt például 10-re és próbáljuk megmagyarázni, miért kapjuk azt, amit kapunk. Továbbá a konkrét esetben tudjuk, hogy hat rekordot kellene kapunk. Felmerülhet a gyanú, hogy a rendezés túl későn történik meg. Megpróbáljuk zárójelezéssel és lekérdezések egymásba ágyazásával befolyásolni a WHERE és ORDER BY alparancsok végrehajtási sorrendjét.

2. elvi hibás lekérdező parancs:

Top5SalaryV3 Select

2. elvi hibás eredmény:

Top5SalaryV3 Eredmény

A hiba most is elvi, a lekérdező parancs szintaktikailag helyes. A zárójelezés valóban hatással van a két alparancs végrehajtási sorrendjére és megfigyelhető, hogy a harmadik oszlopban a rekordok táblabeli fizikai sorrendje jelenik meg és a feltétel ( ROWNUM <= 5) nem a mező értékére, hanem a rekordok darabszámára értendő. Nyilván az 5-öt 6-ra módosítva visszakaphatnánk a V1 első hat rekordját, de ez nem lenne általános megoldás. Más úton is eljuthatunk a konkrét megoldáshoz.

3. elvi hibás lekérdező parancs:

Top5SalaryV4 Select

3. konkrét megközelítéssel kapott helyesnek látszó eredmény:

Top5SalaryV4 Eredmény

A hiba most is elvi, a lekérdező parancs szintaktikailag helyes. Általános megoldás helyett konkrét megoldásként megkapjuk a V1 első hat rekordját, de ehhez be kellett építeni a lekérdező parancsba a 13000-et. Ez a Top 5-ben legkisebb fizetés. Megbeszéljük, hogy miért hasznos a DISTINCT módosító/kulcsszó beépítése a lekérdező parancsba.

Megoldás (Java adatbázis-kezelő tanfolyam)

A Java adatbázis-kezelő tanfolyam 9-12. óra: Oracle HR séma elemzése, 13-16. óra: Konzolos kliensalkalmazás fejlesztése JDBC alapon, 1. rész, 33-36. óra: Grafikus kliensalkalmazás fejlesztése JDBC alapon, 2. rész alkalmával a következők szerint modellezünk és tervezünk.

Most arra helyezzük a hangsúlyt, hogy back-end, azaz adatbázis oldalon állítsuk elő az eredményt és ezáltal a front-end, azaz a Java kliensprogram egyszerűbb lehet. A lekérdező parancsot belülről kifelé haladva gondoljuk végig. Először kell egy halmaz a különböző fizetésekről csökkenő sorrendben. Utána ebből kell az első öt darab, amelyek halmazt alkotnak. Végül erre építve kell azoknak az alkalmazottaknak a neve és fizetése, akiknek a fizetése benne van a halmazban.

1. majdnem helyes megoldás:

Top5SalaryV5 Select

1. általános megközelítéssel kapott helyesnek látszó eredmény:

Top5SalaryV4 Eredmény

A probléma az, hogy az adatok helyes sorrendje a véletlennek köszönhető. Ha a lekérdező parancs feltételében az 5 helyett nagyobb számokat helyettesítünk be, akkor ez jól megfigyelhető. A következő megoldás már ezt a problémát is kezeli.

Finomítva a 3. elvi hibás lekérdező parancsot, a konkrét 13000 helyettesíthető belső lekérdező paranccsal. Építsük ezt be az 1. helyes megoldásba úgy, hogy az IN predikátum helyett használjuk a nagyobb vagy egyenlő hasonlító operátort. A középső lekérdező parancs a halmaz helyett már csak egyetlen értéket adjon vissza, amelyhez könnyű hasonlítani az aktuális alkalmazott fizetését. Ezzel kiváltható a nagyobb memóriaigényű halmazban való tartalmazottságot eldöntő művelet, a jóval hatékonyabb egy értékkel való összehasonlítással. Memóriaigény szempontjából nem maga a konkrét művelet/operátor az érdekes, hanem a használatukhoz szükséges adatok előállítása, mennyisége, tárolása, feldolgozása.

2. helyes megoldás:

Top5SalaryV6 Select

2. általános megközelítéssel kapott helyes eredmény:

Top5SalaryV4 Eredmény

Közben az is kiderült, hogy miért szükséges két helyen az ORDER BY alparancs.

Végül, ha ismerjük az Oracle DENSE_RANK() analitikai függvényét, amely egy rendezett lista különböző elemeihez rendel sorrendben számokat (másképpen rangsort állít fel 1-től kezdve), akkor elkészíthetjük az alábbi megoldást.

3. helyes megoldás:

Top5SalaryV7 Select

3. általános megközelítéssel kapott helyes eredmény:

Top5SalaryV7 Eredmény

Érdemes átgondolni és összehasonlítani a többféle különböző megközelítés lehetőségeit, korlátait. Ha egyensúlyozni kell a kliensprogram és az adatbázis-szerver terhelése között, valamint az MVC modell összetettsége, karbantarthatósága, könnyen dokumentálhatósága a/is szempont, akkor többféle alternatív módszer is bevethető, valamint építhetünk a különböző Oracle verziók (dialektusok) képességeire is.

Az SQL forráskódok formázásához a Free Online SQL Formatter-t használtam.

MAFIOK 2023

A Matematikát, Fizikát és Informatikát Oktatók 44. Országos Konferenciája (MAFIOK 2023) a Neumann év keretében a Neumann János Egyetem GAMF Műszaki és Informatikai Karán, Kecskeméten került megrendezésre 2023. augusztus 23-25-ig.

A konferencia céljai

A rendezvény elsődleges célja annak elősegítése, hogy a felsőoktatási intézmények oktatói és kutatói a matematika, a fizika, az informatika és a logisztika korszerű és hatékony oktatásáról és tudományos eredményeiről előadások, poszter-bemutatók és személyes találkozás révén tapasztalatot cserélhessenek, valamint kapcsolatot építhessenek mind a hazai kollégákkal, mind a környező országok magyar ajkú oktatóival. A rendezvény célja továbbá, hogy fórumot adjunk PhD hallgatók eredményeinek bemutatására.

A konferencia tervezett főbb témakörei

  • a korszerű matematika-, fizika-, logisztika- és informatikatanítás és tanulás új útjai és távlatai, oktatásfejlesztési tapasztalatai,
  • a felsőoktatás alapozó tárgyainak oktatás-módszertani problémái,
  • mesterképzésbe való bekapcsolódás, a duális képzés gondjai és tapasztalatai,
  • matematika, fizika, informatika, logisztika tudományos eredményei,
  • új és innovatív kutatási irányok, problémák és gyakorlati alkalmazások bemutatása a fenti tudományterületeken.

A konferencia programja

A letölthető absztraktkötet tartalmazza a program- és szervezőbizottság által összeállított szakmai programot. A szerdai 5 plenáris előadást este bűvészprogram követte. Csütörtökön párhuzamos szekciókat tartottak: Matematika, Matematika oktatása, Fizika, Informatika, Logisztika, valamint poszterbemutató, mindezek után szakmai kirándulás volt Lakitelken a Hungarikum Ligetben planetáriumi bemutatóval, borkóstolóval, vacsorával. Pénteken a Matematika, Informatika szekciók után a konferenciát 2 plenáris előadás zárta. 20-nál több intézményből 100-nál több előadó regisztrált a rendezvényre.

Részt vettünk a konferencián

2023-ban két szakmai előadást tartottunk, 20-20 percben, a csütörtöki Informatika szekcióban.

Szakmai cikkeink a Gradus lektorált, online folyóiratban fognak megjelenni (ISSN 2064-8014), amely eredeti publikációkat közöl számos témakörben, beleértve a természettudományok minden területét, mindenféle műszaki tudományt, számítástechnikát, kertészetet, környezetmérnökséget, pedagógiát, didaktikát és közgazdaságtant. A számítástechnika és a matematika elméleti és alkalmazott területeit is befogadja. A folyóirat csak kutatási cikkeket közöl, és minden cikk az esettanulmányok, kísérletek, vagy a gyakorlatban már alkalmazott megközelítésekkel való szisztematikus összehasonlítások révén előrehaladó ötletek gyakorlati alkalmazását tárgyalja.

Szakmai előadásaink összefoglalói

Kaczur Sándor, Friedel Attila – Hogyan érdemes nagy tömegű adatot importálni Microsoft .NET Framework platformon?

Üzleti alkalmazások fejlesztésénél elengedhetetlen alkotóelem az adatok kezelése, tárolása. Ezt leggyakrabban valamilyen relációs adatbázis-kezelővel valósítják meg a fejlesztők. A hétköznapi munka során gyakran előforduló feladat külső forrásból történő adatok átvétele, aktualizálása. A cikk szerzői arra a kérdésre keresik a választ, hogy hogyan érdemes ezen (néha igen tetemes mennyiségű) adatokat minél gyorsabban átvenni. A bemutatásra kerülő esettanulmány Microsoft .NET Framework segítségével, a platform által kínált adatbázis-kezelési lehetőségek közül válogat. A cikk összehasonlítja a nyelvben már régóta jelen lévő alacsony szintű SQL parancsokkal végzett megvalósítást a később beépített, de szintén elterjedt objektumrelációs modell keretrendszerrel (azaz az Entity Framework-kel) történő megvalósítással, majd elemzi a kapott eredményeket.

Kaczur Sándor, Kiss Balázs – Alkalmazottak életpálya modellje – Java és SQL esettanulmány az Oracle HR sémára építve

Az objektumorientált programozás oktatásának része olyan kliensprogramok tervezése, kódolása és tesztelése, amelyek képesek adatbázishoz csatlakozni. A belépő szint csupán lekérdezés, adatok megjelenítése űrlapokon, táblázatos komponensekben, vagy grafikonokon. Haladó szinten már szükséges az adatok karbantartása is, illetve konzolos, asztali alkalmazásokról át lehet térni webes és mobil platformokra is. A szerzők cikke ebből az útból emel ki egy esettanulmányt, amely Java és SQL nyelveken készült és MVC architekturális tervezési mintát használ. A felhasznált mintaadatok az Oracle HR sémából származnak. Az elemzés betekintést nyújt a modellalkotás lehetőségeibe – többféle megközelítést alkalmazva, elvi és konkrét szinten is.

Az előadásaink témája a Java adatbázis-kezelős tanfolyam szakmai moduljához és orientáló moduljához is kapcsolódik. Az előadásaink prezentációit ILIAS e-learning tananyagban tettük elérhetővé tanfolyamaink résztvevői számára.

Korábbi MAFIOK előadásaink, cikkeink, posztereink

  • Kaczur S.: Az OracleHRJSP webalkalmazás működése, Matematikát, fizikát és informatikát oktatók (MAFIOK) XXXVIII. országos konferenciája, Pécs, Pécsi Tudományegyetem Pollack Mihály Műszaki és Informatikai Kar, 2014, ISBN 978-963-7298-55-4, p. 121-126 (magyar nyelvű szakcikk)
  • Kaczur, S.: A Gábor Dénes Tehetségpont programozáshoz kötődő diákműhelyei, Matematikát, fizikát és informatikát oktatók (MAFIOK) XXXVIII. országos konferenciája, Pécs, Pécsi Tudományegyetem Pollack Mihály Műszaki és Informatikai Kar, 2014. augusztus 25-27. (poszter hazai konferencián)
  • Kaczur, S.; Lengyel, B. I. (előadó: Kaczur, S.): A csomópont kiválasztás algoritmus működését bemutató oktatóprogram PLNC adatátvitel esetén, Matematikát, fizikát és informatikát oktatók (MAFIOK) XXXVIII. országos konferenciája, Pécs, Pécsi Tudományegyetem Pollack Mihály Műszaki és Informatikai Kar, 2014. augusztus 25-27. (poszter hazai konferencián)
  • Kaczur, S.: Nyílt forráskódú EKG analizáló algoritmusok hatékonysága (Signal analysis), Matematikát, fizikát és informatikát oktatók XXXVI. országos konferenciája (MAFIOK), Gyöngyös, Károly Róbert Főiskola, 2012. augusztus 27-29. (előadás hazai konferencián)
  • Kaczur, S.; Fintor, K.: Szerkezetföldtani oktatóprogram, vetőmenti elmozdulások modellezésére, Perspective, XV. évfolyam különszám, Szent István Egyetem Gazdasági Kar, 2011, ISSN 1454-9921, p. 215-222 (magyar nyelvű szakcikk)
  • Fintor, K.; Kaczur, S.: Vetőmozgások 3D-s szimulációjának alkalmazása a földtudományi képzésben, Perspective, XV. évfolyam különszám, Szent István Egyetem Gazdasági Kar, 2011, ISSN 1454-9921, p. 208-204 (magyar nyelvű szakcikk)
  • Kaczur, S.; Fintor, K. (előadó: Kaczur, S.): Szerkezetföldtani oktatóprogram, vetőmenti elmozdulások modellezésére, Matematikát, fizikát és informatikát oktatók XXXIV. konferenciája (MAFIOK), Békéscsaba, Szent István Egyetem Gazdasági Kar, 2010. augusztus 24-26. (előadás hazai konferencián)
  • Fintor, K.; Kaczur, S. (előadó: Fintor, K.): Vetőmozgások 3D-s szimulációjának alkalmazása a földtudományi képzésben, Matematikát, fizikát és informatikát oktatók XXXIV. konferenciája (MAFIOK), Békéscsaba, Szent István Egyetem Gazdasági Kar, 2010. augusztus 24-26. (előadás hazai konferencián)
  • S. Kaczur; S. Kopácsi: Practical application of coordinate and dot transformations, A GAMF Közleményei, Kecskemét, XXIII. évf., 2008, HU ISSN 1587-4400, p. 121-126 (idegen nyelvű szakcikk)
  • Kaczur, S.; Kopácsi, S. (előadó: Kaczur, S.): Koordináta- és ponttranszformációk alkalmazása a gyakorlatban, Felsőfokú alapképzésben matematikát, fizikát és informatikát oktatók XXXII. Konferenciája (MAFIOK), Kecskemét, Kecskeméti Főiskola, 2008. augusztus 25-27. (előadás hazai konferencián)

Multimédia az oktatásban 2023

NJSZT-MMO logó

NJSZT-MMO logóA Neumann János Számítógép-tudományi Társaság (NJSZT) „Multimédia az oktatásban” Szakosztály által – évente – szervezett XXIX. Multimédia az oktatásban nemzetközi konferencia hibrid (jelenléti és online) formában került megrendezésre 2023. július 6-7-én Neumann születésének 120. évfordulóján.

A konferencia célja

A szakmai rendezvény célja, hogy elősegítse az oktatás, valamint a kutatás és fejlesztés különböző területein dolgozó, oktató hazai és külföldi szakemberek, PhD és felsőoktatási hallgatók kapcsolatfelvételét, tapasztalatok és jó gyakorlatok cseréjét, egyes képzési szakterületekhez kapcsolódó kreditek gyűjtését és elősegítse a neumanni örökség minél szélesebb körű megismertetését.

28 témakörben hirdették meg az előadóknak a jelentkezési lehetőséget, köztük néhány hozzánk kötődő

  • élethelyzethez igazított tanulás,
  • a multimédia alkalmazása a felsőoktatásban és a felnőttképzésben,
  • a tanulási környezet technikai, technológiai változása,
  • felhőalapú szolgáltatások,
  • multimédia és a tudományos kutatás összefonódása,
  • multimédia-fejlesztések, eredmények, alkalmazások bemutatása.

A konferencia programja

Letölthető a konferencia programja. A konferencia a Szegeden található Informatikai Múzeumból – Agórából, az Informatóriumból élő közvetítésben zajlott Teams platformon 2 nap alatt 6 szekcióban 25 előadás hangzott el, valamint a Neumann életmű kapcsán sor került plenáris előadásokra és bemutatásra került a 10 éves Informatika történeti kiállítás.

Részt vettünk a konferencián

Oktatóink rendszeresen részt vesznek az MMO konferencián. Szakmai blogunkban több beszámoló is van, lásd MMO címke. Kaczur Sándor oktatónk publikációs listájában szerepelnek a szakmai előadások és a megjelent szakmai cikkek. Jövőre is szívesen csatlakozunk a rendezvényhez.

Közös esettanulmányukból Sándor 2023-ban előadást tartott 20 percben, amely a konferencia „Élethelyzethez igazított tanulás, Multimédia-fejlesztések, eredmények, alkalmazások bemutatása” című szekciójába került. Az előadás prezentációját ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára. A téma a Java adatbázis-kezelő tanfolyamunk tematikájának orientáló moduljához kötődik. Elérhető a konferencia kiadvány.

Szakmai előadásunk összefoglalója

Friedel Attila,  Kaczur Sándor – Hogyan érdemes nagy tömegű adatot importálni Microsoft .NET Framework platformon?

Üzleti alkalmazások fejlesztésénél elengedhetetlen alkotóelem az adatok kezelése, tárolása. Ezt leggyakrabban valamilyen relációs adatbázis-kezelővel valósítják meg a fejlesztők. A hétköznapi munka során gyakran előforduló feladat külső forrásból történő adatok átvétele, aktualizálása. A cikk szerzői arra a kérdésre keresik a választ, hogy hogyan érdemes ezen (néha igen tetemes mennyiségű) adatokat minél gyorsabban átvenni. A bemutatásra kerülő esettanulmány Microsoft .NET Framework segítségével, a platform által kínált adatbázis-kezelési lehetőségek közül válogat. A cikk összehasonlítja a nyelvben már régóta jelen lévő alacsony szintű SQL parancsokkal végzett megvalósítást a később beépített, de szintén elterjedt objektumrelációs modell keretrendszerrel (azaz az Entity Framework-kel) történő megvalósítással, majd elemzi a kapott eredményeket.

Alkalmazottak életpálya modellje – mi lenne, ha…?

Kiss Balázs kolléga Alkalmazottak életpálya modellje – munkakör, fizetés jutalék blog bejegyzése inspirálta ezt a blog bejegyzést. Az Oracle HR sémában az értékesítési vezetők adható havi fizetése 10000 és 20000 között van, átlagfizetésük 12200. Az üzletkötők paraméterei hasonlóan: 6000, 12000, 8350. A pénznem USD. Mi lenne, ha…? Ha többféleképpen is kalkulálhatnánk jutalékokat fizetési modellek alapján. Vajon hogyan lehetne választani? Következzen kétféle fizetési modell az alkalmazottak jutalékaihoz kötődően.

Alkossunk egy fizetési modellt! Hogyan kalkuláljuk a jutalékokat?

A jutalék negyedévente kerül kifizetésre és a havi fizetés megadott százaléka. Például: Elizabeth Bates üzletkötő havi fizetése 7300, jutaléka 15%, azaz minden 3. hónapban a fizetése 8395 helyett 10585. A negyedévek első két hónapjában a cég bérköltsége 691400, az utolsó hónapjában pedig 765090. Mindez arra a 106 fő alkalmazottra vonatkozik, akik részleghez tartoznak. Nincs benne az az 1 fő, aki nincs részleghez rendelve.

Összesített megoldás

A lekérdező SQL parancs:

Eredményül ezt az eredménytáblát adja:

Részlegekre összesített 1. megoldás

Vegyük figyelembe azt a 106 fő alkalmazottat, akik részleghez tartoznak (a 107 fő közül). Az alábbi lekérdező SQL parancsot futtatva:

Az eredménytábla 11 rekordból áll. A százalékok a részlegre jutó bérköltség arányát fejezik ki (tényleges fizetésre és jutalékos fizetésre vonatkoztatva).

Részlegekre összesített 2. megoldás

Balázs írta, hogy a Sales részlegben 35-en dolgoznak. Ez akkor helytálló, ha a munkakörök alapján kérdezzük le és láttuk, hogy a 35 főből értékesítési vezetőként 5 fő, üzletkötőként 30 fő dolgozik. Igen ám, de van egy olyan alkalmazott, aki nem tartozik egy részleghez sem ( DEPARTMENT_ID IS NULL), ezért kapjuk az előző eredménytábla szerint a Sales részlegben a 34 főt. Ugyanis az azt előállító lekérdező parancs a  DEPARTMENT_ID részlegazonosító alapján kapcsolja össze a két táblát ( EMPLOYEES és DEPARTMENTS). Ha az ő fizetését is figyelembe kell venni, akkor ez lehetséges az alábbi lekérdező paranccsal:

Az eredménytáblában az utolsó, 12. rekord tartalmazza az eddig hiányzó 1 fő alkalmazott adatait:

Az eredménytábla – az utolsó rekord kivételével – majdnem megegyezik az előzővel. A fizetési modell szerint a negyedévek első két hónapjában a cégre vonatkozó bérköltség 7000-rel növekszik és a negyedévek harmadik hónapjában pedig 8050-nel. A fizetések arányát százalékban egy tizedesjeggyel ábrázolva szinte nem vehető észre a különbség. A rekordok azonos sorrendjétől tekintsünk most el, hiszen a UNION és az ORDER BY alparancsok alkalmazása együtt külön történet. Aki érti, hogy mire gondolok, most biztosan kacsint egyet. 😉 Aki még nem érti, annak részletesen elmagyarázzuk Java adatbázis-kezelő tanfolyamunkon. Továbbá a százalékokat összesítve a kerekítésük miatt nem kapunk pontosan 100%-ot.

Az így kapott adatok kiegészítik a Top 5 fizetésű alkalmazottak listája blog bejegyzésben kapott adatokat. Ott nem szerepelnek az alkalmazottak részlegei, de természetesen könnyen összepárosíthatók. Másképpen: a 107 fő alkalmazottból 35 fő (32,7%) kapja a fizetések 45%-át jutalék nélkül, illetve 50,4%-t jutalékkal kalkulálva. Tehát érdemes/megéri a Sales részlegben dolgozni. Még akár jutalék nélkül is. 🙂

A bejegyzéshez tartozó teljes Java forráskódot (ami beépítve tartalmazza a fenti SQL lekérdező parancsokat) ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladatok a Java adatbázis-kezelő tanfolyam 13-16. óra: Konzolos kliensalkalmazás fejlesztése JDBC alapon, 1. rész alkalmához és a 33-36. óra: Grafikus kliensalkalmazás fejlesztése JDBC alapon, 1. rész alkalmához kötődnek.

Az SQL forráskód formázásához a Free Online SQL Formatter-t használtam.

Alkossunk másik fizetési modellt! Várjuk hozzászólásban a megoldás SQL parancsait.

Vajon hogyan változna az előző fizetési modell, ha a negyedévente kifizetendő jutalék számítási alapja a havi fizetés helyett a háromhavi – időszakra vonatkozó – fizetés megadott százaléka lenne? Hogyan alakulna a cég bérköltsége?

Alkalmazottak életpálya modellje – munkakör, fizetés, jutalék

Az Oracle HR sémában 11 részleg található 107 alkalmazottal, akik 19 különböző munkakörben végzik munkájukat. Nyilvánvalóan mindenkinek a fizetése pozitív ( SALARY>0), havi, USD pénznemben. Két munkakörre jellemző, hogy tartozik hozzá jutalék ( COMMISSION_PCT), amely pozitív valós szám. A 17 többi munkakörben foglalkoztatott alkalmazott esetében az adatbázis EMPLOYEES táblájának jutalék mezőjében NULL található. Az Oracle HS séma:

Oracle HR séma

Életpálya-modellnek tekinthető a munkakörhöz ( JOB_ID és JOB_TITLE) tartozó adható legkisebb és legnagyobb fizetés ( MIN_SALARY, MAX_SALARY) nyújtotta mozgástér. Minden alkalmazottra teljesül, hogy a fizetése a megadott határok között található (zárt intervallumként kezelve). Ennek ellenőrzésére használható az alábbi SQL parancs:

Eredménytábla:

A MIN(SALARY) oszlopban található a valós/kapott fizetések minimuma. A mellette lévő oszlopok hasonlóan a maximumot és az átlagot mutatják. A részlegben található alkalmazottak számát az utolsó, COUNT_EMPLOYEE oszlop tartalmazza.

35 fő dolgozik a Sales részlegben. Az 5 fő Sales Manager (értékesítési vezető) jutaléka a fizetés 20%-ától 40%-áig terjedhet 10%-os lépésközzel (3-féle lehet). A 30 fő Sales Representative (üzletkötő) jutaléka a fizetés 10%-ától 35%-áig terjedhet 5%-os lépésközzel (6-féle lehet). Ennek igazolására használható az alábbi SQL parancs:

Eredménytábla:

A bejegyzéshez tartozó teljes Java forráskódot (ami beépítve tartalmazza a fenti SQL lekérdező parancsokat) ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladatok megoldása során nem foglalkoztam külön azzal az egy alkalmazottal, akinek nincs részlege. A feladatok a Java adatbázis-kezelő tanfolyam 13-16. óra: Konzolos kliensalkalmazás fejlesztése JDBC alapon, 1. rész alkalmához és a 33-36. óra: Grafikus kliensalkalmazás fejlesztése JDBC alapon, 1. rész alkalmához kötődnek.

Az SQL forráskód formázásához a Free Online SQL Formatter-t használtam.