Čo je mapovanie portov? Vývoj počítačových hier. Čo znamená pojem vo všeobecnosti

  • 24.04.2019

V tomto článku by sme chceli systematizovať naše skúsenosti s migráciou údajov vo veľkých podnikových projektoch súvisiacich s prechodom zákazníkov na prácu v konfiguráciách 1C: Enterprise 8.

V tomto prípade bude hlavný dôraz v článku kladený predovšetkým na technologickú zložku procesu migrácie. Postihnutá je aj organizačná zložka, no v menšej miere.

Pojmy a definície

Pod migráciou dát je zvykom rozumieť konečná postupnosť prác, projekt zameraný na jednorazový masívny prenos dát zo zdrojových systémov (historických systémov) do prijímacieho systému. V tomto prípade je prevádzka týchto údajov v zdrojových systémoch ukončená.

Rozlišujte migráciu údajov od integrácie údajov. Integrácia, na rozdiel od migrácie, je trvalou súčasťou IT architektúry a je zodpovedná za tok dát medzi rôznymi systémami a dátovými skladmi – a je procesom, nie projektovou činnosťou.

Schéma migrácie vo všeobecnom prípade vyzerá takto nasledujúcim spôsobom:

Ryža. 1

Historické systémy- databázy spoločnosti Zákazníka, ktoré sa plánujú úplne alebo čiastočne nahradiť pri zavádzaní nového systému.

Systém prijímača- cieľový systém, ľubovoľná konfigurácia "1C: Enterprise 8".

Počiatočné údaje- dáta stiahnuté z historických systémov do ľubovoľného formátu xls -súboru. V v tomto prípade formát xls sa javí ako jeden z najpohodlnejších, keďže možnosť nahrávania do súboru xls je prítomná v mnohých účtovných systémoch „predchádzajúcich generácií“.

Ako moderná alternatíva za transport je možné považovať formát xml súborov.

Existujú aj možnosti použitia prípravnej databázy.

Transformácia, konverzia- proces premeny nespracovaných údajov na údaje na načítanie. Transformácia údajov prebieha v súlade so šablónami pre načítanie. Výsledkom transformácie sú údaje na načítanie.

Stiahnite si dáta- údaje určené na načítanie do prijímacieho systému. V tomto článku sa okrem pôvodných údajov uvažuje aj o formáte xls.

Dátové šablóny na stiahnutie- popis tabuliek údajov, ktoré sa majú načítať do cieľového systému.

Etapy migrácie

Pozrime sa krok za krokom na proces prípravy a realizácie migrácie.

Organizačné fázy migrácie zahŕňajú nasledujúce body:

· Definujte stratégiu migrácie. zapnuté tejto fáze Zhotoviteľ a objednávateľ sa dohodnú na technológii vykonávania migračných prác;

· Určenie zloženia pracovnej skupiny pre migráciu. V pracovnej skupine by mali byť zastúpení špecialisti Dodávateľa aj Objednávateľa, ktorí sú dostatočne oboznámení s prevádzkou historických systémov (zo strany Objednávateľa) a cieľového systému (zo strany Dodávateľa);

· Predbežný plán migrácie. Plán migrácie sa bude v priebehu projektu niekoľkokrát upravovať;

· Obdobia dátumov vykládky údajov z historických systémov, objemy údajov. Obdobia dátových segmentov pre migrácie, dátumy testovania a konečné migrácie. Tieto informácie možno pripísať plánu migrácie;

· Zloženie údajov, ktoré sa majú migrovať. Referenčné údaje, klasifikátory, transakčné údaje, zostatky, obraty atď.;

· Problémy kontroly kvality, správnosti a integrity údajov počas procesu migrácie a na konci;

Vrátiť otázky na predchádzajúci stav v prípade porúch.

Pozrime sa podrobnejšie na technologické fázy migrácie.

Ryža. 2

1. Príprava šablón na načítanie údajov

Šablóna načítania údajov obsahuje technické popisy dátové tabuľky pre načítanie, algoritmy a pravidlá načítania pre aktuálnu šablónu.

Každá šablóna je vo všeobecnosti určená pre jednu alebo viacero súvisiacich tabuliek v cieľovom cieľovom systéme.

Šablóna označuje:

Popis všetkých polí súboru xls -data, ktoré sa majú načítať, vrátane:

o Názov poľa

o Označenie povinného vyplnenia poľa

o Príklad vyplnenia poľa

o Poznámka

Popis pravidiel pre načítanie tabuľky cieľového systému na základe údajov pre načítanie (poradie v prípade viacerých súvisiacich tabuliek, vyhľadávacie algoritmy pre kľúčové polia atď.)

· Popis priameho vypĺňania polí tabuliek cieľového systému v prípade, že sa predpokladá niečo iné ako prenos údajov „jedna k jednej“ z dátového súboru na načítanie. Relevantné napríklad pre referenčné polia.

Dodávateľ musí v priebehu prác na tejto etape pripraviť aj nakladač dátových súborov na načítanie. V prípade práce so súbormi xls nie je táto úloha nijak zvlášť náročná.

2 identifikujúce zdroje údajov

Táto etapa môže začať spolu s predchádzajúcou etapou „1. Príprava šablón na načítanie údajov ".

V rámci tejto fázy špecialisti Zákazníka určia, z ktorých systémov a ktoré údaje je možné sťahovať. Mali by ste tiež určiť, aké údaje Možno môže byť potrebné.

Typicky v veľké projekty migrácie, identifikácia úplného vyčerpávajúceho zoznamu zdrojov údajov môže trvať dosť dlho dlho a vyskytuje sa v priebehu práce v nasledujúcich fázach.

Nezriedka sa stáva, že v záujme zabezpečenia integrity informácií v budúcnosti je potrebné niektoré údaje preniesť z tlačených zdrojov (digitalizovať) alebo dokonca zadať do tabuliek z vyjadrení kľúčových zamestnancov Zákazníka.

V tejto fáze by ste sa však mali pokúsiť identifikovať čo najviac požadovaných údajov.

3. Sťahovanie nespracovaných údajov

Proces sťahovania dát z historických systémov môže trvať dostatočne dlho, najmä ak je systémov veľa, sú rôzne a sú za ne zodpovedné rôzne oddelenia Zákazníka. Tento moment je potrebné vziať do úvahy pri testovaní a finálnych migráciách.

Ako najpohodlnejšia možnosť sa javí nahrávanie do xls súborov. Mnoho starších IT systémov podporuje túto možnosť.

Môžu existovať aj možnosti nahrávania do formátu csv, dbf, xml a ďalších.

Je potrebné poznamenať, že z jedného alebo druhého dôvodu (napríklad bezpečnostné problémy) nemôže zákazník v tejto fáze vždy poskytnúť úplné nahranie údajov! Iba dátová štruktúra a niekoľko testovacích položiek. Môže teda nastať situácia, že pri testovaní a finálnom zaťažení budú v zdrojových tabuľkách nájdené nekvalitné dáta, čo povedie k neplánovaným chybám.

