Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Firebird SQL 1.5 za dveřmi

V roce 2000 firma Borland dala komunitě zdarma k dispozici zdrojové kódy populárního serveru InterBase 6.0 beta pod licencí IPL. Krátce nato byl založen projekt Firebird, který pokračuje ve vývoji databáze. Firebird dospěl a před prahem nám stojí finální verze 1.5, na kterou se nyní podíváme.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Firma Borland dál pokračovala ve vývoji své databáze Interbase a představovala novinky verzí 6.5 a 7.0, ale komunita kolem projektu Firebird se teprve jakoby rozkoukávala z šoku, který jim firma vydáním zdrojových kódů pod IPL (obdoba Mozilla licence) připravila. Dlouhou dobu se téměř nic nedělo, vývojáři studovali zdrojové kódy, pak byla vydána verze 1.0. Nyní však světlo světa spatřila verze 1.5.

Jedná se o první milník na cestě k verzi 2.0. Byla provedena kompletní refaktorizace zdrojových kódů (přechod z C na C++), protože server Interbase byl stavěn spíše pro systémy Windows (kde je dodnes nesmírně populární). Vývojáři přidali několik vlastností, vytvořili zbrusu nové sestavovací skripty na bázi autoconf a samozřejmě se roztočil nekonečný kolotoč odstraňování chyb, přičemž byla zachována 100% kompatibilita s Interbase 6.0. Z vlastností, které oproti systému Interbase 6.0 přibyly, jsou pro uživatele nejzajímavější ty­to:

  • vylepšení optimalizátoru dotazů
  • podpora databázových aliasů
  • názvy programů byly konečně přejmenovány
  • přípony souborů přejmenovány z gdb na fdb
  • řazení NULL záznamů nyní podle specifikace SQL92
  • SELECT FOR UPDATE WITH LOCK
  • EXECUTE STATEMENT
  • nové aliasy BOLEAN a BIGINT
  • savepointy u transakcí
  • drobná vylepšení u jazyka uložených procedur
  • a mnoho dalších (Firebird_v15_Re­leaseNotes.pdf)

Firebird se dá stáhnout ze stránek projektu, kde naleznete také ODBC/JDBC/OLEDB (.NET) ovladače. Dokumentace prozatím neexistuje, ovšem naštěstí firma Borland dává k dispozici zdarma kompletní dokumentační set pro Interbase 6.0, který je použitelný i pro Firebird, jen některé názvy se liší (místo ibsever zkrátka platí fbserver a podobně). Odkaz naleznete na stránkách projektu.

Firebird je víceuživatelská relační databáze pro systémy UNIX a Windows kompatibilní se standardem SQL92 s podporou transakcí, uložených procedur a triggerů. Firebird nejenže plně vyhovuje ANSI specifikaci, ale přidává řadu vylepšení navíc tak, jak je tomu u konkurenčních systémů (Oracle, Sybase). Firebird pochopitelně využívá technologii server/klient.

Instalace Firebirdu patří k těm jednodušším. Možná je to velikostí distribuce, která čítá jen asi 2 MB. Stačí rozbalit binární instalační balíček, editovat konfigurační soubor (především pokud chcete používat server přes síť) a spustit démona fbmgr. Pro vytvoření nové databáze je nutno znát superuživatelské konto. To se od systému Interbase neliší a název má „SYSDBA“ s heslem standardně nastaveným na „masterkey“. K interakci se serverem se používá konzole isql, ovšem existuje mnoho okenních programů, které nabízejí vyšší komfort. Ovládání konzole je naprosto intuitivní (CONNECT, CREATE DATABASE, SHOW TABLES, HELP a podobně). Také je zde možnost instalovat ze zdrojových kódů, ale popisovat na rootu autoconf kompilaci a instalaci, to je házením hrachu o zeď.

Databáze jsou ukládány do jediného souboru s příponou fdb, což je velice praktické. V tomto souboru je uloženo všechno včetně vlastních dat, definicí tabulek, indexů a transakčních záznamů. Při vytvoření je nutno nastavit velikost (počet stránek), kterou má server alokovat. Pokud by byly diskové nároky vyšší, server umí velikost souboru automaticky navýšit. Databázi je také možno distribuovat do více takových souborů (např. na více disků), nečekejte však, že by toho server zatím nějak využil. V dokumentaci stojí, že server bude používat první soubor, dokud se celý nezaplní, a poté přejde na druhý. Při vytváření databáze nezapomeňte specifikovat správnou znakovou sadu a při vytváření tabulek pak řazení znaků (collation order). Pro češtinu a systém Linux je vhodná tato kombinace:
Znaková sada:ISO8859_2
Řazení znaků: CS_CZ

