Ebben az évben az ipari kommunikációs rendszerek, terepi buszok és modern hálózati megoldások kerültek fókuszba, különös tekintettel az ipari automatizálásra.
A relációs adatbázis-kezelés célja az adatok strukturált, redundanciamentes tárolása és hatékony lekérdezése. A projekt során a következő alapelveket alkalmaztam:
Az elsődleges kulcs egyedileg azonosít egy rekordot, míg az idegen kulcs más táblák rekordjaira hivatkozik, így biztosítva az adatintegritást.
-- Adatok lekérdezése
SELECT * FROM Lakosok;
-- Szűrés feltétellel
SELECT Név FROM Lakosok
WHERE SzületésiÉv > 2000;
-- Összesítés
SELECT COUNT(*) FROM Épületek;
-- Kapcsolt lekérdezés
SELECT Lakosok.Név, Épületek.Név
FROM Lakosok
INNER JOIN Épületek
ON Lakosok.Lakóhely = Épületek.[Épület azonosító];
A projekt célja egy fiktív város adatainak modellezése és kezelése Microsoft Access adatbázisban. A feladat a relációs adatmodell megtervezésére, kapcsolatok kialakítására és összetett SQL lekérdezések elkészítésére épült.
-- Épületek, amelyekhez nem tartozik szolgáltatás
SELECT Épületek.Név
FROM Épületek
LEFT JOIN Szolgáltatások
ON Épületek.[Épület azonosító] = Szolgáltatások.[Épület azonosító]
WHERE Szolgáltatások.Név IS NULL;
-- Épületek legalább 3 szolgáltatással
SELECT Épületek.Név,
COUNT(Szolgáltatások.[Épület azonosító]) AS Szolgáltatások_száma
FROM Épületek
INNER JOIN Szolgáltatások
ON Épületek.[Épület azonosító] = Szolgáltatások.[Épület azonosító]
GROUP BY Épületek.Név
HAVING COUNT(Szolgáltatások.[Épület azonosító]) >= 3;
A versenyfeladat során egy városi infrastruktúrát modellező relációs adatbázist kellett tervezni és lekérdezésekkel kezelni.
Az adatbázis több 1:N és N:M kapcsolatot tartalmaz. Például:
SELECT Szolgáltatások.Név, Szolgáltatások.Típus
FROM Szolgáltatások
WHERE Szolgáltatások.[Épület azonosító] = 110;
SELECT Épületek.Név
FROM Épületek
LEFT JOIN Szolgáltatások
ON Épületek.[Épület azonosító] =
Szolgáltatások.[Épület azonosító]
WHERE Szolgáltatások.Név IS NULL;
SELECT Épületek.Név,
COUNT(Szolgáltatások.[Épület azonosító])
FROM Épületek
INNER JOIN Szolgáltatások
ON Épületek.[Épület azonosító] =
Szolgáltatások.[Épület azonosító]
GROUP BY Épületek.Név
HAVING COUNT(*) >= 3;
A legnagyobb kihívást az összetett kapcsolatok és az aggregáló lekérdezések jelentették.