LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Výběr správné databáze

Jedním z největších současných trhů jsou databázová řešení. Jakou z FOSS databází zvolit pro projekt je komplexní otázka.

1.3.2007 06:00 | MaReK Olšavský | Články autora | přečteno 10903×

Přestože ještě před několika lety (asi tak 8-10) jsem se do práce s databázemi nikterak nehnal, jsou dneska mou hlavní obživou, ať již jako programátora aplikací, které využívají databázový backend, nebo jako člověka, který se snaží jednu velmi zajímavou pokud možno co nejlépe prozkoumat a předat dalším vědomosti o ní. Jsa člověk, který preferuje oss řešení, pozastavím se v tomto článečku u několika rozšířenějších databázových projektů.

MySQL

Pro řadu vývojářu se jedná o první SQL databázi, se kterou se seznámí. Často tomu není pro její kvality a funkce, které jsou v posledních verzích na dobré úrovni, ale pro její snadnost v používání a rozšířenost v učebnicích. Většina učebnic, jednoho z nejrozšířenějších programovacích jazyků, ale i kurzů, PHP se opírá právě o tento databázový backend.

Především z řad webových vývojářů je MySQL vnímáno jako rychlé úložiště textů, ještě v dobách nedávných diskvalifikované téměř nemožností používat kódování UTF-8. Do verze 4.1 jsem měl z této databáze podobný pocit. Verze 4.1 vyřešila problém s ukládáním různých kódových stránek a verze 5.0 přidala funkčnost, která server sice mírně zpomalila, ale zato ji přiblížila k těm velikým databázím. Tou funkčností je míněna podpora transakcí, ano, ty staré verze uměly, ale ne na svých nativních souborech, nýbrž napojením na jiné enginy (BerkeleyDB, InnoDB), kteréžto bridge nebyly nejpovedenější, stored procedur a triggerů.

Výkon této databáze bych velmi nerad hodnotil. Na jedné straně jsem viděl použití, kde byla velmi rychlá a dobře nasaditelná, ale bohužel jsem viděl nemálo nasazení, kde ji FbSQL v rychlosti řádově překonával, již v době, kdy MySQL nemělo nové vlastnosti, které ji zpomalili, ale možná to bylo způsobeno přístupem přes ODBC. I přes veškerou konfiguraci je nepříjemné poměrně znatelné ztrácení rychlosti při vyšším počtu připojených uživatelů a zatížení dotazy. Z jmenovaných, opravdu serverů, je tento pokles u MySQL nejznatelnější.

Kvalitní podpora existuje nejen pro PHP, ale i pro drtivou část ostatních programovacích jazyků. S PgSQL je srovnatelná kvalita dokumentace která je opravdu výborná a je velmi zajímavé a poučné sledovat články, které na stránkách MySQL vycházejí. Když jsem psal o PHP, tak je dobré vědět, že PHP má ze všech databází nejpropracovanější podporu právě pro MySQL, což je znát na výkonu.

Dnes je MySQL vyspělou datábází, kterou lze bez výrazných problémů nasadit téměř na libovolný systém, jen s mírně komplikovanou licencí. Nový engine Falcon, který píše Jim Starkey, dřívější vývojář Interbase/FirebirdSQL, slibuje výrazný pokrok ve všech směrech.

FirebirdSQL

FbSQL je velmi zajímavým kusem software. Pro spoustu lidí se jedná o databázi, která skvěle funguje pod MS Windows, nicméně, mám ji, k plné spokojenosti, otestovánu i na Linuxu. FbSQL vznikl forkováním Borlandí Interbase, o níž se jedovatě tvrdí, že je nejlépe ukrytým pokladem Borlandu, jelikož tento server Borland nikdy příliž nepropagoval, jejíž zdroové kódy byly otevřeny, nicméně Interbase je i nadále nabízena jako komerční produkt. Druhým forkem Interbase byl Yafill, který se vyznačoval větší rychlostí, než FbSQL, ale podstatně horší podporou a dokumentací. Ve verzi 1 byla FbSQL sice kvalitní databází, nicméně ne úplně nejoptimálnější pro větší projekty, ve verzi 1.5 nastalo značné zlepšení a verze 2.0, ve které jsou přimergeovány i části zdrojových kódů Yafilla, je na vysoké kvalitativní úrovni.

Bohužel pokud budete chtít tento server kompilovat pro jinou platformu, než je x86, budete mít trochu problémy. Silnou zbraní tohoto serveru je existence embedded verze, kdy nepotřebujete mít instalovaný celý server, ale pouze postačuje knihovna v místě, kde o ní Váš program bude vědět, dokonce jsou v této verzi podporovány i stored procedury. Databáze je velmi rychlá a stabilní, ale velká slabina je v dostupnosti a kvalitě dokumentace.

Především vývojáři v produktech Borlandu ocení nástroje, pro vývojová prostředí této firmy, které usnadňují spolupráci s tímto serverem. Existují však knihovny a podpora pro mnoho dalších jazyků, z vlastní zkušenosti mohu potvrdit, že podpora pro .NET a Javu je na slušné úrovni.

PostgreSQL

Rychlý a velmi efektivní databázový server, který sice je při malém zatížení pomalejší než FbSQL, nebo MySQL, ale jeho výkon pro jednotlivé uživatele a dotazy klesá s nárůstem zatížení podstatně pomaleji, než u jmenovaných konkurentů. PgSQL velmi přesně splňuje ANSI SQL normy.

Je šířen pod příjemnou BSD licencí. Od PgSQL existují i komerčně podporované verze, z nichž nejznámější jsou Mammoth PostgreSQL, či EnterpriseDB, z nichž ten druhý se chlubí kompatibilitou s Oraclem 8.x. Dokumentace je kvalitativně nesrovnatelná s FbSQL, prostě dokumentace k PgSQL by mohla sloužit jako inspirace pro mnohé další projekty. Pokud mohu hodnotit podporu knihoven, není problém pracovat s touto databází v mnoha programovacích jazycích. Vývojáři neocení jen dostupnost podpory z mnoha jazyků, ale i možnost psát stored procedury v jiných jazycích, než je nativní PL/SQL, například v perlu, pythonu, tcl, či, v podstatě nově, PHP.

Bohužel tento server není příliž oblíbený u začátečníků, protože první kroky v ní vyžadují větší použití mozku, než v případě MySQL. Obrovská možnostmi i podporou a ze všech databází bych ji preferoval nejvíce pro náročnější projekty. Bohužel, i přes své nesporné kvality, je pro webařinu spíše minoritní a je tak trochu oříškem najít hosting, který tento server nabízí, byť, naštěstí, se situace zlepšuje. Ano přiznávám, že v současnosti bych pro ní, v oss světě, stěží hledal konkurenta. Je to také ta databáze, do které se snažím co nejvíce proniknout a to co vím předat dále.

SQLite

SQLite není úplně opravdovou databází. Nejde o server, ale o malou knihovnu, která plní funkčnost velkých databází, ale na rozdíl od spousty podobných řešení umí SQL. Jedná se o embedded databázi v pravém slova smyslu, umí uložit data, updatovat, vymazat a vybrat, zvládá triggery a pohledy. A to je v podstatě vše :-). Především je malá, rychlá a kvalitní podporou v nejrůznějších programovacích jazycích. Já sám tímto řešením nahrazuji v udržovaných programech, psaných v Borland Delphi, starou a velmi obtížně vyhovující, manipulaci s několika dbf soubory.

SQLite3 má mnoho vylepšení, oproti SQLite2, zejména v lepší práci s Unicode, bohužel třeba PHP5 umí, bez doplnění o PDO, pracovat pouze se starší SQLite2. Díky PHP5, kde je SQLite zaintegrován, se toto databázové řešení dostalo do širšího povědomí a využívá jej stále více vývojářů. Všechny data i definice jsou uloženy v jediném souboru, který je pohodlně přenositelný kamkoliv a to dokonce bez ohledu na procesory, které fungují jako big endian, nebo little endian.

