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

EdgeDB 2.0 DBMS-ийн хувилбарыг танилцуулж байна, энэ нь харилцааны график өгөгдлийн загвар болон EdgeQL асуулгын хэлийг хэрэгжүүлдэг бөгөөд нарийн төвөгтэй шаталсан өгөгдөлтэй ажиллахад оновчтой болсон. Код нь Python болон Rust дээр бичигдсэн (шинжлэлийн болон гүйцэтгэлийн чухал хэсгүүд) бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг. Төслийг PostgreSQL-ийн нэмэлт болгон боловсруулж байна. Үйлчлүүлэгчийн сангууд нь 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 } );

Шинэ хувилбарт:

  • Өгөгдлийн сангийн удирдлагад суурилуулсан вэб интерфэйс нэмэгдсэн бөгөөд энэ нь танд өгөгдлийг харах, засварлах, EdgeQL асуулга ажиллуулах, ашигласан хадгалах схемд дүн шинжилгээ хийх боломжийг олгоно. Интерфэйсийг "edgedb ui" командын тусламжтайгаар эхлүүлсэн бөгөөд үүний дараа localhost руу нэвтрэх үед ашиглах боломжтой болно.
    DBMS EdgeDB 2.0 харилцааны графикийн хувилбар
  • “GROUP” илэрхийлэл хэрэгжсэн бөгөөд энэ нь танд SELECT үйлдлээр бүлэглэхтэй адил дурын EdgeQL илэрхийллийг ашиглан өгөгдөл болон өгөгдлийг бүлэглэх, хуваах боломжийг олгоно.
  • Объектын түвшинд хандалтыг хянах чадвар. Хандалтын дүрэм нь хадгалалтын схемийн түвшинд тодорхойлогддог бөгөөд татах, оруулах, устгах, шинэчлэх үйлдлүүдэд тодорхой багц объектыг ашиглах боломжийг хязгаарлах боломжийг олгодог. Жишээлбэл, та зөвхөн зохиогчид нийтлэлийг шинэчлэхийг зөвшөөрдөг дүрмийг нэмж болно.
  • Хадгалалтын схемд глобал хувьсагчдыг ашиглах чадварыг нэмсэн. Хэрэглэгчтэй холбох шинэ глобал хувьсагч одоогийн_user санал болгов.
  • Утгын мужийг тодорхойлсон төрлүүдийн дэмжлэгийг нэмсэн.
  • Rust хэлний албан ёсны үйлчлүүлэгч номын санг бэлтгэсэн.
  • EdgeDB хоёртын протоколыг тогтворжуулж, нэг сүлжээний холболт дотор хэд хэдэн өөр сессийг нэгэн зэрэг боловсруулж, HTTP-ээр дамжуулж, глобал хувьсагч болон локал төлөвийг ашиглан дамжуулах боломжтой болсон.
  • Сокет идэвхжүүлэх дэмжлэг нэмэгдсэн бөгөөд энэ нь серверийн зохицуулагчийг санах ойд хадгалахгүй бөгөөд зөвхөн холболт үүсгэх гэж оролдох үед ажиллуулах боломжийг олгодог (хөгжүүлэгчийн систем дэх нөөцийг хэмнэхэд хэрэгтэй).

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

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