Aby sa tento problém minimalizoval, objemy testovacích stiahnutí z historických systémov by sa mali prediskutovať vopred.

4 mapovanie údajov

Mapovanie (mapovanie údajov) - vo všeobecnosti proces mapovania údajov z historických systémov a prijímacieho systému. Teda nespracované dáta a dáta na stiahnutie.

Fáza mapovania je časovo najnáročnejšia fáza a môže zabrať viac ako 50 % všetkej práce na úlohe migrácie.

V tejto fáze všetky pracovná skupina migračný projekt.

V procese mapovania údajov je potrebné vyzdvihnúť podkroky mapovania tabuliek a mapovania polí.

· Mapovacie tabuľky, alebo mapovanie šablón - mapovanie tabuliek zdrojových dát a dátových šablón pre načítanie. Korešpondencia môže byť buď 1: 1 alebo N: N. Výsledkom tejto práce je zostavenie a udržiavanie registra tabuľkového mapovania. Tento čiastkový krok je potrebný pre ďalší čiastkový krok mapovania poľa a pre sledovanie Všeobecná podmienka prípady na mapovaní.

Skupina 1C šablón

Názov šablóny 1C

Názov súboru

zdroj

Pravidlá generovania zdrojového súboru

Zodpovedný

Postavenie

Poznámka

NSI

Ukážka_

Nomenklatúra

Nomenk

latura.xls

Nastavte výber v systéme N
... Uložiť do txt
... Otvoriť v xls, stĺpcoch - text
... Prvý riadok - hlavička
... Počet stĺpcov - 15
... Porovnajte počet riadkov v txt a xls
... Názov hárku je vždy „Hárok1“

Ivanov I.I.

v práci

· Field mapping - mapovanie polí tabuľky v rámci už definovaného mapovania tabuliek. Výsledkom práce je register terénneho mapovania.

nie

Cl. lúka

Povinné

Názov poľa šablóny 1C „Template_Nomenclature“

Popis

Názov poľa „Nomenclature.xls“

Algoritmus plnenia

kód

Kód položky adresára

kód

názov

názov

Áno

Táto skupina

Obsahuje jednu z hodnôt:
... 1 - pre skupiny
... 0 - pre prvky

Ak dĺžka kódu = 11 znakov a posledné 4 znaky<>"0000", potom je tento prvok "0", inak je skupina "1".

Celé meno

Názov položky adresára

názov

Ak je ThisGroup = 1, potom "", V opačnom prípade, ak je ThisGroup = 0, potom Názov.

V tejto fáze by ste mali tiež vykonať možné pracovné miesta normalizovať údaje.

5. Príprava transformačných pravidiel

Na rozdiel od predchádzajúcich etáp je táto etapa technická a zahŕňa prácu developera Dodávateľa.

Na základe dohodnutých registrov mapovacích polí špecialisti Dodávateľa vypracujú pravidlá transformácie dát.

Pre operatívne práce počas prípravných fáz migrácie a ďalej, počas testovacej a finálnej migrácie, je dôležité, aby existovalo pohodlné vývojové prostredie pre pravidlá (skripty) na transformáciu údajov a prostredie na konverziu zdrojových údajov na údaje pre načítanie.

Okrem toho požiadavky na toto prostredie zahŕňajú:

· Pohodlie a rýchlosť vývoja pravidiel transformácie;

· Rýchlosť konverzie dát. Vstupné a výstupné súbory môžu mať stovky tisíc riadkov!

· Schopnosť pracovať s viacerými vstupnými súbormi súčasne;

· Možnosť uložiť pravidlá transformácie do samostatných súborov.

Pre naše projekty migrácie sme vyvinuli špecializovanú vývojársku pracovnú stanicu, ktorej základom je štandardné spracovanie 1C Query Console.

Spracovanie "Query Console" bolo vylepšené, aby bolo možné zadávať priame požiadavky na súbory xls.

Tu je príklad kombinácie dvoch zdrojových xls súborov zamestnancov.xls


Kód zamestnanca

Priezvisko

názov

stredné meno

Dátum narodenia

2423

Ivanov

Ivan

Ivanovič

17.11.1992

1523

Petrov

Bazalka

Aleksandrovič

04.02.1991

4363

Sidorov

Kirill

Nikolajevič

01.05.1995

Denisov

Denis

Denisovič

01.01.1990

a Operácie.xls so stránkami:

Odpisy

Kód zamestnanca

dátum

Sum

2423

01.02.2014

1523

02.02.2014

4363

03.02.2014

04.02.2014

100000

2423

05.02.2014

1523

06.02.2014

4363

07.02.2014

2356

08.02.2014

140000

2423

09.02.2014

1523

10.02.2014

4363

11.02.2014

23523

12.02.2014

80000

a účtenky:

Kód zamestnanca

dátum

Sum

01.05.2004

02.05.2004

03.05.2004

04.05.2004

2423Dátum narodenia

Príjmová suma

Suma, ktorá sa má zaúčtovať

Ivanov Ivan Ivanovič

2423

17.11.1992

1341234

1010

Petrov Vasilij Alexandrovič

1523

04.02.1991

245245

Denisov Denis Denisovič

01.01.1990

380000

320000

Kirill Sidorov

4363

01.05.1995

613382

26336

CELKOM:

2579861

347842

Všimnite si, že príklad je umelý, špeciálne vybraný tak, aby demonštroval všetky možné štádiá transformácie zdroja údajov.

Technologická postupnosť transformačných operácií je tu nasledovná:

Pomocou dotazovacieho jazyka Access SQL (ktorý poskytuje významné dodatočné funkcie v porovnaní s dotazovacím jazykom 1C) sa vytvorí úvodný dotaz, ktorý extrahuje údaje z xls súbor v stredu 1C. V tomto prípade už v tejto fáze je to možné rôzne kontroly a normalizácia údajov.

Technológia prístupu k dátam ADO poskytuje vysokorýchlostný výkon.

Ryža. 3

2. Dotaz v jazyku 1C - hlavný dotaz, ktorý implementuje algoritmus mapovania polí. A tiež: obohatenie načítaných údajov o údaje z databázy 1C, preskupenie, kombinovanie s výsledkami dotazov na iné zdrojové xls súbory atď.

3. V prípade potreby následné spracovanie výsledku dotazu 1C. Realizuje sa pomocou skriptu v jazyku 1C.

Napríklad tu implementujeme pridanie riadku "CELKOM" o stĺpce súm.

4. Zápis konečného súboru údajov do súboru xls.

Vo všeobecnom prípade na výstupe získame konečné súbory na načítanie do cieľovej databázy 1C.

Tiež tento nástroj umožňuje uložiť pravidlá na prevod údajov do samostatného súboru xml:

Okrem toho schopnosť pracovať v dávkový režim, čo je dôležité najmä vtedy, keď existuje veľké množstvo heterogénnych údajov o migrácii.

V priebehu predchádzajúcich etáp sa prípravná časť práce ako celok končí - identifikujú sa všetky zdroje údajov, zdrojové údaje sa zo zdrojov načítajú, pripravujú sa šablóny pre načítanie do cieľovej databázy, mapuje sa a nakoniec boli vyvinuté skripty na transformáciu údajov.

Treba poznamenať, že pred konečnou migráciou by ste mali určite vykonať niekoľko testovacích. Počas testovacích migrácií Dodávateľ spolu so Zákazníkmi identifikujú:

Chyby konverzie, chyby načítania údajov

Vykonajte predbežné posúdenie kvality údajov načítaných do cieľového systému

Na základe výsledkov testovacích migrácií zostavte/aktualizujte plán finálnej migrácie

7 zosúladenie údajov

Kontrola kvality načítaných údajov by sa mala vykonať po skúšobných migráciách aj na konci konečnej migrácie. Počas zosúlaďovania je možné skontrolovať tieto ukazovatele:

· Zhoda celkových súm zostatkov, dokladov;

· Kvantitatívne zhody, ako napríklad počet fixných aktív;

· správnosť vypĺňania jednotlivých entít vzorky;

Upozorňujeme, že určité kontroly migrujúcich údajov a problémy s normalizáciou údajov sa musia riešiť počas všetkých procesov migrácie. Vždy by ste si mali položiť otázku, čo je potrebné urobiť v súčasnej fáze, aby ste sa vyhli chybám v nasledujúcich fázach.

Napríklad:

· Kontrola duplikátov podľa kľúčových polí. Na počiatočných údajoch je možné a potrebné vykonať viac;

· Odlievanie typov polí;

· Referenčná integrita;

· Matematické nezrovnalosti. Napríklad kontrola prázdnych číselných polí, ktoré sa plánujú počas transformácie rozdeliť;

· Vo všeobecnosti kontrola povinného vyplnenia polí;

· Nahradenie neplatných znakov. Napríklad anglické znaky v poliach v azbuke ("o", "a", "e" atď.) To platí najmä pre kľúčové polia!

Kontrola súladu hodnôt polí reťazcov s typmi prijímacieho systému (obmedzenia dĺžky)

Po ukončení finálnej migrácie sa podľa vopred stanovenej migračnej stratégie a plánu migrácie rozhodne o ďalšom fungovaní historických systémov.

Prevádzka sa často končí ihneď po konečnom odsúhlasení údajov a zaznamenaní úspešnosti migrácie – používatelia nového systému už nevedú evidenciu paralelne v dvoch systémoch, ale úplne prechádzajú na nový systém. Zároveň zostáva prístup k starému systému v režime čítania.

V niektorých prípadoch môže dôjsť k paralelnej prevádzke dvoch systémov počas skúšobnej prevádzky (OE) a dokonca aj dlhšie ako toto obdobie. Otázka paralelná práca používateľov v týchto dvoch systémoch úzko súvisí s otázkou možnosti návratu k starému systému, ak sa migrácia (alebo vo všeobecnosti práca nového systému!) považuje za neuspokojivú.

Záver

Na záver by som rád poznamenal, že pokiaľ ide o migráciu veľkých transakčných systémov, ktoré zahŕňajú veľa konfigurácií 1C: Enterprise, prechod na nový systém môže byť veľmi časovo náročný.

Preto treba pamätať na to, že každý takýto projekt si vyžaduje starostlivú prípravu a musí byť sprevádzaný individuálnym plánom. Bez ohľadu na typ migrovaných systémov, veľkosť databáz atď. všeobecná schéma migrácia vyzerá takmer rovnako.

Počuli ste už o mapovaní? V ruskom prepise je to mapovanie, mapovanie. Pojem má niekoľko významov, ktoré spolu nesúvisia. Uvažujme o každom z nich v kontexte oblasti, kde sú relevantné.

Čo znamená pojem vo všeobecnosti?

Mapovanie, mapovanie, mapovanie, mapovanie je určenie súladu informácií medzi dvoma rôznymi sémantikami jedného aj viacerých objektov. Inými slovami, toto je názov prevodu údajov z jednej formy do druhej.

čo je mapovanie? Vo všeobecnom zmysle je tento pojem dosť široký – môže ísť buď o svedomitú transformáciu jedného sledu prvkov na iný, resp. pravidelná konverzia mena, spisy. Všetko, čo sa skrýva pod analyzovaným pojmom, je teda najlepšie vyjadrené v anglickom jazyku konceptu mapovania údajov.

Príklady mapovania

Pozrime sa, čo to je - mapovanie pomocou nasledujúcich príkladov:

  • Vypracovanie dokladu o zhode účtovných účtov z ich rôznych plánov. Napríklad ruština, IFRS, manažérske účtovníctvo atď.
  • Preklad databázových kódov z jedného systému do druhého. Napríklad musíme previesť symboly 0 a 1 na „nie“ a „áno“.
  • Konverzia dolárov na eurá je určitým druhom mapovania.
  • Zmena formátu obrázka .png na .jpg, filmu z .avi na .mp4, vykonaná v grafickom, video editore, bude nejakým spôsobom súvisieť s predmetom nášho rozhovoru.

Vývoj počítačových hier

Mapovanie (z angl. mapa- "mapa oblasti") môže pôsobiť aj v zmysle dizajnu úrovní. Toto je názov pre disciplínu vo vývoji videohier. Ide v prvom rade o vytváranie úrovní rôznej zložitosti – vypracovanie úlohy hráča, návrh miesta, zostavenie úloh atď. V praxi sa táto činnosť vykonáva v editore „Úrovne“.

Mapovacie technológie sú tu heterogénne – všetko závisí od rozpočtu vývojára, charakteru, žánru. hra, ktorá sa vytvára... Pozrime sa na klasický príklad, aby sme lepšie porozumeli konceptu:

  • Vytvorenie mapy územia a jej rozdelenie na zóny – mestá, pohoria, podzemné tunely, lesy a pod.
  • Určenie regiónov spojených s nejakou špecifickou činnosťou hráča - bojisko, sklad ďalších atribútov, ťažba surovín, opevnenia, miesto odpočinku, tabuľa cti atď.
  • Vypracovanie nestatických objektov. Môžu to byť kľúče, dvere, tajné gombíky a chodby, miznúce tajné chodby a pod.
  • Určenie dôležitých miest organizácií je bod obnovy, poklady, poklady, skrýše s tajnými zbraňami atď.
  • Stanovenie miesta začiatku a konca pohybu pre každého z hráčov.
  • Oživte mapu množstvom detailov: pridajte prvky, ako sú textúry, zvuky, zvuk, vizuálne efekty, ilúzie, animácie a ďalšie.
  • Vloženie potrebných spúšťačov (mechanizmy, ktoré kontrolujú prítomnosť objektu vo vytvorenom hernom priestore) a skriptov (skripty, stručné algoritmy akcie).
  • Tvorba určitých skriptov pre pohyb mobov (nestatické predmety, postavy): oblasti, kde sa môžu pohybovať, ich interakcia, dialóg s hráčom atď.
  • Niekedy to zahŕňa vytváranie cut-scén – krásne intro, minifilm, akási upútavka na hru alebo level, skupina „levelov“, ktoré si hráč môže len pozrieť, no nijako ich neovplyvní. čo sa v ňom deje.

Video mapovanie

Čo je video mapovanie (3D mapovanie)? to úžasná technológia, ktorá umožňuje premietať obrázky, špeciálne vytvorené filmy na veľké nerovné povrchy, napríklad na fasády budov.

Jedinečnosť je v tom, že vám umožňuje „oživiť“ domy a iné interiérové ​​predmety tým, že im dáva vizuálnu mobilitu. A všetko sa dosahuje iba projektormi inštalovanými podľa určitého plánu. "Kúzlo" pohyblivých objemových obrázkov spočíva v superpresnej zhode prvkov, na ktorých sa obraz odráža, a samotnej videoprojekcie.

Hoci pre mnohých z nás je mapovanie celkom nový smer, zrodil sa v šesťdesiatych rokoch minulého storočia. Vďačíme za to Waltovi Disneymu a Disney Studios. Potom bol pracovný názov mapovania „tieniace lampy“, „priestor virtuálnej reality“. Prvá show je považovaná za atrakciu "Phantom Manor" v Disneylande. Pre neho vznikli umelé odseknuté hlavy, na ktoré sa premietal obraz, aby ich „oživil“.

Aké video mapovanie môže byť?

V závislosti od objektu, na ktorom sa obraz odráža, je technológia rozdelená do niekoľkých smerov:

  • Architektonický. Projekcia objemu zapnutá komplexný objekt- fasáda budovy, most, veža, ako aj na lietadle, lodi atď.
  • Interiér. Vytváranie zaujímavých iluzórnych riešení vo vnútri miestnosti premietaním obrazu na steny, strop, podlahu.
  • Pre malé predmety. Používajú sa malé formy aj prvky niečoho väčšieho. Napríklad kolesá auta, torta, šaty pre družičky atď.
  • Terénne úpravy. Základom sú lesy, hory a iné prírodné objekty.
  • Interaktívne. Najnovší smer, iný v tom, že sa tu človek stáva hrdinom. Technológia oživuje predmety okolo umelca a pomáha im vytvoriť nezabudnuteľnú show.

Kde sa používa 3D mapovanie?

Pozrime sa, kde môže byť takáto technológia relevantná:

  • vytváranie objemových na rôznych povrchoch;
  • mestské sviatky, masové podujatia;
  • veľké firemné akcie;
  • otváranie nákupných centier, zábavných komplexov;
  • detské prázdniny;
  • kultúrne, historické, vzdelávacie podujatia.

Takáto šou vyzerá najefektívnejšie v tme. Aby bol efekt prekvapivejší, organizátori to kombinujú s vhodným priestorovým zvukom, živou hudbou, ohňostrojom.

Ak sa chcete zoznámiť s recenziami o technológii, stačí si vypočuť tých, ktorí aspoň raz navštívili moskovský „Kruh svetla“. S nedávno Každoročne na jeseň sa tento festival, ktorý priťahuje tisíce divákov, koná v hlavnom meste. Dizajnéri z rôznych krajín vytvárajú videoprojekcie, ktoré sú zobrazené na fasáde Veľkého divadla, hlavného pavilónu VDNKh, hlavnej budovy Moskovskej štátnej univerzity atď.

Mapovanie je koncept s viacerými hodnotami. Ide o komplexnú konverziu dát, vytváranie lokácií v počítačových hrách a show založenú na premietaní obrázkov na veľké a malé objekty.

Dátový sklad pre finančnú inštitúciu

Dátové sklady v bankovom sektore sú navrhnuté tak, aby konsolidovali nesúrodé údaje z rôznych systémov a extrahovali informácie z konsolidovaných údajov. Hoci sklad môže vyriešiť problémy s konsolidáciou údajov, nedokáže magicky vyriešiť všetky problémy súvisiace s informáciami. Vytvorenie a riadenie projektu na vybudovanie a riadenie bankového dátového skladu si vyžaduje vedomé úsilie všetkých zainteresovaných strán.

V tejto súvislosti sa oplatí pozrieť sa na kroky (ktoré je možné podniknúť ešte pred implementáciou dátového modelu), aby sa vytvorilo ideálne prostredie pre úspešnú implementáciu dátového skladu v banke.

1. Identifikácia zainteresovaných strán v súlade s obchodnou činnosťou banky (maloobchod Bankové služby, firemné podnikanie, kreditné karty, atď.).

Zainteresované strany musia mať príslušné znalosti. Pre lepšie pochopenie dátového skladu a jeho potrieb pre každú jednotlivú obchodnú funkciu je potrebné zapojiť do projektového tímu ľudí z obchodnej aj obchodnej technologickej stránky. Zainteresované strany by mali byť zapojené do projektu od začiatku, aby sa predišlo únikom informácií v skupinách.

2. Školenia na pochopenie potreby dátového skladu v banke.

Skupiny, ktoré sa zaujímajú o projekt, by mali chápať, že dátový sklad je úložisko iba pre príslušné dátové položky, nie presná kópia pôvodný systém. To pomáha tímom rozhodnúť sa, ktoré údaje sa oplatí uchovávať.

3. Pochopenie konceptu dátového modelovania.

Pochopenie použitia metadát a historických tabuliek poskytuje projektovému tímu istotu, že ich požiadavky budú v dátovom modeli splnené.

4. Spoločné identifikovanie krajiny zdrojových systémov.

Zabezpečte, aby sa každému systému v organizácii venovala náležitá pozornosť a zvážilo sa jeho zaradenie do dátového skladu.

5. Zostavte projekt okolo základného modelu, aby ste pochopili všeobecný prístup k rozšíreniu dátového modelu.

Základný model by mal pokrývať hlavné dimenzie podnikania a poskytovať prehľad o skutočných údajoch, ktoré môže byť potrebné uložiť.

6. Mapovanie údajov.

a) Mapovanie údajov zo zdroja (zdrojové systémy v organizácii) do cieľovej štruktúry (model skladových údajov).

Musíte definovať zdrojové systémy a vzťahy medzi systémami pre každú dimenziu v dátovom modeli.

b) Mapovanie údajov pre každú funkciu s členmi tímu z obchodnej a IT strany:

Toto mapovanie môže byť potrebné na dvoch úrovniach:

Priame mapovanie zo zdrojových systémov: Väčšina dátových položiek bude mapovaná priamo do dátového modelu. Tu budete musieť určiť zdroj a názvy polí.

Odvodené mapovanie zo zdrojových systémov: Niektoré dátové prvky v modeli môžu vyžadovať aplikáciu obchodných pravidiel na dáta zdrojového systému, aby sa získali presné informácie. Mali by byť jasne zdokumentované.

Pri mapovaní z dvoch alebo viacerých zdrojov by ste mali definovať vzťah medzi týmito zdrojovými systémami.

7. Definícia agregácie.

Jedným z cieľov vytvorenia dátového skladu je získať analytické informácie z historických údajov. Zahŕňa aj vytváranie prediktívnych trendov z údajov. Agregácia definuje vrstvy alebo dimenzie, v ktorých sa údaje analyzujú. Najlepšie je, ak sú agregácie definované na základe informácií (zostavy a dashboardy), ktoré sa majú získať z dátového modelu.

8. Vynechávanie a pomenovanie údajových položiek.

Projektové tímy musia akceptovať, že zdroj nemusí vždy poskytnúť všetky údaje v rámci štandardného modelu. Členovia tímu sa musia rozhodnúť, že tieto prvky buď vylúčia z modelu, alebo si ich ponechajú, ale nebudú ich používať. Preferovaným spôsobom je vynechať irelevantné polia. Mali by sa ponechať nevyužité len vtedy, keď sa očakáva, že budú v budúcnosti užitočné.

9. Vyhlásenie o ďalšom zlepšovaní procesov.

Aj keď samotné dátové sklady nie sú projektom na zlepšenie procesov, môžu priniesť zlepšenie mimo samotného skladu. Nedostatky zaznamenané v procesoch alebo v zdrojových systémoch by sa mali zaznamenať a súčasne opraviť. Zmeny vykonané týmto procesom je však možné vykonať neskôr a nemali by mať vplyv na projekt budovania dátového skladu.

10. Zarovnanie verzie.

Mapové a dátové modely by sa mali prijať ako verzie spojené so zmenami, ako sa projekt vyvíja. Je dôležité sformulovať postup, ako sa týmto zmenám prispôsobiť.

Príliš veľa údajov na ukladanie a analýzu môže byť výzvou pre každú organizáciu, najmä ak vedie k nekonzistentným metrikám. Keď je údajov príliš veľa, musíte sa vysporiadať s konfliktnými údajmi v prehľadoch, vybrať si medzi konfliktnými indikátormi a odstrániť duplicitné záznamy. To si vyžaduje príliš veľa času a zdrojov, najmä v najväčších spoločnostiach, ktoré implementovali príliš veľa dátových skladov alebo dátových trhov, ktoré poskytujú rôzne informácie o rovnakých obchodných procesoch alebo udalostiach.

Tento problém musia riešiť bankové inštitúcie aj podniky reálneho sektora ekonomiky. Na základe ich skúseností môžete nájsť niekoľko univerzálnych odporúčaní.

Zredukujte viacero dátových úložísk na jednu inštanciu

Boeing prešiel týmto procesom, počnúc 12 dátovými skladmi a 50 systémami riadenia nákladov, z ktorých niektoré mali desaťtisíce obchodných pravidiel. „Problémom bolo, že naše IT oddelenie poskytovalo používateľom to, čo potrebovali, no nekomunikovali medzi sebou,“ hovorí Bill Curley z finančného oddelenia Boeingu. Tento nedostatok integrácie bol dôvodom nekonzistentnosti v správach.

Boeingu trvalo niekoľko rokov, kým skonsolidoval všetky svoje finančné výkazy do koherentného celku. Členovia tímu pracujúci na tejto úlohe zvolili prístup zhora nadol – spýtali sa „vlastníkov údajov“, aké informácie potrebujú na vykonanie úlohy, a implementovali štandardný údajový slovník s minimálnym požadovaným minimom. Okrem toho oddelili prevádzkové a skutočné účtovné údaje potrebné na vykazovanie. „Už sme nemuseli zabezpečovať spravodajstvo cez náš účtovný systém,“ hovorí Bill Curley.

Prechod na jednotnú dátovú architektúru na zlepšenie kvality dát

Nad touto úlohou pre viacerých v posledných rokoch prevádzkuje spoločnosť Nike. Aby to mohol urobiť, architekt údajov spoločnosti James Lee odstránil duplicitné údaje, vyplnil chýbajúce polia v tabuľkách a vytriedil sériu zostáv, ktorých generovanie trvalo príliš dlho. „Smerom k jedinej verzii pravdy sme chceli dosiahnuť výraznú flexibilitu, aby obchodné jednotky mohli vytvárať svoje správy bez zapojenia IT oddelenia. Jedným z cieľov bola užívateľská sebestačnosť pri práci s dátami,“ spomína. Jedna z najčastejšie používaných tabuliek Nike mala vyše sto stĺpcov. Bolo to extrémne neefektívne z hľadiska I/O a využitia výpočtový výkon... Nike zjednodušila túto ultraširokú tabuľku a zredukovala svoje dátové modely na menej položiek. Tento proces tiež zlepšil kvalitu údajov, pretože používatelia boli zodpovední za chýbajúce, ale potrebné údajové položky a stali sa aktívnejšími pri ich sledovaní.

Publikácie

  1. Aarti Nyayadish. Projekt Ideal Banking Data Warehousing: 10 krokov pre nastavenie správneho tempa, 15. januára 2013.
  2. David Strom. Ako sa vyrovnať s príliš veľkým množstvom údajov: Ako to urobili Boeing, Nike a ďalší, 23. október 2012.

Do ruského jazyka prichádzajú ročne desiatky slov, usadia sa v ňom a režú nám uši. Anglicizmy sa používajú nemiestne a nevhodne, výrazy strácajú svoje pôvodný význam a presuňte sa do nových oblastí a dlho známe slová sa zrazu objavia v neznámom kontexte – ľahko sa to dá zmiasť. Časopis Strelka robí poriadok v rubrike Slovná zásoba.

Odkiaľ sa to vzalo

Slovo je utvorené z anglického „map“ a k nemu pripojenej prípony –ing. Doslovný preklad - mapovanie, mapovanie a topografické meračstvo. V poslednej dobe sa „mapovanie“ používa v širšom zmysle, presahuje čisto topografické témy.

Čo je napísané v slovníku

"Mapovanie je grafické znázornenie postupu, procesu, štruktúry alebo systému, ktoré odráža umiestnenie alebo vzťahy komponentov a tiež dokumentuje toky, ako sú hotovosť, energia, komodity, informácie, migrácia." (businessdictionary.com)

"Videomapping - používaný aj význam 3D mapping - smer v audiovizuálnom umení, čo je 3D projekcia na fyzický objekt prostredia s prihliadnutím na jeho geometriu a umiestnenie v priestore." (projection-mapping.org)

V zmysle „vizualizácia“ – „spôsob prezentácie informácií vo forme optický obraz(napríklad vo forme obrázkov a fotografií, grafov, schém, štruktúrnych schém, tabuliek, máp atď.). Veľmi efektívne sa používa na znázornenie pôvodne nevizuálnych informácií (napríklad teplota, hustota obyvateľstva, rozloženie úrovní elektromagnetických polí atď.) "(Slovník obchodných pojmov." Akademik.ru "2001)

„Myšlienkové mapovanie je grafická technika založená na využití prirodzenej tendencie mozgu myslieť asociatívne, od stredu po perifériu.“ (mind-mapping.co.uk)

Čo hovoria odborníci

Kuba Snopka, lektora Strelkovho inštitútu, o mapovaní ako nástroji na štúdium mesta

„Mapovanie nenazývam kartografiou, pretože kartografia je etablovaná vedná disciplína a zahŕňa veľmi jasnú metódu. Skrátka: človek ide na nové miesto a aplikuje všetko, čo vidí.

Mapovanie, ktoré používame ako nástroj na štúdium mesta na Strelke, je iné a je odrazom procesov prebiehajúcich v meste. Vytvoríme mapu nad existujúcou a skontrolujeme, čo sa zmenilo od vytvorenia geodetického základu. A každý výskumník môže získať svoju vlastnú mapu toho istého priestoru. Toto je najzaujímavejšia časť: jeden sa môže pozerať len na architektúru, druhý na správanie ľudí, tretí na správanie zvierat či dosah svetla.

Každý projekt pre mňa začína mapou. Bez toho sa nedá pohnúť ďalej. Teraz robím projekt týkajúci sa poľských kostolov. Existuje mapa štyroch tisícok objektov a analýza tejto mapy je najdôležitejšou súčasťou projektu, je to jeho hlavný dokument.

Alexey Rozov, spoluzakladateľ Sila Sveta, na 3D mapovaní

„Podstatou 3D mapovania je, že vytvárame obraz, ktorý sa prekrýva s fyzickým objektom v súlade s jeho tvarmi a architektúrou. Práve to umožňuje upravovať budovu pomocou 3D transformácií alebo zmeny textúr.

Najprv inžinieri vytvoria 3D model budovy. Ak dizajn nie je príliš komplikovaný, potom je možné model vyrobiť tak, že pôjdete na územie a vezmete rozmery. Ak je to napríklad Veľké divadlo, v tomto prípade sa vykoná laserové skenovanie a z výsledného mračna bodov sa vytvorí model.

Pozemné 3D laserové skenovanie fasád / foto: severnpartnership.com

Potom animátor-umelci vytvoria obsah v 3D modelovacích programoch. Kým maľujú, inžinieri robia výpočty, koľko projektorov a koľko energie potrebujú na pokrytie povrchu budovy. Napríklad Veľké divadlo potrebuje 12 projektorov, Manezh - osem a Moskovská štátna univerzita - 86. Tiež sa robia výpočty pre jas a rozlíšenie obrazu. Potom virtuálne nastavenie – nastavenie všetkých projektorov tak, aby tvorili jeden obraz. Keď je obsah pripravený, každý prejde priamo na stránku. Veža pre projektory sa montuje na mieste, požadované servery a inžinieri začnú splošťovať obraz tak, aby dopadol na celú budovu. Počítač so stiahnutým obsahom sa zapne a predstavenie sa začne. Nemali by tam byť žiadne chyby. Ak len veľmi malý, pre bežného diváka neviditeľný. Videl som neúspešné príklady, keď ľudia chceli robiť 3D mapovanie, ale dostali škaredú grafiku, projekcia nezasiahla objekt veľmi presne, svetlo vychádzajúce z projektora bolo nesprávne vypočítané - a ukázalo sa, že všetko vyzerá matne, obraz je pixelovaná a nezdobí, ale naopak iba kazí.

Čas strávený na jednom projekte závisí od mierky budovy a dĺžky videa. Ak napríklad robíte predstavenie pre Moskovskú štátnu univerzitu pol hodiny, potom na jeho vytvorenie priateľsky potrebujete rok, a ak na Veľké divadlo v trvaní troch minút, stačí mesiac alebo dva. pre teba.

Je ťažké povedať, ako rozvinuté je v Rusku v porovnaní s inými krajinami, ale napríklad Moskva každoročne hostí silný festival „Circle of Light“. Dnes je tendencia používať 3D-mapovanie ako interiérový dizajn: v múzeu alebo nákupnom centre sa hosťom pravidelne niekoľkokrát denne predvádzajú predstavenia.

Príklady použitia

„Mapovanie odhaľuje ekonomickú, kultúrnu a politickú hodnotu informácií, ktoré priestor poskytuje. Táto metóda vám umožňuje skombinovať všetky tieto informácie a spojiť ich s konkrétnym miestom. (Časopis Strelka)

"K 125. výročiu vzniku Českej akadémie vied pripravila vizuálnu show - videomapping na svoju historickú budovu v Prahe." (420on.cz)

"Myšlienkové mapy sa do ruštiny prekladajú ako" mapa mysle "," mapa mysle "," pamäťová karta "," mentálne mapy“. Vizualizáciu možno použiť na generovanie nových nápadov, analýzu a organizovanie informácií, robenie poznámok, rozhodovanie a oveľa viac." ("Veda a život")


V predchádzajúcej časti sme sa pozreli na typy vzťahov (one-to-one, one-to-many, many-to-many), ako aj jednu triedu Book a jej mapovaciu triedu BookMap. V druhej časti zaktualizujeme triedu Book, vytvoríme zvyšok tried a vzťahy medzi nimi, ako to bolo ukázané v predchádzajúcej kapitole v Databázovom diagrame, umiestnenom nad podnadpisom 1.3.1 Vzťahy.

Kód tried a mapovania (s komentármi)

Triedna kniha

Verejná triedna kniha (// Jedinečný identifikátor public virtual int Id (get; set;) // Name public virtual string Name (get; set;) // Description public virtual string Description (get; set;) // Hodnotenie Fantastickeho sveta public virtual int MfRaiting (get; set; ) // Čísla stránok public virtual int PageNumber (get; set;) // Odkaz na obrázok public virtual string Image (get; set;) // Dátum príchodu knihy (filtrovať podľa nových položiek!) Public virtual DateTime IncomeDate (get; set; ) // Žáner (Many-to-Many) // Prečo Iset a nie IList? Pomocou výberu JOIN je možné vybrať iba jednu kolekciu (IList), ak na výber JOIN potrebujete viacero kolekcií, potom je lepšie ich previesť na verejnú virtuálnu kolekciu ISet ISet Žánre (získať; nastaviť;) // Séria (Mnoho ku jednej) verejné virtuálne série Séria (získať; nastaviť;) // Názorové a iné (Jedna ku jednej) súkromná myseľ _mind; public virtual Mind Mind (get (return _mind ?? (_mind = new Mind ());) set (_mind = value;)) // Autor (Many-to-Many) public virtual ISet Autori (get; set;) // Inicializácia v predstihu, aby nebola vyvolaná žiadna nulová výnimka. public Book () (// Neusporiadaná množina (v jednej tabuľke nemôžu byť dva úplne rovnaké riadky, inak jeden vyberie a druhý ignoruje) Žánre = new HashSet (); Autori = nový HashSet (); )) // Mapovanie verejnej triedy knihy BookMap: ClassMap (verejná BookMap () (Id (x => x.Id); Mapa (x => x.Name); Mapa (x => x.Description); Mapa (x => x.MfRaiting); Mapa (x = > x.PageNumber); Mapa (x => x.Image); Mapa (x => x.IncomeDate); // Vzťah veľa k mnohým HasManyToMany (x => x.Genres) // Kaskádové pravidlá Všetko – Kedy objekt sa uloží, aktualizuje alebo vymaže, skontroluje a // vytvorí / aktualizuje / pridá všetky závislé objekty Cascade.SaveUpdate () // Názov prechodnej tabuľky MUSÍ byť rovnaký ako trieda Žáner! .Tabuľka ("Kniha_Žáner" ); HasManyToMany (x = > x.Authors) .Cascade.SaveUpdate () .Table ("Book_Author"); // Referencie vzťahu Many-to-One (x => x.Series); // One-to-one vzťah Hlavná trieda HasOne (x => x.Mind) .Cascade.All (). Obmedzené ();))

Public class Autor (public virtual int Id (get; set;) // Krstné meno-Priezvisko public virtual string Name (get; set;) // Biography public virtual string Biografia (get; set;) // Books public virtual ISet Books (get; set;) // Inicializácia autorov public Author () (Books = new HashSet (); )) // Mapovanie autora verejná trieda AuthorMap: ClassMap (verejná Mapa autora () (Id (x => x.Id); Mapa (x => x.Name); Mapa (x => x.Biografia); // Vzťah veľa k mnohým HasManyToMany (x => x .Books) // Kaskádové pravidlá All - Keď sa objekt uloží, aktualizuje alebo odstráni, všetky závislé objekty sa skontrolujú a vytvoria / aktualizujú / pridajú.Cascade.All () // Vlastníkom kolekcie je druhý koniec vzťahu (Kniha) a uloží sa ako prvá .Inverse () // Názov prechodnej tabuľky MUSÍ byť rovnaký ako názov triedy Kniha! .Table ("Kniha_Author");))

Žáner triedy

Public class Žáner (public virtual int Id (get; set;) // Genre name public virtual string Name (get; set;) // anglický názov žánru public virtual string EngName (get; set;) // Books public virtual ISet Books (get; set;) // Inicializácia kníh public Žáner () (Knihy = nový HashSet (); )) // Mapovanie žánrov public class GenreMap: ClassMap (verejná mapa žánru () (Id (x => x.Id); Mapa (x => x.Name); Mapa (x => x.EngName); // vzťah Many-to-many HasManyToMany (x => x .Books) // Kaskádové pravidlá All - Keď sa objekt uloží, aktualizuje alebo odstráni, všetky závislé objekty sa skontrolujú a vytvoria / aktualizujú / pridajú.Cascade.All () // Vlastníkom kolekcie je druhý koniec vzťahu (Kniha) a uloží sa ako prvá .Inverse () // Názov prechodnej tabuľky MUSÍ byť rovnaký ako názov triedy Kniha! .Table ("Kniha_Žáner");))

Názor triedy:

Verejná trieda Mind (public virtual int Id (get; set;) // Môj názor public virtual string MyMind (get; set;) // Fantlab názor public virtual string MindFantLab (get; set;) // Book public virtual Book Book ( get; set;)) // Mind mapping public class MindMap: ClassMap (verejná MindMap () (Id (x => x.Id); Mapa (x => x.MyMind); Mapa (x => x.MindFantLab); // Jeden k jednému vzťahu HasOne (x => x.Kniha ;)))

Cyklus triedy (séria):

Verejná trieda Series (public virtual int Id (get; set;) public virtual string Name (get; set;) // Vytvoril som IList, nie ISet, pretože okrem Booku nie je Series spojená s ničím iným, hoci môže robiť a Isetovať verejný virtuálny IList Books (get; set;) // Inicializácia kníh. verejná séria () (Knihy = nový zoznam (); )) public class SeriesMap: ClassMap (verejná mapa sérií () (Id (x => x.Id); Mapa (x => x.Name); // Vzťah jeden k mnohým HasMany (x => x. Knihy) // // Vlastník zbierky je .druhý koniec vzťahu je (Kniha) a bude uložený ako prvý. .Inverzný ()))

Malé vysvetlenie
verejný virtuálny ISet Žánre (získať; nastaviť;)
verejný virtuálny ISet Autori (získať; nastaviť;)

Prečo ISet a nie je napríklad známy mnohým IListom ? Ak namiesto ISet použijeme IList a pokúsime sa spustiť projekt, potom si nevšimneme veľký rozdiel (vytvoria sa tabuľky a triedy). Ale keď prejdeme do triedy Book LeftJoin súčasne s tabuľkou Genre and Authors a dokonca sa pokúsime zobraziť neduplikované záznamy z tabuľky Book (Distinct Book.Id) do View, Nhibernate vyvolá výnimku a chybu. .
Nie je možné súčasne priniesť viacero tašiek.
V takýchto prípadoch používame ISet, najmä sady sú na to určené (ignorovať duplicitné záznamy).

Vzťah medzi mnohými.

NHibernate má koncept „hlavnej“ tabuľky. Hoci vzťah many-to-many medzi tabuľkami „Kniha“ a „Autor“ je rovnaký (autor môže mať veľa kníh, kniha môže mať veľa autorov), Nhibernate vyžaduje, aby programátor špecifikoval tabuľku, ktorá je uložená ako druhá ( má inverznú ()), to znamená, že najskôr sa vytvorí / aktualizuje / vymaže záznam v tabuľke Kniha a až potom v tabuľke Autor.
Cascade.All znamená vykonávanie kaskádových operácií pri ukladaní, aktualizácii a odstraňovaní. To znamená, že keď je objekt uložený, aktualizovaný alebo vymazaný, všetky závislé objekty sú skontrolované a vytvorené / aktualizované / pridané (Ps. Môžete písať namiesto Cascade.All -> .Cascade.SaveUpdate (). Cascade.Delete ())
Method.Table ("Kniha_Autor"); vytvorí v databáze "strednú" tabuľku "Kniha_Author".

Vzťah veľa k jednému, jeden k mnohým.

Metóda .Constrained () hovorí NHibernate, že pre záznam z tabuľky Book sa musí zhodovať záznam z tabuľky Mind (id tabuľky Mind sa musí rovnať id tabuľky Book)

Ak teraz spustíte projekt a pozriete sa do databázy Bibilioteca, objavia sa nové tabuľky s už vytvorenými odkazmi.

Ďalej vyplňte vytvorené tabuľky údajmi ...
Na tento účel vytvoríme testovaciu aplikáciu, ktorá bude ukladať údaje do databázy, aktualizovať a mazať ich zmenou HomeControlleru nasledovne (vykomentovanie nepotrebných častí kódu):
public ActionResult Index () (pomocou (relácia ISession = NHibernateHelper.OpenSession ()) (pomocou (transakcia ITransaction = session.BeginTransaction ()) (// Vytvoriť, pridať var createBook = nová kniha (); createBook.Name = "Metro2033" ; createBook.Description = "Post-apokalyptický mysticizmus"; createBook.Authors.Add (nový autor (meno = "Glukhovsky")); createBook.Genres.Add (nový žáner (názov = "Post-apokalyptický mysticizmus")); createBook .Series = nová séria (názov = "Metro"); createBook.Mind = nová myseľ (MyMind = "Post-apokalyptický mysticizmus"); session.SaveOrUpdate (createBook); // Aktualizácia (Podľa ID) // var series = relácia .Získať (1); // var updateBook = session.Get (1); //updateBook.Name = "Metro2034"; //updateBook.Description = "Dystopia"; //updateBook.Authors.ElementAt(0).Name = "Glukhovsky"; //updateBook.Genres.ElementAt(0).Name = "Dystopia"; //updateBook.Series = séria; //updateBook.Mind.MyMind = "11111"; //session.SaveOrUpdate(updateBook); // Odstrániť (Podľa ID) // var deleteBook = session.Get (1); //session.Delete(deleteBook); transakcia.Zaviazať sa (); ) Žáner žánerAl = null; Autor autorAl = null; Séria sériaAl = null; Mind mindAl = null; var books = session.QueryOver () // Left Join with Genres table .JoinAlias ​​​​(p => p.Genres, () => .JoinAlias ​​​​(p => p.Authors, () => authorAl, JoinType.LeftOuterJoin) .JoinAlias ​​​​(p => p .Series, () => sériaAl, JoinType.LeftOuterJoin) .JoinAlias ​​​​(p => p.Mind, () => mindAl, JoinType.LeftOuterJoin) // Odstráni duplicitnú knihu ID tabuľky. . TransformUsing (Transformers.DistinctRootEntity). List (); return View (knihy);))

Malé vysvetlenie

  1. var books = session.QueryOver () Vyberte * Z knihy;
  2. .JoinAlias ​​​​(p => p.Genres, () => žánerAl, JoinType.LeftOuterJoin)- ako spustenie SQL skriptu:
    VYBERTE * Z knihy
    vnútorné PRIPOJENIE Book_Genre ON book.id = Book_Genre.Book_id
    LEFT JOIN Žáner ON Book_Genre.Genre_id = Žáner.id
  3. .TransformUsing (Transformers.DistinctRootEntity)- Ako spustenie SQL skriptu: SELECT odlišné Book.Id ..., (odstráni duplicitné záznamy s rovnakým ID)

Typy združení
.JoinAlias ​​​​(p => p.Genres, () => žánerAl, JoinType.LeftOuterJoin)

  1. LeftOuterJoin – vyberie všetky záznamy z ľavej tabuľky ( Kniha) a potom pripojí záznamy pravej tabuľky ( Žáner). Ak sa v pravej tabuľke nenájde žiadny zodpovedajúci záznam, zobrazí sa ako Null
  2. RightOuterJoin je opakom LEFT JOIN – vyberá všetky záznamy z pravej tabuľky ( Žáner) a potom pripojí záznamy ľavej tabuľky ( Kniha)
  3. InnerJoin - vyberie len tie záznamy z ľavých tabuliek ( Kniha), ktorý má zodpovedajúci záznam z pravej tabuľky ( Žáner) a potom k nim pripojí záznamy z pravej tabuľky

Zmeňme pohľad nasledovne:

Indexové zobrazenie

@model IEpočetné množstvo @ (Rozloženie = null;) Index

@ Html.ActionLink ("Vytvoriť nový", "Vytvoriť")

@foreach (položka var v Modeli) ( @ (reťazec strSeries = item.Series! = null? item.Series.Name: null;) }
@ Html.DisplayNameFor (model => model.Name) @ Html.DisplayNameFor (model => model.Mind) @ Html.DisplayNameFor (model => model.Series) @ Html.DisplayNameFor (model => model.Autori) @ Html.DisplayNameFor (model => model.Genres) Operácie
@ Html.DisplayFor (modelItem => item.Name) @ Html.DisplayFor (modelItem => item.Mind.MyMind)@ Html.DisplayFor (modelItem => strSeries) @foreach (var author v item.Authors) (reťazec strAuthor = autor! = null? author.Name: null; @ Html.DisplayFor (modelItem => strAuthor)
}
@foreach (var žáner v item.Genres) (string strGenre = žáner! = null? žáner.Name: null; @ Html.DisplayFor (modelItem => strGenre)
}
@ Html.ActionLink ("Upraviť", "Upraviť", nové (id = item.Id)) | @ Html.ActionLink ("Podrobnosti", "Podrobnosti", nové (id = item.Id)) | @ Html.ActionLink ("Delete", "Delete", new (id = item.Id))




Po skontrolovaní všetkých operácií jeden po druhom si všimneme, že:
  • Operácie Vytvoriť a Aktualizovať aktualizujú všetky údaje súvisiace s tabuľkou Kniha (odstráňte kaskádu = "uložiť-aktualizáciu" alebo kaskádu = "všetky" a súvisiace údaje sa neuložia)
  • Pri vymazávaní sa vymažú údaje z tabuliek Kniha, Myseľ, Kniha_Autor a ostatné údaje sa nevymažú, pretože majú Cascade = "uložiť-aktualizovať"

Mapovanie pre triedy, ktoré majú dedičnosť.
Ako mapovať triedy, ktoré majú dedičnosť? Povedzme, že máme takýto príklad:
// Trieda dvojrozmerných tvarov public class TwoDShape (// Width public virtual int Width (get; set;) // Height public virtual int Height (get; set;)) // Trieda trojuholník public class Triangle: TwoDShape (/ / Identifikačné číslo public virtual int Id (get; set;) // Triangle view public virtual string Style (get; set;))

V princípe na tomto mapovaní nie je nič zložité, jednoducho vytvoríme jedno mapovanie pre odvodenú triedu, teda tabuľku Triangle.
// Mapovanie trojuholníka verejná trieda TriangleMap: ClassMap (verejná TriangleMap () (Id (x => x.Id); Mapa (x => x.Style); Mapa (x => x.Výška); Mapa (x => x.Width);))
Po spustení aplikácie sa v databáze Biblioteca objaví nasledujúca (prázdna) tabuľka

Značky:

  • asp.net mvc 4
  • nhibernovať
  • sql server
Pridať značky