1. diel - Derby DB - Informácie, nastavenie prostredia
Prečo Apache Derby? Jedná sa o veľmi jednoduchú, povedal by som až triviálne databázu. Je funkčná, prakticky bez chýb a hlavne je zadarmo. Táto databáza má výhodu, že v nej už neprebieha búrlivý vývoj a teda zmeny medzi jednotlivými verziami, subverzii, takmer nestojí za povšimnutie. To v prípade požadovania stabilného prostredia považujem za drastickú výhodu. V tomto online kurze si predvedieme prácu s touto jednoduchou databáz a to ako z pohľadu programátora (developera), tak aj jej administrovania. Pretože aj vývojár si ju musí nastaviť a sprevádzkovať. K úspešnému používanie je samozrejme nutná základná znalosť relačných databáz, syntaxe SQL a pokročilé znalosti z Javy.
Derby je vždy súčasťou JDK Javy. Nájsť ju môžete vo svojom adresári
inštalovaného JDK, je to adresár db
, v mojom
prípade je cesta C:\Program Files\JavaJDK\db\
alebo si ju môžete
stiahnuť z webu Apache Derby DB. Ak
ju máte v JDK, potom v nej vidíte dva adresáre
\bin
a \lib
. Adresár \bin
obsahuje
príkazy pre: spustenie a vypnutie databázy, spustenie konfiguračného
príkazu ij, a tiež tu budú uložené vaše databázy, až si ich vyrobíte.
Adresár \lib
obsahuje externé * .jar, ktoré sa pridávajú do
CLASSPATH
, ak budete potrebovať objekty v nich obsiahnuté. Iba
pripomeniem, že Derby DB obsiahnutá v JDK nie je aktuálne. Derby DB sa
vyskytuje iba v JDK a nie JRE. Ak chcete
pracovať s tou najnovšou, tak si ju vždy stiahnite s webu. Mimochodom, na
jednom stroji možno mať veľa Derby databáz, ale len jedna môže mať
nastavenú cestu DERBY_HOME
a PATH
.
Ak sa rozhodneme stiahnuť si ju z webu a vyberieme
požadovanú verziu. Dole na stránke možno vidieť aj zoznam chýb a
príklady, opravy z daných chýb (bug fixes). Tu sa dajú stiahnuť vcelku prehľadné manuály,
ktoré budete v niektorých prípadoch potrebovať. Samozrejme som počas
písania tohto kurzu prevzal dosť informácií z týchto manuálov. Adresár,
kam si ju nahráte (rozbalíte), je úplne ľubovoľný, avšak potom upravte
cesty u DERBY_HOME
a PATH
. Derby je relačná
databázou iba pre jazyk Java. Derby DBMS (database management system) je
prístupná cez JDBC konektor.
Pozn .: od verzie Java 9 nebude Apache Derby súčasťou JDK.
Technické parametre Derby Databáza
Derby Databáza umožňuje funkčnosť v dvoch režimoch:
- Plnohodnotný Databázový server: Jedná sa o serverovou verziu bežiaci na vlastnom JVM. Na pripojenie je potrebný nástroj ij alebo klient JDBC bežiaci na vlastných JVM. Pripájanie možno tak z localhost, ako aj zo siete. Ako vlastné databázové servery beží aj rad konkurentov, napr. MySQL, MS-SQL, PostgreSQL, apod ..
- Vstavanou databázu (Embedded): Jedná sa prakticky vloženie databázového enginu do nášho projektu (programu). S danou databázou pracujeme cez vytvorenú inštanciu. Čo znamená, že rôznym Java programom môžete vložiť vlastnú databázu a nemusíte kľúčové dáta ukladať do externých dátových či konfiguračných súborov.
Takže čo to vlastne tá Derby databázy je? Jedná sa len o program databázového servera, ktorý sa spustí. Ak to prirovnám k Excelu, tak databázový server je niečo ako samotný Excel. Databázový program umožňuje mať v správe niekoľko databáz, rovnako tak Excel môže mať otvorených viac excelovských súborov. Z nich každá databáza disponuje tabuľkami, rovnako tak každý Excel súbor má lišty (záložky), čo sú taky tabuľky.
opis vlastnosti | Parametre (limity) |
---|---|
Počet tabuliek v danej databáze | je rovný maximu java.lang.Long.MAX_VALUE teda (2 63) -1 |
Počet indexov v každej tabuľke | 32767 |
Počet stĺpcov v každej tabuľke | 1012 |
Počet stĺpcov s indexovými kľúčmi | 16 |
Riadkov v každej tabuľke | bez limitu |
veľkosť tabuľky | bez limitu - pozor, OS môže mať limit na veľkosť súboru |
veľkosť riadku | bez limitu - opätovne, limity OS na veľkosť súboru môžu mať vplyv na veľkosť tabuľky a riadku |
..\db\bin
. Adresár sa bude volať rovnako ako
daná databázy. Daný adresár bude obsahovať adresáre a súbory.
\db\bin\jmeno databaze\log
- tento adresár obsahuje súbory, ktoré tvoria logy transakcií použité pre vnútorný dáta v prípade potreby obnovenia (neobsahuje logy v prípade vzniku error, tzv. nezapisuje chyby vzniknuté pri práci s databázou).\db\bin\jmeno databaze\seg0
- tento adresár obsahuje jeden súbor pre každú tabuľku užívateľov, systémovú tabuľku a index.\db\bin\jmeno databaze\services.properties
- tento textový súbor obsahuje informácie s internými informáciami o nastaveniach (konfigurácii) danej databázy.\db\bin\jmeno databaze\tmp
- tento adresár nemusí vzniknúť, dočasný adresár ktorý slúži pre úschovu dočasných dát pri triedení, mazanie a updatu.\db\bin\jmeno databaze\jar
- tento adresár nemusí vzniknúť, adresár, v ktorom sú uložené * .jar súbory používané databáz v prípade ich použitia.
Pozn. Indexy nie sú podporované u dátových typov CLOB
,
BLOB
, LONG VARCHAR
, a XML
.
Pozn. Derby databázový program spadne v prípade, že databázový logger sa nemôže rozšíriť na ukladanie nových logov.
Nástroje a utility Derby
Tieto nástroje sa nachádza v adresári ..\db\bin
. Sú to
nástroje príkazového riadka, teda bez GUI implementácie. Prácu s databázou
môžeme riešiť programátorské cez Javu alebo cez interpret JDBC ako ij
príkaz.
- ij - kľúčový JDBC skriptovací nástroj. Tento interpret príkazov sa používa pre prácu s DB. Budeme často používať.
- SysInfo - zobrazuje systémové informácie o JVM, Derby apod ..
- dblook - je Derby Data Definition Language (DDL) nástroj. Umožňuje vytvárať dokumentáciu databázových schém.
- signatureChecker - nástroj pre identifikáciu SQL funkcií a procedúr nespĺňajúcich SQL štandardy.
Vytvorenie novej systémové premenné DERBY_HOME a nastavenie PATH
Najskôr si vytvoríme novú systémovú premennú DERBY_HOME
.
Jej cesta je ..\JavaJDK\db
. Zvolenej cesty pre
DERBY_HOME
a PATH
sú iba ilustratívne pre môj
prípad. Vo vašom prípade budú cesty samozrejme odlišné a závislé na tom,
kde danú Derby máte nakopírovaniu.
Aby sme sa nemuseli stále zdržovať s príkazmi v ..\db\bin
,
vykonáme nastavenie PATH
v operačnom systéme. Jej cesta je
..\JavaJDK\db\bin
. Po nastavení oboch premenných odporúčam
reštartovať počítač.
Nabudúce, Derby DB - Spustenie a vypnutie databázy , si predvedieme spustenie a vypnutie databázy.