Pozor museum: Toto je archivní verze blogu. Pro vkládání komentářů přejděte na tento článek v nové verzi blogu.

SQL Výuka

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.

Výuka SQL

Program SQL Výuka

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.

Výuka SQL

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 :-)

Softwarová licence

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.

Použité technologie

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á bezplatně dostupný  a otevřený software.

Jak můžete pomoci

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:

  • Testujte aplikaci, napište svoje postřehy a nápady na vylepšení, hlaste chyby. Nemusí se týkat jen samotné aplikace, důležité jsou i ukázková data a průvodce.
  • Můžete pomoci s řešením již nahlášených chyb a úkolů (MSIE, pružný layout atd.).
  • Pište komentáře pod články a příspěvky do fóra (poradny) na oficiálních stránkách. Potřebuji to zezačátku trochu rozhýbat. (na všech stránkách se zobrazuje seznam nejaktivnějších komentátorů, tak tam můžete dostat odkaz i na svůj web) :-)
  • Pokud víte o někom, např. učiteli informatiky, komu by se program mohl hodit, doporučte mu ho.

Odkazy

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ě)?

Průměr: 5 (7 hlasů)

Hezké

Vypadá to moc pěkně. Nechceš o tom napsat zprávičku nebo blogpost na ABC?

zprávička

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 :-)

Re: zprávič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" :-)

autor informoval

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ý.

MySQL

Kdyby jsi měl čas, myslím, že spousta lidí by ocenilo i podporu MySQL... To je jen takové popíchnutí :)

Zkusím

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. :-)

MySQL

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).

Nezkusím

Já myslel, že to je zadarmo... nebo se mýlím?

open source

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).

Je to skvělé.

Je to skvělé.