SQL nyelv és Oracle sajátosságai
Az SQL (Structured Query Language) az adatbázisok kezelésére és lekérdezésére szolgáló szabványos nyelv.
Az SQL alábbi fő kategóriára osztható:
- DDL (Data Definition Language) – adatbázis szerkezetének kezelése (pl. táblák létrehozása, módosítása, törlése)
CREATE
,ALTER
,DROP
,TRUNCATE
- DML (Data Manipulation Language) – adatok kezelése (beszúrás, módosítás, törlés)
SELECT
,INSERT
,UPDATE
,DELETE
,MERGE
- DCL (Data Control Language) – jogosultságok kezelése
GRANT
,REVOKE
- TCL (Transaction Control Language) – tranzakciókezelés
COMMIT
,ROLLBACK
,SAVEPOINT
Oracle adatbázis egyediségei
Az Oracle adatbázis több szempontból is eltér más relációs adatbázis-kezelő rendszerektől, például MySQL, PostgreSQL vagy SQL Server rendszerektől.
PL/SQL – Oracle Procedural Language Extension to SQL
Az Oracle PL/SQL egy procedurális kiterjesztése az SQL-nek, amely lehetővé teszi ciklusok, elágazások, kivételek és kurzorok használatát.
- Anonim blokkok
- Eljárások és függvények
- Csomagok és trigger-ek
Csomagok (Packages) az Oracle PL/SQL-ben
A csomagok (packages) olyan PL/SQL objektumok, amelyek elnevezett függvényeket, eljárásokat, típusokat, kurzorokat és változókat foglalnak össze egyetlen egységben.
Előnyök:
- Kód modularizálása – az üzleti logika jól elkülöníthető egységekben tárolható.
- Teljesítménynövekedés – ha egy csomag betöltődik a memóriába, akkor annak minden eleme elérhető marad a munkamenet során.
- Adatbiztonság és elrejtés – a csomagokban privát és publikus komponensek is lehetnek, így az adatbázis-kezelő elrejtheti a belső implementációt.
- Újrafelhasználhatóság – a csomagok többször felhasználható kódrészleteket tartalmazhatnak.
Csomag fejléce (Package Specification)
A csomag fejléce deklarálja azokat a függvényeket, eljárásokat és változókat, amelyeket más objektumok is elérhetnek.
Csomag törzse (Package Body)
A csomag törzse tartalmazza a csomagban deklarált függvények és eljárások konkrét implementációját.
Csomag használata
A csomagban lévő függvényeket és eljárásokat így lehet meghívni:
Triggerek az oracle adatbázisban
A triggerek olyan adatbázis-objektumok, amelyek automatikusan végrehajtanak egy előre definiált műveletet egy INSERT, UPDATE vagy DELETE esemény hatására.
Felhasználási területek:
- Adatintegritás biztosítása (pl. nem engedi nullára csökkenteni egy raktárkészlet mennyiségét).
- Auditálás és naplózás (pl. ki és mikor módosított egy adott táblát).
- Üzleti szabályok érvényesítése (pl. egy dolgozó fizetése nem csökkenhet egy adott határ alá).
Sor szintű trigger (Row-Level Trigger)
Ez a trigger minden egyes sor esetén külön fut le egy INSERT, UPDATE vagy DELETE művelet során.
Példa: naplózó trigger, amely menti a fizetésváltozásokat
- :OLD – a módosítás előtti értékeket tartalmazza.
- :NEW – a módosítás utáni értékeket tartalmazza.
- AFTER UPDATE OF sal ON emp – csak a fizetés (
sal
) mező változásakor fut le.
Tábla szintű trigger (Statement-Level Trigger)
Ez a trigger egyszer fut le egy SQL művelet hatására, függetlenül attól, hogy hány sort érint a művelet.
BEFORE és AFTER triggerek
- BEFORE trigger: A művelet előtt fut le (még azelőtt, hogy az adatok ténylegesen módosulnának).
- AFTER trigger: A művelet után fut le (amikor az adatok már módosultak).
Példa: Minimum fizetés ellenőrzése BEFORE triggerrel
Ha valaki megpróbálna egy dolgozónak 3000 alatti fizetést adni, akkor a trigger hibát dob.
Összegzés
- PL/SQL csomagok segítenek az üzleti logika modularizálásában, újrafelhasználásában és optimalizálásában.
- Triggerekkel automatikusan végrehajthatunk adatbázis-műveleteket, például auditálást, integritás-ellenőrzést és üzleti szabályok betartását.
- A row-level triggerek minden egyes sorhoz lefutnak, míg a statement-level triggerek csak egyszer futnak egy SQL művelethez.
- BEFORE triggerek a művelet előtt, AFTER triggerek a művelet után futnak le.
Flashback technológia
Oracle egyedülálló Flashback funkciója lehetővé teszi az adatok visszaállítását egy korábbi időpontra anélkül, hogy teljes adatbázis-helyreállításra lenne szükség.
- Flashback Query (korábbi állapot megtekintése)
- Flashback Table (tábla visszaállítása egy korábbi időpontra)
Oracle Partitioning (Adattábla particionálás)
Oracle lehetőséget biztosít az adattáblák particionálására, amely segíti a nagy adatmennyiségek kezelését.
- Range partitioning
4. Advanced Queuing (AQ) – Üzenetsorok kezelése
Az Oracle Advanced Queuing (AQ) lehetővé teszi a tranzakciós üzenetkezelést az adatbázison belül.
- Üzenetsor létrehozása
- Üzenet küldése és fogadása
JSON kezelés Oracle SQL-ben
Oracle támogatja a JSON adatok kezelését és tárolását.
- JSON keresés
- JSON_TABLE függvény használata
Oracle Database In-Memory
Az In-Memory Column Store lehetővé teszi az adatok oszlop alapú tárolását és gyorsított lekérdezéseket.
- Aktiválás
- Lekérdezés optimalizáció
Oracle Autonomous Database
Az Oracle új generációs Autonomous Database megoldása mesterséges intelligenciával optimalizálja az adatbázis teljesítményét, automatikusan skálázódik és karbantartja magát.
- Előnyök
- Automatikus skálázás és patch-elés
- Beépített AI-alapú optimalizáció
- Magas biztonsági szint (Oracle Data Safe, Transparent Data Encryption)
Megjegyzések
Megjegyzés küldése