Datakonsep: definisie, voorbeelde

INHOUDSOPGAWE:

Datakonsep: definisie, voorbeelde
Datakonsep: definisie, voorbeelde
Anonim

Data word gewoonlik met programmering geassosieer en word in die moderne inligtingswêreld in drie logies-ekwivalente weergawes aangebied: data beskryf en gebruik in 'n program in 'n programmeertaal; data in databasisstelsels; data in verspreide inligtingstelsels. Moderne programmering het relatiewe vryheid slegs aan die eerste variant van inligtingsformalisasie gegee. Die tweede twee opsies is min of meer betroubare vorme van die verskaffing van inligting en verwantskappe tussen die komponente daarvan.

Data verlede en hede

Die fundamentele posisie van programmeertale is die presiese beskrywing van data en algoritmes. Rekenaars "bied" geen kans op onsekerheid nie: daar is iets waarop opgetree moet word, en daar is 'n opdrag wat daardie aksie uitvoer.

Die moderne konsep is gebaseer op 'n veel hoër fondament: daar is 'n gegewe, en wat presies dit sal wees, word bepaal by die plek van die gebruik daarvan. In elk geval, ten tyde van gebruik, word die data outomaties nagegaan en omgeskakel na die korrekte tipe.'n Moderne programmeerder is nie verplig om te sorg vir hul voorlopige beskrywing en nakoming van tipe-versoenbaarheid in die algoritme nie.

Verlede en huidige data
Verlede en huidige data

Oorgangsproses:

  • van getikte data en die verpligte beskrywing daarvan voor gebruik;
  • na ongetikte data en vryheid van enige verpligting om dit te beskryf en te gebruik.

Om die waarheid te sê, ons kan die relatiewe verslapping van formaliseringsvereistes erken - dit is slegs beskikbaar in die omgewing van moderne programmeringsinstrumente. Tydens looptyd is die tipe van elke datum vas, en die opdragvolgorde is goed gedefinieer.

tipes en modellering

Wiskunde en fisika, handel en produksie, ekonomie en ander gebiede waar getalle gebruik word, het nog altyd met data gewerk en het geen belang aan die konsep van tipe geheg nie. Die feit dat getalle heel of breuk kan wees, het nie regtig saak gemaak nie.

Elke spesifieke formule of spesifieke aksie kan 'n heelgetal, oneindige breuk, reële of komplekse getal gee. Tot nou toe is daar sulke wonders van die gees soos oneindig klein en oneindig groot. Boonop het hierdie wonderwerke selfs eienskappe.

Daar is steeds geen vryheid in programmering nie. Alles moet streng geformaliseer word. Die konsep van data is eerstens 'n tipe:

  • heelgetal;
  • boolean;
  • char;
  • string en so aan.

Name van tipes kan verskil in verskillende programmeertale, maar daar is altyd 'n heelgetal of reële getal, Boolese waarde, simbool,lyn. Daar is nog oorblyfsels en spesifieke idees oor: ongetekende heelgetal, kode, greep, woord, dubbelwoord, string met vaste lengte.

Oorblyfsels en idees
Oorblyfsels en idees

Die konsep van data in 'n datastelsel het geen vryheid nie. Die SQL-taal - "internasionaal" (daar is 'n dialek vir elke moderne databasis) - duld geen onakkuraathede nie net in data nie, maar ook in sql-navrae. 'n Fout in die versoek is 'n waarborg vir die afwesigheid van 'n resultaat. Dit is glad nie nodig om oor oortredings van beskrywings te praat nie.

Modellering van inligtingsprosesse en datavoorstellings is die enigste seker manier om 'n struktuur te bou wat kan ontwikkel en aanpas by veranderende toestande.

Dynamika van oorspronklike

Natuurlike inligting is voortdurende verandering. Om 'n formele beskrywing en konsep van 'n datamodel in 'n spesifieke vakgebied te gee, beteken om drie probleme op te los:

  • definieer watter data hier is;
  • formaliseer die verhouding tussen hulle;
  • beskryf prosesse vir die verandering van data en verhoudings.

