Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Ρ Π½ΡΠ»Ρ. Π‘Π£ΠΠ: PostgreSQL. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ ΡΠΎΠ²Π°ΡΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΡΠ·ΠΈΠ½ΠΎΠΉ. Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ. Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΅ΡΡ: ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠ°ΠΆ ΠΈ ΠΎΠ±ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ create/read/update/delete Π΄Π»Ρ ΡΠΎΠ²Π°ΡΠΎΠ², ΠΊΠΎΡΠ·ΠΈΠ½, Π·Π°ΠΊΠ°Π·ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² (Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅). ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π² PostgreSQL, Π° Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π»ΡΠ±ΡΡ
ΡΡΠ΅Π΄ΡΡΠ² Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΄Π΅Π½ΡΠ°. ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Frontend Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ. ΠΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ: - Java Servlet Π½Π° Apache Tomcat (https://coderlessons.com/tutorials/java-tekhnologii/uchit-servlety/servlety-kratkoe-rukovodstvo) - ΠΡΠΎΡΡΠΎΠΉ HTTP ΡΠ΅ΡΠ²Π΅Ρ Π½Π° Python (https://python-course.readthedocs.io/projects/year2/en/latest/lessons/07-simple-http-server.html) ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΌΡΠ»ΡΡΠΈΠΌΠ°ΡΡΠ΅Ρ-ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pgpool-II. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² backend Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΄Π²ΡΡ
. ΠΡΠΎΠ΄ΡΠ±Π»ΠΈΡΡΠΉΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ pgpool-II. ΠΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΉΡΠ΅ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΡΡΠ³ΠΎΠ²ΡΡ ΡΠΌΠ΅Π½Ρ backend Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΡΠ°ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ². Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ backend Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ PostgreSQL, Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ pgpool-II. Π Π°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ nginx. ΠΡΠΎΠ΄ΡΠ±Π»ΠΈΡΡΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ nginx. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° python + requests, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ-ΡΠΎΠΏΠΎΠ³ΠΎΠ»ΠΈΠΊΠ°. Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΡΡΠ³ΠΎΠ²ΡΡ ΡΠΌΠ΅Π½Ρ backend (nginx). ΠΠ°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ· ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏ. 2 API. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π·Π°ΠΌΠ΅ΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² PostgreSQL, pgpool-II, Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ nginx. ΠΡΠ΅Π½ΠΈΡΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΡΡΡΠΎΠΉΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΡΠΌΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
barchart. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π»ΠΈΠ±ΠΎ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°, Π»ΠΈΠ±ΠΎ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.