Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΈ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΈ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ?
Π― ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΠ³Π», Π½ΠΎ Ρ Π½Π΅ Π½Π°ΡΠ΅Π» ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ.
ΠΡΠ±ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ» Π±Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ β ΡΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π½Π΅ Π²ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ°Ρ . ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΠΌΠ΅ΡΠΈΠΊΠ΅, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π΄Π»Ρ Π½ΠΈΡ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ key code.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΈΡ Π»Π΅Π³ΠΊΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΌ Π½Π΅Ρ ΡΠΌΡΡΠ»Π°, ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, β28β β ΡΡΠΎ ΠΠΈΡΠΊΠΎΠ½ΡΠΈΠ½, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ βWIβ Π² ΡΡΠΎΠ»Π±ΡΠ΅ βΠ‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅β Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ βΠΠ΄ΡΠ΅Ρβ, Π²Ρ Π·Π½Π°Π΅ΡΠ΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅, Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅ ΡΠ°Π±Π»ΠΈΡΠ°.
A ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ β ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΡΠΎΠΊΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ.
ΠΡΠ΅ ΠΊΠ»ΡΡΠΈ β ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΎΠ³Π°ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡ. E.F.Codd ΠΎΠ±ΡΡΡΠ½ΠΈΠ» ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΡΡΠΎΠ³Π°ΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ [1]:
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΡΡΡΠΎΠ³Π°Ρ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π½Π½ΠΎΡΡΡΡ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Π΅Π΅ ΡΠ΅Π½Π½ΠΎΡΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° Π½ΠΈΡ .
ΠΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Codd ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π», ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ββΠ‘Π£ΠΠ. Π‘Π£ΠΠ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠ»Π°Π²ΠΈΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΈΠ΄Π½Ρ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π‘Π£ΠΠ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΡΡΡΠΎΠ³Π°ΡΠ° ΡΠ»Π΅Π³ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² Π±ΠΈΠ·Π½Π΅Ρ-Π΄ΠΎΠΌΠ΅Π½Π΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ βΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎβ ΠΎΠ½ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ. ΠΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ΅Π½Π½ΡΡ Π»ΡΠ΄ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π° βΡΡΡΡΠΎΠ³Π°Ρβ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π½ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
[1] Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ, E.F.Codd, 1979
ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π»Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΊΠ»ΡΡΠ΅ΠΉ:
Π‘ΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π SQL Server Microsoft ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ°.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ PRIMARY KEY ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π£ΠΠΠΠΠΠ¬ΠΠ«Π Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π‘ΡΠΎΠ»Π±Π΅Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ NULL.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°Π±Π»ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΠΈΡΠ΅Π»Ρ ΠΡΠ»Π΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΠΊΠΎ:
Π‘ΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ β ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΡΠ΅Π½Π½ΠΎΡΡΡ, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡΡ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ 1 Π΄ΠΎ n, Π³Π΄Π΅ n ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ. Π SQL Server, Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, Π½Π°Π·Π½Π°ΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠΎΠ»Π±Π΅Ρ Ρ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ .
ΠΠ±ΡΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ»Π±ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΏΡΠΎΡΠΈΠ² ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΈΠ·Π»Π°Π³Π°Π΅Ρ Π²Π·Π³Π»ΡΠ΄ Π°Π²ΡΠΎΡΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡΡΡ Π² Π³ΡΡΠΏΠΏΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΡΠ²ΡΡΡΠ½Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π Π‘Π£ΠΠ.
Π ΡΡΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π² Π Π‘Π£ΠΠ, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ (ΠΠ) β Π½Π°Π±ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠΉ Π΅Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. Π‘Π»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±Π»ΠΈΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°Π²ΠΎ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ β
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΠ»ΡΡ (ΠΠ) β Π½Π°Π±ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠΌΠ΅Ρ ΠΏΠ°ΡΠΏΠΎΡΡΠ° Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°);
ΠΈΠ»ΠΈ
Π‘ΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ ΠΠ»ΡΡ (Π‘Π) β Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ±ΡΡΠ½ΠΎ Π² ΡΠΎΠ»ΠΈ Π‘Π Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΡΠΈΠΏΠ° INTEGER.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Π΅ ΠΈ Π½Π΅ΠΊΠΎΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π΄ΠΈΡΠΊΡΡΡΠΈΡ Π²Π΅Π΄ΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π²ΡΡ Π²ΡΡΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΡ .
ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π‘Π
ΠΠ»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠ΅ΡΡΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π‘Π ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°ΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π²Π²ΠΎΠ΄ΡΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ ΠΠ, ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΡ ΠΈΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΠ ΠΈΠ· 2-Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ β ΠΠΎΡΠΎΠ΄Π° (City) ΠΈ ΠΡΠ΄ΠΈ (People) ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π³ΠΎΡΠΎΠ΄ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ HΠ°Π·Π²Π°Π½ΠΈΠ΅ΠΌ (Name), Π²ΡΠ΅ Π³ΠΎΡΠΎΠ΄Π° ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π€Π°ΠΌΠΈΠ»ΠΈΠ΅ΠΉ (Family), Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΏΠ°ΡΠΏΠΎΡΡΠ° (Passport) ΠΈ Π³ΠΎΡΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠΆΠΈΠ²Π°Π½ΠΈΡ (City). Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ°ΡΠΏΠΎΡΡΠ°. HΠ° ΡΡΠ°ΠΏΠ΅ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΠ Π΅Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° ΠΈ Π΄Π»Ρ ΠΠ ΠΈ Π΄Π»Ρ Π‘Π.
ΠΠ»Ρ ΠΠ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ. ΠΠ»Ρ Π‘Π Π΄Π΅Π»Π°Π΅ΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΡΠ°ΠΏ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ:
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π‘Π Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π½Π°ΡΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ . Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΡΠΈ Π΄Π²Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ.
ΠΠ°ΡΠ΅ΠΌ Π²ΡΡ ΡΡΠΎ Π½Π°Π΄ΠΎ
ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠ΅Π·ΠΎΠ½Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ β Π° Π·Π°ΡΠ΅ΠΌ? ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π²Π²ΠΎΠ΄ΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΠΎΠ»Ρ, ΡΡΠΎ-ΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ, Π·Π°ΡΠ΅ΠΌ? ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ, ΠΏΡΠΎΠ΄Π΅Π»Π°Π² ΡΡΡ Β«ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΡΡΒ» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ
ΠΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ, Π³Π΄Π΅ Π‘Π Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½Ρ ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ Β«Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΒ» β ΠΈ ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΈ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ.
HΠ°ΠΏΡΠΈΠΌΠ΅Ρ β Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π³ΠΎΡΠΎΠ΄Π° ΠΈΠΌΠ΅ΡΡ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΠ΅ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ. Π Π΅ΡΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ Π² City Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ β Π Π΅Π³ΠΈΠΎΠ½ (Region) ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΠ (City, Region). Π ΡΠ»ΡΡΠ°Π΅ ΠΠ β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° City, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° People β Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ Region (Π΄Π°, Π΄Π°, Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΏΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠΎΠ»ΡΡ), ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ City, Π² Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΡΡΠΎΠΊΠ° AND XXX.Region = City.Region.
ΠΠ°, ΡΡΡΡ Π½Π΅ Π·Π°Π±ΡΠ», Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΠΈΠ»ΡΠ½ΠΎ Π½Π΅ Π»ΡΠ±ΡΡ ALTER TABLE Π½Π° ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² PRIMARY KEY ΠΈ FOREIGN KEY.
Π ΡΠ»ΡΡΠ°Π΅ Π‘Π β Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ Π² City, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ UNIQUE CONSTRAINT. ΠΡΡ.
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ β Π² ΡΠ»ΡΡΠ°Π΅ Π‘Π ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ»Π΅ΠΉ Π² SELECT Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ JOIN. Π ΡΠ»ΡΡΠ°Π΅ ΠΠ β Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎΡΡ ΠΏΠΎΠ»Π΅, Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π² ΠΠ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ β ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅.
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΠ. Π ΠΎΠΏΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΊΠΈ ΠΊΡΡΠΈ ΡΠ°Π±Π»ΠΈΡ, Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²β¦
Π ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎΡΡ Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°ΡΠ΅Π»ΡΡΡΠ²Π° ΡΡΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ Π‘Π ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΠ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΡΡΠ΅Π΄Π½ΡΡ Π΄Π»ΠΈΠ½Π° Π½Π°Π·Π²Π°Π½ΠΈΡ Π³ΠΎΡΠΎΠ΄Π° β 10 Π±Π°ΠΉΡ. Π’ΠΎΠ³Π΄Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡΡ 10 Π±Π°ΠΉΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π³ΠΎΡΠΎΠ΄ (ΡΠ΅Π°Π»ΡΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π·Π° ΡΡΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° VARCHAR ΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π·Π° ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΏΠΎ People.City, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ, ΡΡΠΎΠ±Ρ REFERENCES ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ). Π ΡΠ»ΡΡΠ°Π΅ Π‘Π β 4 Π±Π°ΠΉΡΠ°. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ β ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 6 Π±Π°ΠΉΡ Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ 10 ΠΠ± Π΄Π»Ρ Π³. HΠΎΠ²ΠΎΡΠΈΠ±ΠΈΡΡΠΊΠ°. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΠ β Π½Π΅ ΡΠ°ΠΌΠΎΡΠ΅Π»Ρ, Π½ΠΎ ΡΡΠΎ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΈ ΠΊ ΡΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ²ΡΡΠ°Π»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎ ΠΠ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΠ, ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π² People Π½Π΅ΠΊΡΡ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π² Π‘Π ΡΠ°ΠΌΠ°). HΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΠ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ, ΠΈ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π±Π°Π½Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ADD CONSTRAINT β¦ FOREIGN KEY ΠΈΠ»ΠΈ DROP CONSTRAINT β¦ FOREIGN KEY Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΡΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΡΡΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡ, Ρ ΠΎΡΡΡΠΈΠΌΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΉ ΠΠ (Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ (Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π½Π° Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ)) Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² CONSTRAINT.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠΏΡΠΎΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΏΠΎΡΠ½ΡΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎ:
Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π‘Π Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠΈΠΌΠΎ Π²ΡΡΠ΅. Π Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ:
ΠΠ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π°:
Π’.Π΅., Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ ΡΠΈΠΏΠ°:
Π ΡΠ»ΡΡΠ°Π΅ Π‘Π ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ
ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΠΠ Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π±Π»ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Π±ΡΡΡΡΠ΅Π΅. HΠΎ ΠΈ ΡΡΡ Π½Π΅ Π²ΡΡ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ: ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ°Π±Π»ΠΈΡ Π΄Π»Ρ ΠΠ β Π±ΠΎΠ»ΡΡΠ΅ (ΡΠΌ. Π²ΡΡΠ΅) ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΡΠ΅ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π·Π° ΡΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ JOIN`Π°. ΠΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅ ΡΡΠΎ ΡΠΊΠ°ΠΆΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½ΠΈΠ΅ (Π° ΠΏΡΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ-Π»ΠΈΠ±ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅ ΡΠ°Π±Π»ΠΈΡ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ). ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠΈΡΠΊ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΏΠΎΠ»ΡΠΌ ΡΠΈΠΏΠ° CHAR, DATETIME ΠΈ Ρ.ΠΏ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΡΠ΅ΠΌ JOIN`Π° ΠΏΠΎ Π±ΡΡΡΡΠΎΠΌΡ INTEGER-ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΎΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ°Π·Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ
Π ΡΠ»ΡΡΠ°Π΅ ΠΠ β Π±ΡΠ΄Π΅Ρ INDEX SCAN Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ People ΠΏΠΎ CHARACTER-ΠΈΠ½Π΄Π΅ΠΊΡΡ. Π ΡΠ»ΡΡΠ°Π΅ Π‘Π β INDEX SCAN ΠΌΠ΅Π½ΡΡΠ΅ΠΉ CITY ΠΈ JOIN ΠΏΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ INTEGER ΠΈΠ½Π΄Π΅ΠΊΡΡ.
Π Π²ΠΎΡ Π΅ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ = βΠΠ²Π°Π½ΠΎΠ²ΠΎβ Π½Π° LIKE β%Π²Π°Π½ΠΎΠ²ΠΎβ, ΡΠΎ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΠ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π‘Π Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΠ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠ»Π΅ ΠΈΠ· City, Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π² Π΅Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ β JOIN Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡ ΠΏΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΏΠ°Π΄Π΅Ρ ΠΎΡΡΡΠΈΠΌΠΎ Π½ΠΈΠΆΠ΅ ΡΡΠΎΠ²Π½Ρ Π‘Π. ΠΡΠ²ΠΎΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌ, Π½ΠΎ ΠΏΡΡΡΡ ΠΎΠ½ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° Π΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠΎΡΡΠ°Π²Π»ΡΡΡ SELECT * FROM ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°ΡΠ’Π°Π±Π»ΠΈΡΠ°. Π£ ΠΌΠ΅Π½Ρ β Π½ΠΈΡΡΠΎΠΆΠ½ΠΎ ΠΌΠ°Π»ΡΠΉ.
ΠΠ°, ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΈ ΠΠ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° Β«ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡΒ», ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΠΠ ΡΠ°ΡΡΠ΅Ρ. ΠΡΡ ΡΠ°Π· ΠΏΠΎΠ²ΡΠΎΡΡ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π²ΡΡ ΠΠ Π² Π²ΠΈΠ΄Π΅ flat-file. ΠΡΠ±ΠΎΠ΅ Β«ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΒ» Π΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠΎ Π½Π΅ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
HΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΠ Π±ΡΡΡΡΠ΅Π΅ β Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΠΈ INSERT Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΈΡΠ½Π΅Π³ΠΎ ΠΏΠΎΠ»Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΅Π³ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ. Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ ΡΠ°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡΡ, Ρ ΠΎΡΡ ΡΡΠΎ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠΏΡΠΎΡΠ΅ΠΌ ΠΈ ΡΡΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Ρ.ΠΊ. Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡ Π²ΡΡΠ°Π²ΠΊΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΠΏΠΎΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠΈΠΉ CLUSTERED ΠΈΠ½Π΄Π΅ΠΊΡ. Π ΡΠ»ΡΡΠ°Π΅ Π‘Π ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΠ β ΡΠ²Ρ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎ. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, INSERT Π² ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ MANY (ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΡΠ΅) ΠΏΠΎΠΉΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅Π΅, Ρ.ΠΊ. REFERENCES Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΠ, ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π²ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ. Π’Π°ΠΊ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ΅Π½ΠΈΠ½Π³ΡΠ°Π΄Π° Π² Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Ρ Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π‘Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π°Π»ΠΈΡΠΈΡ Π°ΡΡ ΠΈΠ²ΠΎΠ² ΠΈ Ρ.ΠΏ. ΡΠΈΡΡΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ³ΡΠ±ΠΈΡΡΡ. ΠΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»Ρ Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΠ β Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ.
ΠΡΠ΅ ΠΎ CASCADE UPDATE
ΠΠ°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΠ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΡ Π½Π° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Β«ΡΡΠΎ Ρ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΊΡΠΈΠ²ΠΎΠΉΒ» Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΠ΄ Π»ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Ρ. ΠΡΠΎ Π²ΡΠ½ΡΠΆΠ΄Π°Π΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΡΡΠΎ (ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ CASCADE UPDATE ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ»Π΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ, Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β Π½Π°Π΄ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ REFERENCES ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΏΠΈΡ Π·Π°ΠΏΠΈΡΠΈ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ (Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ UNIQUE)).
Π ΡΠ»ΡΡΠ°Π΅ Π‘Π Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΠΏΠΎ ΡΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° REFERENCES ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎ Π±ΡΡΡΡΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
Π Π΅ΡΡΡ Π»ΠΈ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΠ?
HΠΈΡΡΠΎ Π½Π΅ Π²Π΅ΡΠ½ΠΎ ΠΏΠΎΠ΄ ΠΡΠ½ΠΎΠΉ. Π‘Π°ΠΌΡΠΉ, ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ Π²Π΄ΡΡΠ³ ΠΎΡΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ (Π΄Π°Π»Π΅ΠΊΠΎ Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ Π±ΡΠ΄Ρ β ΡΡΠ±Π»Ρ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΈ ΡΡΠ±Π»Ρ Π΄Π΅Π½ΠΎΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ, ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ Π½Π΅ΡΡΡ ΡΠΈΡΠ»Π°). ΠΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΡ ΡΡΠ³Π°ΡΡΡΡ Π½Π° Π½Π΅ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ, Microsoft β Π½Π° ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠ»Π°ΡΡ Ρ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΠΌΠΈΡΡ MAC-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ GUID, Π²ΡΠ°ΡΠΈ Π΄Π΅Π»Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠ΅Π½Π΅ ΠΏΠΎΠ»Π°, Π° Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΡΡΡ ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ . Π ΡΡΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ (ΠΈ ΡΡΠΈΡΡΠ²Π°Ρ Π·Π°ΠΊΠΎΠ½ Π½Π΅ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΠ½ΡΡΠΎΠΏΠΈΠΈ) Π·Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π·ΠΈΡ ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ ΠΠ β Π·Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ ΠΌΠΈΠ½Ρ. ΠΡ Π½Π°Π΄ΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»ΠΎΠΉ ΠΈ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π’Π°ΠΊ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΡΠ΄Π° Π»Π΅Π³ΡΠ΅. ΠΠ° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅: ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΡ Ρ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΡΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ β Π½Ρ, ΡΡΡΠ°Π½Π½ΠΎ, ΡΡΠΎ-Π»ΠΈ. HΠΎΠΌΠ΅Ρ ΠΏΠ°ΡΠΏΠΎΡΡΠ° Π΅ΡΡ Π½Π΅ Π΅ΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. Π‘Π ΠΆΠ΅ β ΡΡΠΎ Π½Π΅ΠΊΠ°Ρ ΡΡΠ±ΡΡΠ°Π½ΡΠΈΡ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ°Ρ ΡΡΡΠ½ΠΎΡΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΡΠ½ΠΎΡΡΡ, Π° Π½Π΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ· Π΅Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΎΠ² ΠΠ
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π‘Π Π½Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΡΡ Π±Ρ, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π° ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΠ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π΄ΠΈΠΊΡΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π°ΡΡΠΈΠ±ΡΡΡ ΠΠ, ΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ Π² ΠΠ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΠ ΠΌΠ΅Π½ΡΡΠ΅ JOIN`ΠΎΠ², ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π·Π°ΠΏΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΄ΠΎΠ±Π½Π΅Π΅
ΠΠ°, ΠΌΠ΅Π½ΡΡΠ΅. HΠΎ, Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π‘Π ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΈΡΠ΅ΡΡΡ:
Π ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ΅Π»Π΅ΡΡΠΈ. Π‘ Π±ΠΎΠ»Π΅Π΅, ΠΏΡΠ°Π²Π΄Π°, Π²ΡΡΠΎΠΊΠΈΠΌ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΠ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈ, Π½Π΅ Π΄Π°ΠΉ ΠΠΎΠ³ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π±ΠΎΡΠΎΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. HΠ° ΡΠΎΠ½Π΅ ΡΡΠΎΠ³ΠΎ Β«ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅Β» Π·Π°ΠΏΡΠΎΡΡ ΡΠΆΠ΅ Π½Π΅ ΠΊΠ°ΠΆΡΡΡΡ ΡΡΠΎΠ»Ρ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π‘Π Π½Π°ΡΡΡΠ°Π΅Ρ ΡΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΌΡ
ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Π’Π°Π±Π»ΠΈΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ (3ΠΠ€), Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ 2ΠΠ€, ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΅Ρ Π½Π΅ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π½Π΅ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
Π’ΠΎ Π΅ΡΡΡ, ΡΠ΅ΡΠΈ ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΠΎΠ»ΡΡ ΡΠ°ΠΌ Π½Π΅ ΠΈΠ΄ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΡ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ 3ΠΠ€. ΠΠΎΠΎΠ±ΡΠ΅, Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π΅ ΠΎ 3 ΠΠ€, Π° ΠΎ ΠΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π€ΠΎΡΠΌΠ΅ ΠΠΎΠΉΡΠ°-ΠΠΎΠ΄Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π° Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΡΠ°Π±Π»ΠΈΡ.
ΠΡΠ°ΠΊ: Π’Π°Π±Π»ΠΈΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΠΎΠΉΡΠ°-ΠΠΎΠ΄Π΄Π° (ΠΠ€ΠΠ), Π΅ΡΠ»ΠΈ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π»ΡΠ±Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠΌΠΈ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°Π±Π»ΠΈΡΠ°, ΠΈΠΌΠ΅ΡΡΠ°Ρ Π‘Π, Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ
ΠΎΡΡ Π΄ΠΎ 5ΠΠ€. Π’ΠΎΡΠ½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π‘Π ΠΊ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π‘Π ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ
Π² ΠΠ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π ΡΡΡΠ½ΠΎΡΡΠΈ, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΅ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°Π±Π»ΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ. Π’ΠΎΠ»ΡΠΊΠΎ Π‘Π ΡΡΡΡΠ°Π½ΡΡΡ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π½Π΅ Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ, Π° Π½Π° ΠΌΠ΅ΠΆΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ (ΡΠΈΠΏΠ° ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ). Π’Π°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π‘Π β ΡΠ²ΡΡΠ΅Π΅ ΠΠ°ΠΏΡ Π ΠΈΠΌΡΠΊΠΎΠ³ΠΎ :-). Π ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ β ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠΎΠ»Ρ Π² Π΄ΡΡΠ³ΠΈΡ
Π·Π°ΠΏΠΈΡΡΡ
ΠΠ’ΠΠ ΠΠ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π°Π½ΠΎΠΌΠ°Π»ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΠ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π Π‘ΠΠ―ΠΠΠΠΠΠ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ 1 ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ 1:N. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ Π»ΡΡΡΠ΅. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π‘Π ΡΠ°ΠΊΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΠΉ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ.
Π’Π°Π±Π»ΠΈΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΠ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½Π΅Π΅
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π²ΡΡ ΠΠ Π² Π²ΠΈΠ΄Π΅ flat-file. ΠΡΠ±ΠΎΠ΅ Β«ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΒ» Π΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ Β«ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡΡΒ» ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»Π΅Π½. ΠΠΈΠ΄ΠΈΠΌΠΎ, Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ β Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π‘Π ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ, Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΈ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΡΡ ΠΠ. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΡΠΎ Π½Π΅ ΠΏΠ°Π½Π°ΡΠ΅Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±Π»ΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ REFERENCES ΠΈ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½Π°Ρ Π²ΡΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈ Ρ.ΠΏ.) Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠ Π²ΠΎΠΎΠ±ΡΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π Π‘Π£ΠΠ ΠΈ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). ΠΠΎ ΡΠ΅ΡΡ ΡΠ»Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΆΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΡΡ).
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΏΡΠΎΡΠΈΠ² ΠΈΡΠΊΡΡcΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ
ΠΠ½Π°ΡΠΎΠ»ΠΈΠΉ Π’Π΅Π½ΡΠ΅Ρ, ΡΡΠ°ΡΡΡ 6-20 ΠΈΡΠ»Ρ 1999, Π²Π΅ΡΡΠΈΡ 1.1.
Π ΡΡΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π² Π Π‘Π£ΠΠ, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ (ΠΠ) β Π½Π°Π±ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠΉ Π΅Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. Π‘Π»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±Π»ΠΈΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°Π²ΠΎ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π‘Π?
ΠΠ»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠ΅ΡΡΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π‘Π ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°ΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π²Π²ΠΎΠ΄ΡΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ ΠΠ, ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΡ ΠΈΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΠ ΠΈΠ· 2-Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ β ΠΠΎΡΠΎΠ΄Π° (City) ΠΈ ΠΡΠ΄ΠΈ (People) ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π³ΠΎΡΠΎΠ΄ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ HΠ°Π·Π²Π°Π½ΠΈΠ΅ΠΌ (Name), Π²ΡΠ΅ Π³ΠΎΡΠΎΠ΄Π° ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π€Π°ΠΌΠΈΠ»ΠΈΠ΅ΠΉ (Family), Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΏΠ°ΡΠΏΠΎΡΡΠ° (Passport) ΠΈ Π³ΠΎΡΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠΆΠΈΠ²Π°Π½ΠΈΡ (City). Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ°ΡΠΏΠΎΡΡΠ°. HΠ° ΡΡΠ°ΠΏΠ΅ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΠ Π΅Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° ΠΈ Π΄Π»Ρ ΠΠ ΠΈ Π΄Π»Ρ Π‘Π.
CREATE TABLE City(
Name VARCHAR(30) NOT NULL PRIMARY KEY
);
CREATE TABLE People(
Passport CHAR(9) NOT NULL PRIMARY KEY,
Family VARCHAR(20) NOT NULL,
City VARCHAR(30) NOT NULL REFERENCES City(Name)
);
ΠΠ°ΡΠ΅ΠΌ Π²ΡΡ ΡΡΠΎ Π½Π°Π΄ΠΎ?
Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ
ΠΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ, Π³Π΄Π΅ Π‘Π Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½Ρ ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ «Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΈΡ» β ΠΈ ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΈ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ.
HΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π³ΠΎΡΠΎΠ΄Π° ΠΈΠΌΠ΅ΡΡ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΠ΅ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ. Π Π΅ΡΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ Π² City Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ β Π Π΅Π³ΠΈΠΎΠ½ (Region) ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΠ (City, Region). Π ΡΠ»ΡΡΠ°Π΅ ΠΠ β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° City, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° People β Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ Region (Π΄Π°, Π΄Π°, Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΏΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠΎΠ»ΡΡ), ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ City, Π² Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΡΡΠΎΠΊΠ° AND XXX.Region = City.Region.
ΠΠ°, ΡΡΡΡ Π½Π΅ Π·Π°Π±ΡΠ», Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΠΈΠ»ΡΠ½ΠΎ Π½Π΅ Π»ΡΠ±ΡΡ ALTER TABLE Π½Π° ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² PRIMARY KEY ΠΈ FOREIGN KEY.
Π ΡΠ»ΡΡΠ°Π΅ Π‘Π β Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ Π² City, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ UNIQUE CONSTRAINT. ΠΡΡ.
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ β Π² ΡΠ»ΡΡΠ°Π΅ Π‘Π ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ»Π΅ΠΉ Π² SELECT Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ JOIN. Π ΡΠ»ΡΡΠ°Π΅ ΠΠ β Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎΡΡ ΠΏΠΎΠ»Π΅, Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π² ΠΠ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ β ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅.
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΠ. Π ΠΎΠΏΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΊΠΈ ΠΊΡΡΠΈ ΡΠ°Π±Π»ΠΈΡ, Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ².
Π ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎΡΡ Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°ΡΠ΅Π»ΡΡΡΠ²Π° ΡΡΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ Π‘Π ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΠ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΡΡΠ΅Π΄Π½ΡΡ Π΄Π»ΠΈΠ½Π° Π½Π°Π·Π²Π°Π½ΠΈΡ Π³ΠΎΡΠΎΠ΄Π° β 10 Π±Π°ΠΉΡ. Π’ΠΎΠ³Π΄Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡΡ 10 Π±Π°ΠΉΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π³ΠΎΡΠΎΠ΄ (ΡΠ΅Π°Π»ΡΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π·Π° ΡΡΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° VARCHAR ΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π·Π° ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΏΠΎ People.City, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ, ΡΡΠΎΠ±Ρ REFERENCES ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ). Π ΡΠ»ΡΡΠ°Π΅ Π‘Π β 4 Π±Π°ΠΉΡΠ°. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ β ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 6 Π±Π°ΠΉΡ Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ 10 ΠΠ± Π΄Π»Ρ Π³. HΠΎΠ²ΠΎΡΠΈΠ±ΠΈΡΡΠΊΠ°. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΠ β Π½Π΅ ΡΠ°ΠΌΠΎΡΠ΅Π»Ρ, Π½ΠΎ ΡΡΠΎ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΈ ΠΊ ΡΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ²ΡΡΠ°Π»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎ ΠΠ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΠ, ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π² People Π½Π΅ΠΊΡΡ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π² Π‘Π ΡΠ°ΠΌΠ°). HΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΠ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ, ΠΈ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π±Π°Π½Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ADD CONSTRAINT β¦ FOREIGN KEY ΠΈΠ»ΠΈ DROP CONSTRAINT β¦ FOREIGN KEY Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΡΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΡΡΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡ, Ρ ΠΎΡΡΡΠΈΠΌΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΉ ΠΠ (Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ (Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π½Π° Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ)) Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² CONSTRAINT.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π ΡΠ»ΡΡΠ°Π΅ ΠΠ β Π±ΡΠ΄Π΅Ρ INDEX SCAN Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ People ΠΏΠΎ CHARACTER-ΠΈΠ½Π΄Π΅ΠΊΡΡ. Π ΡΠ»ΡΡΠ°Π΅ Π‘Π β INDEX SCAN ΠΌΠ΅Π½ΡΡΠ΅ΠΉ CITY ΠΈ JOIN ΠΏΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ INTEGER ΠΈΠ½Π΄Π΅ΠΊΡΡ.
Π Π²ΠΎΡ Π΅ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ = ‘ΠΠ²Π°Π½ΠΎΠ²ΠΎ’ Π½Π° LIKE ‘%Π²Π°Π½ΠΎΠ²ΠΎ’, ΡΠΎ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΠ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π‘Π Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΠ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠ»Π΅ ΠΈΠ· City, Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π² Π΅Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ β JOIN Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡ ΠΏΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΏΠ°Π΄Π΅Ρ ΠΎΡΡΡΠΈΠΌΠΎ Π½ΠΈΠΆΠ΅ ΡΡΠΎΠ²Π½Ρ Π‘Π. ΠΡΠ²ΠΎΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌ, Π½ΠΎ ΠΏΡΡΡΡ ΠΎΠ½ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° Π΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠΎΡΡΠ°Π²Π»ΡΡΡ SELECT * FROM ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°ΡΠ’Π°Π±Π»ΠΈΡΠ°. Π£ ΠΌΠ΅Π½Ρ β Π½ΠΈΡΡΠΎΠΆΠ½ΠΎ ΠΌΠ°Π»ΡΠΉ.
ΠΠ°, ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΈ ΠΠ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° «ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡ», ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΠΠ ΡΠ°ΡΡΠ΅Ρ. ΠΡΡ ΡΠ°Π· ΠΏΠΎΠ²ΡΠΎΡΡ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π²ΡΡ ΠΠ Π² Π²ΠΈΠ΄Π΅ flat-file. ΠΡΠ±ΠΎΠ΅ «ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π±Π»ΠΈΡ» Π΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠΎ Π½Π΅ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
INSERT
UPDATE
ΠΡΠ΅ ΠΎ CASCADE UPDATE
DELETE
Π Π΅ΡΡΡ Π»ΠΈ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΠ?
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΎΠ² ΠΠ
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π‘Π Π½Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΠ ΠΌΠ΅Π½ΡΡΠ΅ JOIN`ΠΎΠ², ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π·Π°ΠΏΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΄ΠΎΠ±Π½Π΅Π΅
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΠ Π½Π°ΡΡΡΠ°Π΅Ρ ΡΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΌΡ
ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Π’Π°Π±Π»ΠΈΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ (3ΠΠ€), Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ 2ΠΠ€, ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΅Ρ Π½Π΅ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π½Π΅ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
Π’ΠΎ Π΅ΡΡΡ, ΡΠ΅ΡΠΈ ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΠΎΠ»ΡΡ ΡΠ°ΠΌ Π½Π΅ ΠΈΠ΄ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΡ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ 3ΠΠ€. ΠΠΎΠΎΠ±ΡΠ΅, Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π΅ ΠΎ 3 ΠΠ€, Π° ΠΎ ΠΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π€ΠΎΡΠΌΠ΅ ΠΠΎΠΉΡΠ°-ΠΠΎΠ΄Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π° Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΡΠ°Π±Π»ΠΈΡ.
ΠΡΠ°ΠΊ, Π’Π°Π±Π»ΠΈΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΠΎΠΉΡΠ°-ΠΠΎΠ΄Π΄Π° (ΠΠ€ΠΠ), Π΅ΡΠ»ΠΈ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π»ΡΠ±Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠΌΠΈ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°Π±Π»ΠΈΡΠ°, ΠΈΠΌΠ΅ΡΡΠ°Ρ Π‘Π, Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΎΡΡ Π΄ΠΎ 5ΠΠ€. Π’ΠΎΡΠ½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π‘Π ΠΊ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π‘Π ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΠ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π ΡΡΡΠ½ΠΎΡΡΠΈ, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΅ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ. Π’ΠΎΠ»ΡΠΊΠΎ Π‘Π ΡΡΡΡΠ°Π½ΡΡΡ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π½Π΅ Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ, Π° Π½Π° ΠΌΠ΅ΠΆΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ (ΡΠΈΠΏΠ° ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ). Π’Π°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π‘Π β ΡΠ²ΡΡΠ΅Π΅ ΠΠ°ΠΏΡ Π ΠΈΠΌΡΠΊΠΎΠ³ΠΎ :-). Π ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠΎΠ»Ρ Π² Π΄ΡΡΠ³ΠΈΡ Π·Π°ΠΏΠΈΡΡΡ ΠΠ’ΠΠ ΠΠ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π°Π½ΠΎΠΌΠ°Π»ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΠ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π Π‘ΠΠ―ΠΠΠΠΠΠ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ 1 ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ 1:N. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ Π»ΡΡΡΠ΅. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π‘Π ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ.
Π’Π°Π±Π»ΠΈΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΠ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½Π΅Π΅
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ β Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π‘Π ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ, Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΈ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΡΡ ΠΠ. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΡΠΎ Π½Π΅ ΠΏΠ°Π½Π°ΡΠ΅Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±Π»ΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ REFERENCES ΠΈ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½Π°Ρ Π²ΡΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈ Ρ. ΠΏ.) Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠ Π²ΠΎΠΎΠ±ΡΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π Π‘Π£ΠΠ ΠΈ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). ΠΠΎ ΡΠ΅ΡΡ ΡΠ»Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΆΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΡΡ).
SQL ΠΊΠ»ΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΡ
Π ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎ Π΄ΠΎΠ³ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΏΠΎΠ²Π΅Π΄Π΅ΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ Π² ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ½ΠΎΠ³Π΄Π° ΡΠΏΠΎΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡ Π² Ρ ΠΎΠ»ΠΈΠ²Π°ΡΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ? ΠΠ²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΠΈΠ»ΠΈ UUID?
ΠΡΠΎΡΠΈΡΠ°Π² ΡΠ΅ΡΡΡΠ΄Π΅ΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ°ΡΡΠΈ, ΠΏΡΠΎΠ»ΠΈΡΡΠ°Π² ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΡΡΠΈ ΠΊΠ½ΠΈΠ³ ΠΈ Π·Π°Π΄Π°Π² ΠΊΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π² IRC ΠΈ StackOverflow, Ρ (Π°Π²ΡΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ Joe Β«begriffsΒ» Nelson), ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠΎΠ±ΡΠ°Π» ΠΊΡΡΠΊΠΈ ΠΏΠ°Π·Π·Π»Π° Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΌΠΎΠ³Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠΎΠ². ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΏΠΎΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠΆΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π§ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ Β«ΠΊΠ»ΡΡΠΈΒ»?
ΠΠ°Π±ΡΠ΄Π΅ΠΌ Π½Π° ΠΌΠΈΠ½ΡΡΡ ΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ°Ρ , Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ°Ρ ΠΈΠ΄Π΅Ρ. ΠΠ»ΡΡ β ΡΡΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° (column) ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ°Ρ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡΡ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΡΡΠ° ΠΊΠ°ΡΡ Π² ΠΊΠ°ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ³ΡΠ΅:
ΠΡΠ»ΠΈ ΠΌΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ ΠΎΠ΄Π½Ρ ΠΊΠΎΠ»ΠΎΠ΄Ρ (ΡΠΎ Π΅ΡΡΡ Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΠΊΠ°ΡΡ), ΡΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΡΠ±Π°ΡΠΊΠΈ ΠΈ Π»ΠΈΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ Π½Π°ΠΌ Π±Ρ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π²Π½ΠΎΡΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΡΠ±Π°ΡΠΊΡ ΠΈ Π»ΠΈΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΊΠ°ΡΡΠ° Π΅ΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΠΎ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΅Ρ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄Π°ΡΡ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π‘Π°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½ΠΈ suit (ΡΡΠ±Π°ΡΠΊΠ°), Π½ΠΈ face (Π»ΠΈΡΠΎ) Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ°ΡΡΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΡΠ±Π°ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π»ΠΈΡΠΎΠΌ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ (suit, face) ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ, Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΠΎ, Π° (suit, face) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠΎΠΌ.
Π Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ»ΠΎΠ΄ ΠΊΠ°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΡΡΡ:
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ
Π PostgreSQL ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΏΡΡΠΌΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π½ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½ΠΈΠΌ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΡΡΡΠ½ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, ΡΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ; ΡΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΡΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
Π’Π°ΠΊΠΆΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΈΡ Π²ΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΡ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°Π±Π»ΠΈΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ.
Π Π°Π΄ΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π±Ρ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΊΠ°ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ², ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NULL Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ max_income Π΄Π»Ρ Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ Π³ΡΡΠΏΠΏ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ NULL ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ).
ΠΡΠ±ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ
Π’ΠΎ, ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΡΠΎΡΡΠΎ Β«ΠΊΠ»ΡΡΠ°ΠΌΠΈΒ», ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈΒ» (candidate keys). Π’Π΅ΡΠΌΠΈΠ½ Β«candidateΒ» ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡ Π·Π° ΠΏΠΎΡΡΡΠ½ΡΡ ΡΠΎΠ»Ρ Β«ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°Β» (primary key), Π° ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π½Π°Π·Π½Π°ΡΠ°ΡΡΡΡ Β«Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈΒ» (alternate keys).
ΠΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ SQL ΠΏΡΠΎΠΏΠ°Π»ΠΎ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠ°ΠΌΡΠ΅ ΡΠ°Π½Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π±ΡΠ»ΠΈ Π·Π°ΡΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°. ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π² ΡΠ°ΠΊΠΈΡ Π±Π°Π·Π°Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ Π½Π° Π½ΠΎΡΠΈΡΠ΅Π»ΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΠΠΆΠΎ Π‘Π΅Π»ΠΊΠΎ:
Π’Π΅ΡΠΌΠΈΠ½ Β«ΠΊΠ»ΡΡΒ» ΠΎΠ·Π½Π°ΡΠ°Π» ΠΊΠ»ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ°Π±ΠΎΡ ΠΏΠ΅ΡΡΠΎΠΊΠ°ΡΡ ΡΡΠΈΡΡΠ²Π°Π»ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅; Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Β«Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π°Π·Π°Π΄Β». ΠΠ΅ΡΠ²ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ Π½Π° ΠΌΠ°Π³Π½ΠΈΡΠ½ΡΡ Π»Π΅Π½ΡΠ°Ρ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ. Π’.Π΅., ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Sybase SQL Server Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π» Β«ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΈΒ» ΡΠ°Π±Π»ΠΈΡΡ Π½Π° Π½Π°ΡΠ°Π»ΠΎ.
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ SQL Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΡΠ·ΠΈ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΡΠΎΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π²Π°ΠΆΠ΅Π½. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ SQL-ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ, ΠΏΠΎ ΡΡΠ°ΡΠΎΠΉ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ, ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΡΠΎΠΊ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ, ΠΈ Π΅Π΄Π²Π° Π»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ, ΠΊΡΠΎΠΌΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°Π±Π»ΠΈΡΠ΅ PostgreSQL ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ NOT NULL ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° JOIN.
ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡ Π½Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌ, ΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΠ»Π½ΠΈΡ, Π²ΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π² Π²Π°Ρ Π½Π΅ ΡΠ΄Π°ΡΠΈΡ.
ΠΠ°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ
Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΊΠ»ΡΡΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Β«Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ· Π½ΠΈΡ ΠΊΠ»ΡΡ.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΏΡΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ β Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠ°ΡΡΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΡΠ΄ΡΠΈΡΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ sqlvogel Π½Π° StackExchange Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΠ²Π΅Ρ:
Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π»ΡΠ΄Π΅ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ Β«Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎΒ» ΠΊΠ»ΡΡΠ° ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ Π³ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ. ΠΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π·Π°Π΄Π°ΡΠΈ. Π‘ΠΌΡΡΠ» ΠΊΠ»ΡΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π°ΡΡΠΈΠ±ΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. Π’Π°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ (Π² Β«ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈΒ» ΠΈΠ»ΠΈ Π² Β«ΠΎΠ±Π»Π°ΡΡΠΈ Π΄ΠΈΡΠΊΡΡΡΠ°Β») ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π° ΠΏΡΠΈ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈ Π²Π΅ΡΠΎΡΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡΡ . Π ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΡΠ°Π½ΠΈΡΡ (Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²Π°Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ, ΡΠΎ Π½ΠΈΠΆΠ΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΊΠ»ΡΡΠ°.)
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠ»Π΅Π½ΠΎΠ² Ρ ΠΎΠ±Π±ΠΈ-ΠΊΠ»ΡΠ±Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ Π² Π΄Π²ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ β first_name, last_name. ΠΡΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΎΠ±ΡΡΠΌΠ΅ Π΄Π°Π½Π½ΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½Ρ, ΠΈ Π΄ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π·ΡΠΌΠ½ΠΎ.
Π‘ ΡΠΎΡΡΠΎΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΡΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π²ΡΠ±ΠΎΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ Π½Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π² ΡΠ΅Π±Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΌΠΈΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ. ΠΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄, ΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ Π΄Π²Π΅ Π±Π°Π½ΠΊΠΈ Ρ Π½Π°ΠΏΠΈΡΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π΄Π²Π΅ ΠΊΠΎΡΠΎΠ±ΠΊΠΈ Ρ ΠΎΠ²ΡΡΠ½ΠΊΠΎΠΉ, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎ ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΌ Π² Π²Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅?
ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠ³Π°Π½Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½Π°Π½ΠΎΡΡΡ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ. ΠΠ° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΡ ΡΡΠ°ΠΌΠΏΡΠ΅ΡΡΡ Vehicle Identification Number (VIN), Π² ΠΊΠ½ΠΈΠ³Π°Ρ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ ISBN, Π½Π° ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΏΠΈΡΠ΅Π²ΡΡ ΡΠΎΠ²Π°ΡΠΎΠ² Π΅ΡΡΡ UPC. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠ·ΡΠ°Π·ΠΈΡΡ, ΡΡΠΎ ΡΡΠΈ ΡΠΈΡΠ»Π° Π½Π΅ ΠΊΠ°ΠΆΡΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ. Π’Π°ΠΊ ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ Ρ Π½Π°Π·ΡΠ²Π°Ρ ΠΈΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ?
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΠΈΠ»ΠΈ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½Π° ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΠΌΠΈΡΡ. ΠΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΡΠ²ΠΎΡΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π² ΠΎΡΠ³Π°Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΈ Π±ΡΠ» ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄Π»Ρ Π½Π°Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΌΠΈΡΠ΅ ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΠΈ/ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ
.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΡΠ°ΡΠ»Π΅Π²ΡΡ
, ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΈ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄Π»Ρ Π²Π°Π»ΡΡ, ΡΠ·ΡΠΊΠΎΠ², ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Ρ
ΠΈΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
Π²Π΅ΡΠ΅ΡΡΠ² ΠΈ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠΈΡ
Π΄ΠΈΠ°Π³Π½ΠΎΠ·ΠΎΠ². ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ:
ΠΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ
Π‘ ΡΡΡΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠ»ΡΡ β ΡΡΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΆΡΠ»ΡΠ½ΠΈΡΠ΅ΡΡΠ²ΠΎ β Π² ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΄ΡΠΌΠ°Π½Π½ΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ: ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ΄ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ°ΠΌΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π½ΠΈΠΊΠΎΠΌΡ, ΠΊΡΠΎΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π·Π°ΡΠΈΡΠ΅ ΠΎΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΠΎΡΡΠΈ ΡΡΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΆΠ΅ ΠΊΠ»ΡΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»ΡΠ΄ΡΠΌ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΏΡΠΎΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΡΠΎΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ (ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ»Π±ΡΠΎΠ²ΡΡ ) ΠΊΠ»ΡΡΠ΅ΠΉ.
Π‘ΡΡΡΠΎΠ³Π°ΡΡ
ΠΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ β Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌΒ» ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ. Π‘ΡΡΡΠΎΠ³Π°ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½ΠΈΠΆΠ΅.
ΠΠ΅ ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΡΡΡΠΎΠ³Π°ΡΠ°ΠΌΠΈ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΡΡΠΎΠΊΡ ΡΠ½Π°ΡΡΠΆΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΊΡΠ°ΡΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ: ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ URL, ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ½ ΠΊ ΡΡΡΡΡ, ΠΏΡΠΎΠ΄ΠΈΠΊΡΠΎΠ²Π°Π½ ΠΏΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ Π² Π±Π°Π½ΠΊΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ Π½Π° Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠΌ Π·Π½Π°ΠΊΠ΅. (ΠΠΎΠΌΠ΅ΡΠ½ΠΎΠΉ Π·Π½Π°ΠΊ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Π΄Π»Ρ Π½Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎΠΌ ΠΊΠ°ΠΊ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ.)
ΠΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ, ΡΡΠΈΡΡΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΡΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠ°Π΄ΠΎ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΊΠ»ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡ, ΡΠΈΡΠ°ΡΡ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΠΌ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎ SMS, ΡΠΈΡΠ°ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ ΠΎΡ ΡΡΠΊΠΈ, Π²Π²ΠΎΠ΄ΠΈΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π² URL. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΡΠ΅Π΄ΠΈΡΠ½ΡΡ ΠΊΠ°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Ρ ΠΎΡΡ Π±Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Π΅ (Ρ.Π΅. pseudo_encrypt(pseudo_encrypt(x)) = x ). Π’ΠΎΡΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΡΠ½ΠΎΡΡΡ, ΠΈ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΠΎΠ³Π°Π΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΡΡ Π€Π΅ΠΉΡΡΠ΅Π»Ρ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ PostgreSQL, ΡΠΎ Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ (((1366 * r1 + 150889) % 714025) / 714025.0) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΎΠ±Π»Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΡ 0 Π΄ΠΎ 1, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pseudo_encrypt:
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π»Ρ short_id ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π΄Π»Ρ bigint Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π€Π΅ΠΉΡΡΠ΅Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ XTEA.
ΠΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π΅Ρ Π² ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ pg_hashids:
ΠΠ΄Π΅ΡΡ ΡΠ½ΠΎΠ²Π° Π±ΡΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ°ΠΌΠΈ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, Π½ΠΎ Π·Π°ΠΌΠ΅ΡΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΈΠΌΠ΅Π΅Ρ Π»ΠΈ ΡΡΠΎ ΡΠΌΡΡΠ» Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅.
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΡΠΊΠΎ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠΈΠ² ΡΠΌΡΡΠ» ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΡ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠΏΠΎΡΡ Β«Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ² ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΡ Β» ΡΠ²Π»ΡΡΡΡΡ Π»ΠΎΠΆΠ½ΠΎΠΉ Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΠ΅ΠΉ. ΠΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°! Π ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ ΡΠ΅, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ, Π·Π° ΡΠ΅Π΄ΠΊΠΈΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ² ΠΊΡΠΏΠΎΠ½ΠΎΠ²):
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΈ Π²Ρ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, ΡΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΌΠΈ:
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΡΠΎΡΠΈΠ² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ Π½Π΅ΡΡΡ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π·Π°ΡΡΠ°ΡΡ Π½Π° Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ Π²Π°ΠΆΠ½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΊΠ»ΡΡΠΈ Π²ΡΠ΅ ΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΡΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ (Applicants) ΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ (Employees). ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ Π±ΡΠ» ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠΌ, ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°ΠΌ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈ ΠΊΠ»ΡΡΠΎΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°. ΠΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ΠΈ ΠΈΠΌΡ Π»ΠΎΠ³ΠΈΠ½Π° ΠΊΠ°ΠΊ Π΄Π²Π° ΠΊΠ»ΡΡΠ° Π² Employees.
Π‘ΡΡΡΠΎΠ³Π°ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ
ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, Π²Π°ΠΆΠ½ΡΠΉ ΡΠΈΠΏ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡΒ». ΠΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΌ, ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΊΠ°, Π²ΡΠ΅Π³Π΄Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΡ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² SQL, Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ (system columns) ΠΈΠ· PostgreSQL, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΡΡΠΎΠ³Π°ΡΡ ΠΏΠΎΡΡΠΈ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (Π²ΡΠΎΠ΄Π΅ ctid), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠ³Π°ΡΠ° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠΎΡΠΎΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
ΠΠ΅ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Β«Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈΒ». ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΠΈΠ»ΠΈ, ΡΡΠΎ Ρ ΡΠΆΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠΈΡΠΊ), ΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ΄Π°Π΄ΠΈΡΠ΅ ΠΊΠ»ΡΡΡ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΡ. ΠΠΎΡΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π² ΡΡΠ΅ΠΉ-ΡΠΎ ΡΡΠΆΠΎΠΉ ΠΠ.
ΠΡΠΈΠ½ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠΈ ΠΊΠ»ΡΡΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠ΅Π½ΡΡΡΠΈΠΌΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ, Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΡΡΠ»ΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΡΠΎΠ³Π°ΡΠΎΠ².
ΠΠ²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΠ΅ bigint
ΠΠ΄Π½Π°ΠΊΠΎ, Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΠΏΠ»ΠΎΡ ΠΎΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ. Π’Π°ΠΊΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡΡΡ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» (128-Π±ΠΈΡΠ½ΡΡ ), Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (universally unique identifier, UUID) ΠΈΠΌΠ΅ΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΌΠ°Π»ΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π²Π°ΠΆΠ΄Ρ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π° Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ .
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, UUID ΠΊΠ°ΠΆΡΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π½Π΅ ΠΏΡΠ°Π²Π΄Π° Π»ΠΈ? ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΡΡΠΎΠΊΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎ Π½ΠΈΡΡΠΎ Π½Π΅ ΡΡΠ°Π²Π½ΠΈΡΡΡ Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ!
Π’Π°ΠΊ ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ Π²ΡΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠΌΠΈ Π² PostgreSQL? ΠΠ° ΡΡΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°Π΄ΡΠΌΠ°Π½Π½ΡΡ ΠΏΡΠΈΡΠΈΠ½ ΠΈ ΠΎΠ΄Π½Π° Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ, ΠΈ Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Ρ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π½Π°Π΄ΡΠΌΠ°Π½Π½ΡΡ ΠΏΡΠΈΡΠΈΠ½Π°Ρ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ UUID β ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ Π΄Π΅ΡΠΈΡΠΎΠΌ: 5bd68e64-ff52-4f54-ace4-3cd9161c8b7f. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ (128-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ) ΡΠΈΠΏΠ° uuid, Π½ΠΎ Π² PostgreSQL ΠΎΠ½ Π΅ΡΡΡ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π²ΡΡ bigint, Ρ.Π΅., ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΎΠ±ΡΡΠΌΠΎΠΌ ΠΏΡΠΎΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Ρ.
ΠΡΡ UUID Π½Π΅Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΠΎ ΠΎΠ±Π²ΠΈΠ½ΡΠ΅ΡΡΡ Π² Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΡΡΠΈ, Π½ΠΎ ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡ ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡ, ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠΈΡΠ°ΡΡ? ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π½ΠΎ Π½ΠΈΠΊΡΠΎ (ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΠΉ UUID. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ UUID Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SQL Π² psql Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ Π½Π° ΡΡΠΎΠΌ Π²ΡΡ. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΡΠΎΠΊΠΈ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π·Π°Π΄Π°Π½Ρ.
Π Π΅Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ UUID Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ (write amplification) ΠΈΠ·-Π·Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠΎΠ»Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡ Π² ΠΆΡΡΠ½Π°Π» Ρ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΡΡ (write-ahead log, WAL). ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ UUID.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠΈΠΌ write amplification. ΠΠΎ ΠΏΡΠ°Π²Π΄Π΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΠΎΠ³Π΄Π° PostgreSQL Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ Π½Π° Π΄ΠΈΡΠΊ, ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Β«ΡΡΡΠ°Π½ΠΈΡΡΒ» Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΅ΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΡΠ»ΠΈ PostgreSQL Π½Π°ΠΈΠ²Π½ΠΎ Π²ΠΎΡΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΡΠ½Π½ΡΠΌ, ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π°.
Π Π°Π· PostgreSQL Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ²Π΅ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΠΠ‘/ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ/ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π΄ΠΈΡΠΊΠΎΠ² Π² Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠ°Π·ΡΡΠ²Π½ΠΎΡΡΠΈ, Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΆΡΡΠ½Π°Π» Ρ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΡΡ (write-ahead log), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠ±ΠΎΡ. ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ UUID ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΠΊΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ 4 ΠΈΠ»ΠΈ 8 ΠΠ) Π² WAL Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ (full-page write, FPW).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ UUID (ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Β«snowflakeΒ» ΠΎΡ Twitter ΠΈΠ»ΠΈ uuid_generate_v1() Π² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ uuid-ossp Π΄Π»Ρ PostgreSQL) ΡΠΎΠ·Π΄Π°ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΠ΄ΠΈΡΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ°Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ FPW.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠΈΠΌ Π²Π»ΠΈΡΠ½ΠΈΠ΅ FPW Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ UUID, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ WAL. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠ°.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΊ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ UUID Π² ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ write-ahead log.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ°ΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ WAL ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°. Π’Π°ΠΊ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΡΠΎΠ±ΡΡΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ:
Π― ΠΏΡΠΎΠ²ΡΠ» ΡΠ΅ΡΡΡ ΡΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²:
Π Π²ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π·Π°ΠΌΠ΅ΡΠΎΠ² ΡΠΊΠΎΡΠΎΡΡΠΈ:
ΠΡΠ°ΡΠΈΠΊ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ UUID
ΠΠΎΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° WAL Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ gen_random_uuid ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² WAL ΠΈΠ·-Π·Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² (full-page images, FPI), Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΡΠΈΠΌ Π½Π΅ ΡΡΡΠ°Π΄Π°ΡΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² ΡΡΠ΅ΡΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΠ» Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ Π·Π°ΠΏΡΠ΅Ρ FPW ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠΎ, ΡΡΠΎ ΡΡΠΎΠΈΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΈΡΠΊΠΎΠ². Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ZFS ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ FPW, Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈΠΌ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ.
Π―Π²Π½ΡΠΌ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Π΅ΠΌ Π² ΠΌΠΎΡΠΌ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΡΡ uuid_generate_v1() β ΠΎΠ½ Π±ΡΡΡΡ ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠΈ ΡΡΡΠΎΠΊ. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ uuid-ossp ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² ΡΠ°ΠΊΠΈΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ RDS ΠΈ Citus Cloud, ΠΈ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ.
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ uuid_generate_v1:
Π Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ MAC-Π°Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈ ΠΌΠ΅ΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π£ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ UUID ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π» ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΈ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΊΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ.
ΠΡΠΎΠ³ΠΈ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Ρ Ρ ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΠΌΠΎΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ Π² Π²Π°ΡΠΈΡ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ:
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠΏΡΡΠΊΠ°Ρ ΠΈ Π΄Π°ΠΆΠ΅ Π·Π°ΡΠΈΡΠ°Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ. Π ΡΠΎΠΌΡ ΠΆΠ΅, Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π½Π΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΊ ΡΠ΅ΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°Π²ΡΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Β«ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ°Ρ Β» ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠ΅ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ.
ΠΠ±ΡΡΠΆΠ΄Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π½Π° Π½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡ . ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π·Π° ΠΏΠ»Π΅ΡΠ°ΠΌΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΏΡΡ Π² ΠΠ’-ΡΡΠ΅ΡΠ΅, Π½Π°Π±ΠΎΠ»Π΅Π»ΠΎ, Π½Π°ΠΊΠΈΠΏΠ΅Π»ΠΎ ΠΈ Ρ ΠΎΡΠ΅ΡΡΡ Π²ΡΡΠΊΠ°Π·Π°ΡΡΡΡ, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΎΠΏΡΡΠΎΠΌ ΠΈΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΡΠΎΠ²Π΅ΡΠ°, ΡΠΎ Π½Π° ΠΌΠ°ΠΉΡΠΊΠΎΠΌ ΡΠ΅ΡΡΠΈΠ²Π°Π»Π΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΉ Π ΠΠ’++ Π±ΡΠ΄ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ, 8 ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ DevOps ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ΄Π°ΡΡ Π·Π°ΡΠ²ΠΊΡ Π½Π° Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ.