Dati parasti tiek saistīti ar programmēšanu un mūsdienu informācijas pasaulē tiek pasniegti trīs loģiski līdzvērtīgās versijās: programmā aprakstītie un lietotie dati programmēšanas valodā; dati datu bāzu sistēmās; dati izplatītajās informācijas sistēmās. Mūsdienu programmēšana ir devusi relatīvu brīvību tikai pirmajam informācijas formalizācijas variantam. Otrās divas iespējas ir vairāk vai mazāk uzticamas informācijas sniegšanas formas un attiecības starp tās sastāvdaļām.
Dati pagātnē un tagadnē
Programmēšanas valodu pamatpozīcija ir precīzs datu un algoritmu apraksts. Datori "neparāda" nekādu nenoteiktības iespēju: ir kaut kas, uz ko jārīkojas, un ir komanda, kas veic šo darbību.
Mūsdienu koncepcija ir balstīta uz daudz augstāku pamatu: ir dots, un tas, kas tieši tas būs, tiek noteikts tā lietošanas vietā. Jebkurā gadījumā lietošanas laikā dati tiek automātiski pārbaudīti un pārveidoti pareizajā veidā. Mūsdienu programmētājam nav pienākuma rūpēties par to sākotnējo aprakstu un tipu saderības ievērošanu algoritmā.
Pārejas process:
- no drukātajiem datiem un to obligātā apraksta pirms lietošanas;
- nedrukātiem datiem un brīvība no jebkāda pienākuma tos aprakstīt un izmantot.
Patiesībā varam atpazīt formalizācijas prasību relatīvo atslābināšanu – tas ir pieejams tikai mūsdienu programmēšanas rīku vidē. Izpildes laikā katra atskaites punkta veids ir fiksēts, un komandu secība ir labi definēta.
Tipi un modelēšana
Matemātika un fizika, tirdzniecība un ražošana, ekonomika un citas jomas, kurās izmanto skaitļus, vienmēr ir darbojušās ar datiem un tipa jēdzienam nav piešķīrušas nekādu nozīmi. Faktam, ka skaitļi var būt veseli vai daļskaitļi, nebija īsti svarīgi.
Katra konkrētā formula vai konkrēta darbība var dot veselu skaitli, bezgalīgu daļu, reālu vai kompleksu skaitli. Līdz šim ir bijuši tādi prāta brīnumi kā bezgala mazi un bezgala lieli. Turklāt šiem brīnumiem ir pat īpašības.
Programmēšanā joprojām nav brīvības. Visam jābūt stingri formalizētam. Datu jēdziens, pirmkārt, ir veids:
- vesels skaitlis;
- būla;
- char;
- string un tā tālāk.
Tipu nosaukumi dažādās programmēšanas valodās var atšķirties, taču vienmēr ir vesels vai reāls skaitlis, Būla vērtība, simbols,līnija. Joprojām ir palikušas relikvijas un konkrētas idejas: neparakstīts vesels skaitlis, kods, baits, vārds, dubultvārds, noteikta garuma virkne.
Datu jēdzienam datu sistēmā nav brīvības. SQL valoda - "starptautiskā" (katrai mūsdienu datubāzei ir savs dialekts) - nepieļauj nekādas neprecizitātes ne tikai datos, bet arī sql vaicājumos. Kļūda pieprasījumā ir rezultāta neesamības garantija. Par aprakstu pārkāpumiem vispār nav jārunā.
Informācijas procesu un datu attēlojumu modelēšana ir vienīgais drošais veids, kā izveidot struktūru, kas var attīstīties un pielāgoties mainīgajiem apstākļiem.
Oriģināla dinamika
Dabiskā informācija ir nepārtraukta maiņa. Sniegt formālu datu modeļa aprakstu un koncepciju konkrētā priekšmeta jomā nozīmē atrisināt trīs problēmas:
- definējiet, kādi dati šeit ir;
- formalizēt attiecības starp tām;
- aprakstiet procesus datu un attiecību mainīšanai.
Vienkārša JavaScript algoritma datu kopas piemērs - pat visstingrākās datu bāzes pārvaldības sistēmas modeļa samazināta kopija.
Tā ir tā, ka otrajā gadījumā eksperti un speciālisti, veidojot datu struktūras, tabulas un attiecības, parasti neredz (tiešām ir grūti aptvert lielu dabiskās informācijas apjomu) lietu būtību, un tiek iegūts apgrūtinošs, neizstrādāts datu kaudžu kopums, savukārt priekšmetā avota informācija cirkulē brīvi un viegli.
Statisksiespējams
Ir izplatīta JavaScript prakse, lai lapas tagos iekļautu lapai pievienotu kodu un funkcijas, kas piešķirtas notikumiem. Jebkurā gadījumā lapas tagi definē datus, ko konkrētais tīmekļa resurss pieņem, pārveido vai izveido.
Ja apdarinātāja kodu ļoti rūpīgi koncentrējat uz elementu notikumiem, nevis uz lapas kodu kopumā, šī ir labākā izeja. Ideāli, ja kods neievieš jaunus datus vai nelabo pieejamos datus, bet koncentrējas uz to, kas tajā konkrētajā brīdī ir.
Patiesībā, ja jūs definējat jēdzienu "dati" kā minimāli statisku avota informācijas aprakstu un sekojat tam, tas nozīmē, ka jums ir iespēja gūt panākumus.
Attiecībā uz datu bāzēm lietas ir daudz sarežģītākas. Jebkurš JavaScript kods "nodrošina" lapu ar funkcionalitāti. Jebkura datu bāze ir tabulu, to savstarpējo attiecību, saglabāto procedūru, vaicājumu un funkcionalitātes kolekcija, kas pieejama no ārpuses.
Statika ir jebkura algoritma problēma. Mūsdienu datu jēdziens ir statisks: cipars, virkne, rakstzīme utt. Apstrādājot vai rakstot uz datu bāzes tabulu, viss izdodas gludi. Bet kad oriģināls iegūst citu dimensiju vai nozīmi? Pirmais variants: mainiet zīmi, taču savienojumi un pieprasījumi var nekavējoties iekrist.
Statika un objekti
Jēdziena "dati" kā objekta definēšana krasi maina situāciju. Objektam ir sava struktūra. Šeit varat izmantot jebkuru mainīgo aprakstu. Loma nespēlēs. Objektam ir metodes, caur kurām dati ir pieejami. Tā kā vissizmanto programmēšanas jomā, tas ir, trīs pamatmetodes: lasīt, rakstīt, mainīt. Varat pievienot vairāk, lai salīdzinātu, meklētu, klonētu utt.
Tēmu apgabals katram datiem uzliek virkni rekvizītu. Tādējādi izrādās, ka datu jēdziens tiek pārveidots par sava veida aprakstu, ko var dinamiski mainīt. Statika objekta iekšienē nodrošina dinamiku ārpus tā.
Mainot statisko deskriptoru kombināciju objekta iekšienē, jums nav jāuztraucas par tā attiecību dinamiku ar citiem objektiem.
Datu programmēšana un prezentēšana
Kas ir dati? Sabiedrības apziņa jau ir pieradusi pie informācijas tehnoloģijām, darbojas mākoņos un ir konteineri virtuālajās telpās. Tagad ne tikai profesionāli programmētāji un lietotāji, bet arī parastie cilvēki ir kompetenti informācijas un tās izmantošanas jautājumos.
Bet kas ir programmēšana? Līdz šai dienai sabiedriskā doma šim jēdzienam un tā jēdzieniem sniedz šādu definīciju:
- Informācija un dati ir datorzinātnēs izmantotie pamatjēdzieni.
- Dati ir noteiktā veidā saņemti un reģistrēti novērojumi attiecībā pret apkārtējo realitāti.
- Tās ir vienkāršas un sarežģītas (struktūras), primārās un sekundārās.
- Datu bāze ir neatkarīgu materiālu kolekcija, kas sistemātiski parādīta, lai tos varētu atrast, modificēt un izmantot.
Cik tas ir objektīvs? Autoritatīvi autorilaikam. Reālajai praksei ir tendence nodrošināt, ka katra mācību priekšmeta joma nosaka savu pareizo datu sistēmu un dod visas iespējas izveidot labu dinamisko modeli.
Nereti klients (patērētājs) programmētājam (datu bāzes veidotājam) uzspiež savu viedokli par to, kā un ko darīt. No programmēšanas viedokļa jebkura klienta vēlme var tikt izpildīta ar vislielāko precizitāti.
Vajadzīgs Oracle, lai atrisinātu budžeta plānošanas problēmu lauku ūdensapgādes uzturēšanai (21. ēka ciematā) - labi. MySQL ir nepieciešams, lai organizētu pasta sūtījumu izsekošanas sistēmu visās Krievijas pasta nodaļās - arī viss darbosies.
Jūs vienmēr varat izveidot jebkuru algoritmu un nodrošināt piekļuvi jebkuram informācijas attēlojumam datu jēdziena definīcijas ietvaros, ko nosaka datu bāzes pārvaldības sistēmas vai programmēšanas valodas izstrādātājs. Jautājums ir cits: kā to izdarīt ar minimālām izmaksām maksimālā dinamikā?
Datu bāzes, piemēri
Tiek izveidota vienkārša bāze bez modeļa. Datu un komunikācijas pamatjēdzieni ir nelieli, funkcionalitāte ir ļoti vienkārša. Piemēram, augstākās izglītības iestādei jums ir nepieciešams:
- skolotāju tabula;
- grupu tabula (atslēga un grupas numurs);
- vispārējā skolēnu tabula (tiek lietoti grupu taustiņi).
Dekāns vēlas zināt skolotāju sekmes. Skolotāju tabulā ir lauki:
- uzvārds;
- vārds;
- patronymic;
- uzraudzītās grupas numurs.
Skolēnu tabulā ir lauki:
- uzvārds;
- vārds;
- patronymic;
- dzimšanas datums;
- GPA (visiem priekšmetiem);
- grupas numurs.
Izlasei var būt vismaz divas iespējas: izmantojot skolotāja vārdu, varat pāriet uz grupas numuru un redzēt visus skolēnus un viņu vidējos rezultātus vai pēc skolotāja uzvārda un pēdējā studenta vārdu, jūs varat redzēt pēdējo vidējo punktu skaitu.
Pat tik vienkāršā versijā problēmas ir garantētas un kaut kas būs jāmaina. Situācija: skolotājs saslimis, viņu aizstāj vēl mēnesis, tas nozīmē, ka viņš uzrauga divas grupas. Skolotāju tabulā zem viena grupas numura ir tikai viens lauks.
Lai atrisinātu problēmu, jāpievieno dublikāts lauks. Un, ja divi saslimst, tad pievienojiet trīs laukus. Tātad skolotāju galds sāk augt no nulles.
Ir vēl viena iespēja: aizstāt grupas atslēgas ciparu lauku ar simbolisku. Pēc tam katru reizi atlasot virkni būs jāpārvērš atslēgu secībā, un viens sql vaicājums tiks pārvērsts par vairākiem.
Daudzsološāks piemērs ir nevis tabulu, bet objektu izgatavošana. Tad skolotājs ir objekts, un viņam var būt vairākas pārraudzītas grupas. Bet tas vienmēr ir viens objekts. Skolotāja objektam ir unikāla atslēga, taču tam var būt vairākas uzraudzītas grupas. Grupai ir arī unikāla atslēga. Arī students.
Visas trīs pozīcijas ir pieejamas ne tikai uzdevuma ietvaros, bet tās var attīstīt tālāk.
Objektorientētas bāzes
Informācijas nozares līderipiedāvā klasiskās relāciju datu bāzes. Tie ir pārbaudīti dzīvē, tie darbojas, ir droši, uzticami un problēmu gadījumā ļauj atjaunot informāciju.
Objektorientētās datu bāzes (OODB) sāka izstrādāt 80. gadu vidū, un, pēc autoritatīvu autoru domām, tās ir daudzsološas līdz pat mūsdienām. Taču līdz šim, izņemot fundamentālās teorijas un konceptuālos nosacījumus, nav neviena OODB, kas būtu sasniegusi tādu pašu reitingu un izplatību kā MySQL, MS SQL Server vai Oracle visos tā dažādajos iemiesojumos.
Bet kā būtu, ja definīciju, datu jēdzienu, veidu, atribūtus, klases, hierarhiju ierosina izstrādātājs, kura vērtējums nav pietiekams, lai izveidotu programmētāju kopienu, kas apliecina šī OODB mentalitāti? Mums būs jāpaļaujas uz saviem spēkiem.
Linux vidē ir izveidoti vairāk nekā trīsdesmit OODB varianti. Bet kur garantija, ka izveidotā datu bāze neprasīs lielāku funkcionalitāti? Windows vide šajā jomā nesniedz lielas garantijas.
Objektorientēts risinājums
Tomēr risinājums ir. Izmantojot MySQL kā piemēru, varat parādīt, kā standarta relāciju tabulas pārvēršas par objektorientētu risināmās problēmas modeli.
Šeit nav datu bāzes, bet ir vide savas objektu sistēmas veidošanai. MySQL jauda tiek izmantota tikai kā relāciju atmiņa tabulām no informācijas rindām. Lietošanas loģiku nosaka pats izstrādātājs. Jo īpaši ir is_cache tabula. Tam ir vissvairāki pamata lauki:
- owner_code;
- session_code;
- h_code;
- a_surprise;
- a_contents.
Pārējos laukos ir servisa funkcijas. Šī tabula ir jebkura pieprasījuma ievade un reģistrē tā ierašanos. To, ko izstrādās datu bāzes modelis, nosaka tā izstrādātājs. To, kas ietilps satura laukā (a_contents), nosaka izstrādātāja izveidotā modeļa objekti.
Šajā idejā ir četras lietas: trāpījums, trāpījuma sesija, trāpījuma vēstures kods un konkrēts saturs. Kas ir izsaukums, kāda objektu sistēma jābūvē – nosaka izstrādātājs. Kas tiek saprasts ar sesiju (darba procesu), to nosaka izstrādātājs. Vēstures kods ir iespēja atsaukt pieprasījumus.
Šeit esošajām tabulām nav nekāda sakara ar tēmu jomu. Ir zvanu kontrolieris (is_cache), ir reģistrēšana (is_customs), ir zvanu vēsture (is_histories). Atlikušās tabulas nosaka pēc risināmā uzdevuma.
Patiesībā šis risinājums iesaka izveidot savu OODB, pamatojoties uz izveidoto domēna datu bāzes modeli un risināmo problēmu. Šeit ir milzīgs pluss - šī ir jūsu pašu datu koncepcija, jūsu pašu to prezentācijas modelis un attiecības starp tiem. Šeit ir pamats – lieliska relāciju datu bāze. Nebūs problēmu kaut ko meklēt un kaut ko pārprast.
Modelis: objektu sistēma + DBVS
Informācijas tehnoloģijās ir gandrīz neiespējami kaut ko mainīt. Īstā informācijas revolūcija vēl ir tālu. profesionālā apziņaprogrammatūras izstrādātāji negrasās mainīt klasiskās tradīcijas. Bet joprojām ir izeja no situācijas.
Izmantojot uzticamas modernas datu bāzes pārvaldības sistēmas kā pamatu sava modeļa pastāvēšanas vides izveidei, varat gūt ievērojamus panākumus.
Jebkurā gadījumā, lai atrisinātu uzdevumu, jums būs jāizveido skats vai datu modelis, taču tas jādara pareizi: lai tā ir objektu sistēma un laba DBVS ir tās vide.