Inxhinieria e të dhënave

Inxhinieria e të dhënave është një qasje e inxhinierisë softuerike për ndërtimin e sistemeve të të dhënave, për të mundësuar mbledhjen dhe përdorimin e data. Këto të dhëna zakonisht përdoren për të mundësuar analizën e mëvonshme dhe shkencën e të dhënave, e cila shpesh përfshin mesimin e makinerive  Bërja e të dhënave të përdorshme zakonisht përfshin llogaritje dhe ruajtje të konsiderueshme, si dhe përpunimin e të dhënave.

## Historia 
Rreth viteve 1970/1980 u krijua termi metodologjia e inxhinierisë së informacionit (IEM) për të përshkruar dizajnin e databazave dhe përdorimin e softuerit për analizën dhe përpunimin e të dhënave. Këto teknika ishin të destinuara të përdoren nga administratorët e databazave (DBA) dhe nga analistët e sistemeve bazuar në një kuptim të nevojave operacionale për përpunim të organizatave për vitet 1980. Në veçanti, këto teknika kishin për qëllim të ndihmonin në mbushjen e urës midis planifikimit strategjik të biznesit dhe sistemeve të informacionit. Një kontribues kyç i hershëm (i quajtur shpesh “baba” i metodologjisë së inxhinierisë së informacionit) ishte australiani **Clive Finkelstein**, i cili shkroi disa artikuj mbi këtë temë midis viteve 1976 dhe 1980, dhe gjithashtu bashkë-shkroi një raport ndikues të **Institutit Savant** mbi këtë temë me James Martin. Gjatë disa viteve në vazhdim, Finkelstein vazhdoi punën në një drejtim më të orientuar nga biznesi, i cili kishte për qëllim të adresonte një mjedis biznesi që po ndryshonte shpejt; Martin vazhdoi punën në një drejtim më të përqendruar në përpunimin e të dhënave. Nga viti 1983 deri në 1987, Charles M. Richter, i udhëhequr nga Clive Finkelstein, luajti një rol të rëndësishëm në ristrukturimin e IEM si dhe ndihmoi në dizajnimin e produktit softuerik IEM (të dhënat e përdoruesit), që ndihmoi në automatizimin e IEM.
Në fillim të viteve 2000, të dhënat dhe mjete për përpunimin e të dhënave zakonisht ruheshin nga ekipet e teknologjisë së informacionit (IT) në shumicën e kompanive. Ekipet e tjera më pas përdornin të dhënat për punën e tyre (p.sh. raportim), dhe zakonisht kishte pak përputhshmëri në aftësitë për të punuar me të dhëna midis këtyre pjesëve të biznesit.

Në fillim të viteve 2010, me rritjen e internetit, rritja masive e volumit, shpejtësisë dhe larmisë së të dhënave çoi në përdorimin e termit "big data" për të përshkruar vetë të dhënat, dhe kompanitë teknologjike të bazuara në të dhëna si Facebook dhe Airbnb filluan të përdorin shprehjen **inxhinier i të dhënave** Implementimet e njohura përfshijnë Apache Spark dhe TensorFlow, specifik për mësim të thellë. Implementime më të fundit, të tilla si **Differential/Timely Dataflow**, kanë përdorur llogaritje inkrementale për përpunim të të dhënave shumë më efikas.

### Ruajtja 
Të dhënat ruhen në mënyra të ndryshme, një nga faktorët kryesorë vendimtarë është se si do të përdoren të dhënat. Inxhinierët e të dhënave optimizojnë sistemet e ruajtjes dhe përpunimit të të dhënave për të ulur kostot. Ata përdorin kompresimin e të dhënave, ndarjen dhe arkivimin.

#### Bazat e të dhënave 
Nëse të dhënat janë të strukturuara dhe kërkohet ndonjë formë e përpunimit të transaksioneve online, atëherë zakonisht përdoren bazat e të dhënave. Në fillim përdroheshin kryesisht bazat e të dhënave relacionale, me garanci të forta për saktësinë e transaksioneve ACID; shumica e bazave të të dhënave relacione përdorin SQL për pyetjet e tyre. Megjithatë, me rritjen e të dhënave në vitet 2010, bazat e të dhënave NoSQL gjithashtu u bënë të njohura, pasi që ato mund të shkallëzoheshin horizontalisht më lehtë se bazat e të dhënave relacionale duke hequr garancitë e transaksioneve ACID, si dhe duke zvogëluar mosmarrëveshjen midis objekteve-relacionale. Së fundmi, bazat e të dhënave NewSQL — të cilat përpiqen të lejojnë shkallëzim horizontal duke ruajtur garancitë ACID — janë bërë të njohura.

#### Depozitat e të dhënave 
Artikulli kryesor: Depozita e të dhënave

Nëse të dhënat janë të strukturuara dhe kërkohet përpunim analitik online (por jo përpunim transaksionesh në linjë), atëherë depot e të dhënave janë një zgjedhje kryesore. Ato mundësojnë analizën e të dhënave, minimin dhe inteligjencën artificiale në një shkallë shumë më të madhe sesa mund të lejojnë bazat e të dhënave,Analistët e biznesit, inxhinierët e të dhënave dhe shkencëtarët e të dhënave mund të aksesojnë depot e të dhënave duke përdorur mjete si SQL ose softuer për inteligjencë të biznesit.
* Ruajtja me blloqe (Block storage) e ndan të dhënat në copa me madhësi të rregullt;

### Menaxhimi 
Numri dhe llojet e ndryshme të proceseve të të dhënave dhe vendndodhjeve të ruajtjes mund të bëhen të vështira për përdoruesit. Kjo ka frymëzuar përdorimin e një sistemi menaxhimi të rrjedhave të punës (workflow management system) (p.sh. Airflow) për të lejuar që detyrat e të dhënave të specifikohen, krijohen dhe monitorohen.

Detyrat shpesh specifikohen si një grafik i drejtuar aciklik (Directed Acyclic Graph – DAG).

### Modelimi i të dhënave 
Artikulli kryesor: Modelimi i të dhënave

Modelimi i të dhënave është analiza dhe paraqitja e kërkesave për të dhëna të një organizate. Ai prodhon një model të të dhënave — një paraqitje abstrakte që organizon konceptet biznesore dhe marrëdhëniet dhe kufizimet mes tyre. Artefaktet që rezultojnë udhëheqin komunikimin mes palëve të interesit biznesore dhe teknike dhe informojnë projektimin e bazës së të dhënave.

Një konventë e zakonshme dallon tre nivele modelesh: modelimin dimensional për analiza dhe ruajtje të të dhënave (data warehousing),dhe përdorimin e diagrameve të klasave UML për të shprehur modele konceptuale ose logjike në mjete modelimi me përdorim të përgjithshëm.

Modelet e formuara mirë synojnë të përmirësojnë cilësinë dhe ndërveprimin e të dhënave duke aplikuar standarde të qarta emërtimi, normalizim dhe kufizime integriteti. Ata janë të fokusuar në gatishmërinë për prodhim të të dhënave dhe në elemente si formatet, qëndrueshmëria, shkallëzimi dhe siguria. Inxhinierët e të dhënave zakonisht vijnë nga një sfond i inxhinierisë së softuerit dhe janë të aftë në gjuhë programimi si Java, Python, Scala dhe Rust.

## Shih gjithashtu 
* Të dhëna masive - "Big Data"

* Shkenca kompjuterike
* Teknologji informative
* Lista e softuerëve për shkencën e të dhënave
* Inxhinieri softuerike

## Referime 
## Lexime të mëtejshme 
* Hares, John S. (1992). Information Engineering for the Advanced Practitioner. Wiley. .
* Finkelstein, Clive (1989). An Introduction to Information Engineering: From Strategic Planning to Information Systems. Addison-Wesley. .
* Finkelstein, Clive (1992). Information Engineering: Strategic Systems Development. Addison-Wesley. .
* Ian Macdonald (1986). "Information engineering". in: Information Systems Design Methodologies. T.W. Olle et al. (ed.). North-Holland.
* Ian Macdonald (1988). "Automating the Information engineering methodology with the Information Engineering Facility". In: Computerized Assistance during the Information Systems Life Cycle. T.W. Olle et al. (ed.). North-Holland.
* James Martin and Clive Finkelstein. (1981). Information engineering. Technical Report (2 volumes), Savant Institute, Carnforth, Lancs, UK.
* James Martin (1989). Information engineering. (3 volumes), Prentice-Hall Inc.
* Finkelstein, Clive (2006). Enterprise Architecture for Integration: Rapid Delivery Methods and Technologies. Artech House. .
* Reis, Joe; Housley, Matt (2022). Fundamentals of Data Engineering. O'Reilly Media. .

## Linke të jashtme 
* Zhvillimi i Shpejtë i Aplikacioneve