Schema mniej jest nieco mylące, to lepiej pomyśleć o tym, jak:
- SQL = schematu narzuconego przez RDBMS na Write
- NoSQL = Częściowa Schema egzekwowane przez DBMS Zapis na plus schematu pełni egzekwowane przez aplikację na Read (Zlecanie schematu)
więc gdy domniemany Schema mniej NoSQL danych sklep będzie w teorii pozwala na przechowywanie wszelkich danych chcesz (typica lly par wartości klucza, w dokumencie) bez uprzedniej znajomości kluczy lub typów danych, będzie bezcelowe, chyba że masz jakiś mechanizm do pobierania i używania danych. Zasadniczo schemat jest częściowo przenoszony z RDBMS do kodu aplikacji. Mówię częściowo, ponieważ dodałeś indeksy do zbiorów dokumentów i lub podzieliłeś dane pod kątem wydajności, więc DBB NoSQL będzie miał lokalny schemat częściowy i być może wymuszony przez ograniczenia Unique.
Do dodawania dodatkowych atrybutów do dokumentu/obiektu w sklepie. W zależności od stopnia wypełnienia dokumentu (nieużywanego miejsca) w fizycznym bloku danych dodanie kilku par wartości klucza do dokumentów może spowodować fizyczne przeniesienie dokumentu do większego, ciągłego bloku pamięci, i ponownie zbudowane powiązane indeksy. Jeśli zamierzasz używać nowych kluczy w często wykorzystywanym zapytaniu, będziesz także chciał dodać nowy odpowiedni indeks, który oczywiście będzie wymagał fizycznego przechowywania, trochę czasu na początkową budowę i prawdopodobnie poprowadzi cię do sysadmin do przydziel więcej pamięci do DBMS, aby umożliwić buforowanie nowego indeksu.
Dobra uwaga na temat przydziału miejsca. Ale w szczególności dla punktu 2 i 3, jak zarządzać danymi w.r.t do migracji danych? Czy produkt NoSQl jest na tyle inteligentny, aby wykrywać zmiany, które są przyrostowe i nie łamią się? –
Zależy od produktu, ale ogólnie, jeśli chcesz dodać dodatkowe atrybuty/klucze do dokumentu, wszystko, co musisz zrobić, to zmienić kod aplikacji na przechowywanie/używanie nowych par wartości klucza. DBMS nie dba o to, co jest przechowywane w dokumencie, jeśli nie ma być indeksowany, i zakładając, że jest wystarczająco dużo miejsca przydzielonego dla każdego dokumentu, tak że DBMS nie musi restrukturyzować jego zaplecza. – arober11
Więc musimy wziąć pod uwagę możliwość zwiększenia rozmiaru dokumentu przed rozdaniem? –