====== Oracle Database ====== **Oracle Database** (často zkráceně jen **Oracle DB** nebo **Oracle**) je multi-modelový systém řízení relačních bází dat (RDBMS), který vyvíjí a prodává společnost Oracle Corporation. Jde o jeden z nejpoužívanějších a nejrobustnějších databázových systémů na světě, který je navržen primárně pro podnikové (enterprise) nasazení, kde je vyžadována vysoká spolehlivost, bezpečnost a zpracování obrovského množství transakcí (OLTP) či analytických dotazů (OLAP). ---- ===== Architektura a klíčové vlastnosti ===== Oracle DB nabízí celou řadu pokročilých technologií, které z ní dělají špičku v oboru: * **Plná podpora ACID:** Systém striktně zaručuje atomicitu, konzistenci, izolovanost a trvanlivost databázových transakcí. * **Oracle RAC (Real Application Clusters):** Technologie, která umožňuje provozovat jedinou databázi napříč několika fyzickými servery současně. Zajišťuje tím extrémní dostupnost (High Availability) – pokud jeden server selže, databáze běží bez přerušení dál. * **Multitenant architektura:** Od verze 12c Oracle zavedl koncept tzv. kontejnerových databází (CDB) a připojitelných databází (PDB). Umožňuje to spravovat mnoho oddělených databází jako jednu jedinou instanci, což šetří systémové prostředky a usnadňuje údržbu. * **PL/SQL (Procedural Language/Structured Query Language):** Vlastní a velmi mocné proprietární rozšíření jazyka SQL, které přidává procedurální prvky (cykly, podmínky, proměnné) přímo do databázového stroje. * **Multi-model:** Ačkoliv jde primárně o relační databázi, moderní verze nativně podporují ukládání a dotazování formátů JSON, XML, prostorových dat (Spatial) a grafů. ---- ===== Výhody a nevýhody ===== ==== Výhody ==== * **Maximální škálovatelnost a výkon:** Systém je navržen tak, aby zvládl zpracovávat petabyty dat a tisíce paralelních uživatelů bez kompromisů ve výkonu. * **Pokročilá bezpečnost:** Nabízí propracované šifrování na úrovni sloupců i celých tabulkových prostorů (TDE - Transparent Data Encryption), detailní auditování a řízení přístupu. * **Zpětná kompatibilita:** Oracle si zakládá na tom, že i velmi starý kód často bez problémů běží na nejnovějších verzích databáze. * **Komplexní ekosystém:** Nástroje jako Oracle Apex nebo Data Guard poskytují hotová řešení pro vývoj aplikací a disaster recovery. ==== Nevýhody ==== * **Vysoká cena:** Licenční model společnosti Oracle je proslulý svou složitostí a extrémně vysokými náklady, což databázi činí nedostupnou pro mnoho malých a středních firem. * **Strmá křivka učení:** Administrace (DBA) Oracle databáze vyžaduje hluboké a specializované znalosti. Jde o velmi komplexní systém, který nelze snadno spravovat "pokus-omyl". * **Náročnost na hardware:** Pro běh všech integrovaných funkcí a procesů na pozadí vyžaduje Oracle DB silnou serverovou infrastrukturu. ---- ===== Ukázka kódu (PL/SQL) ===== Zatímco běžné SQL slouží k jednorázovému dotazování, PL/SQL umožňuje psát složitější logiku přímo do databáze ve formě uložených procedur nebo triggerů. Zde je jednoduchá ukázka PL/SQL bloku: DECLARE v_zamestnanec_id NUMBER := 101; v_jmeno VARCHAR2(50); v_plat NUMBER; BEGIN -- Dotaz na konkrétního zaměstnance a uložení výsledků do proměnných SELECT first_name, salary INTO v_jmeno, v_plat FROM employees WHERE employee_id = v_zamestnanec_id; -- Výpis informace na konzoli DBMS_OUTPUT.PUT_LINE('Zaměstnanec: ' || v_jmeno || ' má plat: ' || v_plat); EXCEPTION -- Ošetření chyby, pokud zaměstnanec neexistuje WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Zaměstnanec s ID ' || v_zamestnanec_id || ' nebyl nalezen.'); END; / ---- ===== Užitečné odkazy ===== * [[https://www.oracle.com/database/|Oficiální stránky Oracle Database]] * [[https://docs.oracle.com/en/database/|Oficiální technická dokumentace]]