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

SB

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #210 kdy: 20. 09. 2018, 08:26:50 »
Jestli to nebude tim, ze proste na modelovani globalne konzistentnich dat (= splnujicich globalne nejakou podminku) neni OOP prilis vhodne.

Vysvětlete prosím to "globálně konzistentní", nikdy jsem toto spojení neslyšel, mimoto vůbec netuším, co by to mohlo znamenat.


SB

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #211 kdy: 20. 09. 2018, 08:34:36 »
OOP je na to vhodné, ale data je lepší nemít v objektech, ale v kolekcích. Tím se vyhneme zastaralému AD a místo něj s elegancí přejdeme na modrerní DM.

Active record je pouze prostředkem uvnitř ORM, samotné ORM jej nevyžaduje. Mimoto objektový model nijak neovlivňuje.

Kit

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #212 kdy: 20. 09. 2018, 09:44:56 »
OOP je na to vhodné, ale data je lepší nemít v objektech, ale v kolekcích. Tím se vyhneme zastaralému AD a místo něj s elegancí přejdeme na modrerní DM.
Active record je pouze prostředkem uvnitř ORM, samotné ORM jej nevyžaduje. Mimoto objektový model nijak neovlivňuje.

Co s tím má společného ORM?

BoneFlute

  • *****
  • 2 000
    • Zobrazit profil
Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #213 kdy: 20. 09. 2018, 16:29:35 »
OOP je na to vhodné, ale data je lepší nemít v objektech, ale v kolekcích. Tím se vyhneme zastaralému AD a místo něj s elegancí přejdeme na modrerní DM.
Active record je pouze prostředkem uvnitř ORM, samotné ORM jej nevyžaduje. Mimoto objektový model nijak neovlivňuje.

Co s tím má společného ORM?
Co má s OOP společného mít data v kolekcích a ne v objektech (sic!) a ActiveRecord či DataMapper? Zřejmě jen jel volnou asociaci, stejně jako ty.

Kit

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #214 kdy: 20. 09. 2018, 18:45:07 »
OOP je na to vhodné, ale data je lepší nemít v objektech, ale v kolekcích. Tím se vyhneme zastaralému AD a místo něj s elegancí přejdeme na modrerní DM.
Active record je pouze prostředkem uvnitř ORM, samotné ORM jej nevyžaduje. Mimoto objektový model nijak neovlivňuje.
Co s tím má společného ORM?
Co má s OOP společného mít data v kolekcích a ne v objektech (sic!) a ActiveRecord či DataMapper? Zřejmě jen jel volnou asociaci, stejně jako ty.

Když je to DataMapper, tak přece nemapuji objekty, ale data.


JS

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #215 kdy: 20. 09. 2018, 19:24:02 »
Jestli to nebude tim, ze proste na modelovani globalne konzistentnich dat (= splnujicich globalne nejakou podminku) neni OOP prilis vhodne.

Vysvětlete prosím to "globálně konzistentní", nikdy jsem toto spojení neslyšel, mimoto vůbec netuším, co by to mohlo znamenat.

Znamena to to, co je tam napsano. :) (Pro informaci: Ze je neco v zavorce neznamena, ze se to nema cist.) Pokud s temi "objekty" chceme pracovat jako s kolekci, ktera splnuje nejakou podminku, napriklad unikatnost klicu. Nebo chceme zarucit ACID vlastnosti pro transakce. Relace v databazich proste neni "jen" soubor objektu.

Alan Kay si predstavoval OOP analogicky biologickym systemum, ze jde o vzajemnou komunikaci soucasti, ktere si jinak hledi sveho. Ty typicky takove globalni vlastnosti nesplnuji (vyjimkou jsou fyzikalni zakony zachovani).

BrainLess

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #216 kdy: 20. 09. 2018, 20:58:53 »
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
Kdyz potrebujete vykopat opravdu velkou diru je bagr fajn, kdyz chcete vyhloubit jamku pro jeden stromek je preprava bagru na zahradu a hloubeni trosku neefektivni. ;-) Navic Oracle je napriklad hodne robustni software na urcite ukoly, ostatni SQL databaze at si rikda kdo chce co chce se mu proste nevyrovnaji, na druhou stranu si Oracle nechava brutalne zaplatit.

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #217 kdy: 20. 09. 2018, 22:31:02 »
OOP je na to vhodné, ale data je lepší nemít v objektech, ale v kolekcích. Tím se vyhneme zastaralému AD a místo něj s elegancí přejdeme na modrerní DM.
Active record je pouze prostředkem uvnitř ORM, samotné ORM jej nevyžaduje. Mimoto objektový model nijak neovlivňuje.
Co s tím má společného ORM?
Co má s OOP společného mít data v kolekcích a ne v objektech (sic!) a ActiveRecord či DataMapper? Zřejmě jen jel volnou asociaci, stejně jako ty.

