Data jsou obvykle spojena s programováním a v moderním informačním světě jsou prezentována ve třech logicky ekvivalentních verzích: data popsaná a použitá v programu v programovacím jazyce; data v databázových systémech; data v distribuovaných informačních systémech. Moderní programování dalo relativní volnost pouze první variantě formalizace informací. Druhé dvě možnosti jsou více či méně spolehlivé formy poskytování informací a vztahů mezi jejich složkami.
Údaje v minulosti a současnosti
Základní pozicí programovacích jazyků je přesný popis dat a algoritmů. Počítače „nepředstavují“žádnou šanci na nejistotu: existuje něco, podle čeho je třeba jednat, a existuje příkaz, který tuto akci provede.
Moderní pojetí je založeno na mnohem vyšším základu: je dáno a co přesně bude, se určuje v místě jeho použití. V každém případě se při používání data automaticky zkontrolují a převedou na správný typ. Moderní programátor není povinen starat se o jejich předběžný popis a dodržování typové kompatibility v algoritmu.
Proces přechodu:
- ze zadaných dat a jejich povinného popisu před použitím;
- k nezadaným datům a osvobození od jakékoli povinnosti je popisovat a používat.
Ve skutečnosti můžeme rozpoznat relativní uvolnění formalizačních požadavků - je k dispozici pouze v prostředí moderních programovacích nástrojů. Za běhu je typ každého data pevně daný a sekvence příkazů je dobře definovaná.
Typy a modelování
Matematika a fyzika, obchod a výroba, ekonomie a další oblasti, kde se čísla používají, vždy operovaly s daty a nepřikládaly pojmu typu žádný význam. Skutečnost, že čísla mohou být celá nebo zlomková, nehrála žádnou roli.
Každý konkrétní vzorec nebo konkrétní akce může dát celé číslo, nekonečný zlomek, reálné nebo komplexní číslo. Až dosud existují takové zázraky mysli, jako jsou nekonečně malé a nekonečně velké. Navíc tyto zázraky mají dokonce vlastnosti.
V programování stále není žádná svoboda. Vše musí být přísně formalizováno. Koncept dat je především typ:
- integer;
- boolean;
- char;
- řetězec a tak dále.
Názvy typů se mohou v různých programovacích jazycích lišit, ale vždy existuje celé číslo nebo reálné číslo, booleovská hodnota, symbol,čára. Stále zbývají relikvie a konkrétní nápady: celé číslo bez znaménka, kód, byte, slovo, dvojité slovo, řetězec pevné délky.
Koncept dat v datovém systému nemá žádnou svobodu. Jazyk SQL – „mezinárodní“(pro každou moderní databázi existuje dialekt) – netoleruje žádné nepřesnosti nejen v datech, ale ani v sql dotazech. Chyba v požadavku je zárukou absence výsledku. O porušení popisů není třeba vůbec mluvit.
Modelování informačních procesů a reprezentace dat je jediný jistý způsob, jak vybudovat strukturu, která se může vyvíjet a přizpůsobovat měnícím se podmínkám.
Dynamika originálu
Přirozené informace se neustále mění. Podat formální popis a koncept datového modelu v konkrétní předmětné oblasti znamená vyřešit tři problémy:
- definujte, jaká data jsou zde;
- formalizovat vztah mezi nimi;
- popište procesy pro změnu dat a vztahů.
Příklad datové sady jednoduchého algoritmu v JavaScriptu – zmenšená kopie modelu i toho nejspolehlivějšího systému správy databází.
Jen v tom druhém případě odborníci a specialisté při navrhování datových struktur, tabulek a vztahů většinou nevidí (je opravdu těžké pokrýt velké množství přirozených informací) podstatu věcí a získává se těžkopádný, nerozvinutý soubor hromad dat, zatímco zdrojové informace v předmětové oblasti volně a snadno kolují.
Statickémožné
Běžnou praxí JavaScriptu je zahrnout kód připojený ke stránce a funkce přiřazené událostem ve značkách stránek. Ať tak či onak, značky stránky definují data, která daný webový zdroj přijímá, upravuje nebo vytváří.
Pokud svůj obslužný kód velmi pečlivě soustředíte na události prvku a ne na kód stránky jako celek, je to nejlepší cesta ven. V ideálním případě, když kód nezavádí nová data nebo neopravuje dostupná data, ale zaměřuje se na to, co přesně má v konkrétním okamžiku.
Ve skutečnosti, pokud definujete pojem „data“jako minimálně statický popis zdrojové informace a budete se jím řídit, pak to znamená, že máte šanci na úspěch.
Pokud jde o databáze, věci jsou mnohem složitější. Jakýkoli kód JavaScript „poskytuje“stránce funkčnost. Jakákoli databáze je kolekce tabulek, vztahů mezi nimi, uložených procedur, dotazů a funkcí dostupných zvenčí.
Statický je problém každého algoritmu. Moderní pojetí dat je statické: číslo, řetězec, znak a tak dále. Při zpracování nebo při zápisu do databázové tabulky jde vše hladce. Kdy ale originál získává jiný rozměr nebo význam? Možnost jedna: změňte znaménko, ale připojení a požadavky mohou okamžitě zapadnout.
Statika a objekty
Definování pojmu „data“jako objektu dramaticky mění situaci. Objekt má svou vlastní strukturu. Zde můžete použít libovolný popis libovolných proměnných. Role nebude hrát. Objekt má metody, jejichž prostřednictvím jsou data dostupná. Od všehopoužívané v oblasti programování, tedy tři základní metody: čtení, zápis, změna. Můžete přidat další k porovnání, vyhledávání, klonování atd.
Předmět určuje každému datu řadu vlastností. Ukazuje se tedy, že pojem data se transformuje do druhu popisu, který lze dynamicky měnit. Statika uvnitř objektu dává dynamiku mimo něj.
Změnou kombinace statických deskriptorů uvnitř objektu se nemusíte starat o dynamiku jeho vztahů s jinými objekty.
Programování a prezentace dat
Co jsou data? Veřejné povědomí je již zvyklé na informační technologie, pracuje v cloudu a má kontejnery ve virtuálních prostorech. Nyní jsou nejen profesionální programátoři a uživatelé, ale i obyčejní lidé kompetentní v otázkách informací a jejich použití.
Co je ale programování? Dodnes veřejné mínění dává tomuto pojmu a jeho konceptům následující definici:
- Informace a data jsou základní pojmy používané v informatice.
- Data jsou určitým způsobem přijímaná a zaznamenávaná pozorování ve vztahu k okolní realitě.
- Jsou jednoduché a složité (struktury), primární a sekundární.
- Databáze je sbírka nezávislých materiálů prezentovaných systematickým způsobem, takže je lze najít, upravit a použít.
Jak je to objektivní? Autoritativní autořimyslím, že ano. Skutečná praxe má tendenci zajistit, že každá předmětná oblast určí svůj správný datový systém a poskytne každou příležitost k vytvoření dobrého dynamického modelu.
Není neobvyklé, že zákazník (spotřebitel) vnucuje programátorovi (designérovi databáze) svůj vlastní názor na to, jak a co má dělat. Z hlediska programování může být jakékoliv přání zákazníka splněno s maximální přesností.
Potřebuji Oracle k vyřešení problému rozpočtování údržby venkovských zásobování vodou (budova 21 ve vesnici) - dobře. MySQL je potřeba k organizaci systému sledování poštovních zásilek na všech poštách v Rusku – vše bude také fungovat.
Vždy můžete sestavit jakýkoli algoritmus a poskytnout přístup k jakékoli reprezentaci informací v rámci definice pojmu data, kterou stanoví vývojář systému správy databází nebo programovacího jazyka. Otázka je jiná: jak to udělat s minimálními náklady při maximální dynamice?
Databáze, příklady
Jednoduchý základ je vytvořen bez modelu. Základní pojmy data a komunikace jsou malé, funkčnost je velmi jednoduchá. Například pro vysokoškolskou instituci potřebujete:
- tabulka učitelů;
- tabulka skupin (klíč a číslo skupiny);
- obecná tabulka studentů (použijí se skupinové klíče).
Děkan chce znát pokroky učitelů. Tabulka učitelů má pole:
- příjmení;
- name;
- patronymic;
- číslo dozorované skupiny.
Stůl studentů má pole:
- příjmení;
- name;
- patronymic;
- datum narození;
- GPA (pro všechny předměty);
- číslo skupiny.
Pro vzorkování mohou být alespoň dvě možnosti: pomocí jména učitele můžete přejít na číslo skupiny a zobrazit všechny studenty a jejich průměrné skóre, nebo podle příjmení učitele a posledního jméno studenta, můžete vidět průměrné skóre posledního.
I v takto jednoduché verzi jsou problémy zaručeny a bude se muset něco změnit. Situace: učitel onemocněl, střídá ho další měsíc, to znamená, že dohlíží na dvě skupiny. V tabulce učitelů je pod jedním číslem skupiny pouze jedno pole.
Chcete-li problém vyřešit, musíte přidat duplicitní pole. A když onemocní dva, tak přidejte tři pole. Stůl učitelů tedy začíná růst od nuly.
Je zde další možnost: nahradit číselné pole skupinového klíče symbolickým. Poté, pokaždé, když vyberete, budete muset převést řetězec na sekvenci klíčů a jeden dotaz SQL se změní na několik.
Slibnějším příkladem není vytvářet tabulky, ale vytvářet předměty. Pak je učitel objektem a může mít několik skupin pod dohledem. Vždy jde ale o jeden objekt. Objekt učitel má jedinečný klíč, ale může mít více skupin pod dohledem. Skupina má také jedinečný klíč. Také student.
Všechny tři pozice jsou nejen dostupné v rámci úkolu, ale lze je dále rozvíjet.
Objektově orientované základny
Vůdci informačního průmyslunabízejí klasické relační databáze. Jsou testovány životem, fungují, jsou bezpečné, spolehlivé a v případě problémů umožňují obnovit informace.
Objektově orientované databáze (OODB) se začaly vyvíjet v polovině 80. let a podle autoritativních autorů jsou perspektivní dodnes. Ale zatím, kromě základních teorií a koncepčních ustanovení, neexistuje žádná OODB, která by dosáhla stejného hodnocení a distribuce jako MySQL, MS SQL Server nebo Oracle ve všech svých rozmanitých inkarnacích.
Co když ale definici, koncept dat, typů, atributů, tříd, hierarchií navrhne vývojář, jehož hodnocení je nedostatečné k vytvoření komunity programátorů, kteří vyznávají mentalitu této OODB? Budeme se muset spolehnout na vlastní síly.
V prostředí Linuxu bylo vytvořeno více než třicet variant OODB. Kde je ale záruka, že vytvořená databáze nebude vyžadovat další funkčnost? Prostředí Windows nenabízí v této oblasti mnoho záruk.
Objektově orientované řešení
Existuje však řešení. Pomocí MySQL jako příkladu můžete ukázat, jak se standardní relační tabulky promění v objektově orientovaný model řešeného problému.
Neexistuje zde žádná databáze, ale existuje prostředí pro vytvoření vlastního systému objektů. Síla MySQL se využívá pouze jako relační paměť pro tabulky z informačních řádků. Logiku použití si určuje vývojář sám. Konkrétně existuje tabulka is_cache. Má všechnoněkolik základních polí:
- owner_code;
- session_code;
- h_code;
- a_surprise;
- a_contents.
Zbytek polí nese servisní funkce. Tato tabulka stojí na vstupu jakéhokoli požadavku a zaznamenává jeho příchod. Jak bude databázový model fungovat, určuje jeho vývojář. Co se vejde do pole obsahu (a_contents), je určeno objekty modelu vytvořeného vývojářem.
Tento nápad obsahuje čtyři věci: zásah, relace zásahu, kód historie zásahu a konkrétní obsah. Co je volání, jaký systém objektů by měl být postaven - určuje developer. Co se rozumí relací (pracovním procesem), určuje vývojář. Kód historie je možnost vrátit se zpět na požadavky.
Tabulky zde nemají nic společného s předmětem. Existuje ovladač hovorů (is_cache), existuje protokolování (is_customs), existuje historie hovorů (is_histories). Zbývající tabulky jsou určeny řešeným úkolem.
Ve skutečnosti toto řešení navrhuje vytvořit si vlastní OODB na základě vytvořeného modelu databáze domény a řešeného problému. Zde je obrovské plus – jedná se o vlastní pojetí dat, vlastní model jejich prezentace a vztahu mezi nimi. Je zde základ – skvělá relační databáze. Nebude problém něco hledat a něčemu neporozumět.
Model: objektový systém + DBMS
V informačních technologiích je téměř nemožné cokoliv změnit. Skutečná informační revoluce je ještě daleko. profesionální vědomívývojáři softwaru nehodlají měnit klasické tradice. Ale stále existuje cesta ven ze situace.
Použitím spolehlivých moderních systémů pro správu databází jako základu pro vytvoření prostředí pro existenci vlastního modelu můžete dosáhnout znatelného úspěchu.
V každém případě budete muset vytvořit pohled nebo datový model k vyřešení úkolu, ale musíte to udělat správně: ať je to systém objektů a dobrý DBMS je jeho prostředí.