Modelowanie danych to proces tworzenia wizualnej reprezentacji całej aplikacji lub jej składników w celu przekazywania połączeń między punktami danych a strukturą. Obejmuje skrupulatne przeglądanie wymagań aplikacji i bazy danych oraz jako połączenie między nimi w zakresie podstawowych operacji na danych - odczytu, zapisu i aktualizacji.
Stabilny model danych jest tworzony poprzez ocenę wzorca użytkowania aplikacji i dopasowanie do niej schematu bazy danych. Dlatego projekt schematu kształtuje model danych. Jeśli chodzi o relacyjną bazę danych, nie można zapełniać tabel bez utworzenia schematu tabeli.
Kluczowe terminy, które należy znać
Zanim przejdziesz dalej, oto kilka podstawowych definicji, które musisz znać:
- Kolekcja - Kolekcja to zbiór dokumentów w MongoDB. Jest odpowiednikiem tabeli w RDBMS.
- Dokument - Dokument to struktura składająca się z par plików i wartości. Jest to odpowiednik wiersza w RDBMS.
- Schemat bazy danych - Projekt schematu to logiczna i wizualna architektura bazy danych zaprojektowana dla systemu zarządzania bazą danych (DBMS).
Czym różni się modelowanie danych w MongoDB?
Dzięki elastyczności NoSQL nie musisz tworzyć schematu przed wstawieniem danych. Dzieje się tak, ponieważ MongoDB obsługuje dynamiczną formę schematu bazy danych. Eliminuje to potrzebę wcześniejszego projektowania schematu. Zamiast tego możesz teraz przechowywać swoje dane i wprowadzać zmiany zgodnie ze swoją kolekcją.
Możesz przechowywać różne typy danych w danym polu kolekcji, a nawet dodawać nowe pola, aktualizować wartości pól i usuwać istniejące pola. Prawdziwą korzyść z tej elastyczności odkryjesz, mapując dokumenty na obiekt lub jednostkę.
Ogólnie zbiór i dokument mają podobną strukturę. Możesz także „wymusić” reguły sprawdzania poprawności dokumentów swojej kolekcji, używając sprawdzania poprawności schematu.
Związane z: Mechanizmy baz danych do rozważenia przy następnym projekcie
Tworząc model danych, sprawdź, jak aplikacja będzie współdziałać z bazą danych. Na przykład, jeśli zamierza przetwarzać dokumenty, które zostały niedawno wstawione, dobrym pomysłem jest użycie kolekcji z limitowanymi limitami - kolekcji o stałym rozmiarze, które obsługują operacje o dużej przepustowości.
Podobnie, jeśli aplikacja ma przez większość czasu pracować z operacjami odczytu, możesz ustawić indeksy, aby obsługiwać typowe zapytania i zwiększać wydajność.
Tradycyjnie jednym z aspektów tworzenia modelu danych jest sposób przechowywania powiązanych danych. Relacyjne bazy danych używają tabel do przechowywania danych, gdzie do ustawiania relacji danych używane są klucze podstawowe i obce.
Podobnie, sprzężenia są używane do uzyskiwania dostępu i wykonywania operacji na wielu tabelach. Jako ktoś, kto przeszedł na MongoDB z relacyjnego DBMS, takiego jak SQL Server, nie znajdziesz połączeń w MongoDB. Dzieje się tak, ponieważ MongoDB przechowuje dane kolekcji, odwołując się do danych lub osadzając je w kolekcji.
Dlatego jeśli model danych zajmuje dziesięć tabel w relacyjnej bazie danych, możliwe jest, że MongoDB umożliwia skonsolidowanie go w jednej kolekcji.
Typy modeli danych
Teraz, gdy wiesz, jak działa modelowanie danych w MongoDB, przejdźmy do typów modeli danych obsługiwanych przez MongoDB. Zwykle zależy to od struktury dokumentu i relacji danych w aplikacji.
Wbudowane modele danych
Możesz osadzić dane w pojedynczym dokumencie lub strukturze w MongoDB. Nazywany również zdenormalizowanymi modelami danych, wykorzystuje pełny potencjał bogatych dokumentów MongoDB. Na przykład rozważmy następujący przykład: mamy kolekcję, studenci, zawierający dokument Matt. W tym dokumencie umieściliśmy dwa dokumenty, szczegóły kontaktu i stopień.
{
"_id": "4aad66a4c13bb24f12gh199e",
nazwa: „Matt”,
szczegóły kontaktu: {
telefon: „555-555-1234”
adres e-mail: „[email protected]”
},
stopień: {
Temat: „CS101”
wynik: „B”
}}
Osadzanie przechowuje odpowiednie szczegóły w tym samym dokumencie lub rekordzie bazy danych. W ten sposób można zminimalizować zapytania i aktualizacje wymagane do wykonywania typowych operacji bazy danych.
Kiedy należy używać osadzonych modeli danych? Są przydatne do poprawy wydajności operacji odczytu. Ponadto są efektywne w przetwarzaniu danych z jednego rekordu. W tym modelu można użyć jednej operacji zapisu, aby zaktualizować powiązane dane.
Jest jednak coś, o czym należy pamiętać: osadzanie zwiększa rozmiar dokumentu po jego utworzeniu. W niektórych przypadkach może to wpłynąć na wydajność zapisu, a także istnieje możliwość fragmentacji danych ze względu na zwiększający się rozmiar dokumentu.
Wreszcie, możesz wchodzić w interakcje z osadzonymi dokumentami, używając notacji kropkowej i łatwo je przeglądać. Oto składnia:
field.nestedField: wartość
W powyższym przykładzie możesz uzyskać dostęp do zagnieżdżonych dokumentów, pisząc następujące zapytanie:
db.students.find ({dane kontaktowe: {telefon: ”555-555-1234”, adres e-mail: „[email protected]”}}). pretty ()
Znormalizowane modele danych (odniesienia)
Znormalizowane modele danych służą do tworzenia modeli relacji jeden do wielu i wiele do wielu. Podczas pracy z osadzonymi modelami dokumentów mogą wystąpić sytuacje, w których trzeba będzie powtórzyć dane. Tutaj przydają się referencje - rozwiązują one problem nadmiarowości. Oto, jak możemy użyć referencji w powyższym przykładzie.
Podzieliliśmy nasz pojedynczy dokument na trzy dokumenty i od tego czasu szczegóły kontaktu i stopień mieć identyfikator od Matt dokument, możesz do nich zadzwonić w razie potrzeby.
student
{
_ID:
nazwa użytkownika: „Matt”
}
szczegóły kontaktu
{
_ID:
identyfikator użytkownika:
email: „[email protected]”
telefon: „555-555-1234”
}
stopień
ID:
identyfikator użytkownika: ,
Temat: „CS101”,
wynik: „B”
}
Jak widać, znormalizowane modele danych dzielą dane na wiele kolekcji przy użyciu odwołań między nowszymi kolekcjami. Możesz zaktualizować pojedynczy dokument, co spowoduje zaktualizowanie innych kolekcji. Jest to skuteczny sposób aktualizowania danych i jest używany głównie, gdy dane podlegają częstym zmianom.
Oto chwile, kiedy znormalizowany model danych jest mądrzejszym wyborem:
- Musisz modelować duże zbiory danych, które są zgodne z określoną hierarchią.
- Musisz przedstawić wiele relacji „wiele do wielu”.
- Osadzanie spowodowałoby zduplikowanie danych bez wpływu na wydajność odczytu w wystarczającym stopniu.
Teraz możesz łatwo modelować dane w MongoDB
Wiesz już, jak modelowanie danych w MongoDB różni się od relacyjnych DBM, zwłaszcza jeśli chodzi o schematy. Dowiedziałeś się również o typach modeli danych w MongoDB - zdenormalizowanych i znormalizowanych - i dowiedziałeś się, kiedy ich używać.
A to dopiero początek; można dowiedzieć się o wiele więcej o tym, jak MongoDB może organizować dane.
Opcja edycji jest jedną z najczęściej wybieranych funkcji Twittera. Dlaczego więc firma na to nie pozwala?
Czytaj dalej
- Programowanie
- Baza danych
Zapisz się do naszego newslettera
Dołącz do naszego biuletynu, aby otrzymywać wskazówki techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Jeszcze jeden krok…!
Potwierdź swój adres e-mail w wiadomości e-mail, którą właśnie wysłaliśmy.