flowchart TD
    subgraph INTERNET
        CLIENT["CLIENT(LIB)"]
        QUERIES["SQL / Cypher / XQuery / ..."]
    end

    subgraph INSTANCE_CLUSTER["INSTANCE / CLUSTER"]
        PORT["PORT / TCP-IP"]
        subgraph MEMORY["Memory Structures"]
            DBBUF["DB Buffer"]
            JOURNAL["Journal"]
            SRVMEM["Server Process Memory"]
            MORE["..."]
        end
        subgraph PROCESSES["Processes"]
            P1(( )) 
            P2(( ))
            P3(( ))
            P4(( ))
            P5(( ))
            P6(( ))
        end
    end

    subgraph DATABASE["DATABASE"]
        STORAGE["Backup | Data | Metadata | Statistics | Journal Log | Indexes | Temp | Config"]
    end

    CLIENT -- "sends queries via" --> PORT
    QUERIES --> PORT
    PORT --> SRVMEM
    INSTANCE_CLUSTER --> DATABASE
  • na DB serveru (fyzický/virtuální) běží Linux/UNIX a tam je nainstalovaný databázový server
    • občas se ten OS musí nakonfigurovat (např. pro Oracle se musí zvětšit nějaké paramentry, protože má větší nároky)
  • komunikuje se hlavně přes TCP/IP (jiné možnosti jsou, ale moc se nepoužívají)
  • poslouchá se na nějakém portu
    • PostgreSQL: 5432
    • na portu proběhne autentizace/autorizace
      • pak dostanu samostatný proces, který si se mnou (jako s klientem) povídá
  • 2 červené vrstvy (v obrázku)
    • instance/cluster
      • zajištuje připojování klientů a komunikaci s databázovou částí
      • Oracle - pojem instance
      • PostgreSQL - pojem cluster
        • cluster je tady sdílená paměť a různé procesy kolem
        • není to cluster v pravým slova smyslu
    • databáze
      • je perzistentní
      • nejde přistoupit přímo, musím nastartovat instanci/cluster a pomocí toho přistupovat
    • 80 % je to 1:1, může být více instancí/clusterů na 1 databázi, ale zas tak běžný to není
  • se serverem se komunikuje pomocí API