Data (datavetenskap)
Inom datavetenskap är data (behandlas som singular, plural eller som ett masssubstantiv ) vilken sekvens som helst av en eller flera symboler ; datum är en enda symbol för data. Data kräver tolkning för att bli information . Digital data är data som representeras med det binära talsystemet ettor (1) och nollor (0), istället för analog representation. I moderna (efter 1960) datorsystem är all data digital.
Data finns i tre tillstånd: data i vila , data under transport och data som används . Data i en dator rör sig i de flesta fall som parallella data . Data som flyttas till eller från en dator flyttas i de flesta fall som seriedata . Data som kommer från en analog enhet, såsom en temperatursensor, kan konverteras till digital med en analog-till-digital-omvandlare . Data som representerar kvantiteter , tecken eller symboler på vilka operationer utförs av en dator lagras och registreras på magnetiska , optiska , elektroniska eller mekaniska inspelningsmedia och sänds i form av digitala elektriska eller optiska signaler. Data passerar in och ut från datorer via kringutrustning .
Fysiska datorminneselement består av en adress och en byte/ord med datalagring. Digitala data lagras ofta i relationsdatabaser , som tabeller eller SQL-databaser, och kan i allmänhet representeras som abstrakta nyckel/värdepar. Data kan organiseras i många olika typer av datastrukturer , inklusive matriser, grafer och objekt . Datastrukturer kan lagra data av många olika typer , inklusive siffror , strängar och till och med andra datastrukturer .
Egenskaper
Metadata hjälper till att översätta data till information. Metadata är data om datan. Metadata kan vara underförstådda, specificerade eller givna.
Data som rör fysiska händelser eller processer kommer att ha en tidsmässig komponent. Denna tidsmässiga komponent kan vara underförstådd. Detta är fallet när en enhet som en temperaturlogger tar emot data från en temperatursensor . När temperaturen tas emot antas det att data har en tidsreferens på nu . Så enheten registrerar datum, tid och temperatur tillsammans. När dataloggern kommunicerar temperaturer måste den även rapportera datum och tid som metadata för varje temperaturavläsning.
I grund och botten följer datorer en sekvens av instruktioner de ges i form av data. En uppsättning instruktioner för att utföra en given uppgift (eller uppgifter) kallas ett program . Ett program är data i form av kodade instruktioner för att styra driften av en dator eller annan maskin. I det nominella fallet kommer programmet, som exekveras av datorn, att bestå av maskinkod . De lagringselement som manipuleras av programmet, men som faktiskt inte exekveras av den centrala processorenheten (CPU), är också data. När det är mest väsentligt är ett enda datum ett värde lagrat på en specifik plats. Därför är det möjligt för datorprogram att arbeta på andra datorprogram genom att manipulera deras programmatiska data.
För att lagra databytes i en fil måste de serialiseras i ett filformat . Vanligtvis lagras program i speciella filtyper som skiljer sig från de som används för annan data. Körbara filer innehåller program; alla andra filer är också datafiler . Men körbara filer kan också innehålla data som används av programmet som är inbyggt i programmet. I synnerhet har vissa körbara filer ett datasegment , som nominellt innehåller konstanter och initiala värden för variabler, som båda kan betraktas som data.
Gränsen mellan program och data kan bli suddig. En tolk är till exempel ett program. Indata till en tolk är i sig ett program, bara inte ett som uttrycks på inhemskt maskinspråk . I många fall kommer det tolkade programmet att vara en textfil som kan läsas av människor, som manipuleras med ett textredigeringsprogram . Metaprogrammering innebär på liknande sätt att program manipulerar andra program som data. Program som kompilatorer , länkare , debuggers , programuppdateringar , virusskannrar och liknande använder andra program som sina data.
En användare kan till exempel först instruera operativsystemet att ladda ett ordbehandlingsprogram från en fil och sedan använda det pågående programmet för att öppna och redigera ett dokument som är lagrat i en annan fil. I det här exemplet skulle dokumentet betraktas som data. Om ordbehandlaren också har en stavningskontroll , så skulle ordlistan (ordlistan) för stavningskontrollen också betraktas som data. Algoritmerna som används av stavningskontrollen för att föreslå korrigeringar skulle vara antingen maskinkoddata eller text i något tolkbart programmeringsspråk .
I en alternativ användning kallas binära filer (som inte är läsbara för människor ) ibland data till skillnad från mänskligt läsbar text .
Den totala mängden digital data under 2007 uppskattades till 281 miljarder gigabyte (281 exabyte ).
Datanycklar och värden, strukturer och uthållighet
Nycklar i data ger sammanhanget för värden. Oavsett datastruktur finns det alltid en nyckelkomponent närvarande. Nycklar i data och datastrukturer är väsentliga för att ge mening åt datavärden. Utan en nyckel som direkt eller indirekt är associerad med ett värde, eller samling av värden i en struktur, blir värdena meningslösa och upphör att vara data. Det vill säga att det måste finnas en nyckelkomponent kopplad till en värdekomponent för att den ska betraktas som data. [ citat behövs ]
Data kan representeras i datorer på flera sätt, enligt följande exempel:
Bagge
- Random Access Memory (RAM) innehåller data som CPU:n har direkt tillgång till. En CPU får endast manipulera data inom dess processorregister eller minne. Detta är i motsats till datalagring, där CPU:n måste styra överföringen av data mellan lagringsenheten (disk, band...) och minne. RAM är en uppsättning linjära sammanhängande platser som en processor kan läsa eller skriva genom att tillhandahålla en adress för läs- eller skrivoperationen. Processorn kan arbeta på vilken plats som helst i minnet när som helst i vilken ordning som helst. I RAM är det minsta dataelementet den binära biten . Möjligheterna och begränsningarna för åtkomst till RAM är processorspecifika. I allmänhet huvudminnet arrangerat som en grupp av platser som börjar vid adress 0 ( hexadecimal 0). Varje plats kan vanligtvis lagra 8 eller 32 bitar beroende på datorns arkitektur .
Nycklar
- Datanycklar behöver inte vara en direkt hårdvaruadress i minnet. Indirekta , abstrakta och logiska nycklarkoder kan lagras tillsammans med värden för att bilda en datastruktur . Datastrukturer har förutbestämda förskjutningar (eller länkar eller vägar) från början av strukturen, i vilka datavärden lagras. Därför består datanyckeln av nyckeln till strukturen plus offset (eller länkar eller vägar) in i strukturen. När en sådan struktur upprepas och lagrar variationer av datavärdena och datanycklarna inom samma repeterande struktur, kan resultatet anses likna en tabell , där varje element i den repeterande strukturen anses vara en kolumn och varje upprepning av strukturen betraktas som en rad i tabellen. I en sådan organisation av data är datanyckeln vanligtvis ett värde i en (eller en sammansättning av värdena i flera) av kolumnerna.
Organiserade återkommande datastrukturer
- Tabellvyn av återkommande datastrukturer är bara en av många möjligheter . Upprepade datastrukturer kan organiseras hierarkiskt , så att noder är länkade till varandra i en kaskad av förälder-barn-relationer. Värden och potentiellt mer komplexa datastrukturer är kopplade till noderna. Sålunda tillhandahåller nodhierarkin nyckeln för att adressera datastrukturerna associerade med noderna. Denna representation kan ses som ett inverterat träd . T.ex. moderna datoroperativsystems filsystem är ett vanligt exempel; och XML är en annan.
Sorterade eller beställda data
- Data har vissa inneboende egenskaper när de sorteras på en nyckel . Alla värden för underuppsättningar av nyckeln visas tillsammans. När man sekventiellt passerar genom grupper av data med samma nyckel, eller en delmängd av nyckeländringarna, hänvisas detta till i databehandlingscirklar som en paus eller en kontrollpaus . Det underlättar särskilt aggregeringen av datavärden på delmängder av en nyckel.
Perifer förvaring
- Fram till tillkomsten av icke-flyktigt bulkminne som flash uppnåddes beständig datalagring traditionellt genom att skriva data till externa blockenheter som magnetband och diskenheter . Dessa anordningar söker vanligtvis till en plats på det magnetiska mediet och läser eller skriver sedan datablock av en förutbestämd storlek. I detta fall är sökplatsen på media datanyckeln och blocken är datavärdena. Tidigare använda rådiskdatafilsystem eller skivoperativsystem reserverade sammanhängande block på skivenheten för datafiler . I dessa system kunde filerna fyllas på och ta slut på datautrymme innan all data hade skrivits till dem. Så mycket oanvänt datautrymme reserverades improduktivt för att säkerställa tillräckligt ledigt utrymme för varje fil. Senare introducerade filsystem partitioner . De reserverade block med skivdatautrymme för partitioner och använde de tilldelade blocken mer ekonomiskt, genom att dynamiskt tilldela block av en partition till en fil efter behov. För att uppnå detta var filsystemet tvungen att hålla reda på vilka block som användes eller inte användes av datafiler i en katalog eller filallokeringstabell. Även om detta utnyttjade skivdatautrymmet bättre, resulterade det i fragmentering av filer över skivan och åtföljande prestandakostnader på grund av ytterligare söktid för att läsa data. Moderna filsystem omorganiserar fragmenterade filer dynamiskt för att optimera filåtkomsttider. Ytterligare utvecklingar inom filsystem resulterade i virtualisering av skivenheter, dvs där en logisk enhet kan definieras som partitioner från ett antal fysiska enheter.
Indexerad data
- Att hämta en liten delmängd av data från en mycket större uppsättning kan innebära ineffektiv sökning genom data sekventiellt. Index är ett sätt att kopiera ut nycklar och platsadresser från datastrukturer i filer, tabeller och datamängder och sedan organisera dem med inverterade trädstrukturer för att minska tiden det tar att hämta en delmängd av originaldata. För att göra detta måste nyckeln för den delmängd av data som ska hämtas vara känd innan hämtning påbörjas. De mest populära indexen är B-trädet och de dynamiska hash- nyckel-indexeringsmetoderna. Indexering är overhead för arkivering och hämtning av data. Det finns andra sätt att organisera index, t.ex. sortera nycklarna och använda en binär sökalgoritm .
Abstraktion och inriktning
- Objektorienterad programmering använder två grundläggande koncept för att förstå data och programvara:
- Den taxonomiska rangstrukturen för klasser , som är ett exempel på en hierarkisk datastruktur; och
- vid körning, skapandet av referenser till datastrukturer i minnet för objekt som har instansierats från ett klassbibliotek .
Det är först efter instansiering som ett objekt av en specificerad klass existerar. Efter att ett objekts referens har rensats upphör objektet också att existera. Minnesplatserna där objektets data lagrades är skräp och klassificeras om till oanvänt minne tillgängligt för återanvändning.
Databasdata
- Tillkomsten av databaser introducerade ytterligare ett lager av abstraktion för beständig datalagring. Databaser använder metadata och ett strukturerat frågespråksprotokoll mellan klient- och serversystem , kommunicerar över ett datornätverk , med hjälp av ett tvåfas commit- loggningssystem för att säkerställa transaktionens fullständighet när data sparas.
Parallelldistribuerad databehandling
- Moderna skalbara och högpresterande databeständighetsteknologier, som Apache Hadoop , förlitar sig på massivt parallellt distribuerad databearbetning över många vanliga datorer på ett nätverk med hög bandbredd. I sådana system distribueras data över flera datorer och därför måste vilken speciell dator som helst i systemet vara representerad i nyckeln till datan, antingen direkt eller indirekt. Detta gör det möjligt att skilja mellan två identiska uppsättningar data, som var och en bearbetas på en annan dator samtidigt.