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

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #30 kdy: 07. 09. 2018, 22:57:15 »
Citace
Na jednu stranu jsem rad, ze se ozval odbornik. Na druhou stranu prave kvuli tvemu hobby muze byt tvuj nazor zkresleny.

Proč by relační tabulkové databáze měly zahynout? ...

Vubec nerozumim tvemu zpusobu diskuze.

1) Prvotní otázka byla o tom, že tabulkové databáze mají zahynout.

2) Do toho byla tvá pochybnost, že odborník je příliš hájí a má zkreslený názor.

I přidal jsem další argument, proč má pravdu.

1) Zahynout ne. Jen jestli maji smysl. Preziva spousta jinych nesmyslu tak proc ne databaze.
2) Myslel jsem tim nazor na schopnosti BFU pracovat s databazi. Pavel jako clovek co databazi programuje se asi setkava s jinou skupinou uzivatelu nez ja.


Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #31 kdy: 07. 09. 2018, 23:00:13 »
Maji tabulkove databaze na novych projektech smysl?

Zavisi od projektu. Uz jen z povahy tveho dotazu vyplyva, ze si s daty neuzivas moc dlouho. ...
Definuj dlouho :-)

pres 20 let :-D

Tak to mas pravdu.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #32 kdy: 07. 09. 2018, 23:15:13 »
Citace
1) Zahynout ne. Jen jestli maji smysl. Preziva spousta jinych nesmyslu tak proc ne databaze.

Za SQL relační databáze s tabulkami není náhrada. Jsou velice potřebné a jejich funkcionalitu nikdo ani většinově nenahradil.

Citace
2) Myslel jsem tim nazor na schopnosti BFU pracovat s databazi. Pavel jako clovek co databazi programuje se asi setkava s jinou skupinou uzivatelu nez ja.

Já sám jsem při vývoji programů donutil spoustu lidí, ba i uklízeček, nadatlovat data do databáze. Stačilo jim ukázat otevřenou tabulku, do které to mají nasázet. Ohne problem.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #33 kdy: 07. 09. 2018, 23:16:01 »
...

Kit

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #34 kdy: 07. 09. 2018, 23:22:23 »
Tam, kde se používá kombinace SQL + ORM, by se dalo zvážit použití databáze NoSQL, nejlépe objektové. Konverze mezi relačním a objektovým modelem je totiž drahá a nedokonalá. My, kteří ORM nepoužíváme, si však budeme stále chválit a hýčkat své SQL.


Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #35 kdy: 08. 09. 2018, 06:47:25 »
Vlastnosti rotačních disků (rychlé sekvenční čtení, pomalé čtení s náhodným přístupem) byl asi jen jeden z faktorů proč se rozšířily relační SQL databáze.

1. Relace (tabulky) jsou vlastně množiny, což je jednodušší abstrakce než stromy (grafy). 1D tabulka má tu výhodu, že se s ní dobře jednoduše mentálně pracuje. Když pracujete s fakturou, zajímají vás položky faktury a už vás nezajímají složky, kde je faktura zařazena. Pokud pracuji s fakturami, tak mne nezajímají položky faktur, atd. Relační model není tak obecný jako síťový, ale je dostatečně silný, a velice jednoduchý.

2. Relační databáze byly navrženy pro uživatele - umožňují neprogramátorům pracovat s daty. Tuto vlastnost konkurenční systémy nikdy ve větším měřítku nenabídly - a je to dáno možnostmi a názorností a jednoduchostí relačního modelu. Ono ručně pracovat se stromy pro laika není to pravé ořechové.

3. Relační model byl doplněný o SQL - opět jednoduchý, ale dostatečně silný nástroj. A standardizace, byť ne vždy dokonalá je neskutečně silný nástroj. Pokud umíte pracovat s Mongem, umíte pracovat s Mongem, ale už nikoliv s čímkoliv jiným. Pokud umíte SQL, tak vytvoříte tabulky a dotazy na Oracle, MSSQL, MySQL, Postgresu, SQLite. Na určité úrovni nemusíte řešit detaily a základy jsou stejné. Univerzální dotazovací jazyk nabídly pouze relační SQL databáze. Resp. byly pokusy i u dalších modelů, ale bez výraznějšího rozšíření.

4. Tabulka je implementačně halda. Struktura, která se jednoduše implementuje. Navíc v kombinaci s indexy, kterých můžete mít k haldě tolik kolik potřebujete můžete mít rychlý přístup přes různé atributy. Halda (případně pole) je velice efektivní struktura. Na uložení stromu potřebuje výrazně více paměti.

Ve výsledku je důležitá abstrakce a SQL. Obojí umožňuje pracovat s daty komukoliv. Jestli v reálu data budou uložená na SSD nebo v RAMce, jestli budou uložená v poli, v hash mapě nebo v nějaké stromové struktuře je úplně jedno .. v momentě, kdy bude dost RAM, abych data uložil na disk. Co vždy ale bude důležité, že kdokoliv, kdo má práva a trochu znalostí se může na data podívat z Excelu, z libovolné aplikace a není omezen programátorem.

Hmm tak ted nevim... :-)
Na jednu stranu jsem rad, ze se ozval odbornik.
Na druhou stranu prave kvuli tvemu hobby muze byt tvuj nazor zkresleny.

Neuvedomuju si, ze bych potkal uzivaka kterej by umel aspon zaklad SQL, nebo si napojit excel na databazi.
Mozna mam jen smulu.

Já takových uživatelů potkávám desítky ročně. Nově jsem se dozvěděl, že např. s databázemi přímo pracují intenzivně testeři. Jinak, kdekoliv, kde je databáze dostupná, a jsou v ní zajímavá data, tak se data vytěžují. U jednodušších aplikací přímo. Je to otázkou oboru, velikosti firmy, kde je několik lidí, případně celé týmy v roli datových analytiků. Většina programátorů využívá možnosti dívat se na svá data, aniž by ještě měli připravenou svou aplikaci a mohli se dívat na data skrze svůj interface.

Věřím, že se můžete pohybovat v doméně, kde přímý přístup není realizovatelný (nebo snadno realizovatelný), a pak samozřejmě, takovou zkušenost nemůžete mít. Pokud Vám někde běží databáze v hostingu, tak z venku se k ní většinou nedostanete - a v momentě, kdy ztratíte svobodu, a data analyzujete jenom prostřednictvím vyexportovaným naimportovaných csv, tak Vás to rychle přestane bavit.

Alespoň okrajově sleduji výzkum v oboru databází, a už možná déle než 20 let se čeká, až se zbavíme omezení IO. První paměťové databáze jsou tu od devadesátých let. Pak se storage části databází budou přepisovat. Ale že by se opustil relační model - k tomu není důvod. Ve výzkumu to není tak vyhrocené - a je vidět prolínání některých konceptů nebo vzájemné obohacování - praxe ukázala, že držet se dogmaticky čistoty jednoho modelu není praktické (což neznamená, že je praktické dělat opičárny). SQL dnes už není čistě relační jazyk - podporuje rekurzi, analytické funkce, neatomické typy, a k nim příslušné dotazovací jazyky XPath a JSONPath. ANSI SQL 2020 by mělo integrovat GraphQL.

Re:Maji tabulkove databaze v dnesni dobe smysl?
« Odpověď #36 kdy: 08. 09. 2018, 07:14:55 »
Ano,ale tady mi na prvni pohled prislo, ze by davalo smysl vyuzit databazi prave kvuli konzistenci dat a transakcim.
A zajimala by me motivace architekta k takovemu reseni. A protoze jsem videl toho Boba povidat o necem podobnem tak mi to vrta v hlave a snazim se prijit na to co bud ja nebo Bob a ty dva architekti nevidime. (BTW. jsou fakt dva ruzni, kazdy jina narodnost a kazdy v jine bance)

