ΠΠΎΠΊΠ° Π²Π΅ΡΡ ΠΌΠΈΡ Π³ΠΎΡΠΎΠ²ΠΈΠ»ΡΡ ΠΊ ΠΏΡΠ°Π·Π΄Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΠΎΠ²ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°, Π² ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²Π΅ ΡΠΈΠ½Π°Π½ΡΠΎΠ² Π‘Π¨Π (US Treasury) ΡΠ°ΡΠΈΠ»Π° ΠΏΠ°Π½ΠΈΠΊΠ°. ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠ°Π·Π΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΡΡΠ°Π»ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠ΅ Ρ Π°ΠΊΠ΅ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠ½ΠΈΠΊΠ»ΠΈ Π² ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΏΡΠΈΡΠΈΠ½Π° ΡΡΠΎΠ³ΠΎ Π±ΡΠ»Π° Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π°Π±ΡΡΡΠ΄Π½ΠΎΠΉ, ΡΡΠΎ Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π΄Π°ΠΆΠ΅ Π² Π³ΠΎΠ»Π»ΠΈΠ²ΡΠ΄ΡΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ±Π°ΡΡΠ΅ΡΠ΅ ΠΏΡΠΎ Ρ Π°ΠΊΠ΅ΡΠΎΠ²: Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° Π½Π΅Π²ΠΈΠ½Π½ΡΡ Π±Π°ΠΉΡΠ°, Β«ΡΠΏΡΡΡΠ°Π½Π½ΡΡ Β» Π² ΡΠΌΠΎΠ΄Π·ΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ PostgreSQL, Π²Π·Π»ΠΎΠΌΠ°Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΡΠ»ΡΡΠΈΡΡΡΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠ°Ρ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°.
π Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ?
30 Π΄Π΅ΠΊΠ°Π±ΡΡ 2024 Π³ΠΎΠ΄Π° ΡΡΠ°Π»ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π°ΡΠ°ΠΊΠ° Π½Π° ΠΊΠ°Π·Π½Π°ΡΠ΅ΠΉΡΡΠ²ΠΎ Π‘Π¨Π ΠΏΡΠΎΡΠ»Π° ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ PAM-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (Privileged Access Management - Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ) ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Beyond Trust. ΠΠΎ Π½Π°ΡΡΠΎΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π³Π»ΡΠ±ΠΆΠ΅: ΡΡΠΎ Π±ΡΠ»Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² PostgreSQL, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ Π·Π°ΡΠΈΡΡΠ½Π½ΡΡ ΠΈ ΠΈΠ·ΡΡΠ΅Π½Π½ΡΡ open-source Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΌΠΈΡΠ°.
ΠΡΠΈΡΠΈΠ½Π° β Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΠ°Π»Π°ΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΡΠΈ Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΠ΅, ΡΠΏΡΡΡΠ°Π²ΡΠΈΡΡ Π² Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π₯Π°ΠΊΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° Π±Π°ΠΉΡΠ°: c0 27. ΠΡΠΈ Π±Π°ΠΉΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π½Π΅Π²ΠΈΠ½Π½ΠΎ, Π½ΠΎ ΠΊΡΠΎΡΡ Π² ΡΠ΅Π±Π΅ Ρ ΠΈΡΡΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, Π·Π°ΡΡΠ°Π²ΠΈΠ²ΡΠΈΠΉ PostgreSQL Β«ΡΠ»Π΅ΠΏΠΎ Π΄ΠΎΠ²Π΅ΡΠΈΡΡΡΡΒ» Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΎΡΠΊΡΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅.
βοΈ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²Π·Π»ΠΎΠΌΠ°
ΠΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΎΠΌ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Unicode Π² PostgreSQL. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅:
π» Π¨Π°Π³ 1:
Π‘Π½Π°ΡΠ°Π»Π° Ρ
Π°ΠΊΠ΅ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΡΡΡΡ Ρ Π±Π°ΠΉΡΠ° 0xc0. PostgreSQL Π²ΠΎΡΠΏΡΠΈΠ½ΡΠ» Π΅Ρ ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π»ΠΎ Π΄Π²ΡΡ
Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Unicode. ΠΠ±ΡΡΠ½ΠΎ Unicode-ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΠΎΡ 1 Π΄ΠΎ 4 Π±Π°ΠΉΡΠΎΠ². ΠΠΌΠΎΠ΄Π·ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΡΠ΅ΡΡΡΡΠΌΡ.
π Π¨Π°Π³ 2:
Postgres ΠΎΠΆΠΈΠ΄Π°Π», ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π°ΠΉΡ ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΡ ΡΡΠΎΠ³ΠΎ Unicode-ΡΠΈΠΌΠ²ΠΎΠ»Π°, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ» Π±Π°ΠΉΡ 0x27, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΠΎΠΉ ΠΊΠ°Π²ΡΡΠΊΠ΅ '.
π₯ Π¨Π°Π³ 3:
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ Π±Π°Π³ Π±ΡΠ» Π² ΡΡΠ½ΠΊΡΠΈΠΈ PQescapeStringInternal β ΠΎΠ½Π° Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Unicode-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° ΠΏΡΠΎΡΡΠΎ Π²Π·ΡΠ»Π° ΠΈ Β«ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π»Π°Β» ΠΊΠ°Π²ΡΡΠΊΡ, ΠΎΡΡΠ°Π²ΠΈΠ² Π΅Ρ Π±Π΅Π· Π·Π°ΡΠΈΡΡ. ΠΡΠΎ ΠΎΡΠΊΡΡΠ»ΠΎ Π΄Π²Π΅ΡΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ.
π οΈ Π¨Π°Π³ 4:
Beyond Trust ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libpq ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ psql, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Ρ
Π°ΠΊΠ΅ΡΠ°ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ΅ΡΠ΅Π· \! command.
ΠΠΎΡ ΡΠ°ΠΊ, Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ»Π° Π²Π·Π»ΠΎΠΌΠ°Π½Π°.
π§ ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π»ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ?
Π‘Π°ΠΌΠΎΠ΅ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π΄Π΅ΡΡ β Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. PostgreSQL β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ Π½Π°Π΄ΡΠΆΠ½ΡΡ open-source ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠΉ ΡΡΡΡΡΠ°ΠΌΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΠ°ΠΊ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΡΠ»ΡΡΠΈΡΡΡΡ?
ΠΡΡΡ Π΄Π²Π΅ Π³Π»Π°Π²Π½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ:
π― Π£Π·ΠΊΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π°Π³Π°.
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π±ΡΠ»Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠΉ ΠΈ ΠΌΠΎΠ³Π»Π° ΠΏΡΠΎΡΠ²ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΈΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PostgreSQL ΡΠ΅ΡΠ΅Π· CLI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (psql).
π§© Π‘Π»Π΅ΠΏΠ°Ρ Π²Π΅ΡΠ° Π² ΡΡΠ°ΡΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ. ΠΠΈΠΊΡΠΎ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π», ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ.
π‘οΈ Π£ΡΠΎΠΊΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄Ρ ΠΈΠ· ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°
ΠΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π½Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΡΡ Π²Π΅ΡΠ΅ΠΉ:
β
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ²Π΅ΡΡΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΠ.
ΠΡΠ±Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΡΡΠΎΠΊ ΠΈ Unicode.
β
ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ (prepared statements) β Π²Π°ΠΆΠ½Π΅ΠΉΡΠ°Ρ Π·Π°ΡΠΈΡΠ° ΠΎΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ. ΠΡ
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΈ Π²Π΅Π·Π΄Π΅.
β
ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ Unicode Π²Π°ΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΡΡ
ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈ ΡΠΌΠΎΠ΄Π·ΠΈ. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΡΡΠΎΠΊΠΈ.
π ΠΠΈΡΠ½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠ°
ΠΠ½ΡΠΈΠ΄Π΅Π½Ρ Ρ ΠΊΠ°Π·Π½Π°ΡΠ΅ΠΉΡΡΠ²ΠΎΠΌ Π‘Π¨Π β ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΊΠΈΠ±Π΅ΡΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π±Π°Π½Π°Π»ΡΠ½Π°Ρ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΈΠ·ΡΡΠ΅Π½Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° ΡΠΉΡΠΈ Π² ΠΈΡΡΠΎΡΠΈΡ. ΠΠΎ Π½Π° Π΄Π΅Π»Π΅ Π΄Π°ΠΆΠ΅ Π»ΡΡΡΠΈΠ΅ ΡΠΌΡ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ Π²ΡΡ Π΅ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π‘Π°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠΎ, ΡΡΠΎ Π²Π΅ΡΡ ΡΡΠΎΡ Π²Π·Π»ΠΎΠΌ ΡΠΌΠ΅ΡΡΠΈΠ»ΡΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² Π΄Π²ΡΡ Π±Π°ΠΉΡΠ°Ρ : ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. Π£Π΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΡΠ³Π°ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π Π΅ΡΡ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π°ΡΠ°ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΊΡΡΠ²Π°ΡΡΡΡ Π΄Π°ΠΆΠ΅ Π² ΡΠΌΠΎΠ΄Π·ΠΈ. ΠΠ΅Π΄Ρ ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΅ Unicode, ΠΈ, ΠΊΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΠ΅ΡΠ΅Π· Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Β«ΡΠ°ΠΉΠ½ΡΠ΅Β» Π΄Π°Π½Π½ΡΠ΅.
π ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΠΊΡΡ:
πΉ ΠΠΌΠΎΠ΄Π·ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΠΊΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠΎΠ» ΠΠ°ΡΠ»Π΅Ρ ΡΠΌΠΎΠ³ Β«ΡΠΏΡΡΡΠ°ΡΡΒ» ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΡΠΌΠΎ Π²Π½ΡΡΡΠΈ ΡΠΌΠΎΠ΄Π·ΠΈ β ΡΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΡΠΊΡΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
πΈ ΠΡΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Β«ΡΡΡΠ½ΠΎΠ²ΠΈΡΡΒ» ΡΠΌΠΎΠ΄Π·ΠΈ.
ΠΠ° $5000 ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠ°ΡΡ Β«ΡΠΏΠΎΠ½ΡΠΎΡΠΎΠΌΒ» ΡΠΈΠΌΠ²ΠΎΠ»Π° Unicode. ΠΡΠΈΠΌ ΡΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΡΠΎΠ΄Π΅ Buffalo Wild Wings (ΡΠΏΠΎΠ½ΡΠΎΡ ΠΊΡΡΠΈΠ½ΠΎΠΉ Π½ΠΎΠΆΠΊΠΈ π) ΠΈ Π΄Π°ΠΆΠ΅ Π±Π΅ΠΉΡΠ±ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Oakland Athletics (ΡΡΡΠ½ΠΎΠ²ΠΈΠ»ΠΈ βΎ, π ΠΈ π³).
π ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ:
ΠΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ β Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½Π°Ρ: ΠΌΠΈΡ ΠΠ’-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΠΎΠ½ ΡΡΡΠΏΡΠΈΠ·ΠΎΠ², ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°ΠΆΠ΅ ΡΠΌΠΎΠ΄Π·ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΡΠ³ΡΠΎΠ·ΠΎΠΉ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ! ππ