Të dhënat (shkenca kompjuterike)

parapamje|Lloje të ndryshme të të dhënave te cilat mund të vizualizohen përmes një pajisjeje kompjuterike.
Në shkencën kompjuterike, **të dhënat** (të trajtuara si njëjës, shumës ose si emër masiv ) janë çdo varg me një ose më shumë simboleve; **e dhëna** është një njësi e vetme e të dhënave. Të dhënat kërkojnë interpretim për t'u shndërruar në informacion. Të dhënat dixhitale janë të dhëna që përfaqësohen duke përdorur sistemin binar të numrave të përbërë nga njëshet (1) dhe zerot (0), në vend të përfaqësimit analog. Në sistemet kompjuterike moderne (pas vitit 1960), të gjitha të dhënat janë dixhitale.

Të dhënat ekzistojnë në tre gjendje: të dhënat në pushim, të dhënat në transmetim dhe të dhënat në përdorim. Të dhënat brenda një kompjuteri, në shumicën e rasteve, lëvizin si të dhëna paralele. Të dhënat që lëvizin drejt ose nga një kompjuter, në shumicën e rasteve, lëvizin si të dhëna serike. Të dhënat e marra nga një pajisje analoge, siç është një sensor temperature, mund të konvertohen në formë dixhitale duke përdorur një konvertues analog-në-dixhital. Të dhënat që përfaqësojnë sasi, karaktere ose simbole mbi të cilat kompjuteri kryen operacione nga një ruhen dhe regjistrohen në media regjistrimi magnetike, optike, elektronike ose mekanike dhe transmetohen në formën e sinjaleve dixhitale elektrike ose optike.  Të dhënat hyjnë dhe dalin nga kompjuterët përmes pajisjeve periferike.

Elementet fizike të memories së kompjuterit përbëhen nga një adresë dhe një bajt/fjalë për ruajtjen e të dhënave. Të dhënat dixhitale shpesh ruhen në baza të dhënash relacionale, si tabela ose baza të dhënash SQL, dhe në përgjithësi mund të përfaqësohen si çifte abstrakte kyç/vlerë. Të dhënat mund të organizohen në shumë lloje të ndryshme të strukturave të të dhënave, përfshirë vargjet, grafet dhe objektet. Strukturat e të dhënave mund të ruajnë të dhëna të shumë tipeve të ndryshme, duke përfshirë numra, vargje (strings) dhe madje edhe struktura të tjera të të dhënave.

## Karakteristikat 
Metadatat ndihmojnë në shndërrimin e të dhënave në informacion. Metadatat janë të dhëna rreth të dhënave. Metadatat mund të jenë të nënkuptuara, të specifikuara ose të dhëna drejtpërdrejt.

Të dhënat që lidhen me ngjarjet ose proceset fizike do të kenë një komponent kohor. Ky komponent kohor mund të jetë i nënkuptuar. Kjo ndodh kur një pajisje, si p.sh. një regjistrues temperature merr të dhëna nga një sensor temperature. Kur merret temperatura, supozohet se të dhënat kanë një referencë kohore të momentit *tani*. Pra, pajisja regjistron datën, kohën dhe temperaturën së bashku. Kur regjistruesi i të dhënave transmeton temperaturat, ai duhet gjithashtu të raportojë datën dhe kohën si metadata për secilin regjistrim temperature.

Në thelb, kompjuterët ndjekin një varg udhëzimesh që u jepen në formën e të dhënave. Një grup udhëzimesh për të kryer një detyrë (ose disa detyra) quhet *program*. Një program është e dhënë në formën e udhëzimeve të koduara për të kontrolluar funksionimin e një kompjuteri ose makine tjetër.  Në rastin tipik, programi,  ashtu siç ekzekutohet nga kompjuteri, do të përbëhet nga kodi i makinës . Elementet e memories të manipuluara nga programi, por që në të vërtetë nuk ekzekutohen nga njësia qendrore e përpunimit (CPU), janë gjithashtu të dhëna. Në rastin më të thjeshtë, një e dhënë e vetme është një vlerë e ruajtur në një vendndodhje specifike. Prandaj, është e mundur që programet kompjuterike të operojnë mbi programe të tjera kompjuterike, duke manipuluar të dhënat e tyre programore.

Për të ruajtur bajtet e të dhënave në një skedar, ato duhet të serializohen në një format skedari. Zakonisht, programet ruhen në lloje të veçanta skedarësh, të ndryshëm nga ata që përdoren për të dhëna të tjera. Skedarët egzekutues përmbajnë programe; të gjithë skedarët e tjerë janë gjithashtu skedarë të dhënash. Megjithatë, skedarët ekzekutues mund të përmbajnë gjithashtu të dhëna të përdorura nga programi i cili është i integruar në program. Në veçanti, disa skedarë egzekutues kanë një segment të dhënash, i cili zakonishtë përmban konstante dhe vlera fillestare për variablat, të cilat të dyja mund të konsiderohen të dhëna.

Vija ndarëse midis programit dhe të dhënave mund të bëhet e paqartë. Një interpretues, për shembull, është një program. Të dhënat hyrëse në një interpretues janë vetë një program, thjeshtë jo i shprehur në gjuhën amtare të makinës. Në shumë raste, programi i interpretuar do të jetë një skedar teksti i lexueshëm nga njeriu, i cili manipulohet me një program per redaktimin e tekstit. Metaprogramimi në mënyrë të ngjashme përfshin programe që manipulojnë programe të tjera si të dhëna. Programe si kompilatorët (përpiluesit), lidhësit,diagnostikuesit (debuggers), përditësuesit e programeve, skanerët e virusëve dhe të tilla përdorin programe të tjera si të dhëna të tyre.

Për shembull, një përdorues  mund t’i japë fillimisht sistemit operativ udhëzimin për të ngarkuar një program për përpunimin e tekstit nga një skedar, dhe më pas të përdorë programin që po ekzekutohet për të hapur dhe redaktuar një dokument të ruajtur në një skedar tjetër.Në këtë shembull, dokumenti do të konsiderohej e dhënë(data). Nëse programi i përpunimit të tekstit përfshin edhe një kontrollues drejtëshkrimi ,atëherë fjalori (lista e fjalëve) për kontrolluesin e drejtshkrimit do të konsiderohej gjithashtu e dhënë. Algoritmet e përdorura nga kontrolluesi i drejtëshkrimit për të sugjeruar korrigjime do të ishin ose të dhëna në formë kodi makine ose tekst i shkruar në një gjuhe makine që mund të interpretohet.

Në një përdorim alternativ, skedarët binarë (të cilët nuk janë të lexueshëm nga njerëzit ) shpesh quhen *të dhëna* për dallim nga *teksti* i lexueshëm nga njerëzit. 

Sasia totale e të dhënave dixhitale në vitin 2007 u vlerësua të ishte 281 miliardë gigabajt (281 eksabajt).  

## Çelësat dhe vlerat e të dhënave, strukturat dhe qëndrueshmëria 
Çelësat në të dhëna ofrojnë kontekstin për vlerat. Pavarësisht nga struktura e të dhënave, gjithmonë ekziston një komponent kyç. Çelësat në të dhëna dhe strukturat e të dhënave janë thelbësorë për t'u dhënë kuptim vlerave të të dhënave. Pa një çelës që lidhet drejtpërdrejtë ose tërthorazi me një vlerë ose koleksion vlerash në një strukturë, këto vlera bëhen të pakuptimta dhe nuk mund të konsiderohen të dhëna. Kjo do të thotë se duhet të ekzistojë një komponent kyç i lidhur me një komponent vlere për t’u konsideruar si e dhënë. &#x5B;''''&#x5D;

Të dhënat mund të përfaqësohen në kompjuterë në disa mënyra, si në shembujt e mëposhtëm:

### RAM 
* Memoria me qasje të rastësishëm (RAM) mban të dhëna në të cilat CPU-ja ka qasje të drejtpërdrejtë. Një CPU mund të manipulojë të dhëna vetëm brenda regjistrave të procesorit ose memories. Kjo është e ndryshme nga ruajtja e të dhënave, ku CPU-ja duhet të drejtojë transferimin e të dhënave midis pajisjes së ruajtjes (disk, shirit...) dhe memories. RAM është një varg vendndodhjesh të njëpasnjëshme lineare që një procesor mund t'i lexojë ose shkruajë duke ofruar një adresë për operacionin e leximit ose shkrimit. Procesori mund të veprojë në çdo vendndodhje në memorie në çdo kohë dhe në çdo renditje. Në RAM, elementi më i vogël i të dhënave është biti binar. Aftësitë dhe kufizimet e qasjes në RAM varen nga procesori. Në përgjithësi, memoria kryesore është e organizuar si një varg vendndodhjesh që fillojnë në adresën 0 (heksadecimal 0). Çdo vendndodhje mund të ruajë zakonisht 8 ose 32 bitë në varësi të arkitekturës së kompjuterit.

### Çelësat 
* Çelësat e të dhënave nuk kanë nevojë të jenë një adresë fizike e drejtpërdrejtë në memorie. Çelësat indirektë, abstraktë dhe logjikë mund të ruhen në lidhje me vlerat për të formuar një strukturë të dhënash. Strukturat e të dhënave kanë zhvendosje të paracaktuara (ose lidhje ose shtigje) nga fillimi i strukturës, në të cilat ruhen vlerat e të dhënave. Prandaj, çelësi i të dhënave përbëhet nga çelësi i strukturës plus zhvendosja (ose lidhjet ose shtigjet) në strukturë. Kur një strukturë e tillë përsëritet, duke ruajtur variacione të vlerave të të dhënave dhe çelësave të të dhënave brenda të njëjtës strukturë përsëritëse, rezultati mund të konsiderohet se i ngjan një tabele, në të cilën çdo element i strukturës përsëritëse konsiderohet të jetë një kolonë dhe çdo përsëritje e strukturës konsiderohet si një rresht i tabelës. Në një organizim të tillë të të dhënave, çelësi i të dhënave zakonisht është një vlerë në njërën prej kolonave.

### Struktura  të organizuara dhe të përsëritura të dhënave 
* Pamja tabelare e strukturave të të dhënave përsëritëse është vetëm një nga shumë mundësi. Strukturat e të dhënave përsëritëse mund të organizohen në mënyrë hierarkike, në mënyrë që nyjet të jenë të lidhura me njëra-tjetrën në një varg marrëdhëniesh prind-fëmijë. Vlerat, dhe potencialisht strukturat e të dhënave më komplekse  lidhen me këto nyje. Kështu, hierarkia nyjore siguron çelësin për adresimin e strukturave të të dhënave të lidhura me nyjet. Kjo paraqitje mund të imagjinohet si një pemë e përmbysur. Sistemet moderne të skedarëve të sistemit operativ janë një shembull i zakonshëm dhe XML është një tjetër.

### Të dhëna të renditura ose të organizuara sipas një rendi 
* Të dhënat kanë disa karakteristika të natyrshme kur renditen sipas një çelës. Të gjitha vlerat për nëngrupet e çelësit shfaqen së bashku. Kur kalohen në mënyrë sekuenciale përmes grupeve të të dhënave me të njëjtin çelës, ose kur një nëngrup i çelësit ndryshon, kjo në ciklet e përpunimit të të dhënave quhet ndërprerje ose ndërprerje kontrolli. Kjo lehtëson veçanërisht grumbullimin e vlerave të të dhënave në nëngrupet e një çelësi.

### Memorie periferike 
* Deri në shfaqjen e memories jo të paqëndrueshme me kapacitet, si p.sh. flash, ruajtja e qëndrueshme e të dhënave arrihej tradicionalisht duke i shkruar të dhënat në pajisje blloku të jashtme, si shirita magnetik dhe disqe të ngurta. Këto pajisje zakonisht kërkojnë një vendndodhje të caktuar në median magnetike dhe më pas lexojnë ose shkruajnë blloqe të dhënash me një madhësi të paracaktuar. Në këtë rast, vendndodhja e kërkimit në media është çelësi i të dhënave dhe blloqet janë vlerat e të dhënave. Sistemet e hershme të skedarëve për disqet e para përdornin blloqe të njëpasnjëshme të rezervuara në disk për skedarët e të dhënave. Në ato sisteme, skedarët mund të mbusheshin, dhe të mbeteshin pa hapësirë të lirë për të shkruar të gjitha të dhënat. Si rezultat, shumë hapësirë e papërdorur në disk rezervohej pa nevojë, vetëm për të siguruar hapësirë të mjaftueshme për secilin skedar. Sistemet e mëvonshme të skedarëve prezantuan ndarjet. Ato rezervonin blloqe hapësire në disk për secilën ndarje dhe i përdornin ato më ekonomikisht, duke u caktuar skedarëve blloqe nga ndarja përkatëse vetëm kur nevojiteshin. Për ta bërë këtë, sistemi i skedarëve duhej të mbante shënim se cilat blloqe ishin të përdorura ose të papërdorura nga skedarët, duke përdorur një katalog ose tabelë shpërndarjeje skedarësh. Megjithëse kjo qasje përmirësoi shfrytëzimin e hapësirës së diskut, solli edhe fragmentimin e skedarëve nëpër disk dhe, si pasojë, ulje performance për shkak të kohës shtesë të kërkimit që nevojitej për të lexuar të dhënat. Sistemet moderne të skedarëve i riorganizojnë skedarët e fragmentuar në mënyrë dinamike për të optimizuar kohët e qasjes. Zhvillimet e mëtejshme në sistemet e skedarëve rezultuan në virtualizimin e disqeve, pra mundësinë që një disk logjik të përcaktohet si një ndarje e përbërë nga disa disqe fizikë.

### Të dhëna të indeksuara 
* Marrja e një nëngrupi të vogël të të dhënave nga një grup shumë më i madh mund të nënkuptojë kërkim joefikas të të dhënave në mënyrë sekuenciale. **Indekset** janë një mënyrë për të kopjuar çelësat dhe adresat e vendndodhjes nga strukturat e të dhënave në skedarë, tabela dhe grupe të dhënash, dhe më pas për t'i organizuar ato duke përdorur struktura e pemëve të përmbysura në mënyrë që të shkurtohet koha e nevojshme për të gjetur një nën­grup të të dhënave origjinale. Për ta bërë këtë, çelësi i nën­grupit të të dhënave që duhet të merret duhet të jetë i njohur përpara fillimit të kërkimit. Indekset më të njohura janë pema B (B-tree) dhe metodat e indeksimit të çelësit dinamik të hash-it. Indeksimi është i tepërt për arkivimin dhe marrjen e të dhënave. Ka mënyra të tjera për të organizuar indekset, p.sh. renditja e çelësave dhe përdorimi i një algoritmi kërkimi binar.

### Abstraksioni dhe indirektësia 
* Programimi i orientuar nga objektet përdor dy koncepte themelore për të kuptuar të dhënat dhe softuerin:

# Struktura taksonomike e renditjes së *klasave*, e cila është një shembull i një strukture hierarkike të të dhënave; dhe
# në kohën e ekzekutimit, krijimi i referencave për strukturat e të dhënave në memorie të objekteve që janë instancuar nga një bibliotekë klasash .

Vetëm pas instancimit ekziston një objekt i një klase të caktuar. Pasi të fshihet referenca e një objekti, edhe objekti pushon së ekzistuari. Vendndodhjet e memories ku janë ruajtur të dhënat e objektit konsiderohen mbeturina dhe riklasifikohen si memorie e papërdorur, e disponueshme për përdorim të mëtejshëm.

### Të dhënat e bazës së të dhënave 
* Ardhja e bazave të të dhënave solli një shtresë të mëtejshme abstraksioni për ruajtjen e vazhdueshme të të dhënave. Bazat e të dhënave përdorin metadata dhe një protokoll të gjuhës së pyetjeve të strukturur (SQL) midis sistemeve klient dhe server, duke komunikuar nëpërmjet një rrjeti kompjuterik, dhe  duke përdorur një sistem regjistrimi dyfazësh të kryerjes së transaksioneve për të siguruar përfundimin e transaksioneve, gjatë ruajtjes e të dhënave.

### Përpunimi i të dhënave në mënyrë paralele dhe të shpërndarë 
* Teknologjitë moderne për ruajtjen e qëndrueshme të të dhënave, të shkallëzueshme dhe me performancë të lartë të tilla si Apache Hadoop, mbështeten në përpunimin masiv paralel të shpërndarë të të dhënave në shumë kompjuterë të zakonshëm në një rrjet me gjerësi të lartë brezi. Në sisteme të tilla, të dhënat shpërndahen në shumë kompjuterë dhe për këtë arsye çdo kompjuter i veçantë në sistem duhet të përfaqësohet në çelësin e të dhënave, qoftë drejtpërdrejt ose tërthorazi. Kjo mundëson diferencimin midis dy grupeve identike të të dhënave, secili duke u përpunuar në një kompjuter të ndryshëm në të njëjtën kohë.

## Shih edhe 
* Big data
* Data
* Data dictionary
* Data modeling
* Data stream
* Data set
* Database index
* State (computer science)
* Tuple

## Referime