Dataconcept: definitie, voorbeelden

Inhoudsopgave:

Dataconcept: definitie, voorbeelden
Dataconcept: definitie, voorbeelden
Anonim

Gegevens worden meestal geassocieerd met programmeren en worden in de moderne informatiewereld gepresenteerd in drie logisch equivalente versies: gegevens beschreven en gebruikt in een programma in een programmeertaal; gegevens in databasesystemen; gegevens in gedistribueerde informatiesystemen. De moderne programmering heeft alleen relatieve vrijheid gegeven aan de eerste variant van informatieformalisatie. De tweede twee opties zijn min of meer betrouwbare vormen van informatievoorziening en relaties tussen de componenten ervan.

Gegevens verleden en heden

De fundamentele positie van programmeertalen is de exacte beschrijving van gegevens en algoritmen. Computers "bieden" geen enkele kans op onzekerheid: er moet iets gebeuren en er is een commando dat die actie uitvoert.

Het moderne concept is gebaseerd op een veel hoger fundament: er is een gegeven, en wat het precies zal zijn, wordt bepaald op de plaats van gebruik. In ieder geval worden de gegevens op het moment van gebruik automatisch gecontroleerd en omgezet naar het juiste type. Een moderne programmeur is niet verplicht om zorg te dragen voor hun voorlopige beschrijving en naleving van typecompatibiliteit in het algoritme.

Gegevens uit het verleden en heden
Gegevens uit het verleden en heden

Overgangsproces:

  • van getypte gegevens en de verplichte beschrijving voor gebruik;
  • naar niet-getypte gegevens en vrijwaring van elke verplichting om deze te beschrijven en te gebruiken.

In feite kunnen we de relatieve versoepeling van formaliseringsvereisten herkennen - het is alleen beschikbaar in de omgeving van moderne programmeertools. Tijdens runtime ligt het type van elk gegeven vast en is de opdrachtvolgorde goed gedefinieerd.

Typen en modellering

Wiskunde en natuurkunde, handel en productie, economie en andere gebieden waar getallen worden gebruikt, hebben altijd met gegevens gewerkt en hechtten geen belang aan het concept van het type. Het feit dat getallen geheel of gedeeltelijk konden zijn, deed er niet echt toe.

Elke specifieke formule of specifieke actie kan een geheel getal, oneindige breuk, reëel of complex getal opleveren. Tot nu toe zijn er zulke wonderen van de geest als oneindig klein en oneindig groot. Bovendien hebben deze wonderen zelfs eigenschappen.

Er is nog steeds geen vrijheid in programmeren. Alles moet strikt worden geformaliseerd. Het concept van data is in de eerste plaats een type:

  • geheel getal;
  • boolean;
  • char;
  • string enzovoort.

Namen van typen kunnen verschillen in verschillende programmeertalen, maar er is altijd een geheel getal of reëel getal, booleaanse waarde, symbool,lijn. Er zijn nog steeds overblijfselen en specifieke ideeën over: geheel getal zonder teken, code, byte, woord, dubbel woord, string met vaste lengte.

Relikwieën en ideeën
Relikwieën en ideeën

Het concept van data in een datasysteem kent geen vrijheid. De SQL-taal - "internationaal" (er is een dialect voor elke moderne database) - tolereert geen onnauwkeurigheden, niet alleen in gegevens, maar ook in sql-query's. Een fout in de aanvraag is een garantie voor het uitblijven van een resultaat. Het is helemaal niet nodig om over schendingen van beschrijvingen te praten.

Het modelleren van informatieprocessen en gegevensrepresentaties is de enige zekere manier om een structuur te bouwen die kan evolueren en zich kan aanpassen aan veranderende omstandigheden.

Dynamiek van origineel

Natuurlijke informatie is continue verandering. Een formele beschrijving en concept geven van een datamodel in een specifiek vakgebied betekent het oplossen van drie problemen:

  • definieer welke gegevens hier staan;
  • formaliseer de relatie tussen hen;
  • beschrijf processen voor het wijzigen van gegevens en relaties.

Een voorbeeld van een dataset van een eenvoudig algoritme in JavaScript - een verkleinde kopie van het model van zelfs het meest solide databasebeheersysteem.

In het tweede geval zien experts en specialisten, bij het ontwerpen van datastructuren, tabellen en relaties, meestal niet (het is echt moeilijk om een grote hoeveelheid natuurlijke informatie te behandelen) de essentie van dingen, en er wordt een omslachtige, onontwikkelde verzameling gegevens verkregen, terwijl in het vakgebied broninformatie vrij en gemakkelijk circuleert.

Staticmogelijk

Het is gebruikelijk in JavaScript om code op te nemen die is gekoppeld aan een pagina en functies die zijn toegewezen aan gebeurtenissen op paginatags. Hoe dan ook, paginatags definiëren de gegevens die een bepaalde webresource accepteert, wijzigt of maakt.

Als je je handlercode heel zorgvuldig concentreert op elementgebeurtenissen, en niet op de paginacode als geheel, is dit de beste uitweg. Idealiter, wanneer de code geen nieuwe gegevens introduceert of de beschikbare gegevens niet herstelt, maar zich richt op wat er precies op een bepaald moment in de tijd is.

In feite, als je het concept van "gegevens" definieert als een minimaal statische beschrijving van de broninformatie en deze volgt, dan betekent dit dat je een kans van slagen hebt.

Met betrekking tot databases liggen de zaken veel gecompliceerder. Elke JavaScript-code "voorziet" de pagina van functionaliteit. Elke database is een verzameling tabellen, relaties daartussen, opgeslagen procedures, query's en functionaliteit die van buitenaf beschikbaar is.

Statisch is het probleem van elk algoritme. Het moderne concept van gegevens is statisch: een getal, een tekenreeks, een teken, enzovoort. Bij het verwerken of bij het schrijven naar een databasetabel verloopt alles soepel. Maar wanneer krijgt het origineel een andere dimensie of betekenis? Optie één: verander het bord, maar connecties en verzoeken kunnen er meteen in vallen.

Statistieken en objecten

Het definiëren van het concept 'gegevens' als een object verandert de situatie drastisch. Het object heeft zijn eigen structuur. Hier kunt u elke beschrijving van variabelen gebruiken. Rol zal niet spelen. Een object heeft methoden waarmee gegevens beschikbaar zijn. sinds allesgebruikt op het gebied van programmeren, dat wil zeggen drie basismethoden: lezen, schrijven, wijzigen. U kunt meer toevoegen om te vergelijken, zoeken, klonen, enz.

Het onderwerpgebied legt een reeks eigenschappen op aan elke gegevens. Het blijkt dus dat het begrip data wordt getransformeerd in een soort beschrijving die dynamisch kan worden gewijzigd. Statisch in een object geeft dynamiek daarbuiten.

Als u de combinatie van statische descriptors binnen een object wijzigt, hoeft u zich geen zorgen te maken over de dynamiek van de relaties met andere objecten.

Programmeren en presenteren van gegevens

Wat zijn gegevens? Het publieke bewustzijn is al gewend aan informatietechnologie, werkt in de wolken en heeft containers in virtuele ruimtes. Nu zijn niet alleen professionele programmeurs en gebruikers, maar ook gewone mensen bekwaam op het gebied van informatie en het gebruik ervan.

Publieke opinie
Publieke opinie

Maar wat is programmeren? Tot op de dag van vandaag geeft de publieke opinie de volgende definitie aan dit concept en zijn concepten:

  • Informatie en gegevens zijn de basisconcepten die in de informatica worden gebruikt.
  • Data is een bepaalde manier waarop waarnemingen worden ontvangen en vastgelegd ten opzichte van de omringende realiteit.
  • Ze zijn eenvoudig en complex (structuren), primair en secundair.
  • Een database is een verzameling onafhankelijke materialen die op een systematische manier worden gepresenteerd, zodat ze kunnen worden gevonden, gewijzigd en gebruikt.

Hoe objectief is dit? gezaghebbende auteursdenk het. De echte praktijk zorgt ervoor dat elk vakgebied zijn juiste gegevenssysteem bepa alt en alle kansen biedt om een goed dynamisch model te bouwen.

Het is niet ongebruikelijk dat een klant (consument) zijn eigen mening oplegt aan een programmeur (databaseontwerper) over hoe en wat te doen. Vanuit het oogpunt van programmering kan elke wens van de klant met de grootste precisie worden vervuld.

Oracle nodig om het probleem van budgettering voor het onderhoud van de watervoorziening op het platteland op te lossen (gebouw 21 in het dorp) - goed. MySQL is nodig om een volgsysteem voor poststukken te organiseren voor alle postkantoren in Rusland - alles zal ook werken.

Je kunt altijd elk algoritme samenstellen en toegang verlenen tot elke representatie van informatie binnen de definitie van het concept data, dat is vastgesteld door de ontwikkelaar van het databasebeheersysteem of de programmeertaal. De vraag is anders: hoe doe je dat met minimale kosten in maximale dynamiek?

Databases, voorbeelden

Een eenvoudige basis wordt gemaakt zonder een model. De basisconcepten van data en communicatie zijn klein, de functionaliteit is heel eenvoudig. Voor een instelling voor hoger onderwijs heb je bijvoorbeeld nodig:

  • tabel met leraren;
  • groepstabel (sleutel en groepsnummer);
  • algemene tabel van studenten (groepssleutels worden gebruikt).

De decaan wil de voortgang van de docenten weten. Docententabel heeft velden:

  • achternaam;
  • naam;
  • patroniem;
  • bewaakte groepsnummer.

De studententabel heeft velden:

  • achternaam;
  • naam;
  • patroniem;
  • geboortedatum;
  • GPA (voor alle vakken);
  • groepsnummer.

Er kunnen ten minste twee opties zijn voor het nemen van steekproeven: door de naam van de leraar te gebruiken, kun je naar het groepsnummer gaan en alle studenten en hun gemiddelde scores zien, of door de achternaam van de leraar en de laatste naam van de leerling, je kunt de gemiddelde score van de laatste zien.

Eenvoudige database
Eenvoudige database

Zelfs in zo'n eenvoudige versie zijn problemen gegarandeerd en zal er iets veranderd moeten worden. Situatie: de leraar werd ziek, hij vervangt nog een maand, wat betekent dat hij toezicht houdt op twee groepen. Er is slechts één veld onder één groepsnummer in de lerarentabel.

Om het probleem op te lossen, moet u een duplicaatveld toevoegen. En als er twee ziek worden, voeg dan drie velden toe. Dus de lerarentafel begint vanaf het begin te groeien.

Er is nog een andere optie: vervang het numerieke veld van de groepssleutel door een symbolische. Elke keer dat u selecteert, moet u de tekenreeks vervolgens omzetten in een reeks sleutels, en één sql-query verandert in meerdere.

Een veelbelovender voorbeeld is niet om tabellen te maken, maar om objecten te maken. Dan is de leraar een object en kan hij meerdere begeleide groepen hebben. Maar het is altijd één object. Het docentobject heeft een unieke sleutel, maar kan meerdere begeleide groepen hebben. De groep heeft ook een unieke sleutel. Ook een student.

Alle drie de posities zijn niet alleen beschikbaar binnen de taak, maar kunnen verder worden ontwikkeld.

Object-georiënteerde bases

Leiders in de informatie-industrieklassieke relationele databases aanbieden. Ze worden getest door het leven, ze werken, ze zijn veilig, betrouwbaar en, in geval van problemen, kunt u informatie herstellen.

Objectgeoriënteerde databases (OODB) werden halverwege de jaren tachtig ontwikkeld en zijn volgens gezaghebbende auteurs tot op de dag van vandaag veelbelovend. Maar tot nu toe is er, afgezien van fundamentele theorieën en conceptuele bepalingen, geen OODB die dezelfde waardering en distributie heeft behaald als MySQL, MS SQL Server of Oracle in al zijn verschillende verschijningsvormen.

OO-database
OO-database

Maar wat als de definitie, het concept van gegevens, typen, attributen, klassen, hiërarchieën wordt voorgesteld door een ontwikkelaar wiens beoordeling onvoldoende is om een gemeenschap van programmeurs te creëren die de mentaliteit van deze OODB belijden? We zullen op onze eigen kracht moeten vertrouwen.

Er zijn meer dan dertig varianten van OODB gemaakt in de Linux-omgeving. Maar waar is de garantie dat de aangemaakte database niet meer functionaliteit nodig heeft? De Windows-omgeving biedt op dit gebied niet veel garanties.

Objectgerichte oplossing

Er is echter een oplossing. Met MySQL als voorbeeld kunt u laten zien hoe standaard relationele tabellen veranderen in een objectgeoriënteerd model van het probleem dat wordt opgelost.

Een voorbeeld van je eigen OODB
Een voorbeeld van je eigen OODB

Er is hier geen database, maar er is een omgeving om je eigen systeem van objecten te vormen. De kracht van MySQL wordt alleen gebruikt als relationeel geheugen voor tabellen uit inforijen. De logica van het gebruik wordt bepaald door de ontwikkelaar zelf. In het bijzonder is er een is_cache-tabel. Het heeft allesverschillende basisvelden:

  • owner_code;
  • session_code;
  • h_code;
  • a_surprise;
  • a_contents.

De rest van de velden hebben servicefuncties. Deze tabel staat aan de ingang van elk verzoek en registreert de aankomst ervan. Wat het databasemodel zal uitwerken, wordt bepaald door de ontwikkelaar. Wat in het inhoudsveld (a_contents) past, wordt bepaald door de objecten van het model dat door de ontwikkelaar is gemaakt.

Er zijn vier dingen in dit idee: hit, hit-sessie, hitgeschiedeniscode en specifieke inhoud. Wat is een oproep, welk systeem van objecten moet worden gebouwd - wordt bepaald door de ontwikkelaar. Wat wordt bedoeld met een sessie (werkproces) wordt bepaald door de ontwikkelaar. De geschiedeniscode is de mogelijkheid om op verzoeken terug te draaien.

De tabellen hier hebben niets te maken met het onderwerpgebied. Er is een oproepcontroller (is_cache), er is logging (is_customs), er is een oproepgeschiedenis (is_histories). De overige tabellen worden bepaald door de taak die wordt opgelost.

In feite stelt deze oplossing voor om uw eigen OODB te maken op basis van het gebouwde domeindatabasemodel en het probleem dat wordt opgelost. Er is hier een enorm pluspunt - dit is uw eigen concept van gegevens, uw eigen model van hun presentatie en de relatie daartussen. Er is hier een basis - een geweldige relationele database. Er zullen geen problemen zijn om iets te zoeken en iets verkeerd te begrijpen.

Model: objectsysteem + DBMS

Het is bijna onmogelijk om iets in de informatietechnologie te veranderen. De echte informatierevolutie is nog ver weg. professioneel bewustzijnsoftwareontwikkelaars gaan de klassieke tradities niet veranderen. Maar er is nog een uitweg uit de situatie.

Ideale oplossing
Ideale oplossing

Door betrouwbare moderne databasebeheersystemen te gebruiken als basis voor het creëren van een omgeving voor het bestaan van uw eigen model, kunt u merkbaar succes behalen.

Je zult hoe dan ook een weergave of een gegevensmodel moeten bouwen om de taak op te lossen, maar je moet het correct doen: laat het een systeem van objecten zijn en een goed DBMS zijn omgeving.

Aanbevolen: