Π”Π°Π»ΠΈ мултимодСлскитС DBMS сС основата Π½Π° соврСмСнитС информациски систСми?

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅ информациски систСми сС доста слоТСни. НС ΠΈ Π½Π°Ρ˜ΠΌΠ°Π»ΠΊΡƒ Π²Π°ΠΆΠ½ΠΎ, Π½ΠΈΠ²Π½Π°Ρ‚Π° слоТСност сС Π΄ΠΎΠ»ΠΆΠΈ Π½Π° слоТСноста Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π²ΠΎ Π½ΠΈΠ². ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ чСсто Π»Π΅ΠΆΠΈ Π²ΠΎ разновидноста Π½Π° користСнитС ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π’Π°ΠΊΠ°, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ стануваат β€žΠ³ΠΎΠ»Π΅ΠΌΠΈβ€œ, Π΅Π΄Π½Π° ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ карактСристики Π½Π΅ Π΅ само Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ (β€žΠ²ΠΎΠ»ΡƒΠΌΠ΅Π½β€œ), Ρ‚ΡƒΠΊΡƒ ΠΈ Π½ΠΈΠ²Π½Π°Ρ‚Π° разновидност (β€žΡ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚β€œ).

Ако сè ΡƒΡˆΡ‚Π΅ Π½Π΅ Π½Π°Ρ˜Π΄ΠΎΠ²Ρ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠ° Π²ΠΎ Ρ€Π°ΡΡƒΠ΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ, Ρ‚ΠΎΠ³Π°Ρˆ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ˜Ρ‚Π΅.

Π”Π°Π»ΠΈ мултимодСлскитС DBMS сС основата Π½Π° соврСмСнитС информациски систСми?


содрТина

ΠŸΠΎΠ»ΠΈΠ³Π»ΠΎΡ‚Π½Π° упорност
ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π»
ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° рСлациски ΠΌΠΎΠ΄Π΅Π»
     ΠœΠΎΠ΄Π΅Π» Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π²ΠΎ MS SQL Server
     Π“Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ MS SQL Server
ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS Π²Ρ€Π· основа Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚
     Π Π΅Π»Π°Ρ†ΠΈΡΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ MarkLogic
     Π“Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ MarkLogic
ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS β€žΠ±Π΅Π· Π³Π»Π°Π²Π΅Π½ ΠΌΠΎΠ΄Π΅Π»β€œ
     ΠΡ€Π°Π½Π³ΠΎΠ”Π‘
     OrientDB
     Azure CosmosDB
ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»?
Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ
ΠžΠΏΡ€ΠΎΡ

ΠŸΠΎΠ»ΠΈΠ³Π»ΠΎΡ‚Π½Π° упорност

Π“ΠΎΡ€Π΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΡ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° понСкогаш Π΄ΡƒΡ€ΠΈ ΠΈ Π²ΠΎ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π΅Π½ систСм Π΅ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ Π΄Π° сС користат Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ DBMS Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π½ΠΈΠ²Π½Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΎΠ΄ ΠΊΠΎΠΈ сСкоја ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° свој ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π‘ΠΎ лСсната Ρ€Π°ΠΊΠ° Π½Π° М. Π€Π°ΡƒΠ»Π΅Ρ€, Π°Π²Ρ‚ΠΎΡ€ΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΊΠΎΠ°Π²Ρ‚ΠΎΡ€ΠΈ АгилСн манифСст, ΠΎΠ²Π°Π° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π° сС Π²ΠΈΠΊΠ° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ со повСќС Π²Π°Ρ€ΠΈΡ˜Π°Π½Ρ‚ΠΈ (β€žΠŸΠΎΠ»ΠΈΠ³Π»ΠΎΡ‚Π½Π° ΡƒΠΏΠΎΡ€Π½ΠΎΡΡ‚β€œ).

Π€Π°ΡƒΠ»Π΅Ρ€ исто Ρ‚Π°ΠΊΠ° Π³ΠΎ ΠΈΠΌΠ° слСдниов ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ цСлосна ΠΎΠΏΡ€Π΅ΠΌΠ΅Π½Π° ΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€Π΅Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π²ΠΎ областа Π½Π° Π΅-Ρ‚Ρ€Π³ΠΎΠ²ΠΈΡ˜Π°.

Π”Π°Π»ΠΈ мултимодСлскитС DBMS сС основата Π½Π° соврСмСнитС информациски систСми?

Овој ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, Π΅ Π΄ΠΎΠ½Π΅ΠΊΠ°Π΄Π΅ ΠΏΡ€Π΅Ρ‚Π΅Ρ€Π°Π½, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Ρ˜Π΄Π°Ρ‚ Π½Π΅ΠΊΠΎΠΈ Ρ€Π°Π·ΠΌΠΈΡΠ»ΡƒΠ²Π°ΡšΠ° Π²ΠΎ корист Π½Π° ΠΈΠ·Π±ΠΎΡ€ΠΎΡ‚ Π½Π° Π΅Π΄Π΅Π½ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ DBMS Π·Π° соодвСтната Ρ†Π΅Π», Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΡƒΠΊΠ°.

Јасно Π΅ Π΄Π΅ΠΊΠ° Π΄Π° сС Π±ΠΈΠ΄Π΅ слуга Π²ΠΎ Ρ‚Π°ΠΊΠ²Π° зоолошка Π³Ρ€Π°Π΄ΠΈΠ½Π° Π½Π΅ Π΅ лСсно.

  • ΠšΠΎΠ»ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄ ΡˆΡ‚ΠΎ Π²Ρ€ΡˆΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ растС ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ со Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° користСни DBMS; ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π·Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π΅ Π΄ΠΎΠ±Ρ€Π° Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½Π° со ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΡ‚ Π½Π° овој Π±Ρ€ΠΎΡ˜.
  • Како ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΎΠ΄ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° користСни DBMS, Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈΡ‚Π΅ Π·Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ карактСристики Π½Π° ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚ΠΈΠ΅Ρ‚ΠΎ (приспособливост, Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ†ΠΈΡ˜Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, висока достапност) Π½Π° сСкој ΠΎΠ΄ користСнитС DBMS сС Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°Π°Ρ‚.
  • НСвозмоТно Π΅ Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ‚ карактСристикитС Π½Π° ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° потсистСмот Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΊΠ°ΠΊΠΎ Ρ†Π΅Π»ΠΈΠ½Π° - особСно трансакционалноста.

Од Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΎΡ‚ Π½Π° Π·ΠΎΠΎΠ»ΠΎΡˆΠΊΠ°Ρ‚Π° Π³Ρ€Π°Π΄ΠΈΠ½Π°, сè ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

  • ΠŸΠΎΠ²Π΅ΡœΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° Π»ΠΈΡ†Π΅Π½Ρ†ΠΈΡ‚Π΅ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠ°Ρ‚Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° ΠΎΠ΄ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΎΡ‚ Π½Π° DBMS.
  • ΠŸΡ€Π΅Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎΡΡ‚ ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½ΠΈ Ρ€ΠΎΠΊΠΎΠ²ΠΈ.
  • Π”ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ финансиски Π·Π°Π³ΡƒΠ±ΠΈ ΠΈΠ»ΠΈ ΠΊΠ°Π·Π½ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ нСдослСдност Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅.

Има Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²ΠΊΡƒΠΏΠ½ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈ Π·Π° сопствСност Π½Π° систСмот (TCO). Π”Π°Π»ΠΈ ΠΈΠΌΠ° нСкој ΠΈΠ·Π»Π΅Π· ΠΎΠ΄ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° β€žΠΏΠΎΠ²Π΅ΡœΠ΅ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅β€œ?

ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π»

