Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Propel, czyli wydajna i wygodna obsługa baz danych w PHP5

ORM i Propel

Omawianą już w tekście niezgodność dwu światów: obiektowego i relacyjnego określamy mianem niedopasowania paradygmatów relacyjnego i obiektowego (ang. object/relational paradigm mismatch). Najłatwiejszym rozwiązaniem tego problemu byłoby zastąpienie relacyjnych baz danych bazami obiektowymi. Przejście do tej nowej generacji nie jest jednak zadaniem łatwym, gdyż za popularnością baz relacyjnych idą olbrzymie ilości gromadzonych w nich przez lata danych. Dlatego więc mapowanie obiektowo-relacyjne jest tak istotnym wyzwaniem. Stworzenie zapewniającego je narzędzia wymaga rozwiązania kilku istotnych problemów związanych z zapisem i pobieraniem obiektów. Po pierwsze więc, musimy ustalić, w jaki sposób klasy są mapowane do tabel w DB, a składowe każdej klasy do pól tabeli. W obiektach mogą występować składowe, które nie są prostymi danymi i nie mogą być przypisane bezpośrednio do pola w tabeli (np. referencje do innych obiektów lub typy złożone). Kolejnym problemem jest inny sposób identyfikacji obiektów (klucze pierwotne i referencje) oraz powiązań między obiektami (klucze obce i referencje). Trzeba też nadmienić, iż powszechne w programowaniu obiektowym pojęcie dziedziczenia nie ma odpowiednika w świecie relacyjnych baz danych.

Zupełnie osobna klasa problemów wiąże się z efektywnym pobieraniem danych. W SQL-u możemy bardzo precyzyjnie określić, które pola tabeli znajdą się w wynikach zapytania. Przy podejściu wykorzystującym ORM mamy mniejszą kontrolę nad ilością i sposobem pobierania danych: musimy wyspecyfikować zapytanie w języku innym niż SQL i w efekcie otrzymać poprawnie skonstruowane obiekty (często oznacza to zwrócenie wszystkich pól tabeli, nawet jeśli w danym momencie potrzebujemy tylko jednego z nich).

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (0)
Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2017 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System