Autor Zpráva
Keilew
Profil
Ahoj, potřeboval bych si načíst teorii ohledně RS. Nemáte nějaký kvalitní český odkaz? Potřebuju, aby to bylo nanejvíš obecně bez jakéhokoli vztahu k jakémukoli programovacímu jazyku.
A ještě poddotaz. Všude čtu, že se používá SQL databáze. Není to i zbytečně složité? Proč neukládat data do XML souboru a pak ho jednoduše parsovat? Odpadá tím jakékoli připojování, možnost spadnutí SQL serveru, který leží často jinde, než zbytek aplikace apod.? Jen se ptám;-)
roberta
Profil
ad RS:
http://cs.wikipedia.org/wiki/CMS

ad SQL:
na ukladanie dát sa môže použiť buď súbor (napr. XML), alebo databáza (napr. MySQL). Každý spôsob uloženia dát má svoje výhody/nevýhody. Súbory sa často používajú vtedy, keď tie dáta nechceš ďalej upravovať. Napr. si vezmi, že máš 100 000 záznamov v XML súbore a chceš upraviť napr. 78 000. Musel by si naprogramovať svoj vlastný algoritmus, pričom v SQL je to jeden príkaz, ktorý je aj opmimalizovaný (aby sa vykonal čo narýchlešie za použitia najmenej pamäti)
Keilew
Profil
roberta
No, v malém RS se nedá mluvit o 100 000 záznamech, tudíž to přes XML půjde určitě dobře...
roberta
Profil
Keilew
iste, máš pravdu, pôjde to aj pri 100 000 záznamoch, len určite pomalšie, ako v databáze... a okrem toho štruktúru dát v súbore veľmi nemáš šancu optimalizovať tak, ako v relačnej databáze... napr. by si chcel mať uložené dáta o zamestnancovi (meno, ulica, mesto) zmení sa napr. názov ulice. v XML súbore by si ho musel meniť na všetkých miestach, kde sa ten názov ulice nachádza, v databáze by stačil zmeniť jeden záznam...
Keilew
Profil
roberta
Chápu, to je poměrně nevýhoda XML, ale při práci s ní a i při návrhu musí tvůrce brát logicky v potaz, že XML NENÍ relační databáze. Pak bude vše v pořádku.
Jinak ten odkaz je opravdu jen na základy. Ale asi nic lepšího nepůjde sehnat, zapojím vlastní fantazii;-)
Retal
Profil
Keilew
Ty jsi srandista. Hledáš něco o teorii RS, ale přitom už předem víš, že XML je lepší než DB.
tiso
Profil
Pokiaľ nepotrebuješ robiť dynamické veci a chceš zobrazovať statické stránky, tak je XML možno zbytočný medzikrok - stačí Ti (X)HTML. Inak sa databáze nevyhneš, resp. DB je vhodnejšia. Takže ak chceš - môžeš rozdeliť aplikáciu(web) na statické/dynamické časti a mať časť v súboroch a časť v DB. Napríklad blog - komentáre a štatistiky v DB, texty v súboroch - pokiaľ vypadne DB, tak obsah sa zobrazí, iba nebudú prístupné komentáre/štatistiky - využívam to na tiso.wz.cz, ale ešte to nemám hotové (málo času a chuti).
Keilew
Profil
Retal
Nějak nechápu, na co narážíš. Ptám se na RS jako celek. To je původní dotaz. Poddotazem je databáze. Co vím, tak teorie o RS není teorie o použítí a nepoužití relační DB. Nebo snad je?

tiso
Rozumné řešení, vezmu si z něj příklad, díky!
AlešD
Profil
Keilew:
Teorie RS, to slyším docela poprvé. Lépe by bylo hledat CMS (systém správy obsahu). Česky něco a málo tady: http://cs.wikipedia.org/wiki/CMS .

souborové uložení dat (třeba v XML) versus databáze:
záleží opravdu na použití, u jednoduchých věcí, kde nemám ambice dělat nějaké složité dotazy (třeba kniha návštěv) stačí ukládání dat do souborů. U složitějších věcí jednoznačně databáze.

Výhody:
- rychlost zpracování dotazů
- jednoduchost dotazů
- SQL je pro všechny používané databázové systémy podobné (skoro stejné)
- v relačních databázích jednoznačnost uložených dat ( za podmínky správně navržené struktury databáze) a tím další zrychlení vykonávání dotazů
- tím že jsou, v dobře navržené databázi, ukládána stejná data pouze jednou je dosaženo jednoznačnosti výsledků dotazů
- možnost vytvoření indexů - další zrychlení
- možnost vytvoření trigerů - zjednodušení vlastního obslužného programu + zrychlení
- "normalizovaný" přístup ke stejným datům z různých aplikací
- transakční systém
- víceuživatelský přístup k datům
- snadná správa dat i tabulek
Keilew
Profil
AlešD
Jasný, já vím, na co jsou databáze, neboj;-)
Ale pokud mluvíme o uložení malého kvanta dat o pevné struktuře a řídké editaci, je asi lepší do souborů. Databáze je na takto zadané parametry trošku jak traktor na zahrádce 2x2m... Třeba pokud máš firmu a ta má nějaké produkty. Příchod nového produktu je tak jednou za kvartál, produktů je do padesáti, má cenu na uložení názvu, detailů a parametrů databáze, nebo stačí obyčejné:
<products>
<cathegory...>
<item id="" ....>
<parametr></parametr>
...
</item>
...
</cathegory>
</products>
AlešD
Profil
Keilew

No, já rád poučuji, sorry.

Přesto budu tvrdit, že pokud je databáze na hostingu k dispozici, tak použiji ji i v případě tebou uvedeném. A pokud budu potřebovat XML, tak to tam z databáze lehce překlopím. Naopak to lze ovšem lehce taky.
Keilew
Profil
AlešD

Vidím, že se vyznáš, tak ještě jeden dotázek. Jak se od sebe liší z hlediska časové náročnosti a "čistoty" toto:
A)
-připojit k DB
-vykonat statement
-odpojit od DB

-připojit k DB
-vykonat statement
-odpojit od DB

B)
-připojit k DB a uložit si připojení
-vykonat statement
.
.
.
-v rámci nějakého rozhodování na stránce vykonat ještě jeden statement
-odpojit od DB

Jinými slovy - buď se při každém statementu připojovat nebo si držet připojení po delší dobu... Je to v dnešní době jedno (rychlost odezvy, logování na server), nebo radši používat B-variatu?
AlešD
Profil
Keilew:

Osobně používám variantu B, pokud se jedná o jednu stránku. Přijde mi to jednodušší v tom smyslu:
- připojování odpojování zabírá nějaký strojový čas
- doba zpracovaní stránky bývá (obvykle) pod 0,1 s, takže zátěž databázového stroje generovaná mojím připojením je vcelku zanedbatelná, navíc ty dotazy mám v bloku na začátku stránky, takže než se něco začně generovat do HTML je už vše načtené v poli proměných.
- používám na třídu v PHP
konstruktor: připojení, uložení připojení
funkce: vykonání dodaných SQL
destruktor: odpojení od DB

Začal jsem zkoumat dibi od DGX, vypadá to zajímavě. Rozhodopádně lepší, než moje amatérské class.

<OT> Jakou databázi používáš?</OT>
Retal
Profil
Připojení je je o jeden řád náročnější než většina běžných dotazů do DB, proto existuje snaha počet připojování co nejvíce snížit.

Jinak z tvým křížovým tažením za XML - u příkladu s malým obchodem hned poznáš, že XML nebylo vhodná volba - jakmile bude majitel chtít změnit kategorie, editovat více výrobků (například změní dodavatele), nebo už kvůli prostému hledání podle více kategorií.
XML je rozhodně vhodné k něčemu úplně jinému než k uchovávání dat pro webové stránky.
llook
Profil
Vzpomínám si na jeden článek z Computerworldu, který se RS věnoval. Nic moc, ale aspoň je to obsáhlejší než to na Wikipedii: http://archiv.cw.cz/cwarchiv.nsf/clanky/129EC217A23AE43FC1256D2E005668 0C?OpenDocument