Připojit se k serveru je možno buď lokálně (zřejmě přes unix socket), nebo přes síť pomocí TCP/IP (server podporuje i exotické protokoly NetBEUI či IPX, ale vývojáři je hodlají odstranit). Nedivte se, když budete muset pro připojení uvést úplnou cestu k fdb souboru, a pokud se vám to nelíbí, můžete zavést alias (alias.conf). Po připojení k databázi brzy zjistíte, že datové typy nijak nevybočují ze standardu (BLOB, CHAR, VARCHAR, DATE, DECIMAL, FLOAT, INTEGER, NUMERIC, SMALLINT, TIME, TIMESTAMP plus několik dalších, které přidali vývojáři Firebirdu). Ve srovnání s Postgresem je jich subjektivně málo, jenže Firebird podporuje domény, pomocí nichž si můžete tvořit vlastní datové typy (včetně polí) s kontrolou hodnot (tzv. check constraint). Velmi vhodné je například si vytvořit CS_CHAR a CS_VARCHAR s řazením znaků CS_CZ, abyste toto řazení nemuseli vypisovat v každém sloupci tabulek, což byste jinak museli, protože i kdyby byly výsledky sežazeny správně, české písmeno „ch“ by zcela jistě na svém místě nebylo. Uff.

Pokud jste někdy vytvářeli index v relační databázi, máte to v kapse. Tím chci říct, že práce s indexy je stejná jako u jiných databází. Firebird si poradí i s indexy přes více sloupců. Pohledy (VIEW) jsou plně aktualizovatelné, pokud tedy neobsahují vnořený dotaz nebo neslučují více tabulek. Firebird také obsahuje generátor (GENERATOR), který tvoří po sobě jdoucí posloupnost celých čísel. Na generování složitějších posloupností tu je těžší kalibr, kterému se budeme věnovat v následujícím paragrafu.

Uložené procedury (STORED PROCEDURE) a triggery (TRIGGER – kód, který se spouští při určité akci, např. při vložení nového záznamu) jsou pro Firebird hračkou. K tomuto účelu disponuje vlastním jazykem nazvaným DSQL/PSQL, jehož syntaxe se velmi blíží PL/SQL (Oracle), je však o něco jednodušší. Pomocí uložených procedur (UP) můžete značnou část logiky přenést na server. UP se mohou jednak volat jako běžné funkce programovacího jazyka (např. pro vkládání záznamů do databáze) a jednak používat jako pohledy (např. pro generování tak složitých dotazů, které nelze zapsat do jednoho SQL příkazu). Důvod je zřejmý – uložená procedura, která intenzivně pracuje s daty, je rychlejší, protože přes síť proudí pouze výsledek. Triggery zase pomohou udržovat databázi konzistentní, protože mohou kontrolovat stav dat před určitou akcí nebo po ní (aktualizace záznamu a podobně), což se může hodit v kritických aplikacích. Nutno poznamenat, že použitím UP a triggerů se vaše aplikace prakticky stává nepřenositelnou a je nutno vynaložit vyšší úsilí při přechodu na jiný databázový server.

Interbase 6.0 podporuje uživatelsky definované funkce (UDF), čehož se Firebird nevzdal. Vývojář aplikace má možnost vytvořit so knihovnu a pomocí SQL příkazu navázat určitou funkci jazyka C/C++ na databázovou funkci. Nedovedu si představit, v jakých situacích se tato vlastnost může využít (námět na diskusi pod článkem), ale ta možnost tady je.

To byl souhrn nejdůležitějších vlastností serveru Firebird 1.5, a pokud jsem na něco důležitého zapomněl, doplňte to prosím v diskusi pod článkem. Vůbec jsem se nezmínil o propracovaném zálohování za běhu či o detailních statistikách provozu serveru. Tyto informace si ale zájemci již mohou přečíst v dokumentaci, která čítá přes 1500 stran.

Firebird 1.5 je bezpečnou, snadno konfigurovatelnou a škálovatelnou relační databází pro systém Linux. Je šířena pod licencí IPL, tedy zdarma a na všech platformách bez omezení (což neplatí např. u MySQL). Myslím, že bude na místě sledovat další vývoj.

Firebird verze 1.5 je na spadnutí a vyjde během několika dnů.

Odkazy

Školení: Hackujeme operační systém Android

 

Školení vám ukáže, jak se dostat k Linuxu (tzv. "rootování"), který se pod hezkou tváří Androida skrývá a jak ho naplno využít. Pomůže vám to při záloze dat, zvětšování prostoru pro aplikace nebo sdílení připojení k internetu a pokud chcete z telefonu dostat opravdové maximum, ukážeme vám, jak v něm vyměnit kompletní systém za lepší.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,05

Přehled názorů

Jaká je dnes nejlepší Free DB?
petr andrs 16. 9. 2003 08:11
Nový
├ 
Re: Jaká je dnes nejlepší Free DB?
Meap 16. 9. 2003 08:20
Nový
│
└ 
Re: Jaká je dnes nejlepší Free DB?
Mat 16. 9. 2003 08:51
Nový
│
 
└ 
Re: Jaká je dnes nejlepší Free DB?
lzap 16. 9. 2003 10:14
Nový
│
 
 
├ 
Re: Jaká je dnes nejlepší Free DB?
Pichi 16. 9. 2003 11:08
Nový
│
 
 
│
└ 
Re: Jaká je dnes nejlepší Free DB?
Michal Kucera 17. 9. 2003 12:02
Nový
│
 
 
│
 
└ 
Re: Jaká je dnes nejlepší Free DB?
Pichi 17. 9. 2003 15:30
Nový
│
 
 
│
 
 
└ 
Ale do toho MySQL ale je
Miloslav Ponkrác 17. 9. 2003 23:23
Nový
│
 
 
└ 
Fyzike razeni dat
Tomas Tintera 29. 9. 2003 12:54
Nový
├ 
Re: Jaká je dnes nejlepší Free DB?
Miloslav Ponkrác 16. 9. 2003 13:55
Nový
│
├ 
Re: Jaká je dnes nejlepší Free DB?
Michal Kubeček 16. 9. 2003 14:41
Nový
│
│
└ 
Firebird ...
Miloslav Ponkrác 17. 9. 2003 23:25
Nový
│
├ 
Re: Jaká je dnes nejlepší Free DB?
Pavel Cisar 16. 9. 2003 16:12
Nový
│
│
└ 
Re: Jaká je dnes nejlepší Free DB?
Miloslav Ponkrác 17. 9. 2003 23:25
Nový
│
└ 
Re: Jaká je dnes nejlepší Free DB?
Dan Ohnesorg 16. 9. 2003 16:49
Nový
│
 
├ 
Re: Jaká je dnes nejlepší Free DB?
Michal Kubeček 16. 9. 2003 17:18
Nový
│
 
└ 
FB/IB a Windows
Miloslav Ponkrác 17. 9. 2003 23:51
Nový
└ 
Re: Jaká je dnes nejlepší Free DB?
Pavel Stěhule 16. 9. 2003 18:15
Nový
 
└ 
Re: Jaká je dnes nejlepší Free DB?
petr andrs 16. 9. 2003 20:15
Nový
 
 
└ 
Re: Jaká je dnes nejlepší Free DB?
Pavel Stěhule 16. 9. 2003 21:27
Nový
 
 
 
└ 
Re: Jaká je dnes nejlepší Free DB?
Michal Kubeček 16. 9. 2003 21:37
Nový
Firebird pro Postgresistu
Pavel Stěhule 16. 9. 2003 08:19
Nový
└ 
Re: Firebird pro Postgresistu
Petr 16. 9. 2003 14:37
Nový
 
└ 
Re: Firebird pro Postgresistu
dip 16. 9. 2003 16:20
Nový
 
 
└ 
Re: Firebird pro Postgresistu
Cohen 16. 9. 2003 22:56
Nový
borland
hardcoder*ke 16. 9. 2003 08:41
Nový
├ 
Re: borland
Jakub Hegenbart 8. 11. 2004 11:32
Nový
└ 
Re: borland
NB 19. 3. 2006 01:52
Nový
Dve veci
Jerry 16. 9. 2003 09:33
Nový
├ 
Re: Dve veci
Pavel Cisar 16. 9. 2003 13:03
Nový
│
└ 
Re: Dve veci
Jerry 16. 9. 2003 15:44
Nový
│
 
├ 
Re: Dve veci
pha 16. 9. 2003 17:32
Nový
│
 
│
├ 
Re: Dve veci
Jerry 16. 9. 2003 17:53
Nový
│
 
│
└ 
Re: Dve veci
lzap 17. 9. 2003 11:15
Nový
│
 
└ 
Re: Dve veci
Miloslav Ponkrác 18. 9. 2003 00:10
Nový
│
 
 
└ 
Re: Dve veci
Jerry 18. 9. 2003 13:31
Nový
└ 
Re: Dve veci
Michal Kubeček 16. 9. 2003 13:04
Nový
Dokumentace
Miloš 16. 9. 2003 09:38
Nový
├ 
Re: Dokumentace
lzap 16. 9. 2003 10:38
Nový
│
└ 
Re: Dokumentace
Jakub Hegenbart 17. 9. 2003 15:26
Nový
└ 
Re: Dokumentace
vrana 17. 9. 2003 03:56
Nový
nejaky kultivovanejsi nastroj pro spravu
digri 16. 9. 2003 09:43
Nový
└ 
Re: nejaky kultivovanejsi nastroj pro spravu
Pavel Cisar 16. 9. 2003 10:40
Nový
 
└ 
Re: nejaky kultivovanejsi nastroj pro spravu
Petr Šimonek 17. 9. 2003 16:35
Nový
Zkušenosti
Marcel Svitalský 16. 9. 2003 10:07
Nový
└ 
Re: Zkušenosti
Karel Nagy 19. 9. 2003 14:50
Nový
Embedded verze
Karel Obluk 16. 9. 2003 10:20
Nový
└ 
Re: Embedded verze
lzap 16. 9. 2003 14:36
Nový
 
└ 
Re: Embedded verze
Michal Kubeček 16. 9. 2003 14:45
Nový
 
 
└ 
Re: Embedded verze
Ondra Nekola 17. 9. 2003 09:32
Nový
 
 
 
└ 
Re: Embedded verze
lzap 17. 9. 2003 11:20
Nový
Spokojenost
David 16. 9. 2003 10:57
Nový
A co sqlite?
Jan Kotek 16. 9. 2003 11:49
Nový
├ 
Re: A co sqlite?
Ferret 16. 9. 2003 12:19
Nový
├ 
Re: A co sqlite?
Pavel Cisar 16. 9. 2003 12:57
Nový
└ 
Re: A co sqlite?
lzap 16. 9. 2003 15:09
Nový
 
├ 
Re: A co sqlite?
Jan Kubik 16. 9. 2003 20:48
Nový
 
│
└ 
Re: A co sqlite?
Michal Kubeček 16. 9. 2003 21:56
Nový
 
│
 
└ 
Borland se mlátí do hlavy
Miloslav Ponkrác 17. 9. 2003 12:12
Nový
 
│
 
 
├ 
Re: Borland se mlátí do hlavy
lzap 17. 9. 2003 12:19
Nový
 
│
 
 
└ 
Re: Borland se mlátí do hlavy
Pavel Cisar 17. 9. 2003 12:43
Nový
 
│
 
 
 
└ 
Re: Borland se mlátí do hlavy
lzap 18. 9. 2003 09:38
Nový
 
│
 
 
 
 
└ 
Re: Borland se mlátí do hlavy
Michal Kubeček 18. 9. 2003 10:18
Nový
 
└ 
Re: A co sqlite?
Miloš 17. 9. 2003 09:58
Nový
 
 
└ 
Re: A co sqlite?
lzap 17. 9. 2003 11:25
Nový
Opravy/Doplnění
Hlipa 16. 9. 2003 12:40
Nový
├ 
Re: Opravy/Doplnění
lzap 16. 9. 2003 14:41
Nový
│
├ 
Re: Opravy/Doplnění
Hlipa 16. 9. 2003 16:03
Nový
│
└ 
Re: Opravy/Doplnění
Pavel Cisar 16. 9. 2003 16:06
Nový
└ 
Re: Opravy/Doplnění
Cohen 16. 9. 2003 23:04
Nový
udf
pf 16. 9. 2003 15:55
Nový
Rychlost DB
FredBred 16. 9. 2003 18:29
Nový
├ 
Re: Rychlost DB
Michal Kubeček 16. 9. 2003 19:26
Nový
└ 
Re: Rychlost DB
Jan Kubik 16. 9. 2003 20:37
Nový
 
└ 
Re: Rychlost DB
Pavel Stěhule 16. 9. 2003 21:42
Nový
 
 
├ 
Re: Rychlost DB
Michal Kubeček 16. 9. 2003 22:03
Nový
 
 
│
├ 
Re: Rychlost DB
Pavel Stěhule 16. 9. 2003 22:21
Nový
 
 
│
└ 
Re: Rychlost DB
lzap 17. 9. 2003 11:30
Nový
 
 
│
 
