To jest stara wersja strony!


NoSQL

Ruch NoSQL promuje klasę nierelacyjnych baz jako alternatywę dla tradycyjnych baz relacyjnych, nazywając je czasami bazami następnej generacji. Bazy te unikają poleceń JOIN, nie posiadają sztywnych schematów oraz cechują się dobrą skalowalnością.

Oto kilka rozwiązań zaproponowanych przez ruch NoSQL:

  • Bazy zorientowane dokumentowo:
    • MongoDB (SourceForge, SugarCRM, EA, The New York Times)
    • Apache CouchDB
  • Bazy typu klucz/wartość:
    • BigTable (Google App Engine)
    • Dynamo (Amazon Web Services)
    • Apache Cassandra (Facebook)
    • Project Voldemort (LinkedIn)

MongoDB

MongoDB to bardzo wydajna i skalowalna baza danych, zorientowana na przechowywanie dokumentów z pominięciem schematów. Projekt został wydany na licencji AGPL w wersji 3 i możemy go używać w aplikacjach biznesowych.

MongoDB jest bazą nowej generacji, która jest zorientowana na przechowywanie dokumentów JSON, o dowolnej strukturze. Dokumenty te są przechowywane wewnętrznie jako BSON – Binary JSON. Całość została napisana w języku C++. Bazę stworzono z myślą o pracy w dużych obciążeniach oraz posiada wbudowane mechanizmy skalowania i replikacji W przypadku instalacji 32-bitowej rozmiar pojedynczej bazy danych jest ograniczony do około 2GB.

MongoDB składa się z trzech komponentów:

  • mongod - serwer bazodanowy
  • mongos
  • mongo - powłoka shell'owa umożliwiająca administrację bazą danych

Dostęp do bazy możliwy jest przy wykorzystaniu sterowników, które oficjalnie w tej chwili są dostępne dla języków:

  • C
  • C++
  • Java
  • JavaScript
  • Perl
  • PHP
  • Python
  • Ruby

oraz poprzez sterowniki nieoficjalne, które wspierają:

  • REST
  • C# i .NET
  • Clojure
  • ColdFusion
  • Delphi
  • Erlang
  • Factor
  • Fantom
  • F#
  • Go
  • Groovy
  • Haskell
  • Lua
  • Node.js
  • PowerShell
  • Scala
  • Scheme
  • Smalltalk

Analogie do baz SQL

MongoDB BazaSQL
Dokument Wiersz / Rekord
Kolekcja Tablica
_id Klucz główny
Zagnieżdżenie Relacja 1:N
Tablica referencji do obiektów Relacja M:N
Indeks Indeks

Baza dokumentowa

W bazach zorientowanych na dokumenty, dane nie są przechowywane w tabelach o z góry założonej strukturze i takich samych polach dla każdego rekordu. Każdy dokument może mieć różne pola, a dane w każdym polu mogą być zbiorem innych danych. Puste pola nie są w dokumencie w ogóle przechowywane, dzięki czemu ich nagłówki nie marnują miejsca w bazie.

Przykład:

FirstName="Bob", Address="5 Oak St.", Hobby="sailing"
FirstName="Jonathan", Address="15 Wanamassa Point Road", Children=("Michael,10", "Jennifer,8", "Samantha,5", "Elena,2").

BSON pozwala również na przechowywane plików binarnych.

Oto prosty przykład reprezentacji tych samych danych w formacie XML:

<?xml version="1.0" encoding="utf-8"?>
        <dane>
                <user>
                        <imie>jan</imie>
                        <nazwisko>Kowalski</nazwisko>
                </user>
                <user>
                        <imie>Piotr</imie>
                        <nazwisko>Nowak</nazwisko>
                </user>
        </dane>

oraz JSON:

{
        "dane" : {
                "user" : [
                        {
                        "imie" : "Jan",
                        "nazwisko" : "Kowalski"
                        },
                        { 
                        "imie" : "Piotr",
                        "nazwisko" : "Nowak"
                        }
                ]
        }
}

Instalacja na systemie Windows

  1. Wchodzimy na stronę MongoDB
  2. Ściągamy binarną wersję MongoDB odpowiednio:
    • 32-bitową dla systemu 32 bitowego
    • 64-bitową dla systemu 64 bitowego
  3. Wypakowujemy ściągnięty plik do wybranej przez nas lokalizacji.
  4. Tworzymy foldery w których MongoDB będzie przechowywać dane. MongoDB nie stworzy tych folderów automatycznie, więc musimy to zrobić ręcznie. W katalogu głównym dysku, na który wypakowaliśmy ściągnięty wcześniej plik MongoDB, tworzymy następujące foldery:
    • data
    • data\db
pl/dydaktyka/ztb/2010/projekty/nosql_mongodb/start.1278031890.txt.gz · ostatnio zmienione: 2019/06/27 15:56 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0