Lekce 1 - Derby DB - Informace, nastavení prostředí
Proč Apache Derby? Jedná se o velmi jednoduchou, řekl bych až triviální databázi. Je funkční, prakticky bez chyb a hlavně je zdarma. Tato databáze má výhodu, že v ní již neprobíhá bouřlivý vývoj a tudíž změny mezi jednotlivými verzemi, subverzemi, téměř nestojí za povšimnutí. To v případě požadování stabilního prostředí považuji za drastickou výhodu. V tomto online kurzu si předvedeme práci s touto jednoduchou databází a to jak z pohledu programátora (developera), tak i její administrování. Protože i vývojář si ji musí nastavit a zprovoznit. K úspěšnému používání je samozřejmě nutná základní znalost relačních databází, syntaxe SQL a pokročilé znalosti z Javy.
Derby je vždy součástí JDK Javy. Najít ji můžete ve svém adresáři
instalovaného JDK, je to adresář db
, v mém
případě je cesta C:\Program Files\JavaJDK\db\
nebo si ji
můžete stáhnout z webu Apache Derby
DB. Pokud ji máte v JDK, pak v ní vidíte dva adresáře
\bin
a \lib
. Adresář \bin
obsahuje
příkazy pro: spuštění a vypnutí databáze, spuštění konfiguračního
příkazu ij, a také zde budou uloženy vaše databáze, až si je vyrobíte.
Adresář \lib
obsahuje externí *.jary, které se přidávají do
CLASSPATH
, pokud budete potřebovat objekty v nich obsažené.
Pouze připomenu, že Derby DB obsažená v JDK není aktuální. Derby DB se
vyskytuje pouze v JDK a nikoliv JRE. Pokud
chcete pracovat s tou nejnovější, tak si ji vždy stáhněte s webu.
Mimochodem, na jednom stroji lze mít spoustu Derby databází, ale jen jedna
může mít nastavenou cestu DERBY_HOME
a PATH
.
Pokud se rozhodneme stáhnout si ji z webu a vybereme
požadovanou verzi. Dole na stránce lze vidět i seznam chyb a příklady,
opravy z daných chyb (bug fixes). Zde se dají stáhnout vcelku přehledné manuály ,
které budete v některých případech potřebovat. Samozřejmě jsem během
psaní tohoto kurzu převzal dost informací z těchto manuálů. Adresář, kam
si ji nahrajete (rozbalíte), je zcela libovolný, nicméně poté upravte cesty
u DERBY_HOME
a PATH
. Derby je relační databází
pouze pro jazyk Java. Derby DBMS (database management system) je přístupná
přes JDBC konektor.
Pozn.: od verze Java 9 nebude Apache Derby součástí JDK.
Technické parametry Derby Databáze
Derby Databáze umožňuje funkčnost ve dvou režimech:
- Plnohodnotný Databázový server: Jedná se o serverovou verzi běžící na vlastním JVM. K připojení je nutný nástroj ij nebo klient JDBC běžící na vlastních JVM. Připojování lze jak z localhostu, tak i ze sítě. Jako vlastní databázové servery běží i řada konkurentů, např. MySQL, MS-SQL, PostGRE SQL, apod..
- Vestavěnou databázi (Embedded): Jedná se prakticky vložení databázového enginu do našeho projektu (programu). S danou databází pracujeme přes vytvořenou instanci. Což znamená, že různým Java programům můžete vložit vlastní databázi a nemusíte klíčová data ukládat do externích datových či konfiguračních souborů.
Takže co to vlastně ta Derby databáze je? Jedná se pouze o program databázového serveru, který se spustí. Pokud to přirovnám k Excelu, tak databázový server je něco jako samotný Excel. Databázový program umožňuje mít ve správě několik databází, stejně tak Excel může mít otevřeno více excelovských souborů. Z nich každá databáze disponuje tabulkami, stejně tak každý Excel soubor má lišty (záložky), což jsou taky tabulky.
Popis vlastnosti | Parametry(limity) |
---|---|
Počet tabulek v dané databázi | je roven maximu java.lang.Long.MAX_VALUE tedy (263)-1 |
Počet indexů v každé tabulce | 32767 |
Počet sloupců v každé tabulce | 1012 |
Počet sloupců s indexovými klíči | 16 |
Řádků v každé tabulce | bez limitu |
Velikost tabulky | bez limitu - pozor, OS může mít limit na velikost souboru |
Velikost řádku | bez limitu - opětovně, limity OS na velikost souboru mohou mít vliv na velikost tabulky a řádku |
Pokud si vyrobíme databázi s tabulkou nebo bez, daná databáze se objeví
v adresáři ..\db\bin
. Adresář se bude jmenovat stejně jako
daná databáze. Daný adresář bude obsahovat adresáře a soubory.
\db\bin\jmeno databaze\log
- tento adresář obsahuje soubory, které tvoří logy transakcí používané pro interní data v případě potřeby obnovení (neobsahuje logy v případě vzniku erroru, tzv. neprotokoluje chyby vzniklé při práci s databází).\db\bin\jmeno databaze\seg0
- tento adresář obsahuje jeden soubor pro každou tabulku uživatelů, systémovou tabulku a index.\db\bin\jmeno databaze\services.properties
- tento textový soubor obsahuje informace s interními informacemi o nastaveních (konfiguraci) dané databáze.\db\bin\jmeno databaze\tmp
- tento adresář nemusí vzniknout, dočasný adresář který slouží pro úschovu dočasných dat při třídění, mazání a updatu.\db\bin\jmeno databaze\jar
- tento adresář nemusí vzniknout, adresář, ve kterém jsou uloženy *.jar soubory používané databází v případě jejich použití.
Pozn. Indexy nejsou podporované u datových typů CLOB
,
BLOB
, LONG VARCHAR
, a XML
.
Pozn. Derby databázový program spadne v případě, že databázový logger se nemůže rozšířit pro ukládání nových logů.
Nástroje a utility Derby
Tyto nástroje se nachází v adresáři ..\db\bin
. Jsou to
nástroje příkazového řádku, tedy bez GUI implementace. Práci s databází
můžeme řešit programátorsky přes Javu nebo přes interpret JDBC jako ij
příkaz.
- ij - klíčový JDBC skriptovací nástroj. Tento interpret příkazů se používá pro práci s DB. Budeme často používat.
- sysinfo - zobrazuje systémové informace o JVM, Derby apod..
- dblook - je Derby Data Definition Language (DDL) nástroj. Umožňuje vytvářet dokumentaci databázových schémat.
- signatureChecker - nástroj pro identifikaci SQL funkcí a procedur nesplňujících SQL standardy.
Vytvoření nové systémové proměnné DERBY_HOME a nastavení PATH
Nejdříve si vytvoříme novou systémovou proměnnou
DERBY_HOME
. Její cesta je ..\JavaJDK\db
. Zvolené
cesty pro DERBY_HOME
a PATH
jsou pouze ilustrativní
pro můj případ. Ve vašem případě budou cesty samozřejmě odlišné a
závislé na tom, kde danou Derby máte nakopírovanou.

Abychom se nemuseli stále zdržovat s příkazy v ..\db\bin
,
provedeme nastavení PATH
v operačním systému. Její cesta je
..\JavaJDK\db\bin
. Po nastavení obou proměnných doporučuji
restartovat počítač.

Příště, Derby DB - Spuštění a vypnutí databáze, si předvedeme spuštění a vypnutí databáze.