TS TworcaStron.pl.

Projekt „Notatki” – Przetwarzamy dane na backendzie (mongoose)

Kolejny odcinek z serii projekt praktyczny “Notatnik”.  Jest to projekt praktyczny oparty na Node + React + MongoDB

W dzisiejszym odcinku pora obsłużyć przetwarzanie danych na backendzie. Dane przechowywane są w MongoDB, więc do połączenia z bazą danych używam mongoose.js

Opis projektu: Dosyć kompleksowo buduję małą aplikację. Tworzę zarówno backend, który łączy się z bazą danych MongoDB. Następnie przez API komunikuje się z frontem zbudowanym na React.js.

Całość pokazuje jak może wyglądać taki projekt, układ plików, konfiguracja, czy jak w ogóle zabrać się do tworzenia full stackowej aplikacji. 

Starałem się pokazywać dobre nawyki i sposoby na organizacje kodu 🙂

Poprzednie odcinki:

odc. 1

odc. 2

odc. 3

SQL vs noSQL | MySQL vs MongoDB – różnice

Niedawno w jednym z odcinków na YT na temat Node.js wspomniałem o tym, że popularnym wyborem dla noda jest mongoDB.

Nie wspomniałem, że mongoDB jest bazą nierelacyjną w przeciwieństwie do poczciwego MySQL, który jest bazą relacyjną.

Prawdopodobnie nie każdy zdaje sobie sprawę co to właściwie oznacza. Czy to tylko 2 wersje tego samego? Absolutnie nie! Różnice są dosyć spore i dzisiaj właśnie o nich.

Poniżej film oraz jeszcze niżej – tekst dla osób preferujących czytanie 

— SQL (RDBMS)

Baza typu SQL tak naprawdę nazywa się bazą typu RDBMS (RElational Database Management System), czyli system zarządzania relacyjną bazą danych. Nazwa SQL jest tak naprawdę uproszczeniem, ponieważ bazy tego typu korzystają z języka SQL (Structured Query Language), czyli strukturyzowanego języka zapytań.

Najpopularniejszym przedstawicielem tej bazy jest poczciwy MySQL (powstały w 1995), od którego większość z nas zaczynała naukę baz.

Struktura

Struktura jest dosyć prosta, główny obiekt to nasza baza danych. Następnie w bazie mamy tabele. Tak jak w zwykłej tabeli, mamy kolumny a w nich wiersze/rekordy. Kolumny opisują jakie dane się w nich znajdują oraz ile ich jest. Każdy wiersz wygląda więc tak samo,i chodzi o jego strukturę.

Cechy

— NoSQL

Baza nierelacyjna nazywana jest noSQL, ponieważ nie używa wspomnianego wcześniej języka SQL. Zamiast tego używa JavaScriptu. Powoduje to kilka różnic w samym działaniu takiej bazy, o czym za chwilę.

Struktura

Tak samo, jak przy poprzedniej bazie, podstawowym elementem jest baza danych. Baza danych zawiera tabele, chciałem napisać kolekcje. Chociaż pełnią tę samą rolę. Główna różnica to nazewnictwo, wynikające w kolejnego punktu. Kolekcje zawierają dokumenty

W przeciwieństwie do baz relacyjnych, kolekcje nie mają ściśle określonej struktury, dlatego wiersze, tzn. dokumenty mogą wyglądać różnie, mimo że są w tej samej tabeli kolekcji. Dzieje się tak dlatego, że wiersze dokumenty są dokumentem w formacie JSON, a nie wierszem w tabeli.

* powyższe przekreślone pomyłki wykonane są specjalnie, aby lepiej zobrazować czym są kolekcje i dokumenty w porównaniu do tabel i wierszy

Cechy 

Co jest lepsze? 

Jak zawsze odpowiedź na to pytanie jest jedna: to zależy. 

Baza nierelacyjna noSQL działa szybciej oraz jest skalowalna horyzontalnie co pozwala na pracę z big data. 

Baza relacyjna (SQL) zapewnia większą integralność danych (dzięki Schema) oraz relacje.

W zależności od projektu możesz potrzebować innych cech.