sql-api.txt
changeset 1 ff176e13e9b1
     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