Π’Π΅Ρ€ΠΌΠΈΠ½ΠΎΡ‚ β€žΠΌΡƒΠ»Ρ‚ΠΈΠ²Π°Ρ€ΠΈΡ˜Π°Ρ‚Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅β€œ Π²Π»Π΅Π·Π΅ Π²ΠΎ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π²ΠΎ 2011 Π³ΠΎΠ΄ΠΈΠ½Π°. БвСсноста Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½Π° пристапот ΠΈ Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π΅ΡˆΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π° Π΄ΠΎ 2015 Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΏΡ€Π΅ΠΊΡƒ устата Π½Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π°Ρ€ΠΈΡ‚Π΅ Π½Π° Π“Π°Ρ€Ρ‚Π½Π΅Ρ€, бСшС Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΎΡ‚:

Π‘Π΅ Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° овој ΠΏΠ°Ρ‚ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π°Ρ€ΠΈΡ‚Π΅ Π½Π° Π“Π°Ρ€Ρ‚Π½Π΅Ρ€ Π±Π΅Π° Π²ΠΎ ΠΏΡ€Π°Π²ΠΎ со ΡΠ²ΠΎΡ˜Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π°. Ако ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° страницата со Π³Π»Π°Π²Π΅Π½ Ρ€Π΅Ρ˜Ρ‚ΠΈΠ½Π³ DBMS Π½Π° DB-Engines, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚ΠΎΠ°ΠΎΠŸΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ ΠΎΠ΄ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Π»ΠΈΠ΄Π΅Ρ€ΠΈ сС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π°Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΊΠ°ΠΊΠΎ ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS. Π˜ΡΡ‚ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ Π½Π° страницата со која Π±ΠΈΠ»ΠΎ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Π° ΠΎΡ†Π΅Π½Π°.

Π’Π°Π±Π΅Π»Π°Ρ‚Π° ΠΏΠΎΠ΄ΠΎΠ»Ρƒ Π³ΠΈ ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° DBMS - Π»ΠΈΠ΄Π΅Ρ€ΠΈΡ‚Π΅ Π²ΠΎ сСкоја ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΈΡ‚Π΅ Ρ€Π΅Ρ˜Ρ‚ΠΈΠ½Π·ΠΈ, ΠΊΠΎΠΈ Ρ‚Π²Ρ€Π΄Π°Ρ‚ Π΄Π΅ΠΊΠ° сС ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π». Π—Π° сСкој DBMS Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΠΎΡ‚ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ ΠΌΠΎΠ΄Π΅Π» (кој нСкогаш бСшС СдинствСниот) ΠΈ Π·Π°Π΅Π΄Π½ΠΎ со Π½Π΅Π³ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ сС ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ. НавСдСни сС ΠΈ DBMS ΠΊΠΎΠΈ сС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π°Ρ‚ ΠΊΠ°ΠΊΠΎ β€žΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π»β€œ ΠΈ, спорСд ΠΊΡ€Π΅Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, Π½Π΅ΠΌΠ°Π°Ρ‚ ΠΏΠΎΡ‡Π΅Ρ‚Π΅Π½ наслСдСн ΠΌΠΎΠ΄Π΅Π».

Π”Π‘ΠœΠ‘ ΠŸΠΎΡ‡Π΅Ρ‚Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ
Oracle РСлациски Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚
MS SQL РСлациски Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚
PostgreSQL РСлациски Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½*, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚
MarkLogic Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€Π΅Ρ† Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, рСлациски
MongoDB Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€Π΅Ρ† ΠšΠ»ΡƒΡ‡-врСдност, Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½*
DataStax Π¨ΠΈΡ€ΠΎΠΊΠ° ΠΊΠΎΠ»ΠΎΠ½Π° Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€Π΅Π½ Ρ„ΠΈΠ»ΠΌ, Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½
Redis ΠšΠ»ΡƒΡ‡-врСдност Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€Π΅Π½ Ρ„ΠΈΠ»ΠΌ, Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½*
АрангоДБ - Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚
OrientDB - Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, рСлациски
Azure CosmosDB - Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, рСлациски

Π‘Π΅Π»Π΅ΡˆΠΊΠΈ Π½Π° масата

Π…Π²Π΅Π·Π΄ΠΈΡ‡ΠΊΠΈΡ‚Π΅ Π²ΠΎ Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° ΠΎΠ·Π½Π°Ρ‡ΡƒΠ²Π°Π°Ρ‚ изјави Π·Π° ΠΊΠΎΠΈ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π°Ρ†ΠΈΡ˜Π°:

  • PostgreSQL DBMS Π½Π΅ Π³ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ со Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ, Π½ΠΎ овој ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ Π³ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Π²Ρ€Π· основа Π½Π° Ρ‚ΠΎΠ°, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ AgensGraph.
  • Π’ΠΎ однос Π½Π° MongoDB, ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΅ Π΄Π° сС Π·Π±ΠΎΡ€ΡƒΠ²Π° Π·Π° присуство Π½Π° графски ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π²ΠΎ Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ ($lookup, $graphLookup) ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΎΡ‚, ΠΈΠ°ΠΊΠΎ, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, Π½ΠΈΠ²Π½ΠΎΡ‚ΠΎ Π²ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π±Π°Ρ€Π°ΡˆΠ΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Ρ„ΠΈΠ·ΠΈΡ‡ΠΊΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ насока Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΡ‚.
  • Π’ΠΎ однос Π½Π° РСдис мислимС Π½Π° Π΅ΠΊΡΡ‚Π΅Π½Π·ΠΈΡ˜Π°Ρ‚Π° RedisGraph.

Π‘Π»Π΅Π΄Π½ΠΎ, Π·Π° сСкоја ΠΎΠ΄ класитС, ќС ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π²ΠΎ DBMS ΠΎΠ΄ ΠΎΠ²Π°Π° класа. ЌС Π³ΠΈ смСтамС рСлацискитС, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ ΠΊΠ°ΠΊΠΎ најваТни ΠΈ ќС користимС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° спСцифични DBMS Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ β€žΠΎΠ½ΠΈΠ΅ ΡˆΡ‚ΠΎ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡΡƒΠ²Π°Π°Ρ‚β€œ.

ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° рСлациски ΠΌΠΎΠ΄Π΅Π»

Π’ΠΎΠ΄Π΅Ρ‡ΠΊΠΈΡ‚Π΅ DBMS Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² сС рСлациски; ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π°Ρ‚Π° Π½Π° Π“Π°Ρ€Ρ‚Π½Π΅Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС смСта Π·Π° вистинита Π°ΠΊΠΎ RDBMS Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ‚ двиТСњС Π²ΠΎ насока Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°ΡšΠ΅. И дСмонстрираат. Π‘Π΅Π³Π° ΠΈΠ΄Π΅Ρ˜Π°Ρ‚Π° Π΄Π΅ΠΊΠ° ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS Π΅ ΠΊΠ°ΠΊΠΎ ΡˆΠ²Π°Ρ˜Ρ†Π°Ρ€ΡΠΊΠΈ Π½ΠΎΠΆ, кој Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½ΠΈΡˆΡ‚ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° сС насочи Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄ΠΎ Π›Π°Ρ€ΠΈ Елисон.

Авторот, сСпак, ΠΏΡ€Π΅Ρ‚ΠΏΠΎΡ‡ΠΈΡ‚Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ Microsoft SQL Server, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π½Π° кој ќС Π±ΠΈΠ΄Π΅ опишана ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° RDBMS Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ.

МодСл Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π²ΠΎ MS SQL Server

Π’Π΅ΡœΠ΅ имашС Π΄Π²Π΅ ΠΎΠ΄Π»ΠΈΡ‡Π½ΠΈ статии Π½Π° Π₯Π°Π±Ρ€Π΅ Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ MS SQL Server ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ; ќС сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°ΠΌ Π½Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΏΡ€Π΅Ρ€Π°ΡΠΊΠ°ΠΆΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€:

Начинот Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π²ΠΎ MS SQL Server Π΅ сосСма Ρ‚ΠΈΠΏΠΈΡ‡Π΅Π½ Π·Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½ΠΈΡ‚Π΅ DBMS: Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ JSON сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π°Ρ‚ Π΄Π° сС складираат Π²ΠΎ ΠΎΠ±ΠΈΡ‡Π½ΠΈ тСкстуални полиња. ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π΅ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° овој JSON:

  • JSON_VALUE Π΄Π° сС ΠΈΠ·Π²Π»Π΅Ρ‡Π°Ρ‚ скаларни врСдности Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚,
  • JSON_QUERY Π΄Π° сС ΠΈΠ·Π²Π»Π΅Ρ‡Π°Ρ‚ ΠΏΠΎΠ΄Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ.

Π’Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π° Π΄Π²Π°Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π΅ ΠΈΠ·Ρ€Π°Π· Π²ΠΎ синтаксата слична Π½Π° JSONPath.

Апстрактно, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ складирани Π½Π° овој Π½Π°Ρ‡ΠΈΠ½ Π½Π΅ сС β€žΠΏΡ€Π²ΠΎΠΊΠ»Π°ΡΠ½ΠΈ Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈβ€œ Π²ΠΎ рСлациска DBMS, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ Ρ‚ΠΎΡ‡ΠΊΠΈΡ‚Π΅. ΠŸΠΎΡ‚ΠΎΡ‡Π½ΠΎ, Π²ΠΎ MS SQL Server ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ Π½Π΅ΠΌΠ° индСкси Π½Π° ΠΏΠΎΠ»ΠΈΡšΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ JSON, ΡˆΡ‚ΠΎ Π³ΠΎ ΠΎΡ‚Π΅ΠΆΠ½ΡƒΠ²Π° ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΈ врСдноститС Π½Π° ΠΎΠ²ΠΈΠ΅ полиња, ΠΏΠ° Π΄ΡƒΡ€ΠΈ ΠΈ ΠΈΠ·Π±ΠΎΡ€ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΈ ΠΎΠ²ΠΈΠ΅ врСдности. Π‘Π΅ΠΏΠ°ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС создадС прСсмСтана ΠΊΠΎΠ»ΠΎΠ½Π° Π·Π° Ρ‚Π°ΠΊΠ²ΠΎ ΠΏΠΎΠ»Π΅ ΠΈ индСкс Π½Π° Π½Π΅Π³ΠΎ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, MS SQL Server ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° моТност Π·Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ JSON ΠΎΠ΄ содрТината Π½Π° Ρ‚Π°Π±Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΡ‚ FOR JSON PATH - моТност, Π²ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° смисла, спротивна Π½Π° ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π°Ρ‚Π°, ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅. Јасно Π΅ Π΄Π΅ΠΊΠ° Π±Π΅Π· Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΊΠΎΠ»ΠΊΡƒ Π΅ Π±Ρ€Π· RDBMS, овој пристап Π΅ Π²ΠΎ спротивност со ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°Ρ‚Π° Π½Π° DBMS Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈ Π²ΠΎ ΡΡƒΡˆΡ‚ΠΈΠ½Π° складираат Π³ΠΎΡ‚ΠΎΠ²ΠΈ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π°Π°Ρ‚ само ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со Π»Π΅ΡΠ½ΠΎΡ‚ΠΈΡ˜Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜, Π½ΠΎ Π½Π΅ ΠΈ Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π°.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, MS SQL Server Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΎ Ρ€Π΅ΡˆΠΈΡ‚Π΅ спротивниот ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π° ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚Π΅ JSON Π½Π° Ρ‚Π°Π±Π΅Π»ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ OPENJSON. Ако Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π΅ Π΅ цСлосно Ρ€Π°ΠΌΠ΅Π½, ќС Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ користитС CROSS APPLY.

Π“Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ MS SQL Server

ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π³Ρ€Π°Ρ„ (LPG) Π΅ цСлосно ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° ΠΈ Π²ΠΎ Microsoft SQL Server ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²ΠΈ: Π‘Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄Π° сС користат ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° јазли ΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ€Π°Π±ΠΎΠ²ΠΈΡ‚Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΡ‚. Π’Π°ΠΊΠ²ΠΈΡ‚Π΅ Ρ‚Π°Π±Π΅Π»ΠΈ сС ΠΊΡ€Π΅ΠΈΡ€Π°Π°Ρ‚ со помош Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΈ CREATE TABLE AS NODE ΠΈ CREATE TABLE AS EDGE соодвСтно.

Π’Π°Π±Π΅Π»ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΏΡ€Π²ΠΈΠΎΡ‚ Ρ‚ΠΈΠΏ сС слични Π½Π° ΠΎΠ±ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ‚Π°Π±Π΅Π»ΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ записи, со СдинствСната Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΡˆΡ‚ΠΎ Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° содрТи систСмско ΠΏΠΎΠ»Π΅ $node_id β€” СдинствСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ јазол Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

Π‘Π»ΠΈΡ‡Π½ΠΎ Π½Π° Ρ‚ΠΎΠ°, Ρ‚Π°Π±Π΅Π»ΠΈΡ‚Π΅ ΠΎΠ΄ Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΈΠΌΠ°Π°Ρ‚ систСмски полиња $from_id ΠΈ $to_id, записитС Π²ΠΎ Ρ‚Π°ΠΊΠ²ΠΈΡ‚Π΅ Ρ‚Π°Π±Π΅Π»ΠΈ јасно Π³ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π°Ρ‚ врскитС ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ˜Π°Π·Π»ΠΈΡ‚Π΅. ПосСбна Ρ‚Π°Π±Π΅Π»Π° сС користи Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° врски ΠΎΠ΄ сСкој Ρ‚ΠΈΠΏ.

Π”Π°Π»ΠΈ мултимодСлскитС DBMS сС основата Π½Π° соврСмСнитС информациски систСми? Π”Π° Π³ΠΎ илустрирамС ΠΎΠ²Π° со ΠΏΡ€ΠΈΠΌΠ΅Ρ€. НСка ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΎΠ΄ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΎΡ‚ ΠΈΠΌΠ°Π°Ρ‚ распорСд ΠΊΠ°ΠΊΠΎ оној ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ Π½Π° сликата. ΠŸΠΎΡ‚ΠΎΠ°, Π·Π° Π΄Π° ја ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ соодвСтната структура Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚Π΅ слСднитС DDL Π±Π°Ρ€Π°ΡšΠ°:

CREATE TABLE Person (
  ID INTEGER NOT NULL,
  name VARCHAR(100)
) AS NODE;

CREATE TABLE Cafe (
  ID INTEGER NOT NULL, 
  name VARCHAR(100), 
) AS NODE;

CREATE TABLE likes (
  rating INTEGER
) AS EDGE;

CREATE TABLE friendOf
  AS EDGE;

ALTER TABLE likes
  ADD CONSTRAINT EC_LIKES CONNECTION (Person TO Cafe);

