af Erdélyi Dániel 7 år siden
433
Mere som dette
Készítette: Erdélyi Dániel
2017.03.21.-i Corvinusos Adatbázis-rendszerek előadás, azon készített jegyzeteim és külső források segítségével
A behivatkozott Oracle dokumentációban vannak leírva a "sorozat" használati lehetőségei, előnyei, illetve általános felépítése. Ezeken kívül a legvégén példával demonstrálja a "sorozat" gyakorlati használatának lehetőségét.
A behivatkozott Oracle dokumentációban vannak leírva a "profil" használati lehetőségei, előnyei, illetve általános felépítése. Ezeken kívül a legvégén példával demonstrálja a "profil" gyakorlati használatának lehetőségét.
A behivatkozott Oracle dokumentációban vannak leírva a "könyvtár" használati lehetőségei, előnyei, illetve általános felépítése. Ezeken kívül a legvégén példával demonstrálja a "könyvtár" gyakorlati használatának lehetőségét.
A behivatkozott Oracle dokumentációban vannak leírva a "jogosultság" használati lehetőségei, előnyei, illetve általános felépítése. Ezeken kívül a legvégén példával demonstrálja a "jogosultság" gyakorlati használatának lehetőségét.
A behivatkozott Oracle dokumentációban vannak leírva a "kontextus" használati lehetőségei, előnyei, illetve általános felépítése. Ezeken kívül a legvégén példával demonstrálja a "kontextus" gyakorlati használatának lehetőségét.
A behivatkozott Oracle dokumentációban vannak leírva az "adatbázis link" használati lehetőségei, előnyei, illetve általános felépítése. Ezeken kívül a legvégén példával demonstrálja az "adatbázis link" gyakorlati használatának lehetőségét.
A behivatkozott Oracle dokumentációban vannak leírva a "szinoníma" használati lehetőségei, előnyei, illetve általános felépítése. Ezeken kívül a legvégén példával demonstrálja a "szinoníma" gyakorlati használatának lehetőségét.
Példa: ebben az esetben megadunk előre egy default (alapértelmezett) értéket az újonnan bevitt telefonszámokra, hogy egyezzen a munkatelefonszámmal, ha nincs kitöltve
CREATE TRIGGER Clients_Insert BEFORE INSERT ON Clients REFERENCING NEW ROW AS New FOR EACH ROW SET New.home_telephone = COALESCE(New.home_telephone,New.work_telephone);
forrás: https://mariadb.com/kb/en/sql-99/trigger-examples/
CREATE TRIGGER ... utasítással, programkód segítségével
Oracle dokumentációban ábrázolva: https://docs.oracle.com/database/121/SQLRF/img/create_trigger.gif
Az adatbázison belül tárolhatunk függvényeket, amelyek segítenek feldolgozni az adatokat.
Ezeket a metódusok programkódok, amiket oszlopokban (attribútumokban, az objektumorientált programozás szerint) tárolhatunk.
Egy procedurális kódhoz, szükség van egy programnyelvre is:
Ennek hatására az Oracle adatbáziskezelő rendszer több procedurális nyelvet is érti, és képes futtatni.
A kényszerek nem tudnak minden problémára megoldást nyújtani.
Például:
Programkód segítségével lehet ezt megoldani. -->procedurális kód
További információ a materializált nézetről:
http://docs.oracle.com/cd/B10500_01/server.920/a96567/repmview.htm
explicit módon: (példa)
CREATE VIEW nézetnév AS
SELECT oszlop1, oszlop2
FROM oszlopok
WHERE oszlop1 is not null;
Oracle dokumentációban ábrázolva: https://docs.oracle.com/database/121/SQLRF/img/create_view.gif
Később lekérdezhetünk a nézetből: (példa)
SELECT oszlop1, oszlop2, oszlop3
FROM nézetnév
WHERE oszlop2 is null;
forrás: https://techterms.com/definition/metadata
A lekérdezések megírásának felgyorsítására használják, a lekérdező munkáját könnyíti meg.
Bonyolult lekérdezések helyett, eltárolunk kisebb lekérdezéseket, névvel látjuk el, és később behivatkozhatjuk, így megkönnyítve annak a szerkesztését, illetve kiszámítását.
Különböző szakterületeken, különböző megoldások születhetnek.
Olyan rendszerek esetében hasznos, ahol egyszerre kevés felhasználónak van jogosultsága a szerkesztéshez. Színek tárolására is alkalmas.
Eredeti gyártó: teradata, mások továbbvették
Egy összehasonlítása a B-fa típusú indexeléssel: http://www.oracle.com/technetwork/articles/sharma-indexes-093638.html
Olyan függvényeredményeket tárolunk az indexben, amik tartalmaznak legalább egy oszlopot az indexelt táblából.
"A függvény maga lehet aritmetikai kifejezés, vagy olyan kifejezés, ami tartalmaz PL/SQL függvényt, csomag függvényt, C hívást vagy SQL függvényt. Nem tartalmazhat azonban aggregátum függvényeket, DETERMINISTIC-usnak kell lennie, s nem vonatkozhat LOB típusú, REF vagy beágyazott tábla oszlopára sem."
forrás: http://oraoptimization.blogspot.hu/2008/03/architektra-part-4-sma-objektumok-22.html
Különböző variációi léteznek, a fentebb említett szabványok hiánya miatt. Ilyen például a B* és a B+. Legfőképp az elsődleges kulcsok indexeinél használják, illetve OLTP típusú rendszerekben.
forrás: https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721
Alapvető tulajdonságai
B = balanced = minden irányban ugyanannyi lépés van a gyökértől a levélig
Szerkezete
Részei:
Forrás az Oracle dokumentációból, amiben a B-fa indexeléssel kapcsolatban olvashatunk magyarázatot illetve, példát: https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT1170
Példa
Az adatbáziskezelő rendszereket fejlesztő cégek egymástól veszik át az ötleteket (~ lopás)
--> másik cég perel
--> peren kívüli megegyezés ("stratégiai együttműködés")
Főképp a praktikusság miatt léteznek hasonló típusok!
Index létrehozásra példa:
https://www.tutorialspoint.com/sql/sql-indexes.htm
CREATE [UNIQUE] [CLUSTERED] [NONCLUSTERED] INDEX indexnév ON {táblanév | nézet} (oszlopnév [ASC | DESC] [, . . .n]) [WITH [PAD_INDEX] [[,] FILLFACTOR = feltöltési_tényező] [[,] IGNORE_DUP_KEY] [[,] SORTED_DATA] [[,] SORTED_DATA_REORG] [[,] DROP_EXISTING] [[,] STATISTICS_NORECOMPUTE] [ON fájlcsoport]
Oracle dokumentációban ábrázolva: https://docs.oracle.com/database/121/SQLRF/img/create_index.gif
forrás: http://softwareonline.animare.hu/cikk.aspx?id=3638
DROP INDEX indexnév;
Oracle dokumentációban ábrázolva:
https://docs.oracle.com/database/121/SQLRF/img/drop_index.gif
Az egyedi indexek jönnek létre automatikusan, amikor primary key vagy unique kényszert hozunk létre. Jellemzően ez a folyamat azonnal megtörténik.
Törlése: automatikusan törlődik, ha a kényszert eldobjuk/kikapcsoljuk
Ez a két csoportosítás típus nem zárja ki egymást, tehát mind a 4 fajta index létrehozható:
egyoszlopos és egyedi
egyoszlopos, de nem-egyedi
többoszlopos és egyedi
többoszlopos, de nem-egyedi
Forrás: https://technet.microsoft.com/en-us/library/ms184276(v=sql.105).aspx