'n Voorbeeld van 'n datastel van 'n eenvoudige algoritme in JavaScript - 'n verminderde kopie van die model van selfs die mees soliede databasisbestuurstelsel.

Dit is net dat in die tweede geval, kundiges en spesialiste, wanneer hulle datastrukture, tabelle en verwantskappe ontwerp, gewoonlik nie die essensie van dinge sien nie (dit is regtig moeilik om 'n groot hoeveelheid natuurlike inligting te dek nie), en 'n omslagtige, onontwikkelde stel hope data word verkry, terwyl broninligting vrylik en maklik in die vakgebied sirkuleer.

Statiesmoontlik

Dit is algemene JavaScript-praktyk om kode wat aan 'n bladsy geheg is en funksies wat aan gebeurtenisse toegewys is op bladsymerkers in te sluit. Hoe dit ook al sy, bladsymerkers definieer die data wat 'n gegewe webhulpbron aanvaar, wysig of skep.

As jy jou hanteerderkode baie versigtig op elementgebeurtenisse konsentreer, en nie op die bladsykode as geheel nie, is dit die beste uitweg. Ideaal gesproke, wanneer die kode nie nuwe data bekendstel of nie die beskikbare data regmaak nie, maar fokus op wat presies dit op 'n spesifieke tydstip het.

Om die waarheid te sê, as jy die konsep van "data" definieer as 'n minimaal statiese beskrywing van die broninligting en dit volg, dan beteken dit jy het 'n kans op sukses.

Wat databasisse betref, is dinge baie meer ingewikkeld. Enige JavaScript-kode "voorsien" die bladsy met funksionaliteit. Enige databasis is 'n versameling tabelle, verwantskappe tussen hulle, gestoorde prosedures, navrae en funksionaliteit wat van buite af beskikbaar is.

Static is die moeilikheid van enige algoritme. Die moderne konsep van data is staties: 'n getal, 'n string, 'n karakter, ensovoorts. Wanneer jy verwerk of na 'n databasistabel skryf, verloop alles glad. Maar wanneer kry die oorspronklike 'n ander dimensie of betekenis? Opsie een: verander die teken, maar verbindings en versoeke kan onmiddellik inval.

Statika en voorwerpe

Om die konsep van "data" as 'n voorwerp te definieer, verander die situasie dramaties. Die voorwerp het sy eie struktuur. Hier kan jy enige beskrywing van enige veranderlikes gebruik. Rol sal nie speel nie. 'n Voorwerp het metodes waardeur data beskikbaar is. Sedert allesgebruik in die veld van programmering, dit wil sê drie basiese metodes: lees, skryf, verander. Jy kan meer byvoeg om te vergelyk, soek, kloon, ens.

Die onderwerpgebied plaas 'n reeks eienskappe op elke data. Dit blyk dus dat die konsep van data omskep word in 'n soort beskrywing wat dinamies verander kan word. Staties binne 'n voorwerp gee dinamika daarbuite.

Deur die kombinasie van statiese beskrywers binne 'n voorwerp te verander, hoef jy nie bekommerd te wees oor die dinamika van sy verhoudings met ander voorwerpe nie.

Programmering en aanbieding van data

Wat is data? Die openbare bewussyn is reeds gewoond aan inligtingstegnologie, werk in die wolke en het houers in virtuele ruimtes. Nou is nie net professionele programmeerders en gebruikers nie, maar ook gewone mense bekwaam in sake van inligting en die gebruik daarvan.

Publieke mening
Publieke mening

Maar wat is programmering? Tot vandag toe gee die openbare mening die volgende definisie aan hierdie konsep en sy konsepte:

  • Inligting en data is die basiese konsepte wat in rekenaarwetenskap gebruik word.
  • Data is 'n sekere manier ontvang en aangeteken waarnemings relatief tot die omringende werklikheid.
  • Hulle is eenvoudig en kompleks (strukture), primêr en sekondêr.
  • 'n Databasis is 'n versameling onafhanklike materiaal wat op 'n sistematiese manier aangebied word sodat dit gevind, gewysig en gebruik kan word.

Hoe objektief is dit? Gesaghebbende skrywersdink so. Werklike praktyk is geneig om te verseker dat elke vakgebied sy korrekte datastelsel bepaal en gee elke geleentheid om 'n goeie dinamiese model te bou.

Dit is nie ongewoon dat 'n kliënt (verbruiker) sy eie mening op 'n programmeerder (databasisontwerper) afdwing oor hoe en wat om te doen nie. Vanuit die oogpunt van programmering kan enige begeerte van die kliënt met die grootste akkuraatheid vervul word.

Benodig Oracle om die probleem van begroting vir die instandhouding van landelike watertoevoer (gebou 21 in die dorp) op te los - goed. MySQL is nodig om 'n opsporingstelsel vir positems vir alle poskantore in Rusland te organiseer - alles sal ook werk.

Jy kan altyd enige algoritme saamstel en toegang bied tot enige voorstelling van inligting binne die definisie van die konsep van data, wat deur die ontwikkelaar van die databasisbestuurstelsel of programmeertaal vasgestel word. Die vraag is anders: hoe om dit te doen met minimale koste in maksimum dinamika?

Databasisse, voorbeelde

'n Eenvoudige basis word sonder 'n model geskep. Die basiese konsepte van data en kommunikasie is klein, die funksionaliteit is baie eenvoudig. Byvoorbeeld, vir 'n hoëronderwysinstelling benodig jy:

  • tabel van onderwysers;
  • groeptabel (sleutel en groepnommer);
  • algemene tabel van studente (groepsleutels word gebruik).

Die dekaan wil die vordering van die onderwysers weet. Onderwyserstabel het velde:

  • van;
  • naam;
  • patroniem;
  • groepnommer onder toesig.

Die studentetabel het velde:

  • van;
  • naam;
  • patroniem;
  • geboortedatum;
  • GPA (vir alle vakke);
  • groepnommer.

Daar kan ten minste twee opsies vir steekproefneming wees: deur die naam van die onderwyser te gebruik, kan jy na die groepnommer gaan en al die studente en hul gemiddelde tellings sien, of deur die van van die onderwyser en die laaste naam van die student, jy kan die gemiddelde telling van die laaste een sien.

Eenvoudige databasis
Eenvoudige databasis

Selfs in so 'n eenvoudige weergawe is probleme gewaarborg en iets sal verander moet word. Situasie: die onderwyser het siek geword, nog 'n maand vervang hom, wat beteken hy hou toesig oor twee groepe. Daar is net een veld onder een groepnommer in die onderwysertabel.

Om die probleem op te los, moet jy 'n duplikaatveld byvoeg. En as twee siek word, voeg dan drie velde by. So begin die tabel van onderwysers van voor af groei.

Daar is nog 'n opsie: vervang die numeriese veld van die groepsleutel met 'n simboliese een. Dan, elke keer as jy kies, sal jy die string in 'n reeks sleutels moet omskakel, en een SQL-navraag sal in verskeie verander.

'n Meer belowende voorbeeld is nie om tabelle te maak nie, maar om voorwerpe te maak. Dan is die onderwyser 'n voorwerp, en hy kan verskeie groepe onder toesig hê. Maar dit is altyd een voorwerp. Die onderwyservoorwerp het 'n unieke sleutel, maar kan verskeie groepe onder toesig hê. Die groep het ook 'n unieke sleutel. 'n Student ook.

Al drie posisies is nie net beskikbaar binne die taak nie, maar kan verder ontwikkel word.

Object-georiënteerde basisse

Inligtingsbedryfleiersbied klassieke relasionele databasisse. Hulle word deur die lewe getoets, hulle werk, hulle is veilig, betroubaar en, in geval van probleme, laat hulle jou toe om inligting te herstel.

Objekgeoriënteerde databasisse (OODB) het in die middel-1980's begin ontwikkel en is volgens gesaghebbende skrywers belowend tot vandag toe. Maar tot dusver, afgesien van fundamentele teorieë en konseptuele bepalings, is daar geen OODB wat dieselfde gradering en verspreiding as MySQL, MS SQL Server of Oracle in al sy uiteenlopende inkarnasies behaal het nie.

OO databasis
OO databasis

Maar wat as die definisie, die konsep van data, tipes, eienskappe, klasse, hiërargieë voorgestel word deur 'n ontwikkelaar wie se gradering onvoldoende is om 'n gemeenskap van programmeerders te skep wat die mentaliteit van hierdie OODB bely? Ons sal op ons eie krag moet staatmaak.

Meer as dertig variante van OODB is in die Linux-omgewing geskep. Maar waar is die waarborg dat die geskepde databasis nie meer funksionaliteit sal benodig nie? Die Windows-omgewing bied nie veel waarborge in hierdie area nie.

Objekgeoriënteerde oplossing

Daar is egter 'n oplossing. Deur MySQL as 'n voorbeeld te gebruik, kan jy wys hoe standaard relasionele tabelle verander in 'n objekgeoriënteerde model van die probleem wat opgelos word.

'n Voorbeeld van jou eie OODB
'n Voorbeeld van jou eie OODB

Daar is geen databasis hier nie, maar daar is 'n omgewing om jou eie stelsel van voorwerpe te vorm. Die krag van MySQL word slegs as relasionele geheue vir tabelle van inligtingsrye gebruik. Die logika van gebruik word deur die ontwikkelaar self bepaal. Daar is veral 'n is_cache-tabel. Dit het allesverskeie basiese velde:

  • eienaarskode;
  • sessie_kode;
  • h_code;
  • 'n_verrassing;
  • a_inhoud.

Die res van die velde dra diensfunksies. Hierdie tabel staan by die invoer van enige versoek en teken die aankoms daarvan aan. Wat die databasismodel sal uitwerk, word deur die ontwikkelaar daarvan bepaal. Wat in die inhoudsveld (a_contents) sal pas, word bepaal deur die voorwerpe van die model wat deur die ontwikkelaar geskep is.

Daar is vier dinge in hierdie idee: tref, trefsessie, trefgeskiedeniskode en spesifieke inhoud. Wat is 'n oproep, watter stelsel van voorwerpe gebou moet word - word deur die ontwikkelaar bepaal. Wat met 'n sessie (werkproses) bedoel word, word deur die ontwikkelaar bepaal. Die geskiedeniskode is die vermoë om terug te draai op versoeke.

Die tabelle hier het niks met die vakgebied te doen nie. Daar is 'n oproepbeheerder (is_cache), daar is aanteken (is_customs), daar is 'n oproepgeskiedenis (is_histories). Die oorblywende tabelle word bepaal deur die taak wat opgelos word.

Trouens, hierdie oplossing stel voor om jou eie OODB te skep gebaseer op die geboude domeindatabasismodel en die probleem wat opgelos word. Daar is 'n groot pluspunt hier - dit is jou eie konsep van data, jou eie model van hul aanbieding en die verhouding tussen hulle. Hier is 'n fondament - 'n wonderlike relasionele databasis. Daar sal geen probleme wees om na iets te soek en iets verkeerd te verstaan nie.

Model: objekstelsel + DBMS

Dit is amper onmoontlik om enigiets in inligtingstegnologie te verander. Die ware inligtingsrevolusie is nog ver. professionele bewussynsagteware-ontwikkelaars gaan nie die klassieke tradisies verander nie. Maar daar is steeds 'n uitweg uit die situasie.

Ideale oplossing
Ideale oplossing

Deur betroubare moderne databasisbestuurstelsels te gebruik as die basis vir die skep van 'n omgewing vir die bestaan van jou eie model, kan jy merkbare sukses behaal.

Jy sal in elk geval 'n aansig of 'n datamodel moet bou om die taak op te los, maar jy moet dit korrek doen: laat dit 'n stelsel van voorwerpe wees, en 'n goeie DBBS sy omgewing wees.

Aanbeveel: