SQL VS XML

Hello!

Elegge jaratlan vagyok az adatok tarolasaban, es egy erdekes kerdesbe utkoztem. Soha nem volt doglom berelt tarterulettel, de most azt a tanacsot kaptuk az admintol hogy inkabb XML ben taroljuk az adatokat ne adatbazisban. Ebben a kerdesben szeretnem megtudni a velemenyeteket

Hozzászólások

milyen adat?
milyen admin?
mennyi adat?

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Az attol fugg. Elso korben teljesen mindegy, mind a ketto ugyanolyan "jol" tarolja az adatokat. Foleg ha mar egyik be van jaratva, akkor alapos ok kell legyen, hogy atalljatok.

Az SQL ha jol gondolom valamilyen relacionalis adatbazist takar. Az adatok amit taroltok jol reprezentalhato sorokban? Az oszlopok ritkan valtoznak? Az SQL egy nagyon szep es egyszeru modja a tarolt adatok lekerdezesere, van vele barmi hianyossag?
Ingyenes DBMS-t hasznaltok vagy ennek a koltsege is szamit? Szukseg van-e a DMBS altal nyujtott extra szolgaltatasokra?
A DMBS alapvetoen egy szep tier, ami elrejti az adat tenyleges tarolasat, lehet clusterolni, preciz jogosultsagokat adni, indexeket adhatok a tablakhoz (ez nagysagrendekkel gyorsitja bizonyos lekerdezeseket), AUTO_INCREMENT, triggerek, tarolt eljarasok, tranzakciok stb.

XML? Easy es clean. Cserebe nagyobb, sokkal lassabb feldolgozni, nincsenek indexek (fixme!), kevesbe skalazodik es sok minden hianyzik amit a DBMS tud. (De hogy is tudna, hisz csak egy txt file.) De tokeletesen portolhato barmikor barhonnan barhova. Akkor is jol jon, ha az adat feligstrukturalt es kenyelmetlen lenne relacios formaban tarolni.

Es mi koze van az egesznek a "berelt tarterulet"-hez?

--
The Net is indeed vast and infinite...
http://gablog.eu

Berelt terulethez az a koze hogy eddig mindig sajat szereren, vagy itthon probalkoztam es nekem mindig termeszetes volt az hogy adatbazis kezeloben hasznalok es igy egysegesen a olya nadatokat is abban taroltam amelyeket nem feltetlen indokolt (a semmihez nem kapcsolodo tablak). De most hogy jott ez hogy eroforrasokra figyelni. Es nem is ertettem hogy XML hasznalatot eroltetik, hiszen az vegulis egy szoveges file:)

"mind a ketto ugyanolyan "jol" tarolja az adatokat"

???
Normalis DBMS-ben van indexeles, legalabb sejtese van rola, hogy mi az az ACID, nem hulyul meg, ha ketten irjak egyidoben...
Az XML adatok ilyen formaju tarolasara _nem_ valo (masra sem igazan, de ez mar mas kerdes).

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

Be tudnád küldeni, hogy mi az a tipikus SQL, amit gyakran kérdeztek meg a rendszertől? Milyen entitásaid vannak és milyen rekordszámmal? Mennyi a konkurens kérések száma / sec?

Ha kevés számú (néhány száz) rekordról van szó, amelyek ritkán változnak, akkor akár jó lehet az XML. Ilyenek pl. a fix értéklisták: országok, MO. városai, megyéi, családi állapot, stb. egyébként szerintem alapvetően hülyeséget mondott az adminod. XML != RDBMS, ahogy azt már az előttem szóló kifejtette. Néhány RDBMS (pl. Oracle -> SYS.XMLTYPE) tud tárolni XML adatokat, indexeket is készíthetsz, SQL lekérdezést fogalmazhatsz meg a tárolt XML dokumentumokon.

XML inkább kommunikációra és nagyon kevés adat (jellemzően configok) tárolására való.
Minden más jellegű adattárolásra valamilyen adatbázis (RDBMS, vagy ha merész vagy akkor CouchDB :) ) való.

most jut eszembe, az adminnak mi koze van ahhoz, hogy ti milyen db-t valasztotok? ugyanugy fel birja rakni a mysql/postgresql/anyamkinja servert ahogy fel birja rakni a libxml-t.

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

a) üzenem az adminnak, hogy: "ROTFLMAOLOLPIMP, LOLOCAUST, HAHAHA!!!111".

b) Multiuser alkalmazást NEM LEHET flat file adatbázissal(pl: XML, CSV, XLS, MS Access, ...) csinálni.
Persze, majd jön a lockfile-os szöveg.
De mire van a lock file?
Csak nem a konkurrens flat file elérést MEGAKADÁLYOZNI?!?!

omgomg...

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Valszeg neki volna nagyobb terhelés felrakni és upgradelni... annyira nehéz, hogy a nehézség elkerülése érdekében nem rest és nem szégyell baromságokat kitalálni.
Az vesse rá az első követ, aki még soha... ;)

Viszont pedagógiai célzattal felnyomnék neki egy párgigás dummy xml-t, pár szálon lekérdezgetném, aztán elküldeném a teljesítményadatokat neki meg a főnökének, hogy nem-e lehetne-e eztet gyorsítani-e, ha már adták a jó ötletet, és én időt meg pénzt beleöltem a fejlesztésébe.
Bár lehet, hogy addigra a korábbi tárhelybérlők már megérdeklődnék, hogy most meg mi van...

Mihez képest? Ha jól van beállítva, _másképpen_ terhel az XML, másképpen az SQL. És azt is jó lenne tudni, hogy az SQL-ből éppen melyik? MySQL? PostgreSQL? Oracle ;)?

Foleg mivel van ingyenes Oracle verzio is. http://www.oracle.com/technology/products/database/xe/index.html
A FAQ-bol:

  • Supports up to 4GB of user data (in addition to Oracle system data)
  • Single instance only of Oracle Database XE on any server
  • May be installed on a multiple CPU server, but only executes on one processor in any server
  • May be installed on a server with any amount of memory, but will only use up to 1GB RAM of available memory

Az a gond, hogy a komplett szal alatt nem kaptunk nagyjabol semmi infot a rendszerrol. Oke, hogy ACID meg minden, de mittomen, egy wiki-t, vagy egy hiroldalt kiszolgalni ki lehet text fajlokbol is, tehat az nem erv az SQL mellett. Emellett semmi info a terheltsegrol, multiuser, konkurrens hasznalat... ezek nelkul megis hogy varsz szambaveheto valaszt??!! Ne haragudj, de vagy tanulj meg kerdezni, vagy inkabb ne kerdezz semmit, mert lehet hogy tok mas a problemad, mint amit mi feltetelezunk.

Eleve, milyen rendszer ez? Valami free tarhely, vagy fizettek erte? Ha igen, mik a feltetelek? Van teljesitmenybeli korlat? Esetleg ez egy VPS hosting? Egyaltalan, milyen webalkalmazasrol van szo? Valami ismertebb CMS?

Megintcsak ott tartunk, hogy a vilagon semmivel nem segitettel, de elvarod a segitseget. Jo lenne, ha ez nem igy lenne.

Custom alkalmazas eseten szobajohet az SQL lekerdezesek optimalizalasa. Elneztetek ebbe az iranyba? Csinaltatok egyaltalan terheleses teszteket az oldalrol? Ha igen, milyen eredmennyel?
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Jo, de ez meg a vilagon semmilyen informacios erteket nem hordoz. Probalok minel tobb infot kifacsarni belole, de az az erzesem, ez is olyan topik lesz mint a tobbi: kerdez, majd eltunik a balfeneken.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Szerintem küldd el az admint a sunyiba. A kettő teljesen másra való. Az XML már pár száz tételnél is jelentős erőforrástöbbletet jelent (ha nem hiszed, akkor nézz meg egy Solarist, ott mindig az az első lépés, hogy az XML-t áttolják sql-be és onnan kezelik. Vajh miért?)

Alternatíva: ha az a baja az adminnak, hogy nem akar újabb és újabb szolgáltatásokat a gépére, és inkább flat file-t támogatja userspace-ben, akkor javaslom az sqlite3-at.

Megjegyzés:

Ahogy az SQL sem, az XML nem az adatok _tárolásának_ mikéntjéről szól (a flat fájlról szóló fejtegetések nem, vagy csak kikötésekkel igazak). Tessék utánanézni XML adatbázisoknak (lásd pl. http://www.modis.ispras.ru/sedna/). Innen elindulva a kérdés elméleti oldala már sokkal izgalmasabb (lásd pl. Sedna-nak ugyanúgy 100%-os ACID támogatása van, mint egy RDBMS-nek).

Egyébként hrgy84 kolléga hozzászólására ++.

Ez elegge izgalmasan hangzik, bar hozzateszem hogy otletem sincs miert akar valaki szerver oldalon XMLben tarolni adatokat.
Furcsa megkozelites, bar biztos van haszna erdekessegen kivul is.
Ez kb olyan mintha egy html nyomnek kimenetre hogy osszerakok kezzel egy DOM objektumot, majd generalok belole egy sima string html-t, majd azt kikuldenem a bongeszonek hogy o generalja vissza belole a DOM objektumot. Neha ugyan szukseg van szerver oldali DOM kezelesre, de ha lehet elkerulom.

------------------
- The Question is: What is mahna mahna?!
- No! The question is: Who Cares!