Nikde netvrdím, že nemůžete najít aplikaci, kde by se nerelační model, nerelační db nepoužil šikovně, nebo naopak, kde by se relační databáze použila dobře. Pro SQL existuje celá řada antipatternů, poznaných praxí, což znamená, že na velkém množství projektů se SQL relační databáze používají nevhodně. Viděl jsem hrůzné modernizace aplikací do SQL, které byly postavené na tom, že do relační databáze se uložily bloby obsahující data a databáze se zneužila jako storage.

SQL relační databáze se existují od 80 let, v masovějším nasazení od začátku devadesátých let. Doporučení na základě praxe, jak s těmito databázemi pracovat jsou k dispozici spíš tak od druhé poloviny devadesátých let. Dá se setkat s lidmi, s aplikacemi, které sice používají SQL relační databáze, ale jsou ukotvení v COBOLu, v IMS, .. Ani s jedním z těch zmíněných systémů bych dělat fakt nechtěl, ale sloužily, dodnes slouží někde přes 50 let, a vůči tomu, co bylo před těmito systémy představovaly neskutečný pokrok.

fortranista

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #37 kdy: 08. 09. 2018, 09:54:58 »
Je to tedy úplně OT (sorry jako), ale to video je hodně zajímavé. Ten člověk má evidentně velké zkušenosti a zejména část o tom, že C je z jeho pohledu víc OO než C++ je dost dobrá (s tím "leakem" dat do headerů v C++ má pravdu, to je dost humus).

Kiwi

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #38 kdy: 08. 09. 2018, 10:53:58 »
Je to tedy úplně OT (sorry jako), ale to video je hodně zajímavé. Ten člověk má evidentně velké zkušenosti a zejména část o tom, že C je z jeho pohledu víc OO než C++ je dost dobrá (s tím "leakem" dat do headerů v C++ má pravdu, to je dost humus).
C++ moc objektové není a na C se dá postavit mnohem lepší objektový jazyk než C++ - viz Objective C. Ale to ještě neznamená, že samotné C je objektové. Ostatně takový Forth, Lisp či Lua také nejsou objektové, ale snadno se v nich dá vybudovat objektová nástavba - ve všech třech případech opět lepší než C++.

fortranista

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #39 kdy: 08. 09. 2018, 11:02:23 »
Je to tedy úplně OT (sorry jako), ale to video je hodně zajímavé. Ten člověk má evidentně velké zkušenosti a zejména část o tom, že C je z jeho pohledu víc OO než C++ je dost dobrá (s tím "leakem" dat do headerů v C++ má pravdu, to je dost humus).
C++ moc objektové není a na C se dá postavit mnohem lepší objektový jazyk než C++ - viz Objective C. Ale to ještě neznamená, že samotné C je objektové. Ostatně takový Forth, Lisp či Lua také nejsou objektové, ale snadno se v nich dá vybudovat objektová nástavba - ve všech třech případech opět lepší než C++.

jj souhlas! on tam nerikal, ze C je OO jazyk, ale ze s C++ se to v urcitem ohledu zhorsilo (vzal napriklad zapouzdreni z vetsiho rozhledu, nez pouha pristupova prava k metodam/atributum)

Kit

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #40 kdy: 08. 09. 2018, 11:24:24 »
jj souhlas! on tam nerikal, ze C je OO jazyk, ale ze s C++ se to v urcitem ohledu zhorsilo (vzal napriklad zapouzdreni z vetsiho rozhledu, nez pouha pristupova prava k metodam/atributum)

Přístupová práva jsou jen jako závora tam, kde by stačil semafor. Zapouzdření je, když jsou operace s daty tam, kde jsou data.

fortranista

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #41 kdy: 08. 09. 2018, 11:29:17 »
jj souhlas! on tam nerikal, ze C je OO jazyk, ale ze s C++ se to v urcitem ohledu zhorsilo (vzal napriklad zapouzdreni z vetsiho rozhledu, nez pouha pristupova prava k metodam/atributum)

Přístupová práva jsou jen jako závora tam, kde by stačil semafor. Zapouzdření je, když jsou operace s daty tam, kde jsou data.

to nestaci. zapouzdreni je totiz i metoda pro ukryvani informaci nepodstatnych pro konzumenta dane tridy. A ... no vlastne toto umi jen par jazyku.