Když je to DataMapper, tak přece nemapuji objekty, ale data.

ActiveRecord vs. Data Mapper se liší v tom, kde je zapouzdřená kompetence za persistenci - zda spolu s daty (v objektu reprezentujícím data z business domény) anebo bokem (v data mapperu). Některá ORM umožňují použít oba přístupy (vybrat si, kterému dám přednost). Viz.:

Citace
Data mapper Podle tohoto vzoru neobsahuje doménový objekt žádné CRUD nebo vyhledávací operace a o vytváření, úpravu a mazání doménových objektů z databáze se stará oddělený (mapovací) objekt. Doménový objekt je tedy zcela nezávislý na databázi. Zatímco mapovací objekt má přístup jak k doménovému objektu, tak k databázovému systému. Výhodou tohoto vzoru je právě nezávislost doménového objektu na datovém modelu, kdy je veškerá zodpovědnost za persistenci přesunuta na mapovací objekt.

https://cs.wikipedia.org/wiki/Data_Mapper

Ve výsledku mi Tvůj příspěvek nedává moc smysl (netuším, jak jsi to myslel).

Kit

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #218 kdy: 20. 09. 2018, 23:26:18 »
Citace
Data mapper Podle tohoto vzoru neobsahuje doménový objekt žádné CRUD nebo vyhledávací operace a o vytváření, úpravu a mazání doménových objektů z databáze se stará oddělený (mapovací) objekt. Doménový objekt je tedy zcela nezávislý na databázi. Zatímco mapovací objekt má přístup jak k doménovému objektu, tak k databázovému systému. Výhodou tohoto vzoru je právě nezávislost doménového objektu na datovém modelu, kdy je veškerá zodpovědnost za persistenci přesunuta na mapovací objekt.

https://cs.wikipedia.org/wiki/Data_Mapper

Ve výsledku mi Tvůj příspěvek nedává moc smysl (netuším, jak jsi to myslel).

Doménovým objektem je jednoduše kolekce.

BoneFlute

  • *****
  • 2 000
    • Zobrazit profil
Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #219 kdy: 21. 09. 2018, 00:08:48 »
Citace
Data mapper Podle tohoto vzoru neobsahuje doménový objekt žádné CRUD nebo vyhledávací operace a o vytváření, úpravu a mazání doménových objektů z databáze se stará oddělený (mapovací) objekt. Doménový objekt je tedy zcela nezávislý na databázi. Zatímco mapovací objekt má přístup jak k doménovému objektu, tak k databázovému systému. Výhodou tohoto vzoru je právě nezávislost doménového objektu na datovém modelu, kdy je veškerá zodpovědnost za persistenci přesunuta na mapovací objekt.

https://cs.wikipedia.org/wiki/Data_Mapper

Ve výsledku mi Tvůj příspěvek nedává moc smysl (netuším, jak jsi to myslel).

Doménovým objektem je jednoduše kolekce.
Přičemž kolekce není objektem? DataMapper nemapuje objekty? ActiveRecord nemapuje objekty? Problém ArctiveRecordu přeci není v mapování objektů, či kolekcí. A výhoda DataMapperu není v tom, že je to modernější. Věci mají svůj důvod a význam.

oss

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #220 kdy: 21. 09. 2018, 07:40:39 »
Citace
Data mapper Podle tohoto vzoru neobsahuje doménový objekt žádné CRUD nebo vyhledávací operace a o vytváření, úpravu a mazání doménových objektů z databáze se stará oddělený (mapovací) objekt. Doménový objekt je tedy zcela nezávislý na databázi. Zatímco mapovací objekt má přístup jak k doménovému objektu, tak k databázovému systému. Výhodou tohoto vzoru je právě nezávislost doménového objektu na datovém modelu, kdy je veškerá zodpovědnost za persistenci přesunuta na mapovací objekt.

https://cs.wikipedia.org/wiki/Data_Mapper

Ve výsledku mi Tvůj příspěvek nedává moc smysl (netuším, jak jsi to myslel).

Doménovým objektem je jednoduše kolekce.

Nechcem utocit, ale odkedy sledujem diskusie tu, tak sa vyjadrujes ku vstekym veciam ohladom vzorov, OOP, domeny.
Dam ti radu, nerob to!
Dokazujes len, ze o tom nic nevies, ani o OOP, ani o inych veciach, a vyhlasit hento o DataMappere... to prosto uz nejde.

Podla nazorov predpokladam, ze si junior, co skoncil pred rokom strednu a teraz robis na svojom prvom sukromnom PHP projekte, dobre, mas sa este co ucit, ale na rady by si este mal nabrat nejake skusenosti.

Kit

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #221 kdy: 21. 09. 2018, 09:55:35 »
Doménovým objektem je jednoduše kolekce.
Přičemž kolekce není objektem? DataMapper nemapuje objekty? ActiveRecord nemapuje objekty? Problém ArctiveRecordu přeci není v mapování objektů, či kolekcí. A výhoda DataMapperu není v tom, že je to modernější. Věci mají svůj důvod a význam.

Však jsem psal, že doménovým objektem je kolekce. Doménový objekt je také objektem.

SB

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #222 kdy: 21. 09. 2018, 12:06:20 »
OOP je na to vhodné, ale data je lepší nemít v objektech, ale v kolekcích. Tím se vyhneme zastaralému AD a místo něj s elegancí přejdeme na modrerní DM.
Active record je pouze prostředkem uvnitř ORM, samotné ORM jej nevyžaduje. Mimoto objektový model nijak neovlivňuje.

Co s tím má společného ORM?

OM (object model) a RDB.

SB

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #223 kdy: 21. 09. 2018, 12:10:13 »
Když je to DataMapper, tak přece nemapuji objekty, ale data.

Samozřejmě, protože RDB objekty neumí, takže to chování musíte zadrátovat odděleně do aplikace. Objekt se pak při rekonstrukci v aplikaci skládá z toho chování z aplikace a těch dat namapovaných z RDB.

SB

Re:Mají tabulkové databáze v dnešní době smysl?
« Odpověď #224 kdy: 21. 09. 2018, 12:35:28 »
Jestli to nebude tim, ze proste na modelovani globalne konzistentnich dat (= splnujicich globalne nejakou podminku) neni OOP prilis vhodne.

Vysvětlete prosím to "globálně konzistentní", nikdy jsem toto spojení neslyšel, mimoto vůbec netuším, co by to mohlo znamenat.

Znamena to to, co je tam napsano. :) (Pro informaci: Ze je neco v zavorce neznamena, ze se to nema cist.) Pokud s temi "objekty" chceme pracovat jako s kolekci, ktera splnuje nejakou podminku, napriklad unikatnost klicu. Nebo chceme zarucit ACID vlastnosti pro transakce. Relace v databazich proste neni "jen" soubor objektu.

Alan Kay si predstavoval OOP analogicky biologickym systemum, ze jde o vzajemnou komunikaci soucasti, ktere si jinak hledi sveho. Ty typicky takove globalni vlastnosti nesplnuji (vyjimkou jsou fyzikalni zakony zachovani).

Aha, takže jste měl na mysli globálně unikátní, to je ale váš vyjadřovací problém.

Naopak - jednou z vlastností OOP je, že objekty jsou identifikovány nikoli identifikátorem, ale svou existencí (stejně jako ve skutečném světě; narozdíl od RDB, kde je identita dána klíčem, který je součástí dat), pochopitelně v rámci své domény (světa). Při přechodech mezi doménami je třeba jejich identitu přeložit. Nejjednodušší je k tomu nějaký jedinečný identifikátor, který je součástí obsahu, protože bývá součástí i skutečných objektů (např. číslo dokladu), ale může to být také pouze vnitřní značení mapovačů mapujících mezi několika objektovými systémy, které samy o sobě identifikátor nepotřebují.

Měl jste asi na mysli tabulky, ne relace. Ne, tabulka v RDB opravdu není souborem objektů, ty je třeba z několika hromad (tabulek) vyhrabat a poskládat (a to nemluvím o chybějícím chování). Opravdu bych zde podobnost nehledal.

Pochopitelně že splňují - právě onu identitu.