Tablica DBMS - Array DBMS

Systemy zarządzania bazami danych tablicowych ( tablicowe DBMS ) zapewniają usługi bazodanowe specjalnie dla tablic (zwanych również danymi rastrowymi ), czyli: jednorodne zbiory elementów danych (często nazywane pikselami , wokselami itp.), Osadzone na regularnej siatce jednego, dwóch, lub więcej wymiarów. Tablice są często używane do reprezentowania danych z czujników, symulacji, obrazu lub danych statystycznych. Takie tablice są zwykle Big Data , z pojedynczymi obiektami często zmieniającymi się w rozmiary terabajtów, a wkrótce petabajtów; na przykład dzisiejsze archiwa obserwacji Ziemi i kosmosu zwykle powiększają się o terabajty dziennie. Arrayowe bazy danych mają na celu oferowanie elastycznego, skalowalnego przechowywania i wyszukiwania w tej kategorii informacji.

Euklidesowe sąsiedztwo elementów w tablicach
Euklidesowe sąsiedztwo elementów w tablicach

Przegląd

W tym samym stylu, co standardowe systemy baz danych na zestawach, macierze DBMS oferują skalowalne, elastyczne przechowywanie i elastyczne pobieranie / manipulowanie macierzami o (koncepcyjnie) nieograniczonych rozmiarach. Ponieważ w praktyce tablice nigdy nie pojawiają się samodzielnie, taki model tablicowy jest zwykle osadzony w jakimś ogólnym modelu danych, takim jak model relacyjny. Niektóre systemy implementują tablice jako analogię do tabel, inne wprowadzają tablice jako dodatkowy typ atrybutu.

Zarządzanie macierzami wymaga nowatorskich technik, szczególnie ze względu na fakt, że tradycyjne krotki i obiekty bazy danych zwykle dobrze pasują do pojedynczej strony bazy danych - jednostki dostępu do dysku na serwerze, zwykle 4  KB  - podczas gdy obiekty tablic mogą z łatwością obejmować kilka nośników. Podstawowym zadaniem menedżera pamięci masowej jest zapewnienie szybkiego dostępu do dużych macierzy i pod-macierzy. W tym celu tablice są dzielone podczas wstawiania na tak zwane kafelki lub fragmenty o dogodnym rozmiarze, które następnie działają jako jednostki dostępu podczas oceny zapytania.

Tablice DBMS oferują języki zapytań dające deklaratywny dostęp do takich tablic, umożliwiając ich tworzenie, manipulowanie, wyszukiwanie i usuwanie. Podobnie jak np. SQL , wyrażenia o dowolnej złożoności mogą być budowane na podstawie zestawu podstawowych operacji tablicowych. Ze względu na rozszerzenia wprowadzone w modelu danych i zapytań, tablice DBMS są czasami zaliczane do kategorii NoSQL , w znaczeniu „nie tylko SQL”. Optymalizacja zapytań i zrównoleglenie są ważne dla osiągnięcia skalowalności ; w rzeczywistości wiele operatorów tablic dobrze nadaje się do oceny równoległej, przetwarzając każdy kafelek w oddzielnych węzłach lub rdzeniach.

Do ważnych dziedzin zastosowań macierzy DBMS należą nauki o Ziemi, kosmosie, życiu i naukach społecznych, a także powiązane zastosowania komercyjne (takie jak eksploracja węglowodorów w przemyśle i OLAP w biznesie). Różnorodność występującą można zaobserwować np. W danych geo, gdzie szereg czasowy czujnika środowiskowego 1-D, zdjęcia satelitarne 2-D, szeregi czasowe zdjęć 3-D x / y / t oraz dane geofizyczne x / y / z, a także Można znaleźć dane o klimacie i oceanach 4-D x / y / z / t.

Historia i status

Relacyjny model danych , który jest dominujący dzisiaj nie obsługuje bezpośrednio paradygmat tablicy w tym samym stopniu, jak i zestawów krotki. ISO SQL podaje typ atrybutu wartościowany w tablicy, ale jest to tylko jednowymiarowy, prawie bez wsparcia operacyjnego i nie nadaje się do użytku w domenach aplikacji macierzy DBMS. Inną opcją jest uciekanie się do obiektów BLOB („duże obiekty binarne”), które są odpowiednikiem plików: ciągi bajtów o (koncepcyjnie) nieograniczonej długości, ale znowu bez funkcji języka zapytań, takiej jak podzbiór wielowymiarowy.

Pierwsza znacząca praca polegająca na wyjściu poza BLOB została podjęta za pomocą PICDMS. System ten jest prekursorem języka zapytań tablicowych 2-D, aczkolwiek nadal jest proceduralny i nie obsługuje odpowiedniej pamięci masowej.

Pierwszy deklaratywny język zapytań odpowiedni dla wielu wymiarów i z semantyką opartą na algebrze został opublikowany przez Baumanna wraz ze skalowalną architekturą. Inny język baz danych tablic, ograniczony do 2-D, został przedstawiony przez Marathe i Salem. Przełomowe prace teoretyczne zostały wykonane przez Libkina i in .; w swoim modelu, zwanym NCRA, rozszerzają zagnieżdżony rachunek relacyjny o tablice wielowymiarowe; wśród wyników są ważny wkład w analizę złożoności zapytań tablicowych. Algebra map, odpowiednia dla przestrzennych danych rastrowych 2-D i 3-D, została opublikowana przez Mennis et al.

Jeśli chodzi o implementacje Array DBMS, system rasdaman ma najdłuższą historię implementacji spośród tablic nD z pełną obsługą zapytań. Oracle GeoRaster oferuje fragmentaryczne przechowywanie dwuwymiarowych map rastrowych, aczkolwiek bez integracji SQL. TerraLib to oprogramowanie GIS o otwartym kodzie źródłowym, które rozszerza technologię obiektowo-relacyjną DBMS o obsługę czasoprzestrzennych typów danych; chociaż główny nacisk kładziony jest na dane wektorowe, istnieje również wsparcie dla rastrów. Począwszy od wersji 2.0, PostGIS zawiera obsługę rastrów dla rastrów 2-D; specjalna funkcja oferuje deklaratywną funkcjonalność zapytań rastrowych. SciQL to język zapytań tablicowych dodawany do bazy danych MonetDB DBMS. SciDB to nowsza inicjatywa mająca na celu ustanowienie obsługi baz danych macierzowych. Podobnie jak SciQL, tablice są postrzegane jako odpowiednik tabel, a nie jako nowy typ atrybutu, jak w rasdaman i PostGIS.

Dla szczególnego przypadku nielicznych danych , OLAP kostki danych są dobrze znane; przechowują wartości komórek wraz z ich lokalizacją - jest to odpowiednia technika kompresji w obliczu kilku lokalizacji zawierających w ogóle ważne informacje - i operują na nich za pomocą SQL. Ponieważ ta technika nie skaluje się pod względem gęstości, standardowe bazy danych nie są obecnie używane do gromadzenia gęstych danych, takich jak obrazy satelitarne, gdzie większość komórek przenosi znaczące informacje; W zarządzaniu danymi naukowymi i podobnych sytuacjach przeważają raczej zastrzeżone implementacje ad hoc. Dlatego właśnie w tym przypadku systemy DBMS typu Array mogą wnieść szczególny wkład.

Ogólnie rzecz biorąc, macierze DBMS to nowa technologia. Chociaż istnieją systemy wdrożone operacyjnie, takie jak Oracle GeoRaster , PostGIS 2.0 i rasdaman , nadal istnieje wiele otwartych pytań badawczych, w tym projektowanie i formalizacja języka zapytań, optymalizacja zapytań, zrównoleglenie i przetwarzanie rozproszone oraz ogólnie problemy ze skalowalnością. Poza tym, społeczności naukowe nadal wydają się niechętnie wykorzystywać technologię baz danych macierzowych i preferują wyspecjalizowaną, zastrzeżoną technologię.

