Baza de date încorporată - Embedded database

Un sistem de baze de date încorporat este un sistem de gestionare a bazelor de date (SGBD) care este strâns integrat cu un software de aplicație ; este „încorporat în aplicație”. Este de fapt o categorie largă de tehnologie care include

Termenul de bază de date încorporată poate fi confuz, deoarece doar un subset mic de produse de baze de date încorporate sunt utilizate în sistemele încorporate în timp real , cum ar fi comutatoarele de telecomunicații și dispozitivele electronice de consum . (Consultați baza de date mobilă pentru baze de date cu amprentă mică care ar putea fi utilizate pe dispozitive încorporate.)

Implementări

Principalele produse de baze de date încorporate includ, în ordine alfabetică:

Comparații între motoarele de stocare a bazelor de date

Server de baze de date Advantage

Serverul de baze de date Advantage (ADS) al Sybase este un sistem complet de gestionare a bazelor de date încorporate. Oferă atât ISAM, cât și acces la date relaționale și este compatibil cu mai multe platforme, inclusiv Windows, Linux și Netware. Este disponibil ca bază de date locală de fișiere-server fără redevențe sau ca versiune completă client-server. ADS există de mulți ani și este foarte scalabil, fără administrare și are suport pentru o varietate de IDE, inclusiv .NET Framework (.NET), Object Pascal (Delphi), Visual FoxPro (FoxPro), PHP , Visual Basic ( VB), obiecte vizuale (VO), Vulcan , Clipper , Perl , Java , xHarbour etc.

Apache Derby

Derby este un motor SQL încorporabil scris integral în Java. Complet tranzacțional, multi-utilizator cu un subset SQL decent, Derby este un motor matur și disponibil gratuit sub licența Apache și este întreținut în mod activ. Pagina proiectului Derby . De asemenea, este distribuit ca parte a kitului de dezvoltare Java SE (JDK) al Oracle sub numele de Java DB.

Empress Embedded Database

Empress Software, Inc., dezvoltator al bazei de date Embedded Embedded , este o companie privată fondată în 1979. Empress Embedded Database este o bază de date relațională cu funcții complete, care a fost încorporată în aplicații de către organizații mici până la mari, cu medii de implementare, inclusiv medicale. sisteme, routere de rețea, monitoare de centrale nucleare, sisteme de gestionare a satelitului și alte aplicații de sisteme încorporate care necesită fiabilitate și energie. Empress este un motor de baze de date SQL compatibil ACID cu C, C ++ , Java, JDBC , ODBC, SQL , ADO.NET și API-uri de nivel kernel . Aplicațiile dezvoltate folosind aceste API pot fi rulate în moduri independente și / sau server. Baza de date Empress Embedded rulează pe Linux, Unix , Microsoft Windows și sisteme de operare în timp real .

Motor de stocare extensibil

ESE este o tehnologie de stocare a datelor indexată cu acces secvențial (ISAM) de la Microsoft. ESE este în special un nucleu al Microsoft Exchange Server și Active Directory. Scopul său este de a permite aplicațiilor să stocheze și să recupereze date prin acces indexat și secvențial. Windows Mail și Desktop Search din sistemul de operare Windows Vista folosesc, de asemenea, ESE pentru a stoca indexuri și, respectiv, informații despre proprietăți.

eXtremeDB

McObject LLC a lansat eXtremeDB ca prima bază de date încorporată în memorie proiectată de la zero pentru sisteme încorporate în timp real. Produsului inițial i s-a alăturat curând eXtremeDB High Availability (HA) pentru aplicații tolerante la erori . Familia de produse include acum ediții de înregistrare pe 64 de biți și tranzacții și hibridul eXtremeDB Fusion, care combină stocarea de date în memorie și pe disc. În 2008, McObject a introdus eXtremeDB Kernel Mode, primul SGBD încorporat conceput pentru a rula într-un kernel de sistem de operare . Astăzi, eXtremeDB este utilizat în milioane de sisteme încorporate în timp real și în întreaga lume. McObject oferă, de asemenea, Prest , o bază de date încorporată orientată obiect, open source , pentru Java, Java ME , .NET, .NET Compact Framework și Silverlight .

Firebird Embedded

Firebird Embedded este un motor de baze de date relaționale. Este un fork open source al InterBase, este compatibil cu ACID , acceptă declanșatoare și proceduri stocate și este disponibil pe sistemele Linux, OSX și Windows. Are aceleași caracteristici ca versiunea clasică și superserver a Firebird, două sau mai multe fire (și aplicații) pot accesa aceeași bază de date în același timp începând cu Firebird 2.5. Deci, Firebird încorporat acționează ca un server local pentru un client cu fir care își accesează bazele de date (asta înseamnă că funcționează corect pentru aplicațiile web ASP.NET, deoarece acolo, fiecare utilizator are propriul fir, ceea ce înseamnă că doi utilizatori ar putea accesa aceeași bază de date în același timp, dar nu ar fi în același fir, deoarece ASP.NET deschide un nou fir pentru fiecare utilizator). Exportă punctele de intrare API Firebird standard. Principalul avantaj al bazelor de date încorporate Firebird este că, spre deosebire de bazele de date SQlite sau Access, acestea pot fi conectate la un server Firebird complet fără nicio modificare, de asemenea, este multiplatformă (rulează pe Linux, OS X cu suport complet ASP.NET Mono)


