BLACK FRIDAY! Slevy až 80 % jsou všude. Tak je nepropásni a přejdi do rostoucího IT oboru!
The real BF 2020

Lekce 1 - Oracle krok za krokem: Úvod do Oracle a příprava

Vítejte u prvního dílu kurzu tutoriálů k databázi Oracle. Kurz je určen pro všechny, co se ještě s databázemi nesetkali a potřebují s nimi pracovat v dalším jazyce (např. v ASP.NET, PHP, Java nebo klidně v C). Smyslem je naučit vás základy jazyka SQL, které jsou podobné ve všech SQL databázích (MS-SQL, MySQL, SQLite, ...). Postupně si ukážeme vytváření tabulek, vkládání dat, jejich modifikaci a nakonec i výběr, vyhledávání a komplikovanější dotazy přes více tabulek.

Pracovat budeme pouze se samotnou databází a bez dalšího programovacího jazyka. Nebude to ale tak suché, jak to zní, protože budeme používat SQL developer. Ukážeme si, jak věci naklikat (ty které jdou) a jak to samé zapsat i jako SQL dotaz. Z grafického rozhraní hezky pochopíte, co přesně děláte a poté si to spojíte se SQL příkazem. Nabyté znalosti můžete využít v kterémkoli jazyce pro práci s Oracle databází (např. v ASP.NET) a s minimální úpravou i s kteroukoli jinou SQL databází. Po dokončení tohoto seriálu budete schopni pracovat s databází na takové úrovni, abyste dokázali vytvořit jednoduchý redakční systém nebo podobnou aplikaci.

Relační databáze

Oracle database je tzv. relační databáze. Tento pojem označuje databázi založenou na tabulkách. Každá tabulka obsahuje položky jednoho typu. Můžeme mít tedy tabulku uzivatele, další tabulku clanky a další třeba komentare.

Databázovou tabulku si můžeme představit třeba jako tabulku v Excelu. Tabulka uzivatele by mohla vypadat asi takto:

Jméno Příjmení Datum narození Počet článků
Jan Novák 11.3.1984 17
Tomáš Marný 1.2.1989 6
Josef Nový 20.12.1972 9
Michaela Slavíková 14.8.1990 1

Položky (konkrétně zde uživatelé) ukládáme na jednotlivé řádky, sloupce pak označují atributy (vlastnosti, chcete-li), které položky mají. Oracle databáze je typovaná, to znamená, že každý sloupec má pevně stanovený datový typ (číslo, znak, krátký text, dlouhý text...) a může obsahovat hodnoty jen tohoto typu. Pokud chceme s relační databází rozumně pracovat, každý řádek v tabulce by měl být opatřený unikátním identifikátorem. U uživatelů by to mohlo být třeba rodné číslo, mnohem častěji se však používají identifikátory umělé a to tak, že uživatele prostě očíslujeme. K tomu se dostaneme později.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Slovo relační označuje vztah (anglicky relation). Ten je mezi tabulkami nebo mezi entitami v jedné tabulce. To si ale necháme na jindy a zatím budeme pracovat jen s jednou tabulkou zároveň.

RDBMS

Možná vás napadlo, k čemu vlastně potřebujeme nějakou databázi. Data bychom stejně dobře mohli ukládat do nějakých textových souborů, binárek, XML nebo něčeho podobného. Určitě by to nějak fungovalo, nebo ne?

Označení databáze je vlastně nepřesné a v odborné literatuře se setkáme s označením RDBMS (Relation DataBase Management System). Česky je to přeloženo jako "systém řízení báze dat", což zní opravdu hrozně a proto budu dále používat označení databázový stroj nebo RDBMS. Databázový stroj (tedy zde Oracle database) není jen úložiště dat. Jedná se o velmi sofistikovaný a odladěný nástroj, který za nás řeší spoustu problémů a zároveň je extrémně jednoduchý k použití. S databází totiž komunikujeme jazykem SQL, kterým jsou v podstatě lidsky srozumitelné věty. Spolu s ukládáním dat je ale třeba dále řešit mnoho dalších věcí. Asi by nás napadlo např. zabezpečení nebo optimalizace výkonu. RDBMS toho ale dělá ještě mnohem více, řeší za nás problém současné editace stejné položky několika uživateli ve stejný okamžik, který by jinak mohl zapříčinit nekonzistenci databáze. RDBMS data v tomto případě zamkne a odemkne až po vykonání zápisu. Dále umožňuje spojovat několik dotazů do transakcí, kdy se série dotazů vykoná vždy celá nebo vůbec. Nestane se, že by se vykonala jen část. Tyto vlastnosti databázového stroje jsou shrnovány zkratkou ACID, pojďme si ji vysvětlit.

ACID

