Wbudowana baza danych - Embedded database

Wbudowana baza danych systemu jest system zarządzania bazami danych (DBMS), która jest ściśle zintegrowany z aplikacji ; jest "osadzone w aplikacji". W rzeczywistości jest to szeroka kategoria technologii, która obejmuje:

Termin „ wbudowana baza danych” może być mylący, ponieważ tylko niewielki podzbiór produktów wbudowanych baz danych jest używany w systemach wbudowanych czasu rzeczywistego , takich jak przełączniki telekomunikacyjne i urządzenia elektroniki użytkowej . (Zobacz mobilną bazę danych, aby uzyskać informacje o niewielkich bazach danych, które mogą być używane na urządzeniach osadzonych).

Realizacje

Główne produkty wbudowanej bazy danych obejmują, w porządku alfabetycznym:

Porównania silników przechowywania baz danych

Zaleta serwera bazy danych

Sybase Advantage Database Server (ADS) to w pełni funkcjonalny wbudowany system zarządzania bazą danych. Zapewnia zarówno dostęp ISAM, jak i relacyjny dostęp do danych i jest kompatybilny z wieloma platformami, w tym Windows, Linux i Netware. Jest dostępny jako bezpłatna lokalna baza danych plików-serwer lub pełna wersja klient-serwer. ADS istnieje od wielu lat i jest wysoce skalowalny, bez administracji i obsługuje różne środowiska IDE, w tym .NET Framework (.NET), Object Pascal (Delphi), Visual FoxPro (FoxPro), PHP , Visual Basic ( VB), Obiekty Wizualne (VO), Vulcan , Clipper , Perl , Java , xHarbour , itp.

Apache Derby

Derby to osadzony silnik SQL napisany w całości w Javie. W pełni transakcyjny, wieloużytkownikowy z przyzwoitym podzbiorem SQL, Derby to dojrzały silnik, dostępny bezpłatnie na licencji Apache i aktywnie utrzymywany. Strona projektu Derby . Jest również rozpowszechniany jako część pakietu Java SE Development Kit (JDK) firmy Oracle pod nazwą Java DB.

Wbudowana baza danych Empress

Empress Software, Inc., twórca Empress Embedded Database , to prywatna firma założona w 1979 roku. Empress Embedded Database to w pełni funkcjonalna relacyjna baza danych, która została wbudowana w aplikacje przez małe i duże organizacje, ze środowiskami wdrażania, w tym medycznymi. systemy, routery sieciowe, monitory elektrowni jądrowych, systemy zarządzania satelitami i inne aplikacje systemów wbudowanych, które wymagają niezawodności i zasilania. Empress to zgodny z ACID silnik bazy danych SQL z interfejsami API C, C++ , Java, JDBC , ODBC, SQL , ADO.NET i na poziomie jądra . Aplikacje opracowane przy użyciu tych interfejsów API mogą być uruchamiane w trybie autonomicznym i/lub serwerowym. Wbudowana baza danych Empress działa na systemach Linux, Unix , Microsoft Windows i systemach operacyjnych czasu rzeczywistego .

Rozszerzalny silnik pamięci masowej

ESE to technologia przechowywania danych oparta na indeksowanej metodzie dostępu sekwencyjnego (ISAM) firmy Microsoft. ESE jest w szczególności rdzeniem Microsoft Exchange Server i Active Directory. Jego celem jest umożliwienie aplikacjom przechowywania i pobierania danych poprzez dostęp indeksowany i sekwencyjny. Windows Mail i Desktop Search w systemie operacyjnym Windows Vista również wykorzystują ESE do przechowywania odpowiednio indeksów i informacji o właściwościach.

eXtremeDB

Firma McObject LLC uruchomiła eXtremeDB jako pierwszą wbudowaną bazę danych w pamięci, zaprojektowaną od podstaw dla systemów wbudowanych czasu rzeczywistego. Do początkowego produktu wkrótce dołączył eXtremeDB High Availability (HA) dla aplikacji odpornych na awarie . Rodzina produktów obejmuje teraz edycje 64-bitowe i rejestrujące transakcje oraz hybrydową wersję eXtremeDB Fusion, która łączy przechowywanie danych w pamięci i na dysku. W 2008 roku McObject wprowadził eXtremeDB Kernel Mode, pierwszy wbudowany DBMS zaprojektowany do działania w jądrze systemu operacyjnego . Obecnie eXtremeDB jest używany w milionach systemów czasu rzeczywistego i systemów wbudowanych na całym świecie. McObject oferuje również prest An open source , obiektowego wbudowanej bazy danych dla aplikacji Java, Java ME , .NET, .NET Compact Framework i Silverlight .