H2

Scris în Java Open source motor de baze de date foarte rapid. Modul încorporat și Server, asistență pentru clustere, poate rula în Google App Engine . Suportă fișiere de baze de date criptate (AES sau XTEA). Dezvoltarea H2 a fost începută în mai 2004, dar a fost publicată pentru prima dată pe 14 decembrie 2005. H2 este licențiat dublu și disponibil sub o versiune modificată a MPL 1.1 (Mozilla Public License) sau sub EPL 1.0 (nemodificat) 1.0 (Eclipse Licență publică).

HailDB, anterior InnoDB încorporat

HailDB este o formă independentă, încorporabilă a InnoDB Storage Engine. Având în vedere că HailDB se bazează pe aceeași bază de cod ca și InnoDB Storage Engine, acesta conține multe dintre aceleași caracteristici: performanță ridicată și scalabilitate, control simultan multiversion (MVCC), blocare la nivel de rând, detectare blocare, toleranță la erori, blocare automată recuperare etc. Cu toate acestea, deoarece motorul încorporat este complet independent de MySQL, îi lipsesc componentele serverului, cum ar fi rețeaua, permisiunile la nivel de obiect etc. Prin eliminarea overhead-ului serverului MySQL, InnoDB are o amprentă mică și este foarte potrivit pentru încorporare în aplicații care necesită performanțe ridicate și concurență. La fel ca în majoritatea sistemelor de baze de date încorporate, HailDB este conceput pentru a fi accesat în primul rând cu un API C de tip ISAM, mai degrabă decât SQL (deși este acceptată o variantă SQL extrem de rudimentară).

Proiectul nu mai este menținut.

HSQLDB

HSQLDB este un sistem open source de gestionare a bazelor de date relaționale cu o licență asemănătoare BSD care rulează în aceeași mașină virtuală Java ca aplicația încorporată. HSQLDB acceptă o varietate de moduri de tabelă în memorie și pe disc, Unicode și SQL: 2016.

InfinityDB

InfinityDB Embedded Java DBMS este un depozit de valori ierarhice sortate. Acum are o ediție criptată și o ediție Client / Server. Viteza multi-core este solicitată de brevet. InfinityDB este sigur, tranzacțional, comprimat și robust, într-un singur fișier pentru instalare instantanee și administrare zero. API-urile includ „ItemSpace” rapid, o vizualizare ConcurrentNavigableMap și JSON. Un RemoteItemSpace poate redirecționa în mod transparent API-urile încorporate către alte instanțe db. Client / Server include un server Servlet ușor, administrare web și navigare în baze de date și REST pentru python.

Informix Dynamic Server

Informix Dynamic Server (IDS) este caracterizat ca un server de baze de date încorporabile de clasă enterprise , care combină caracteristici încorporabile, cum ar fi capacități de amprentă redusă, programabile și autonome cu caracteristici de baze de date de clasă enterprise, cum ar fi disponibilitate ridicată și caracteristici de replicare flexibile. IDS este utilizat în scenarii profund încorporate, cum ar fi sistemele de procesare a apelurilor de telefonie IP, aplicațiile de la punctul de vânzare și sistemele de procesare a tranzacțiilor financiare.

InterBase

InterBase este o platformă bazată pe baze de date SQL bazată pe Unicode, premiată de IoT, care poate fi încorporată în aplicații la cheie. Suport SMP disponibil și pe criptare AES cu rezistență pe 256 biți, conformitate SQL 92 și ACID și suport pentru platformele Windows, Macintosh, Linux, Solaris, iOS și Android. Ideal atât pentru întreprinderile mici, mijlocii, cât și pentru cele mari, care susțin sute de utilizatori și dezvoltarea de aplicații mobile. InterBase Light este o versiune gratuită care poate fi utilizată pe orice dispozitiv mobil și este ideală pentru aplicații mobile. Întreprinderile pot trece la o versiune plătită pe măsură ce cerințele pentru gestionarea schimbărilor și securitatea cresc. InterBase are o adopție ridicată în industriile de apărare, spațiu aerian, petrol și gaze și producție.

LevelDB