Koncepcje

Podczas dodawania tablic do baz danych należy ponownie rozważyć wszystkie aspekty projektu bazy danych - od modelowania koncepcyjnego (np. Odpowiednich operatorów), przez zarządzanie pamięcią masową (np. Zarządzanie tablicami obejmującymi wiele nośników), po przetwarzanie zapytań (np. Efektywne strategie przetwarzania).

Modelowanie koncepcyjne

Formalnie tablica A jest dana przez (całkowitą lub częściową) funkcję A : X V, gdzie X , dziedzina jest d- wymiarowym przedziałem liczb całkowitych dla jakiegoś d > 0, a V , zwany zakresem , jest trochę (niepusty) zestaw wartości; w notacji zestawu można to przepisać jako {( p , v ) | p w X , v w V }. Każdy ( p , v ) w A oznacza element tablicy lub komórkę i zgodnie z powszechną notacją piszemy A [ p ] = v . Przykłady dla X to {0..767} × {0..1023} (dla obrazów o rozmiarze XGA ), przykłady dla V to {0..255} dla 8-bitowych obrazów w skali szarości i {0..255} × {0 ..255} × {0..255} dla standardowych obrazów RGB .

Zgodnie z ustaloną praktyką dotyczącą baz danych, język zapytań tablicowych powinien być deklaratywny i bezpieczny w ocenie. Ponieważ iteracja po tablicy jest sercem przetwarzania tablicy, deklaratywność w dużym stopniu koncentruje się na tym aspekcie. Wymaganiem jest zatem, aby koncepcyjnie wszystkie komórki były sprawdzane jednocześnie - innymi słowy, zapytanie nie wymusza żadnej jawnej sekwencji iteracji w komórkach tablicy podczas oceny. Bezpieczeństwo oceny jest osiągane, gdy każde zapytanie kończy się po określonej liczbie (skończonych w czasie) kroków; ponownie, sposobem na osiągnięcie tego jest unikanie ogólnych pętli i rekurencji. Jednocześnie unikanie jawnych sekwencji pętli otwiera różnorodne możliwości optymalizacji.

Zapytanie tablicowe

Jako przykład operatorów zapytań tablicowych może służyć algebra rasdamana i język zapytań, które ustanawiają język wyrażeń na podstawie minimalnego zestawu prymitywów tablicowych. Zaczynamy od ogólnych operatorów podstawowych, a następnie przedstawiamy typowe przypadki specjalne i skróty.

Marray operatora tworzy tablicę nad pewnym określonym zakresie domeny i inicjalizacji komórek:

marray index-range-specification
values cell-value-expression

gdzie specyfikacja zakresu-indeksu definiuje domenę wynikową i wiąże z nią zmienną iteracji, bez określania sekwencji iteracji. Wyrażenie wartości komórki jest oceniane w każdej lokalizacji domeny.

Przykład: „Wycięcie tablicy A określone przez punkty narożne (10,20) i (40,50)”.

marray p in [10:20,40:50]
values A[p]

Ten szczególny przypadek, czysty podzbiór, można skrócić do

A[10:20,40:50]

To podzestawienie zachowuje wymiar tablicy; aby zmniejszyć wymiar przez wyodrębnienie plasterków, w wymiarze cięcia wskazywana jest pojedyncza wartość punktu przekroju.

Przykład: „Wycinek przez serię czasową x / y / t na pozycji t = 100, pobieram wszystkie dostępne dane w x i y”.

A[*:*,*:*,100]

Operator symbolu wieloznacznego * wskazuje, że ma zostać użyta bieżąca granica tablicy; Zwróć uwagę, że tablice, w których granice wymiarów pozostają otwarte w czasie definiowania, mogą zmienić rozmiar w tych wymiarach w okresie istnienia tablicy.

Powyższe przykłady po prostu skopiowały oryginalne wartości; zamiast tego można manipulować tymi wartościami.

Przykład: „Tablica A z logiem () zastosowanym do każdej wartości komórki”.

marray p in domain(A)
values log( A[p] )

Można to skrócić w następujący sposób:

log( A )

Zgodnie z zasadą zwaną operacjami indukowanymi , język zapytań oferuje wszystkie operacje oferowane przez typ komórki również na poziomie tablicy. W związku z tym na wartościach liczbowych dostępne są w prosty sposób wszystkie zwykłe jednoargumentowe i binarne operacje arytmetyczne, wykładnicze i trygonometryczne, a także standardowy zestaw operatorów boolowskich.

W skondensować agregaty operator wartości komórek w jeden wynik skalarne, podobny do agregatów SQL. Jego aplikacja ma ogólną postać:

condense condense-op
over index-range-specification
using cell-value-expression

Tak jak w przypadku marray wcześniej, specyfikacja zakresu indeksu określa domenę do iteracji i wiąże z nią zmienną iteracji - ponownie, bez określania sekwencji iteracji. Podobnie, wyrażenie wartości komórki jest oceniane w każdej lokalizacji domeny. Skroplonej prefabrykatów punkt określa działanie koncentrację używaną do łączenia wyrażenia wartości komórki w jednej wartości.

Przykład: „Suma wszystkich wartości w A.”

condense +
over p in sdom(A)
using A[p]

Skrótem dla tej operacji jest:

add_cells( A )

W ten sam sposób i analogicznie do agregacji SQL, podano szereg dalszych skrótów, w tym kwantyfikatory zliczania, średniej, minimum, maksimum i wartości logiczne.

W następnym przykładzie przedstawiono kombinację operatorów marray i kondensacji poprzez wyprowadzenie histogramu.

Przykład: „Histogram na obrazie A w 8-bitowej skali szarości”.

marray bucket in [0:255]
values count_cells( A = bucket )

Indukowane porównanie, A = wiadro ustanawia logiczną tablicę w takim samym stopniu jak A . Operator agregacji zlicza wystąpienia true dla każdej wartości przedziału , która następnie jest umieszczana w odpowiedniej komórce tablicy histogramu 1-D.

Takie języki pozwalają na formułowanie operacji statystycznych i obrazowych, które można wyrazić analitycznie bez użycia pętli. Udowodniono, że siła ekspresji takich języków tablicowych jest w zasadzie równoważna relacyjnym językom zapytań z rankingiem.

Pamięć tablicowa

Pamięć masowa musi pomieścić tablice o różnych wymiarach i zazwyczaj o dużych rozmiarach. Podstawowym zadaniem jest utrzymanie bliskości przestrzennej na dysku, aby zmniejszyć liczbę dostępów do dysku podczas podzbioru. Należy zauważyć, że emulacja tablic wielowymiarowych jako zagnieżdżonych list (lub tablic 1-D) sama w sobie nie zapewni tego, a zatem ogólnie nie doprowadzi do skalowalnych architektur.

Zwykle tablice są podzielone na pod-tablice, które tworzą jednostkę dostępu. Regularne partycjonowania gdzie wszystkie partycje tego samego rozmiaru (z wyjątkiem być może na granicach) jest określany jako wyrwy . Uogólnieniem, które usuwa ograniczenie do partycji o jednakowych rozmiarach, wspierając dowolny rodzaj partycjonowania, jest kafelkowanie . Partycjonowanie macierzy może znacznie poprawić dostęp do podzbiorów macierzy: dostosowując kafelki do wzorca dostępu, idealnie byłoby, gdyby serwer mógł pobrać wszystkie wymagane dane przy dostępie tylko do jednego dysku.

Kompresja płytek może czasami znacznie zmniejszyć ilość potrzebnego przechowywania. Kompresja jest również przydatna do przesyłania wyników, ponieważ dla dużych ilości danych rozpatrywanych danych przepustowość sieci często stanowi czynnik ograniczający.

Przetwarzanie zapytań

