![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 11 Dołączył: 5.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Do tej pory używałem relacyjnych baz danych, niedawno wielce się zdziwiłem gdy spotkałem się z nosqlową bazą danych MongoDB. Ktoś tego używał i ma porównanie jakie to ma wady i zalety w porównaniu do relacyjnych baz danych? Chyba wszystkie duże serwisy są oparte o bazy relacyjne więc to MongoDB jest wykorzystywane tylko w małych serwisach czy jak to wygląda?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
hmm. czytając cześć postów, mam wrażenie ze chyba większość tak naprawdę nie wie co to jest i czym to sie je.
mongodb jest baza danych zorientowana na dokument. jest także bazą danych pisaną dla potrzeb internetu (stron www) prosty przykład : mam usera, i mam do niego `n` nr telefonu (do domu, do pracy tel kom itd.) w mysql jedynym wyjściem jest trzymanie tego w dwu tabelach `user` oraz `telefon` w mongo ? w mongo masz to wszystko w jednej tabel( a właściwie kolekcji)i, najzwyczajniej w świecie definiujesz pole telefon jako tablice i wpisujesz wszystkie nr. w mongo nie można projektować baz wg zasad relacyjnych, w sposób jaki nauczyliśmy się dla baz sql'owych. to nie jest dobrym pomysłem. wymaga to zrozumienia specyfiki bazy, tego w jaki sposób dane są przechowywane i reprezentowane. jeśli to zrozumiesz - zrozumiesz także, że jest to baza pisana z myślą o stronach internetowych (czego nie można powiedzieć o żadnej bazie sql (IMG:style_emoticons/default/exclamation.gif) !) trzeba pamiętać że przechowywanie danych jest w formacie BSON, cały interfejs jest zbudowany obiektowo więc jest łatwiej. (i trudniej (IMG:style_emoticons/default/wink.gif) ) ograniczeniem pewnym jest to że mongo lubi dobry hardware & soft. nie ma co myśleć o poważnej zabawie na innym OS niż 64. Jeśli masz duże bazy danych - to zje tyle ramu ile mu przydzielisz, i będzie z apetytem patrzył na pozostały. w pewnych specyficznych przypadkach okazuje się że wymaga dopracowania (ilość wypychanych danych, offset itp). w zamian daje niesamowite możliwości replikacji masz także wbudowane możliwości map reduce (odpowiednik group by i funkcji agregujących) sumując po kilku miesięcznej zabawie z mongo - stwierdzam że świetny soft. kolejny wniosek - jeśli będę stawiał strony internetowe zorientowane na treść, jest to właściwy wybór. jeśli muszę pracować na dużych bazach (wielomilionowych rekordach) - jest to najprawdopodobniej dobra decyzja (lub bardzo dobra) oczywiście jest to rozwijany i dość młody projekt/produkt w porównaniu do mysql'a czy postgre. dobrym pytaniem jest : dlaczego powstały, i co z sobą wnoszą bazy nosqlowe ... dlaczego stwierdzono że sql jest niewystarczający dla dalszego rozwoju. j. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 10 Dołączył: 17.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
mam usera, i mam do niego `n` nr telefonu (do domu, do pracy tel kom itd.) w mysql jedynym wyjściem jest trzymanie tego w dwu tabelach `user` oraz `telefon` w mongo ? w mongo masz to wszystko w jednej tabel( a właściwie kolekcji)i, najzwyczajniej w świecie definiujesz pole telefon jako tablice i wpisujesz wszystkie nr. Problem się zaczyna gdy potrzebujemy egzekwować zależności. Relacje pozwalają nam kontrolować dane, mamy dodatkowo contraints i triggery, które dbają o poprawność danych. Sam mechanizm relacyjny zapewnia w pewnym stopniu poprawność danych. Bazy dokumentów nic nie dają w tej kwestii. Więc trzymanie danych użytkowników wymaganych do działania strony w bazach nosql nie jest dobrym pomysłem a emulowanie wszystkich własności rdbms w takim mongodb to bezsens. Cytat jeśli to zrozumiesz - zrozumiesz także, że jest to baza pisana z myślą o stronach internetowych (czego nie można powiedzieć o żadnej bazie sql (IMG:style_emoticons/default/exclamation.gif) !) Aplikacja internetowa to taka zwykła aplikacja, tylko ma inny interface. Jak najbardziej SQL jest do stron internetowych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 05:29 |