Web s otvoreným zdrojom

Každý vie, že Apache je webový server s otvoreným zdrojom, ale existuje oveľa viac možností. Napríklad v systéme Windows si môžete vybrať server, ako je Savant, pretože je jednoduchší na konfiguráciu a používanie v porovnaní s niečím ako Apache a oveľa jednoduchší ako IIS. Takáto alternatíva vás môže zaujímať, ak nepotrebujete alebo nechcete plný výkon Apache alebo IIS. Niektorým aplikáciám, ako sú CMS, je najlepšie spustiť ich vlastné samostatné webové servery, takže sa môže stať, že spustíte zabalenú verziu niečoho iného. Dotkli sme sa tu len množstva dostupných balíkov s otvoreným zdrojom, ktoré vám pomôžu vytvárať webové stránky. Nespomenuli sme ani všetky balíky, ktoré implementujú konkrétne časti online funkcií; existuje napríklad veľa systémov nástenky (PC Pro používa balík phpBB s otvoreným zdrojovým kódom), nákupných košíkov a balíkov elektronického obchodu – prakticky všetko, čo by ste kedy mohli potrebovať na podnikanie online.

Web s otvoreným zdrojom

Čo je to relačná databáza?

Pred niekoľkými problémami sme napísali článok o dvoch najznámejších open-source SQL databázach MySQL a PostgreSQL. Povedali sme, že v našej prezentácii existuje možnosť zaujatosti voči MySQL, pretože ju používame viac ako PostgreSQL, a ak si myslíte, že došlo k zaujatosti, mali by ste nás kontaktovať, aby sme to uviedli na pravú mieru. Boli sme kontaktovaní, ale nie kvôli zaujatosti pri výbere databáz – hlavným cieľom komentárov bola otázka, či vieme, čo je to vlastne relačný databázový systém…

Očividne si myslíme, že vieme, čo je relačný databázový systém, ale stojí za zmienku, že existujú dve „pracovné“ definície. Prvý je založený na niečom, čo sa nazýva Coddove zákony. Ted Codd bol do značnej miery otcom relačných databáz, pretože to bola jeho pôvodná práca o relačnej algebre. Táto základná práca stanovuje 12 pravidiel, ktoré definujú, aké vlastnosti musí mať databáza, aby bola klasifikovaná ako relačná. (Podľa niektorých počtov existuje 13 pravidiel, keďže definoval aj nulové pravidlo.) Toto nie je miesto na uvedenie všetkých pravidiel (dobrú prezentáciu nájdete na http://en.wikipedia.org/wiki/Codd’s_12_rules), ale ak ste použili relačnú databázu, môžete vidieť, že tieto pravidlá predstavujú abstraktne to, čo ste používali. Ďalšia definícia toho, čo obsahuje relačný databázový systém, je založená na definícii produktu: v podstate každý databázový systém je relačný, ak podporuje väčšinu štandardov jazyka SQL.

Druhá z týchto dvoch definícií je pravdepodobne bežnejšia a tá, s ktorou by bola väčšina ľudí spokojná – pre väčšinu ľudí, ak databáza podporuje SQL, potom je relačná. Coddove pravidlá sú však dôležité a je žiaduce ich dodržiavanie. Napríklad, v skratke, štvrté pravidlo hovorí, že na dopytovanie údajov by sa mal použiť rovnaký jazyk na dopytovanie údajov ako na správu štruktúr v samotnom databázovom systéme. Toto je možné vidieť v niektorých databázových systémoch, ktoré majú katalógové tabuľky, ktoré hovoria, čo všetky tabuľky sú. Môže to byť dobrý nápad a môže to viesť k systému, ktorý má veľkú pravidelnosť – s podobnými vecami sa zaobchádza podobne – ale tieto veci nie vždy fungujú tak, ako by ste chceli. Napríklad, ak chcete vedieť, aké dotazy sa práve vykonávajú v databázovom systéme, môžete očakávať, že VYBERIETE tieto informácie z tabuľky spustených dotazov – to znie veľmi rozumne.

Čo to však znamená AKTUALIZOVAŤ túto tabuľku, VYMAZAŤ z tejto tabuľky alebo dokonca do nej VLOŽIŤ? Môžete povedať, čo to znamená, ale je výsledok žiaduci a efektívny? Niektoré databázové systémy hovoria, že to tak nie je, a robia niečo iné; napríklad MySQL má SHOW PROCESSLIST a príkaz KILL a tento štýl nie je nezvyčajný inde. Napríklad niekoľko systémov Unix má to, čo sa nazýva súborový systém /proc. V rámci tohto súborového systému existujú adresáre, ktoré zodpovedajú procesom bežiacim v systéme, a v každom „adresári“ sú „súbory“, ktoré zodpovedajú určitým vlastnostiam procesu. Ako však naznačuje použitie úvodzoviek, tieto veci v skutočnosti nie sú adresármi alebo súbormi, pretože aj keď ich môžete uviesť, mnohé iné operácie so súbormi (napríklad odstránenie) nefungujú. V niektorých častiach súborového systému /proc na Linuxe je to dovedené do extrému, kde sa zdá, že niečo zapíšete do súboru a systém vykoná nejakú funkciu. Napríklad na „horúce pridanie“ zariadenia SCSI použijete príkaz echo na odoslanie inštrukcie ovládaču prostredníctvom súboru.