├ 
Re: Rychlost DB
nobody 17. 9. 2003 15:26
Nový
 
 
│
 
├ 
Re: Rychlost DB
pet 17. 9. 2003 16:45
Nový
 
 
│
 
└ 
Re: Rychlost DB
Michal Kubeček 17. 9. 2003 19:08
Nový
 
 
│
 
 
└ 
Re: Rychlost DB
lzap 18. 9. 2003 11:50
Nový
 
 
│
 
 
 
└ 
Re: Rychlost DB
Michal Kubeček 18. 9. 2003 17:36
Nový
 
 
└ 
Re: Rychlost DB
Jan Kubik 17. 9. 2003 14:10
Nový
 
 
 
└ 
Re: Rychlost DB
Pavel Stěhule 18. 9. 2003 09:48
Nový
divne prirovnanie
tibor 16. 9. 2003 22:46
Nový
└ 
Re: divne prirovnanie
mol 17. 9. 2003 00:16
Nový
 
├ 
Re: divne prirovnanie
lzap 17. 9. 2003 11:31
Nový
 
└ 
Re: divne prirovnanie
Marcel Svitalský 17. 9. 2003 12:01
Nový
Free DB s podporou cestiny a slovenciny
Jozef Hribik 17. 9. 2003 11:26
Nový
└ 
Re: Free DB s podporou cestiny a slovenciny
FredBred 17. 9. 2003 17:27
Nový
 
├ 
Re: Free DB s podporou cestiny a slovenciny
petr andrs 17. 9. 2003 21:16
Nový
 
│
└ 
Win x PostgreSQL
Miloslav Ponkrác 17. 9. 2003 23:51
Nový
 
│
 
└ 
Re: Win x PostgreSQL
petr andrs 18. 9. 2003 19:51
Nový
 
│
 
 
└ 
Re: Win x PostgreSQL
TomBA 20. 9. 2003 00:36
Nový
 
│
 
 
 
└ 
Re: Win x PostgreSQL
Miloslav Ponkrác 20. 9. 2003 16:05
Nový
 
├ 
Re: Free DB s podporou cestiny a slovenciny
Michal Aichinger 17. 9. 2003 21:30
Nový
 
├ 
Re: Free DB s podporou cestiny a slovenciny
lzap 18. 9. 2003 09:40
Nový
 
│
└ 
Re: Free DB s podporou cestiny a slovenciny
Jozef Hribik 18. 9. 2003 13:02
Nový
 
└ 
Re: Free DB s podporou cestiny a slovenciny
Pavel Stěhule 18. 9. 2003 09:50
Nový
 
 
└ 
Re: Free DB s podporou cestiny a slovenciny
Jozef Hribik 18. 9. 2003 13:17
Nový
 
 
 
└ 
Re: Free DB s podporou cestiny a slovenciny
FredBred 18. 9. 2003 19:11
Nový
 
 
 
 
└ 
Re: Free DB s podporou cestiny a slovenciny
lzap 19. 9. 2003 09:02
Nový
 
 
 
 
 
└ 
Re: Free DB s podporou cestiny a slovenciny
Jozef Hribik 19. 9. 2003 09:23
Nový
 
 
 
 
 
 
└ 
Re: Free DB s podporou cestiny a slovenciny
lzap 21. 9. 2003 15:18
Nový
Doplnění
Pepa 19. 9. 2003 08:37
Nový
├ 
Re: Doplnění
Jozef Hribik 19. 9. 2003 08:59
Nový
└ 
Re: Doplnění
Pavel Stěhule 19. 9. 2003 09:06
Nový
 
└ 
Re: Doplnění
Jozef Hribik 19. 9. 2003 09:36
Nový
 
 
└ 
Re: Doplnění
lzap 21. 9. 2003 15:13
Nový
 
 
 
└ 
Re: Doplnění
Jozef Hribik 22. 9. 2003 10:40
Nový
Instalace FireBirdu na Win
FredBred 25. 9. 2003 15:04
Nový
└ 
Re: Instalace FireBirdu na Win
lzap 29. 9. 2003 09:22
Nový
Linux na notebooku
Meli 12. 10. 2003 23:21
Nový
FireBird - UDF a dalsi
Laf Petr 25. 10. 2003 11:06
Nový
Import souboru z Access a Excel
Martin Mrazek 11. 11. 2003 15:20
Nový
Ako spustit script zo scriptu
Andrej Nagy 3. 1. 2005 15:47
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem