ARCHIV |
|||||
Software (10844)
Distribuce (131)
Skripty (697)
Menu
Diskuze
Informace
|
PostgreSQL (1) - Historie a pohledy jinamDnes začínáme seriál o databázích, zpočátku pokud možno obecný, ale postupem času se budeme stále více věnovat mému oblíbenému PostgreSQL serveru. Databáze a databázové servery prý patří na třetí místo v prodejnosti software za hry a kancelářské aplikace. Vývoj jednoznačně směřuje k jejich potřebě v jakékoliv formě, ať už té nejjednodušší souborové (například účetnictví), nebo sofistikovanější SQL serveru (třeba www aplikace). Tento seriál bude orientovaný na SQL jazyk, zaměříme se na nějaké detaily použití. Bude o optimalizaci dat v databázi o možnostech zrychlení a udržení konzistence dat v ní. Později se dostaneme i k programování stored procedur a teprve v tento moment bude jednoznačná orientace na PostgreSQL server, případně se podíváme i na FirebirdSQL. Bohužel se nebudu věnovat instalaci některého ze serverů, protože to je mimo obsahovou linii tohoto seriálu. Seriál o instalaci, nastavení a práci s MySQL se již připravuje a já mohu udělat totéž pro PostgreSQL. Databázi můžeme přirovnat ke kartotéce, kde každý záznam (ve správné db terminologii věta) je jedinečný a organizovaně nalezitelný (jak to počítači usnadnit si povíme, až budeme u indexů) lístek. V dobách prvních počítačů tomu tak opravdu bylo, protože záznamy byly uloženy na děrných štítcích... V dobách, kdy se počítače začali šířit trochu masívněji vládla poměrně anarchie, protože takřka každý výrobce software, měl vlastní, z jeho hlediska nejlepší, systém, jak věty ukládat. Třeba použitím jednoho odělovače pro věty a druhého pro položky ve větách. Z těchto pionýrských dob přežilo pár souborových databázových formátů - dbf (program dBase, ale třeba i FoxPro), db (Paradox) a mdb (MS Access). I dnes jsou tyto formáty často využívány a nejsou hodné zatracení. Jejich využití je zejména v "jednodušších" aplikacích. Souborové databáze mají omezené možnosti optimalizace výkonu (indexace) a zabezpečení přístupu k datům v nich uložených. Neumožňují transakční zpracování dat a řešení relací mezi tabulkami není také snadný úkol, pokud nepracujete přímo ve FoxPro, dBase, nebo Accessu. Většinou do nich nelze uložit i nestrukturovaná, či binární data. Mají ale i své výhody. Řada vývojových nástrojů je umí použít ve Vašem programu (třeba přes DAO), nebo existují knihovny či třídy pro přístup k těmto datům (třeba pro Perl, Javu a PHP), anebo si je můžete napsat sami ;-). Většina moderních SQL serverů umí data v nich uložená naimportovat, případně do nich exportovat, využití už ctěného čtenáře snad napadne. Dalším krokem jsou relační databáze. Pokud budeme zkoumat vše do podrobna i ony si ukládají data do nějakého svého formátu na disky, ale nás jako uživatele, případně programátora od tohoto odstiňují. V další kapitole se budeme věnovat základním pojmům kolem databází, prozatím bude stačit, když budete vědět, že relace je propojení několika tabulek dohromady, které umožňuje i poměrně rozsáhlou optimalizaci jak z hlediska prostoru obsazeného daty, tak z hlediska výkonu. V 60. letech firma IBM vytvořila systém hierarchického modelu uspořádání dat. Data byla uspořádána ve stromech. Později se začaly propojovat data mezi stromy, ale složitost tohoto uspořádání dat neumožňovala vystihnout všechny možné vazby, které byly třeba. Proto se v 70. letech začali objevovat systémy, které byly založeny na relační algebře. Od 80. let se rozvíjí naplno relační databáze a jazyk SQL. Relativní novinkou ve světě databází je grid databáze. Pokud nevíte o co se jedná, jde o rozložení výpočetního výkonu mezi více počítačů, či serverů. Také tomuto tématu hodlám věnovat jednu kapitolu, ale až trochu později, protože se zatím jedná o specialitu nabízenou pouze Oracle 10g. V letech 74-76 minulého století firma IBM vytvořila sadu příkazů (jazyk) SEQUEL (Structured English Query Language) následovaný SEQUEL/2, použit v databázovém systému SYSTEM R, pro ovládání databáze. Počátkem 80. let vstoupila na trh firma Realational Software Inc. (přejmenovala se pak po svém produktu na Oracle Corporation), IBM vytvořila DB2 a vyrojili se další firmy se svými databázemi, jako Informix, SyBase, ... K ovládání databází se začal používat jazyk SQL, který je následníkem SEQUELu. ANSI chtělo vytvořit standard na základě jazyka RDL, ale SQL již bylo natolik rozšířené, že standardem se stalo SQL86, později následované SQL92 a SQL99. SQL se překládá jako Structured Query Language, ale viděl jsem překlad i jako Simple Query Language. Já souhlasím spíše s tou druhou variantou, protože jak uvidíte sami, je to jazyk velice jednoduchý. Hlavní síla nezávisí na tomto jazyce, ale v celkové organizaci dat a administraci serveru. Malý přehled databázíZmíním se jen o pár nejvýznamějších, protože asi ani není v silách jednotlivce znát a vyhledat vše, navíc u některých produktů by se jednalo o jméno známé pouze pár znalcům. Komerční databáze mají své místo, protože kvůli podpoře si instituce, jako například banky nedovolí běžně nasadit open source produkty. Komerční databázeOraclePravděpodobně leader ve světě databází. Jejich server se stal jakýmsi nepsaným standardem pro velké systémy. V Česku jej používá například Komerční Banka. Firma jako jedna z prvních ve velkém produkovala relační databáze. MicrosoftNeušklíbejte se prosím, Microsoft SQL server patří také k těm rozšířenějším. V Česku jej používá třeba Česká Spořitelna. Rychlostně na tom není špatně, podpora a bezpečnost už se mi jeví jako trochu slabší. IBMMaji vlastní DB2, ale v době zcela nedávné koupili Informix. Produkty jsou používány spíše v menší míře. Borland/InpriseTy mají Interbase server. Dalo by se říci, že je to poklad, který chránili před světem tak, že jej skoro nikdo nezná. Rychlý, stabilní. Donedávna jen pro Microsoftí systémy. To se změnilo, když měl chvíli opensource vývoj a odštěpili se od něj FirebirdSQL a Yaffil. Open Source DatabázeMySQLDatabázový server oblíbený zejména v nasazení na pro WWW aplikace. Je velice rychlý, má dobrou podporu standardů jazyka SQL, ale v základnám módu (nad svými nativními tabulkami) postrádá některé vlastnosti, například transakce, vnořené SELECTy, uložené procedury a pohledy, čímže je v podstatě diskvalifikován z vážnějšího nasazení. Ale to že postrádá tyto features je vyváženo jeho rychlostí. Je plnohodně použitelná v UN*Xech i Windows, což nahrává webtvůrcům, kteří nemají extra servřík, ale zodpovědně testují pod hlavními prohlížeči. PostgreSQLTento server vyniká stabilitou, rychlostí, dobrou podporou a dobrou integrací pokročilých technologií. Některé webhostingy ho mají v nabídce vedle MySQL, znám i aplikace ve finančním světě, které se o něj opírají. Tento server je primárně určen pro použití v UN*Xových OS, donedávna existovala jen alfa verze pro Windows, nebo se dal spustit pod Cygwinem, od verze 7.5 je i v tomto přístupu změna. V tomto seriálu se budu orientovat v pozdějších kapitolách (stored procedury, transakce, triggery) převážně na tento server. PostgreSQL patří k tomu oblíbenějšímu, s čím jsem přišel do styku. FirebirdSQLServer, který vznikl po dočasném uvolnění Interbase, s nímž je vysoce kompatibilní, dokonce používá i stejné soubory pro uložení dat. Od počátku roku 2004 ve verzi 1.5, která je o cca 30% rychlejší, než původní verze 1. Bezproblémový chod jak na Windows, tak UN*Xech, i když hned po uvedení verze 1.5 jsme měli problémy s jeho kompilací pro 64bit Solaris, protože v balíku chyběli některé zdroje, jako třeba configure, nebo make. Existuje ve dvou verzích jako Classic Server a Super Server a pro kterou se rozhodnout je jen na uživateli/správci. Využívá se i jako lokální databázový server pro aplikace, třeba systém POK firmy MSBI s.r.o., nebo účetnictví Cesar. YaffilSQL server taktéž vzešlý z původní Borlandí Interbase, velmi rychlý, ale se špatnou podporou a stránky ani nejeví známky, že by se vůbec ještě vyvíjel. miniSQLLight weight (lehkovážní) databáze, nesetkal jsem se s jejím produkčním nasazením, spíše vhodná, pokud se potřebujete naučit SQL jazyk. Zase na druhou proč se zatěžovat její instalací, když většina distribucí už s sebou přináší i MySQL, či dokonce postgreSQL. SQLiteSQLite není databáze v pravém slova smyslu, ale knihovna, která vám pomocí SQL jazyka umožní pracovat se soubory dbm. Všechna data jsou v jediném souboru, který třeba můžete sdílet z několika operačních systémů (budete ale muset řešit kódování). Zajímavé a příjemné je, že umí třeba transakce. Historie PostgreSQLTento seriál bude orientovaný především na práci s PotgreSQL, jak jsem již předeslal, takže by bylo možná příjemné vědět něco o historii tohoto serveru. Původně byl server vyvíjen v Berkeley na kalifornské univerzitě v letech 1986 až 1993. Vývoj se rozpadl komerčním směrem (sloučení s Informixem) i nekomerčním směrem, jako Postgres95. V roce 1996 je projekt přejmenován na PostgreSQL, je uvedena verze 6.0. ZávěremPro tento díl je to vše. Nemohu tu vypsat podrobně pokus o zmapování vývoje databází a všechny SQL servery, které se na světě vyskytují. Pokud jsem Vás tímto miniúvodem neotrávil, ale naopak nalákal k přečtení dalších dílů, tak mohu být spokojen. Zatím neuvedu seznam odkazů, protože ty jsem průběžně rozesel v textu.
Související články
Celou kategorii (seriál) Další
PostgreSQL (2) - Proč PgSQL, data a relace
PostgreSQL (3) - Instalace, základní administrace PostgreSQL (4) - Datové typy, vytvoření tabulek PostgreSQL (5) - Další datové typy a práce s časem i binarními řetězci PostgreSQL (6) - Uložení, aktualizace a mazání dat. PostgreSQL (7) - Výběr dat z databáze PostgreSQL (8) - SELECT II. PostgreSQL (9) – SELECT III PostgreSQL (10) - SELECT IV PostgreSQL (11) - Výběr pomocí vzorků PostgreSQL 12 - urychlení výběrů PostgreSQL (13) - Na co se zapomnělo PostgreSQL (14) - omezení dat (Constraints) PostgreSQL (15) - Transakce PostgreSQL (16) - Zamykání PostgreSQL (17) - Datový typ pole PostgreSQL (18) - Datový typ pole II PostgreSQL (19) - Vlastní datové typy PostgreSQL (20) - Vlastní datové typy II PostgreSQL (21) - Spojování dotazů PostgreSQL (22) - Poddotazy PostgreSQL (23) - Optimalizujeme rychlost PostgreSQL (24) - Views (Pohledy) PostgreSQL (25) - Administrace skupin a uživatelů PostgreSQL (26) - Rozšiřujeme funkčnost Celou kategorii (seriál) Další
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera 12.11.2018 21:28 /Redakce Linuxsoft.cz 6.11.2018 2:04 /František Kučera 4.10.2018 21:30 /Ondřej Čečák 18.9.2018 23:30 /František Kučera 9.9.2018 14:15 /Redakce Linuxsoft.cz 12.8.2018 16:58 /František Kučera 16.7.2018 1:05 /František Kučera
Poslední diskuze
31.7.2023 14:13 /
Linda Graham 30.11.2022 9:32 /
Kyle McDermott 13.12.2018 10:57 /
Jan Mareš 2.12.2018 23:56 /
František Kučera 5.10.2018 17:12 /
Jakub Kuljovsky | |||
ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze |