franta-hg@1
|
1 |
„Nejlepší REST API je stejně relační databáze“ :-)
|
franta-hg@1
|
2 |
|
franta-hg@1
|
3 |
SQL!
|
franta-hg@1
|
4 |
|
franta-hg@1
|
5 |
Framework pro zpřístupnění libovolných dat ve formě relaci – virtuální tabulky, pohledy, funkce.
|
franta-hg@1
|
6 |
Více klientských protokolů:
|
franta-hg@1
|
7 |
- emulace postgresql
|
franta-hg@1
|
8 |
- emulace mariadb
|
franta-hg@1
|
9 |
- vlastní binární protokol
|
franta-hg@1
|
10 |
- vlastní SOAP protokol
|
franta-hg@1
|
11 |
- vlastní XML REST protokol
|
franta-hg@1
|
12 |
|
franta-hg@1
|
13 |
programovatelné moduly poskytující data (tabulky, pohledy a navázání na funkce)
|
franta-hg@1
|
14 |
- soubory (XML, CSV atd.) + zpracování (XSLT) a mezipaměť (původní zdroj: file://... http://... atd.)
|
franta-hg@1
|
15 |
- CLI + mezipaměť
|
franta-hg@1
|
16 |
- Java, C++, C, Perl atd.
|
franta-hg@1
|
17 |
|
franta-hg@1
|
18 |
Příklad použití:
|
franta-hg@1
|
19 |
SQL rozhraní k unixovému operačnímu systému
|
franta-hg@1
|
20 |
- uživatelé
|
franta-hg@1
|
21 |
- procesy
|
franta-hg@1
|
22 |
- RAM
|
franta-hg@1
|
23 |
- připojené oddíly, fstab, využití disku
|
franta-hg@1
|
24 |
- S.M.A.R.T.
|
franta-hg@1
|
25 |
- RAID pole
|
franta-hg@1
|
26 |
- LVM, DM, LUKS
|
franta-hg@1
|
27 |
- mailq
|
franta-hg@1
|
28 |
- síťová spojení, naslouchající porty
|
franta-hg@1
|
29 |
- síťové adaptéry, IP a MAC adresy, přenesená data
|
franta-hg@1
|
30 |
- bluetooth
|
franta-hg@1
|
31 |
- další HW (sériové porty, V4L2 atd.)
|
franta-hg@1
|
32 |
- služby z /etc/services
|
franta-hg@1
|
33 |
- protokoly z /etc/protocols
|
franta-hg@1
|
34 |
- soubory - názvy, metadata, rozšířené atributy
|
franta-hg@1
|
35 |
|
franta-hg@1
|
36 |
Funkce:
|
franta-hg@1
|
37 |
- odeslání e-mailu
|
franta-hg@1
|
38 |
- logování
|
franta-hg@1
|
39 |
- poslání signálu nějakému procesu
|
franta-hg@1
|
40 |
- odeslání D-Bus zprávy
|
franta-hg@1
|
41 |
- CURL
|
franta-hg@1
|
42 |
- DNS
|
franta-hg@1
|
43 |
- ping
|
franta-hg@1
|
44 |
|
franta-hg@1
|
45 |
Podporovat PL/SQL nebo procedurálnost nechat na klientovi, který bude volat SQL dotazy, příkazy?
|
franta-hg@1
|
46 |
|
franta-hg@1
|
47 |
Dynamické tabulky:
|
franta-hg@1
|
48 |
- obsahují neomezenou množinu dat
|
franta-hg@1
|
49 |
- musíme použít WHERE podmínku (jinak vyhodí chybu)
|
franta-hg@1
|
50 |
- vygenerují odpovídající obsah (např. výsledek DNS dotazu)
|
franta-hg@1
|
51 |
- vypadají jako normální tabulka (ve skutečnosti je to spíš funkce)
|
franta-hg@1
|
52 |
|
franta-hg@1
|
53 |
Aktualizovatelné tabulky:
|
franta-hg@1
|
54 |
- lze provádět INSERT, UPDATE, DELETE
|
franta-hg@1
|
55 |
- provádějí nějakou akci, např. vytvoření souboru, uživatele, spuštění procesu
|
franta-hg@1
|
56 |
|
franta-hg@1
|
57 |
|
franta-hg@1
|
58 |
Inspirace: https://sqlite.org/vtab.html – The Virtual Table Mechanism Of SQLite
|