abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 0
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 32
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 22
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 6
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 679 hlasů
 Komentářů: 61, poslední včera 13:06
Rozcestník

Dotaz: Datový typ varchar - univerzální podporované všemi DB

2.7.2011 18:51 hispik
Datový typ varchar - univerzální podporované všemi DB
Přečteno: 1076×
Dobrý den. Snažím se postavit aplikaci tak, aby mohla fungovat se všemi běžně používanými relačními databázemi - konkrétně mysql, postgresql, firebird, oracle, sqlite, mssql. Proto se snažím najít takové datové typy, které podporují pokud možno podobně všechny tyto databáze. Myslím, že nebudu mít problém s INTem, datem a časem, ale problém by mohl vzniknout s textovým datovým typem. Zatím to stavím nad mysql (protože toho podporuje relativně málo a dobře se to upravuje pro ostatní rdbms) a tam je VARCHAR podle collation case sensitive i insensitive, v postgresql je standardně jen CS (ale dá se přidat i CI), u ostatních RDBMS jsem trochu zmaten (i z manuálů). Netušíte někdo jak jsou na tom ostatní databázové stroje a na jaké další omezení bych si měl dávat pozor? Mým cílem je u VARCHARU podpora utf8 a nějaké univerzální řazení a porovnávání - univerzálním myslím, že všechny musí toto podporovat stejně - je mi jedno jestli CS nebo CI, ale stejně. Na co bych to měl normalizovat?

Řešení dotazu:


Odpovědi

2.7.2011 20:32 Kit
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Hledání univerzálního řešení je cestou do pekel. Každá databáze má jiné výhody a používáním standardu ANSI SQL se tyto výhody do jisté míry stírají. Je možné nadstandardní záležitosti omezit, ale úplně se jich zbavovat by byla škoda.

V ANSI je NVARCHAR(n).
2.7.2011 20:37 hispik
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
No a co to case sensitivity?
okbob avatar 2.7.2011 22:02 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
MSSQL nepodporuje utf8 - pro podporu UTF musite pouzit nvarchar, ktery zase neni podporovan v PostgreSQL.

Pristup, ktery jste zvolil, neni uplne nejstastnejsi. Rozumnejsi je pouzit treba sve jednoduche API, kterym obalite db operace, a uvnitr ktereho rozdily mezi jednotlivymi db skryjete.
2.7.2011 22:23 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
A SQL skripty na vytvoření db generujte pomocí PHP. Takové věci jako typ varchar pak vyřešíte pomocí jednoduchýho konfiguráku...
3.7.2011 02:15 hispik
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Svoje API mám. Mě jde jen o to, aby fungovaly stejně základní operace nad daty tj. řazení, porovnávání, vyhledávání. Řazení bych mohl implementovat tak, že bych do svojí aplikace načetl všechny řádky z db, pak seřadit a zobrazil, to samé u porovnávání a vyhledávání, ale to není nejšťastnější.
3.7.2011 08:41 Kit
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Takové použití databáze je úplně zcestné. Pokud bys chtěl řadit záznamy až ve skriptu, databázi zřejmě nepotřebuješ. Klidně bys mohl použít FS s utilitami nebo KVS.

l0gik ti navrhl, abys generoval SQL PHP skriptem. V tom skriptu můžeš podchytit odlišnosti jednotlivých SŘBD. Také můžeš zkusit ODBC nebo PDO. Ovšem pokud máš choutky řadit záznamy z databáze ve skriptu, zřejmě nemáš mnoho dat. Pokud chceš univerzální řešení, místo databáze použij raději XML a XSLT.

Univerzální nástroj neexistuje. Měl by ses s tím smířit.
pavlix avatar 3.7.2011 10:16 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Pokud chceš univerzální řešení, místo databáze použij raději XML a XSLT.
Tak za to ti určitě poděkuje :). XSLT je krásná věc pro ty, kteří potřebují promrhat spoustu času.
xkucf03 avatar 3.7.2011 11:30 xkucf03 | skóre: 45 | blog: xkucf03
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
To bych ani neřekl :-) Akorát je to úplně jiný přístup k datům než relační (byť se tam nějaké analogie dají najít).

Původnímu tazateli bych doporučil se podívat na hotová řešení – ORM (Hibernate) nebo aplikace, které fungují nad více různými SŘBD (Drupal). Psát něco takového na koleně není úplně triviální.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
pavlix avatar 3.7.2011 19:18 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Mně se to před časem zalíbilo... hrál jsem si s tím... ale v reálných případech jsem obvykle místo XSLT použil nějaký obecný programovací jazyk, a pokud to šlo tak místo XML nějaký rozumnější formát na uložení dat.
3.7.2011 12:26 Kit
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Napsal jsem si pokusné diskusní fórum v XSLT a funguje velmi rychle i při velké zátěži. Netvrdím, že je to univerzální zázrak, ale pro menší objemy dat je to často výhodnější řešení, než použití databází. Zejména tam, kde je čtení mnohem častější, než zápis (drtivá většina webů).
3.7.2011 12:59 hispik
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Já jsem NEPSAL, že to chci řadit přímo v aplikaci, já psal že je to nevhodné. Mě jde o toto:
příklad mysql:

pokud budu chtít řadit podle sloupce "jméno" česky, pak musí být tento sloupec v utf8_collate_cs a je hotovo, nebo v utf8_bin a pak provádět order by convert using ... a je hotovo atd. Tzn. hledám takové řešení, které by bylo pro databáze podobné, abych nemusel u každé speciálně měnit logiku celého dotazu tzn. jednou mám sloupec přímo v požadovaném collate, podruhé převádím do pož. collate apod., tzn. hledám nějaký nejvíce společný "znak", který podporují různé databázové stroje (hlavně proto, že konvertování něco stojí i s f. indexy).
3.7.2011 15:34 kuka
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Zrovna toto se myslim mezi databazemi celkem dost odlisuje. Konkretne v Oracle lze radit a porovnavat celkem jakkoliv (case sensitive, insensitive, podle locale). Pro nektere situace staci mit nastavene vlasnosti session, pro nektere scenare je ale treba uvadet to primo do dotazu (napr. pri pouziti like). Asi bych se snazil maximalne vyjit z SQL normy a specificke pozadavky resit pripadne rozpadem kodu dle pouzite databaze - pokud potrebujes neco specialniho tak se tomu proste nevyhnes (pokud to nepresunes na aplikacni vrstvu).
pavlix avatar 3.7.2011 19:22 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Netvrdím, že je to univerzální zázrak, ale pro menší objemy dat je to často výhodnější řešení, než použití databází.
Trošku mi vadí, když se ve větě porovnává konkrétní formát nějaké databáze s databází obecně. Svět ukládání dat je široký a takhle je to strašně zavádějící.
Zejména tam, kde je čtení mnohem častější, než zápis (drtivá většina webů).
No... nevím... zkoušel jsi v reálu srovnat rychlost tahání dat z XML pomocí XSLT a za relační databáze SQLite? Ona totiž SQLite při čtení nemusí být vůbec špatná. A další věc je, že to nejsou jediné dva přístupy... a já bych často zvolil řešení, které se rychleji napíše a bude třeba i pomalejší (zvlášť v případech, kdy tu rychlost uživatel nepozná).
xkucf03 avatar 3.7.2011 19:33 xkucf03 | skóre: 45 | blog: xkucf03
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
a já bych často zvolil řešení, které se rychleji napíše
Přesně k tomu někdy používám XSLT – jednoúčelová šablona se dá uplácat velmi rychle a není potřeba to moc řešit a pak ji akorát pustíš v jEditu nebo pomocí Antu a je to – rychlejší než něco normálně programovat. Např. jsem takhle dělal převod MIBů (SNMP) do nějakého proprietárního XML formátu – snadno a rychle a to se vyplatí :-)

(tím tedy nechci říct, že by se XSLT hodilo jen na tyhle věci)
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
pavlix avatar 3.7.2011 19:43 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Přesně k tomu někdy používám XSLT – jednoúčelová šablona se dá uplácat velmi rychle a není potřeba to moc řešit a pak ji akorát pustíš v jEditu nebo pomocí Antu a je to – rychlejší než něco normálně programovat.
Asi holt každý máme jiné vysledky... když jsem srovnával svoji práci v XSLT a Python/libxml2, tak to druhé bylo na většinu úloh, co jsem potřeboval, rychlejší na napsání. A to jsem dokonce s XSLT měl delší zkušenost než s tím libxml2.

Takže, XSLT je hodně zajímavé, nejspíš se časem dostanu k tomu ho zase na něco použít, ale jednak mi práce s ním na mnoho věcí vůbec nepřijde rychlejší než třeba ten Python (i když bych našel věci, kde ano, ale nebývá to ukládání dat), a druhak to nemá do téhle diskuze žádnou vypovídací hodnotu.

Vypovídací hodnotou to nemá proto, že jakmile máš něco už spraseno do XML, tak se ti úplně změní situace. Tzn to, co funguje líp na XML (pokud vůbec), nemusí líp fungovat na data obecně. A musím říct, JSON mi na ukládání strukturovaných dat vychází většinou daleko lépe než XML, když už se teda bavíme o textových souborových formátech (versus binárních současně přistupované databáze či socketové databáze).
Josef Kufner avatar 3.7.2011 12:51 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Datový typ varchar - univerzální podporované všemi DB
Koukni na dibi (perlička) a podobná udělátka. Ty tě odstíní od hromady drobných odlišností. SQL pak nebude soubor obsahující dotazy, ale jednoduchý skript, jak už bylo řečeno předemnou. A vůbec doporučuju si udělat jednoduchý instalátor, který se o databázi postará automaticky a integrovat ho do aplikace.

Co se zpracování textu týče, je na to MySQL velice dobře a i podstatně lépe než mnohé "lepší" databáze.

Omezovat se jen na společné vlastnosti všech podporovaných databází ti přinese víc problémů než užitku. Dobře vyřeš zvládání odlišností a bude ti hej.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.