Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> XML jako baza danych, Czy XML zacznie wypierać relacyjne bazy danych?
WebCM
post 19.01.2013, 01:16:52
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


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>


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
IceManSpy
post 19.01.2013, 13:07:16
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.

Ten post edytował IceManSpy 19.01.2013, 13:07:38


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 13:43