ααααααααααααααΆαααααΎαααΊαααα»αααααΆαααΆααα αααΆαα αα ααΆααααΆααααα»αααααΆααααααα½αααααΊαααααΆαααααΆααααα»αααααΆααααα·αααααααααααΆαααααΎαααΆααα αααα»ααα½αααα ααΆααααα»αααααΆααααα·ααααααα αααΎααααααα·ααα αααα»αααΆααα»αααααΆααααααΌαα·αααααααααααΆαααααΎα ααΌα αααα ααΆα§ααΆα ααα αα αααααααα·ααααααααααΆαααΆ "αα" αααααααααα αΆαα½αααΊαα·αααααΉαααααα·ααΆαααααααΆ ("ααα·ααΆα") ααα»ααααααα ααα»ααααααααΆαααΆααα»αααααΆααααααΆααααα ("ααΆααα»αααααΆ") α
ααααα·αααΎα’ααααα·αααΆααααααΎαααα α»ααααα»αααΆααααααααα ααΌαα’αΆαααααα

ααΆαα·ααΆ
ααΆααααα·αααααα Polyglot
ααΆαααΎααΆαα±ααααΆααα·ααααααΆαα½αααΆαααΌααααΈαααα αααα»αααααααααααααααααααααα½αααα αΆαααΆα αααααΌαααααΎ DBMSs ααααααααααΆααΆα αααΎαααΎααααΈαααααΆαα»ααα·αααααα αα·ααααααααΆααααα αΆααααααααααααΎαααΆααα½αααΆ αααααΈαα½ααααΆααααααααΌαα·ααααααααααΆαααααα½αααααααΆα ααΆαα½αααΉαααααααΆααααα M. Fowler, ααααα ααααΈααα½αα ααα½α αα·αααααα αα½αααααΆα Agile Manifesto, ααααΆαααΆααααααααΌαααΆαααα α ααΆ ααΆααααα»ααα α»αααΆαααααα ("ααΆαααααΌαα α»ααα") α
Fowler ααααΆαα§ααΆα αααααΆααααααααααΆααααα αααΆααααα»ααα·αααααααα αααα»ααααααα·ααΈαααααΆααααααααααααα αα·ααααα»αααααααααα»ααα·αααααΆαα·αααααααα’αα‘α·α ααααΌαα·αα

