Menedżer bazy danych Raima
Deweloper (y) | Raima |
---|---|
Wersja stabilna | 15.2 |
System operacyjny | Wieloplatformowy |
Typ | DBMS |
Licencja | Licencja komercyjna |
Strona internetowa |
Raima Database Manager (lub RDM ) to wbudowany system zarządzania bazami danych zgodny ze standardem ACID , przeznaczony do użytku w aplikacjach systemów wbudowanych . RDM został zaprojektowany do wykorzystania komputerów wielordzeniowych, sieci (lokalnej lub rozległej) oraz zarządzania pamięcią masową na dysku lub w pamięci . RDM zapewnia obsługę wielu interfejsów programowania aplikacji (API): niskiego poziomu C API, C++ i SQL (natywny, ODBC , JDBC , ADO.NET i REST ). RDM jest wysoce przenośny i jest dostępny dla systemów Windows , Linux , Unix i kilku systemów operacyjnych czasu rzeczywistego lub wbudowanych . Dostępna jest również licencja na kod źródłowy.
RDM obsługuje zarówno funkcje inne niż SQL (dostęp do bazy danych na poziomie rekordu i kursora), jak i możliwości projektowania i manipulacji bazami danych SQL. Funkcje inne niż SQL są ważne w środowiskach systemów wbudowanych o najbardziej ograniczonych zasobach, gdzie priorytetem jest wysoka wydajność w bardzo małej obudowie. SQL odgrywa ważną rolę w zapewnianiu powszechnie znanej standardowej metody dostępu do bazy danych na wystarczająco małej powierzchni dla większości środowisk systemów wbudowanych.
Historia
Raima Inc. pierwotnie wydała RDM w 1984 roku i nosiła nazwę db_VISTA. Był to jeden z pierwszych modelu sieci mikrokomputerowej , zaprojektowany wyłącznie do użytku z aplikacjami w języku C. Produkt towarzyszący o nazwie db_QUERY został wprowadzony w 1986 roku i był pierwszym narzędziem przypominającym SQL do pisania zapytań i raportów dla bazy danych modelu sieci.
Pochodny system DBMS db_VISTA zaprojektowany w celu zapewnienia wydajnego, przetwarzającego transakcje systemu SQL DBMS typu klient-serwer, zwanego Raima Database Server (RDS), został wydany w 1993 roku. Był to pierwszy system DBMS, który zapewnił API ODBC jako natywny interfejs SQL. Był to także pierwszy system SQL, który w swoich funkcjach DDL uwzględnił model sieci. Wkrótce potem nazwę RDS zmieniono na Velocis, a w 2001 roku na RDM Server . Wersja 8.4 serwera RDM została wydana w 2012 roku.
Kontynuowany jest nieprzerwany rozwój oprogramowania RDM (znanego również jako RDM Embedded) z najnowszymi dodatkami, takimi jak wykorzystanie kopii baz danych w celu obsługi systemów o wysokiej dostępności (HA), replikacja baz danych, współbieżność wielu wersji z transakcjami tylko do odczytu, wiele plików transakcyjnych dostęp do serwera, szyfrowanie i SQL zaprojektowane specjalnie do użytku w aplikacjach systemów wbudowanych. Wersja 12.0 RDM została wydana w 2013 roku.
Również w 2013 roku firma RDM wprowadziła pierwszy na platformie SQL DBMS dostępny do użytku z graficznym językiem programowania LabView firmy National Instruments ; został uznany za produkt roku sieciowy LabView Embedded Tools firmy National Instruments.
Wersja 14.0 RDM została wydana w Q3/16. RDM wersja 14.0 zawiera zupełnie nowy mechanizm przechowywania danych, zoptymalizowany specjalnie do pracy ze zbiorami danych rezydującymi w pamięci. Nowa baza danych w pamięci (IMDB) pozwala na znaczny wzrost wydajności i zmniejszenie wymagań dotyczących przetwarzania w porównaniu ze starszymi implementacjami w pamięci lub na dysku.
Wersja 14.1 RDM została wydana w Q1/18. Nowa wersja skupia się na łatwości użytkowania, przenośności i szybkości. Dzięki nowemu formatowi plików Raima możesz opracować raz i wdrożyć w dowolnym miejscu. Wydajność wzrasta o ponad 50-100% w zależności od przypadku użycia w porównaniu z poprzednimi wersjami RDM. Raima rozszerzyła i ulepszyła obsługę SQL, migawki i funkcjonalność geoprzestrzenną.
Wersja 14.2 RDM została wydana w 2020 roku. W nowej wersji stale kładzie się nacisk na łatwość obsługi, przenośność i szybkość. Format przechowywania skoncentrowany na wielu użytkownikach: zaktualizowany format pliku bazy danych zwiększa przepustowość bazy danych poprzez skupienie się na zapobieganiu blokowaniu rywalizacji. Do funkcjonalności serwera bazy danych dodano rozszerzoną i ulepszoną funkcjonalność geoprzestrzenną oraz nowo obsługiwany interfejs zgodny z REST.
Wersja 15.0 RDM została wydana w drugim kwartale 2021 roku. W tej wersji nacisk położono na szybkość, łatwość obsługi i nową funkcjonalność. Do RDM dodano obsługę niestandardowo generowanych szeregów czasowych. Również obsługa FFT dla transformacji danych. Wprowadzono administracyjny interfejs GUI.
Cechy produktu
Zarówno linie kodu źródłowego, jak i funkcje Raima Database Manager i RDM Server są skonsolidowane w jeden kod źródłowy. RDM obejmuje następujące główne funkcje: zaktualizowaną obsługę pamięci, obsługę szeregów czasowych i FFT, migawki, obsługę R-Tree, kompresję, szyfrowanie, SQL, SQL PL i niezależność od platformy — opracuj raz, wdróż gdziekolwiek. RMD obejmuje opcje przenośności, takie jak bezpośrednie kopiowanie i wklejanie, które umożliwiają tworzenie i wdrażanie na różnych platformach docelowych, niezależnie od architektury i kolejności bajtów. Wydanie zawiera usprawniony interfejs oparty na kursorach, rozszerzoną obsługę SQL i procedury składowane obsługujące SQL PL; obsługuje także ODBC (C, C++), ADO.NET (C#), RESTful i JDBC (Java). Obsługiwane środowiska programistyczne obejmują Microsoft Visual Studio, Apple XCode, Eclipse i Wind River Workbench. Przeprojektowana i zoptymalizowana architektura formatu pliku bazy danych zapewnia zgodność z ACID i zabezpieczenia danych, dzięki oddzielnym formatom przechowywania w pamięci, na dysku lub hybrydowo. Formaty plików ukrywają specyfikę platformy sprzętowej (np. kolejność bajtów). Pakiety do pobrania zawierają przykłady testów porównawczych szybkości i wydajności RDM.
Transakcyjny serwer plików (TFS)
Komponent oprogramowania w systemie RDM, który utrzymuje bezpieczne aktualizacje transakcyjne dla wielu użytkowników w zestawie plików i odpowiada na żądania stron. Narzędzie TFServer łączy się z TFS, umożliwiając mu działanie jako oddzielne narzędzie, umożliwiając użytkownikom uruchamianie RDM w rozproszonym środowisku komputerowym. TFS można także połączyć bezpośrednio z aplikacją, aby uniknąć narzutu RPC związanego z wywoływaniem oddzielnego serwera.
Tryby działania
- Jeden proces, wiele wątków
- Wieloprocesowy, oddzielny serwer plików transakcyjnych
- Wieloprocesowy, współdzielony wewnątrzprocesowy serwer plików transakcyjnych
Dynamiczny DDL
- Wsparcie dla bieżących zmian w bazie danych i samych tabelach
Szyfrowanie
- AES 128, 192, 256 bitów
Dodatkowe typy danych SQL
- Data
- Czas
- Data i godzina
- Dwójkowy
- Unikod
- Fragment
Dostawcy danych i sterowniki: interoperacyjność
- Dostawca danych ADO.Net 4.0
- Sterownik JDBC 4.2 typu 4
- Sterownik ODBC 3.51
- RESTful API
Różne wsparcie „drzewa”.
- Obsługa indeksowania drzewa AVL
- Obsługa indeksowania B-Tree
- Obsługa indeksowania R-Tree
- Obsługa indeksowania tabeli mieszającej
Migawki
- Izolacja migawki umożliwia współbieżne odczyty bazy danych w przypadku wystąpienia transakcji zapisu. RDM tworzy zamrożony obraz bieżącego stanu systemu, z którego można odczytać informacje bez przerywania zapisu. W dowolnym momencie użytkownik może utworzyć migawkę określonych tabel, wywołując naszą funkcję API rdm_dbStartSnapshot(). Po zakończeniu system RDM utworzy statyczny widok określonych tabel, w którym żadne zmiany w tych tabelach nie zostaną odzwierciedlone w migawce. Użytkownik może wówczas swobodnie dokonywać zapisów do tej tabeli poza migawką, a wszelkie odczyty w widoku migawki nie będą czekać na zakończenie tych zapisów ani uniemożliwiać ich zakończenia. Gdy migawka nie będzie już potrzebna, można wywołać prostą transakcję końcową, aby łatwo i szybko się jej pozbyć. Ta funkcja zapewnia użytkownikowi końcowemu największą możliwą liczbę zapisów i odczytów jednocześnie.
Obsługa tabel okrągłych
- Typ rekordu, czyli tabelę, można zdefiniować jako „okrągły”. W przypadku tabel kołowych, gdy tabela się zapełni, RDM nadal będzie umożliwiać tworzenie nowych instancji rekordów. Nowe instancje rekordów zastąpią istniejące, zaczynając od najstarszego. RDM nie pozwala na jawne usuwanie instancji rekordów w tabeli kołowej.
- Definicja tabeli okrągłej zawiera ograniczenie rozmiaru. Zapewnia to użyteczny sposób przydzielania stałej ilości miejsca do przechowywania najnowszych wystąpień określonego typu rekordu. Może to być na przykład przydatne do przechowywania szybko generowanych danych o zdarzeniach, gdzie istotne są tylko najnowsze dane. Tabele okrągłe eliminują ryzyko, że przychodzące dane nie zostaną zapisane z powodu braku miejsca, jednocześnie unikając konieczności usuwania przez aplikację nieaktualnych danych.
Ograniczenia bazy danych
- Maksymalna liczba otwartych baz danych jednocześnie: bez limitu
- Maksymalna liczba rekordów w bazie danych: bez limitu
- Maksymalny rozmiar pliku bazy danych: Ograniczony tylko przez system plików
- Maksymalna liczba tabel na bazę danych: bez limitu
- Maksymalna liczba rekordów na tabelę: bez limitu
- Maksymalny rozmiar rekordu: 32 kb (z wyłączeniem obiektów BLOB i VARCHAR)
- Maksymalna liczba pól w tabeli: bez limitu
- Maksymalna liczba kluczy na bazę danych: bez limitu
- Wymagania dotyczące pamięci RAM: konfigurowalne przez użytkownika, minimum 50 kb
- Rozmiar kodu: od ~270 KB, w zależności od systemu operacyjnego i funkcji bazy danych
Obsługiwane typy danych
- Szereg czasowy
- obiekty BLOB
- Postać
- Widechar
- Varchar
- DBADDR (ROWID)
- Liczba zmiennoprzecinkowa – 32-bitowa i 64-bitowa
- Liczba całkowita – 8 bitów, 16 bitów, 32 bity i 64 bity
- Struktura C (tylko rdzeń)
- Dane/Czas/Sygnatura czasowa
- BCD (SQL Decimal) – dziesiętny kod binarny to standardowa reprezentacja bazy danych dla aplikacji finansowych.
- GUID
Szczegółowe cechy produktu
Język projektowania baz danych (DDL)
Funkcje DDL inne niż SQL (rdzeniowe):
- Deklaracje typu rekordu (tabeli) przypominające strukturę C.
- modeli sieciowych służące do definiowania relacji między rekordami typu 1-wiele.
- Obsługa dostępu bezpośredniego, B-tree i hashowanego dostępu do rekordów.
- Deklaracje bazy danych lub plików w pamięci . Bazę danych można zaprojektować tak, aby znajdowała się na dysku lub w pamięci, albo była hybrydą, w której niektóre części znajdują się w pamięci, a inne są przechowywane na dysku.
- Typy rekordów cyklicznych (tabele). Tabele okrągłe przechowują określoną przez użytkownika maksymalną liczbę rekordów (wierszy). Po osiągnięciu tego maksimum nowo wstawione rekordy są zapisywane w miejscu zajmowanym przez najstarszy. Tabele okrągłe są ważne przy przechowywaniu danych o stanie urządzeń o ograniczonych zasobach.
- Obsługiwane typy danych: 8, 16, 32 i 64-bitowe liczby całkowite ze znakiem lub bez znaku, zmiennoprzecinkowe, podwójne, dziesiętne (BCD), znaki o stałej lub zmiennej długości lub znaki szerokie, duże obiekty binarne lub znakowe (bloby), data, godzina, znacznik czasu , guid/uuid i db_addr (adres bazy danych — czyli rowid).
- Obsługa pól danych strukturalnych i tablicowych.
- Opcjonalna kontrola użytkownika nad organizacją plików bazy danych i rozmiarami stron.
Funkcje SQL DDL:
- Deklarowana obsługa integralności referencyjnej jest wdrażana automatycznie przy użyciu zestawów modeli sieci RDM .
- Obsługa dostępu bezpośredniego, B-drzewa i mieszanego dostępu do wierszy.
- Deklaracje bazy danych lub tabeli w pamięci .
- Okrągłe stoły.
- Deklaracje wirtualnych tabel, które zapewniają dostęp SQL do zewnętrznych źródeł danych (np. danych z czujników w czasie rzeczywistym).
- Obsługiwane typy danych: boolean, tinyint, smallint, integer, bigint, decimal, real, float/double, binary/varbinary, long varbinary, char/varchar, wchar/wvarchar, long varchar, long wvarchar, data, godzina, znacznik czasu, guid /uuid, rowid (klucze obce i podstawowe).
- Deklaracje domeny.
Serwer plików transakcyjnych
Serwer Plików Transakcyjnych RDM (TFS) specjalizuje się w serwowaniu i zarządzaniu plikami baz danych na danym nośniku. TFS to zestaw funkcji wywoływanych przez środowisko wykonawcze RDM w celu zarządzania udostępnianiem plików bazy danych pomiędzy jedną lub większą liczbą instancji biblioteki środowiska wykonawczego. W normalnej konfiguracji wielu użytkowników funkcje TFS są opakowane w proces serwera o nazwie TFServer. Do nawiązania połączenia można użyć standardowego protokołu TCP/IP, niezależnie od tego, czy biblioteka wykonawcza i serwer TFServer znajdują się na tym samym komputerze, czy na różnych komputerach. Jednak w przypadku korzystania z tego samego komputera domyślnie dostępny jest szybszy protokół pamięci współdzielonej.
Rysunek pokazuje, że jedno środowisko wykonawcze klienta RDM może mieć połączenia z wieloma serwerami TF, a jeden serwer TF może być używany przez wiele środowisk wykonawczych klientów. Dla aplikacji korzystających ze środowiska wykonawczego RDM i serwerów TF, lokalizacje pozostałych procesów są niewidoczne, więc wszystkie procesy mogą znajdować się na jednym komputerze lub wszystkie mogą znajdować się na różnych komputerach. Zapewnia to możliwości prawdziwego przetwarzania rozproszonego.
Serwer TFServer należy uważać za „kontroler bazy danych” w podobny sposób, w jaki kontroler dysku zarządza urządzeniem pamięci masowej. TFS jest inicjowany z katalogiem głównym, w którym przechowywane są wszystkie pliki zarządzane przez TFS. Jeśli jeden komputer ma wiele kontrolerów dysków, zaleca się przypisanie jednego serwera TFServer do każdego kontrolera. Ułatwia to pracę równoległą na jednym komputerze, zwłaszcza gdy występuje również wiele rdzeni procesora.
Kompletny system aplikacji może mieć wiele serwerów TF działających na jednym komputerze i wiele komputerów połączonych razem w sieć. Każdy serwer TF będzie mógł działać równolegle z innymi, co umożliwi odpowiednie skalowanie wydajności.
Funkcje TFS są używane przez środowisko wykonawcze RDM, więc programista nie ma wglądu w wykonane do nich wywołania. Funkcje te są udostępniane bibliotece wykonawczej w trzech formach. Ze względów opisowych nazywamy je TFSr, TFSt i TFS:
- TFSt: Rzeczywiste, w pełni funkcjonalne funkcje TFS, wywoływane bezpośrednio przez bibliotekę wykonawczą. Obsługuje wiele wątków w jednej aplikacji.
- TFSr: biblioteka RPC (zdalne wywoływanie procedur). Po wywołaniu przez bibliotekę wykonawczą funkcje te łączą się z jednym lub większą liczbą procesów TFServer i wywołują w nich funkcje TFS. Konfiguracja klient/serwer.
- TFS: „Samodzielne” funkcje TFS wywoływane bezpośrednio przez bibliotekę wykonawczą, ale przeznaczone tylko do użytku w jednym procesie (jeśli używanych jest wiele wątków, każdy musi uzyskiwać dostęp tylko do innej bazy danych). Do stosowania w operacjach wsadowych o dużej przepustowości, gdy bazy danych są poza tym w trybie offline. Dozwolone są niebezpieczne (ale szybkie) aktualizacje.
Unie baz danych
Funkcja łączenia baz danych RDM zapewnia ujednolicony widok wielu baz danych o identycznej strukturze. Ponieważ RDM umożliwia wysoce rozproszone przechowywanie i przetwarzanie danych, funkcja ta zapewnia mechanizm ujednolicania rozproszonych danych, nadając im wygląd pojedynczej, dużej bazy danych.
Jako prostą ilustrację rozważmy szeroko rozpowszechnioną bazę danych organizacji, która ma swoją siedzibę w Seattle i oddziały w Bostonie, Londynie i Bombaju. Każde biuro posiada i przechowuje dokumentację pracowniczą lokalnie, ale centrala sporządza również raporty dotyczące całej organizacji. Baza danych w każdej lokalizacji ma strukturę identyczną jak pozostałe i chociaż jest w pełni zawartą bazą danych w każdej lokalizacji, jest również uważana za partycję większej globalnej bazy danych. W tym przypadku podział opiera się na położeniu geograficznym. Mechanizm odpytywania rozproszonej bazy danych jest prosty dla programisty. Kiedy baza danych jest otwarta, wszystkie partycje są odwoływane razem, z symbolami OR („|”) pomiędzy nazwami poszczególnych partycji.
Do skalowania wydajności wykorzystywane są także partycjonowanie i ujednolicone zapytania. Rozważmy bazę danych, w której każda operacja rozpoczyna się od sprawdzenia klucza podstawowego rekordu. Jeśli „baza danych” składa się z czterech partycji, każda przechowywana na tym samym wielordzeniowym komputerze, ale na różnych dyskach kontrolowanych przez różne kontrolery dysków, wówczas jedynym wymaganiem jest schemat, który dzieli klucz podstawowy pomiędzy cztery partycje. Jeśli ten schemat jest modulo klucza podstawowego, aplikacja szybko określa, w której partycji zapisać rekord lub z której go odczytać. Ponieważ istnieje wiele rdzeni procesora do obsługi wielu procesów (zarówno aplikacji, jak i TFS), a cztery partycje są dostępne równolegle (pozwalają na to cztery kontrolery), wydajność przetwarzania jest czterokrotnie większa niż w przypadku pojedynczego rdzenia, konfiguracja z jednym dyskiem i jedną partycją.
Szyfrowanie bazy danych
RDM umożliwia szyfrowanie całej zawartości bazy danych przed przesłaniem jej przez sieć i zapisaniem w plikach bazy danych. Szyfrowanie RDM obsługuje Rijndael/AES ze 128-, 192- lub 256-bitowymi kluczami opartymi na kluczu szyfrującym określonym przez aplikację.
Dublowanie baz danych i obsługa HA
Dublowanie bazy danych w RDM odtwarza dokładną, bajt po bajcie kopię głównej bazy danych na lustrzaną (lub podrzędną) bazę danych. Dublowanie bazy danych jest ważną funkcją bazy danych w przypadku aplikacji wymagających wysokiej dostępności (HA), gdzie w przypadku awarii serwera TFServer z jakiegoś powodu monitor HA aplikacji może automatycznie przełączyć się na lustrzany serwer TFServer.
RDM zapewnia synchroniczne kopiowanie lustrzane, w którym każda transakcja zatwierdzona na głównym serwerze TFServer jest również bezpiecznie przekazana na lustrzany serwer TFServer. RDM udostępnia także zestaw funkcji API obsługujących HA, które można wywołać z monitora HA aplikacji w celu monitorowania stanu operacyjnego serwerów TF.
Dublowanie może być również użyte do obsługi wielu kopii bazy danych, w których aktualizacje są dokonywane tylko na urządzeniu głównym, ale czytniki są kierowane do jednego z lustrzanych urządzeń podrzędnych w celu rozmieszczenia wielu możliwych czytników bazy danych na wielu komputerach. W tej sytuacji master nie musi czekać, aż każdy slave potwierdzi pomyślne zatwierdzenie każdej transakcji, a proces tworzenia kopii lustrzanych może przebiegać asynchronicznie.
Dublowanie bazy danych RDM wymaga, aby główna i wszystkie lustrzane bazy danych były utrzymywane na tym samym komputerze/platformie systemu operacyjnego.
Replikacja bazy danych
Ma się to ukazać w drugim kwartale 2018 roku. Replikacja jest podobna do kopii lustrzanej, ale tak naprawdę nie jest przeznaczona do obsługi HA, ale do przesyłania całości lub, co bardziej prawdopodobne, części jednej bazy danych (master) do innej bazy danych (slave). Replikacja została zaprojektowana do pracy tam, gdzie bazy danych nie są koniecznie utrzymywane na tej samej platformie. Podrzędnymi bazami danych mogą być inne bazy danych zarządzane przez RDM lub mogą to być systemy DBMS innej firmy.
Replikacja RDM obejmuje obsługę selektywnej replikacji danych z tabeli kołowej z wielu urządzeń głównych na jednego urządzenia podrzędnego — jest to ważne w przypadku komputerów i urządzeń osadzonych na krawędzi siatki danych, gdzie następuje monitorowanie stanu i stanu. Dane o statusie przechowywane w okrągłej tabeli każdego urządzenia głównego są replikowane do centralnego systemu sterowania, który utrzymuje stałą historię wszystkich statusów urządzeń, którą można następnie udostępnić na potrzeby różnych szeregów czasowych i innych analiz.
RDM udostępnia także bibliotekę API powiadamiania o zmianach w bazie danych, która umożliwia urządzeniu podrzędnemu dostęp do głównych dzienników replikacji bez konieczności przechowywania danych i zarządzania nimi w bazie danych. Umożliwia to na przykład urządzeniu głównemu przechowywanie informacji sterujących urządzeniem w bazie danych, która jest replikowana na urządzeniu za pośrednictwem interfejsu API powiadomień w celu skutecznego kontrolowania działania urządzenia.
SQL/PL
Język programowania RDM SQL (SQL PL) opiera się na specyfikacji ansi/ISO SQL Persistent Stored Modules (PSM) (ISO/IEC 90756-4:2011 +2012). Zapewnia język wysokiego poziomu, w którym można pisać, kompilować i wywoływać procedury składowane i funkcje w systemie RDM SQL.
- SQL PL to kompletny pod względem obliczeniowym język programowania do stosowania w procedurach przechowywanych RDM SQL (procedurach lub funkcjach). Język ma strukturę blokową z możliwością deklarowania zmiennych zgodnych ze zwykłymi zasadami określania zakresu za pomocą instrukcji przypisania, dzięki czemu można im przypisać wartość. Udostępnione konstrukcje przepływu sterowania obejmują instrukcje if-elseif-else i case wraz z kilkoma konstrukcjami kontroli pętli (w tym instrukcja while, powtarzaj-until i for pętla).
- Bezproblemowy dostęp do SQL zapewnia możliwość wykonywania większości instrukcji SQL, które mogą zawierać odniesienia do lokalnie zadeklarowanych zmiennych. Dostępna jest również możliwość deklarowania kursorów, co pozwala na pobieranie wierszy z instrukcji Select do lokalnie zadeklarowanych zmiennych, co pozwala na sprawdzanie i manipulowanie wartościami kolumn wynikowych w ramach procedury składowanej.
- Zapewniona jest również obsługa wyjątków, umożliwiająca kodowanie procedur obsługi dla określonych lub klas błędów lub statusów zwracanych w wyniku wykonania instrukcji SQL. Ponadto możliwe jest również zdefiniowanie obsługi warunków użytkownika i wyjątków oraz sygnalizowanie przez program własnych, specjalnych wyjątków.
RDM SQL został zaprojektowany specjalnie do użytku w aplikacjach systemów wbudowanych. Niektóre z ważniejszych funkcji RDM SQL obejmują:
- Niewielki rozmiar — nie są dostępne żadne widoki SQL ani zabezpieczenia, ponieważ są one zwykle niepotrzebne w aplikacjach systemów wbudowanych, a ich brak pomaga utrzymać niewielkie rozmiary SQL.
- Standardowa obsługa transakcji SQL i integralności referencyjnej.
- Katalog systemu SQL i procedury składowane mogą być przechowywane w pliku lub jako statycznie zadeklarowane struktury danych w modułach C.
- Optymalizacja zapytań w oparciu o koszty dzięki bogatemu zestawowi wbudowanych funkcji skalarnych i agregujących. Optymalizator może wziąć pod uwagę różne metody dostępu do tabeli: bezpośredni dostęp do wierszy (poprzez klucze podstawowe wierszy), optymalny dostęp do łączenia kluczy podstawowych/obcych poprzez zestawy modeli sieci, drzewo B i indeksy mieszające.
- Możliwość rozszerzenia możliwości SQL poprzez funkcje skalarne i agregujące zdefiniowane przez użytkownika w języku C.
- Możliwość rozszerzenia możliwości SQL poprzez oparte na C, zdefiniowane przez użytkownika interfejsy wirtualnych tabel, które zapewniają dostęp SQL do zewnętrznych źródeł danych, takich jak dane z czujników w czasie rzeczywistym.
- Import/eksport tabeli bazy danych do/z plików rozdzielanych przecinkami lub XML.
- Możliwość posiadania dostępu tylko do odczytu z SQL do bazy danych innej niż SQL (tj. na poziomie podstawowym). Oznacza to na przykład, że zdalna aplikacja RDM SQL może uzyskać dostęp do bazy danych RDM innej niż SQL, działającej na urządzeniu o bardzo ograniczonych zasobach.
Interfejsy programowania aplikacji
RDM zapewnia interfejsy programowania aplikacji, które umożliwiają tworzenie aplikacji w różnych językach programowania:
- Interfejs API kursora oparty na języku C – ułatwia przeglądanie rekordów bazy danych w celu wyszukiwania, wstawiania, aktualizowania i usuwania rekordów z bazy danych. Dzięki kursorom Record, Key i Set doskonale pasuje do koncepcji baz danych RDM. Przypomina nowoczesne koncepcje programowania iteracji po kolekcji.
- Wszechstronny interfejs API SQL – dostępny wewnętrznie poprzez uproszczony interfejs API podobny do ODBC, który wykorzystuje projekt Raima. Obsługuje także procedury składowane i większość innych standardowych SQL.
- Interfejs API języka programowania SQL (PL) — umożliwia wykonywanie logiki programowania za pomocą czystego języka SQL. Programiści mogą wykorzystać swoją wiedzę na temat języka SQL i nadal dodawać warunki programowania i logikę.
- API ODBC oparte na standardach – zgodnie ze standardami ODBC opracowano interfejs ODBC API, dzięki czemu programiści mają znajomy sposób korzystania z silnika bazy danych RDM.
- JDBC – standardowy interfejs JAVA do silnika bazy danych RDM, z dwoma trybami działania: pierwszy poprzez TCP/IP i drugi poprzez bezpośrednie łącze poprzez JNI.
- ADO.NET – standardowy interfejs C#. Obsługiwana metoda połączenia to protokół TCP/IP.
- RESTful – API REST-ful to nowoczesne API przeznaczone dla twórców aplikacji, którzy chcą mieć możliwość przeglądania i modyfikowania zawartości bazy danych za pomocą metod HTTP GET, POST, PUT i DELETE z formatem powrotu JSON. Dodatkowo udostępniany jest administracyjny zestaw interfejsów API, umożliwiający szybki przegląd stanu całego podsystemu RDM. Elementy takie jak użycie pamięci, użycie procesora, rozmiar bazy danych i konfiguracja bazy danych są dostępne za pośrednictwem interfejsu HTTP. To API jest idealne dla programisty zainteresowanego tworzeniem stron internetowych lub chcącego stworzyć szybki interfejs do bazy danych RDM, która będzie dostępna na dowolnej platformie za pośrednictwem przeglądarki internetowej.
- Obiektowy interfejs API kursora C++ – interfejs API C++ został zaprojektowany tak, aby był łatwy w użyciu, zapewniając jednocześnie programistom pełny dostęp i kontrolę zarówno do sieci RDM, jak i funkcjonalności relacyjnej.
- Starsze nawigacyjne API C – niskopoziomowy C API RDM jest nadal obsługiwany, z niewielkimi zmianami wymaganymi przez programistę.
Obsługiwane platformy
RDM został przeniesiony na wiele różnych komputerów i systemów operacyjnych. Pakiety są dostępne na następujące platformy:
- Microsoft Windows 32, 64-bitowy
- Linux 32, 64-bitowy
- Android
- QNX Neutrino ARM/x86/PPC 32-bitowy
- Wind River VxWorks
- Uczciwość Green Hills
- macOS 64-bitowy
- HPUX PA-Risc/Itanium 32, 64-bitowy
- Solaris SPARC/x86 32, 64 bity
- AIX PPC 32, 64-bitowy.
- iOS
- FreeRTOS
Pakiety RDM
RDM składa się z dwóch pakietów: RDM Core i RDM Enterprise.
- RDM Core zawiera tylko podstawowy interfejs API kursora; jest to podstawowy i najlepiej zoptymalizowany interfejs API przeznaczony do użytku z językiem programowania C.
- RDM Enterprise zawiera zarówno podstawowy interfejs API kursora, jak i interfejs SQL, a także wszystkie pozostałe interfejsy API. Pakiet ten pozwala na wykorzystanie interfejsu C# ADO.NET, interfejsu JAVA JDBC, RESTful API oraz interfejsu ODBC. Zapewnia także pełną obsługę narzędzi administracyjnych i łączności innych firm, a także obsługuje pełny interfejs API z poprzednich wersji linii produktów RDM.
Klienci i aplikacje
Aplikacje oparte na RDM są obecnie używane we wszystkich głównych gałęziach przemysłu, w tym w przemyśle lotniczym i obronnym, motoryzacyjnym, automatyzacji biznesu, finansowym, rządowym, automatyce przemysłowej, medycznym i telekomunikacyjnym. Próbka użytkowników RDM obejmuje:
- Mitsubishi Electric — sterownik PLC iQ Platform C
- Schneider Electric — „ezXOS” w produkcie OASyS DNA
- Hydro-Québec — system CEDA do zarządzania instalacją i konfiguracją alternatorów w elektrowni
- General Dynamics — „TIEF” – agent bazy danych umożliwiający wymianę informacji taktycznych
- Boeing — „AWACS” — elektroniczny system radarowy pokładowego systemu ostrzegania i kontroli
- Raytheon — taktyczne zarządzanie profilem lotu niskiego poziomu w Pave Hawk
- Lockheed Martin — symulatory lotu
- Benu Networks — platforma świadczenia usług szerokopasmowych
- Johnson & Johnson — systemy pacjenta VITROS
- Beckman Coulter — system kliniczny UniCel DxC 800 Synchron
- Siemens — sprzęt do badania płynów medycznych RapidPoint 400
- IBM — system kontroli kodu źródłowego ClearCase
- Nawigacja Magellan —MAPSEND GPS używany w produktach opartych na komputerach PC i produktach wbudowanych
- NSE — niezawodne przechowywanie danych dotyczących handlu akcjami
- NCDEX — usługi baz danych działające w czasie rzeczywistym dla aplikacji handlowych