Potenciál SQL databáze se nejvíc projeví u rozsáhlejších projektů, ale své výhody má i u těch menších. Zbytečně složité? Mě zase zbytečně složité připadá pracovat s XML soubory.

Nepříjemné je, že se musí načíst celý soubor, aby se s tím dalo aspoň trochu pracovat, s DOM nebo XPath. XML lze sice zpracovávat i proudově, ale to je dost nepohodlný. Co když se původně malý bezvýznamný projekt rozroste? Pak je tu reálná hrozba překročení paměťového limitu. Další nevýhody plynou z použití souborů. složitěji se zabezpečuje integrita dat (viz http://www.dgx.cz/trine/item/atomicke-operace-jeste-jednou ).
tiso
Profil
Jedna z možností je mať i samotný obsah stránok v databáze a generovať tie súbory pri nejakej zmene, tie čo treba - otázka administračného rozhrania...

Čo sa týka XML - ako som písal, pripadá mi to ako zbytočný medzikrok, pokiaľ XML nevyužiješ na generovanie viacerých rôznych výstupov (XLST či parsovanie)... Preto súbory myslím súbory v akomkoľvek formáte, nie XML súbory.

Pripájanie k DB - preferujem spôsob B), konkrétne takto: pokiaľ na stránke potrebuješ pracovať s databázou, tak zistíš či už máš nejaké spojenie, keď nie, tak ho vytvoríš. A odpojíš na konci výpisu stránky, prípadne pred/pri presmerovaní.
llook
Profil
A odpojíš na konci výpisu stránky, prípadne pred/pri presmerovaní.
Nebo ho vůbec neodpojíš, ono se odpojí samo (pokud to není perzistentní spojení, ale tomu bych se radši vyhnul velkým obloukem).
tiso
Profil
llook Slušnosť káže odpojiť...
koudi
Profil
Slušnosť káže odpojiť...
A důvod?
Ivorius
Profil
Něco málo teorie nalezneš i u mě na stránkách o redakčním systému
Keilew
Profil
Díky za odkazy.

AlešD
Databáze je MySQL 4.1.11, aspoň doufám;-) Problém je, že leží na jiném stroji. Takže pokud ten stroj odpadne (já to neovlivním, je to vrámci hostingu), je v prd... celá databáze a pak i celej web. Proto tu pořád předhazuju do XML, které může ležet na stejném stroji, jako aplikace, takže když běží aplikace, běží vše.

llook
Nepohodlnost při zpracovávání XML - to vůbec neplatí v Javě, ve které to celé klohním ( JSP a Servlety, už to tu taky bylo;-) ). Stačí stáhnou dobrej parser (DOM, SAX), zaknihovat do projektu a už to sviští;-)

tiso
Podle všeho půjde o vícero ruzných výstupů.
AlešD
Profil
Keilew
Dík za info. Problém databáze na jiném stroji není až tak omezující, solidní hosting obvykle garantuje vysokou dostupnost sql stroje. Solidní myslím ovšem placený. Na free jsem měl zrovna ve středu asi 24 hodinový výpadek databáze, už jsem si zaplatil... .

Nicméně použití XML (na rozdíl od XHTML :-))) docela fandím. Sám hojně používám DocBook. Ale to je již o něčem jiném.

Ještě mě napadlo, popis RS je i na Builderu , i když to nesplňuje tvoje zadání aby to bylo nanejvíš obecně bez jakéhokoli vztahu k jakémukoli programovacímu jazyku, možná je to užitečné co se týká návrhu funkcí RS.
Keilew
Profil
AlešD
Hosting mám placený a poměrně drahý, ale zase mám k dispozici solidní adminovské možnosti. Např. vlastní konfigurace Tomcatu apod... No, vlastně je to jediný hosting, co nabízí Tomcata a tedy i JSP, na který jsem narazil, když pominu "Chcípni" alias pípni.cz.
Ten Builder si přečtu, i když je tam právě to, co jsem moc nechtěl - tedy půltuna PHPka;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0