Struktura magazynu oparta na kafelkach sugeruje strategię przetwarzania kafelek po kafelku (w rasdamanie nazywane strumieniowaniem kafelków ). Dużą klasę praktycznie istotnych zapytań można ocenić, ładując kafelek po kafelku, umożliwiając w ten sposób serwerom przetwarzanie tablic o rzędy wielkości poza ich pamięcią główną.

Przekształcenie zapytania w bardziej wydajną, ale równoważną wersję podczas optymalizacji zapytania tablicowego

Ze względu na ogromne rozmiary tablic w zastosowaniach naukowych / technicznych w połączeniu z często złożonymi zapytaniami optymalizacja odgrywa kluczową rolę w zwiększaniu wydajności zapytań tablicowych. Można zastosować równoległość sprzętową i programową. Przykładem optymalizacji heurystycznej jest reguła „maksymalna wartość tablicy wynikająca z dodania dwóch obrazów wejściowych w ujęciu komórkowym jest równoważna dodaniu maksymalnych wartości każdej tablicy wejściowej”. Zastąpienie wariantu po lewej stronie wyrażeniem po prawej stronie zmniejsza koszty z trzech (kosztownych) przejść przez tablicę do dwóch przejść przez tablicę i jednej (taniej) operacji skalarnej (patrz rysunek, w którym jest używany standard zapytań SQL / MDA).

Domeny aplikacji

W wielu - jeśli nie w większości - przypadków, gdy jakieś zjawisko jest próbkowane lub symulowane, wynikiem jest zrasteryzowany zestaw danych, który można wygodnie przechowywać, pobierać i przekazywać jako tablicę. Zazwyczaj dane tablicowe są ozdobione metadanymi opisującymi je dalej; na przykład obrazy z odniesieniami geograficznymi będą nosić swoje położenie geograficzne i system odniesienia za pomocą współrzędnych, w którym są wyrażone.

Poniżej przedstawiono reprezentatywne domeny, w których obsługiwane są wielowymiarowe dane tablicowe na dużą skalę:

  • Nauki o Ziemi: geodezja / mapowanie, teledetekcja, geologia, oceanografia, hydrologia, nauki o atmosferze, nauki o kriosferze
  • Nauki o kosmosie: nauki o planetach, astrofizyka (obserwacje za pomocą teleskopów optycznych i radiowych, symulacje kosmologiczne)
  • Nauki przyrodnicze: dane genowe, mikroskopia konfokalna, skany CAT
  • Nauki społeczne: kostki danych statystycznych
  • Biznes: OLAP, hurtownie danych

To są tylko przykłady; generalnie tablice często reprezentują dane z czujników, symulacji, obrazu i statystyki. Coraz więcej wymiarów przestrzennych i czasowych łączy się z abstrakcyjnymi osiami, takimi jak sprzedaż i produkty; Jednym z przykładów, gdzie takie abstrakcyjne osie są wyraźnie przewidziane jest [Open_Geospatial_Consortium | Open Geospatial Consortium] (OGC) modelu pokrycia .

Normalizacja

Wiele społeczności ustanowiło formaty wymiany danych, takie jak HDF , NetCDF i TIFF . Faktycznym standardem w społecznościach nauk o Ziemi jest OPeNDAP , architektura i protokół transportu danych. Chociaż nie jest to specyfikacja bazy danych, zawiera ona ważne komponenty charakteryzujące system bazy danych, takie jak model koncepcyjny i implementacje klient / serwer.

Deklaratywny język zapytań rastrowych, usługa przetwarzania pokrycia sieci Web (WCPS), został ustandaryzowany przez Open Geospatial Consortium (OGC).

W czerwcu 2014 r. Organizacja ISO / IEC JTC1 SC32 WG3, która utrzymuje standard bazy danych SQL, zdecydowała się dodać obsługę wielowymiarowych tablic do SQL jako nowy typ kolumny, w oparciu o początkową obsługę tablic dostępną od wersji SQL 2003 . Nowy standard, przyjęty jesienią 2018 r., Nosi nazwę ISO 9075 SQL Part 15: MDA (Multi-Dimensional Arrays) .

Lista DBMS tablic

Zobacz też

Bibliografia