Wbudowany ognisty ptak

Firebird Embedded to silnik relacyjnej bazy danych. Jest to rozwidlenie open source InterBase, jest zgodne z ACID , obsługuje wyzwalacze i procedury składowane i jest dostępne w systemach Linux, OSX i Windows. Ma te same funkcje, co klasyczna i superserwerowa wersja Firebirda, dwa lub więcej wątków (i aplikacji) może uzyskać dostęp do tej samej bazy danych w tym samym czasie, począwszy od Firebird 2.5. Tak więc osadzony Firebird działa jako serwer lokalny dla jednego klienta wątkowego uzyskującego dostęp do jego baz danych (oznacza to, że działa poprawnie dla aplikacji internetowych ASP.NET, ponieważ tam każdy użytkownik ma swój własny wątek, co oznacza, że ​​dwóch użytkowników może jednocześnie uzyskać dostęp do tej samej bazy danych czasu, ale nie byłyby w tym samym wątku, ponieważ ASP.NET otwiera nowy wątek dla każdego użytkownika). Eksportuje standardowe punkty wejścia Firebird API. Główną zaletą wbudowanych baz danych Firebird jest to, że w przeciwieństwie do baz danych SQlite czy Access, można je podłączyć do pełnego serwera Firebird bez żadnych modyfikacji, a także jest wieloplatformowy (działa na Linux, OS X z pełną obsługą ASP.NET Mono)


H2

Napisany w Java Open source bardzo szybki silnik bazy danych. Tryb osadzony i serwerowy, obsługa klastrowania, może działać w Google App Engine . Obsługuje zaszyfrowane pliki baz danych (AES lub XTEA). Prace nad H2 rozpoczęto w maju 2004 r., ale po raz pierwszy opublikowano je 14 grudnia 2005 r. H2 posiada podwójną licencję i jest dostępny pod zmodyfikowaną wersją MPL 1.1 (Mozilla Public License) lub pod (niezmodyfikowaną) EPL 1.0 (Eclipse). Licencja publiczna).

HailDB, dawniej Embedded InnoDB

HailDB to samodzielna, możliwa do osadzenia forma silnika pamięci masowej InnoDB. Biorąc pod uwagę, że HailDB opiera się na tej samej bazie kodu, co silnik pamięci masowej InnoDB, zawiera wiele takich samych funkcji: wysoka wydajność i skalowalność, kontrola współbieżności wielu wersji (MVCC), blokowanie na poziomie wiersza, wykrywanie zakleszczeń, odporność na błędy, automatyczne awarie odzyskiwanie itp. Jednak ponieważ wbudowany silnik jest całkowicie niezależny od MySQL, brakuje mu komponentów serwerowych, takich jak sieć, uprawnienia na poziomie obiektu itp. Eliminując obciążenie serwera MySQL, InnoDB zajmuje mało miejsca i jest dobrze przystosowany do osadzania w aplikacjach wymagających wysokiej wydajności i współbieżności. Podobnie jak w przypadku większości wbudowanych systemów baz danych, HailDB jest przeznaczony do uzyskiwania dostępu głównie za pomocą interfejsu API C, podobnego do ISAM, a nie SQL (chociaż obsługiwany jest bardzo prosty wariant SQL).

Projekt nie jest już utrzymywany.

HSQLDB

HSQLDB to system zarządzania relacyjnymi bazami danych typu open source z licencją typu BSD, który działa w tej samej wirtualnej maszynie Java, co aplikacja wbudowana. HSQLDB obsługuje różne tryby tabel w pamięci i oparte na dyskach, Unicode i SQL:2016.

Nieskończoność

