임베디드 데이터베이스
Embedded database![]() |
임베디드 데이터베이스 시스템은 애플리케이션 소프트웨어와 긴밀하게 통합된 데이터베이스 관리 시스템(DBMS)으로, 애플리케이션에 내장되어 있습니다.실제로 다음과 같은 광범위한 테크놀로지 카테고리입니다.
- 서로 다른 애플리케이션 프로그래밍 인터페이스(SQL 및 독점 네이티브 API)를 사용하는 데이터베이스 시스템,
- 데이터베이스 아키텍처(클라이언트 서버 및 처리 중),
- 스토리지 모드(온디스크, 인메모리 및 조합),
- 데이터베이스 모델(관계형, 객체 지향, 엔티티-아트리뷰트-값 모델, 네트워크/CODASYL) 및
- 대상 시장
임베디드 데이터베이스라는 용어는 통신 스위치나 가전 기기 [1]등의 실시간 임베디드 시스템에서 사용되는 임베디드 데이터베이스 제품의 일부만 사용되기 때문에 혼동될 수 있습니다.(임베디드 디바이스에서 사용할 수 있는 작은 풋프린트 데이터베이스에 대해서는 모바일 데이터베이스를 참조하십시오).
실장
주요 임베디드 데이터베이스 제품은 알파벳 순으로 다음과 같습니다.
- Sybase Inc.의 어드밴티지 데이터베이스 서버
- Oracle Corporation의 Berkeley DB
- csqlcache.com의 CSQL
- Microsoft의 확장 가능한 스토리지 엔진
- McObject로부터의 eXtremeDB
- Claris의 파일 메이커
- Firebird 임베디드
- HSQLDB로부터의 HSQLDB조직,
- IBM의 Informix Dynamic Server(IDS)
- 인피니티보일러 베이 주식회사의 DB
- Oracle Corporation의 InnoDB
- Embacadero Technologies의 InterBase(서버와 모바일 모두에 적합한 딥 임베디드 버전)
- Symas Corp.의 LMDB(Lightning Memory-Mapped Database)
- Raima의 Raima 데이터베이스 매니저
- 솔리드 DB
- SQLite
- Microsoft Corporation의 SQL Server Compact
- Sophia Embeddable 주요 가치 스토리지
데이터베이스 스토리지 엔진 비교
![]() |
어드밴티지 데이터베이스 서버
Sybase의 Advantage Database Server(ADS)는 임베디드 데이터베이스 관리 시스템입니다.ISAM 및 릴레이셔널 데이터 액세스를 모두 제공하며 Windows, Linux, Netware 등의 여러 플랫폼과 호환됩니다.로열티 없는 로컬 파일 서버 데이터베이스 또는 풀 클라이언트 서버 버전으로 사용할 수 있습니다.ADS는 관리 없이 확장성이 뛰어나며 등 다양한 IDE를 지원합니다.NET 프레임워크(.NET), 오브젝트 파스칼(Delphi), Visual FoxPro(FoxPro), PHP, Visual Basic(VB), Visual Objects(VO), Vulcan, Clipper, Perl, Java, xHarbour 등
아파치 더비
Derby는 완전히 Java로 작성된 임베디드 SQL 엔진입니다.Derby는 완벽한 SQL 서브셋을 갖춘 완전한 트랜잭션 방식의 다중 사용자로 Apache 라이센스로 자유롭게 사용할 수 있는 성숙한 엔진입니다. 또한 현재도 활발하게 유지 관리되고 있습니다.더비 프로젝트 페이지또한 Java DB라는 이름으로 Oracle의 Java SE Development Kit(JDK)의 일부로 배포됩니다.
엠파이어 임베디드 데이터베이스
엠파이어 임베디드 데이터베이스의 개발자인 엠파이어 소프트웨어는 1979년에 설립된 민간 기업이다.Embedded Database는 의료 시스템, 네트워크 라우터, 원자력 발전소 모니터, 위성 관리 시스템 및 신뢰성과 [2]파워를 필요로 하는 기타 임베디드 시스템 애플리케이션 등의 도입 환경을 갖춘 소규모 조직과 대규모 조직에 의해 애플리케이션에 삽입된 완전한 기능의 관계형 데이터베이스입니다.Quefess는 C, C++, Java, JDBC, ODBC, SQL, ADO를 지원하는 ACID 준거 SQL 데이터베이스 엔진입니다.NET 및 커널 수준의 API.이러한 API를 사용하여 개발된 응용 프로그램은 독립 실행형 및/또는 서버 모드에서 실행될 수 있습니다.Embedded Database는 Linux, Unix, Microsoft Windows 및 실시간 운영 체제에서 실행됩니다.
확장 가능한 스토리지 엔진
ESE는 마이크로소프트의 ISAM(Indexed Sequential Access Method) 데이터 스토리지 기술입니다.ESE는 특히 Microsoft Exchange Server 및 Active Directory의 핵심입니다.그 목적은 응용 프로그램이 색인화된 액세스 및 순차적 액세스를 통해 데이터를 저장하고 검색할 수 있도록 하는 것입니다.또, Windows Vista operating system의 Windows Mail 및 데스크탑 검색에서는, ESE 를 사용해 인덱스와 속성 정보를 각각 보존합니다.
eXtremeDB
McObject LLC가 eXtreme를 출시했습니다.DB는 실시간 임베디드 시스템용으로 처음부터 설계된 최초의 인메모리 임베디드 데이터베이스입니다.초기 제품에는 곧 폴트 톨러런스 애플리케이션을 위한 eXtremeDB 고가용성(HA)이 추가되었습니다.이 제품군은 이제 64비트 및 트랜잭션 로깅 에디션과 인메모리 및 온디스크 데이터 스토리지를 결합한 하이브리드 eXtremeDB Fusion을 포함합니다.2008년에 McObject는 eXtreme를 도입했습니다.DB 커널 모드: 운영 체제 [3]커널에서 실행되도록 설계된 최초의 임베디드 DBMS입니다.현재 eXtreme는DB는 전 세계 수백만 개의 실시간 임베디드 시스템에서 사용되고 있습니다.또한 McObject는 Java, Java ME, .NET 등의 객체 지향 오픈 소스 임베디드 데이터베이스인 Perst를 제공합니다.NET Compact Framework 및 Silverlight.
Firebird 임베디드
Firebird Embedded는 릴레이셔널 데이터베이스 엔진입니다.InterBase의 오픈 소스 포크로서 ACID에 준거하고 트리거와 스토어드 프로시저를 지원하며 Linux, OSX 및 Windows 시스템에서 사용할 수 있습니다.Firebird의 기존 및 슈퍼 서버 버전과 동일한 기능을 갖추고 있으며 Firebird 2.5부터는 두 개 이상의 스레드(및 애플리케이션)가 동일한 데이터베이스에 동시에 액세스할 수 있습니다.따라서 Firebird 임베디드는 데이터베이스에 액세스하는 하나의 스레드 클라이언트의 로컬 서버로서 기능합니다(즉, ASP에서는 정상적으로 동작합니다).NET 웹 어플리케이션은 각 사용자가 독자적인 스레드를 가지고 있기 때문에 2명의 사용자가 동시에 같은 데이터베이스에 액세스할 수 있지만 ASP가 있기 때문에 같은 스레드에는 존재하지 않습니다.NET 에서는, 유저 마다 새로운 스레드가 열립니다.표준 Firebird API 진입점을 내보냅니다.Firebird 임베디드 데이터베이스의 주요 장점은 SQLite 데이터베이스나 Access 데이터베이스와는 달리 전혀 수정 없이 완전한 Firebird 서버에 연결할 수 있는 멀티플랫폼입니다(완전 ASP를 사용하는 Linux, OS X에서 실행).NET Mono 지원)
H2
Java Open 소스로 매우 빠른 데이터베이스 엔진으로 작성됩니다.임베디드 및 서버 모드인 클러스터링은 Google App Engine 내에서 실행할 수 있습니다.암호화된 데이터베이스 파일(AES 또는 XTEA)을 지원합니다.H2의 개발은 2004년 5월에 시작되었지만 2005년 12월 14일에 처음 출판되었다.H2는 듀얼 라이선스로 MPL 1.1(Mozilla Public License)의 수정 버전 또는 EPL 1.0(수정되지 않음)의 수정 버전(Eclipse Public License)으로 사용할 수 있습니다.
HailDB(구 Embedded InnoDB)
HailDB는 InnoDB Storage Engine의 독립형 임베디드 형식입니다.HailDB는 InnoDB Storage Engine과 동일한 코드 기반이기 때문에 고성능 및 확장성, 다중 버전 동시 제어(MVCC), 행 레벨 잠금, 교착 상태 감지, 폴트 톨러런스, 자동 크래시 복구 등 많은 동일한 기능을 포함하고 있습니다.그러나 임베디드 엔진은 MySQL과 완전히 독립되어 있기 때문에 네트워킹, 오브젝트 수준의 권한 등의 서버 컴포넌트가 없습니다.MySQL 서버 오버헤드를 제거함으로써 InnoDB는 설치 공간이 작고 고성능과 동시성을 필요로 하는 애플리케이션에 내장하기에 적합합니다.대부분의 임베디드 데이터베이스 시스템과 마찬가지로 HailDB는 주로 SQL이 아닌 ISAM과 유사한 C API를 사용하여 액세스하도록 설계되어 있습니다(단, 극히 기본적인 SQL 배리언트가 지원됩니다).[4]
그 프로젝트는 더 이상 [5]유지 보수되지 않는다.
HSQLDB
HSQLDB는 임베디드 애플리케이션과 동일한 Java Virtual Machine에서 실행되는 BSD와 유사한 라이센스를 가진 오픈 소스 관계형 데이터베이스 관리 시스템입니다.HSQLDB는 Unicode 및 SQL:2016 등 다양한 인메모리 및 디스크 기반 테이블 모드를 지원합니다.
인피니티DB
인피니티DB Embedded Java DBMS는 정렬된 계층 키/값 저장소입니다.이제 Encrypted 에디션과 Client/Server 에디션이 있습니다.멀티코어 속도는 특허 출원 대상입니다.인피니티DB는 단일 파일에서 안전하고, 트랜잭션적이며, 압축 가능하며, 강력하여 즉각적인 설치와 관리 작업이 필요하지 않습니다.API에는 단순하고 빠른 'ItemSpace', ConcurrentNavigableMap 뷰 및 JSON이 포함됩니다.RemoteItemSpace는 내장된 API를 다른 DB 인스턴스로 투과적으로 리디렉션할 수 있습니다.클라이언트/서버에는 경량 Servlet 서버, 웹 관리 및 데이터베이스 브라우징, 파이썬용 REST가 포함되어 있습니다.
Informix 다이내믹 서버
Informix Dynamic Server(IDS)는 공간 절약, 프로그래밍 가능 및 자율 기능 등의 내장 가능 기능과 고가용성 및 유연한 복제 [6]기능 등의 엔터프라이즈급 데이터베이스 기능을 결합한 엔터프라이즈급 내장형 데이터베이스 서버라는 특징이 있습니다.IDS는 IP 텔레포니콜 처리 시스템, POS 애플리케이션, 금융거래 처리 시스템 등 깊이 내장된 시나리오에서 사용됩니다.
인터베이스
InterBase는 IoT 수상 경력이 있는 Unicode 지원 크로스 플랫폼 SQL 데이터베이스 플랫폼으로 턴키 애플리케이션에 내장할 수 있습니다.즉시 SMP 지원 및 디스크 AES 강도 256비트 암호화, SQL 92 & ACID 준거 및 Windows, Macintosh, Linux, Solaris, iOS 및 Android 플랫폼 지원수백 명의 사용자 및 모바일 애플리케이션 개발을 지원하는 중소규모 기업 및 대기업 모두에 이상적입니다.InterBase Light는 모든 모바일 기기에서 사용할 수 있는 무료 버전으로 모바일 애플리케이션에 이상적입니다.기업은 변경 관리 및 보안 요건의 증가에 따라 유료 버전으로 전환할 수 있습니다.InterBase는 방위, 영공, 석유 및 가스, 제조업 분야에서 높은 채택률을 보이고 있습니다.
레벨 DB
LevelDB는 Bigtable 스토리지 설계의 경량 구현으로 Google에 의해 작성된 주문 키/값 저장소입니다.라이브러리(LevelDB를 사용하는 유일한 방법)로서 네이티브 API는 C++입니다.또한 대부분의 기능을 위한 공식 C 래퍼도 포함되어 있습니다.Python, PHP, Go(순수한 Go LevelDB 구현은 존재하지만 아직 진행 중), Node.js 및 Objective C용 서드파티 API 래퍼가 있습니다.Google은 New BSD License에 따라 LevelDB를 배포합니다.
LMDB
LMDB(Lightning Memory-Mapped Database)는 OpenLDAP 프로젝트의 메모리 매핑 키 값 데이터베이스입니다.이것은 C로 작성되어 있으며 API는 매우 단순하지만 Berkeley DB API를 본떠 모델링되었습니다.라이브러리는 매우 콤팩트하며, 40KB 미만의 x86 객체 코드를 컴파일할 수 있으며, 일반적으로 버클리 DB, 레벨 DB 등과 같은 유사한 라이브러리보다 빠릅니다.라이브러리는 다중 버전 동시성 제어(MVCC), 싱글 레벨 스토어, Copy on Write를 포함한 B+tree를 구현하고 교착 상태 없이 완전한 ACID 트랜잭션을 제공합니다.라이브러리는 높은 동시 읽기에 최적화되어 있기 때문에, 리더는 잠금이 전혀 필요 없습니다.리더는 라이터를 차단하지 않고 라이터도 차단하지 않기 때문에 읽기 퍼포먼스는 임의의 다수의 스레드와 CPU에 걸쳐 완전히 선형적으로 확장됩니다.서드파티제의 래퍼는 C++, Erlang 및 Python용으로 존재합니다.LMDB는 OpenLDAP Public License에 따라 OpenLDAP 프로젝트에 의해 배포됩니다.2013년 현재 OpenLDAP 프로젝트는 LMDB를 위해 Berkeley DB의 사용을 폐지하고 있습니다.
Mimer SQL
자체 Mimer SQL 관계형 데이터베이스 서버의 내장 제로 유지보수 버전을 사용할 수 있습니다.모듈식 설계, SQL 표준 완전 지원, Windows, Linux, Automotive Grade Linux, Android, QNX, Integrity 등의 포트를 통해 설치 공간이 작습니다.
모네 데이터베이스/e
MonetDB/e는 오픈 소스 MonetDB SQL 열 저장소 엔진의 내장 버전입니다.C, C++, Java(JDBC) 및 Python에서 사용할 수 있습니다.MPL 2.0 기반의 MoneDB 라이선스.이전 버전인 Monet DBLite(R, Python 및 Java용)는 더 이상 유지 관리되지 않습니다.MonetDB/e로 대체되었습니다.
MySQL Embedded Server 라이브러리
Embedded MySQL Server Library는 클라이언트 프로세스의 컨텍스트에서 실행할 수 있는 링크 가능한 라이브러리로 일반 MySQL의 대부분의 기능을 제공합니다.초기화 후 클라이언트는 별도의 MySQL 서버와 통신할 때와 동일한 C API 콜을 사용할 수 있지만 통신 오버헤드가 적어 별도의 데이터베이스 프로세스가 필요하지 않습니다.
넥서스 DB
NexusDB는 현재 오픈소스인 FlashFiler 데이터베이스의 상용 후계자입니다.둘 다 Dellphi 응용 프로그램에 포함되어 완전한 데이터베이스 기능을 갖춘 독립 실행형 실행 파일을 만들 수 있습니다.
Oracle Berkeley DB
이름에서 알 수 있듯이 Oracle의 임베디드 데이터베이스는 실제로 Berkeley DB이며 Oracle은 Sleepycat Software에서 인수했습니다.이것은 원래 캘리포니아 [7]대학에서 개발되었습니다.Berkeley DB는 고속 오픈 소스 임베디드 데이터베이스로 Linux 및 BSD Unix 운영 체제, Apache Web 서버, OpenOffice 생산성 스위트 등 여러 유명한 오픈 소스 제품에 사용됩니다.그럼에도 불구하고, 최근 몇 년 동안 많은 잘 알려진 프로젝트들이 LMDB를 사용하는 것으로 전환했는데, 이는 라이센스 [8]변경으로 인해 "더 적은 것이 더 많은" 설계라는 이유로 버클리 DB를 능가했기 때문입니다.
Raima 데이터베이스 매니저
Raima가 제작한 Raima Database Manager.Raima의 정의에 의하면, 이 제품은, 우선, 애플리케이션내에 짜넣어져 애플리케이션의 확장이 되고, 둘째, 설치 면적이 작고, 조작이 효율적이기 때문에, 임베디드 컴퓨터/OS나 리얼 타임 환경에서 사용할 수 있습니다.API(C/C++, SQL, JDBC, ODBC, ADO용)NET 및 RESTful)은 임베디드 환경의 제한된 리소스를 지원하도록 설계되었습니다.
Rocks
Facebook에서 만들어진 RocksDB는 [9]LevelDB의 포크로 시작되었다.성능, 특히 SSD에 초점을 맞춥니다.트랜잭션,[10] 백업,[11] 스냅샷,[12] 블룸 필터,[13] 열 패밀리,[14] 만료,[15] 사용자 지정 병합 연산자,[16] 조정 가능한 압축,[17] 통계 [18]수집 및 지리 공간 인덱싱 [19]등 많은 기능을 추가합니다.ArangoDB,[20] Ceph,[21] RockleDB,[22] MongoRocks,[23] MyRocks,[24] Rocksandra,[25] TiKV [26][27]및 Gugabyte를 포함한 여러 다른 데이터베이스의 스토리지 엔진으로 사용됩니다.DB.[28]
솔리드 DB
솔리드 DB는 하이브리드 온디스크/인메모리, 릴레이셔널 데이터베이스이며 통신 장비, 네트워크 소프트웨어 및 유사한 시스템에서 임베디드 시스템 데이터베이스로 자주 사용됩니다.인메모리 데이터베이스 기술은 마이크로초 단위로 측정된 응답 시간으로 초당 수만 건의 트랜잭션 처리량을 달성하기 위해 사용됩니다.고가용성 옵션은 항상 동기화된 데이터 복사본 2개를 유지합니다.시스템 장애 발생 시 애플리케이션은 데이터의 손실 없이 1초 이내에 솔리드 DB에 대한 액세스를 복구할 수 있습니다.
SQLite
SQLite는 서버 없는 제로 구성 트랜잭션 SQL 데이터베이스 엔진을 구현하는 소프트웨어 라이브러리입니다.SQLite는 세계에서 가장 널리 배포되는 SQL 데이터베이스 엔진입니다.SQLite의 소스 코드(주로 C)는 퍼블릭도메인에 있습니다.데이터베이스용 네이티브 C 라이브러리와 단순한 명령줄 클라이언트를 모두 포함합니다.Android, FreeBSD, iOS, OS X, Windows 10 [29]등 여러 운영체제에 포함되어 있습니다.
SQL Server 콤팩트
SQL Server Compact는 Microsoft의 임베디드 데이터베이스로 멀티프로세스 접속, T-SQL, ADO 등의 다양한 기능을 갖추고 있습니다.백엔드 데이터베이스와 동기화하는 NET Sync Services, SQL Server와의 복제 병합, 프로그래밍 API: LINQ to SQL, LINQ to Entities, ADO.NET. 이 제품은 데스크톱 및 모바일 Windows 플랫폼 모두에서 실행됩니다.이 제품은 오랫동안 시장에 나와 있으며, 많은 기업에서 프로덕션 소프트웨어(케이스 스터디)에 사용되고 있습니다.이 제품은 여러 번 리브랜딩을 거쳤으며 SQL CE, SQL Server CE, SQL Server Mobile, SQL Mobile과 같은 여러 이름으로 알려졌습니다.
「 」를 참조해 주세요.
- 인메모리 데이터베이스, 메인 메모리 데이터베이스
- 모바일 데이터베이스
레퍼런스
- ^ 그레이브스, Steve. "임베디드 시스템용 COTS 데이터베이스" 2007-11-14년 아카이브, 2007년 1월, Embedded Computing Design 매거진 Wayback Machine.2008년 8월 13일에 취득.
- ^ 멀린스, 크레이그"Empress는 효과적인 임베디드 데이터베이스 솔루션을 제공합니다", 2005.2008년 12월 9일 취득
- ^ 고린, 안드레이, 크리볼라포프, 알렉산더"커널 모드 데이터베이스: 고성능 애플리케이션을 위한 DBMS 테크놀로지", Dobb's Journal, 2008년 4월.2008년 8월 13일에 취득.
- ^ HailDB 홈페이지
- ^ HailDB 종료, 2015년 8월 19일 Stewart Smith의 HailDB
- ^ "Embedding Informix Dynamic Server", 2009년 8월 30일에 취득.
- ^ '버클리 DB' 참조
- ^ 니콜라이, 제임스"업데이트: Oracle, Sleepycat 오픈 소스 데이터베이스 벤더 인수" 2008-06-13년 Wayback Machine, "InfoWorld", 2006-02-14에서 아카이브 완료.2008년 6월 12일에 취득.
- ^ "RocksDB Basics". GitHub. Retrieved 2018-07-19.
- ^ "RocksDB transactions". GitHub. Retrieved 2016-04-04.
- ^ "How to backup RocksDB?". GitHub. Retrieved 2017-07-19.
- ^ "Checkpoints". GitHub. Retrieved 2017-07-19.
- ^ "RocksDB bloom filters". GitHub. Retrieved 2016-04-04.
- ^ "Column families in RocksDB". GitHub. Retrieved 2016-04-04.
- ^ "RocksDB TTL support". GitHub. Retrieved 2016-04-04.
- ^ "RocksDB merge operator". GitHub. Retrieved 2016-04-04.
- ^ "Universal compaction". GitHub. Retrieved 2016-04-04.
- ^ "RocksDB perf context and IO stats context". GitHub. Retrieved 2016-04-04.
- ^ "Spatial indexing in RocksDB". rocksdb.org. Retrieved 2018-07-19.
- ^ "Comparing new RocksDB and MMFiles storage engines". Retrieved 2018-07-19.
- ^ "Storage Devices — Ceph Documentation". Retrieved 2018-07-19.
- ^ "Storage Layer - CockroachDB". Retrieved 2018-07-19.
- ^ "mongodb-partners/mongo-rocks: MongoDB storage integration layer for the Rocks storage engine". GitHub. Retrieved 2018-07-19.
- ^ "MyRocks - A RocksDB storage engine with MySQL". Retrieved 2018-07-19.
- ^ "Open-sourcing a 10x reduction in Apache Cassandra tail latency". 5 March 2018. Retrieved 2018-07-19.
- ^ "RocksDB in TiKV - PingCAP". Retrieved 2018-07-19.
- ^ "A Glimpse into the World of Embedded Database Feat. RocksDB". 21 November 2019.
- ^ Bautin, Mikhail (2019-02-20). "How We Built a High Performance Document Store on RocksDB?". The Distributed SQL Blog. Retrieved 2022-01-09.
- ^ Answer, Usman (29 October 2015). "Shipping a New Mindset with SQLite in Windows 10". Microsoft. Archived from the original on 2016-01-31. Retrieved 6 March 2016.