Kihagyás

Kis HF 01 – Adatbázisok tervezése

Felkészülés és előkészületek

Nézd át a kapcsolódó labor és előadások anyagát.

Szoftverkörnyezet:

  • Adatbázis szervernek MySQL-t használunk, mely része az XAMPP programcsomagnak.
  • Az adatbázis kliensoldali kezeléséhez a MySQL Workbench-et használjuk.

Mindig új branchen dolgozz!

A laborokon, házi feladatokon, és a ZH-n mindig új branch-en (pl. "megoldas") dolgozz! Ez azért van így, mert a végén a munka végén a pull request létrehozásakor a kiinduló állapothoz (master branch) képest az új branch változtatásai fognak látszani. Vagyis így fogja látni a laborvezetőd, hogy min dolgoztál, mely fájlokban mi változott, és így fogja tudni értékelni is a munkádat. Ha nem így csinálod, az formai hibának számít, a ZH-n például ezért pontlevonás jár.

1. EK diagram létrehozása

Készíts MySQL Workbench segítségével EK diagramot az alábbi specifikáció alapján! Generálj a kész modellből SQL szkriptet és hozd létre az adatbázist a szkript futtatásával!

Az Elixírium alkímista bolthálózatnál alkalmazottakat (akiknek mindig van nevük) és boltokat (amiknek mindig van címük) tartanak számon. Egy boltban több alkalmazott is dolgozhat és egy alkalmazott több boltban is dolgozhat. Az is előfordulhat, hogy egy alkalmazott épp nem dolgozik egy boltban sem, vagy pedig fordítva, egy boltban egy alkalmazott sem dolgozik. Az alkalmazottak egy adott boltban rész vagy teljes munkaidősként lehetnek foglalkoztatva. A boltokban hozzávalókat és gyógyitalokat árulnak, minden egyes hozzávalót és gyógyitalt külön-külön megkülönböztetünk (pl. minden egyes tűzgyökérről vagy életerő főzet példányról tudjuk, hogy melyik boltban található). A hozzávalóknak és gyógyitaloknak van nevük, a hozzávalóknak leírásuk (minden hozzávalóhoz egy cetlit ragaszthatunk, tehát példányonként külön leírásuk van), a gyógyitaloknak pedig mellékhatásaik lehetnek. Mind a leírás, mind a mellékhatás opcionális és maximum 200 karakter hosszú szöveg. A gyógyitalokról azt is tároljuk, hogy milyen betegségek gyógyítására milyen hatásfokkal (%-os érték, két tizedesjegyig) használhatók (pl. az életerő főzet az influenzát 76.87% valószínűséggel gyógyítja). Egy betegségről (a nevén kívül) fontos tudnunk, hogy mennyire súlyos, ezt egy egész számmal jelöljük.

Tipp

Technikai útmutatót az EK diagram elkészítéséhez és az SQL szkript generálásához itt találsz.

Ne modellezz olyat, amit a feladat nem kért, csak arra fókuszálj, ami a specifikációban szerepel! Az értékelésnél is csak ezeket fogjuk figyelembe venni.

Gyógyital típusok és példányok

A tökéletes megoldáshoz érdemes megkülönböztetni a gyógyitalok típusát a konkrét példányoktól. Ha ezt nem tesszük meg, akkor például minden életerő főzet példány esetén be kell állítanunk, hogy gyógyítja az influenzát, ahelyett, hogy ezt egyszer tennénk meg az életerő főzet típusánál. Bár ez lenne a legszebb megoldás, a házi feladat maximális pontszáma enélkül is elérhető.

Beadandó (2 pont)

Készíts képernyőképet az elkészített EK diagramról és mentsd el a kiinduló repository gyökerébe db.png néven. Másold be a generált SQL szkriptet a kiinduló repository gyökerében található db_create.sql fájlba. Kommitolj, ha ezekkel megvagy.

2. SQL lekérdezések

Oldd meg az alábbi feladatokat SQL lekérdezések megírásával, melyek a generált adatbázison dolgoznak! Egy alfeladathoz több lekérdezés is tartozhat.

  • Vedd fel alkalmazottnak "Minta Márton"-t, aki a "Vár utca 43" szám alatti boltban dolgozik teljes munkaidőben (a boltot is vedd fel és dolgozzon is ott)!
  • Vedd fel "Teszt Elek"-et (aki nem dolgozik sehol) és a "Vár utca 1" szám alatti boltot (ahol senki sem dolgozik)!
  • A "Vár utca 43" szám alatti bolt elköltözött a "Kastély utca 22" szám alá. Módosítsd az adatbázist hogy tükrözze a költözést!

    Hibaüzenet - safe update

    Ha olyan hibaüzenetet kapnál a lekérdezés futtatása során, ami a safe update módra utal, próbáld meg kiadni a SET SQL_SAFE_UPDATES = 0; parancsot és utána lefuttatni a lekérdezést.

  • Vegyél fel 2 darab tűzgyökeret és 1 darab életerő főzetet a "Kastély utca 22" alá költözött boltba! Az egyik tűzgyökér leírása legyen "forró", az életerő főzetnek ne legyen mellékhatása.

  • Vedd fel az influenzát mint betegséget 200 súlyossággal! Az életerő főzet 76.87% valószínűséggel gyógyítsa az influenzát!

Beadandó (1 pont)

A lekérdezéseket írd bele a kiinduló repository gyökerében található query.sql fájlba, majd kommitolj.

Beadás

Töltsd ki a kiinduló repositoryban található neptun.txt fájlt a Neptun kódoddal! Ezután a tanultaknak megfelelően készíts egy pull requestet és rendeld hozzá a laborvezetődet, mint reviewer!

Pull request elfogadása

Fontos, hogy semmiképpen ne kattints a "Merge pull request" gombra a GitHub felületén! Ez a laborvezetőd dolga, az értékelés után a változtatások bekerülnek majd a master branchre. Ha mergeled a módosításokat a laborvezetőd értékelése előtt, nem fogja látni, hogy mi változott, tehát a pull request értelmét veszti!


2025-10-09 Szerzők