Ktoś zasugerował, że używam ORM do projektu, który projektuję, ale mam problem ze znalezieniem informacji o tym, co to jest lub jak działa.
Czy ktoś może mi krótko wyjaśnić, czym jest ORM i jak działa i jak powinienem zacząć z niego korzystać?
Ktoś zasugerował, że używam ORM do projektu, który projektuję, ale mam problem ze znalezieniem informacji o tym, co to jest lub jak działa.
Czy ktoś może mi krótko wyjaśnić, czym jest ORM i jak działa i jak powinienem zacząć z niego korzystać?
Odpowiedzi:
Wprowadzenie
Mapowanie obiektowo-relacyjne (ORM) to technika, która pozwala na zapytania i manipulowanie danymi z bazy danych przy użyciu paradygmatu obiektowego. Mówiąc o ORM, większość ludzi odnosi się do biblioteki, która implementuje technikę mapowania obiektowo-relacyjnego, stąd wyrażenie „ORM”.
Biblioteka ORM to całkowicie zwykła biblioteka napisana w wybranym języku, która zawiera kod potrzebny do manipulowania danymi, więc nie używasz już SQL; wchodzisz w interakcję bezpośrednio z obiektem w tym samym języku, którego używasz.
Na przykład tutaj jest całkowicie wyimaginowany przypadek z pseudo-językiem:
Masz klasę książek, chcesz odzyskać wszystkie książki, których autorem jest „Linus”. Ręcznie zrobiłbyś coś takiego:
W przypadku biblioteki ORM wyglądałoby to tak:
Część mechaniczna jest obsługiwana automatycznie przez bibliotekę ORM.
Plusy i minusy
Używanie ORM oszczędza dużo czasu, ponieważ:
Korzystanie z biblioteki ORM jest bardziej elastyczne, ponieważ:
Ale ORM może być bólem:
for
pętlę.Jak dowiedzieć się o ORM?
Cóż, użyj jednego. Niezależnie od tego, którą bibliotekę ORM wybierzesz, wszystkie one wykorzystują te same zasady. W okolicy jest wiele bibliotek ORM:
Jeśli chcesz wypróbować bibliotekę ORM w programowaniu internetowym, lepiej byłoby użyć całego stosu frameworka, takiego jak:
Nie próbuj pisać własnych ORM, chyba że próbujesz się czegoś nauczyć. To gigantyczne dzieło, a stare wymagały dużo czasu i pracy, zanim stały się wiarygodne.
źródło
Pewnie.
ORM oznacza „Object to Relational Mapping”, gdzie
Część Object to ta, której używasz w swoim języku programowania (w tym przypadku python)
Część relacyjna to Relational Database Manager System (baza danych) Istnieją inne typy baz danych, ale najbardziej popularna jest relacyjna (znasz tabele, kolumny, pk fk itp. Np. Oracle MySQL, MS-SQL)
I wreszcie część Odwzorowanie to miejsce, w którym wykonujesz pomost między swoimi obiektami a stołami.
W aplikacjach, w których nie używasz frameworku ORM, robisz to ręcznie. Użycie frameworka ORM pozwoliłoby zredukować płytę kotłową potrzebną do stworzenia rozwiązania.
Powiedzmy, że masz ten obiekt.
i stół
Użycie frameworka ORM pozwoliłoby na automatyczne zmapowanie tego obiektu za pomocą rekordu db i napisanie czegoś takiego:
I niech pracownik wstawi do DB.
Ups, to nie było takie krótkie, ale mam nadzieję, że wystarczy, aby złapać inne artykuły, które czytasz.
źródło
ORM (Object Relational Mapper) to element / warstwa oprogramowania, które pomaga mapować obiekty kodu do bazy danych.
Niektóre obsługują więcej aspektów niż inne ... ale celem jest odebranie części ciężaru warstwy danych z barków programisty.
Oto krótki klip od Martina Fowlera (Data Mapper):
Wzorce mapowania danych architektury aplikacji korporacyjnych
źródło
Jak wszystkie akronimy, jest niejednoznaczny, ale zakładam, że mają na myśli mapowanie obiektowo-relacyjne - sposób na zakrycie oczu i uwierzenie, że pod spodem nie ma SQL, a raczej wszystkie obiekty ;-). Oczywiście niezupełnie prawda i nie bez problemów - zawsze kolorowy Jeff Atwood opisał ORM jako Wietnam CS ;-). Ale jeśli znasz mało SQL lub nie znasz go i masz dość prosty problem na małą skalę, mogą Ci zaoszczędzić czas! -)
źródło
Model obiektowy dotyczy trzech następujących pojęć Abstrakcja danych Dziedziczenie w enkapsulacji W modelu relacyjnym zastosowano podstawowe pojęcie relacji lub tabeli. Produkty mapowania obiektowo-relacyjnego (OR mapping) integrują możliwości języka programowania obiektowego z relacyjnymi bazami danych.
źródło