Další databáze

Tak a dalšími se tu zabývat nebudu, byť by to bylo zajímavé téma. Chtěl jsem postihnout jen několik apsektů v těch, které se využívají pro běžný vývoj. BerkeleyDB je prý nejrozšířenější databází na světě, protože se jedná o častý backend mnoha programů, ale neznám moc programátorů. kteří by ji používali v zákaznických řešeních, není „ovládána“ SQL příkazy, ale je vysoce ceněna pro své kvality, bohužel její budoucnost je nejasná kvůli odkoupení Oraclem. Programátoři na Java platformě se zasluhují o vývoj a rozšiřování databází jako je h2, db4o, či Apache Derby, tento výčet ale není ani zdaleka úplný.

Závěr

Tato drobná glosa si nenárokuje úplnost v přehledu, open source, databází, to ani zrealizovat nelze. Spíše jsem chtěl zrealizovat drobné zamyšlení nad některými pro a proti u těch 4 rozšířených databází, které se používají v komerčním i nekomerčním vývoji poměrně široce. Možnost vybrat si, co nasadíte, je neocenitelná, ale podle očekávaného zatížení a očekávané funkčnosti je třeba se zamyslet se nad vhodností výběru, byť za cenu, že se budete muset naučit něco nového.

Nezapomeňte, že každá, zde zmíněná databáze má trochu jinou filozofii a jiné podmínky nasazení. PgSQL, nebo FbSQL asi nebude příliž rozumné nasadit do míst, kde se často pžepisují údaje. MySQL má hlavní problém v uživatelích, kteří se k ní staví poněkudsi podivným způsobem a využívají stěží 5% možností. SQLite by nebylo rozumné nasadit do účetního systému, kde s jedněmi daty pracuje více uživatelů. Než se vybere databáze pro projekt, je důležité zvážit pro a proti, prostudovat dokumentace a netrvat na řešení, které znáte, protože nemusí vyhovovat.

Hledání správné databáze je podobná záležitost, jako hledání správné distribuce, očekávám, že pod tímto článkem bude zajímavá diskuze. Ale prosím diskuzi na úrovni, žádný flamewar!

Verze pro tisk

pridej.cz

 

DISKUZE

chybi mi tam SAPDB / MAXDB 1.3.2007 16:25 Johann von Nepomuk
L SAPDB nebrat 3.3.2007 12:43 Radim Kolář
  L Re: SAPDB nebrat 6.3.2007 12:53 Johann von Nepomuk
    |- Re: SAPDB nebrat 6.3.2007 14:03 Pavel Stěhule
    L Re: SAPDB nebrat 6.3.2007 15:57 Radim Kolář
      L Re: SAPDB nebrat 6.3.2007 20:44 Pavel Stěhule
Nasazení DB 2.3.2007 08:17 Petr Zajíc
L Re: Nasazení DB 2.3.2007 08:46 MaReK Olšavský
  L Re: Nasazení DB 2.3.2007 10:10 Ondřej Čečák
    |- Re: Nasazení DB 2.3.2007 10:26 Hynek (Pichi) Vychodil
    | |- Re: Nasazení DB 2.3.2007 12:19 Ondřej Čečák
    | | L Re: Nasazení DB 2.3.2007 16:42 Aleš Hakl
    | |   |- Re: Nasazení DB 2.3.2007 18:26 Pavel Stěhule
    | |   |- Re: Nasazení DB 3.3.2007 14:56 Jan Seifert
    | |   L MVCC v pgsql 3.3.2007 15:28 Radim Kolář
    | |     L Re: MVCC v pgsql 4.3.2007 22:05 Pavel Stěhule
    | L Re: Nasazení DB 2.3.2007 18:06 Pavel Stěhule
    L Re: Nasazení DB 2.3.2007 11:42 Jan Seifert
      L Re: Nasazení DB 2.3.2007 12:17 Petr Zajíc
        |- Re: Nasazení DB 2.3.2007 17:00 Aleš Hakl
        L MVCC v databazich 4.3.2007 11:36 Radim Kolář
          L Re: MVCC v databazich 4.3.2007 22:34 Pavel Stěhule
Pěkné... 9.3.2007 19:38 Lukáš Zapletal




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

17.4.2018 0:46 /František Kučera
Dubnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 4. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tématem tohoto srazu bude OpenStreetMap (OSM) aneb svobodné mapy.
Přidat komentář

16.3.2018 22:01 /František Kučera
Kulatý OpenAlt sraz v Praze oslavíme klasicky: u limonády a piva! Přijďte si posedět, dát si dobré jídlo a vybrat z mnoha piv do restaurace Kulový blesk, který najdete v centru Prahy nedaleko metra I. P. Pavlova na adrese Sokolská 13, Praha 2. Sraz se koná ve čtvrtek 22. března a začínáme v 18:00. Heslo: OpenAlt. Vezměte s sebou svoje hračky! Uvítáme, když si s sebou na sraz vezmete svoje oblíbené hračky. Jestli máte nějaký drobný projekt postavený na Arduinu, nějakou zajímavou elektronickou součástku, či třeba i pěkný úlovek z crowdfundingové akce, neváhejte. Oslníte ostatní a o zábavu bude postaráno.
Přidat komentář

13.2.2018 0:41 /František Kučera
Únorový pražský sraz OpenAltu se koná 15. 2. 2018 a tentokrát se vydáme na návštěvu do jednoho pražského datacentra. Sejdeme se v 17:50 v severovýchodní části nástupiště tramvajové zastávky Koh-I-Noor. Po exkurzi se přesuneme do restaurace U Pštrosa (Moskevská 49), kde probereme tradiční témata (svobodný software a hardware, DIY, CNC, SDR, 3D tisk…) a tentokrát bude k vidění i IoT brána od The Things Network.
Přidat komentář

11.2.2018 23:11 /Petr Ježek
Hledáte lehký a rychlý prolížeč PDF souborů? Pokud vás již omrzelo čekat na načítání stránek či jiné nešvary, zkuste xreader.
Přidat komentář

11.2.2018 20:35 /Redakce Linuxsoft.cz
Třetí ročník odborné IT konference na téma Cloud computing v praxi proběhne ve čtvrtek 1. března 2018 v konferenčním centru Vavruška, v paláci Charitas, Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00 hod. dopoledne do cca 16 hod. odpoledne. Konference o trendech v oblasti cloud computingu nabídne i informace o konkrétních možnostech využívání cloudů a řešení vybraných otázek souvisejících s provozem IT infrastruktury.
Přidat komentář

15.1.2018 0:51 /František Kučera
První letošní pražský sraz se koná již tento čtvrtek 18. ledna od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Vítáni jsou všichni příznivci svobodného softwaru a hardwaru, ESP32, DIY, CNC, SDR nebo dobrého piva. Prvních deset účastníků srazu obdrží samolepku There Is No Cloud… just other people's computers. od Free Software Foundation.
Přidat komentář

14.11.2017 16:56 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tradičně první čtvrtek před třetím pátkem v měsíci: 16. listopadu od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.11.2017 11:06 /Redakce Linuxsoft.cz
PR: 4. ročník odborné IT konference na téma Datová centra pro business proběhne již ve čtvrtek 23. listopadu 2017 v konferenčním centru Vavruška, v paláci Charitas, Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00. Konference o návrhu, budování, správě a efektivním využívání datových center nabídne odpovědi na aktuální a často řešené otázky, např Jaké jsou aktuální trendy v oblasti datových center a jak je využít pro vlastní prospěch? Jak zajistit pro firmu či jinou organizaci odpovídající služby datových center? Podle jakých kritérií vybrat dodavatele služeb? Jak volit součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně spravovat datové centrum? Jak eliminovat možná rizika? apod.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

20.2.2018 18:48 / Ivan Majer
portal

20.2.2018 15:57 / Jan Havel
Jak využíváte služby cloudu v podnikání?

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze