Podatki so običajno povezani s programiranjem in so v sodobnem informacijskem svetu predstavljeni v treh logično enakovrednih različicah: podatki, opisani in uporabljeni v programu v programskem jeziku; podatki v sistemih baz podatkov; podatkov v porazdeljenih informacijskih sistemih. Sodobno programiranje je dalo relativno svobodo le prvi varianti formalizacije informacij. Drugi dve možnosti sta bolj ali manj zanesljivi obliki zagotavljanja informacij in odnosov med njegovimi komponentami.
Podatki pretekli in sedanjost
Osnovni položaj programskih jezikov je natančen opis podatkov in algoritmov. Računalniki ne "predstavijo" nobene možnosti negotovosti: nekaj je treba ukrepati in obstaja ukaz, ki to dejanje izvede.
Sodoben koncept temelji na veliko višjih temeljih: danost je in kaj točno bo, je določeno na mestu njene uporabe. V vsakem primeru se podatki v času uporabe samodejno preverijo in pretvorijo v pravilno vrsto. Sodobni programer ni dolžan skrbeti za njihov predhodni opis in upoštevanje kompatibilnosti tipov v algoritmu.
Postopek prehoda:
- iz vnesenih podatkov in njihovega obveznega opisa pred uporabo;
- za nenatipkane podatke in brez kakršne koli obveznosti opisovanja in uporabe.
Pravzaprav lahko prepoznamo relativno sprostitev formalizacijskih zahtev - na voljo je le v okolju sodobnih programskih orodij. Med izvajanjem je vrsta vsake ničelne točke fiksna in zaporedje ukazov je dobro opredeljeno.
Vrste in modeliranje
Matematika in fizika, trgovina in proizvodnja, ekonomija in druga področja, kjer se uporabljajo številke, so vedno operirali s podatki in pojmu tipa niso pripisovali nobenega pomena. Dejstvo, da so lahko številke cele ali ulomke, v resnici ni bilo pomembno.
Vsaka posebna formula ali določeno dejanje bi lahko dalo celo število, neskončni ulomek, realno ali kompleksno število. Do zdaj obstajajo takšni čudeži uma, kot so neskončno majhna in neskončno velika. Poleg tega imajo ti čudeži celo lastnosti.
Še vedno ni svobode pri programiranju. Vse mora biti strogo formalizirano. Koncept podatkov je najprej vrsta:
- celo število;
- boolean;
- char;
- vrvica in tako naprej.
Imena tipov se lahko razlikujejo v različnih programskih jezikih, vendar vedno obstaja celo število ali realno število, logična vrednost, simbol,vrstico. Še vedno so ostali relikti in posebne ideje: nepodpisano celo število, koda, bajt, beseda, dvojna beseda, niz s fiksno dolžino.
Koncept podatkov v podatkovnem sistemu nima svobode. Jezik SQL - "mednarodni" (za vsako sodobno bazo podatkov obstaja narečje) - ne dopušča nobenih netočnosti ne le v podatkih, ampak tudi v poizvedbah sql. Napaka v zahtevi je jamstvo za odsotnost rezultata. O kršitvah opisov sploh ni treba govoriti.
Modeliranje informacijskih procesov in predstavitev podatkov je edini zanesljiv način za izgradnjo strukture, ki se lahko razvija in prilagaja spreminjajočim se razmeram.
Dinamika originala
Naravni podatki se nenehno spreminjajo. Dati formalni opis in koncept podatkovnega modela na določenem predmetnem področju pomeni rešiti tri probleme:
- določite, kateri podatki so tukaj;
- formalizirajte odnos med njima;
- opišite postopke za spreminjanje podatkov in odnosov.
Primer podatkovnega niza preprostega algoritma v JavaScriptu - pomanjšana kopija modela celo najbolj trdnega sistema za upravljanje baz podatkov.
Le v drugem primeru strokovnjaki in strokovnjaki pri oblikovanju podatkovnih struktur, tabel in odnosov običajno ne vidijo (res težko je pokriti veliko količino naravnih informacij) bistva stvari in dobi se okoren, nerazvit nabor kopic podatkov, medtem ko izvorne informacije na predmetnem področju prosto in enostavno krožijo.
Statičnomožno
Običajna praksa JavaScript je vključitev kode, priložene strani, in funkcij, dodeljenih dogodkom na oznakah strani. Kakorkoli že, oznake strani definirajo podatke, ki jih določen spletni vir sprejme, spremeni ali ustvari.
Če svojo kodo za upravljanje zelo previdno osredotočite na dogodke elementov in ne na kodo strani kot celoto, je to najboljši izhod. Idealno je, če koda ne uvaja novih podatkov ali ne popravi razpoložljivih podatkov, ampak se osredotoča na to, kaj točno ima v določenem trenutku.
Pravzaprav, če definirate koncept "podatki" kot minimalno statičen opis izvornih informacij in mu sledite, potem to pomeni, da imate možnosti za uspeh.
V zvezi z bazami podatkov so stvari veliko bolj zapletene. Vsaka koda JavaScript strani "oskrbuje" funkcionalnost. Vsaka baza podatkov je zbirka tabel, odnosov med njimi, shranjenih postopkov, poizvedb in funkcionalnosti, ki so na voljo od zunaj.
Statičnost je težava vsakega algoritma. Sodobni koncept podatkov je statičen: število, niz, znak itd. Pri obdelavi ali pri pisanju v tabelo baze podatkov se vse izkaže gladko. Kdaj pa izvirnik pridobi drugačno razsežnost ali pomen? Možnost ena: spremenite znak, vendar lahko povezave in zahteve takoj pridejo.
Statika in predmeti
Definiranje koncepta "podatkov" kot predmeta dramatično spremeni situacijo. Objekt ima svojo strukturo. Tukaj lahko uporabite poljuben opis poljubnih spremenljivk. Vloga ne bo igrala. Objekt ima metode, prek katerih so na voljo podatki. Od vsegauporablja na področju programiranja, torej tri osnovne metode: branje, pisanje, spreminjanje. Dodate lahko več za primerjavo, iskanje, kloniranje itd.
Temsko področje vsakemu podatku nalaga vrsto lastnosti. Tako se izkaže, da se koncept podatkov spremeni v nekakšen opis, ki ga je mogoče dinamično spreminjati. Statičnost znotraj predmeta daje dinamiko zunaj njega.
Če spremenite kombinacijo statičnih deskriptorjev znotraj predmeta, vam ni treba skrbeti za dinamiko njegovih odnosov z drugimi predmeti.
Programiranje in predstavitev podatkov
Kaj so podatki? Javna zavest je informacijske tehnologije že vajena, deluje v oblakih in ima kontejnerje v virtualnih prostorih. Zdaj niso samo profesionalni programerji in uporabniki, ampak tudi navadni ljudje pristojni za informacije in njihovo uporabo.
Toda kaj je programiranje? Do danes javno mnenje daje naslednjo definicijo tega koncepta in njegovih konceptov:
- Informacije in podatki so osnovni koncepti, ki se uporabljajo v računalništvo.
- Podatki so na določen način sprejeta in zabeležena opazovanja glede na okoliško realnost.
- So enostavni in zapleteni (strukture), primarni in sekundarni.
- Podatkovna baza je zbirka neodvisnih materialov, predstavljenih na sistematičen način, tako da jih je mogoče najti, spreminjati in uporabljati.
Kako objektivno je to? Avtoritativni avtorjimislim tako. Prava praksa zagotavlja, da vsako predmetno področje določi svoj pravilen podatkovni sistem in daje vsako priložnost za izgradnjo dobrega dinamičnega modela.
Ni nenavadno, da stranka (potrošnik) programerju (oblikovalcu baze podatkov) vsiljuje svoje mnenje o tem, kako in kaj storiti. Z vidika programiranja se lahko vsaka želja naročnika izpolni z največjo natančnostjo.
Potrebujem Oracle za rešitev problema proračuna za vzdrževanje podeželske oskrbe z vodo (stavba 21 v vasi) - dobro. MySQL je potreben za organizacijo sistema sledenja poštnim pošiljkam za vse poštne urade v Rusiji - tudi vse bo delovalo.
Vedno lahko sestavite kateri koli algoritem in omogočite dostop do kakršne koli predstavitve informacij v okviru definicije koncepta podatkov, ki jo vzpostavi razvijalec sistema za upravljanje baze podatkov ali programskega jezika. Vprašanje je drugačno: kako to narediti z minimalnimi stroški v največji dinamiki?
Baze podatkov, primeri
Preprosta osnova je ustvarjena brez modela. Osnovni koncepti podatkov in komunikacije so majhni, funkcionalnost je zelo preprosta. Na primer, za visokošolsko institucijo potrebujete:
- miza učiteljev;
- tabela skupine (številka ključa in skupine);
- splošna tabela študentov (uporabljeni so skupinski ključi).
Dekan želi vedeti, kako napredujejo učitelji. Tabela za učitelje ima polja:
- priimek;
- ime;
- patronim;
- številka nadzorovane skupine.
Študentska miza ima polja:
- priimek;
- ime;
- patronim;
- datum rojstva;
- GPA (za vse predmete);
- številka skupine.
Obstajata lahko vsaj dve možnosti za vzorčenje: z imenom učitelja lahko greste na številko skupine in si ogledate vse učence in njihove povprečne ocene ali po priimku učitelja in priimku ime študenta, lahko vidite povprečno oceno zadnjega.
Tudi v tako preprosti različici so težave zagotovljene in nekaj bo treba spremeniti. Situacija: učitelj je zbolel, nadomešča ga še en mesec, kar pomeni, da nadzoruje dve skupini. V tabeli učiteljev je pod eno številko skupine samo eno polje.
Za rešitev težave morate dodati podvojeno polje. In če dva zbolita, dodajte tri polja. Tako začne miza učiteljev rasti iz nič.
Na voljo je še ena možnost: zamenjajte številsko polje skupinskega ključa s simboličnim. Nato boste morali vsakič, ko izberete, pretvoriti niz v zaporedje ključev in ena poizvedba sql se bo spremenila v več.
Bolj obetaven primer ni izdelava tabel, ampak izdelovanje predmetov. Potem je učitelj objekt in ima lahko več nadzorovanih skupin. Vendar je vedno en predmet. Objekt učitelj ima edinstven ključ, vendar ima lahko več nadzorovanih skupin. Skupina ima tudi edinstven ključ. Tudi študent.
Vsi trije položaji niso na voljo samo znotraj naloge, ampak jih je mogoče dodatno razviti.
Objektno usmerjene baze
Voditelji informacijske industrijeponujajo klasične relacijske baze podatkov. Preizkušeno jih je življenje, delujejo, so varni, zanesljivi in vam v primeru težav omogočajo obnovitev informacij.
Objektno usmerjene baze podatkov (OODB) so se začele razvijati sredi osemdesetih let in so po mnenju avtoritativnih avtorjev obetavne še danes. Toda zaenkrat, razen temeljnih teorij in konceptualnih določil, ni OODB, ki bi dosegel enako oceno in distribucijo kot MySQL, MS SQL Server ali Oracle v vseh svojih različnih inkarnacijah.
Kaj pa, če definicijo, koncept podatkov, tipov, atributov, razredov, hierarhij predlaga razvijalec, katerega ocena ni zadostna za ustvarjanje skupnosti programerjev, ki izpovedujejo miselnost tega OODB? Zanašati se bomo morali na lastno moč.
V okolju Linux je bilo ustvarjenih več kot trideset različic OODB. Kje pa je zagotovilo, da ustvarjena baza podatkov ne bo zahtevala več funkcionalnosti? Okolje Windows na tem področju ne ponuja veliko jamstev.
Objektno usmerjena rešitev
Vendar obstaja rešitev. Z uporabo MySQL kot primera lahko pokažete, kako se standardne relacijske tabele spremenijo v objektno usmerjen model problema, ki se rešuje.
Tu ni baze podatkov, obstaja pa okolje za oblikovanje lastnega sistema objektov. Moč MySQL se uporablja samo kot relacijski pomnilnik za tabele iz informacijskih vrstic. Logiko uporabe določi razvijalec sam. Zlasti obstaja tabela is_cache. Ima vseveč osnovnih polj:
- koda_lasnika;
- session_code;
- h_code;
- a_surprise;
- a_contents.
Preostala polja imajo storitvene funkcije. Ta tabela stoji na vhodu katere koli zahteve in beleži njen prihod. Kaj bo model baze podatkov deloval, določi njegov razvijalec. Kaj bo ustrezalo polju vsebine (a_contents), je odvisno od predmetov modela, ki ga je ustvaril razvijalec.
V tej ideji so štiri stvari: zadetek, seja zadetkov, koda zgodovine zadetkov in posebna vsebina. Kaj je klic, kakšen sistem objektov je treba zgraditi - določi razvijalec. Kaj pomeni seja (delovni proces), določi razvijalec. Zgodovinska koda je možnost vrnitve na zahteve.
Tabele tukaj nimajo nobene zveze s predmetnim področjem. Obstaja krmilnik klicev (is_cache), obstaja beleženje (is_customs), obstaja zgodovina klicev (is_histories). Preostale tabele so določene glede na rešeno nalogo.
Pravzaprav ta rešitev predlaga ustvarjanje lastnega OODB na podlagi vgrajenega modela baze podatkov domene in težave, ki se rešuje. Tu je velik plus - to je vaš lasten koncept podatkov, vaš lasten model njihove predstavitve in odnos med njimi. Tu je temelj - odlična relacijska baza podatkov. Ne bo težav pri iskanju nečesa in nerazumevanju nečesa.
Model: objektni sistem + DBMS
V informacijski tehnologiji je skoraj nemogoče ničesar spremeniti. Prava informacijska revolucija je še daleč. poklicna zavestRazvijalci programske opreme ne bodo spremenili klasičnih tradicij. Ampak še vedno obstaja izhod iz situacije.
Z uporabo zanesljivih sodobnih sistemov za upravljanje baz podatkov kot osnove za ustvarjanje okolja za obstoj lastnega modela lahko dosežete opazen uspeh.
V vsakem primeru boste morali zgraditi pogled ali podatkovni model, da boste rešili nalogo, vendar morate to narediti pravilno: naj bo sistem objektov, dobro DBMS pa njegovo okolje.