InfinityDB Embedded Java DBMS to uporządkowany hierarchiczny magazyn kluczy/wartości. Ma teraz edycję zaszyfrowaną i edycję klient/serwer. Wielordzeniowa prędkość została zgłoszona do opatentowania. InfinityDB jest bezpieczna, transakcyjna, kompresująca i solidna, w jednym pliku do natychmiastowej instalacji i zerowej administracji. Interfejsy API obejmują prosty szybki „ItemSpace”, widok ConcurrentNavigableMap i JSON. Obiekt RemoteItemSpace może w sposób przezroczysty przekierować wbudowane interfejsy API do innych instancji bazy danych. Klient/Serwer zawiera lekki serwer Servlet, administrator sieci i przeglądanie baz danych oraz REST dla Pythona.

Dynamiczny serwer Informix

Informix Dynamic Server (IDS) jest opisywany jako serwer bazy danych klasy korporacyjnej do osadzania , łączący cechy osadzone, takie jak niewielkie rozmiary, programowalne i autonomiczne możliwości z funkcjami bazy danych klasy korporacyjnej, takimi jak wysoka dostępność i elastyczne funkcje replikacji. IDS jest używany w głęboko osadzonych scenariuszach, takich jak systemy przetwarzania połączeń telefonii IP, aplikacje punktów sprzedaży i systemy przetwarzania transakcji finansowych.

InterBase

InterBase to wielokrotnie nagradzana, wieloplatformowa platforma bazodanowa SQL z obsługą Unicode, którą można osadzić w gotowych aplikacjach. Gotowa obsługa SMP i szyfrowanie 256-bitowe AES na dysku, zgodność z SQL 92 i ACID oraz obsługa platform Windows, Macintosh, Linux, Solaris, iOS i Android. Idealny zarówno dla małych i średnich, jak i dużych przedsiębiorstw obsługujących setki użytkowników i tworzenie aplikacji mobilnych. InterBase Light to darmowa wersja, która może być używana na dowolnym urządzeniu mobilnym i jest idealna do aplikacji mobilnych. Przedsiębiorstwa mogą przejść na wersję płatną w miarę wzrostu wymagań dotyczących zarządzania zmianami i bezpieczeństwa. InterBase jest szeroko stosowany w przemyśle obronnym, kosmicznym, naftowym i gazowym oraz wytwórczym.

Poziom DB

LevelDB to uporządkowany magazyn klucz/wartość stworzony przez Google jako uproszczona implementacja projektu Bigtable Storage. Jako biblioteka (która jest jedynym sposobem użycia LevelDB), jej natywnym API jest C++. Zawiera również oficjalne otoki C dla większości funkcji. Opakowania API innych firm istnieją dla Python , PHP , Go (jest czysta implementacja Go LevelDB , ale nadal jest w toku), Node.js i Objective C. Google dystrybuuje LevelDB na nowej licencji BSD .

LMDB

Lightning Memory-Mapped Database (LMDB) to mapowana w pamięci baza danych klucz-wartość dla projektu OpenLDAP . Jest napisany w C, a API jest wzorowane na API Berkeley DB , choć znacznie uproszczone. Biblioteka jest niezwykle kompaktowa, kompiluje się do mniej niż 40 KB kodu obiektowego x86, zwykle jest szybsza niż podobne biblioteki, takie jak Berkeley DB , LevelDB , itp. Biblioteka implementuje B+drzewa z wielowersyjną kontrolą współbieżności (MVCC), magazyn jednopoziomowy , kopiowanie na zapis i zapewnia pełne transakcje ACID bez zakleszczeń. Biblioteka jest zoptymalizowana pod kątem wysokiej współbieżności odczytu; czytelnicy w ogóle nie potrzebują zamków. Czytelnicy nie blokują pisarzy, a pisarze nie blokują czytników, więc wydajność odczytu skaluje się idealnie liniowo w dowolnie wielu wątkach i procesorach. Opakowania innych firm istnieją dla C++ , Erlang i Python . LMDB jest dystrybuowany przez OpenLDAP Project na licencji OpenLDAP Public License. Od 2013 roku projekt OpenLDAP wycofuje się z używania Berkeley DB na rzecz LMDB.

Mimer SQL

Dostępna jest wbudowana, bezobsługowa wersja zastrzeżonej bazy danych Mimer SQL.

Biblioteka wbudowanego serwera MySQL

Wbudowany MySQL Server Biblioteka udostępnia większość funkcji regularnych MySQL jako zdolny do sieciowania biblioteki, które mogą być uruchamiane w kontekście procesu klienta. Po zainicjowaniu klienci mogą używać tych samych wywołań API C, co podczas komunikacji z oddzielnym serwerem MySQL, ale z mniejszym obciążeniem komunikacją i bez potrzeby oddzielnego procesu bazy danych.

NexusDB

NexusDB jest komercyjnym następcą bazy danych FlashFiler, która jest obecnie open source. Oba mogą być osadzone w aplikacjach Delphi w celu tworzenia samodzielnych plików wykonywalnych z pełną funkcjonalnością bazy danych.

Baza danych Oracle Berkeley

Jak sama nazwa wskazuje, wbudowana baza danych Oracle to w rzeczywistości Berkeley DB , który Oracle nabył od Sleepycat Software. Został pierwotnie opracowany na Uniwersytecie Kalifornijskim. Berkeley DB to szybka, wbudowana baza danych typu open source, używana w kilku dobrze znanych produktach typu open source, w tym w systemach operacyjnych Linux i BSD Unix, serwerze internetowym Apache oraz pakiecie biurowym OpenOffice. Niemniej jednak w ostatnich latach wiele znanych projektów przeszło na korzystanie z LMDB , ponieważ przewyższa Berkeley DB w kluczowych scenariuszach na podstawie projektu „ mniej znaczy więcej ”, a także ze względu na zmianę licencji.

Menedżer bazy danych Raima

Raima Database Manager , wyprodukowany przez Raima . Zgodnie z definicją Raimy, produkt jest osadzony w dwóch znaczeniach: po pierwsze, jest osadzony w aplikacji, stając się rozszerzeniem aplikacji, a po drugie, można go używać we wbudowanym komputerze/systemie operacyjnym lub środowiskach czasu rzeczywistego jego niewielka powierzchnia i wydajna praca. Jego interfejsy API (dla C/C++, SQL, JDBC, ODBC, ADO.NET i RESTful) zostały zaprojektowane z myślą o obsłudze ograniczonych zasobów środowisk wbudowanych.

RocksDB

RocksDB, stworzony na Facebooku , zaczął jako widelec LevelDB . Koncentruje się na wydajności, zwłaszcza na dyskach SSD . Dodaje wiele funkcji, w tym transakcje , kopie zapasowe , migawki , filtry bloom , rodziny kolumn , wygasanie, niestandardowe operatory scalania, bardziej dostrajalne zagęszczanie, zbieranie statystyk i indeksowanie geoprzestrzenne. Jest używany jako silnik pamięci masowej w kilku innych bazach danych, w tym ArangoDB , Ceph , CockroachDB , MongoRocks, MyRocks , Rocksandra i TiKV.

solidDB

solidDB jest hybrydową relacyjną bazą danych na dysku/w pamięci i jest często wykorzystywana jako baza danych systemu wbudowanego w sprzęcie telekomunikacyjnym, oprogramowaniu sieciowym i podobnych systemach. Technologia bazy danych w pamięci pozwala osiągnąć przepustowość dziesiątek tysięcy transakcji na sekundę z czasem odpowiedzi mierzonym w mikrosekundach. Opcja wysokiej dostępności zapewnia stałą synchronizację dwóch kopii danych. W przypadku awarii systemu aplikacje mogą odzyskać dostęp do solidDB w mniej niż sekundę bez utraty danych.

SQLite

SQLite to biblioteka oprogramowania, która implementuje samodzielny, bezserwerowy, bezkonfiguracyjny, transakcyjny silnik bazy danych SQL. SQLite to najczęściej wdrażany silnik baz danych SQL na świecie. Kod źródłowy, głównie C, dla SQLite jest w domenie publicznej. Zawiera zarówno natywną bibliotekę C, jak i prostego klienta wiersza poleceń dla swojej bazy danych. Jest zawarty w kilku systemach operacyjnych; wśród nich są Android , FreeBSD , iOS , OS X i Windows 10 .

Kompaktowy serwer SQL