Π“Π»Π°Π²Π½Π°Ρ‚Π° спСцифичност Π½Π° Π²Π°ΠΊΠ²ΠΈΡ‚Π΅ Ρ‚Π°Π±Π΅Π»ΠΈ Π΅ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Π²ΠΎ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π½ΠΈΠ² Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС користат шСми Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ со синтакса слична Π½Π° Cypher (сСпак, β€ž*β€žΠΈΡ‚Π½. сè ΡƒΡˆΡ‚Π΅ Π½Π΅ сС ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ). Π’Ρ€Π· основа Π½Π° ΠΌΠ΅Ρ€Π΅ΡšΠ°Ρ‚Π° Π½Π° пСрформанситС, исто Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° сС прСтпостави Π΄Π΅ΠΊΠ° Π½Π°Ρ‡ΠΈΠ½ΠΎΡ‚ Π½Π° кој ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ сС Ρ‡ΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ ΠΎΠ²ΠΈΠ΅ Ρ‚Π°Π±Π΅Π»ΠΈ Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΎΠ΄ Π½Π°Ρ‡ΠΈΠ½ΠΎΡ‚ Π½Π° кој ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ сС складираат Π²ΠΎ ΠΎΠ±ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ‚Π°Π±Π΅Π»ΠΈ ΠΈ Π΄Π΅ΠΊΠ° Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ‚Π°ΠΊΠ²ΠΈ Π±Π°Ρ€Π°ΡšΠ° Π·Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ.

SELECT Cafe.name
  FROM Person, likes, Cafe
  WHERE MATCH (Person-(friendOf)-(likes)->Cafe)
  AND Person.name = 'John';

ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, доста Π΅ Ρ‚Π΅ΡˆΠΊΠΎ Π΄Π° Π½Π΅ сС користат ΠΎΠ²ΠΈΠ΅ шСми Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ ΠΊΠΎΠ³Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ со Ρ‚Π°ΠΊΠ²ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ, бидСјќи Π²ΠΎ ΠΎΠ±ΠΈΡ‡Π½ΠΈΡ‚Π΅ SQL ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ слични ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ќС Π±ΠΈΠ΄Π΅ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π½Π°ΠΏΠΎΡ€ΠΈ Π·Π° Π΄Π° сС Π΄ΠΎΠ±ΠΈΡ˜Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° јазли Π½Π° систСмот (Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½).$node_id, $from_id, $to_id; Од истата ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° Π²ΠΌΠ΅Ρ‚Π½ΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π΅ сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ ΠΎΠ²Π΄Π΅ бидСјќи сС Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΈ).

Π”Π° Π³ΠΎ Ρ€Π΅Π·ΠΈΠΌΠΈΡ€Π°ΠΌΠ΅ описот Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ Π²ΠΎ MS SQL Server, Π±ΠΈ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π» Π΄Π΅ΠΊΠ° Ρ‚Π°ΠΊΠ²ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° Π΅Π΄Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π²Ρ€Π· Π΄Ρ€ΡƒΠ³ Π½Π΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ, првСнствСно ΠΎΠ΄ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Ρ˜Π°Π·ΠΈΡ‡Π½ΠΈΠΎΡ‚ дизајн. НСопходно Π΅ Π΄Π° сС ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈ Π΅Π΄Π΅Π½ јазик со Π΄Ρ€ΡƒΠ³, Ρ˜Π°Π·ΠΈΡ†ΠΈΡ‚Π΅ Π½Π΅ сС цСлосно β€žΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»Π½ΠΈβ€œ, ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° компатибилност ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π±ΠΈΠ·Π°Ρ€Π½ΠΈ.

ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS Π²Ρ€Π· основа Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚

Π’ΠΎ овој Π΄Π΅Π», Π±ΠΈ сакал Π΄Π° ја илустрирам ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ DBMS ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π½Π° Π½Π΅ Π½Π°Ρ˜ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΈΠΎΡ‚ ΠΎΠ΄ Π½ΠΈΠ², MongoDB (ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ бСшС ΠΊΠ°ΠΆΠ°Π½ΠΎ, ΠΈΠΌΠ° само условни графски ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ $lookup ΠΈ $graphLookup, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° распарчСни ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ), Ρ‚ΡƒΠΊΡƒ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π½Π° ΠΏΠΎΠ·Ρ€Π΅Π» ΠΈ β€žΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π΅Π½β€œ DBMS MarkLogic.

Π—Π½Π°Ρ‡ΠΈ, Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Ρ‚Π΅ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π΄Π° содрТи Π·Π±ΠΈΡ€ Π½Π° XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠ΄ слСдниов Ρ‚ΠΈΠΏ (MarkLogic исто Ρ‚Π°ΠΊΠ° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° складиратС JSON Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ):

<Person INN="631803299804">
  <name>John</name>
  <surname>Smith</surname>
</Person>

РСлациски ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ MarkLogic

МоТС Π΄Π° сС ΠΊΡ€Π΅ΠΈΡ€Π° рСлациски ΠΏΡ€ΠΈΠΊΠ°Π· Π½Π° Π·Π±ΠΈΡ€ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ шаблон Π·Π° ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π°ΡšΠ΅ (содрТина Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ value Π²ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ ΠΏΠΎΠ΄ΠΎΠ»Ρƒ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° XPath):

<template >
  <context>/Person</context>
  <rows>
    <row>
      <view-name>Person</view-name>
      <columns>
        <column>
          <name>SSN</name>
          <value>@SSN</value>
          <type>string</type>
        </column>
        <column>
          <name>name</name>
          <value>name</value>
        </column>
        <column>
          <name>surname</name>
          <value>surname</value>
        </column>
      </columns>
    </row>
  <rows>
</template>

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ адрСсиратС ΠΊΡ€Π΅ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· со SQL Π±Π°Ρ€Π°ΡšΠ΅ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΊΡƒ ODBC):

SELECT name, surname FROM Person WHERE name="John"

Π—Π° ΠΆΠ°Π», рСлацискиот ΠΏΡ€ΠΈΠΊΠ°Π· создадСн ΠΎΠ΄ ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚ Π·Π° ΠΏΡ€ΠΈΠΊΠ°Π· Π΅ само Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅. Кога ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π° Π±Π°Ρ€Π°ΡšΠ΅ Π·Π° Π½Π΅Π³ΠΎ, MarkLogic ќС сС ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° Π³ΠΎ користи индСкси Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ. ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ, MarkLogic имашС цСлосно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ рСлациски ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ Π²Ρ€Π· основа Π½Π° индСкс ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚, Π½ΠΎ сСга сС смСтаат Π·Π° застарСни.

Π“Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ MarkLogic

Π‘ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊ (RDF), сè Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ исто. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ со помош шаблон Π·Π° ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π°ΡšΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ RDF Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Π·Π±ΠΈΡ€ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ ΠΏΠΎΠ³ΠΎΡ€Π΅:

<template >
  <context>/Person</context>
    <vars>
      <var>
        <name>PREFIX</name>
        <val>"http://example.org/example#"</val>
      </var>
    </vars>
  <triples>
    <triple>
      <subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
      <predicate><value>sem:iri( $PREFIX || surname )</value></predicate>
      <object><value>xs:string( surname )</value></object>
    </triple>
    <triple>
      <subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
      <predicate><value>sem:iri( $PREFIX || name )</value></predicate>
      <object><value>xs:string( name )</value></object>
    </triple>
  </triples>
  </template>

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ адрСсиратС Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΠΎΡ‚ RDF Π³Ρ€Π°Ρ„ΠΈΠΊ со SPARQL Π±Π°Ρ€Π°ΡšΠ΅:

PREFIX : <http://example.org/example#>
SELECT ?name ?surname {
  :631803299804 :name ?name ; :surname ?surname .
}

Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ рСлацискиот, MarkLogic Π³ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ:

  1. DBMS ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎ посСбно ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° RDF ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ (Ρ‚Ρ€ΠΎΡ˜ΠΊΠΈ Π²ΠΎ Π½Π΅Π³ΠΎ ќС сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π°Π°Ρ‚ успСа Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ ΠΎΠ½ΠΈΠ΅ опишани ΠΏΠΎΠ³ΠΎΡ€Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π°).
  2. RDF Π²ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½Π° ΡΠ΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅ Сдноставно Π΄Π° сС Π²ΠΌΠ΅Ρ‚Π½Π΅ Π²ΠΎ XML ΠΈΠ»ΠΈ JSON Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ (Π° ΠΏΠΎΡ‚ΠΎΠ° ќС сС ΠΏΠΎΠ²ΠΈΠΊΠ°Π°Ρ‚ Ρ‚Ρ€ΠΎΡ˜ΠΊΠΈ Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ). Ова Π΅ Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ idref ΠΈΡ‚Π½

Π”ΠΎΠ±Ρ€Π° идСја Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ β€žΠ½Π°Π²ΠΈΡΡ‚ΠΈΠ½Π°β€œ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ MarkLogic Π΅ Π΄Π°Π΄Π΅Π½Π° ΠΎΠ΄ ΠžΠΏΡ‚ΠΈΡ‡ΠΊΠΈ API, Π²ΠΎ ΠΎΠ²Π°Π° смисла, Ρ‚ΠΎΡ˜ Π΅ Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΈΠ°ΠΊΠΎ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Ρ†Π΅Π» Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ спротивна - Π΄Π° сС ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° сС апстрахира ΠΎΠ΄ користСниот ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ конзистСнтна Ρ€Π°Π±ΠΎΡ‚Π° со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, трансакционалност ΠΈΡ‚Π½.

ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS β€žΠ±Π΅Π· Π³Π»Π°Π²Π΅Π½ ΠΌΠΎΠ΄Π΅Π»β€œ

На ΠΏΠ°Π·Π°Ρ€ΠΎΡ‚ ΠΈΠΌΠ° ΠΈ DBMS ΠΊΠΎΠΈ сС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π°Ρ‚ ΠΊΠ°ΠΊΠΎ ΠΏΡ€Π²ΠΈΡ‡Π½ΠΎ ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠΎΠ΄Π΅Π», Π±Π΅Π· наслСдСн Π³Π»Π°Π²Π΅Π½ ΠΌΠΎΠ΄Π΅Π». Π’ΠΈΠ΅ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ АрангоДБ, OrientDB (ΠΎΠ΄ 2018 Π³ΠΎΠ΄ΠΈΠ½Π° Ρ€Π°Π·Π²ΠΎΡ˜Π½Π°Ρ‚Π° компанија ΠΏΡ€ΠΈΠΏΠ°Ρ“Π° Π½Π° SAP) ΠΈ CosmosDB (услуга ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° ΠΎΠ±Π»Π°ΠΊ Microsoft Azure).

Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ β€žΠΎΡΠ½ΠΎΠ²Π½ΠΈβ€œ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎ ArangoDB ΠΈ OrientDB. Π’ΠΎ Π΄Π²Π°Ρ‚Π° случаи, ΠΎΠ²Π° сС Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ сопствСни ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, ΠΊΠΎΠΈ сС Π³Π΅Π½Π΅Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚. Π“Π΅Π½Π΅Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ сС Π³Π»Π°Π²Π½ΠΎ Π·Π° Π΄Π° сС олСсни моТноста Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠΎΠ΄ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ ΠΈ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π° ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π°.

ОвиС ΠΌΠΎΠ΄Π΅Π»ΠΈ сС СдинствСнитС достапни Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π²ΠΎ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΎΡ‚ DBMS; Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ Ρ˜Π°Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ сС Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ со Π½ΠΈΠ². Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, Ρ‚Π°ΠΊΠ²ΠΈΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ DBMS сС Π²Π΅Ρ‚ΡƒΠ²Π°Ρ‡ΠΊΠΈ, Π½ΠΎ нСдостатокот Π½Π° компатибилност со стандарднитС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Ρ˜Π°Π·ΠΈΡ†ΠΈ Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ²ΠΈΠ΅ DBMS Π²ΠΎ наслСднитС систСми - Π·Π° Π·Π°ΠΌΠ΅Π½Π° Π½Π° DBMS ΡˆΡ‚ΠΎ вСќС сС користат Ρ‚Π°ΠΌΡƒ.

Π’Π΅ΡœΠ΅ имашС прСкрасна ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π·Π° ArangoDB ΠΈ OrientDB Π½Π° HabrΓ©: ΠŸΠ Π˜ΠšΠ›Π£Π§Π•Π’Π• Π‘Π• Π²ΠΎ NoSQL Π±Π°Π·ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

АрангоДБ

ArangoDB Ρ‚Π²Ρ€Π΄ΠΈ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ со Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ.

ΠˆΠ°Π·Π»ΠΈΡ‚Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΡ‚ Π²ΠΎ ArangoDB сС ΠΎΠ±ΠΈΡ‡Π½ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, Π° Ρ€Π°Π±ΠΎΠ²ΠΈΡ‚Π΅ сС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠ΄ посСбСн Ρ‚ΠΈΠΏ ΠΊΠΎΠΈ, Π·Π°Π΅Π΄Π½ΠΎ со Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈΡ‚Π΅ систСмски полиња, ΠΈΠΌΠ°Π°Ρ‚ (_key, _id, _rev) систСмски полиња _from ΠΈ _to. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π²ΠΎ DBMS Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ Π·Π±ΠΈΡ€ΠΊΠΈ. ΠšΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΊΠΎΠΈ прСтставуваат Ρ€Π°Π±ΠΎΠ²ΠΈ сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π°Π°Ρ‚ Π·Π±ΠΈΡ€ΠΊΠΈ Π½Π° Ρ€Π°Π±ΠΎΠ²ΠΈ Π²ΠΎ ArangoDB. ΠŸΠ°Ρ‚Π΅ΠΌ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° ΡΠΎΠ±ΠΈΡ€Π°ΡšΠ΅ Ρ€Π°Π±ΠΎΠ²ΠΈ сС исто Ρ‚Π°ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΠ²ΠΈΡ‚Π΅ Π²ΠΎ ArangoDB исто Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π΄Π΅Ρ˜ΡΡ‚Π²ΡƒΠ²Π°Π°Ρ‚ ΠΊΠ°ΠΊΠΎ јазли.

Π‘ΡƒΡ€ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ

Π”ΠΎΠ·Π²ΠΎΠ»Π΅Ρ‚Π΅ Π½ΠΈ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π° persons, Ρ‡ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ‚ Π²Π°ΠΊΠ°:

[
  {
    "_id"  : "people/alice" ,
    "_key" : "alice" ,
    "name" : "Алиса"
  },
  {
    "_id"  : "people/bob" ,
    "_key" : "bob" ,
    "name" : "Π‘ΠΎΠ±"  
  }
]

НСка ΠΈΠΌΠ° ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π° cafes:

[
  {
    "_id" : "cafes/jd" ,
    "_key" : "jd" ,
    "name" : "Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½"  
  },
  {
    "_id" : "cafes/jj" ,
    "_key" : "jj" ,
    "name" : "Π–Π°Π½-Π–Π°ΠΊ"
  }
]

ΠŸΠΎΡ‚ΠΎΠ° ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° likes ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

[
  {
    "_id" : "likes/1" ,
    "_key" : "1" ,
    "_from" : "persons/alice" ,
    "_to" : "cafes/jd",
    "since" : 2010 
  },
  {
    "_id" : "likes/2" ,
    "_key" : "2" ,
    "_from" : "persons/alice" ,
    "_to" : "cafes/jj",
    "since" : 2011 
  } ,
  {
    "_id" : "likes/3" ,
    "_key" : "3" ,
    "_from" : "persons/bob" ,
    "_to" : "cafes/jd",
    "since" : 2012 
  }
]

ΠŸΡ€Π°ΡˆΠ°ΡšΠ° ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ

ΠŸΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ Π²ΠΎ стилот Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΎΡ‚ Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ AQL ΡˆΡ‚ΠΎ сС користи Π²ΠΎ ArangoDB, Π²Ρ€Π°ΡœΠ°Ρ˜ΡœΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‡ΠΈΡ‚Π»ΠΈΠ²ΠΈ ΠΎΠ΄ Π»ΡƒΡ“Π΅ Π·Π° Ρ‚ΠΎΠ° кој сака ΠΊΠ°Ρ„ΡƒΠ»Π΅, ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

FOR p IN persons
  FOR c IN OUTBOUND p likes
  RETURN { person : p.name , likes : c.name }

Π’ΠΎ рСлациски стил, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π³ΠΈ β€žΠΏΡ€Π΅ΡΠΌΠ΅Ρ‚ΡƒΠ²Π°ΠΌΠ΅β€œ односитС намСсто Π΄Π° Π³ΠΈ складирамС, ΠΎΠ²Π° Π±Π°Ρ€Π°ΡšΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²Π°ΠΊΠ° (ΠΏΠ°Ρ‚Π΅ΠΌ, Π±Π΅Π· Π·Π±ΠΈΡ€ΠΊΠ°Ρ‚Π° likes ΠΌΠΎΠΆΠ΅ Π±Π΅Π·):

FOR p IN persons
  FOR l IN likes
  FILTER p._key == l._from
    FOR c IN cafes
    FILTER l._to == c._key
    RETURN { person : p.name , likes : c.name }

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ Π²ΠΎ Π΄Π²Π°Ρ‚Π° случаи ќС Π±ΠΈΠ΄Π΅ ист:

[
  { "person" : "Алиса" , likes : "Π–Π°Π½-Π–Π°ΠΊ" } ,
  { "person" : "Алиса" , likes : "Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½" } ,
  { "person" : "Π‘ΠΎΠ±" , likes : "Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½" }
]

ПовСќС ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ

Ако Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΏΠΎΠ³ΠΎΡ€Π΅ сС Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° Π΅ ΠΏΠΎΡ‚ΠΈΠΏΠΈΡ‡Π΅Π½ Π·Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π° DBMS ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π·Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ DBMS, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ испробатС ΠΎΠ²Π° Π±Π°Ρ€Π°ΡšΠ΅ (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ користитС COLLECT):

FOR p IN persons
  RETURN {
    person : p.name,
    likes : (
      FOR c IN OUTBOUND p likes
      RETURN c.name
    )
}

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ќС ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

[
  { "person" : "Алиса" , likes : ["Π–Π°Π½-Π–Π°ΠΊ" , "Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½"]  } ,
  { "person" : "Π‘ΠΎΠ±" , likes : ["Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½"] }
]

OrientDB

ΠžΡΠ½ΠΎΠ²Π°Ρ‚Π° Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π²ΠΎ OrientDB Π΅ моТност ΠΏΠΎΠ»ΠΈΡšΠ°Ρ‚Π° Π·Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, ΠΏΠΎΠΊΡ€Π°Ρ˜ повСќС ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ стандардни скаларни врСдности, ΠΈΠΌΠ°Π°Ρ‚ ΠΈ врСдности ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС LINK, LINKLIST, LINKSET, LINKMAP ΠΈ LINKBAG. ВрСдноститС Π½Π° ΠΎΠ²ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ сС врски ΠΈΠ»ΠΈ Π·Π±ΠΈΡ€ΠΊΠΈ Π½Π° врски Π΄ΠΎ ΡΠΈΡΡ‚Смски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ ΠΎΠ΄ систСмот ΠΈΠΌΠ° β€žΡ„ΠΈΠ·ΠΈΡ‡ΠΊΠΎ Π·Π½Π°Ρ‡Π΅ΡšΠ΅β€œ, ΡˆΡ‚ΠΎ ја ΠΎΠ·Π½Π°Ρ‡ΡƒΠ²Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° записот Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°: @rid : #3:16. Π’Π°ΠΊΠ°, врСдноститС Π½Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° сС навистина ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈ (ΠΊΠ°ΠΊΠΎ Π²ΠΎ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π») намСсто услови Π·Π° ΠΈΠ·Π±ΠΎΡ€ (ΠΊΠ°ΠΊΠΎ Π²ΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½ΠΈΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»).

Како ArangoDB, Ρ€Π°Π±ΠΎΠ²ΠΈΡ‚Π΅ Π²ΠΎ OrientDB сС прСтставСни ΠΊΠ°ΠΊΠΎ посСбни Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ (ΠΈΠ°ΠΊΠΎ Π°ΠΊΠΎ нСкој Ρ€Π°Π± Π½Π΅ΠΌΠ° свои ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ лСсСн, ΠΈ Π½Π΅ΠΌΠ° Π΄Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π½Π° посСбСн Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚).

Π‘ΡƒΡ€ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ

Π’ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π»ΠΈΠ·ΠΎΠΊ Π΄ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° дСпонија OrientDB Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ArangoDB Π±ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°Π»Π΅ Π²Π°ΠΊΠ°:

[
     {
      "@type": "document",
      "@rid": "#11:0",
      "@class": "Person",
      "name": "Алиса",
      "out_likes": [
        "#30:1",
        "#30:2"
      ],
      "@fieldTypes": "out_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#12:0",
      "@class": "Person",
      "name": "Π‘ΠΎΠ±",
      "out_likes": [
        "#30:3"
      ],
      "@fieldTypes": "out_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#21:0",
      "@class": "Cafe",
      "name": "Π–Π°Π½-Π–Π°ΠΊ",
      "in_likes": [
        "#30:2",
        "#30:3"
      ],
      "@fieldTypes": "in_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#22:0",
      "@class": "Cafe",
      "name": "Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½",
      "in_likes": [
        "#30:1"
      ],
      "@fieldTypes": "in_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#30:1",
      "@class": "likes",
      "in": "#22:0",
      "out": "#11:0",
      "since": 1262286000000,
      "@fieldTypes": "in=LINK,out=LINK,since=date"
    },
    {
      "@type": "document",
      "@rid": "#30:2",
      "@class": "likes",
      "in": "#21:0",
      "out": "#11:0",
      "since": 1293822000000,
      "@fieldTypes": "in=LINK,out=LINK,since=date"
    },
    {
      "@type": "document",
      "@rid": "#30:3",
      "@class": "likes",
      "in": "#21:0",
      "out": "#12:0",
      "since": 1325354400000,
      "@fieldTypes": "in=LINK,out=LINK,since=date"
    }
  ]

Како ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅, Ρ‚Π΅ΠΌΠΈΡšΠ°Ρ‚Π° исто Ρ‚Π°ΠΊΠ° складираат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π΄ΠΎΡ˜Π΄ΠΎΠ²Π½ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΡ˜Π΄ΠΎΠ²Π½ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΠ²ΠΈ. На ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Document API Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ слСди самиот Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π΅Π½ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ‚Π΅Ρ‚, Π° Graph API ја ΠΏΡ€Π΅Π·Π΅ΠΌΠ° ΠΎΠ²Π°Π° Ρ€Π°Π±ΠΎΡ‚Π°. Но, Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π° пристапот Π΄ΠΎ OrientDB Π²ΠΎ β€žΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅β€œ Ρ˜Π°Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠΈ Π½Π΅ сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈ Π²ΠΎ програмскитС Ρ˜Π°Π·ΠΈΡ†ΠΈ.

ΠŸΡ€Π°ΡˆΠ°ΡšΠ° ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ

Π‘Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ слично ΠΏΠΎ Ρ†Π΅Π» Π½Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π·Π° ArangoDB Π²ΠΎ OrientDB ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

SELECT name AS person_name, OUT('likes').name AS cafe_name
   FROM Person
   UNWIND cafe_name

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ќС сС Π΄ΠΎΠ±ΠΈΠ΅ Π²ΠΎ слСднава Ρ„ΠΎΡ€ΠΌΠ°:

[
  { "person_name": "Алиса", "cafe_name": "Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½" },
  { "person_name": "Алиса", "cafe_name": "Π–Π°Π½-Π–Π°ΠΊ" },
  { "person_name": "Π‘ΠΎΠ±",  "cafe_name": "Π–Π°Π½-Π–Π°ΠΊ" }
]

Ако Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ β€žΡ€Π΅Π»Π°Ρ†ΠΈΡΠΊΠΈβ€œ, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја отстранитС Π»ΠΈΠ½ΠΈΡ˜Π°Ρ‚Π° со UNWIND():

[
  { "person_name": "Алиса", "cafe_name": [ "Π”ΠΆΠΎΠ½ Π”ΠΎΠ½Π½", "Π–Π°Π½-Π–Π°ΠΊ" ] },
  { "person_name": "Π‘ΠΎΠ±",  "cafe_name": [ "Π–Π°Π½-Π–Π°ΠΊ" ' }
]

ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° OrientDB ΠΌΠΎΠΆΠ΅ Π΄Π° сС опишС ΠΊΠ°ΠΊΠΎ SQL со инсСрти слични Π½Π° Gremlin. Π’ΠΎ Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° 2.2, сС појави Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°Ρ€ Π·Π° Π±Π°Ρ€Π°ΡšΠ΅ сличСн Π½Π° Cypher, MATCH :

MATCH {CLASS: Person, AS: person}-likes->{CLASS: Cafe, AS: cafe}
RETURN person.name AS person_name, LIST(cafe.name) AS cafe_name
GROUP BY person_name

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ќС Π±ΠΈΠ΄Π΅ ист ΠΊΠ°ΠΊΠΎ ΠΈ Π²ΠΎ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅. РазмислСтС ΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС отстрани Π·Π° Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ β€žΡ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π°β€œ, ΠΊΠ°ΠΊΠΎ Π²ΠΎ ΠΏΡ€Π²ΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅.

Azure CosmosDB

Π’ΠΎ ΠΏΠΎΠΌΠ°Π»Π° ΠΌΠ΅Ρ€Π°, ΠΎΠ½Π° ΡˆΡ‚ΠΎ бСшС ΠΊΠ°ΠΆΠ°Π½ΠΎ ΠΏΠΎΠ³ΠΎΡ€Π΅ Π·Π° ArangoDB ΠΈ OrientDB сС однСсува Π½Π° Azure CosmosDB. CosmosDB Π³ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° слСднитС API Π·Π° пристап Π΄ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ: SQL, MongoDB, Gremlin ΠΈ Cassandra.

SQL API ΠΈ MongoDB API сС користат Π·Π° пристап Π΄ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚. Gremlin API ΠΈ Cassandra API - Π·Π° пристап Π΄ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, соодвСтно. ΠŸΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ ситС ΠΌΠΎΠ΄Π΅Π»ΠΈ сС Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° CosmosDB: АРБ (β€žΠ°Ρ‚ΠΎΠΌ-запис-ΡΠ΅ΠΊΠ²Π΅Π½Ρ†Π°β€œ), ΡˆΡ‚ΠΎ Π΅ исто Ρ‚Π°ΠΊΠ° блиску Π΄ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚.

Π”Π°Π»ΠΈ мултимодСлскитС DBMS сС основата Π½Π° соврСмСнитС информациски систСми?

Но, ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈΠ·Π±Ρ€Π°Π½ ΠΎΠ΄ корисникот ΠΈ користСниот API сС фиксирани Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ смСтка Π²ΠΎ услугата. НС Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС пристапи Π΄ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²Ρ‡ΠΈΡ‚Π°Π½ΠΈ Π²ΠΎ Π΅Π΄Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ ΠΌΠΎΠ΄Π΅Π», ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ илустрирано со Π½Π΅ΡˆΡ‚ΠΎ ΠΊΠ°ΠΊΠΎ ΠΎΠ²Π°:

Π”Π°Π»ΠΈ мултимодСлскитС DBMS сС основата Π½Π° соврСмСнитС информациски систСми?

Π’Π°ΠΊΠ°, ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π²ΠΎ Azure CosmosDB дСнСс Π΅ само моТност Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ΄ Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π», ΡˆΡ‚ΠΎ Π½Π΅ Π³ΠΈ Ρ€Π΅ΡˆΠ°Π²Π° ситС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ со повСќС Π²Π°Ρ€ΠΈΡ˜Π°Π½Ρ‚ΠΈ.

ΠœΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»?

Π’Ρ€Π΅Π΄ΠΈ Π΄Π° сС Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° Π½Π° ΠΏΠ°Π·Π°Ρ€ΠΎΡ‚ сè ΡƒΡˆΡ‚Π΅ Π½Π΅ΠΌΠ° DBMS со повСќС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΈ сС засноваат Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» (освСн ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° повСќС ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° истоврСмСно Π΄Π²Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ: RDF ΠΈ LPG; Π²ΠΈΠ΄Π΅Ρ‚Π΅ Π³ΠΎ ΠΎΠ²Π° Π²ΠΎ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°). ΠΠ°Ρ˜Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ ΠΏΠΎΡ‚Π΅ΡˆΠΊΠΎΡ‚ΠΈΠΈ сС ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΠ΄ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, намСсто Π½Π° рСлациски.

ΠŸΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎ Π΄Π° сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° рСлациски ΠΌΠΎΠ΄Π΅Π» Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π» бСшС Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΎ Π΄ΡƒΡ€ΠΈ ΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚. Како ΠΊΠ°ΠΆΠ°Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π”Π΅Ρ˜Π²ΠΈΠ΄ ΠœΠ΅ΠΊΠ³ΠΎΠ²Π΅Ρ€Π½:

НСма Π½ΠΈΡˆΡ‚ΠΎ ΠΈΠ½Ρ…Π΅Ρ€Π΅Π½Ρ‚Π½ΠΎ Π²ΠΎ пристапот Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΎΡ‚ ΡˆΡ‚ΠΎ Π³ΠΎ спрСчува ΡΠΎΠ·Π΄Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ слој (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, со соодвСтно ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€Π°ΡšΠ΅) Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ ΡˆΡ‚ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° рСлациски ΠΏΡ€ΠΈΠΊΠ°Π· со (1) Π²Ρ€Π°ΡœΠ°ΡšΠ΅ Π½Π° Ρ‚ΠΎΡ€ΠΊΠΈΡ‚Π΅ ΠΎΠ΄ Π²ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ²ΠΈ Π½Π° ΠΊΠ»ΡƒΡ‡Π½ΠΈ врСдности ΠΈ (2) Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ‚ΠΎΡ€ΠΊΠΈ ΠΏΠΎ Ρ‚ΠΈΠΏ Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΡ˜Π°.

Кога ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π½Π° ΡƒΠΌ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слСдново:

  • Π•Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° Π½ΠΈΠ·Π°Ρ‚Π° JSON сС смСтаат Π·Π° ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ, Π½ΠΎ ΠΎΠ½ΠΈΠ΅ ΡˆΡ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π»Π΅Π³ΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄ Ρ‚Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΡ‚ Π½Π΅ сС;
  • ΠŸΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π°Ρ‚; сСпак Π½Π΅ сакатС Π΄Π° складиратС Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ΄ истиот Π²Π³Ρ€Π°Π΄Π΅Π½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π° ΠΏΠΎΠ΄Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π½Π΅ΠΌΠ°Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ;
  • Од Π΄Ρ€ΡƒΠ³Π° страна, ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°Ρ‚Π° Π½Π° DBMS Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π΅ Π΄Π΅ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ сС Π³ΠΎΡ‚ΠΎΠ²ΠΈ β€žΠ°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈβ€œ ΠΊΠΎΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π³Ρ€Π°Π΄Π°Ρ‚ ΠΎΠ΄Π½ΠΎΠ²ΠΎ сСкој ΠΏΠ°Ρ‚. ΠŸΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΡ‚ Π΄Π° ΠΌΡƒ сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ моТност Π±Ρ€Π·ΠΎ Π΄Π° сС Π΄ΠΎΠ±ΠΈΠ΅ ΠΏΠΎΠ΄Π³Ρ€Π°Ρ„ ΡˆΡ‚ΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.

ΠœΠ°Π»ΠΊΡƒ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€Π°ΡšΠ΅

Авторот Π½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° Π΅ ΠΏΠΎΠ²Ρ€Π·Π°Π½ со Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° NitrosBase DBMS, Ρ‡ΠΈΡ˜ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊ, Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ - Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½ΠΈ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΈ - сС Π½Π΅Π³ΠΎΠ²ΠΈ прСтстави. Π‘ΠΈΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ сС Π΅Π΄Π½Π°ΠΊΠ²ΠΈ: рСчиси сСкој ΠΏΠΎΠ΄Π°Ρ‚ΠΎΠΊ Π΅ достапСн Π²ΠΎ кој Π±ΠΈΠ»ΠΎ ΠΎΠ΄ Π½ΠΈΠ² со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° јазик Π·Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΡˆΡ‚ΠΎ Π΅ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅Π½ Π·Π° Π½Π΅Π³ΠΎ. ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, Π²ΠΎ сСкој ΠΏΠΎΠ³Π»Π΅Π΄, ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½Π°Ρ‚. ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ќС сС Ρ€Π΅Ρ„Π»Π΅ΠΊΡ‚ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΈΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π» ΠΈ, соодвСтно, Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ.

Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° ќС опишам ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π° ΡΠΎΠ²ΠΏΠ°Ρ“Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ Π²ΠΎ NitrosBase Π²ΠΎ Π΅Π΄Π½Π° ΠΎΠ΄ слСднитС написи.

Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ

Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° ΠΎΠΏΡˆΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΈ Π½Π° ΠΎΠ½Π° ΡˆΡ‚ΠΎ сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°ΡšΠ΅ станаа повСќС ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ јасни Π½Π° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΎΡ‚. ΠœΡƒΠ»Ρ‚ΠΈ-модСлскитС DBMS сС сосСма Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ, Π° β€žΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° повСќС ΠΌΠΎΠ΄Π΅Π»ΠΈβ€œ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΏΠΎΠΈΠ½Π°ΠΊΡƒ. Π—Π° Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΎΠ½Π° ΡˆΡ‚ΠΎ сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° β€žΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π»β€œ Π²ΠΎ сСкој ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΡΠ»ΡƒΡ‡Π°Ρ˜, корисно Π΅ Π΄Π° сС ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° слСднивС ΠΏΡ€Π°ΡˆΠ°ΡšΠ°:

  1. Π”Π°Π»ΠΈ Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠ°ΠΊΠΎΠ² β€žΡ…ΠΈΠ±Ρ€ΠΈΠ΄Π΅Π½β€œ ΠΌΠΎΠ΄Π΅Π»?
  2. Π”Π°Π»ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ сС β€žΠ΅Π΄Π½Π°ΠΊΠ²ΠΈβ€œ ΠΈΠ»ΠΈ Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½ΠΈΠ² Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΎΡ‚?
  3. Π”Π°Π»ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ сС β€žΡ€Π°ΠΌΠ½ΠΎΠ΄ΡƒΡˆΠ½ΠΈβ€œ Π΅Π΄Π½ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ? Π”Π°Π»ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ напишани Π²ΠΎ Π΅Π΄Π΅Π½ ΠΌΠΎΠ΄Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ‡ΠΈΡ‚Π°Π°Ρ‚ Π²ΠΎ Π΄Ρ€ΡƒΠ³ ΠΈΠ»ΠΈ Π΄ΡƒΡ€ΠΈ ΠΈ Π΄Π° сС ΠΏΡ€Π΅ΠΏΠΈΡˆΠ°Ρ‚?

Мислам Π΄Π΅ΠΊΠ° Π½Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ Π·Π° рСлСвантноста Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS вСќС ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½ΠΎ, Π½ΠΎ интСрСсното ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅ Π΅ ΠΊΠΎΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ ΠΎΠ΄ Π½ΠΈΠ² ќС Π±ΠΈΠ΄Π°Ρ‚ повСќС Π±Π°Ρ€Π°Π½ΠΈ Π²ΠΎ блиска ΠΈΠ΄Π½ΠΈΠ½Π°. Π‘Π΅ Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΌΠΎΠ΄Π΅Π»Π½ΠΈΡ‚Π΅ DBMS ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Π°Ρ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, првСнствСно Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½ΠΈ, ќС Π±ΠΈΠ΄Π°Ρ‚ Π²ΠΎ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° ΠΏΠΎΠ±Π°Ρ€ΡƒΠ²Π°Ρ‡ΠΊΠ°; ΠŸΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΎΡΡ‚Π° Π½Π° DBMS со повСќС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠΈ Π½ΡƒΠ΄Π°Ρ‚ Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΈ Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π°Ρ‚ прСдноститС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ, Π΅ ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Π»Π΅Ρ‡Π½Π° ΠΈΠ΄Π½ΠΈΠ½Π°.

Π‘Π°ΠΌΠΎ рСгистрирани корисници ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° учСствуваат Π²ΠΎ Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π°. Најави сС, Π²ΠΈΠ΅ стС Π΄ΠΎΠ±Ρ€Π΅Π΄ΠΎΡ˜Π΄Π΅Π½ΠΈ.

Π”Π°Π»ΠΈ користитС ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» DBMS?

  • НиС Π½Π΅ Π³ΠΎ користимС, складирамС сè Π²ΠΎ Π΅Π΄Π΅Π½ DBMS ΠΈ Π²ΠΎ Π΅Π΄Π΅Π½ ΠΌΠΎΠ΄Π΅Π»

  • НиС користимС ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΌΠΎΠ΄Π΅Π» способности Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ DBMS

  • НиС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ»ΠΈΠ³Π»ΠΎΡ‚Π½Π° упорност

  • НиС користимС Π½ΠΎΠ²ΠΈ ΠΌΡƒΠ»Ρ‚ΠΈ-модСлски DBMS (Arango, Orient, CosmosDB)

Гласаа 19 корисници. 4 корисници сС Π²ΠΎΠ·Π΄Ρ€ΠΆΠ°Π°.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€