Ukończywszy mój komputerowy poziom A w 2003 r. I uzyskując dyplom w dziedzinie informatyki w 2007 r. Oraz ucząc się swojej pracy w firmie z dużym wykorzystaniem języka SQL, wpadłem na pomysł wykorzystania relacyjnych baz danych do przechowywania danych.
Pomimo tego, że jestem stosunkowo nowy w rozwoju, byłem zaskoczony przeczytaniem komentarza (na https://softwareengineering.stackexchange.com/q/89994/12436 ), który powiedział:
[Niektórzy deweloperzy] gardzą [SQL] i myślą, że to i RDBMS to moda
Oczywiście kompetentny programista użyje odpowiedniego narzędzia do właściwego zadania i nie utworzy relacyjnej bazy danych, gdy np. Odpowiedni jest plik płaski lub inne rozwiązanie do przechowywania, ale RDBM są przydatne w wielu okolicznościach, więc jak mogą być uważany za modę?
Odpowiedzi:
Klucz znajduje się w R w RDBMS, co oznacza relację. Wbrew powszechnemu przekonaniu nie oznacza to relacji między tabelami, ale raczej fakt, że każda tabela jest relacją w matematycznym znaczeniu tego słowa .
Model relacyjny ma dość znaczące implikacje. Musisz modelować swoje dane, aby dopasować relacje i znormalizować ten model . Jeśli aplikacja została zaprojektowana jako model obiektowy, model relacyjny nie jest dobrym dopasowaniem. Jest to powszechnie znane jako niedopasowanie impedancji obiektowo-relacyjnej .
Jednym z podejść do tego niedopasowania są ORM (mapery relacji obiektowych), które zyskały dużą popularność. Ale nie są prawdziwym rozwiązaniem, są raczej jak obejście problemu. Wciąż nie rozwiązują problemu mapowania dziedziczenia klas na model relacyjny.
Prawdziwym rozwiązaniem niedopasowania obiektowo-relacyjnego są OODBMS , które niestety nie zyskały dużej przyczepności. Popularnym silnikiem obsługującym natywnie OOBD jest PostgreSQL, czyli hybrydowy OO / RDBMS. Innym OODBMS jest Zope Object DB , który jest wbudowany w Pythona, aw typowej konfiguracji używa RDBMS jako silnika bazowego.
Alternatywnym podejściem jest zaimplementowanie większej logiki na poziomie aplikacji lub oprogramowania pośredniego i użycie rozwiązania NoSQL do przechowywania danych.
Ani OODBMS, ani NoSQL nie są „zwykłymi plikami”.
źródło
Złożyłem oświadczenie, które zacytowałeś w powyższym pytaniu. Jeśli chcesz cytować, aby zweryfikować moje przypuszczenia dotyczące programistów na tej stronie, przeczytaj moją odpowiedź na następujące pytanie i przejrzyj reakcję na komentarze i opinie, które wciąż uważam za akceptowalne.
Czy doświadczeni programiści powinni znać zapytania do bazy danych?
Stwierdziłem, że jeśli używana jest baza danych RDBMS, która pomimo Linq lub ORM, programista powinien mieć zaawansowaną znajomość SQL.
Było to bardzo niepopularne stwierdzenie, jak się wydaje, z powodu poważnych różnic opinii na temat znaczenia SQL, dla mniej szanowanego sposobu myślenia, że RDBMS jest z natury gorszy od baz danych NoSQL, takich jak MongoDB.
EDYCJA: Aby dodatkowo dodać do mojego roszczenia, zacytuję użytkownika SK-logic:
źródło
moda :
RDBMS są dostępne od wieków (przynajmniej w kategoriach CS), więc ktokolwiek powiedział, że albo chciał powiedzieć coś innego, albo nie ma pojęcia.
źródło
Alternatywą dla RDBMS nie jest zwykły plik. Kiedy byłem w szkole, OODBMS było nową rzeczą, a mój profesor miał rację, kiedy nazwał to modą. Powinieneś spojrzeć na różne modele i zwrócić uwagę na trendy. Widziałem rosnącą zależność od OLAP i chciałbym postawić na nowy system wielowymiarowy, który może szybciej przetwarzać dane tuż za rogiem.
źródło
Problem polega na tym, że wielu programistów błędnie utożsamia RDBMS z SQL. SQL jest naprawdę okropnym językiem według współczesnych standardów. Jest to wadliwa i niekompletna implementacja języka „relacyjnego” (SQL wcale nie jest naprawdę relacyjny i to część problemu), który nie rozwinął się znacznie w ciągu ostatnich 30 lat. Wiele osób korzystających z SQL ledwo rozumie model relacyjny - wszystko, co wiedzą, to SQL, więc zakładają, że model relacyjny jest przyczyną ich frustracji.
źródło
Bez kontekstu trudno jest ustalić, kto / dlaczego stwierdzenie, że RDBM są uważane za modę.
W perspektywie krótko- i średnioterminowej (5–10 lat) pomyślałbym jeszcze dłużej, że nie zniknie. RDBM zapewnia wydajną i skuteczną metodę przechowywania, przetwarzania i wyszukiwania danych relacyjnych, którą mają większość firm: klienci / zamówienia, pasażerowie / bilety itp.
Istnieją inne alternatywy, takie jak NoSQL, które wydają się rosnąć popularnie dzięki projektowi open source.
Jako OLAP są to naprawdę (moim zdaniem) specjalistyczne bazy danych zaprojektowane, aby umożliwić firmie dostarczanie aktualnych i przydatnych informacji statystycznych o firmie i uruchamianie scenariuszy „co jeśli” na bieżących danych. Oczywiście w prawie wszystkich przypadkach te bieżące dane pochodziły z RDMB i zostały zmanipulowane, a następnie wstawione do bazy danych OLAP.
źródło
Relacyjne bazy danych są modne w tym samym sensie, co mikrokomputery.
źródło
Prosta odpowiedź to nie. RDBMS nie są modne. Kiedy czytasz coś na stronie LinqPad, pamiętaj, że ich celem jest sprzedaż licencji na ich produkt.
źródło
Fad nie jest właściwym słowem, ponieważ są ze sobą od bardzo dawna. Myślę, że możesz zacząć argumentować, że technologia jest bardzo stara i być może nadszedł czas na wymyślenie następnej rzeczy - być może architektury NoSQL
źródło
Wiki Def. Fad definiuje termin „moda” w następujący sposób: moda jest dowolną formą zachowania, która rozwija się wśród dużej populacji i jest przez pewien czas przyjmowana z entuzjazmem, ogólnie w wyniku postrzegania tego zachowania w pewien sposób jako nowego. Mówi się, że moda „łapie”, gdy liczba osób, które ją przyjmują, szybko rośnie. Zachowanie zwykle szybko zanika, gdy zniknie postrzeganie nowości.
Ponieważ obserwatorzy RDBMS nie zanikali szybko i nie zamierzają odejść za wiele lat (dzięki ogromnemu stosowi aplikacji produkcyjnych używających go) nie możemy powiedzieć, że to moda. W rzeczywistości podstawowe koncepcje RDBMS pozostały dość stabilne tam, gdzie tak wiele innych technologii zmieniło się (i wciąż się zmienia) dramatycznie.
Koncepcja RDBMS (i jej głównego pojazdu, SQL) stanowi krok w technologii, który, podobnie jak wiele innych, może zostać zastąpiony przez lepsze, czyli wszystko.
źródło