existuje pro toto schéma databáze název klíčových hodnot?
<p>zpracováváme rutinní datový zdroj od klienta, který právě přeformuloval svou databázi z formuláře, který se zdá být známý (jeden řádek na entitu, jeden sloupec na atribut) do podoby, která se mi zdá neznámá (jeden řádek na entitu na atribut):</p><p>před: jeden sloupec na atribut</p><pre><code>id ht\_cm wt\_kg age\_yr ... 1 190 82 43 ... 2 170 60 22 ... 3 205 90 51 ... </code></pre><p>after: jeden sloupec pro všechny atributy</p><pre><code>id metric value 1 ht\_cm 190 1 wt\_kg 82 1 age\_yr 43 1 ... 2 ht\_cm 170 2 wt\_kg 60 2 age\_yr 22 2 ... 3 ht\_cm 205 3 wt\_kg 90 3 age\_yr 51 3 ... </code></pre><p>existuje název této struktury databáze? jaké jsou relativní výhody? zdá se, že starý způsob je jednodušší umístit omezení platnosti na specifické atributy (nenulové, nezáporné atd.) a snáze vypočítat průměry. ale vidím, jak může být snazší přidat nové atributy, aniž by došlo k refaktorizaci databáze. je to standardní/preferovaný způsob strukturování dat?</p>
<p>říká se tomu entita-atribut-hodnota (také někdy 'páry název-hodnota') a je to klasický případ „kulatého kolíku ve čtvercové díře“, když lidé používají vzor eav v relační databázi.</p><p><strong>zde je seznam důvodů, proč byste <em> neměli </em> používat eav:</strong></p><ul> <li>nelze použít datové typy. nezáleží na tom, zda je hodnota datum, číslo nebo peníze (desetinné). vždy bude nucen varchar. může se jednat o něco od malého problému s výkonem až po masivní bolest střev (někdy musela pronásledovat jednu centovou variaci v měsíční souhrnné zprávě?).</li> <li>nemůžete (snadno) vynutit omezení. vyžaduje směšné množství kódu k vynucení „každý musí mít výšku mezi 0 a 3 metry“ nebo „věk nesmí být nulový a&gt; = 0“, na rozdíl od 1-2 řádků, které by každé z těchto omezení bylo. ve správně modelovaném systému.</li> <li>vzhledem k výše uvedenému nemůžete snadno zaručit, že získáte informace, které potřebujete pro každého klienta (věk může chybět od jednoho, poté u dalšího může chybět jeho výška atd.). vy <em> to dokážete </em>, ale je to sakra mnohem obtížnější než <code>select height, weight, age from client where height is null or weight is null</code>.</li> <li>znovu související, duplicitní data je mnohem těžší detekovat (co se stane, pokud vám poskytnou dva věky pro jednoho klienta? de-eaving data, jak je uvedeno níže, vám poskytne dva řádky výsledků, pokud máte jeden atribut zdvojnásobený. pokud je jeden klient má dva samostatné záznamy pro dva atributy, z dotazu níže získáte <em> čtyři </em> řádky).</li> <li>nemůžete ani zaručit, že názvy atributů jsou konzistentní. „age\_yr“ může být „age\_in\_years“ nebo „age“. (je pravda, že to není menší problém, když dostáváte výpis oproti tomu, kdy lidé vkládají data, ale přesto.)</li> <li>jakýkoli druh netriviálního dotazu je úplnou katastrofou. chcete-li relaci systému eav se třemi atributy, abyste jej mohli racionálně dotazovat, vyžaduje tři spojení tabulky eav.</li> </ul><p>porovnat:</p><pre><code>select cid.id as [id], ch.value as [height], cw.value as [weight], ca.value as [age] from (select distinct id from client) cid left outer join client cw on cid.id = cw.id and cw.metric = "wt\_kg" left outer join client ch on cid.id = ch.id and cw.metric = "ht\_cm" left outer join client ca on cid.id = ca.id and cw.metric = "age\_yr" </code></pre><p>na:</p><pre><code>select c.id, c.ht\_cm, c.wt\_kg, c.age\_yr from client c </code></pre><p><strong>zde je (velmi krátký) seznam, kdy byste měli používat eav:</strong></p><ul> <li>pokud neexistuje <em> absolutně </em>, neexistuje žádná možnost a v databázi musíte podporovat data bez schématu.</li> <li>když stačí ukládat „věci“ a neočekáváte, že je budete potřebovat ve strukturovanější podobě. pozor však na monstrum zvané „měnící se požadavky“.</li> </ul><p>vím, že jsem právě strávil celý tento příspěvek podrobně, proč je eav ve většině případů hrozný nápad - ale existuje <em> </em> několik případů, kdy je to nutné/nevyhnutelné. většinu času (včetně výše uvedeného příkladu) však bude mnohem obtížnější, než stojí za to. pokud máte požadavek na širokou podporu vstupu dat typu eav, měli byste se podívat na jejich uložení v systému klíč-hodnota, např. hadoop/hbase, couchdb, mongodb, cassandra, berkeleydb.</p>
protože používáte WinForms aplikaci, pokud je to v NET 2.0 je to vlastně systém uživatelských nastavení (tzv Properties), který je navržen pro tento účel. [Tento článek na webu MSDN](http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx) má docela dobrý úvod do této


