Czytałem / oglądałem dużo treści Roberta C. Martina. Natknąłem się na niego, mówiąc, że SQL jest niepotrzebny z powodu dysków półprzewodnikowych. Kiedy szukam innych źródeł, aby to zrobić, otrzymuję losowe artykuły opisujące różnicę wydajności SQL między dyskami twardymi a dyskami półprzewodnikowymi (co jest powiązane, ale nie to, co próbuję zbadać).
Ostatecznie nie rozumiem, do czego on chce się dostać. Czy mówi, że zamień SQL na technologie bez SQL? Czy mówi, że przechowuj dane w plikach w systemie plików? A może po prostu chce, aby ludzie przestali używać SQL / Relacyjnych baz danych z powodu ataków SQLi? Obawiam się, że nie rozumiem tego, co on chce zrobić.
Podam tutaj kilka linków, abyś mógł przeczytać bezpośrednio z jego myśli:
Po pierwsze, stwierdza, że SQL powinien zostać całkowicie usunięty z systemu.
Rozwiązanie. Jedyne rozwiązanie. Całkowicie eliminuje SQL z systemu. Jeśli nie ma silnika SQL, nie może być ataków SQLi.
I chociaż mówi o zamianie SQL na API, nie sądzę, żeby miał na myśli pozostawienie SQL za API z powodu tego poprzedniego cytatu i tego, co powiedział wcześniej w tym artykule.
Ramy nie obsługują tego problemu; ...
Uwaga dodatkowa: Mówiąc SQL, jestem prawie pewien, że Robert ma na myśli większość relacyjnych baz danych. Może nie wszystkie, ale większość. W każdym razie większość ludzi i tak używa SQL. więc...
Jeśli SQL nie jest używany do utrwalania danych, to czego powinniśmy użyć?
Zanim odpowiem na to pytanie, powinienem również zauważyć. Robert podkreśla, że dyski półprzewodnikowe powinny zmienić narzędzia, których używamy do utrwalania danych. Wskazuje na to odpowiedź Søren D. Ptæus .
Muszę także odpowiedzieć na grupę „ale integralność danych”. Po dalszych badaniach Robert mówi, że powinniśmy używać transakcyjnych baz danych, takich jak datomic . Następnie CRUD zamienia się w CR (twórz i czytaj), a transakcje SQL znikają całkowicie. Integralność danych jest oczywiście ważna.
Nie mogę znaleźć pytania, które obejmowałoby to wszystko. Chyba szukam alternatyw, które pasują do wytycznych Roberta. Datomic jest jeden, ale czy o to chodzi? Jakie inne opcje są zgodne z tymi wytycznymi? I czy faktycznie działają lepiej z dyskami półprzewodnikowymi?
eval(request.GET["table_name"] + ".get(pk=" + request.GET["pk"] + ")"))
. To nie SQL jest tak naprawdę winny, ale biedni, nieświadomi programiści.