EcoWeb Solutions - Adat-vezérelt fenntarthatóság a jobb jövőért
Szeretnénk bemutatni az informatika és –távközlés ágazatban tanuló 13. évfolyamos tanulók 3 hónapon keresztül zajló ökoiskolás projektjét. 2-3 fős csoportokban olyan adatbázisokat és weboldalakat hoztak létre, amely a fenntarthatóságot és a környezettudatosságot helyezi előtérbe.
EcoWeb Solutions Project Adat - vezérelt fenntarthatóság a jobb jövőért
Megvalósítás
2024. november - december
Publikálás
2025. január
Projektgazdák - az informatika munkaközösségből
Ötletgazda és az adatbázis rész kidolgozása: Barnáné Kiss Éva - az ökoiskolai csoport tagja
Weboldalak kidolgozása: Ruzsinszki Zita
Résztvevők
az informatika és távközlés ágazat szoftverfejlesztő- és tesztelő szakmájában tanuló teljes végzős, 13. évfolyam, azaz 42 tanuló - az adatbázis tervezés és dokumentálás folyamatban - Barnáné Kiss Éva tanárnővel
illetve a 13.B2 csoport, azaz 14 tanuló - a webfejlesztés folyamatban - Ruzsinszki Zita tanárnővel
Iskolánk 2024-től ÖKOISKOLA, ez számos előnnyel jár. Erőforrásokat fektetünk abba, hogy a munkatársak és a tanulók figyelmét ráirányítsuk a környezetvédelem fontosságára és ökotudatosabbá váljunk. Az iskolai projektek és kezdeményezések nemcsak érdekesek, hanem hasznosak is, mert megtanítanak bennünket arra, hogyan éljünk fenntarthatóan. A környezetbarát gyakorlatok, nemcsak az iskolákban, hanem az élet más területein is, hosszú távon mindannyiunk hasznára válnak. Jó érzés tudni, hogy részesei lehetünk valaminek, ami segíteni fog a jövő nemzedékeinek.
Ezekhez a gondolatokhoz igazodva született meg az ötlet, hogy összekössük a tanterv követelményeinek teljesítését a fenti célokkal. A projekt főpróbaként szolgált a tanév végéig kidolgozandó vizsgaremek elkészítéséhez. Eddigre a végzős tanulók kettes-hármas csoportokat alkottak, kiválasztották, ki-kivel szeretné teljesíteni ezt a jelentős technikusi vizsga-követelményt az informatika és távközlés ágazat szoftverfejlesztő- és tesztelő szakmájában.
A következő lépés a választható feladatokgenerálása volt. Az volt a cél, hogy minden csoportnak más témája legyen, így kiírtunk 17 különböző projektcélt a 13.B és a 13.C osztályok összes csoportja számára, majd mindannyian választottak is nekik megfelelőt.
EcoWeb projekt témák
Fenntartható közlekedési rendszerek: Ez az adatbázis a közösségi közlekedéstől az elektromos járművek infrastruktúráján át egészen a kerékpárkölcsönző rendszerekig számos területet lefednek. Célja a fenntarthatóság elősegítése a közlekedési szektorban. (Kozma Levente - Rácz Dániel)
Ökológiai adatok rendszere: Az adatbázis célja, hogy tárolja és rendszerezze az ökológiai adatok széles skáláját, beleértve a különböző fajok populációit, élőhelyeiket, és azok környezeti paramétereit, hogy támogassa a kutatásokat és a természetvédelmi intézkedéseket. (Dombóvári Máté – Erdős Barnabás – Borda Bertram)
Atomerőművek alkalmazása a jövő IT piacán: Ez a projekt egy adatbázist hoz létre, amely felvázolja a lehetőségeket arra, hogy az AI megnövekedett használatából adódóan a jövőben elegendő energia álljon rendelkezésre az IT cégek számára. (Orosz Péter - Oszlik Tamás)
Környezeti oktatás és tudatosság: Ez az adatbázis egy jól struktúrált rendszert alakít ki, amely lehetőséget biztosít oktatási anyagok és környezetvédelmi információk rendszerezett tárolására és hozzáférésére. (Bevíz László - Bobák Kornél - Révai Erik)
Energiafogyasztás és megújuló energiaforrások: Adatbázisok, amelyek nyomon követik a különböző energiaforrások használatát, az energiafogyasztást és a megújuló energiaforrásokra való áttérés hatékonyságát. A weboldalak segíthetnek a fiataloknak megérteni az energiahatékonyság fontosságát. (Major Levente - Rigó Dávid)
Természetvédelem és biodiverzitás megőrzése: Adatbázisok, amelyek követik a veszélyeztetett fajokat, a természetvédelmi területeket és a helyi élővilág állapotát. A weboldalak célja lehet a természetvédelem fontosságának népszerűsítése és a közösség bevonása a fajmegőrzésbe. (Zsíros Géza - Szilvási Kornél)
Üvegvisszaváltó automaták működése és hatékonysága: Adatbázisok létrehozása, amelyek követik az üvegvisszaváltó automaták használatát, a visszaváltott üveg mennyiségét és a rendszer hatékonyságát. A weboldalak információkat nyújthatnak az üvegvisszaváltás fontosságáról és a környezeti hatásáról. (Árpás Kevin - Refka Bence - Cservenák Dániel)
Légszennyezettség monitorozása városi területeken: Adatbázisok, amelyek nyomon követik a különböző városrészek légszennyezettségi szintjeit, és időbeli változásokat. A weboldalak célja lehet a lakosság tájékoztatása és a szennyezettségi adatok könnyű elérése. (Makai Kristóf - Bökényi Alex - Udvarhelyi Zsombor)
Vízfogyasztás és víztakarékosság: Adatbázisok, amelyek nyomon követik a vízfogyasztási adatokat és a víztakarékossági intézkedéseket különböző régiókban. A weboldalak információkat nyújthatnak a víztakarékosság fontosságáról és gyakorlati tippeket adhatnak a lakosságnak. (Marcalek Máté - Homolya Ákos)
Zöldtetők és városi zöldterületek: Adatbázisok, amelyek nyilvántartják a zöldtetőket és városi zöldterületeket, valamint ezek hatásait a városi környezetre. A weboldalak népszerűsíthetik a zöldtetők előnyeit és a városi zöldterületek fenntartásának fontosságát. (Koczka Balázs - Vizi Adrián )
Környezetvédelem és személyes környezet: Egy weboldal és egy app, amely segít a felhasználóknak környezetvédelmi gyakorlatokat követni és személyes környezetük fenntartását. Tartalmazhat lehetőséget a hulladékgyűjtés nyomon követésére, energiafogyasztás csökkentésére, valamint tartalmaz öko-barát életmódot támogató tippeket. (Tóth Zsófia – Zsíros Kata )
Elektromos autók gyártásának és felhasználhatóságának környezeti hatásai: Adatbázisok, amelyek nyomon követik az elektromos autók környezeti és energiahatékonysági jellemzőit. Az adatokat úgy válogattuk össze, hogy részletes és átfogó képet adjanak az egyes elektromos autók ökológiai hatásairól és gazdaságosságáról. (Nagy Marcell - Verebes Bálint - Konderla Sámuel)
Drónok a mezőgazdaságban: A drónok használata a fenntartható mezőgazdaságban egyre gyakoribb. Drónokkal pontosan mérhető a talaj minősége, a növények egészsége, valamint a víz és tápanyagigény, így a gazdálkodók hatékonyabban gazdálkodhatnak az erőforrásaikkal és csökkenthetik a túlzott vegyszerhasználatot. (Hesz Milán - Balga Sebastián)
Sarkköri élővilág és környezetvédelem: Adatbázis létrehozása a sarkköri élővilág nyomon követésére. A weboldalak információkat nyújthatnak arról, hogyan védhetjük meg a sarkvidék érzékeny ökoszisztémáját, és milyen lépésekkel járulhatunk hozzá a globális felmelegedés mérsékléséhez, megőrizve a jegesmedvék, tengeri madarak és jég alatti élőlények létfeltételeit. Az adatok elemzése és a megoldások bemutatása elősegíti az aktív környezetvédelmi fellépést és az ökoszisztéma fenntartását. (Finta Levente - Kiss Levente - Jobbágy Máté)
Elektronikai hulladék-kezelés: Adatbázisok, amelyek a régi elektronikai eszközök gyűjtését és újrahasznosítását nyomon követik. A weboldal tanácsokat adhat az eszközök megfelelő kezeléséről és bemutathat újrahasznosítási lehetőségeket, hogy csökkentsük az e-hulladék mennyiségét. (Csizmadia Márk - Szó Viktor - Varga Bálint)
Fenntartható termékek: Cél egy olyan adatbázis készítése, amely környezetbarát termékeket és szolgáltatásokat katalogizál. Extra funkciók: Felhasználói értékelések és vélemények a termékekről, illetve egy összehasonlítóeszköz a fenntarthatósági mutatók alapján. (Kertész Ruben - Nagy Zsolt)
Faültetés: Ez az adatbázis a faültetési kezdeményezések részletes nyilvántartására készül, amely tartalmazza az ültetett fák számát, helyét, a résztvevőket, és a programok ökológiai és gazdasági hatásait. Segítségével követhető az ültetések hatása a CO₂-megkötésre, biodiverzitásra, és a fásítás költségeire. (Pálmány Gábor - Nagy Bálint - Balatoni Gergő)
Ezután kezdődött meg az első nagyobb lélegzetvételű feladat: az adatbázis-tervezés és fejlesztés. Az eddigi ismereteikre alapozva a tanulók elkezdték adatbázis-tervező szoftver segítségével megtervezni az adatbázisokat. Kellő mennyiségű kutatómunka után, tanári segítséggel elkezdtek megszületni a megoldások. A tantervi követelményeknek megfelelően megismerkedtünk egy ajánlott csoportmunka-szoftverrel, a Trelloval.
Sokan annyira megkedvelték ezt a szoftvert, hogy a vizsgaremekük elkészítéséhez is ezt választották.A folyamatokat ebben tudták a tanulók követni, ennek segítségével otthonról is tudták tartani a kapcsolatot - pont úgy, mint az informatikai munkahelyeken. Egy alapos előkészítés, és megadott minta alapján a csoportok elkezdték kidolgozni az adatbázis dokumentációját is, ebbe illesztették bele az adatbázis diagramokat.
A dokumentáció online, megosztott formában készült a Google Docs szolgáltatás segítségével. Többszöri finomítás után az adatbázisok terve a 17 csoportban elkészült, ezt követte az adatbázisok megvalósítása mySQL nyelven a phpMyAdmin felületen.
Ezt követően feltöltötték adatokkal a tanulók az adatbázisaikat. Ehhez sok esetben a mesterséges intelligencia segítségét kértük.
3 kiemelkedő projekt- dokumentáció:
Fenntartható közlekedési rendszerek
Kozma Levente – Rácz Dániel
1 Az adatbázis
Ez az adatbázis a közösségi közlekedéstől az elektromos járművek infrastruktúráján át egészen a kerékpárkölcsönző rendszerekig számos területet lefednek. Célja a fenntarthatóság elősegítése a közlekedési szektorban.
1.1 Tervezés megkezdése
A tervezés során meg kellett határoznunk a szükséges táblákat, valamint azok kapcsolatait. Az adatbázis szerkezetének kialakításakor figyelembe vettük a projekt specifikus követelményeit, és az előre definiált táblákat az igények szerint módosítottuk. A tervezési folyamat megkönnyítése érdekében a csapat adbdiagram.io eszközt használta.
1.2 Tervezési lépések
Első lépésként találnunk kellett egy olyan platformot, amelyhez mindketten hozzáférünk, és ahol megtervezhetjük az adatbázisunkat, emelett még fontos volt, hogy találjunk egy jó, de egyszerű csapatmunkát kezelő programot is. Ezt követően az AI segítségével olyan oldalakat kerestünk, amelyek a számunkra fontos információkat tartalmazzák. Elsőre egyszerű feladatnak tűnt, de hamar rájöttünk, hogy egy igen összetett adatbázist kell majd létrehoznunk.
1.3 Egyedtípusok/egyedek meghatározása
A rendszer az alábbi táblákat tartalmazza:
Countries: Az országok nevét és az ISO kódját tárolja.
Cities: A települések nevét, az ország azonosítóját tartalmazza.
Station_Types: A különböző állomás típusokat azonosítja.
Stations: Az állomások adatait (név, típus, kapacitás, koordináták, státusz).
Operational_Hours: Az állomások nyitvatartási adatai.
Vehicle_Types: A járműtípusokat (pl. elektromos autó).
Manufacturers: Járműgyártók adatai.
Models: Járműmodellek.
Vehicles: Egyes járművek adatai (típus, modell, akkumulátor kapacitás, állapot).
Membership_Types: Felhasználói tagság típusai (pl. standard, prémium).
Genders: Felhasználói nemek.
Modes: Közlekedési módok.
Users: Felhasználói profil adatok.
Payment_Info: Felhasználók fizetési adatai.
User_Preferred_Modes: Felhasználók kedvelt közlekedési módjai.
Rentals: Bérlési tranzakciók.
Environment: Környezeti adatok városokra bontva.
Vehicle_Emission_Data: Járművekre vonatkozó kibocsátási adatok.
Weather_Conditions: Időjárási körülmények.
Traffic: Forgalmi adatok, balesetek és torlódások.
Peak_Hours: Csúcsidőszakok forgalmi adatai.
1.4 Kapcsolatok meghatározása
Countries és Cities
Kapcsolat típusa: 1:N
Egy ország több várost tartalmazhat.
Stations és Station_Types
Kapcsolat típusa: 1:N
Egy állomás csak egy típushoz tartozhat, de egy típus több állomást foglalhat magában.
Vehicles és Stations
Kapcsolat típusa: 1:N
Egy jármű egy adott állomáshoz tartozik, de egy állomás több járművet is befogadhat.
Rentals és Users
Kapcsolat típusa: 1:N
Egy felhasználó több járművet is bérelhet.
Traffic és Cities
Kapcsolat típusa: 1:N
Egy város több forgalmi rekordot tartalmazhat.
Cities és Users
Kapcsolat típusa: 1:N
Egy város több felhasználó lakóhelye lehet, de egy felhasználó csak egy adott városban élhet.
Membership_Types és Users
Kapcsolat típusa: 1:N
Egy tagsági típus több felhasználóhoz is tartozhat, de egy felhasználó csak egy tagsági típussal rendelkezhet.
Vehicles és Vehicle_Types
Kapcsolat típusa: 1:N
Egy járműtípus több járművet is reprezentálhat, de egy jármű egy konkrét típushoz tartozik.
Manufacturers és Models
Kapcsolat típusa: 1:N
Egy gyártó több modellt is kínálhat, de egy modell csak egy adott gyártóhoz tartozik.
Models és Vehicles
Kapcsolat típusa: 1:N
Egy modellhez több jármű tartozhat, de egy jármű csak egy adott modellhez kapcsolódik.
Users és Rentals
Kapcsolat típusa: 1:N
Egy felhasználó több bérlést is kezdeményezhet, de egy bérlés egy felhasználóhoz tartozik.
Stations és Rentals
Kapcsolat típusa: 1:N (indulási és érkezési állomás)
Egy állomás lehet több bérlés kezdő- vagy végpontja.
Users és Payment_Info
Kapcsolat típusa: 1:N
Egy felhasználó több fizetési információt is megadhat, de minden fizetési információ csak egy felhasználóhoz tartozik.
Modes és User_Preferred_Modes
Kapcsolat típusa: N:N (kereszttábla)
Egy felhasználó több közlekedési módot preferálhat, és egy közlekedési mód több felhasználó kedvence lehet.
Environment és Vehicle_Emission_Data
Kapcsolat típusa: 1:N
Egy környezeti rekordhoz több jármű kibocsátási adata kapcsolódhat.
Traffic és Peak_Hours
Kapcsolat típusa: 1:N
Egy forgalmi rekordhoz több csúcsidőszak kapcsolódhat.
Weather_Conditions és Traffic
Kapcsolat típusa: 1:N
Egy adott időjárási körülmény több forgalmi rekordhoz is kapcsolódhat, de egy forgalmi rekord csak egy időjárási körülmény hez tartozik.
1.6 Táblák
1.6.1 Országok (countries)
Az országok adatainak a nyilvántartására szolgál.
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden országhoz.
Elsődleges kulcs
country_name
varchar(128)
Az ország neve.
country_code
varchar(128)
Az ország kétbetűs ISO kódja (pl. HU, US).
1.6.2 Városok (cities)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden országhoz.
Elsődleges kulcs
city_name
varchar(128)
A város neve.
country_id
int
Kapcsolat az országhoz (Countries.id)
1.6.3 Állomások (stations)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden állomáshoz.
Elsődleges kulcs
station_name
varchar(128)
Az állomás neve.
station_type_id
int
Kapcsolat az állomástípushoz (Station_Types.id).
latitude
decimal
Szélességi koordináta.
longitude
decimal
Hosszúsági koordináta.
city_id
int
Kapcsolat a városhoz (Cities.id).
neighborhood
varchar(128)
A városrész neve, ahol az állomás található.
capacity
int
Az állomás kapacitása (pl. parkolóhelyek száma).
status
int
Az állomás státusza (pl. működő, karbantartás alatt).
created_at
timestamp
Az állomás létrehozásának időpontja.
last_maintenance
timestamp
Az utolsó karbantartás időpontja.
1.6.4 Állomás típusok (station_types)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden állomás típushoz.
Elsődleges kulcs
type_name
varchar(128)
Az állomás típusa (pl. töltőállomás, parkoló).
1.6.5 Járműtípusok (vehicle_types)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden jármű típushoz.
Elsődleges kulcs
type_name
varchar(128)
A jármű típusa (pl. elektromos autó, robogó).
1.6.6 Gyártók (manufacturers)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden gyártóhoz.
Elsődleges kulcs
name
varchar(128)
A gyártó neve (pl. Tesla, Nissan).
1.6.7 Modellek (models)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden jármű modellhez.
Elsődleges kulcs
manufacturer_id
int
Kapcsolat a gyártóhoz (Manufacturers.id)..
model_name
varchar(128)
A jármű modell neve (pl. Model S, Leaf).
1.6.8 Járművek (vehicles)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden járműhöz.
Elsődleges kulcs
station_id
int
Kapcsolat az állomáshoz (Stations.id).
vehicle_type_id
int
Kapcsolat a járműtípushoz (Vehicle_Types.id).
model_id
int
Kapcsolat a járműmodellhez (Models.id).
battery_capacity
decimal
Az akkumulátor kapacitása (kWh).
status
int
A jármű státusza (pl. elérhető, használatban).
mileage
decimal
A jármű összes futásteljesítménye (km).
emission_rate
decimal
A jármű emissziója (pl. CO₂ g/km).
last_maintenance
date
Az utolsó karbantartás időpontja.
acquisition_date
date
A jármű beszerzésének időpontja.
last_usage
timestamp
Az utolsó használat időpontja.
1.6.9 Tagságok (membership_types)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden tagság típushoz.
Elsődleges kulcs
type_name
varchar(128)
A tagság típusa (pl. Alap, Prémium).
1.6.10 Nemek (genders)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden nemhez.
Elsődleges kulcs
gender_name
varchar(128)
A nem megnevezése (pl. férfi, nő).
1.6.11 Felhasználók (users)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden felhasználóhoz.
Elsődleges kulcs
username
varchar(128)
A felhasználóneve.
email
varchar(128)
A felhasználó e-mail címe.
registration_date
timestamp
A regisztráció időpontja.
membership_type_id
int
Kapcsolat a tagsághoz (Membership_Types.id).
gender_id
int
Kapcsolat a nemhez (Genders.id).
city_id
int
Kapcsolat a városhoz (Cities.id).
age
int
A felhasználó életkora.
1.6.12 Környezet (environment)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden környezeti adathoz.
Elsődleges kulcs
city_id
int
Kapcsolat a városhoz (Cities.id).
record_time
timestamp
Az adat rögzítésének időpontja.
average_emission_reduction
timestamp
Átlagos emisszió csökkenés (kg).
average_energy_savings
int
Átlagos energia megtakarítás (kWh).
1.6.13 Forgalom (traffic)
mező neve
mező típusa
mező leírása
megjegyzés
id
int
Egyedi azonosító minden forgalmi adathoz.
Elsődleges kulcs
city_id
int
Kapcsolat a városhoz (Cities.id).
congestion_level
int
Torlódási szint (1-10).
date
timestamp
A mérés időpontja.
1.7 Adatbázis diagram
1.9 Adatbázis megvalósítása a phpmyadmin felületen
1.10 Adatbázis-továbbfejlesztési lehetőségek
Az adatbázis továbbfejlesztése fontos szerepet játszik a rendszer hatékonyságának, skálázhatóságának és adatbiztonságának növelésében. Az alábbiakban néhány fejlesztési lehetőséget ismertetek:
1. Indexek használata a gyorsabb lekérdezésekhez
Magyarázat: Az indexek segítenek felgyorsítani a gyakran használt lekérdezéseket, például az idegen kulcsok vagy szűrőfeltételek alapján történő kereséseket.
Példa: Az email vagy username mezőkön létrehozott index a felhasználói keresések gyorsítására.
2. Adatbázis-particionálás
Magyarázat: Nagy méretű táblák esetén a teljesítmény javítása érdekében az adatokat földrajzilag vagy logikailag különálló partíciókba lehet osztani.
Példa: A Rentals tábla partíciózása dátum alapján (pl. hónapokra bontva).
3. Normálformák felülvizsgálata és denormalizálás
Magyarázat: Az adatbázis denormalizálása során néhány táblát összes tehetünk, hogy csökkentsük a lekérdezések összetettségét és az olvasási műveletek számát.
Példa: Az Environment és Traffic adatok előre számított összefoglaló táblákban tárolhatók bizonyos lekérdezési minták felgyorsításához.
4. Naplózás és auditálás bevezetése
Magyarázat: Az adatok módosításának nyomon követése érdekében érdemes naplózást vagy audit táblákat alkalmazni, amelyek segítenek a visszaélések detektálásában.
Példa: A Users tábla esetében egy külön napló táblában tárolhatók a profilmódosítások.
5. Adatredundancia csökkentése
Magyarázat: A táblák közötti redundáns adatok minimalizálása biztosítja az adatok konzisztenciáját.
Példa: Több kapcsolótábla használata az N:N típusú relációkhoz, például User_Preferred_Modes.
6. Szenzitív adatok titkosítása
Magyarázat: Az adatbiztonság növelése érdekében a kritikus adatokat (pl. fizetési adatok, jelszavak) titkosítva kell tárolni.
Példa: A Payment_Info tábla card_number mezőjének titkosítása.
7. Adathozzáférési jogosultságok finomhangolása
Magyarázat: A felhasználói hozzáférések pontos szabályozása segíthet az adatokhoz való illetéktelen hozzáférés megakadályozásában.
Példa: Különböző szerepkörök (adminisztrátor, ügyfél) hozzáférésének korlátozása.
8. Replikáció a magas rendelkezésre állás érdekében
Magyarázat: Az adatbázis replikálása biztosítja a magas rendelkezésre állást és a hibatűrést. Ez különösen hasznos olyan rendszerekben, amelyek 24/7 elérhetőséget igényelnek.
Példa: Az adatbázisok replikálása több szerver között az adatvesztés elkerülése érdekében.
9. Teljesítményfigyelés és optimalizálás
Magyarázat: Folyamatos monitorozás és a lekérdezések optimalizálása az adatbázis teljesítményének növeléséhez.
Példa: A lassú lekérdezések azonosítása és optimalizálása.
10. Archív adatok kezelése
Magyarázat: Az elavult vagy ritkán használt adatok áthelyezése archív táblákba csökkentheti az aktív adatbázis méretét, és javíthatja a lekérdezési teljesítményt.
Példa: A több évnél régebbi bérlési adatok archiválása külön táblákban.
Az adatbázis célja, hogy tárolja és rendszerezze az ökológiai adatok széles skáláját, beleértve a különböző fajok populációit, élőhelyeiket, és azok környezeti paramétereit, hogy támogassa a kutatásokat és a természetvédelmi intézkedéseket.
1.Tervezés megkezdése
Az igények felmérése és a kutatási, valamint természetvédelmi célok megértése.
A kulcsfontosságú egyedek és kapcsolatok meghatározása, amelyek az ökológiai kölcsönhatásokat modellezik.
2.Tervezési lépések
Az összes érintett ökológiai komponens és azok adatainak összegyűjtése.
iNaturalist: Egy természetmegfigyelési platform, amely adatokat biztosít a fajok elterjedéséről, és kiválóan alkalmas fajadatok begyűjtésére és elemzésére.
Az egyedek és a kapcsolatok azonosítása.
Az N:M kapcsolatok kezelése és optimalizálása.
Az adatbázis-diagram létrehozása és validálása.
Továbbfejlesztési lehetőségek meghatározása.
Felmerült kérdések, amiket megoldottunk
Hogyan kezeljük a szezonális változásokat? → Külön táblák vagy attribútumok használatával.
Hogyan kezeljük az emberi hatásokat? → Egy külön táblában dokumentáljuk a hatásokat, majd ezeket kapcsoljuk a fajokhoz.
Nem megoldott kérdések, továbbfejlesztési lépésekhez
Az éghajlatváltozás hosszú távú hatásainak kezelése.
Automatikus adatgyűjtő rendszerek integrációja.
3. Egyedtípusok meghatározása
Fő táblák
species (Fajok):
A különböző élőlényfajokat tárolja.
Attribútumok:
species_id: Egyedi azonosító.
species_name: A faj neve.
protection_status_id: Kapcsolat a védelmi státuszhoz.
population: A faj populációmérete.
habitat_id: Kapcsolat az élőhelyhez.
habitats (Élőhelyek):
Az élőhelyekről tárol információkat.
Attribútumok:
habitat_id: Egyedi azonosító.
habitat_name: Az élőhely neve.
location_id: Kapcsolat az országokhoz.
climate_type: Az élőhely éghajlati típusa.
environmental_factors (Környezeti tényezők):
Az élőhelyek környezeti feltételeit tárolja.
Attribútumok:
factor_id: Egyedi azonosító.
factor_name: A tényező neve (pl. hőmérséklet, páratartalom).
unit: A tényező mértékegysége.
protection_status (Védelmi státuszok):
A fajok védelmi helyzetét írja le.
Attribútumok:
protection_status_id: Egyedi azonosító.
status_name: A védelmi státusz neve (pl. veszélyeztetett, védett).
countries (Országok):
Az élőhelyekhez kapcsolódó országokat tartalmazza.
Ez az adatbázis egy jól struktúrált rendszert alakít ki, amely lehetőséget biztosít oktatási anyagok és környezetvédelmi információk rendszerezett tárolására és hozzáférésére.
Tervezés megkezdése
A tervezés során a célunk egy olyan rendszer megvalósítása volt, amely a felhasználók számára könnyen kezelhető felületet biztosít. Az ötletelési szakaszban inspirációt merítettünk ismert játékos és tanulásorientált alkalmazásokból, mint például a Honfoglaló, amely a játékos felületével ösztönöz a tanulásra, valamint a Legyen Ön is Milliomos mintájára felépített kvízlogika, amelyben a felhasználók négy lehetséges válasz közül választhatnak.
Tervezési lépések
A rendszer céljainak meghatározása.
Az egyes funkciók kidolgozása és megtervezése.
Az egyedek és kapcsolataik meghatározása.
Az adatbázis-struktúra kialakítása.
Az adatok logikai és fizikai modelljének megtervezése.
A rendszer tesztelése és finomhangolása.
Egyedtípusok/egyedek meghatározása
User - A felhasználói fiókokat tárolja, beleértve az oktatókat, diákokat, adminokat és egyéb látogatókat.
Role – Felhasználói szerepek tárolására alkalmas tábla
Materials – Oktatási anyagokat, például prezentációkat, dokumentumokat, videókat lehet benne elmenteni
Material_Type – az oktatási anyag típusát tárolja
Quizzes – Az oktatási programokhoz kapcsolódó kvízeket tárolja, beleértve a kvíz címét, leírását és az elérhetőségét.
Questions – A kvízkérdéseket tartalmazza, beleértve a kérdés szövegét, a hozzá tartozó helyes választ, illetve az alternatív válaszokat.
Question_Type – A kérdések típusának meghatározására szolgáló tábla (pl. feleletválasztós, igaz/hamis, nyílt végű).
Resources – További segédanyagok és források tárolására szolgál, például ajánlott olvasmányok, külső linkek vagy egyéb kiegészítő tartalmak.
Kapcsolatok meghatározása
User – Role (1:N kapcsolat) A User tábla 1:N-es kapcsolatban áll a Role táblával:
Egy Role tábla egy rekordjához több User rekord tartozhat.
Egy User tábla rekord egyszerre csak egy Role tábla rekordhoz tartozik.
Materials – Material_Type (1:N kapcsolat) A Materials tábla 1:N-es kapcsolatban áll a Material_Type táblával:
Egy Material_Type tábla egy rekordjához több Materials rekord tartozhat.
Egy Materials tábla rekord egyszerre csak egy Material_Type tábla rekordhoz tartozik.
Materials – User (1:N kapcsolat) A Materials tábla 1:N-es kapcsolatban áll a User táblával:
Egy User tábla egy rekordja több Materials rekordhoz tartozhat (pl. egy oktató több anyagot készíthet).
Egy Materials tábla rekord egyszerre csak egy User rekordhoz tartozik (az anyag szerzője).
Quizzes – Materials (1:N kapcsolat) A Quizzes tábla 1:N-es kapcsolatban áll a Materials táblával:
Egy Materials tábla egy rekordjához több Quizzes rekord tartozhat.
Egy Quizzes tábla rekord egyszerre csak egy Materials tábla rekordhoz tartozik.
Questions – Quizzes (1:N kapcsolat) A Questions tábla 1:N-es kapcsolatban áll a Quizzes táblával:
Egy Quizzes tábla egy rekordjához több Questions rekord tartozhat.
Egy Questions tábla rekord egyszerre csak egy Quizzes tábla rekordhoz tartozik.
Questions – Question_Type (1:N kapcsolat) A Questions tábla 1:N-es kapcsolatban áll a Question_Type táblával:
Egy Question_Type tábla egy rekordjához több Questions rekord tartozhat.
Egy Questions tábla rekord egyszerre csak egy Question_Type tábla rekordhoz tartozik.
Answers – Questions (1:N kapcsolat) Az Answers tábla 1:N-es kapcsolatban áll a Questions táblával:
Egy Questions tábla egy rekordjához több Answers rekord tartozhat.
Egy Answers tábla rekord egyszerre csak egy Questions tábla rekordhoz tartozik.
Resources – Materials (1:N kapcsolat) A Resources tábla 1:N-es kapcsolatban áll a Materials táblával:
Egy Materials tábla egy rekordjához több Resources rekord tartozhat.
Egy Resources tábla rekord egyszerre csak egy Materials tábla rekordhoz tartozik.
Táblák
1. User
mező neve
mező típusa
mező leírása
megjegyzés
uid
varchar
felhasználó egyedi azonosítója
elsődleges kulcs
email
varchar(100)
felhasználó email címe
password
varchar(255)
jelszó titkosított formában
name
varchar(100)
felhasználó teljes neve
verified
bool
regisztráció megerősítve-e
role_id
integer
felhasználó szerepe
hivatkozás: Role.id, alapértelmezett: 1
2. Role
mező neve
mező típusa
mező leírása
megjegyzés
id
integer
szerepkör azonosítója
elsődleges kulcs
name
varchar(100)
szerepkör neve
Tanár, Diák, Admin
3. Materials
mező neve
mező típusa
mező leírása
megjegyzés
id
integer
oktatási anyag azonosítója
elsődleges kulcs
title
varchar(100)
oktatási anyag címe
nem lehet NULL
description
varchar(255)
oktatási anyag leírása
type_id
int
oktatási anyag típusa
hivatkozás: Material_Type.id, alapértelmezett: 0
author_id
varchar
anyag szerzője
hivatkozás: User.uid
created
timestamp
létrehozás dátuma
updated
timestamp
utolsó módosítás dátuma
4. Material_Type
mező neve
mező típusa
mező leírása
megjegyzés
id
integer
anyag típusának azonosítója
elsődleges kulcs
type
varchar(100)
anyag típusa (pl. prezentáció, videó)
5. Quizzes
mező neve
mező típusa
mező leírása
megjegyzés
quiz_id
integer
kvíz azonosítója
elsődleges kulcs
title
varchar(100)
kvíz címe
material_id
integer
kapcsolódó oktatási anyag azonosítója
hivatkozás: Materials.id
created_at
timestamp
kvíz létrehozásának időpontja
6. Questions
mező neve
mező típusa
mező leírása
megjegyzés
question_id
integer
kérdés azonosítója
elsődleges kulcs
quiz_id
integer
kvíz, amelyhez tartozik a kérdés
hivatkozás: Quizzes.quiz_id
content
text
kérdés szövege
type_id
integer
kérdés típusa
hivatkozás: Question_Type.id
7. Question_Type
mező neve
mező típusa
mező leírása
megjegyzés
id
integer
kérdés típusának azonosítója
elsődleges kulcs
type
varchar(50)
kérdés típusa (pl. feleletválasztós, igaz-hamis)
8. Answers
mező neve
mező típusa
mező leírása
megjegyzés
answer_id
integer
válasz azonosítója
elsődleges kulcs
question_id
integer
kérdés, amelyhez a válasz tartozik
hivatkozás: Questions.question_id
content
text
válasz szövege
is_correct
boolean
helyes válasz-e
9. Resources
mező neve
mező típusa
mező leírása
megjegyzés
resource_id
integer
forrás azonosítója
elsődleges kulcs
title
varchar(100)
forrás címe
url
text
forrás elérhetősége (pl. link)
description
text
forrás leírása
material_id
integer
kapcsolódó oktatási anyag azonosítója
hivatkozás: Materials.id
Minta adatok
Answers Materials
Material_type
Questions
Question_type
Quizzes
Resources
Role
Users
Adatbázis diagram
Adatbázis továbbfejlesztési lehetőségek
Felhasználói előrehaladás mentése:
Hozz létre egy táblát, ami nyomon követi, hogy ki milyen anyagot dolgozott fel.
Mezők: user_id, material_id, status (pl. "befejezve", "folyamatban").
Kvíz eredmények tárolása:
Tárold, hogy a felhasználók milyen eredményt értek el a kvízeken.
Mezők: user_id, quiz_id, score.
Kommentek hozzáadása:
Lehetőség a felhasználóknak, hogy hozzászólásokat írjanak az anyagokhoz.
Mezők: comment_id, user_id, material_id, content.
Anyagok értékelése:
Felhasználók csillagozhatják az oktatási anyagokat.