Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: XML jako baza danych
Forum PHP.pl > Forum > XML, AJAX > XML
WebCM
Co myślicie o wykorzystaniu XML jako bazy danych?

XML
+ Hierarchiczna struktura danych (drzewko)
+ Wyrażenia XPath - wybór odpowiednich węzłów i podstawowe funkcje
+ Dane XML można podstawić od razu do szablonu XSLT
+ Nie ma ściśle określonej struktury, liczba węzłów i atrybutów na każdym poziomie jest dowolna
– Wczytywanie dużych plików XML jest wolniejsze i wymaga więcej pamięci
– Mimo dużych możliwości XPath tracimy cechy systemów bazodanowych
– Jeżeli zastosujemy XSLT, w wielu przypadkach trzeba modyfikować XML lub tworzyć nowy XML dla szablonu

Relacyjna baza danych
+ Potęga języka SQL i funkcji systemów bazodanowych
+ Kontrola typów danych, sekwencje, wyzwalacze, procedury, transakcje
+ Zoptymalizowana dla dużej ilości danych
+ W niektórych przypadkach płaskie tabele + relacje lepiej się sprawdzają
– Podklasy zawartości (produkty: gry, pralki, laptopy nieco się różnią) najczęściej wymagają osobnych tabel
– Relacje wiele do wielu wymagają dodatkowej tabeli
– Brak hierarchii - trzeba łączyć tabele lub wykonywać więcej zapytań
– Nie pobierzecie danych w postaci drzewka do PHP, a przynajmniej nie spotkałem się z tym

Obecnie XML jest chętnie stosowany do zapisywania konfiguracji. Coraz częściej wykorzystują go aplikacje biurkowe do zapisu danych. Czy XML nadaje się jako format zapisu danych w aplikacjach internetowych? Czy może w wielu przypadkach zastąpić bazę danych? Podyskutujmy.

Przykład 1. Ankiety.
* Ankieta zawiera N pytań, natomiast każde pytanie ma M odpowiedzi.
* Ankiety przypisujemy do 1 lub wielu kategorii.
* Ankietowani mają określone cechy i należą do pewnej grupy badanych.
* Musimy gdzieś przechować poszczególne wypełnienia ankiet i udzielone odpowiedzi.

Przykład 2. Konto użytkownika.
  1. <user id="999">
  2. <name>Admin</name>
  3. <pass method="Blowfish">zakodowane hasło</pass>
  4. <links>
  5. <link src="strona1">link1</link>
  6. <link src="strona2">link2</link>
  7. </links>
  8. <inne_dane>
  9. <dane_danych>
  10. <element attr="val">w dużych aplikacjach to jest możliwe</element>
  11. </dane_danych>
  12. </inne_dane>
  13. <photo src="admin.jpg" width="300" />
  14. </user>
IceManSpy
Cytat
Nie pobierzecie danych w postaci drzewka do PHP, a przynajmniej nie spotkałem się z tym

Możesz ro rozwinąć?

Jeszcze masz bazy obiektowe.

Cytat
Podklasy zawartości (produkty: gry, pralki, laptopy nieco się różnią) najczęściej wymagają osobnych tabel

Zależy jakie dane chcesz zbierać. Raczej trzeba uogólniać.

Ja uważam, że XML nie zastąpi bazy danych.
1. Między innymi pod względem szybkości i elastyczności - dodaj jakiś nowy atrybut do XML z domyślną wartością - w bazie klik klik i jest,. a w XML musisz przelecieć cały dokument.
2. Relacje! Klucze obce między tabelami - one wszystko trzymają. A w XML co? Usunę wpis i jak się dowiem czy nie był potrzebny (z czymś powiązany) ? Muszę znowu przelecieć inny XML żeby to sprawdzić (muszę wiedzieć który, znowu cały plik ładuje do pamięci)

Jedyne rozwiązanie do XML to jakaś prosta konfiguracja.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.