Moje odkazy
vydáno: 22. 8. 2009 16:22, aktualizováno: 18. 7. 2020 13:40
SQL je skvělý jazyk, který slouží k psaní databázových dotazů a obecně k práci s relačními databázemi. Naučit se ho není těžké, naopak, SQL příkazy jsou přirozené a logické. Zvládnout to může téměř každý. Bohužel většinu lidí odradí nutnost instalovat a konfigorovat databázový systém nebo jiný software, a tak SQL zůstává převážně doménou informatiků. To je škoda. Proto jsem napsal program SQL Výuka – teď stačí otevřít webový prohlížeč a můžete s SQL začít hned.
Program v sobě kombinuje databázového klienta a interaktivního průvodce (nápovědu). Uživatel prochází jednotlivé kapitoly průvodce a kliká na příklady, které si může spouštět. Příklady si může upravovat nebo psát vlastní SQL příkazy a sledovat výsledek, který přijde z databáze.
Součástí programu je i model databáze (viz první obrázek) – uživatel tak vidí, s jakými schématy, tabulkami a sloupečky může pracovat.
V programu fungují klávesové zkratky (pro spuštění dotazu a zobrazení historie), aby se uživatel nemusel trefovat myší na tlačítka :-)
V dnešní době se hodně aplikací přesouvá na webovou platformu a současně s tím tyto aplikace běží v jediné instanci. Tenhle trend se mi moc nelíbí a proto svoji aplikaci vydávám jako svobodný software, který může běžet v libovolném počtu instancí.
Zvolil jsem licenci Affero GPL, která se výborně hodí pro webové aplikace. Díky ní má každý uživatel přístup ke zdrojovým kódům programu, s kterým právě pracuje. (Více o softwarových licencích se dozvíte v mém článku).
Možná vás zajímá, jak je toto zpřístupnění zdrojových kódů řešeno po technické stránce. Při překladu (kompilaci) aplikace se vytvoří ZIP archiv z právě překládaných zdrojových kódů a ten se přibalí k binární (.war) formě aplikace. Stačí k tomu jeden řádek v konfiguraci Antu.
Samotný program je napsaný v Javě (Java EE) a jedná se o relativně jednoduchou webovou aplikaci. Jako databázový systém jsem použil PostgreSQL – jednak je to kvalitní a robustní SŘBD a jednak pro jeho blízkost SQL standardům.
Program vyvíjím a provozuji nad operačním systémem GNU/Linux a aplikačním serverem Glassfish. Nicméně aplikace nezávisí na specifických funkcích Glassfishe, takže její provoz na jiných aplikačních serverech nebo dokonce operačních systémech je možný.
Podporu jiných databázových systémů zatím neplánuji, PostgreSQL mi vyhovuje. Pokud ale bude zájem (a někdo vývoj zaplatí), není v tom problém :-). (znamenalo by to přepsat generátor modelu databáze, upravit kapitoly průvodce, aby odpovídaly specifikům daného DBMS a vymyslet a otestovat zabezpečení nové databáze).
Při volbě technologií jsem zohledňoval i to, aby za ně provozovatel aplikace nemusel platit žádné licenční poplatky – aplikace využívá svobodný software.
Program jsem napsal sám a i další rozvoj bude převážně na mě, ale uvítal bych vaši pomoc v těchto oblastech:
Na závěr otázka do diskuse: za jak dlouho myslíte, že člověk dokáže strávit infromace obsažené v průvodci? A za jakých výchozích znalostí (tohoto jazyka i IT obecně)?
Vypadá to moc pěkně. Nechceš o tom napsat zprávičku nebo blogpost na ABC?
díky :-) zprávičku už jsem napsal a je už dokonce schválená.
jsem na to zvědavý, bude to pro aplikaci docela zátěžová zkouška :-)
Proč je u zprávičky jako autor Robert? :-) Když jsem ji viděl, tak jsem si říkal, "on už ani ty zprávičky psát nemusí, má na to lidi" :-)
Protože by to prý znělo divně, když tam píšu „Autor o tom informoval…“ :-) a vypadá to líp, když to ohlásí někdo jiný.
Kdyby jsi měl čas, myslím, že spousta lidí by ocenilo i podporu MySQL... To je jen takové popíchnutí :)
Tak MySQL to není, to je moc škoda. K PostgreSQL se asi jen tak nedostanu, ale tak budu doufat, že příklady bou fungovat v obou databázích. Výuku zkusím, protože moje znalsti vedou přes SELECT k několikanásobným LEFT JOINŮM a tím vlastně dokážu vypsat vše co potřebuji, zbytek dělám v PHP. Tak doufám že se zde naučím dobrým mravům. :-)
Cílem aplikace je naučit uživatele SQL obecně, ne nějaký konkrétní dialekt. Specifikům PostgreSQL se nedalo zcela vyhnout (např. schémata a search_path), ale 99% příkladů funguje i v ostatních databázích (např. takový standardní LIMIT n OFFSET m funguje i v MySQL, i když hodně lidí zná jen tu zkrácenou formu).
Já myslel, že to je zadarmo... nebo se mýlím?
Program jako takový je open source a lze ho používat zcela zdarma. Co je placené jsou data (ukázková databáze a průvodce s příklady), po zakoupení licence si je můžeš i upravovat (akorát se nesmí šířit dál).