Kiwi

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #42 kdy: 08. 09. 2018, 11:44:09 »
jj souhlas! on tam nerikal, ze C je OO jazyk, ale ze s C++ se to v urcitem ohledu zhorsilo (vzal napriklad zapouzdreni z vetsiho rozhledu, nez pouha pristupova prava k metodam/atributum)

Přístupová práva jsou jen jako závora tam, kde by stačil semafor. Zapouzdření je, když jsou operace s daty tam, kde jsou data.

to nestaci. zapouzdreni je totiz i metoda pro ukryvani informaci nepodstatnych pro konzumenta dane tridy. A ... no vlastne toto umi jen par jazyku.
IMHO to stačí. Přesně jak napsal Kit. Vrtal se někdy nějaký céčkař ve struktuře FILE? Neznám žádného, ač tomu žádný private nebrání. Snad jediný smysl by to mělo jako ochrana před omylem, kdy bych se při volání metody náhodou nechtěně trefil do nějaké vnitřnosti objektu. Ale tomu se dá předejít vhodným pojmenováním, což je jednodušší řešení než další syntaktické přislazování už tak přeslazených "běžných" "objektových" jazyků. Ono je to jako s dělícími svodily vs. plnou čarou. Na dálnici to asi smysl má, ale normální silnici by to zbytečně prodražilo a neuvěřitelně by to zkomplikovalo řešení mimořádných situací.

fortranista

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #43 kdy: 08. 09. 2018, 11:59:46 »
jj souhlas! on tam nerikal, ze C je OO jazyk, ale ze s C++ se to v urcitem ohledu zhorsilo (vzal napriklad zapouzdreni z vetsiho rozhledu, nez pouha pristupova prava k metodam/atributum)

Přístupová práva jsou jen jako závora tam, kde by stačil semafor. Zapouzdření je, když jsou operace s daty tam, kde jsou data.

to nestaci. zapouzdreni je totiz i metoda pro ukryvani informaci nepodstatnych pro konzumenta dane tridy. A ... no vlastne toto umi jen par jazyku.
IMHO to stačí. Přesně jak napsal Kit. Vrtal se někdy nějaký céčkař ve struktuře FILE? Neznám žádného, ač tomu žádný private nebrání. Snad jediný smysl by to mělo jako ochrana před omylem, kdy bych se při volání metody náhodou nechtěně trefil do nějaké vnitřnosti objektu. Ale tomu se dá předejít vhodným pojmenováním, což je jednodušší řešení než další syntaktické přislazování už tak přeslazených "běžných" "objektových" jazyků. Ono je to jako s dělícími svodily vs. plnou čarou. Na dálnici to asi smysl má, ale normální silnici by to zbytečně prodražilo a neuvěřitelně by to zkomplikovalo řešení mimořádných situací.

No ale to píšeš v podstatě to stejné co já :-) nikdo se asi nehrabe ve FILE structu, protože z jejich pohledu dostanou jen informaci typedef struct FILE a to je tak všechno. Když si to stejné zkusíš napsat objektově (přes class), tak uživateli cpeš i všechny interní informace v hlavičkovém souboru. to mu je 1) na nic  2) každá změna si vyžaduje překlad všech zdrojáků, co na tom headeru závisí (imho horší problém u větších projektů). Takže to je ukrývání informace, ale ne přes nějaká klíčová slova, ale vlastností jazyka-

C, hackování struktury FILE
« Odpověď #44 kdy: 08. 09. 2018, 17:45:38 »
Já jsem se tedy vrtal ve FILE struktuře. Byla to jedna z prvních věcí, když jsem před 20 lety porpvé sedl k C. Dokonce jsem si napsal další funkce f*(), které v podstatě hackovaly tu strukturu. Například jsem měl funkci, která umožnila kdykoli otevřenému souboru přepínat mezi binárním a textovým režimem. Nebo možnost přehodit soubory mezi dvěma handly typu FILE *.

Podobně jsem se vrtal do čehokoli, co jsem našel v C.