LevelDB este un magazin de chei / valori comandat creat de Google ca o implementare ușoară a designului de stocare Bigtable . Ca bibliotecă (care este singura modalitate de a utiliza LevelDB), API-ul său nativ este C ++. De asemenea, include ambalaje oficiale C pentru majoritatea funcționalității. Împachetări API terțe există pentru Python , PHP , Go ( implementarea pură Go LevelDB există, dar este încă în desfășurare), Node.js și Objective C. Google distribuie LevelDB sub Noua licență BSD .

LMDB

Lightning Memory- Mapped Database (LMDB) este o bază de date de valori-cheie mapate de memorie pentru proiectul OpenLDAP . Este scris în C, iar API-ul este modelat după API-ul Berkeley DB , deși mult simplificat. Biblioteca este extrem de compact, compilarea până la sub 40kb de cod obiect x86, fiind de obicei mai rapid decât biblioteci similare , cum ar fi Berkeley DB , LevelDB , etc. pune în aplicare biblioteca B + copaci cu controlul multiversion concurrency (MVCC), magazin cu un singur nivel , Copiere la scriere și oferă tranzacții ACID complete fără blocaje. Biblioteca este optimizată pentru o concurență mare de citire; cititorii nu au nevoie deloc de încuietori. Cititorii nu blochează scriitorii și scriitorii nu blochează cititorii, deci citiți scalele de performanță perfect liniar în mod arbitrar în multe fire și procesoare. Împachetări terțe există pentru C ++ , Erlang și Python . LMDB este distribuit de proiectul OpenLDAP sub licența publică OpenLDAP. Începând cu 2013, proiectul OpenLDAP renunță la utilizarea Berkeley DB, în favoarea LMDB.

Mimer SQL

Este disponibilă o versiune integrată de întreținere zero a bazei de date SQL Mimer.

Biblioteca MySQL Embedded Server

Embedded MySQL Server Biblioteca oferă cele mai multe dintre caracteristicile de MySQL regulate ca o bibliotecă legabil care pot fi rulate în contextul unui proces de client. După inițializare, clienții pot utiliza aceleași apeluri API C ca atunci când vorbesc cu un server MySQL separat, dar cu mai puține cheltuieli de comunicare și fără a fi nevoie de un proces de bază de date separat.

NexusDB

NexusDB este succesorul comercial al bazei de date FlashFiler care este acum open source. Ambele pot fi încorporate în aplicațiile Delphi pentru a crea executabile de sine stătătoare cu funcționalitate completă a bazei de date.

Oracle Berkeley DB

După cum sugerează și numele, baza de date încorporată Oracle este de fapt Berkeley DB , pe care Oracle a achiziționat-o de la Sleepycat Software. A fost inițial dezvoltat la Universitatea din California. Berkeley DB este o bază de date încorporată rapidă, open-source și este utilizată în mai multe produse open-source bine cunoscute, inclusiv sistemele de operare Linux și BSD Unix, serverul web Apache, suita de productivitate OpenOffice. Cu toate acestea, în ultimii ani, multe proiecte binecunoscute au trecut la utilizarea LMDB , deoarece depășesc Berkeley DB în scenarii cheie pe baza designului „ mai puțin este mai mult ”, datorită schimbării licenței.

Manager Raima Database

Manager Raima Database , produs de Raima . Conform definiției lui Raima, produsul este încorporat în două sensuri: în primul rând, este încorporat într-o aplicație, devenind o extensie a aplicației și, în al doilea rând, este posibil să-l utilizați în computer / sistem de operare încorporat sau în medii în timp real din cauza amprenta sa mică și funcționarea eficientă. API-urile sale (pentru C / C ++, SQL, JDBC, ODBC, ADO.NET și RESTful) au fost concepute pentru a suporta resursele limitate ale mediilor încorporate.

RocksDB

RocksDB, creat pe Facebook , a început ca o furcă a LevelDB . Se concentrează pe performanță, în special pe SSD-uri . Acesta adaugă multe caracteristici, inclusiv tranzacții , copii de rezervă , instantanee , filtre de înflorire , familii de coloane , expirare, operatori de îmbinare personalizate, compactare mai ajustabilă, colectare de statistici și indexare geospațială. Este folosit ca motor de stocare în alte câteva baze de date, inclusiv ArangoDB , Ceph , CockroachDB , MongoRocks, MyRocks , Rocksandra și TiKV.

solidDB

solidDB este o bază de date relațională hibridă pe disc / în memorie și este adesea utilizată ca bază de date de sistem încorporată în echipamente de telecomunicații, software de rețea și sisteme similare. Tehnologia bazei de date în memorie este utilizată pentru a obține transfer de zeci de mii de tranzacții pe secundă, cu timpi de răspuns măsurați în microsecunde. Opțiunea de disponibilitate ridicată menține sincronizate în permanență două copii ale datelor. În caz de eșec al sistemului, aplicațiile pot recupera accesul la solidDB în mai puțin de o secundă, fără pierderi de date.

