Data liittyy yleensä ohjelmointiin ja nykyaikaisessa informaatiomaailmassa esitetään kolmessa loogisesti vastaavassa versiossa: ohjelmassa ohjelmointikielellä kuvattu ja käytetty tieto; tietokantajärjestelmissä olevat tiedot; tiedot hajautetuissa tietojärjestelmissä. Nykyaikainen ohjelmointi on antanut suhteellisen vapauden vain tiedon formalisoinnin ensimmäiselle variantille. Kaksi toista vaihtoehtoa ovat enemmän tai vähemmän luotettavia tapoja tarjota tietoa ja suhteita sen komponenttien välillä.
Aiemmat ja nykyiset tiedot
Ohjelmointikielten perusasema on tietojen ja algoritmien tarkka kuvaus. Tietokoneet eivät "esitä" mitään epävarmuuden mahdollisuutta: on jotain, johon voidaan toimia, ja on komento, joka suorittaa sen.
Nykyaikainen konsepti perustuu paljon korkeammalle perustalle: on olemassa, ja mikä siitä tarkalleen tulee, määräytyy sen käyttöpaikassa. Joka tapauksessa tiedot tarkistetaan automaattisesti käytön yhteydessä ja muunnetaan oikeaan tyyppiin. Nykyajan ohjelmoijalla ei ole velvollisuutta huolehtia niiden alustavasta kuvauksesta ja tyyppiyhteensopivuuden noudattamisesta algoritmissa.
Siirtymäprosessi:
- kirjoitetuista tiedoista ja sen pakollisesta kuvauksesta ennen käyttöä;
- kirjoittamattomiin tietoihin ja vapauteen kaikista velvollisuuksista kuvata ja käyttää sitä.
Itse asiassa voimme tunnistaa formalisointivaatimusten suhteellisen lieventymisen - se on saatavilla vain nykyaikaisten ohjelmointityökalujen ympäristössä. Ajon aikana kunkin peruspisteen tyyppi on kiinteä ja komentosekvenssi on hyvin määritelty.
Tyypit ja mallinnus
Matematiikka ja fysiikka, kauppa ja tuotanto, taloustiede ja muut alat, joilla numeroita käytetään, ovat aina toimineet datan kanssa eivätkä pitäneet tyypin käsitettä tärkeänä. Sillä, että luvut voivat olla kokonaisia tai murtolukuja, ei ollut väliä.
Jokainen tietty kaava tai tietty toiminta voi antaa kokonaisluvun, äärettömän murtoluvun, reaali- tai kompleksiluvun. Tähän asti on olemassa sellaisia mielen ihmeitä kuin äärettömän pieniä ja äärettömän suuria. Lisäksi näillä ihmeillä on jopa ominaisuuksia.
Ohjelmointiin ei vieläkään ole vapautta. Kaiken on oltava tiukasti muodollista. Tietojen käsite on ensinnäkin tyyppi:
- kokonaisluku;
- boolean;
- char;
- merkkijono ja niin edelleen.
Tyyppien nimet voivat vaihdella eri ohjelmointikielissä, mutta aina on olemassa kokonaisluku tai reaaliluku, looginen arvo, symboli,linja. Jäljellä on vielä jäänteitä ja erityisiä ideoita: etumerkitön kokonaisluku, koodi, tavu, sana, kaksoissana, kiinteäpituinen merkkijono.
Tietojen käsitteellä tietojärjestelmässä ei ole vapautta. SQL-kieli - "kansainvälinen" (jokaiseen nykyaikaiseen tietokantaan on murre) - ei siedä epätarkkuuksia ei vain tiedoissa, vaan myös sql-kyselyissä. Virhe pyynnössä on tae tuloksen puuttumisesta. Kuvausrikkomuksista ei tarvitse puhua ollenkaan.
Tietoprosessien ja dataesitysten mallintaminen on ainoa varma tapa rakentaa rakenne, joka voi kehittyä ja mukautua muuttuviin olosuhteisiin.
Alkuperäisen dynamiikka
Luonnollinen tieto on jatkuvaa muutosta. Tietomallin muodollisen kuvauksen ja käsitteen antaminen tietyllä aihealueella tarkoittaa kolmen ongelman ratkaisemista:
- määritä mitä dataa tässä on;
- virallistaa heidän välinen suhde;
- kuvaile tietojen ja suhteiden muuttamisprosesseja.
Esimerkki yksinkertaisen JavaScript-algoritmin tietojoukosta - supistettu kopio jopa vakaimman tietokannan hallintajärjestelmän mallista.
Se on vain niin, että toisessa tapauksessa asiantuntijat ja asiantuntijat eivät yleensä tietorakenteita, taulukoita ja suhteita suunnitellessaan näe (suuren määrän luonnollista tietoa on todella vaikea kattaa) asioiden olemusta, ja saadaan hankala, kehittymätön joukko tietokasoja, kun taas aihealueella lähdetieto liikkuu vapaasti ja helposti.
Staattinenmahdollista
Yleinen JavaScript-käytäntö on sisällyttää sivulle liitettyä koodia ja tapahtumiin määritettyjä toimintoja sivun tunnisteisiin. Joka tapauksessa sivutunnisteet määrittelevät tiedot, jotka tietty verkkoresurssi hyväksyy, muokkaa tai luo.
Jos keskität käsittelijäkoodisi erittäin huolellisesti elementtitapahtumiin, etkä sivukoodiin kokonaisuudessaan, tämä on paras tapa päästä eroon. Ihannetapauksessa, kun koodi ei tuo uutta tietoa tai ei korjaa saatavilla olevaa dataa, vaan keskittyy siihen, mitä sillä tarkalleen ottaen on tietyllä hetkellä.
Itse asiassa, jos määrittelet "datan" käsitteen lähdetiedon minimaalisen staattisen kuvauksen ja noudatat sitä, sinulla on mahdollisuus menestyä.
Tietokantojen os alta asiat ovat paljon monimutkaisempia. Mikä tahansa JavaScript-koodi "tarjoaa" sivulle toimintoja. Mikä tahansa tietokanta on kokoelma taulukoita, niiden välisiä suhteita, tallennettuja proseduureja, kyselyitä ja toimintoja, jotka ovat saatavilla ulkopuolelta.
Staattinen on minkä tahansa algoritmin ongelma. Nykyaikainen tiedon käsite on staattinen: numero, merkkijono, merkki ja niin edelleen. Käsittelyssä tai tietokantataulukkoon kirjoitettaessa kaikki sujuu sujuvasti. Mutta milloin alkuperäinen saa toisen ulottuvuuden tai merkityksen? Vaihtoehto yksi: vaihda merkki, mutta yhteydet ja pyynnöt voivat putoaa välittömästi.
Statiikka ja objektit
Tiedon käsitteen määritteleminen objektiksi muuttaa tilannetta dramaattisesti. Objektilla on oma rakenne. Tässä voit käyttää mitä tahansa kuvausta mistä tahansa muuttujasta. Roolia ei pelata. Objektilla on menetelmät, joiden kautta data on saatavilla. Kaikesta lähtienkäytetään ohjelmoinnin alalla, eli kolmella perusmenetelmällä: lue, kirjoita, muuta. Voit lisätä lisää vertailua, hakua, kloonaamista jne.
Aihealue määrää jokaiselle tiedolle joukon ominaisuuksia. Siten käy ilmi, että tiedon käsite muuttuu eräänlaiseksi kuvaukseksi, jota voidaan muuttaa dynaamisesti. Staattisuus kohteen sisällä antaa dynamiikkaa sen ulkopuolella.
Muutat staattisten kuvaajien yhdistelmää objektin sisällä, sinun ei tarvitse huolehtia sen suhteiden dynamiikasta muihin objekteihin.
Tiedon ohjelmointi ja esittäminen
Mitä data on? Yleinen tietoisuus on jo tottunut tietotekniikkaan, toimii pilvissä ja sillä on kontteja virtuaalisissa tiloissa. Nyt ei vain ammattiohjelmoijat ja käyttäjät, vaan myös tavalliset ihmiset ovat päteviä tiedon ja sen käytön kysymyksissä.
Mutta mitä on ohjelmointi? Tähän päivään asti yleinen mielipide antaa tälle käsitteelle ja sen käsitteille seuraavan määritelmän:
- Tieto ja data ovat tietojenkäsittelytieteen peruskäsitteitä.
- Data on tietyllä tavalla vastaanotettu ja tallennettu havainto suhteessa ympäröivään todellisuuteen.
- Ne ovat yksinkertaisia ja monimutkaisia (rakenteita), ensisijaisia ja toissijaisia.
- Tietokanta on kokoelma itsenäisiä materiaaleja, jotka esitetään systemaattisesti niin, että niitä voidaan löytää, muokata ja käyttää.
Kuinka objektiivista tämä on? Arvov altaiset kirjoittajatajattele niin. Todellinen käytäntö pyrkii varmistamaan, että jokainen aihealue määrittää oikean tietojärjestelmänsä ja antaa kaikki mahdollisuudet hyvän dynaamisen mallin rakentamiseen.
Ei ole harvinaista, että asiakas (kuluttaja) pakottaa ohjelmoijalle (tietokannan suunnittelijalle) oman mielipiteensä siitä, miten ja mitä tehdä. Ohjelmoinnin kann alta mikä tahansa asiakkaan toive voidaan toteuttaa äärimmäisellä tarkkuudella.
Tarvitsee Oraclen maaseudun vesihuollon budjetointiongelman (kylän rakennus 21) - hyvä. MySQL tarvitaan postin lähetysten seurantajärjestelmän järjestämiseen kaikille Venäjän postitoimistoille - kaikki toimii myös.
Voit aina laatia minkä tahansa algoritmin ja tarjota pääsyn mihin tahansa tiedon esitykseen tietokäsitteen määritelmän mukaisesti, jonka tietokannan hallintajärjestelmän tai ohjelmointikielen kehittäjä on määrittänyt. Kysymys on erilainen: miten se tehdään mahdollisimman pienin kustannuksin maksimidynamiikassa?
Tietokastot, esimerkit
Yksinkertainen pohja luodaan ilman mallia. Datan ja viestinnän peruskäsitteet ovat pieniä, toiminnallisuus hyvin yksinkertainen. Esimerkiksi korkeakoulua varten tarvitset:
- opettajien taulukko;
- ryhmätaulukko (avain ja ryhmän numero);
- yleinen opiskelijoiden taulukko (käytetään ryhmänäppäimiä).
Dekaani haluaa tietää opettajien edistymisen. Opettajataulukossa on kentät:
- sukunimi;
- nimi;
- patronyymi;
- valvotun ryhmän numero.
Opiskelijataulukossa on kentät:
- sukunimi;
- nimi;
- patronyymi;
- syntymäaika;
- GPA (kaikki oppiaineet);
- ryhmänumero.
Otantovaihtoehtoa voi olla ainakin kaksi: opettajan nimen avulla voit siirtyä ryhmän numeroon ja nähdä kaikki opiskelijat ja heidän keskiarvonsa tai opettajan sukunimen ja viimeisen opiskelijan nimen, näet viimeisen oppilaan keskimääräisen pistemäärän.
Jopa näin yksinkertaisessa versiossa ongelmat ovat taattuja ja jotain on muutettava. Tilanne: opettaja sairastui, toinen kuukausi korvaa hänet, mikä tarkoittaa, että hän valvoo kahta ryhmää. Opettajataulukossa yhden ryhmänumeron alla on vain yksi kenttä.
Ongelman ratkaisemiseksi sinun on lisättävä kaksoiskenttä. Ja jos kaksi sairastuu, lisää kolme kenttää. Joten opettajien taulukko alkaa kasvaa tyhjästä.
On toinenkin vaihtoehto: korvaa ryhmänäppäimen numerokenttä symbolisella kentällä. Sitten joka kerta, kun valitset, sinun on muutettava merkkijono näppäinsarjaksi, ja yksi sql-kysely muuttuu useiksi.
Lupaavampi esimerkki ei ole taulukoiden, vaan esineiden tekeminen. Silloin opettaja on esine, ja hänellä voi olla useita ohjattuja ryhmiä. Mutta se on aina yksi kohde. Opettajaobjektilla on yksilöllinen avain, mutta sillä voi olla useita valvottuja ryhmiä. Ryhmällä on myös ainutlaatuinen avain. Myös opiskelija.
Kaikki kolme asemaa eivät ole vain käytettävissä tehtävässä, vaan niitä voidaan kehittää edelleen.
Objektilähtöiset perusteet
Tietoalan johtajattarjoavat klassisia relaatiotietokantoja. Ne ovat elämän testaamia, ne toimivat, ne ovat turvallisia, luotettavia ja niiden avulla voit palauttaa tietoja ongelmatilanteissa.
Object-oriented-tietokantoja (OODB) alettiin kehittää 1980-luvun puolivälissä, ja arvov altaisten tekijöiden mukaan ne ovat lupaavia tähän päivään asti. Mutta toistaiseksi perusteorioita ja käsitteellisiä säännöksiä lukuun ottamatta ei ole olemassa OODB:tä, joka olisi saavuttanut saman luokituksen ja jakelun kuin MySQL, MS SQL Server tai Oracle kaikissa erilaisissa inkarnaatioissaan.
Mutta entä jos määritelmää, tietojen, tyyppien, attribuuttien, luokkien ja hierarkioiden käsitettä ehdottaa kehittäjä, jonka luokitus ei riitä luomaan ohjelmoijien yhteisöä, joka tunnustaa tämän OODB:n mentaliteetin? Meidän on luotettava omiin voimiimme.
Yli kolmekymmentä OODB-versiota on luotu Linux-ympäristöön. Mutta missä on takuu, että luotu tietokanta ei vaadi lisää toimintoja? Windows-ympäristö ei tarjoa paljoa takuita tällä alueella.
Objektikohtainen ratkaisu
Ratkaisu on kuitenkin olemassa. Käyttämällä MySQL:ää esimerkkinä voit näyttää, kuinka tavalliset relaatiotaulukot muuttuvat ratkaistavan ongelman oliomalliksi.
Täällä ei ole tietokantaa, mutta siellä on ympäristö oman objektijärjestelmän muodostamiseen. MySQL:n tehoa käytetään vain tietorivien taulukoiden relaatiomuistina. Käyttölogiikan määrittelee kehittäjä itse. Erityisesti siellä on is_cache-taulukko. Siinä on kaikkiuseita peruskenttiä:
- omistajakoodi;
- session_code;
- h_code;
- a_yllätys;
- a_contents.
Muilla kentillä on palvelutoimintoja. Tämä taulukko on minkä tahansa pyynnön syötteessä ja tallentaa sen saapumisen. Sen kehittäjä määrittää, mitä tietokantamalli tuottaa. Se, mikä mahtuu sisältökenttään (a_contents) määräytyy kehittäjän luoman mallin objektien mukaan.
Tässä ideassa on neljä asiaa: osuma, osumaistunto, osumahistoriakoodi ja tietty sisältö. Mikä on kutsu, mikä objektijärjestelmä tulisi rakentaa - määrittelee kehittäjä. Se, mitä istunnolla (työprosessilla) tarkoitetaan, määrittelee kehittäjä. Historiakoodi on kyky peruuttaa pyyntöjä.
Tällä olevilla taulukoilla ei ole mitään tekemistä aihealueen kanssa. On puhelunohjain (is_cache), on lokikirjaus (is_customs), on puheluhistoria (is_histories). Loput taulukot määräytyvät ratkaistavan tehtävän mukaan.
Itse asiassa tämä ratkaisu ehdottaa oman OODB:n luomista rakennetun toimialueen tietokantamallin ja ratkaistavan ongelman perusteella. Tässä on v altava plussa - tämä on oma käsityksesi datasta, oma mallisi niiden esittämisestä ja niiden välinen suhde. Tässä on perusta - loistava relaatiotietokanta. Ei ole ongelmia etsiä jotain ja ymmärtää jotain väärin.
Malli: objektijärjestelmä + DBMS
Tietoteknologiassa on lähes mahdotonta muuttaa mitään. Todellinen informaatiovallankumous on vielä kaukana. ammatillinen tietoisuusohjelmistokehittäjät eivät aio muuttaa klassisia perinteitä. Mutta tilanteesta on silti tie ulos.
Käyttämällä luotettavia nykyaikaisia tietokannanhallintajärjestelmiä perustana oman mallisi olemassaoloympäristön luomiseen, voit saavuttaa huomattavaa menestystä.
Joka tapauksessa sinun on rakennettava näkymä tai tietomalli tehtävän ratkaisemiseksi, mutta sinun on tehtävä se oikein: olkoon se objektijärjestelmä ja hyvä DBMS sen ympäristönä.