LinuxovΘ noviny | Duben 1998 | ||||||||||
| |||||||||||
P°ed Φasem jste jist∞ zaznamenali, ╛e jsem v linuxovΘ konferenci hledal spoluautory pro Φlßnek o databßzφch pod Linuxem. Nakonec jsme se se╣li t°i a p°edßvßme na╣e zku╣enosti s databßzemi, kterΘ pou╛φvßme. Nebudeme se zde zmi≥ovat o databßzi ADABAS, kterß byla podrobn∞ popsßna v prosincovΘm Φφsle Linuxov²ch novin a databßzi ORACLE, kterou lze sice na Linuxu ·sp∞╣n∞ provozovat, ale nepoda°ilo se mi sehnat n∞koho, kdo by o nφ n∞co napsal a navφc se jednß o databßzi, kterß p°ece jen trochu vyboΦuje ze zßb∞ru v∞t╣iny linuxov²ch u╛ivatel∙. NicmΘn∞ toto zcela jist∞ nenφ poslednφ Φφslo Linuxov²ch novin a tak se k tomuto jist∞ zajφmavΘmu tΘmatu je╣t∞ vrßtφme.
Pro ty z nßs, kte°φ hledajφ databßzov² software, kter² je opravdu free, tj. nejen pro samotnΘ u╛ivßnφ, ale i pro p°φpadnou distribuci za ·platu, se nabφzφ PostgreSQL http://www.postgresql.org. Tato robustnφ implementace standardu SQL-92 umφ zpracovat dotazy obsahujφcφ relace mezi jednotliv²mi tabulkami. Je pod aktivnφm v²vojem a ka╛dß novß verze mß blφ╛ k ·plnΘ implementaci standardu. Ji╛ nynφ je implementace standardu tΘm∞° kompletnφ, a navφc PostgreSQL obsahuje n∞kterß roz╣φ°enφ, se kter²mi standard nepoΦφtß, nap°. u╛ivatelem definovanΘ datovΘ typy, funkce a inheritance. PostgreSQL je postaven na principu klient-server, nebo front-end/back-end. Back-end v p°φpad∞ PostgreSQL je program, kter² be╛φ jako daemon a zpracovßvß SQL-dotazy, kterΘ mohou p°ichßzet i po sφti TCP/IP. Back-end PostgreSQL je schopen obslou╛it jak vφce databßzφ, tak vφce u╛ivatel∙ najednou. Distribuce PostgreSQL obsahuje i jednoduch² front-end psql, co╛ je takov² p°φkazov² °ßdek, p°es kter² lze zadßvat holΘ SQL dotazy a prohlφ╛et si jejich v²stup. Velmi d∙le╛itou souΦßstφ distribuce PostgreSQL je libpq, co╛ je knihovna funkcφ umo╛≥ujφcφ psanφ front-end∙ k databßzφm. Pomocφ tΘto knihovny lze vyvφjet programy v jazyce C, kterΘ komunikujφ p°φmo s PostgreSQL back-endem. Pro ty, kte°φ umφ programovat v jazyce C p°edstavuje tato knihovna spolu s PostgreSQL back-endem mocn² nßstroj pro v²voj v╣ech druh∙ databßzov²ch aplikacφ. Pro ty, kte°φ v cΘΦku neprogramujφ, existuje °ada jin²ch rozhranφ, nap°. knihovna jazyka Perl, nßstroje pro integraci s WWW a jinΘ. Pro ty, kte°φ neumφ nebo necht∞jφ zφskat PostgreSQL kompilacφ zdrojovΘho k≤du, existujφ PostgreSQL balφky s binßrkami pro populßrnφ distribuce Linuxu.
MiniSQL (dßle jen mSQL) vytvo°il David J. Hughes (bambi@Hughes.edu.au) z Austrßlie. Tato verze je ji╛ pon∞kud star╣φho data - leden 1996. Voln∞ pou╛φvat jej mohou pouze studenti, vzd∞lßvacφ nekomerΦnφ instituce, nev²d∞leΦnΘ a charitativnφ organizace a nekomerΦnφ v²zkumnß st°ediska. Ostatnφ musφ zaplatit registraΦnφ poplatek (pro zajφmavost: pro privßtnφ pou╛itφ 65 austr. dolar∙, pro komerΦnφ 225 austr. dolar∙). Dal╣φ ╣φ°enφ produktu (nap°. jako souΦßst nov∞ vytvo°enΘho programu) je povoleno pouze s v²slovn²m pφsemn²m povolenφm Hughes Technologies. DistribuΦnφ balφk se "rozzipuje" a "roztaruje" do adresß°e /usr/local/Minerva (implicitn∞ nastaveno). Nachßzφ se zde adresß° doc s dokumentacφ v PostScriptu, a adresß°e include a lib pro zakomponovßnφ balφku do na╣φ aplikace. ╚asem zde je╣t∞ p°ibude adresß° msqldb, kde budou ulo╛eny v╣echny databßze, kterΘ tφmto balφkem budeme spravovat. Podrobn∞ji se budeme zab²vat adresß°em bin ve kterΘm se nachßzφ n∞kolik spustiteln²ch program∙: msql, msqld, msqladmin, msqldump, relshow. Chovßnφ balφku lze samoz°ejm∞ konfigurovat. Pokud by n∞komu nevyhovoval adresß° /usr/local/Minerva, m∙╛e si balφk nainstalovat do p°ijateln∞j╣φho adresß°e, pak je ale zapot°ebφ nastavit prom∞nnou MSQL_HOME. Kdyby byly problΘmy se sφtφ, lze je╣t∞ nastavit bu∩ /etc/services, nebo prom∞nnΘ prost°edφ MSQL_TCP_PORT, MSQL_UNIX_PORT a MSQL_HOST. Monitorovat Φinnost "mSQL Engine" lze nastavenφm prom∞nnΘ MINERVA_DEBUG:
Tyto re╛imy lze kombinovat, pak se ale musφ mezi jednotliv²mi slovy napsat dvojteΦka. Nap°:
setenv MINERVA_DEBUG api:query Poj∩me si nynφ popsat slφbenΘ programy:
V╣echny tyto programy (krom∞ dΘmona) lze spou╣t∞t s parametrem -h Host, kter²m se p°ipojφte k databßzovΘmu serveru na jinΘm poΦφtaΦi. U program∙ msql a msqldump se v╛dy musφ zadat jmΘno databßze, se kterou chceme pracovat. Jeliko╛ je prßce s msql celkem neohrabanß, je lep╣φ (zvlß╣t∞ pokud pot°ebujete zadat vφce dotaz∙ najednou) si tyto napsat do textovΘho souboru a tento potom p°esm∞rovat programu msql na vstup. Zde je nutno podotknout, ╛e jednotlivΘ SQL dotazy je nutno odd∞lit znaky \g (p°φkaz v programu pro provedenφ - go - dotazu). Existuje nadstavba programu msql pro prost°edφ X-Window, kterß se p°ekvapiv∞ jmenuje xmsql.
![]() Jazyk SQL (v dokumentaci deklarovßn jako ANSI SQL) je podle mΘho nßzoru na dne╣nφ dobu celkem chud². DatovΘ typy pou╛itelnΘ v klauzuli CREATE TABLE:
Za jednotliv²mi typy lze je╣t∞ uvΘst not null nebo primary key. Lze pracovat s konstrukcemi CREATE TABLE, DROP TABLE, INSERT INTO, DELETE FROM, UPDATE. Konstrukci SELECT si popi╣me podrobn∞ji, nejd°φve uvedeme syntaxi:
SELECT [DISTINCT] [table.]column \ [, [table.]column]* FROM table [= alias] [, table [= alias]]* [ WHERE [table.]column OPERATOR VALUE \ [ AND | OR [table].column \ OPERATOR VALUE]* ] [ ORDER BY [table.]column [DESC] \ [, [table.]column [DESC]]* ]
V²raz v hranat²ch zßvorkßch je nepovinn².
Nelze pou╛φt nested functions (vlo╛enΘ funkce - sum(), count()), join (spojenφ tabulek), views (pohledy) a nested queries (vlo╛enΘ dotazy). Kontrola p°φstupu se nastavuje v textovΘm souboru msql.acl, kter² se nachßzφ v /usr/local/Minerva (nebo v MSQL_HOME). Zde se pro jednotlivΘ databßze nastavujφ prßva pro Φtenφ, zßpis apod. P°ed drahnou dobou jsem Φetl v linuxovΘ konferenci, ╛e tuto kontrolu lze velice snadno obejφt. Proto╛e ale nemßm pat°iΦnΘ crackerskΘ (nebo hackerskΘ ?) znalosti, tak nemohu posoudit. V dokumentaci je celkem podrobn∞ probrßno napojenφ na server z jazyka C. Informace o napojenφ z ESL, Perl 5, Python, Tcl jsou strohΘ, jsou zde pouze uvedeny adresy v²robc∙ a nßzvy jednotliv²ch podp∙rn²ch modul∙. Tabulka, kde je kolem 14830 zßznam∙ a 5 sloupc∙ typu int, zabφrß na disku n∞co p°es 385 kB (14830 · 20 = 296600). ╪ekl bych, ╛e nßklady na re╛ii jsou celkem vysokΘ, zvlß╣╗ kdy╛ v tabulce neexistuje primßrnφ klφΦ. V konferenci n∞kdo porovnßval rychlosti mSQL a MySQL. Balφk mSQL byl pomalej╣φ. Z v²╣e uveden²ch skuteΦnostφ a absence trigger∙, procedur, zamykßnφ zßznam∙ apod. vypl²vß, ╛e balφk mSQL se hodφ pouze do soukromΘho pou╛itφ, kde budou relativn∞ malΘ tabulky v databßzi a tabulky na sob∞ nebudou hodn∞ zßvislΘ. Jako klady bych vyzvedl snadnou instalaci a relativn∞ mßlo zabranΘho mφsta na disku. Jß osobn∞ pou╛φvßm mSQL jako back-end v programu na vyhodnocenφ odpov∞dφ student∙ v anket∞ o studiu. Jako front-end mi slou╛φ aplikace napsanß v C. Za celou dobu provozu (zhruba rok a p∙l) nebyl s mSQL ╛ßdn² problΘm (Pozn. redakce: s tφmto tvrzenφm bych si dovolil nesouhlasit. M∙╛u dolo╛it v²stupem p°φkazu grep mpolak ~/Mail/Archive/Received* :-). V tabulkßch jsou °ßdov∞ stovky zßznam∙, vyjφmkou jsou tabulky odpov∞dφ, kde je v ka╛dΘ kolem 15000 zßznam∙. JedinΘ, co bych cht∞l reklamovat u v²robce, je skuteΦnost, ╛e se mi nepovedla vytvo°it tabulka s nßzvem del╣φm ne╛ asi 20 znak∙. Mo╛nß je to souΦßst n∞jakΘho standardu, nevφm.
P°φli╣ restriktivnφ licence mSQL a ╣patnß srozumitelnost jeho k≤du byla trnem v oku skupin∞ programßtor∙ pod vedenφm Michaela "Montyho" Wideniuse, Davida Axmarka a Kima Aldala. Proto se rozhodli vytvo°it novΘ mSQL se stejn²m rozhranφm, ale mnohem dokonalej╣φm front-endem a back-endem. MySQL mß tedy mnoho spoleΦnΘho s mSQL a existujφ nßstroje pro upgrade z mSQL na MySQL, jak na ·rovni p°enosu dat tak na ·rovni ekvivalentnφch knihoven, jejich╛ pou╛itφ p°edpoklßdß v b∞╛n²ch p°φpadech pouze pou╛itφ jinΘho hlaviΦkovΘho souboru a jinΘho linkovacφho parametru. MySQL p°esto nenφ pod GNU licencφ, jak by mo╛nß n∞kdo po p°eΦtenφ p°edchozφho odstavce oΦekßval. Licence je pon∞kud slo╛it∞j╣φ. Program se pro jejφ ·Φely d∞lφ na klientskou Φßst, kterß je pod GPL licencφ a server samotn², kter² je voln∞ ╣i°iteln², ale nesmφ b²t prodßvßn a nesmφ b²t pou╛it jako integrßlnφ souΦßst komerΦn∞ prodßvan²ch produkt∙. Pokud mß n∞kdo takovΘto ambice (a mnoho takov²ch se najde) musφ si zakoupit komerΦnφ verzi serveru. Ta mß v²hodu v tom, ╛e obsahuje n∞kterΘ funkce, kterΘ ve voln∞ ╣i°itelnΘ verzi nejsou. V souΦasnΘ dob∞ se ale jednß pouze o mo╛nost pracovat s komprimovan²mi databßzemi. V p°φpad∞ zßjmu si u╛ivatelΘ mohou zakoupit placenou technickou podporu. Ta obsahuje mnoho stup≥∙, od zodpovφdßnφ e-mailov²ch dotaz∙, a╛ po vzdßlenou administraci systΘmu a nßv╣t∞vy v²vojß°∙ u zßkaznφk∙. Nechci nikoho zrazovat od finanΦnφ podpory autor∙, ale musφm konstatovat, ╛e kdy╛ jsem upgradoval na RedHat Linux 4.9 a MySQL p°estalo fungovat, Monty problΘm vy°e╣il asi po p∞ti dopisech za 4 hodiny a to ╛ßdnou podporu zaplacenou nemßm. (Jednalo se jak mo╛nß mnozφ tu╣φ o prvnφ verzi RedHatu s glibc2, tehdy se MySQL rozb∞hlo po zakomentovßnφ n∞kolika funkcφ v hlaviΦkov²ch souborech. Dnes si s glibc2 rozumφ, ale po╛aduje nejnov∞j╣φ verzi z RedHat/upgrade.) Pro srovnßnφ nßklady jsou takovΘto: server pro komerΦnφ vyu╛itφ a jednoho u╛ivatele 200$, server pro komerΦnφ vyu╛itφ a deset u╛ivatel∙ 1500$, placenß podpora - zßkladnφ verze 200$ na rok, placenß podpora nejkomfortn∞j╣φ 5000$ na rok (obsahuje vyhotovenφ specißlnφch dotaz∙ typu SELECT m∙j_vzoreΦek(prvnφ sloupec, druh² sloupec) FROM databßze; v jednotkßch hodin, prßvo po╛adovat specißlnφ ·pravy serveru, instalace u zßkaznφka a mnohΘ dal╣φ). Zßv∞rem snad jen tolik, ╛e auto°i slibujφ, ╛e po dokonΦenφ dostateΦn∞ dokonalΘ verze (podle jejich subjektivnφho nßzoru) budou v╣echny p°edchozφ uvoln∞ny pod nßzvem GNU MySQL pod GNU GPL licencφ. Pro tu dokonalou verzi z∙stane v platnosti omezenφ prodeje a integrace do vlastnφch produkt∙, do tΘ doby ne╛ bude je╣t∞ dokonalej╣φ verze. Kolik databßze m∙╛e stßt u╛ tedy vφme a te∩ se podφvßme co umφ. Je toho opravdu hodn∞. Nebudu zde zmi≥ovat ani zdaleka v╣echny mo╛nosti, jist∞ si je prohlΘdnete na adrese http://www.tcx.se. Za zßkladnφ pova╛uji podporu nßsledujφcφch operaΦnφch systΘm∙
MySQL je multithreadovou aplikacφ, proto dokß╛e vynikajφcφm zp∙sobem rozklßdat zßt∞╛ na vφce procesor∙. Podpora kompletnφ normy ANSI SQL 92 s vyjφmkou vlo╛en²ch procedur, trigger∙, cizφch klφΦ∙, pohled∙ (views) a transakcφ. (Vysv∞tlenφ toho proΦ MySQL neumφ transakce zabφrß n∞kolik odstavc∙ v dokumentaci, zhruba takto: databßze bez transakcφ je 3x rychlej╣φ a v∞t╣inu v∞cφ lze °e╣it alternativnφ cestou p°es zamykßnφ tabulek.) NicmΘn∞ mi transakce schßzejφ a jsou z°ejm∞ nejpßdn∞j╣φm d∙vodem, proΦ se MySQL prosazuje p°edev╣φm v oblasti prohlφ╛enφ dat statiΦt∞j╣φho charakteru. Mnozφ jist∞ namφtnou, ╛e transakce jsou pot°eba p°edev╣φm tam, kde operaΦnφ systΘm, na kterΘm databßzov² server b∞╛φ, neposkytuje dostateΦnou stabilitu, ale p°esto je databßzovΘ programovßnφ s transakcemi sna╛╣φ, srovnal bych to s vyjφmkami v C. MySQL mß urΦitΘ omezenφ v konstrukcφch pou╛φvajφcφch OUTER JOINs, nap°. nemß v∙bec implemetovßn FULL OUTER JOIN. Be╛nΘ dotazy ale takovΘ speciality stejn∞ nepou╛φvajφ. Naopak navφc oproti norm∞ SQL 92 mß mnoho matematick²ch funkcφ, nastavovßnφ parametr∙, aliasy pro mnoho funkcφ, tak aby syntaxe byla kompatibilnφ s co nejv∞t╣φm poΦtem databßzφ, automatickΘ generovßnφ ID a porovnßvßnφ pomocφ regulßrnφch v²raz∙. Dß se p°edpoklßdat, ╛e pokud umφte psßt SQL dotazy pro ORACLE, INFORMIX Φi INTERBASE, MySQL jim porozumφ. Proto╛e mßte k dispozici bohat∞ komentovanΘ zdrojovΘ texty nenφ problΘm si dopsat dal╣φ specißlnφ funkce. Pro funkce matematickΘho typu existuje unifikovanΘ rozhranφ. Jak pravφ manußl:
P°i b∞hu voliteln∞ vytvß°φ isamlog, ze kterΘho je mo╛nΘ rekonstruovat po╣kozenou databßzi, p°φpadn∞ provΘst p°φkazy od poslednφ zßlohy znovu. Krom∞ BLOBu neomezenΘ velikosti (tedy omezenΘ velikostφ dostupnΘ pam∞ti) mß typ TEXT se stejn²mi vlastnostmi, ale p°i porovnßvßnφ v poli typu TEXT se ignoruje velikost pφsmen. A v neposlednφ °ad∞, MySQL mß dota╛enou podporu Φe╣tiny. Nejen, ╛e vypisuje (samoz°ejm∞ jen pokud si p°ejete) hlß╣enφ o proveden²ch akcφch Φesky, ale umφ porovnßvat ΦeskΘ v²razy u v²b∞rov²ch kritΘriφ bez ohledu na velikost pφsmen a t°φdφ maximßln∞ algoritmizovateln∞ v∞rn∞ podle platnΘ ╚SN s respektovßnφm specifik pφsmenka ch. JedinΘ co musφte ud∞lat je p°i p°ekladu p°idat parametr
./configure -with-charset=czech Ale to stßle nenφ v╣echno, MySQL intern∞ pracuje v ISO-8859-2, ale klient m∙╛e pou╛φvat jinΘ k≤dovßnφ. «ßdn² problΘm - staΦφ zadat set character set cp1250_latin2 (v jinΘ verzi m∙╛e b²t i cp1250_il2) a klient se serverem komunikuje v cp1250. Tato mo╛nost zatφm nenφ podchycena jako parametr na p°φkazovΘ °ßdce p°i konfiguraci a tak je nutnΘ v .../src/sql/convert.cc zru╣it komentß°, kter² blokuje #define DEFINE_ALL_CHARACTER_SETS. Ve verzi 3.21.26-gamma je je╣t∞ chybiΦka, z°ejm∞ vypadlo n∞kolik °ßdek z patche, a tak p°epφnanφ charset∙ ·pln∞ nefunguje. P°edpoklßdßm, ╛e v dob∞ kdy budete Φlßnek Φφst, bude v╣e opravenΘ. V blφzkΘ dob∞ bude uvoln∞na verze 3.21.30, kterß bude mφt ve standardnφ distribuci jak pln∞ funkΦnφ p°ek≤dovßvßnφ znakov²ch sad na stran∞ serveru, tak drobnΘ opravy v konstrukci SELECT LIKE p°i pou╛itφ Φe╣tiny. Monty °φkß:
(T°φd∞nφ Monty ned∞lal, je to dφlo zlat²ch Φesk²ch ruΦiΦek. Nebudu jmenovat, nerad bych na n∞koho zapomn∞l). Pro MySQL existuje podpora ODBC, tedy ODBC ovladaΦe pro Windows (pouze 95 a NT), JDBC a samoz°ejm∞ sdφlenß knihovna libmysqlclient, kterou m∙╛e pou╛φt libovoln² program napsan² v jazyce C. Dßle jsou dostupnΘ knihovny pro Perl a Python. Server komunikuje s klientskou Φßstφ dv∞ma zp∙soby, bu∩ p°ed socket, nebo po sφti. Druhou variantu lze potlaΦit parametrem p°i startu dΘmona. Databßze jsou p°ed neoprßvn∞nou manipulacφ zaji╣t∞ny soustavou p°φstupov²ch prßv. Prßva se p°id∞lujφ ve t°ech stupnφch: na stroj, ze kterΘho se u╛ivatel p°ihla╣uje, databßzi a tabulku v databßzi. Jednß se o b∞╛nß prßva jako Φtenφ, zßpis, p°idßnφ, vytvo°enφ tabulky, restart serveru, v²pis b∞╛φcφch ·loh a podobn∞. Stejn∞ jako u mSQL nenφ tato ochrana nepr∙st°elnß, neprovßdφ se ╛ßdnΘ ╣ifrovßnφ dat, tak╛e p°i zφskßnφ fyzickΘho p°φstupu, mohou b²t data odnesena. Nenφ takΘ problΘm podvrhnout serveru jinou databßzi u╛ivatelsk²ch prßv. Op∞t to ale vy╛aduje fyzick² p°φstup k disku a prßvo na restart serveru, ten toti╛ prßva Φte jen jednou p°i startu nebo restartu. Hesla samotnß jsou v databßzi ulo╛ena v ╣ifrovanΘ podob∞ a stejn∞ tak ka╛d² klient obsahuje ╣ifrovacφ engine, tak╛e hesla se po sφtφ nep°enß╣ejφ, nebo alespo≥ ne v otev°enΘ podob∞. DΘmon se mß startovat dßvkou safe_mysqld, kterß se sna╛φ odhalit b∞╛nej╣φ podvody se symlinky a provßdφ n∞kolik dal╣φch kontrol. Pro import a export soubor∙ existuje n∞kolik nßstroj∙. Zßkladnφ je mo╛nost exportovat data ve formßtu SQL p°φkaz∙ do souboru. Ale existuje i konverznφ program z a do DBF soubor∙, nebo mo╛nost Φφst a zapisovat data do soubor∙ typu comma delimited.
![]() Pro administraci a prohlφ╛enφ dat existujφ XovΘ nßstroje. Sice umo╛≥ujφ komfortnφ nastavovßnφ prßv klikßnφm my╣φ, ale nevynikajφ prßv∞ rychlostφ (to ale bude zajφmat jen majitele 486). Stejn² komfort na p°φkazovΘ °ßdce poskytuje mysqladmin, kter² krom∞ zaklßdßnφ a ru╣enφ databßzφ zobrazuje stav serveru, obsazenφ pam∞ti a poΦet vy°φzen²ch po╛adavk∙. Struktura databßzφ se dß zobrazit p°es mysqlshow. Kdy╛ se stane, ╛e server nedokß╛e databßzi po v²padku otev°φt, lze ji opravit programem isamchk, na╣t∞stφ jsem jej ale nikdy nepot°eboval. Velikost databßzφ je omezena jen velikostφ disku. Auto°i uvßdφ, ╛e nejv∞t╣φ implementace b∞╛φ nad 50 000 000 zßznamy bez nejmen╣φho zavßhßnφ. Zßv∞rem zmφnφm n∞kolik produkt∙, kterΘ s MySQL ·zce souvisφ. Na prvnφm mφst∞ musφ jist∞ b²t scriptovacφ jazyk pro tvorbu dynamick²ch WWW strßnek PHP/FI, kter² naleznete na adrese http://www.php.net. Tento program existuje ve dvou verzφch, 2.x a 3.x, kterΘ se li╣φ syntaxφ a p°edev╣φm pou╛it²m jazykem. ╪ada 3.x byla p°epsßna do C++. FunkΦn∞ jsou zatφm stejnΘ, ale 2.x nemß asi budoucnost, proto se pro novΘ implementace doporuΦuje 3.x. Trojkovß °ada v╣ak zavßdφ komfort v generovßnφ dynamick²ch stran nevφdan². Existujφ v nφ dokonce objekty a d∞diΦnost. Obsahuje moduly pro zobrazenφ zdrojovΘho k≤du strßnek s obarvovßnφm a mnoho, mnoho dal╣φho zajφmavΘho. Zcela jist∞ se k PHP/FI vrßtφme v p°φ╣tφch Φφslech. O n∞co mΘn∞ dokonal² (podle mne) je WWW-SQL na adrese http://www.daa.com.au/~james/www-sql/, pro n∞koho v╣ak m∙╛e b²t p°φjemnΘ, ╛e se syntaxφ p°ibli╛uje ASP z Windows NT. O totßlnφ zp°φstupn∞nφ databßze na Internetu se sna╛φ WDB z adresy http://www.lava.net/beowulf/programming/wdb/, produkt se mi moc lφbφ, bohu╛el v balφku omylem chybφ jedna Φßst a autor nestihl dodat opravu. Jednß se v zßsad∞ o formulß°e p°φstupnΘ p°es WWW rozhranφ s b∞╛nou funkΦnostφ, tedy zobrazenφ, ·pravy, vklßdßnφ nov²ch, definice filtr∙ a podobn∞. Mo╛nß se k WDB vrßtφme v p°φ╣tφch Φφslech. Velmi zajφmav² je internetov² obchodnφ d∙m pou╛ivajφcφ MySQL a PHP/FI na adrese http://www.minivend.com/minivend/. Pro ·plnost je nutnΘ dodat, ╛e v²╣e zmφn∞nΘ produkty lze p°ipojit i na PostgreSQL. MySQL mß ale o n∞co men╣φ pam∞╗ovΘ nßroky. Dßle existujφ podpory pro BIND, kdy BIND v rozsßhl²ch sφtφch pou╛φvß extrΘmn∞ rychlΘ vyhledßvacφ stromy implementovanΘ v MySQL, podpora pro autentizaci u╛ivatel∙ a logovßnφ p°φstup∙ na server APACHE, fulltextovΘ vyhledßvacφ nßstroje (bohu╛el dostupnΘ jen v angliΦtin∞ a dßn╣tin∞, vzhledem k tomu, ╛e obsahujφ databßze synonym a podobnΘ vymy╣lenosti je jejich portovßnφ na Φe╣tinu extrΘmn∞ obtφ╛nΘ). A mnohΘ dal╣φ. Mo╛nß jsem vßs p°esv∞dΦil, ╛e MySQL si trochu pozornosti zaslou╛φ. P°i rychlosti jakou nabφrß novΘ mo╛nosti a funkce aspiruje na nejroz╣φ°en∞j╣φ databßzi v∙bec. ProblΘm free software je samoz°ejm∞ v tom, ╛e nenφ znßm poΦet jeho u╛ivatel∙, tak╛e a╛ tento okam╛ik nastane, tak to nikdo nepoznß. Pokud plßnujete zve°ej≥ovßnφ dat na internetu, rozhodn∞ si na MySQL ve spojenφ s PHP najd∞te chvilku Φasu. Pro ty, kte°φ si nedovedou ╛ivot p°edstavit bez FrontPage: PHP 3.0 s nφ dokß╛e pracovat, resp. pou╛φvß takovΘ znaΦky, kterΘ FrontPage nezniΦφ. Sice zatφm nejsou ΦeskΘ binßrky, ale p°eklad netrvß na pentiφch dΘle ne╛ hodinu.
Zßv∞remKterß je tedy vlastn∞ nejlep╣φ? T∞╛ko °φci, stejn∞ jako ve velk²ch databßzφch typu ORACLE, INFORMIX Φi DB2, ka╛d² mß svΘho favorita, na kterΘho nedß dopustit. V²vojß°i spolu sout∞╛φ jak ve spolehlivosti, tak rozsahu poskytovan²ch funkcφ a tak jakΘkoliv dnes provedenΘ srovnßnφ nemusφ za m∞sφc s p°φchodem dal╣φ verze souhlasit. M²m osobnφch favoritem je, jak jste si jist∞ v╣imli, MySQL. P°esto╛e nenφ a╛ tak ·pln∞ free vφt∞zφ p°edev╣φm podporou Φe╣tiny.![]() |