SurrealDB 소개 — 멀티모델 데이터베이스
SurrealDB 소개
앱을 만들다 보면 관계형·문서·그래프·벡터 데이터를 한 곳에서 쓰고 싶은 순간이 와요. SurrealDB는 이런 요구에 **'하나의 엔진으로 모든 데이터 모델'**이라는 답을 주는 멀티모델 DB예요. Rust로 작성됐고, 문서·그래프·벡터·텍스트·시계열·지리공간 값과 관계형 테이블을 한 엔진이 저장하며, **하나의 쿼리 언어(SurrealQL)**가 이들을 단일 트랜잭션 안에서 읽고 씁니다.
하나의 엔진, 모든 데이터 모델
데이터 모델별로 SurrealDB가 주는 기능은 이래요.
- 문서(Document): 어떤 깊이든 중첩된 객체·배열을 가진 레코드
- 그래프(Graph): 레코드 사이의 타입화된 엣지(edge), 재귀 탐색, 엣지 위에 데이터 저장
- 관계형(Relational): 정의된 테이블, 타입화된 필드, 제약·뷰
하나의 쿼리 언어
SurrealQL은 SQL의 형태를 유지하면서 그래프 탐색·유사도 함수·중첩 접근을 더했어요. 이미 SELECT, CREATE, UPDATE, DELETE를 안다면 바로 시작할 수 있고, 그래프 경로는 화살표 문법(arrow syntax), 중첩 필드는 점 표기법으로 써요. 같은 데이터에 GraphQL(테이블에서 스키마 자동 생성), REST API, DEFINE API(SurrealQL로 만든 HTTP 엔드포인트)로 접근할 수 있어요.
어디서든 실행
클라우드 관리형, 자체 호스팅, 컨테이너, 애플리케이션 내 임베드(embedded)까지 실행 방식이 다양해요. 네 가지 배포 모두 SurrealQL·SDK·트랜잭션 보장을 공유해요.