α§ααΆα ααααααααΆααΆααα·αααΆαα ααΊααΆααΆαααααααΎαααααα·α ααα»ααααααΆααα·α αΆαααΆαα½αα ααα½ααααα»αααΆααααα α·ααααααα»αααΆαααααΎαααΎα DBMS αα½α α¬αα½ααααααααααααααΆααααααααααααααααΌαααααΆα’αΆα ααααΌαααΆαααααΎαα§ααΆα αααα .
ααΆα αααΆααααΆααααΆααΆαααααΎααΆα’αααααααΎαααα»ααα½ααααααααααααα·αααΆααααα½ααααααα
- ααα·ααΆαααααΌααααααααΎαααΆαααΆααααα»ααα·ααααααααΎαα‘αΎαααΆααααΆααΆααααα ααΉαα ααα½α DBMSs αααααΆαααααΎα α ααα½ααααα·αααααααααααααΎααααΆαααααααΌαααΊααα’ααααα·αααΎαα·ααααΆααΆααααα ααΉαααΆααααααααααα
- αααα»αααΆαααΆαα α»αα»αααα ααα½α DBMSs αααααΆαααααΎ ααΆαα αααΆαααΎααΆααααααααΌααααααααα ααααΆα (ααΆαααααΎααΆαααααααΆα ααΆαα’αααααααααα α»α ααΆαα’αΆα ααααΆαααααα) αα DBMSs ααΈαα½αααααααΆαααααΎααΎαα‘αΎαα
- ααΆαα·αα’αΆα αα αα½α αααααα»αααΆαααΆααΆααΌααααααααα ααααΆαααααααααααααααΆααααα»αααΆααααΌα - ααΆαα·αααααααα·ααααα·ααΆαα
ααΆαααααααααααααΆαααα½ααααα α’αααΈαααΎααα ααΌα αααα
- ααΆαααΎαα‘αΎαα αααΎαααααααα’αΆααααΆααααα αα·ααααα½ααα αα αααααααΈαααα»αα αα»αααα·α DBMS α
- αα»ααααα·αβααΎαβαα·αβαααααΎαβααΆαβααα·α ααααα
- ααΆαααΆαααααααααα α·ααααααααα»αααααααΆαα α¬ααΆααα·ααααααααΆααααα·αααααααα·ααααΈαααααΆααααααΆα
ααΆαααΆαααΎαα‘αΎααα½αα±ααααααααααΆαααα αααα»αααΆαα αααΆαααα»ααααααααα·αααα· (TCO) ααααααααααααα ααΎααΆαααααΌαα ααααΈααααΆαααΆα "αααααΎααααα»αα αααΎα" αα?
α αααΎααααΌααα
ααΆααα "ααΆααααα»αα αααα»α" ααΆαα αΌαααααΎαααα»αααααΆα 2011 α ααΆααααααΉαα’αααΈαααα αΆαααα·ααΈααΆααααα αα·αααΆαααααααααααααααααΆαααΆαα αααΆααααααΆα αααΎαααααΆα α αΎααα ααααΆα 2015 ααΆααααααΆααααααα’ααααα·ααΆα Gartner α ααααΎαααααΌαααΆααααααΎαα‘αΎα:
- ααΈ "Β»:
α’ααΆαααα DBMSs ααααΆαααααααα αα·ααα·ααΈααααΎααααΆαααα½αααΆααΊαα α»ααααΌα
- ααΈ "Β»:
DBMSs ααααα·ααααα·ααΆαααΆααα»αααααΉααααααααΌαααΌααααΌαααααΆα αααΎα - ααααΆαααααααα·ααα·αααΆαααα - ααΆααααααααααα·ααΆαααα½αα
ααΆα αΆααααΌα ααΆααΆααααααα’ααααα·ααΆα Gartner ααααΉαααααΌαααΆαα½αααΉαααΆαααααΆαααααααααα½αααα ααααα·αααΎα’αααα αΌααα ααΆαααααααααΆαα½α DBMS αα ααΎ DB-Engines α’αααα’αΆα ααΎαααΆαΠΎα’αααααΉαααΆαααΆαα αααΎαααααααααα½αα―αααΆαα·αααααΆααΆ DBMSs αα α»ααααΌα ααΌα ααααΆααααααα’αΆα ααααΌαααΆαααααΎαααΎααα ααΎαααααααΆαα½αααΉαααΆαααΆααααααα―αααααΆαα½αα
ααΆααΆαααΆαααααααααα αΆαααΈ DBMS - α’αααααΉαααΆααα αααα»αααΆαααΆααααααα―αααααΈαα½αα αααα’αα’αΆαααΆααΆαα α»ααααΌα αααααΆαα DBMS ααΈαα½αα ααααΌαααααΆαααΆααααααΎα (αααααααΆααααΆααααα½α) α αΎααα½αααΆαα½αααΆ αααΌααααααααΆαααΆαααααα αα α»ααααααααααΌαααΆαα ααα’α»ααααα αΆαα αααα»ααααααΈαααααααΊ DBMSs αααααΆαααααα½αα―αααΆααΆ "ααααΌααΎαα αααΎα" α αΎαααααα ααΆαα’ααααααααΎα αα·αααΆαααααΌααα½αααααααααΌαα‘αΎαα
| DBMS | ααααΌααΎα | αααΌααααααααα |
|---|---|---|
| αααα»αα αα»α Oracle | ααααΆαααααα | ααααΆα αα, α―αααΆα |
| MS SQL | ααααΆαααααα | ααααΆα αα, α―αααΆα |
| PostgreSQL | ααααΆαααααα | ααααΆα αα * α―αααΆα |
| αααΆαα‘αΆαα | ααΆαααααα―αααΆα | ααααΆα αα, ααααΆαααααα |
| MongoDB | ααΆαααααα―αααΆα | ααααααααααΉα, ααααΆα αα* |
| αα·ααααααααααΆα | αα½αααααΌααΆα | α―αααΆα, ααααΆα αα |
| Redis | ααααααααααΉα | α―αααΆα ααααΆα αα* |
| α’αΆαααΆααααΌααΈ | - | ααααΆα αα, α―αααΆα |
| OrientDB α | - | ααααΆα αα, α―αααΆα, ααααΆαααααα |
| Azure CosmosDB | - | ααααΆα αα, α―αααΆα, ααααΆαααααα |
αααααα αααΆααα ααΎαα»
αααααΆααααΆααα αααα»αααΆααΆααααααΆααααα ααααΈαααααααΆααααααααΆαααΆαααΆαααααα»αα
- PostgreSQL DBMS αα·αααΆααααααααΌαα·ααααααααααΆα αααα ααα»ααααααα·ααααααααΆααααααΆα ααΌα ααΆ AgensGraph α
- ααΆααααααΉα MongoDB ααΆααΆααααααααΉαααααΌααααα»αααΆααα·ααΆαα’αααΈααααααΆαααααααααα·ααααα·ααααααΆα αααααα»αααΆααΆαααα½α (, ) ααΆαα’αααΈααΆαααΆααααααααΌααααΆα αα αααααΈααΆααΆααΆααα·αααΆαα ααΆαααααΆααααααα½ααααααααΌαα±ααααΆαααΆααααααΎαααααα·αααααΆααα½αα ααα½ααα ααααα·ααααα»αααΆαααΆααααα»ααα·ααα ααααΆαααΆααααααααΌααααΆα ααα
- ααΆαααααα ααΉα Redis ααΎαααΆααααααΆααααααααααα .
αααααΆαα αααααΆααααααΆααααΈαα½αα ααΎαααΉααααα αΆαααΈαααααααααΆαααΆαααααααααΆαααααΌαααααΆα αααΎαααααΌαααΆαα’αα»αααααα αααα»α DBMS ααΈααααΆαααααα ααΎαααΉααα·α αΆαααΆααααΌααααΆαααααα α―αααΆα αα·αααααΆα ααααΆααααΌααααΆαααααα»α α αΎαααααΎα§ααΆα ααααα DBMSs ααΆααααΆαα ααΎααααΈαααα αΆαααΈααααααα "ααΆαα" ααααΌαααΆαα’αα»ααααα
DBMS α αααΎααααΌαααααα’ααααΎααααΌααααΆαααααα
DBMSs ααΆααα»αααααΆααααα αα α»αααααααααααΊααΆααΆαααΆααααααααΆ; α αΎααα½αααααααΎααΆαα»ααααα α₯α‘αΌαααααααα·ααααααΆ DBMS αα α»αααΌαααααΊααΌα ααΆααΆααα·αααααΈα ααααα·αα’αΆα ααααΎα’αααΈααΆαααα’ααα α’αΆα ααααΌαααΆαααΉαααΆααααααααΆαααα ααα Larry Ellison α
ααααααΆαααΆααααα α’ααααα·ααααα αΌαα α·αααααΆαα’αα»ααααααααΌα αααΎααα αααα»α Microsoft SQL Server ααΎα§ααΆα ααααααααΆαααΆαααα RDBMS αααααΆααααααΌα―αααΆα αα·αααααΆα ααααΉαααααΌαααΆααα·αααααΆα
ααααΌα―αααΆααα αααα»α MS SQL Server
ααΆαα’αααααααααα’α ααα½αααΈααα½α α αΎααα ααΎHabre α’αααΈααααααα MS SQL Server α’αα»ααααααΆαααΆαααααααααΆααααααΌα―αααΆα αααα»αααΉαααΆααααααα·ααααα½ααααα»αα ααααααΆααα·ααΆαα‘αΎααα·α αα·αα’ααααΆαα·ααααΆαααααααα
αα·ααΈααΎααααΈααΆααααααααΌα―αααΆααα αααα»α MS SQL Server ααΊααΆααΏαααααααΆαααααΆαα DBMSs ααααΆααααααα α―αααΆα JSON ααααΌαααΆαααααΎα±αααααααΆαα»ααααα»αααΆαα’αααααααααααΆα ααΆαααΆαααααααααΆααααααΌα―αααΆαααΊαααααααααα·ααααα·αααα·αααααΎααααΈααα JSON αααα
- ααΎααααΈααΆαααααααααα»ααααααα scalar,
- ααΎααααΈααΆαααα―αααΆαααα
α’αΆαα»αααααααΈααΈαααααααα·ααααα·ααααΆααααΈαααΊααΆαααααααα αααα»αααΆαααααααααααααΌα JSONPath α
ααα»ααα ααΎαα’αΆα αα·ααΆαααΆαααΆα―αααΆαααααααααΆαα»αααΆαααααααααα·ααααααΆ "α’αααααΆαααααΆααααΈαα½α" αα αααα»αααααΆαααααα DBMS αα·αααΌα tuples ααα ααΆαα·ααααα αααα»α MS SQL Server αα αα α»αααααααα·αααΆααα·αα·αααααα ααΎααΆαααα―αααΆα JSON αααααααΎα±ααααΆαα·ααΆααααα»αααΆαα αΌααα½αααΆααΆααααααααΎαααααααααΆαααΆααααα α αΎααααααΆααααααΎαααΎαα―αααΆααααααααΎαααααααΆααααααααααα ααααααΆαααΆααααα ααΆα’αΆα αααααΎααα½ααααααααΆαααααΆαααααΆααααΆααααααα αα·αααααααααααα ααΎααΆα
ααΎαααΈαααααα MS SQL Server αααααααΌααααααααΆααααα»αααΆααααααΎαα―αααΆα JSON αααΆαααΆααααα½αααΈααΆαα·ααΆααααΆααΆααααααααΎααααα·ααααα·ααα - ααααααΆααα½α αααα»ααααααΆααααΆαααα½α ααααα»αααΉααα½ααα»α ααΆααααα»αααααααΆα ααΆα αααΆααααΆααααΆαα·αααΆ RDBMS ααΏαααα»ααααΆααααα αα·ααΈααΆαααααααααααα»αααΉαααααααα·ααααΆααα―αααΆα DBMSs ααααααααΆαα»αα ααααΎααααααααααα½α ααΆααααα αααααΆαααααα½αααααα·αα α αΎαα’αΆα αααααααΆααααα αΆααΆαααΆααααα½αααααΆαα’αα·αααααα ααα»αααααα·ααααααααΏαααα
ααΆα
α»αααααα MS SQL Server α’αα»ααααΆαα±ααα’ααααααααααΆααααα αΆαααα»αααααΆαααΆααααα―αααΆαα α’αααα’αΆα
ααααα JSON αα
ααΆααΆααΆααααααααΎ . ααααα·αααΎα―αααΆααα·αααΆαααααΎααΆαααααα»ααα α’αααααΉαααααΌαααααΎ CROSS APPLY.
ααααΌααααΆα ααα·ααα αααα»α MS SQL Server
ααΆαααΆαααααααααΆααααααΌααααΆα αα (LPG) ααααααΌαααΆαα’αα»αααααααΆααααααααα
αααα»α Microsoft SQL Server αααααα α ααΆααααΌαααΆαααααΎα±ααααααΎααΆααΆααα·αααααΎααααΈαααααΆαα»αααααΆαα αα·ααααααΆαα»ααααααααΆα ααα ααΆααΆαααααααααααΌαααΆααααααΎααααααααΎαααααα CREATE TABLE AS NODE ΠΈ CREATE TABLE AS EDGE αααααααΆα
ααΆααΆαααααααααααΈαα½αααΊαααααααα
ααΉαααΆααΆαααααααΆαααααΆαααααααΆαα»ααααααααααΆ αααααΆααα»αααααΆααΆααααα
αααα½ααααααΊααΆααΆααΆαααΆαααΆαααααααααα $node_id - ααΆααααααα’ααααααααΆααααα½ααααααααααΆααααααΆα αααααα»αααΌαααααΆααα·ααααααα
ααΌα
ααααΆααααααααΆααΆαααααααααααΈααΈαααΆαααΆααααααααα $from_id ΠΈ $to_idααΆαα»αα
αααα»αααΆααΆαααααααααααααααΆαα
αααΆααααΌαααΆααααααΆαααααΆαααααΆααα ααΆααΆαααΆα
ααααα‘αααα½αααααΌαααΆαααααΎααΎααααΈαααααΆαα»αααααΆααααααααααααααααΈαα½ααα
α
αΌαααΎαααΎαα§ααΆα αααααααααααα αΆαα α’αα»ααααΆαα±αααα·ααααααααααΆα ααααΆααααααααΌα
αααααΆααααα αΆααααα»αααΌαα αααααΆααααααΎααααΈαααααΎααα
ααΆαααααααααααααααΌαααααΆαα
αααα»αααΌαααααΆααα·αααααα α’αααααααΌαααααΎαααΆααααα½α 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 α αααΎααααΌαααααα’ααααΎααααΌα―αααΆα
αα
αααα»ααααααααα αααα»αα
αααααα αΆαααΈααΆαα’αα»αααααα α»ααααΌαα
αααα»αα―αααΆα DBMSs αααααααΎα§ααΆα αααααααΆααα·αααααα·αααααα»ααααααα½ααα MongoDB (ααΌα
αααααΆααα·ααΆα ααΆααΆαααααααα·ααααα·ααααααΆα ααα·αααΆαααααααααααα»ααααα $lookup ΠΈ $graphLookupαα·αααααΎαααΆαααΎααΆααααααΌααααααΆααααα
αα) ααα»ααααααΆαααααΎα§ααΆα ααααα DBMS ααΆααααα
αΆαααα»α αα·α "αα ααααΆα" .
ααΌα αααα α’αα»ααααΆαα±ααααΆααααααΌαααΆααααα»αα―αααΆα 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 ααΆααααααααΌααααΆα ααααΆαααΈααα·ααΈααααααααα
- DBMS α’αΆα ααΆααΆααααα»ααα·αααααα RDF ααΆα ααααα‘αααααααα (ααΈαααα αααα»αααΆααΉαααααΌαααΆαααα α ααΆ αααα»ααα ααΉαα’αααΈαααααΆααα·αααααΆααΆαααΎ ).
- RDF αα
αααα»αααααααα·αααα’αΆα
ααααΌαααΆααααα
αΌααα
αααα»αα―αααΆα XML α¬ JSON (α αΎαααΈααααΉαααααΌαααΆαααα α
ααΆ ) ααααααα ααααΆαααααΎααα½ααααααΆααααααααΆα
idrefαα·αα’ααααααα
αααα·αααααα’αααααααααα’αααΈα "αα·αααΆ" ααααΎαααΆααα αααα»α MarkLogic ααααΌαααΆααααααα±ααααα αααα»ααααααα ααΆααΆαααααα·αααΆα ααΎαααααΈααΆαααααααααααααΆααΊαααα»αααΈααα - ααΎααααΈααααΆααΆαα’ααΌααΈααΈααααΌαα·αααααααααααΆαααααΎ ααΎααααΈααΆααΆααΆαααΌαααΆαααΆαααααααααΆααΆαα½αααΉααα·αααααααα αααα»αααααΌαααααα ααααα·ααααα·ααΆαααα
DBMS αα α»αααΌααα "αααααααΆαααααΌααααΆαα"
ααΆααααΆα DBMSs αα ααΎααΈααααΆααααααΆαααααα½ααα½αααααΆααΆαα α»ααααΌααααΌα αααααααΆαααααΌαααααααΆαααα½αααααα ααΆαααααβαα½αβαααα αΌαβααΆαα , (α αΆααααΆααααΈααααΆα 2018 αααα»αα αα»αα’αα·ααααααααΆαααααα·αααα·αααα SAP) αα·α (ααααΆααααααΆααααααα½ααααααα·ααΆααα Microsoft Azure) α
ααΆααα·αααΆαααααΌ "ααααΌα" αα αααα»α ArangoDB αα·α OrientDB α αααα»αααααΈααΆααααΈα ααΆαααααααΊααΆααααΌαα·ααααααααααΆαααααα½ααααααα½ααα αααααΆααΆαααααΎα±ααααΌαα ααα―αααΆααα½αα ααΆαααααΎααΌαα ααΆα ααααααΎααααΈαα½αααααα½αααααααααααΆααααα»αααΆαα’αα»αααααααα½αααααααΆα αα αα·αααααααααααΆααααααα
αααΌαααααΆαααααααΊαααα½αααααααα’αΆα ααααΎααΆααααα»α DBMS αααααΆααααααΆααααΆααΆαααα½αααααΆαααααααα½αααααααΌαααΆααα ααΆα‘αΎαααΎααααΈααααΎααΆαααΆαα½ααα½αααα ααΆααΆααα·αααΆαα αααΌααα αα·α DBMSs αααααααααα»αααΈαα ααααΎα ααα»ααααααΆαααααααΆαααααΌαααααΆααΆαα½αααΉαααααΌαααααααΆα αα·αααΆααΆααααΎα±ααααΆαα·αα’αΆα ααααΎ DBMSs ααΆααααααα αααα»ααααααααααααααα·αααααα ααΎααααΈαααα½α DBMSs αααααΆαααααΎαα½α α αΎααα ααΈαααα
ααΆαα’αααααααα’ααα αΆααααα½αα’αααΈ ArangoDB αα·α OrientDB αα ααΎ Habre: .
α’αΆαααΆααααΌααΈ
ArangoDB ααΆαααΆαααΆαααΆαααααααααΆααααααΌαα·ααααααααααΆα ααα
ααααΆααααααααΆα αααααα»α ArangoDB ααΊααΆα―αααΆαααααααΆ α αΎααααααΊααΆα―αααΆααααααααααα·αααααααα½αααΆαα½αααΉαααααααααααααααΆ ααΆα (_key, _id, _rev) ααΆααααααααα _from ΠΈ _to. α―αααΆααα
αααα»αα―αααΆα DBMSs ααααΌαααΆααα½ααααα
αΌαααααΆααΆαααααααΈαα
αααα»αααααα»αα ααΆααααααΌαα―αααΆααααααααΆαα±αααααααααΌαααΆαααα α
ααΆ ααΆααααααΌαααααα
αααα»α 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 α’αααα’αΆα ααΆααααααααα½αααα (α¬α’αααα’αΆα ααααΎ ):
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": "ΠΠ°Π½-ΠΠ°ΠΊ" }
]ααααα·αααΎαααααααααΆααααααααααααααα αΆααααΌα ααΆ "ααΆαααα" ααα α’αααααααΌααααααααΆααα αα :
[
{ "person_name": "ΠΠ»ΠΈΡΠ°", "cafe_name": [ "ΠΠΆΠΎΠ½ ΠΠΎΠ½Π½", "ΠΠ°Π½-ΠΠ°ΠΊ" ] },
{ "person_name": "ΠΠΎΠ±", "cafe_name": [ "ΠΠ°Π½-ΠΠ°ΠΊ" ' }
]ααΆααΆαααα½ααααα OrientDB α’αΆα ααααΌαααΆααα·αααααΆααΆααΆ SQL ααΆαα½αααΉαααΆααααα αΌαααΌα Gremlin α αα αααα»ααααα 2.2 ααααααααααΎααΌα Cypher ααΆααααα αΆααααα½α :
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 ααααα APIs α αΌαααααΎαα·ααααααααΆααααααα SQL, MongoDB, Gremlin αα·α Cassandra α
SQL API αα·α MongoDB API ααααΌαααΆαααααΎααΎααααΈα αΌαααααΎαα·αααααααααα»αααααΌα―αααΆαα Gremlin API αα·α Cassandra API - αααααΆααα αΌαααααΎαα·αααααααααα»αααααααααααΆα αα αα·ααα½ααααααααααα½αα αα·αααααααα αααα»ααααΌαααααΆααα’ααααααΌαααΆααααααΆαα»αααΆααααααααααΌααΆααααα»α CosmosDBα ("α’αΆααΌα-αααααααααΆ-ααααΆαα") ααααα αα·αα―αααΆααα½ααααααα

ααα»ααααααααΌαα·αααααααααααααΌαααΆαααααΎαααΎααααα’αααααααΎααααΆαα αα·α API αααααααΎααααΌαααΆααα½ααα»ααα ααααααααΎαααααΈαα αααα»αααααΆααααα ααΆαα·αα’αΆα αα αα½α αααααα»αααΆαα αΌαααααΎαα·αααααααααααΆααααα»ααααα»αααααΌαα½ααααα»αααααααααααααΌαα½ααααααααα ααΌα αααααΆααααα αΆααααα’αααΈαα½αααΌα αααα

ααΌα αααα αααΌαααα αααΎααα αααα»α Azure CosmosDB ααααααααααα ααΊααΆααααααααααΆααααα»αααΆαααααΎααΌαααααΆααα·ααααααααΆα αααΎααααααΆαααααααΌαααααααααααααΆααΈαααα»αα αα»αααα·ααααα½αααα»ααααα ααααα·ααααααααΆααααα αΆααΆααα’ααααααΆααααα»ααα α»αααΆαααααααααααα
DBMS α αααΎααααΌαααααα’ααααΎααααΌααααΆα αα?
αα½αααααααααΆααααΆαα·αααΆα DBMSs αα α»ααααΌαα ααΎααΈααααΆααα α‘αΎααα αααααα’ααααΎααααΌααααΆα αα (ααΎααααααααΆαααΆαααααα α»ααααΌαααααΆαααααΌαααααααΆα ααααΈααααα»ααααααααΆαααααΆα RDF αα·α LPG ααΌαααΎαααααα αααα»α ) ααΆαααααΆαααααΆαααααα»αααΊαααααΆαααααΈααΆαα’αα»ααααααααΌα―αααΆααα ααΎααααΌαααααααΌααααΆα αα ααΆααΆαααααΆααααααα
αααα½αα’αααΈααααα’αα»ααααααααΌααααΆαααααααα ααΎααααΌαααααααΌααααΆα ααααααΌαααΆααααα·α αΆαααΆααΌααααΈαααααα»αα’αα‘α»ααααααααΆααααααΎααααααα αααα α§ααΆα ααα :
αα·αααΆαα’αααΈααΆααααΆααααααααααα»ααα·ααΈααΆαααααααααΆα αααααααΆααΆααααΆααααααΎααααααΆαααα½α (α§α αααααΆαααααΎαα·αα·αααααααααα) αα ααΎααΌαααααΆααα·ααααααααααΆα αααααα’αΆα α±αααα·αααααΆαααααΆααααααααΆαα½α (1) ααΆαααΎαα‘αΎααα·ααα tuples ααΈααΌααααααααααΉαααααααΆ αα·α (2) ααΆαααΆααααΆαααα»ααα tuples ααΆαααααααααααΆααααααα
αα αααα’αα»ααααααααΌα―αααΆααα ααΎααααΌαααααααΌααααΆα αα α’αααααααΌαα αα αΆαααΆα§ααΆα ααα ααΌα ααΆααααααα
- ααΆαα»βααβα’αΆαα JSON ααααΌαβααΆαβααβα αΆααβαα»αβααΆβααΆαβαααααα ααα»ααααβααΆαα»βαααβα ααβααΈβα ααα»α βααααΌαβααβαααβααβααααΆα ααβααΊβαα·αβαααβααα
- αα·αααααααα αααα»αααααΌα―αααΆαααΆααααααΆααααΌαααΆααααααΌα αααααααααΆα α’ααααα αααα·αα αααααααΆαα»αα αααΆααα ααααααΆα αααΎαααα―αααΆααααααΆαααααααααΌα ααααΆ α αΎαα―αααΆαααααΆααααααΆαα·αααΆαααΆααααααα’ααααααααΆαααα
- αααααΆααα·αααα ααααααα·ααααΆααα―αααΆα DBMSs ααΊααΆα―αααΆαααΊααΆ "ααΆααααααΌααααα»α" αααααααααα½α ααΆααααα ααααα·αα αΆαααΆα αααααΌααααααΎαααΆααααΈααΆαααααα ααΆααααΌαααΆαααΆαααΆαααΎααααΈαααααααΌαααααΌααααΆα ααααΆαα½αααΉααααααααΆααααα»αααΆαααα½αααΆαααααΆα ααα·α αααααααααΌαααααΆαα ααΉαα―αααΆααααααΆααααα αααααΆαααΆαααα ααα
ααΆαααααΆαααΆαα·ααααααααα·α αα½α
α’ααααα·ααααα’αααααααΊααΆαααααα ααΉαααΆαα’αα·αααααα NitrosBase DBMS αααααΆααααΌααΆααααα»ααααααΆααααΆα αα α αΎαααααΌααΆααααα - ααααΆαααααα αα·αα―αααΆα - ααΊααΆααααΆαααααααΆα αααΌαααααΆααα’ααααΊααααΎααααΆα αα·ααααααααααΎαααααΆααα’ααααΆααα αααα»ααα½αααΆααΆαα½ααααααααΎααΆααΆαααα½ααααααΆαααααααααααααΆαα·ααααααΆα ααΎαααΈααααα ααα αα αααα»ααα·αααααΆαααΆαα½α αα·ααααααα’αΆα ααααΌαααΆαααααΆααααααΌαα ααΆαααααΆααααααΌαααΉαααααΌαααΆααααα»ααααα αΆαααα αααα»αααααΌααΆααααα»α αα·αααΆαααααααααααααααα
αααα»ααααααΉαααΆααΉααααααΆα’αααΈα’αααΈαααααΆαααααΌααααααααΌααΎααα ααΌα αα αααα»α NitrosBase αα αααα»αα’ααααααα½ααααα»αα ααααα’αααααααΆααααααα
ααα ααααΈααααα·ααααΆα
αααα»ααααααΉαααΆ αα·αααααΆαααΌαα ααα’αααΈαααα α ααΆ αα α»ααααΌ ααΆααααα αααΆαααααααΆααα’αααα’αΆαα DBMS α αααΎααααΌαααααΊαα»αααααΆααααΆαα α αΎα "ααΆαααΆααααα αααΎααααΌααα" α’αΆα ααΎααα αα»αααααΆα ααΎααααΈαααααΈα’αααΈαααα α ααΆ "αα α»ααααΌ" αααα»αααααΈααΆααααΆααααΈαα½αα ααΆααΆααααααααααααα»αααΆαααααΎααααα½αααΆααααααα
- ααΎβααΎαβαααα»αβααβαα·ααΆαβα’αααΈβααΆαβααΆααααβαααΌαααβαααααααΈ α¬βααααααβαααΌααα "ααΌαααΆαα" αααα?
- ααΎααααΌ "ααααΎααααΆ" α¬αα½ααααα»αα αααααα½αααααΊααΆααααααααα»ααααα’αααααα?
- ααΎαααΌααα "αααααΎααααααΎα" α ααααααααΆαα αα·ααα αααα? ααΎβαα·ααααααβαααβαααααβαααα»αβααααΌβαα½αβααααΌαβααΆαβα’αΆαβαααα»αβαα½αβαααβα¬βααΌααααΈβααβαααααβααΆααβααΎ?
αααα»ααα·αααΆ αααα½αα’αααΈααΆαααΆααααααααα DBMS αα α»αααΌααα α’αΆα ααααΌαααΆαααααΎαααΆαα·αααααΆααα½α α αΎα ααα»αααααααα½αααααα½αα±ααα αΆααα’αΆαααααααααααΊααΆααΎααααααααΆαααααΉαααΆααααααΌαααΆαααΆααααα αααΎαααΆαααα’ααΆααααααααΈααΆααα»ααααα ααΆα αΆααααΈααΌα ααΆ DBMSs αα α»αααΌααααααααΆαααααααΌααααααααααΈ ααααΆααααααααΆα ααααααΉαααΆααααααΌαααΆαααΆααααα αααΎαα ααΆαααααα·αααα DBMS α αααΎααααΌααα ααααααααααΌαααΌααααΌαααααααΈααααα½ααααα αΌαααααΆααΌααα»ααααααααα·αααααΌααααααααααΈαααααα ααΊααΆαααα αΆααα’ααΆααααααααΆαα
ααΆαααα’αααααααΎααααΆαααααααΆαα α»ααααααααα»ααααααααα’αΆα α αΌααα½ααααα»αααΆααααααααα·αααα ααΌαα
ααΎα’αααααααΎ DBMS α αααΎααααΌααααα?
ααΎααα·αααααΎααΆαα ααΎααααααΆαα»αα’αααΈααααααααΆααα αααα»α DBMS αα½α αα·ααααα»αααααΌαα½αα
ααΎαααααΎαααααααΆααα α»ααααΌαα DBMSs αααααααΈ
ααΎαα’αα»ααααααΆαααααΌαα α»ααα
ααΎαααααΎ DBMS αα α»αααΌαααααααΈ (Arango, Orient, CosmosDB)
α’αααααααΎααααΆαα 19 ααΆααααΆαααααααααα α’αααααααΎααααΆαα α¦α£ ααΆααααααΌαααΆαα αΆαααΆααα
ααααα: www.habr.com
