1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/sql-api.txt Mon Sep 01 13:16:33 2014 +0200
1.3 @@ -0,0 +1,58 @@
1.4 +„Nejlepší REST API je stejně relační databáze“ :-)
1.5 +
1.6 +SQL!
1.7 +
1.8 +Framework pro zpřístupnění libovolných dat ve formě relaci – virtuální tabulky, pohledy, funkce.
1.9 +Více klientských protokolů:
1.10 + - emulace postgresql
1.11 + - emulace mariadb
1.12 + - vlastní binární protokol
1.13 + - vlastní SOAP protokol
1.14 + - vlastní XML REST protokol
1.15 +
1.16 +programovatelné moduly poskytující data (tabulky, pohledy a navázání na funkce)
1.17 + - soubory (XML, CSV atd.) + zpracování (XSLT) a mezipaměť (původní zdroj: file://... http://... atd.)
1.18 + - CLI + mezipaměť
1.19 + - Java, C++, C, Perl atd.
1.20 +
1.21 +Příklad použití:
1.22 +SQL rozhraní k unixovému operačnímu systému
1.23 + - uživatelé
1.24 + - procesy
1.25 + - RAM
1.26 + - připojené oddíly, fstab, využití disku
1.27 + - S.M.A.R.T.
1.28 + - RAID pole
1.29 + - LVM, DM, LUKS
1.30 + - mailq
1.31 + - síťová spojení, naslouchající porty
1.32 + - síťové adaptéry, IP a MAC adresy, přenesená data
1.33 + - bluetooth
1.34 + - další HW (sériové porty, V4L2 atd.)
1.35 + - služby z /etc/services
1.36 + - protokoly z /etc/protocols
1.37 + - soubory - názvy, metadata, rozšířené atributy
1.38 +
1.39 +Funkce:
1.40 + - odeslání e-mailu
1.41 + - logování
1.42 + - poslání signálu nějakému procesu
1.43 + - odeslání D-Bus zprávy
1.44 + - CURL
1.45 + - DNS
1.46 + - ping
1.47 +
1.48 +Podporovat PL/SQL nebo procedurálnost nechat na klientovi, který bude volat SQL dotazy, příkazy?
1.49 +
1.50 +Dynamické tabulky:
1.51 + - obsahují neomezenou množinu dat
1.52 + - musíme použít WHERE podmínku (jinak vyhodí chybu)
1.53 + - vygenerují odpovídající obsah (např. výsledek DNS dotazu)
1.54 + - vypadají jako normální tabulka (ve skutečnosti je to spíš funkce)
1.55 +
1.56 +Aktualizovatelné tabulky:
1.57 + - lze provádět INSERT, UPDATE, DELETE
1.58 + - provádějí nějakou akci, např. vytvoření souboru, uživatele, spuštění procesu
1.59 +
1.60 +
1.61 +Inspirace: https://sqlite.org/vtab.html – The Virtual Table Mechanism Of SQLite