DBMS EdgeDB харилцааны графикийн анхны тогтвортой хувилбар

EdgeDB DBMS-ийн анхны тогтвортой хувилбар гарсан бөгөөд энэ нь нарийн төвөгтэй шаталсан өгөгдөлтэй ажиллахад оновчтой болсон, харилцааны график өгөгдлийн загвар болон EdgeQL асуулгын хэлийг хэрэгжүүлсэн PostgreSQL-д нэмэлт юм. Код нь Python болон Rust дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг. Үйлчлүүлэгчийн сангууд нь Python, Go, Rust болон TypeScript/Javascript-д зориулагдсан болно. DBMS удирдлага болон интерактив асуулгын гүйцэтгэлд (REPL) командын мөрийн хэрэгслээр хангадаг.

Хүснэгтэд суурилсан өгөгдлийн загварын оронд EdgeDB нь объектын төрлүүд дээр суурилсан тунхаглалын системийг ашигладаг. Гадаад түлхүүрүүдийн оронд лавлагаагаар холбох нь төрлүүдийн хоорондын хамаарлыг тодорхойлоход хэрэглэгддэг (нэг объектыг өөр объектын өмч болгон ашиглаж болно). type Person { шаардлагатай өмчийн нэр -> str; } type Movie { шаардлагатай өмчийн гарчиг -> str; олон холбоосын жүжигчид -> Хүн; }

Асуулгын боловсруулалтыг хурдасгахын тулд индексийг ашиглаж болно. Хүчтэй өмч бичих, өмчийн үнэ цэнийн хязгаарлалт, тооцоолсон шинж чанар, хадгалагдсан процедур зэрэг функцуудыг мөн дэмждэг. ORM-ийг санагдуулдаг EdgeDB объект хадгалах схемийн онцлогууд нь схемүүдийг холих, өөр өөр объектуудын шинж чанаруудыг холбох, нэгдсэн JSON дэмжлэг зэргийг багтаадаг.

Схемийн шилжилтийг хадгалахад зориулж суурилуулсан хэрэгслүүдээр хангагдсан болно - тусдаа esdl файлд заасан схемийг өөрчилсний дараа "edgedb migration create" командыг ажиллуулахад л DBMS нь схемийн ялгааг шинжилж, интерактив байдлаар скриптийг үүсгэх болно. шинэ схем. Схемийн өөрчлөлтийн түүхийг автоматаар хянадаг.

Асуулга үүсгэхийн тулд GraphQL асуулгын хэл болон шаталсан өгөгдөлд зориулсан SQL-д тохируулсан өмчийн EdgeDB хэлийг хоёуланг нь дэмждэг. Жагсаалтын оронд асуулгын үр дүнг бүтэцлэгдсэн хэлбэрээр форматлах ба дэд асуулга болон JOIN-ын оронд та нэг EdgeQL асуулгаг өөр асуулга дотор илэрхийлэл болгон зааж өгч болно. Гүйлгээ болон мөчлөгийг дэмждэг. Кино сонгох { гарчиг, жүжигчид: { нэр } } шүүлтүүр . гарчиг = "Матриц" кино оруулах { гарчиг := "Матрицын амилуулалт", жүжигчид := ( { 'Киану Ривз', 'Кэрри- Энн Мосс', 'Laurence Fishburne' } ) } {0, 1, 2, 3} нэгдэл дэх дугаарын хувьд ( { тоо, тоо + 0.5 } );

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх