Realm

1. 개요

Realm은 초기에는 Xamarin 또는 React Native등의 플랫폼에서 사용할 수있는 모바일용 오픈 소스 객체 데이터베이스 관리 시스템이었다. 응용 프로그램이 있으며 Apache 라이센스에 의거하여 라이센스가 부여된다.

2017년 1 월에 첫 번째 stable 버전 릴리스가 나왔다. Realm Object Server와 로그인 사용자에 속한 클라이언트 측 데이터베이스 간의 양방향 동기화가 가능. PostgreSQL과 같은 다른 데이터베이스 관리 시스템과의 통합을 위한 비즈니스 라이센스와 함께 개발자 및 상업용 버전이 모두 릴리스되었다.

2. 역사

Realm 개발은 TightDB라는 이름으로 Bjarne Christiansen과 함께 Alexander Stigsen이 2010 년 말에 시작했다. 회사는 Y Combinator에서 2011 년에 시작되었다. 구성 가능한 내구성을 갖춘 NoSQL으로 승격되었으며, 여러 프로세스 및 여러 장치 및 클러스터에서도 동일한 데이터 그룹을 공유 할수 있었다.

TightDB는 2014 년 9월에 제품을 Realm으로 변경하고 공개 테스트를 위해 이를 릴리스했다.

3. 특징

  • Realm은 Object 저장소이므로 입력 된 언어 별 API는 입력 된 객체를 Realm 파일에 직접 매핑하므로 클래스는 스키마 정의로 사용.
  • 객체 간의 관계는 link를 통해 허용. 각 link는 현재 오브젝트에 링크 된 오브젝트와 반대 관계로 backlink를 작성.
  • Realm이 반환하는 쿼리 결과는 현재 데이터베이스 버전에 대한 스레드 로컬 뷰이며 트랜잭션이 모든 스레드에서 커밋 될 때 이러한 뷰가 자동으로 업데이트
  • 각 스레드 로컬 뷰는 액세서 메소드가 호출 될 때 데이터베이스에서 read/write 만하는 프록시 객체를 반환. 즉, 모든 데이터베이스 액세스가 지연로드. 기록은 쓰기 트랜잭션 중에 만 허용.
  • 각 쿼리 결과 및 각 프록시 개체는 원본 데이터에 대한 뷰이므로 데이터베이스에 대한 모든 변경 내용은 동일한 데이터를 가리키는 모든 개체에 반영. Realm은 일반적으로이 동작을 zero-copy architecture라고 부름


Improve this page