Pokud jste stále obavy o výkonu pak se podívat na [SQL Compact Edition](http://www.microsoft.com/sql/editions/compact/default.mspx) , který je podobný SQLite, ale je dar společnosti Microsoft, který jsem našel hraje velmi pěkně s WinForms a je tu i možnost [, aby to fungovalo s LINQ](http://geekswithblogs.net/steveclements/archive/2007/11/13/LINQ-to-SQL.compact.aspx) <p>můžete vytvořit funkci se vzorem <code>shouldserialize{propertyname}</code>, který řekne xmlserializer, pokud má člen serializovat nebo ne.</p><p>pokud se například vlastnost třídy nazývá <code>mynullableint</code>, můžete mít</p><pre><code>public bool shouldserializemynullableint() { return mynullableint.hasvalue; } </code></pre><p>zde je úplný vzorek</p><pre><code>public class person { public string name {get;set;} public int? age {get;set;} public bool shouldserializeage() { return age.hasvalue; } } </code></pre><p>serializován s následujícím kódem</p><pre><code>person theperson = new person(){name="chris"}; xmlserializer xs = new xmlserializer(typeof(person)); stringwriter sw = new stringwriter(); xs.serialize(sw, theperson); </code></pre><p>výsledky v následujícím xml - všimněte si, že neexistuje žádný věk</p><pre><code>&lt;person xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"&gt; &lt;name&gt;chris&lt;/name&gt; &lt;/person&gt; </code></pre> výpočty podle teorie druhého řádu zohledňují postupné deformování konstrukce vlivem aplikovaného zatížení. řečeno matematicky působící zatížení je rozděleno na malé části (přírůstky) a pro každý přírůstek se spočte jak konstrukce reaguje. účinky 2. řádu se také někdy nazývají účinky p-δ a p-δ a ve scia engineer (a také jinde) se na ně odkazuje jako na geometrickou nelinearitu. podívejme se na některé opakující se dotazy našich uživatelů. kdy musím provádět výpočty podle teorie druhého řádu? jednotlivé části eurokódů (ec2 ec3 ec4 ec atd.) určují v kapitole 5 (analýza konstrukce) kdy je nutno výpočet podle teorie druhého řádu provádět. u ocelových konstrukcí například nízká hodnota součinitele αcr naznačuje vysokou ohebnost (štíhlost) konstrukce a tudíž citlivost na počáteční imperfekce a příčné deformace. součinitel αcr se určí jako podíl pružného kritického vzpěrného zatížení pro mód globální nestability fcr a návrhového zatížení konstrukce fed. jinými slovy abychom určili zda je nutno provádět výpočet podle teorie druhého řádu musíme se spolehnout na výsledky stabilitního výpočtu. ve scia engineer můžeme vytvořit stabilitní kombinace z vybraných návrhových kombinací a získáme kritické součinitele vzpěru jež odpovídají těmto zatěžovacím scénářům. tyto součinitele jsou vlastně násobiteli zatížení které je obsaženo ve stabilitní kombinaci. a protože naše stabilitní kombinace jsou „návrhové zatížení“ jsou tyto součinitele právě našimi součiniteli αcr které hledáme. je také důležité si uvědomit jaký typ konečně-prvkového výpočtu chceme provádět abychom získali návrhové vnitřní síly: chceme zůstat u pružného výpočtu nebo chceme také použít plastické klouby a redistribuovat momenty? podle ec3 platí že pokud provádíme pružný výpočet a kterýkoli z našich součinitelů αcr je menší než 10 pak musíme konstrukci navrhovat na výsledky výpočtu podle teorie druhého řádu. v případě plastického výpočtu (např. plastických kloubů) je pak limitní hodnotou pro nutnost provádět výpočet podle teorie druhého řádu αcr < 15. jak mohu zohlednit celkové deformace podle normy? geometrické imperfekce v konečně-prvkovém modelu zaručují že účinky druhého řádu jsou při výpočtu správně zohledněny. ti z vás kteří dobře znají kapitolu 5 v ec3 se často ptají jak ve scia engineer zohlednit celkové imperfekce a imperfekce dílce. imperfekce se definují na úrovni nelineární kombinace: každá nelineární kombinace může mít svoji sadu imperfekcí. to je výhodné protože různé zatěžovací scénáře vedou k jinému módu selhání který je naopak větší či menší měrou ovlivněn tvarem konkrétní imperfekce. pro definování rovnoměrného stranového posunu konstrukce použijte zadání typu „jednoduchý náklon“ a zadejte relativní náklon ve směru osy x a y - dx a dy. kapitola 5.3.2 v ec3 obsahuje obrázek 5.2 s úhlem náklonu φ. v dialogu pro zadání nelineární kombinace použijte dx = 1000*φx (nebo dx = 1000*tan(φx) podle toho jakým způsobem obrázek interpretujete). typ imperfekce „jednoduchý náklon“ se hodí pro konstrukce s pravidelným půdorysem i bokorysem. existují pro celkové imperfekce různé způsoby zadání? ano ve scia engineer existuje několik možností. jmenovitě jsou to: funkce náklonu: pokud potřebujete po výšce budovy měnit velikost nebo i směr náklonu použijete pro definování imperfekce funkce. tyto funkce se zadávají ručně jako lomené křivky složené z několika (mnoha) přímých úseků a zadávají se ve funkci knihovny > konstrukce výpočet > počáteční imperfekce. imperfekce odvozené ze zatěžovacího stavu: scia engineer umožňuje spočítat deformaci konstrukce pro daný zatěžovací stav a spočtenou deformaci aplikovat jako počáteční deformaci. pokud víte jaký přibližný tvar imperfekcí chcete získat můžete definovat zatěžovací stav který takovou deformaci způsobí. můžete zadat zatěžovací stav se zlomkem všech návrhových zatížení tak si můžete být jisti že ve výpočtu budou zastoupeny všechny možné stabilitní účinky. vlastní stabilitní tvar jako imperfekce: můžete zvolit stabilitní kombinaci a jeden z jejích vlastních tvarů a ten aplikovat jako imperfekci konstrukce. jak mohu zohlednit lokální deformace podle normy? jak bylo uvedeno již dříve imperfekce se přiřazují nelineární kombinaci. nejpraktičtějším způsobem přiřazení hodnoty imperfekce je odkázat se na nastavení vzpěru (přes nastavení kombinace). tím lze přes nastavení vzpěru určit který z dílců vykazuje imperfekce. je často dobré uvažovat imperfekce na dílcích které chcete analyzovat podrobně raději než přiřadit imperfekce všem dílcům na konstrukci. existují pro lokální imperfekce různé způsoby zadání? ano. namísto odkazu na data o vzpěru umožňuje scia engineer definovat lokální imperfekce přímo pomocí vlastností nelineární kombinace. pamatujte však že zadaná křivost bude pak aplikována na všechny dílce v konstrukci. Zasa niekto, kto vobec netusi ktora bije. Motas piate cez deviate.Nieco si o tom nastuduj. CSV je cisto textovy format, do ktoreho sa da ale ulozit iba excel ktory ma iba 1 list.Prave preto, ze v CSV iba zoznam hodnot stlpcov z jednotlivych riadkov oddelenych oddelovacim znakom, defaultne to byva strednik ";"Takze v CSV ziadny nazov listu nie je.T.j. riadok vyzera asi takto Honza Novy;Praha;16000;Dejvicka.Este moze byt, ze prvy riadok v subore su nazvy stlpcov a nie ciste data.Ak su v nejakom stlpci sdruzene data, tak na to musis napisat nejaky kod, ktory tie data sprave rozdeli - najpravdepodobnejsie pomocou substring. Jestli ti jde o sloupec s velikostí složek, tak ne. Výpočet a neustálé přepočítávání zbytečně zdržuje a zatěžuje systém. Velikost jednotlivých složek vidíš najetím myší. Pokud to ate jen na zalohy, tak bych to videl trosku predimenzovano. Stredni podniky je spis mysleno, ze by se na tom provozovali i aplikace. Abyste na jedno mistozalohoval par dat a mel pristup na souboru, k tomu moc nepotrebujete. [PredicateBuilder](http://www.albahari.com/nutshell/predicatebuilder.aspx) a [LINQKit](http://www.albahari.com/nutshell/linqkit.aspx) nyní podporují Entity Framework.


Je nám líto, chlapi, za to, že dělá to dříve! LINQ pro SQL podporuje pouze 1 až 1 mapování databázových tabulek, pohledy, sprocs a funkce jsou k dispozici v Microsoft SQL Server. Je to skvělý API použít k rychlému přístupu k datům konstrukci poměrně dobře navržených databází SQL Server. LINQ2SQL byla poprvé vydána s C # 3.0 a .NET Framework 3.5.


LINQ k entity (ADO.Net Entity Framework) je ORM (Object relační Mapper) API, které umožňuje širokou definici modelů objekt domény a jejich vztah k mnoha různým poskytovatelům ADO.Net dat. Jako takový, můžete kombinovat několik různých databázových, aplikačních serverů nebo protokoly navrhnout agregovaný mash-up objektů, které jsou konstruovány z různých tabulek, zdroje, služby atd Framework ADO.Net byl propuštěn s .NET Framework 3.5 SP1.


To je dobrý úvodní článek na webu MSDN:
 [Představujeme LINQ pro relační data](http://msdn.microsoft.com/en-us/library/cc161164.aspx) Přejmenovat. při importu geometrie konstrukce z autocad nebo při různých operacích ve scia engineer se může uživatel setkat s tzv. "chlupatými čísly". ve vlastnostech se souřadnice uzlu tváří zaokrouhleně ale po rozkliknutí čísla ve vlastnostech uzlu vidíme nezaokrouhlené číslo. pro přehlednost desetinných míst doporučuji změnit počet desetinných míst v nastavení jednotek. od verze scia engineer 2011 je nový dialog pro zadávání – tabulkový vstup. to nám umožní zkopírovat obsah tabulky do ms excel tam zaokrouhlit čísla a nakopírovat zpět do scia engineer. pomocí ctrl+a a ctrl+c označíme a zkopírujeme do clipbox. pomocí ctrl+v vložíme do ms excel. následně přes formát buněk nastavíme číslo+počet desetinných míst. pak pomocí ctrl+c zkopírujeme do clipbox a ctrl+v vložíme do scia engineer. hned po vložení vidíme zaokrouhlené hodnoty souřadnic uzlů.