SQLite

SQLite este o bibliotecă software care implementează un motor de baze de date SQL tranzacțional autonom, fără server, fără configurare zero. SQLite este cel mai utilizat motor de baze de date SQL din lume. Codul sursă, în principal C, pentru SQLite este în domeniul public. Acesta include atât o bibliotecă nativă C, cât și un client de linie de comandă simplu pentru baza de date. Este inclus în mai multe sisteme de operare; printre acestea se numără Android , FreeBSD , iOS , OS X și Windows 10 .

SQL Server Compact

Microsoft SQL Server Compact este o bază de date încorporată cu o mare varietate de caracteristici, cum ar fi conexiuni multi-proces, T-SQL, ADO.NET Sync Services pentru sincronizare cu orice bază de date back-end, Merge Replication cu SQL Server, API de programare: LINQ la SQL, LINQ către entități, ADO.NET. Produsul rulează atât pe platformele desktop Windows, cât și pe cele mobile Windows. A fost pe piață de mult timp, utilizat de multe întreprinderi în software de producție ( Studii de caz ). Produsul a trecut prin mai multe re-brandinguri și a fost cunoscut cu mai multe nume precum: SQL CE, SQL Server CE, SQL Server Mobile, SQL Mobile.

Vezi si

Referințe

  1. ^ Graves, Steve. "Baze de date COTS pentru sisteme încorporate" Arhivat 2007-11-14 la Wayback Machine ,revista Embedded Computing Design , ianuarie 2007. Accesat la 13 august 2008.
  2. ^ Mullins, Craig. „Empress oferă o soluție de bază de date încorporată eficientă” , 2005. Adus în 2008-12-09
  3. ^ Gorine, Andrei și Krivolapov, Alexander. „Kernel Mode Databases: A DBMS Technology for High-Performance Applications” , Jurnalul Dr. Dobb , aprilie 2008. Accesat la 13 august 2008.
  4. ^ Pagina de pornire HailDB
  5. ^ Închiderea HailDB , de Stewart Smith pe 19 august 2015, HailDB
  6. ^ "Embedded Informix Dynamic Server" , Accesat la 30 august 2009.
  7. ^ Vezi Berkeley DB
  8. ^ Niccolai, James. „Actualizare: Oracle cumpără un furnizor de baze de date open-source Sleepycat” Arhivat 13.06.2008 la Wayback Machine , „InfoWorld”, 14.02.2006. Adus la 12 iunie 2008.
  9. ^ „Noțiuni de bază RocksDB” . Adus 19-07-2018 .
  10. ^ "Tranzacții RocksDB" . GitHub . Adus 04/04/2016 .
  11. ^ "Cum se face backup pentru RocksDB?" . Adus 19-07-2017 .
  12. ^ "Puncte de control" . Adus 19-07-2017 .
  13. ^ "Filtre RocksDB bloom" . GitHub . Adus 04/04/2016 .
  14. ^ "Familii de coloane în RocksDB" . GitHub . Adus 04/04/2016 .
  15. ^ "Suport TTL RocksDB" . GitHub . Adus 04/04/2016 .
  16. ^ "Operatorul de îmbinare RocksDB" . GitHub . Adus 04/04/2016 .
  17. ^ „Compactare universală” . GitHub . Adus 04/04/2016 .
  18. ^ "Contextul perfect RocksDB și contextul statisticilor IO" . GitHub . Adus 04/04/2016 .
  19. ^ "Indexarea spațială în RocksDB" . rocksdb.org . Adus 19-07-2018 .
  20. ^ "Compararea noilor motoare de stocare RocksDB și MMFiles" . Adus 19-07-2018 .
  21. ^ "Dispozitive de stocare - Documentație Ceph" . Adus 19-07-2018 .
  22. ^ "Storage Layer - CockroachDB" . Adus 19-07-2018 .
  23. ^ "mongodb-partners / mongo-rocks: strat de integrare a stocării MongoDB pentru motorul de stocare Rocks" . Adus 19-07-2018 .
  24. ^ "MyRocks - Un motor de stocare RocksDB cu MySQL" . Adus 19-07-2018 .
  25. ^ "Open-sourcing o reducere de 10x a latenței cozii Apache Cassandra" . Adus 19-07-2018 .
  26. ^ "RocksDB în TiKV - PingCAP" . Adus 19-07-2018 .
  27. ^ https://medium.com/walmartglobaltech/https-medium-com-kharekartik-rocksdb-and-embedded-databases-1a0f8e6ea74f
  28. ^ Răspuns, Usman (29 octombrie 2015). „Expedierea unei noi mentalități cu SQLite în Windows 10” . Microsoft. Arhivat din original la 31.01.2016 . Accesat la 6 martie 2016 .