Mají tabulkové databáze v dnešní době smysl?

Mají tabulkové databáze v dnešní době smysl?
« kdy: 07. 09. 2018, 18:00:57 »
Ahoj,
nedavno(a dneska znova, abych to nasel) jsem koukal na povidani strycka Boba o S.O.L.I.D. principles:
https://www.youtube.com/watch?v=t86v3N4OshQ

Vetsinu casu povida o jinych vecech, ale poutave takze dopurucuji.

Jedna z tech "jinych" veci, kterou zmini je ve strucnosti(asi od 54 minuty):
"Tabulkove databaze vznikly kvuli pomalym rotacnim diskum a v dnesni dobe kdy mame velka a rychla SSD ztraci smysl"

Mluvi o tom, ze tabulkove usporadani dat je pro programatory nepohodlne a ze stejne vetsinou z databaze data nacteme a vyrobime si z nich nejake stromy atp. se kterymi se nam dobre pracuje.

Dokonce rika: "If I were a database company right now, if I were Oracle, i'd be scared to death."

To video je 3 roky stare a ja porad vidim jak se na novych projektech Oracle nasazuje.
Vim, ze minimalne v korporatech se tabulkove databaze udrzi jeste dlouho.
Stryka Boba(kdyz odhlednu od politiky) respektuju, ale tady vaham.
Nezda se mi, ze by mel pravdu, ale na druhou stranu nenachazim argument ktery by sel proti te jeho uvaze.

Tak se chci zeptat:
Maji tabulkove databaze na novych projektech smysl?
Migroval nekdo z vas existujici reseni z oraclu nebo jine tabulkove databaze na neco jineho?
Souhlasite, ze rychlost/pomalost rotacnich disku je jediny duvod proc takove databaze existuji?

Diky za nazory
« Poslední změna: 08. 09. 2018, 08:19:49 od Petr Krčmář »


mmm

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #1 kdy: 07. 09. 2018, 18:30:27 »
Od doby vzniku toho videa nosql hype castecne odeznel.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #2 kdy: 07. 09. 2018, 18:37:13 »
Různé evidence (účetnictví, sklady, osoby) se tabulkově evidovaly dávno před databázemi, a ani dnes se z toho žádné stromy nevytváří. Takže bych řekl, že tabulkové databáze stále mají smysl. Ono totiž větší množství dat najednou ani moc jinak než tabulkově prezentovat nejde, takže pro lidi ta tabulková prezentace pořád bude přirozená, čemuž se pak samozřejmě podřizuje a systém evidence (její organizace – nezávislá na IT), a pak je přirozené takový systém reprezentovat v tabulkových databázích.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #3 kdy: 07. 09. 2018, 18:40:04 »
Lidi toho napovídají a papír/flipchart snese všechno. V každém oboru platí, že je mnoho povolaných a málo vyvolených. Tedy že přibližně jeden ze sta ví co povídá. To je nezávislé na oboru, Gaussova křivka rozložení populace platí všude.

Tabulkové databáze vznikly mimo jiné proto, že jsou rychlé a umožňují uložit extrémní množství dat. Tato technologie a způsob vznikly podložené matematikou a teorií. Nikoli proto, že existují pomalé hard disky.

Databáze umožňují zvládnout obrovské množství dat a přistupovat k nim, dělat nad nimi operace, a udržet nějaké záruky na konzistenci a přístupnost k těmto datům. Jinak řečeno, je za tím seriózní teorie.

Hurá přístupy a předpovědi jak všechno učiníme progresivní a moderní - těch je na každém rohu pytel. Nikdo nebrání strýčku Bobovi takovou databázi udělat a předvést, že bude mít lepší vlastnosti než klasická. Nicméně řeči strýčka Boba nic nestojí. Oracle zbohatl přesně tak, že udělal SQL databázi podloženou matematickou teorií a výzkumnými pracemi té doby - a finančně se mu to sakra vyplatilo.

Nebojte se, tabulkové databáze tu budou ještě za řadu desetiletí.

Pokud má strýček Bob akcie Oracle, a prodá mi je za pár šupů, protože si myslí, že zkrachuje - já ty akcie od něho rád koupím.




andy

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #4 kdy: 07. 09. 2018, 18:44:57 »
Řekl bych, že stačí si udělat takový středně velký hobby projekt, který pracuje s ukládáním dat a člověk velmi rychle zjistí, jak jsou SQL databáze fajn.... Pokud je teda využívá, spousta frameworků od toho dnes člověka odstíní (a taky to houby umí a spousta věcí, které jdou z databáze triviálně, se pak dělá strašně složitě přes framework).


Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #5 kdy: 07. 09. 2018, 18:50:09 »
Mimochodem, řada SQL databází chodí v paměti. Někdy se prostě server nacpe takovým množství paměti, aby databázový stroj měl celou databázi načtenou v RAM jako v keši. Je to asi nejrychlejší řešení, pokud je hromada čtení. Jak to urychlí SSD? Bude rychlejší než RAM?

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #6 kdy: 07. 09. 2018, 19:17:40 »
Od doby vzniku toho videa nosql hype castecne odeznel.
Myslim, ze kdyz ma nekdo takovou praxi jako on tak uz ma vuci hype imunitu.
Je to videt i v tom videu kdyz srovnava ruzne jazyky.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #7 kdy: 07. 09. 2018, 19:32:46 »
Částečně má pravdu.

Problém je v tom, že 1/ SQL je unifikovaný API, kterému všichni všude rozumím. A 2/ relační databáze jsou extrémně dobře odladěné.

Takže i když někdy je jejich použití na projekt poněkud neintuitivní, tak furt tak nějak není alternativa.

U NoSQL databází bych viděl výhody hlavně v tom škálování. Jinak se domnívám že ještě potřebují dozrát, než budou na stejné úrovni jako SQL.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #8 kdy: 07. 09. 2018, 19:34:50 »
Citace
Myslim, ze kdyz ma nekdo takovou praxi jako on tak uz ma vuci hype imunitu. Je to videt i v tom videu kdyz srovnava ruzne jazyky.

Dá se to pochopit. Čím větší senzace obchodník či školitel říká - tím více vydělá.

Já slyším rok co rok minimálně: 1) o 20 velice převratných technologiích, co všechno převálcují; 2) alespoň o 5 zavedených technologiích, co bídně zhybou. Jaká myslíte, že je statistika po dlouhé době? Velice žalostná proti předpovědím. Po všech velice převratných technologiích, co úplně změní svět, neštěkne ani pes.

Mimochodem, víte, že podle Linuse Torvaldse už je Windows mnoho let po smrti? Linus Torvalds, podle jeho slov, o zničení Windows nijak neusiloval, byl to pouze vedlejší efekt rozšíření Linuxu.

Problém je, že hype a unáhlené předpovědi už postihují dříve seriózní obory. Například vědu a fyziku, viz zpráva o částici rychlejší než světlo. Holt granty a prachy je třeba získávat uveřejňováním senzací, aby se peněženky pro vědce rychleji otevíraly. Otázkou ovšem je, jestli je toto ještě seriózní věda.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #9 kdy: 07. 09. 2018, 19:36:35 »
Různé evidence (účetnictví, sklady, osoby) se tabulkově evidovaly dávno před databázemi, a ani dnes se z toho žádné stromy nevytváří. Takže bych řekl, že tabulkové databáze stále mají smysl. Ono totiž větší množství dat najednou ani moc jinak než tabulkově prezentovat nejde, takže pro lidi ta tabulková prezentace pořád bude přirozená, čemuž se pak samozřejmě podřizuje a systém evidence (její organizace – nezávislá na IT), a pak je přirozené takový systém reprezentovat v tabulkových databázích.
OK, ale...
Ta tabulkova evidence v dobach kartotek mela stejnou motivaci jako ty databaze: "Rychle se dostat k datum ktera chci".

Videl jsem v nedavne dobe dve aplikace (jedna stara 20 let, druha relativne moderni) u obou byla databaze vlastne jen datastore a synchronizace mezi nody. Jakmile se data vytahla tak se pracovalo se stromovou strukturou v pameti a v db byl lock az do doby nez se uzivatel rozhodl ukladat. Obe to jsou bankovni aplikace a podle me obe jsou ten typicky use case evidence (ucty, firmy, osoby...). Fungovalo to prekvapive dobre a je to jedna z pricin proc o tom premyslim. Kdyby se u nich zahodila ta databaze a serializovalo se to na file system treba jako xml tak by to mohlo byt i rychlejsi, protoze by se eliminoval network overhead.

MasoxCZ

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #10 kdy: 07. 09. 2018, 19:38:07 »
A neměl on na mysli náhodou "big data"?
Jako když budu sledovat výskyt osob na strategických uzlech infrastruktury, přičemž identifikaci budu dělat jen z obrazu kamer a dejme tomu metadat z telefonů, tak si umím představit že SQL nebude optimální nástroj. Ale nenapadá mě, proč by nemělo být vhodné u pěkně strukturovaných dat.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #11 kdy: 07. 09. 2018, 19:41:17 »
Mimochodem, řada SQL databází chodí v paměti. Někdy se prostě server nacpe takovým množství paměti, aby databázový stroj měl celou databázi načtenou v RAM jako v keši. Je to asi nejrychlejší řešení, pokud je hromada čtení. Jak to urychlí SSD? Bude rychlejší než RAM?

On v tom videu vlastne rika, ze SSD je takova persistentni RAM. Nicmene.. Pokud mam tolik pameti, ze v ni vsechno udrzim, existuje duvod proc to organizovat do tabulek?

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #12 kdy: 07. 09. 2018, 19:47:59 »
A neměl on na mysli náhodou "big data"?
Jako když budu sledovat výskyt osob na strategických uzlech infrastruktury, přičemž identifikaci budu dělat jen z obrazu kamer a dejme tomu metadat z telefonů, tak si umím představit že SQL nebude optimální nástroj. Ale nenapadá mě, proč by nemělo být vhodné u pěkně strukturovaných dat.

Myslim, ze nemel na mysli big data. Mluvil o tom dost obecne.
A kdyz si vezmu treba hibernate tak to je typicky priklad, ktery dela z tabulkovych dat v databazi stromecky(mozna spis obecneji - grafy). A pouziva se i na aplikace s malym mnozstvim dat. *batis vlastne taky.
Cizi klice jsou reprezentovany jako reference na jine entity...

aabb

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #13 kdy: 07. 09. 2018, 19:51:19 »
Kazda z databaz je vhodna na nieco viac, na nieco menej. Vseobecne radsej pouzivam relacne (tabulkove) DB, MySQL... Pripadaju mi "najuniverzalnejsie". Hlavne na projektoch, kde sa struktura dat meni s pridavanim funkcnosti do aplikacie. Casto krat zivot prinesie situacie, kedy treba spajat "hrusky s jablkami", robit "datovu analytiku". Vela takychto "divocin" spravim v SQL na zopar riadkov. Napr. v Mongu je to na bolest hlavy s neistym vysledkom. Ale su aj situacie, kde je lepsie pouzit dokumentovu DB (Mongo, Elasticsearch, Redis,...).
Pri mensich, hobby projektoch si v 99% vystacis s relacnymi DB.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #14 kdy: 07. 09. 2018, 19:54:02 »
Citace
On v tom videu vlastne rika, ze SSD je takova persistentni RAM. Nicmene.. Pokud mam tolik pameti, ze v ni vsechno udrzim, existuje duvod proc to organizovat do tabulek?

Ano. Protože data mají logiku, mají určenou doménovou a referenční integritu. Mají zaručenou konzistenci dat a konzistenci operací. Máte zajištěno mnohem více.

Jaký existuje důvod organizovat data do grafů nebo objektových sítí? Jak vytvoříte nad těmito strukturami rychlé datové operace? Jaké bude API? Jak zajistíte konzistenci dat a vazeb mezi daty? Jak budete zajišťovat transakce? Jak budete vytvířet jazyk pro hledání dat pro obrovská data?

Jak říkám, nikdo nikomu nebrání, aby udělal databázi na grafových či objektových strukturách. A dotáhl to tak daleko, aby převálcoval relační databáze. Ale ony tu jsou omezující i fyzikální zákony, není to jen o tom, že dokážete co chcete.

***

Důvod organizovat do tabulek je proto, že vám jako aplikaci, která využívá služby databázového stroje není absolutně nic do toho, kde jsou data uložena. Váš to nezajímá. Jestli data jsou uložena na HDD, SDD, RAM, nebo na děrných štítcích, nebo na nové hyperpaměti 22. století - o to se nestaráte. Vy jen požadujete po databázovém stroji vrácení dat či operaci s daty. Tečka. Databázový stroj je abstrakce, kterou neřešíte. Administrátor databázového stroje pak vyřeší implementační detaily.

A až namísto SSD objeví listoper v roce 2020 super nový princip úložiště, za kterou dostane Nobelovu cenu, stále nad tím bude možné provozovat SQL databáze. Banky a korporace budou okamžitě kupovat jeho novou technologii a listoper bude miliardář. To je síla abstrakce - že SQL databáze efektivně fungují prakticky na jakémkoli úložném médiu.