ACID je akronym slov Atomicity (nedělitelnost), Consistency (validita), Isolation (izolace) a Durability (trvanlivost). Jednotlivé složky mají následující význam:

  • Atomicity - Operace v transakci se provedou jako jedna atomická (nedělitelná) operace. Tzn. že pokud nějaká část operace selže, vrátí se databáze do původního stavu a žádné části transakce nebudou provedeny. Reálný příklad je např. převod peněz na bankovním účtu. Pokud se nepodaří peníze odečíst z jednoho účtu, nebudou ani připsány na účet druhý. Jinak by byla databáze v nekonzistentním stavu. Pokud bychom si práci s daty řešili sami, mohlo by se nám toto velmi jednoduše stát.
  • Consistency - Stav databáze po dokončení transakce je vždy konzistentní, tedy validní podle všech definovaných pravidel a omezení. Nikdy nenastane situace, že by se databáze nacházela v nekonzistentním stavu.
  • Isolation - Operace jsou izolované a navzájem se neovlivňují. Pokud se sejde v jeden okamžik více dotazů na zápis do stejného řádku, jsou vykonávány postupně, jako ve frontě.
  • Durability - Všechna zapsaná data jsou okamžitě zapsána na trvanlivá úložiště (na pevný disk), v případě výpadku el. energie nebo jiného přerušení provozu RDBMS vše zůstane tak, jak bylo těsně před výpadkem.

Databáze (přesněji databázový stroj) je tedy černá skříňka, se kterou naše aplikace komunikuje a do které ukládá veškerá data. Její použití je velmi jednoduché a je odladěna tak, jak bychom si sami zápis dat v programu asi těžko udělali. Vůbec se nemusíme starat o to, jak jsou data fyzicky uložena, s databází komunikujeme pomocí jednoduchého dotazovacího jazyka SQL, viz dále. V dnešní době se vůbec nevyplatí zatěžovat se otázkou ukládání dat, jednoduše sáhneme po hotové databázi, kterých je obrovský výběr a jsou většinou zadarmo. O databázi občas hovoříme jako o 3. vrstvě aplikace (1. vrstva je uživatelské rozhraní, 2. vlastní logika aplikace a 3. je právě datová vrstva).

Potřebné nástroje

Pro práci s Oracle databází si na náš stroj budeme muset nainstalovat samotnou databázi. V kurzu budu používat verzi Express, která je zcela zdarma a její velikost na disku je výrazně menší než plná verze. Dále budeme používat vývojové prostředí SQL developer, taktéž od společnosti Oracle.

Oracle Databáze

Jak jsem již zmínil budeme používat verzi Express, tu lze stáhnout z oficiálních stránek společnosti Oracle. Pokud nemáte účet Oracle, je třeba si jej nejprve vytvořit. Po spuštění instalačního souboru odsouhlasíme smluvní podmínky a zvolíme místo, do kterého se databáze nainstaluje. V třetím kroku si instalační program vyžádá zvolení hesla, pomocí kterého se následně budeme k databázi připojovat. Pro účely kurzu nám postačí jednoduché heslo, například admin:

Stažený soubor je ve formátu ZIP. Pro správnou instalaci je třeba nejprve soubor extrahovat a poté spustit instalaci, v opačném případě se instalace nemusí zdařit.

SQL developer

Vývojové prostředí SQL developer stáhneme opět z oficiálních stránek Oracle, konkrétně z tohoto odkazu. Pro fungování je třeba mít nainstalovanou Javu JDK verze 8 nebo 11. Pokud nějakou z této verze nemáte, stáhnete archiv SQL developer i s Java JDK, to platí i pro klasickou Javu (JRE). Po otevření prostředí SQL developer klikneme pravým tlačítkem na záložku Oracle Connections v levém horním rohu a vybereme možnost new connection.

Připojení vyplníme následovně:

Do políčka password zadáme heslo z instalace. Právě máme vytvořené spojení s naší Oracle databází :)


 

Všechny články v sekci
Oracle
Článek pro vás napsal Jan Hranický
Avatar
Jak se ti líbí článek?
1 hlasů
Aktivity (3)

 

 

Komentáře

Avatar
mixxy
Člen
Avatar
mixxy:6. listopadu 1:04

V dnesni dobe,kdy ma kazdy na pc nebo notebooku X terovy disk by mi prislo logictejsi stahnout plnou verzi,nez oskubane xecko. Ale samozrejme to zalezi na tom,ceho se tve lekce budou tykat, jestli vyvoje nebo spravy.

Odpovědět
6. listopadu 1:04
Neni dulezite mnoho vedet a znat. Dulezite je vedet, co je treba.
Avatar
Petr Laštovička
Super redaktor
Avatar
Petr Laštovička:6. listopadu 23:12

Verzi Express si můžeme zdarma stáhnout, ale to neznamená, že je zcela zdarma. Má dost omezující licenci a také limity na paměť a velikost databáze. Lze ji používat pro vývoj a testování, ale na databázový server je nutné zakoupit plnou verzi, která je poměrně drahá.

 
Odpovědět
6. listopadu 23:12
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
mixxy
Člen
Avatar
mixxy:8. listopadu 2:48

Pokud si udelas virtualku bez pristupu k neru,muzes mit jaky stroj chces mam dataguardy,racky, exterprise knstalace. Nuc na to nepotrebujes,ani licenci.

Odpovědět
8. listopadu 2:48
Neni dulezite mnoho vedet a znat. Dulezite je vedet, co je treba.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.