SQL Server Compact firmy Microsoft to wbudowana baza danych z szeroką gamą funkcji, takich jak połączenia wieloprocesowe, T-SQL, usługi synchronizacji ADO.NET do synchronizacji z dowolną bazą danych zaplecza, replikacja łączenia z serwerem SQL, API programowania: LINQ to SQL, LINQ do jednostek, ADO.NET. Produkt działa na platformach Windows Desktop i Mobile. Jest na rynku od dawna, używany przez wiele przedsiębiorstw w oprogramowaniu produkcyjnym ( Case Studies ). Produkt przeszedł wiele rebrandingów i był znany pod wieloma nazwami, takimi jak: SQL CE, SQL Server CE, SQL Server Mobile, SQL Mobile.

Zobacz też

Bibliografia

  1. ^ Groby, Steve. „COTS Databases for Embedded Systems” zarchiwizowane 2007-11-14 w Wayback Machine ,magazyn Embedded Computing Design , styczeń 2007. Pobrane 13 sierpnia 2008.
  2. ^ Mullins, Craig. "Empress oferuje efektywne rozwiązanie osadzonej bazy danych" , 2005. Pobrane 09.12.2008
  3. ^ Gorine, Andrei i Krivolapov, Aleksander. „Bazy danych trybu jądra: technologia DBMS dla aplikacji o wysokiej wydajności” , Dr. Dobb's Journal , kwiecień 2008. Pobrano 13 sierpnia 2008.
  4. ^ Strona główna HailDB
  5. ^ Wyłączanie HailDB , Stewart Smith w dniu 19 sierpnia 2015 r. HailDB
  6. ^ „Osadzanie Informix Dynamic Server” , pobrane 30 sierpnia 2009 r.
  7. ^ Zobacz Berkeley DB
  8. ^ Niccolai, James. „Aktualizacja: Oracle kupuje dostawcę bazy danych o otwartym kodzie źródłowym Sleepycat” Zarchiwizowane 13.06.2008 w Wayback Machine , „InfoWorld”, 14.02.2006. Pobrane 12 czerwca 2008 r.
  9. ^ "Podstawy RocksDB" . Źródło 2018-07-19 .
  10. ^ "Transakcje RocksDB" . GitHub . Źródło 2016-04-04 .
  11. ^ "Jak wykonać kopię zapasową RocksDB?" . Źródło 2017-07-19 .
  12. ^ „Punkty kontrolne” . Źródło 2017-07-19 .
  13. ^ "Filtry kwitnienia RocksDB" . GitHub . Źródło 2016-04-04 .
  14. ^ „Rodziny kolumn w RocksDB” . GitHub . Źródło 2016-04-04 .
  15. ^ "Wsparcie RocksDB TTL" . GitHub . Źródło 2016-04-04 .
  16. ^ "Operator scalania RocksDB" . GitHub . Źródło 2016-04-04 .
  17. ^ „Zagęszczanie uniwersalne” . GitHub . Źródło 2016-04-04 .
  18. ^ "Kontekst wydajności RocksDB i kontekst statystyk IO" . GitHub . Źródło 2016-04-04 .
  19. ^ „Indeksowanie przestrzenne w RocksDB” . rocksdb.org . Źródło 2018-07-19 .
  20. ^ „Porównanie nowych silników pamięci masowej RocksDB i MFiles” . Źródło 2018-07-19 .
  21. ^ „Urządzenia pamięci masowej — dokumentacja Ceph” . Źródło 2018-07-19 .
  22. ^ „Warstwa przechowywania — CockroachDB” . Źródło 2018-07-19 .
  23. ^ „mongodb-partners/mongo-rocks: warstwa integracji pamięci masowej MongoDB dla silnika pamięci masowej Rocks” . Źródło 2018-07-19 .
  24. ^ "MyRocks — silnik pamięci masowej RocksDB z MySQL" . Źródło 2018-07-19 .
  25. ^ „Open-sourcing 10x zmniejszenie opóźnienia ogona Apache Cassandra” . Źródło 2018-07-19 .
  26. ^ "RocksDB w TiKV - PingCAP" . Źródło 2018-07-19 .
  27. ^ https://medium.com/walmartglobaltech/https-medium-com-kharekartik-rocksdb-and-embedded-databases-1a0f8e6ea74f
  28. ^ Odpowiedź Usman (29 października 2015). „Wysyłanie nowego sposobu myślenia z SQLite w systemie Windows 10” . Microsoft. Zarchiwizowane od oryginału w dniu 2016-01-31 . Źródło 6 marca 2016 .