관계형 그래프 DBMS EdgeDB의 첫 번째 안정적인 릴리스

복잡한 계층적 데이터 작업에 최적화된 관계형 그래프 데이터 모델 및 EdgeQL 쿼리 언어를 구현한 PostgreSQL의 추가 기능인 EdgeDB DBMS의 첫 번째 안정적인 릴리스를 사용할 수 있습니다. 코드는 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 쿼리를 다른 쿼리 내의 표현식으로 지정할 수 있습니다. 트랜잭션과 주기가 지원됩니다. select Movie { title, actor: { 이름 } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", actor := ( select Person filter .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } {0, 1, 2, 3} 합집합의 숫자( { 숫자, 숫자 + 0.5 } 선택);

출처 : opennet.ru

코멘트를 추가