DB2 V9.x i PHP – co mi da ich mariaż?

02:10, 19 czerwca 2010 roku

| Notka, Opinie, Praca

Dobrych kilka lat temu usłyszałem o powstaniu hybrydowych baz danych. Hybrydowe w poprzednim zdaniu oznacza łączące silniki relacyjne z hierarchicznymi. Z moich informacji, z tego co wiem, wynika, że póki co połączenie XMLa (bo to zazwyczaj jest implementacją hierarchiczności) z relacyjnością zostało dodane w takich bazach jak Oracle czy IBM DB2.

Od tamtego czasu sporo się w bazach namieszało, Oracle przejęło MySQLa, Facebook zrobił własną bazę danych, która aktualnie jest pod opieką fundacji Apache i zwie się Cassandra (zresztą, to co zrobił Facebook z PHPem zasługuje na osobny wpis). Przyszłość bazowa może być bardzo ciekawa :-)

Ale skupmy się na temacie mariażu DB2 z PHP.

Po co?

XHTML to XML. Ten prosty fakt sprowadza się do tego, że możemy zapisywać gotowe kawałki kodu XML w bazie danych w polach XML – wyciągać odpowiednie kawałki, składać ze sobą i “wypluwać” stronę. Proste, ale od czegoś trzeba zacząć.

XML nadaje się świetnie do składowania różnych płynnych danych – jako, że nie narzuca nam z góry formy w której musimy je przechowywać (możemy sami sobie je narzucić poprzez DTD lub XML Schema). W przypadku chęci posiadania wielu adresów klienta, czy wielu numerów telefonu jednej osoby – XML jest lepszą alternatywą, niż tworzenie kolejnej tabeli tylko na któreś z tych danych. PHP jest biedne (miejmy nadzieję, że “jeszcze biedne” a nie “na zawsze biedne”) jeżeli chodzi o modyfikację XML. Jedynym sposobem sensownej modyfikacji jest DOM, który jest o wiele bardziej nieprzyjemny w użyciu niż SimpleXML. Coś za coś, możliwe, ze udostępnię w jakimś czasie klasy do modyfikacji PHP pozwalające na dowolną modyfikację XMLa z łatwością SimpleXMLa.

XML w połączeniu z XSLT może robić za świetną warstwę danych i wizualizacji. Przy pomocy XSLT możemy przetworzyć dowolny plik XML do.. dowolnego innego formatu opartego na tekście. W naszym kontekście oznacza to możliwość przeniesienia warstwy widoku na klienta. Do klienta wysyła się plik XML z danymi (za każdym razem w odpowiedni sposób zmodyfikowany – aby odzwierciedlić dane które są aktualne), oraz szablon XSLT który parsuje XML do XHTMLa i pokazuje użytkownikowi za pomocą przeglądarki. To jest dość ciężki punkt, gdyż trudno w XSLT tworzyć dynamiczne linki (składać atrybut node’a XMLowego z kilku wartości). Ale przy odpowiednim przetworzeniu XMLa po stronie PHP, żeby lepiej nadawał się do parsowania przez XSLT – jest to do zrobienia.

Pierwsze dwa punkty były dość trywialne. Ot, kolejna opcja do rozwiązania dość popularnego problemu. Mająca swoje minusy i plusy – wybrać można co się chce.

Trzeci punkt to zupełnie nowe (a może już nie takie nowe i ktoś już tak robi?) podejście do parsowania stron i pokazywania ich klientowi. Parsowanie szablonu i upychanie do niego odpowiednich danych to jest ból i dla serwera i dla ludzi którzy muszą uczyć się specyficznego, użytego w naszym projekcie, języka szablonów.

Tak naprawdę XSLT jest, znów, kolejnym językiem do nauczenia.. ale w odróżnieniu od Smarty czy OPT spełnia więcej niż jedną funkcję i można go zastosować do dowolnej transformacji dowolnego pliku XML – ma to swoje plusy.

Co do serwera to zostaje on odciążony od tego – klient dostaje XML i XSTL i to jego przeglądarka zajmuje się przetworzeniem szablonu i wrzuceniu w niego danych – to jest piękne. Oczywiście to serwer może przetwarzać XMLa do XSLT przy użyciu np. XSL i klient dostaje już gotowego XHTMLa (ale skrótów, uff :-) ). Np. jeżeli nie chcemy udostępniać użytkownikowi XMLa z danymi.

Przy użyciu jednego zestawu danych XML możemy dostarczyć stronę na wiele platform przy użyciu różnych szablonów XSLT.

Wszystko to co powyżej opisałem da się zrobić przy użyciu DB2 w połączeniu z PHP.

Mam wrażenie, że nie wszystko zostało tu napisane, więc temat będę jeszcze rozwijał. Postaram się też opublikować kod implementujący te rozwiązania. Opis instalacji DB2 na Linuxie i połączenie z PHP znajdziecie na moim blogu parę postów niżej.


Napisane przez Zenobius dnia sobota, czerwiec 19th, 2010, o 02:10:07. Tagi: , , , .
Dopisz się do RSS 2.0.
Możesz skomentować, albo trackbackować z Twojej strony WWW.

Comments View Comments

  1. [...] Edit: dodałem tekst o tym co może wyniknąć z połączenia DB2 z PHP. [...]

  2. No tylko, że XHTML za chwilę ustąpi miejsca HTML5. A ten już nie jest tak parsowany.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

 
blog comments powered by Disqus