Wielowartościowe — MultiValue

MultiValue to rodzaj NoSQL i wielowymiarowej bazy danych , zwykle uważanej za synonim PICK, bazy danych pierwotnie opracowanej jako system operacyjny Pick .

Bazy danych MultiValue obejmują produkty komercyjne firm Rocket Software , Zumasys, Revelation, Ladybridge, InterSystems , Northgate Information Solutions , ONgroup i innych. Te bazy danych różnią się od relacyjnych baz danych tym, że mają funkcje, które wspierają i zachęcają do używania atrybutów, które mogą przyjmować listę wartości, a nie wszystkie atrybuty, które mają jedną wartość. Często są one klasyfikowane jako MUMPS w ramach kategorii postrelacyjnych baz danych , chociaż model danych w rzeczywistości poprzedza model relacyjny . W przeciwieństwie do narzędzi SQL-DBMS, dostęp do większości baz danych MultiValue można uzyskać zarówno z SQL, jak i bez niego .

Historia

Don Nelson zaprojektował model danych MultiValue na początku do połowy lat sześćdziesiątych. Dick Pick , programista w TRW , pracował nad pierwszą implementacją tego modelu dla armii amerykańskiej w 1965 roku. Pick uważał, że oprogramowanie jest własnością publiczną, ponieważ zostało napisane dla wojska. Był to dopiero pierwszy spór dotyczący baz danych MultiValue, który został rozwiązany przez sądy.

Ken Simms napisał DataBASIC, czasami znany jako S-BASIC, w połowie lat 70-tych. Został oparty na Dartmouth BASIC , ale miał ulepszone funkcje zarządzania danymi. Simms grał dużo w Star Trek podczas rozwijania języka, aby język funkcjonował zgodnie z jego satysfakcją.

Trzy z implementacji MultiValue - PICK wersja R77, Microdata Reality 3.x i Prime Information 1.0 - były bardzo podobne. Pomimo prób standaryzacji, zwłaszcza przez International Spectrum i Spectrum Manufacturers Association, które zaprojektowały logo dla wszystkich, nie ma standardów we wdrożeniach MultiValue. Następnie smaki te się rozeszły, choć z pewnym skrzyżowaniem. Te strumienie rozwoju baz danych MultiValue można sklasyfikować jako jeden wywodzący się z PICK R83, jeden z Microdata Reality i jeden z Prime Information. Ze względu na różnice niektóre implementacje mają przepisy dotyczące obsługi kilku smaków języków. Próbę udokumentowania podobieństw i różnic można znaleźć w Post-Relational Database Reference (PRDB).

Grupy marketingowe i inne firmy z branży przez lata klasyfikowały bazy danych MultiValue jako prerelacyjne, postrelacyjne, relacyjne i osadzone, przy czym krytycy często klasyfikowali je jako dziedzictwo. Można go teraz sklasyfikować jako NoSQL . Z modelem danych, który jest dobrze dopasowany do JSON i XML i który umożliwia dostęp z użyciem SQL lub bez niego.

Jedną z uzasadnionych hipotez dla tego modelu danych trwającego 50 lat, przy nowych implementacjach bazodanowych tego modelu nawet w XXI wieku, jest to, że zapewnia on niedrogie rozwiązania bazodanowe. Historycznie, biorąc pod uwagę branżowe testy porównawcze związane z transakcjami SQL, hipoteza ta była trudna do przetestowania, chociaż istnieją liczne anegdoty o nieudanych próbach przeniesienia funkcjonalności aplikacji MultiValue do struktury relacyjnej bazy danych .

Pomimo ponad 40-letniej historii wdrożeń, poczynając od TRW , wiele z branży MultiValue pozostało na bieżąco, dzięki czemu różne implementacje MultiValue wykorzystują teraz zorientowane obiektowo wersje Data/BASIC, obsługują frameworki AJAX i ponieważ nikt nie potrzebuje aby używać SQL (ale niektóre mogą) z tymi bazami danych, pasują one do parasola NoSQL . W rzeczywistości programiści MultiValue byli pierwszymi, którzy nabyli nazwy domen nosql, prawdopodobnie przed innymi produktami bazodanowymi klasyfikującymi ich ofertę również jako NoSQL. MultiValue to doświadczony model danych z kilkoma dostawcami konkurującymi w przestrzeni MultiValue. Przez lata był stale ulepszany.

Przykład modelu danych

W systemie baz danych MultiValue:

  • baza danych lub schemat nazywa się „kontem”
  • tabela lub kolekcja nazywana jest „plikiem”
  • kolumna lub pole nazywa się polem lub „atrybutem”, który składa się z „atrybutów wielowartościowych” i „atrybutów podwartościowych”, które przechowują wiele wartości w tym samym atrybucie.
  • wiersz lub dokument nazywany jest „rekordem” lub „elementem”

Dane są przechowywane przy użyciu dwóch oddzielnych plików: „pliku” do przechowywania nieprzetworzonych danych i „słownika” do przechowywania formatu wyświetlania nieprzetworzonych danych.

Załóżmy na przykład, że istnieje plik (tabela) o nazwie „PERSON”. W tym pliku znajduje się atrybut o nazwie „eMailAddress”. Pole eMailAddress może przechowywać zmienną liczbę wartości adresów e-mail w jednym rekordzie. Lista [joe@example.com, jdb@example.net, joe_bacde@example.org] może być przechowywana i dostępna za pomocą pojedynczego zapytania podczas uzyskiwania dostępu do powiązanego rekordu.

Osiągnięcie tej samej relacji (jeden-do-wielu) w tradycyjnym systemie relacyjnej bazy danych wymagałoby stworzenia dodatkowej tabeli do przechowywania zmiennej liczby adresów e-mail powiązanych z pojedynczym rekordem „PERSON”. Jednak nowoczesne systemy relacyjnych baz danych obsługują również ten wielowartościowy model danych. Na przykład w PostgreSQL kolumna może być tablicą dowolnego typu bazowego.

Wielowartościowe daneBASIC

Podobnie jak język programowania Java , typowy kompilator Data/BASIC kompiluje do kodu P lub kodu bajtowego i działa na maszynie P, przy czym jBASE jest godnym uwagi wyjątkiem. Ma tyle różnych implementacji (kompilatorów), ile jest baz danych MultiValue.

Podobnie jak język programowania PHP, język Data/BASIC wykonuje wszystkie typy dla programisty.

Wielowartościowy język zapytań

Znany jako ENGLISH, ACCESS, AQL, UniQuery, Retrieve, CMQL i pod wieloma innymi nazwami na przestrzeni lat, odpowiadających różnym implementacjom MultiValue, język zapytań MultiValue różni się od SQL pod kilkoma względami. Każde zapytanie jest kierowane do pojedynczego słownika w schemacie, który można rozumieć jako wirtualny plik lub portal do bazy danych, przez który można przeglądać dane.

LISTĘ OSÓB LAST_NAME FIRST_NAME EMAIL_ADDRESSS Z LAST_NAME, TAKIE JAK „Van...”

Powyższe oświadczenie zawierałoby listę wszystkich adresów e-mail dla każdej osoby, której nazwisko zaczyna się od „Van”. Dla każdej osoby zostanie wyprowadzony pojedynczy wpis, z wieloma wierszami pokazującymi wiele adresów e-mail (bez powtarzania innych danych o osobie).

Zobacz też

Bibliografia

Linki zewnętrzne