LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> 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 13558×

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ů

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

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

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

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