Duomenų saugykla

**Duomenų saugykla** – organizacijos elektroninių duomenų talpykla. Duomenų saugykla - dalykiškai orientuotas, integruotas, nekintantis ir skirtingas laike duomenų rinkinys, naudotojų naudojamas sprendimams priimti. Duomenų saugyklose yra saugomi apibendrinti duomenys, ataskaitos, analizių duomenys ir t. t. Šie duomenys gali būti naudojami įvairiems tikslams. Duomenų saugykloje duomenys yra saugomi apie tam tikrus įmonės dalykus (pvz., klientus, produktus, pardavimus). Duomenų saugykla skirta išgauti ir analizuoti duomenis, tačiau juos reikia transformuoti, užkrauti, valdyti žodyno duomenis, tai taip pat laikoma esminėmis duomenų saugyklos sistemos dalimis.

## Duomenų saugyklos ypatumai

### Duomenų darna
Duomenys duomenų saugykloje yra integruoti ir tarpusavyje darnūs. Darna yra labai svarbus duomenų saugyklos aspektas, kadangi duomenys yra imami iš daugelio šaltinių. Duomenų saugykloje duomenys yra apdorojami (konvertuojami, formatuojami, išdėstomi nuosekliai, apibendrinami ir t. t.), tam kad būtų tarpusavyje darnūs. Tam gali būti naudojami įvairūs išgavimo, transformavimo, užkrovimo įrankiai.

Kitas duomenų saugyklų aspektas tas, kad duomenys yra skirtingi laike. Tai reiškia, kad kiekvienas duomenų vienetas duomenų saugykloje yra tikslus tam tikru laiko momentu. Kiekvienas duomenų saugyklos įrašas turi savo laiko žymę, kuri nurodo laiko momentą kada įrašas yra tikslus, ir apdorojimo, tranzakcijos laiką. Pirmasis laikas, tai laikas kuris yra visada nurodomas tam tikras laikas, žymintis laiko momentą, kada įrašas yra tikslus. Kitu laiku jis nebūtinai atitiks tikrovę.

### Duomenų nekintamumas
Duomenų saugykloje duomenys nekinta, tai reiškia, kad nauji duomenys įrašomi, juos pridedant prie jau esamų duomenų, o ne juos pakeičiant. Duomenų saugykloje kaupiami dalykinės srities istoriniai duomenys.

## Privalumai ir trūkumai

### Privalumai
Duomenų saugyklos privalumai
* Duomenų saugykla teikia bendrą duomenų modelį visiems duomenims, nepriklausomai nuo srities ir šaltinio. Tai leidžia lengviau kurti ataskaitas ir analizuoti informaciją, nei tai būtų atliekama naudojant skirtingus duomenų modelių skirtingiems šaltiniams
* Prieš įkeliant duomenis į duomenų saugyklą, identifikuojami ir pašalinami darnos netikslumai. Tai stipriai supaprastina duomenų analizę ir ataskaitų kūrimą.
* Duomenis duomenų saugykloje kontroliuoja naudotojai, net jei šaltinio sistemos duomenis ištrinami, duomenis duomenų saugykloje gali būti saugoma ilgą laiką.
* Duomenų saugykla yra atskirta nuo operacinės sistemos, todėl duomenys išgaunami nesulėtinant OS darbo.
* Duomenų saugyklos gali saugoti sprendimo priėmimo sistemoms reikalingus duomenis (pvz., nurodo, kuris skyrius pasiekė didžiausią apyvartą).
* Duomenų saugyklos gali dirbti kartu su OS taikomosiomis programomis.

### Trūkumai
Duomenų saugyklų trūkumai:
* Su laiku brangus duomenų saugyklų išlaikymas.
* Gali moraliai pasenti reliatyviai greitai. Kainuoja pateikti optimalią informaciją organizacijai.
* Dažnai yra ryškus skirtumas tarp duomenų saugyklos ir operacinių sistemų. Kartais reikia išvystyti dubliuojantį funkcionalumą.

## Duomenų saugyklos architektūra
Duomenų saugyklos architektūra galima apibūdinti 4 sluoksniais:
* Operacinis, tranzakcijų duomenų bazės lygmuo: duomenų šaltinis, saugomis pagrindiniai duomenis skirti taikomosioms programoms,
* Informacinis (duomenų sandėlio) lygmuo: saugomi integruoti duomenys, istoriškai primityvūs duomenys, kurie negali būti atnaujinti. Šiame lygmenyje taip pat saugomi išvestiniai duomenys.
* Duomenų prieigos (skyriaus, departamento arba vitrinos) lygmuo: saugomi vien tik išvestiniai duomenys. Duomenų prieigos lygmens duomenys yra padalinti pagal atitinkamų skyrių poreikius.
* Meta duomenų (individualus) lygmuo: direktorija duomenų, kurie dažniausiai naudojami euristinei analizei. Duomenis dažniausiai daug detalesni nei operacinės sistemos direktorijos duomenys.

## Normalizuota ir dimensinė duomenų saugojimo struktūros
Egzistuoja du pagrindiniai duomenų saugojimo būdai: normalizuota ir dimensinė struktūra.

Dimensiniame būde tranzakciniai duomenis skaidomi į „faktus“, kurie yra skaitlingesni tranzakcijų duomenys, ir „dimensijas“, duomenis suteikiantis kontekstą faktams. Pvz., pardavimų tranzakcijų duomenys gali būti suskaidyti į „faktus“ tokius kaip „užsakymai“ (ir „sumokėta kaina“ už produktus), ir į dimensijas „užsakymo data“, „klientas“, „produkto nr.“, „pristatymo data“, užsakymo „pardavimų vadybininkas“. Pagrindinis šio būdo privalumas yra tas, kad duomenų saugyklą yra lengviau suprasti ir naudoti. Taip pat šiuo būdu duomenis išgaunami labai greitai.
Pagrindinis trūkumas yra:
* Sudėtingas duomenų įkėlimas iš skirtingų operacinių sistemų, siekiant išsaugoti „faktų“ ir „dimensijų“ darną;
* Sudėtinga modifikuoti duomenų saugyklos struktūrą, jeigu organizacijoje, kurios dalykinė srities duomenis saugomi, įvyksta verslo pokyčiai.

Normalizuotos struktūros būdu duomenis duomenų saugykloje saugomi pagal tam tikrą Kodo (*Codd*) normalizacijos taisyklės laipsnį. Lentelės yra sugrupuojamos kartu, pagal dalykines sritis, kad būtų atspindėtos bendros duomenų kategorijos (pvz., duomenis apie klientus, produktus, finansus ir t. t.) Pagrindinis šio būdo privalumas, kad paprasta įkelti naujus duomenis į duomenų bazę. Šio būdo trūkumas yra tai, kad naudojama daug lentelių ir naudotojams gali būti sudėtinga apjungti duomenis iš skirtingų šaltinių į prasmingą informaciją ir prieiti prie informacijos be detalaus duomenų saugyklos šaltinių duomenų ir duomenų struktūrų supratimo, t. y. sudėtingas prieinamumas palyginus su dimensiniu būdu.

Šie būdai neprieštarauja vienas kitam, kadangi dimensiniame būde gali būti naudojamas tam tikro laipsnio normalizacija.

## Iš viršaus į apačią projektavimo metodika
Bilas Inmonas (*Bill Inmon*) – vienas pirmųjų autorių, aprašiusių duomenų saugyklas, apibrėžė duomenų saugyklą kaip visos įmonės duomenų centralizuotą talpyklą B. Inmonas vienas iš palaikančių „iš viršaus į apačią“ duomenų saugyklos projektavimo metodiką, pagal kurią duomenų saugykla naudojama projektuoti normalizuotą įmonės duomenų modelį. Atomiški duomenis saugomi pačiame žemiausiame duomenų saugyklos detalių lygmenyje. Sukuriamos dimensinės vitrinos () specifiniams verslo procesams ar specifiniams skyriams, kurie naudojasi duomenų saugykla. Pagal Inmono viziją duomenų saugykla yra „Apjungtas informacijos centras“ (*center of the "Corporate Information Factory" (CIF)*), kuriuo sukuriama loginė struktūra įgyvendinti verslo žinias ir verslo valdymo galimybes. CIF veikia naudodamas verslo operacijų duomenis.

## Duomenų saugyklos ir operacinės sistemos
Operacinės sistemos yra optimizuotos išsaugoti duomenų darną (*data integrity*) ir pagreitinti verslo tranzakcijų įrašymą naudojant duomenų bazės normalizaciją ir esybių - ryšių modelį. Operacinių sistemų projektuotojai iš esmės laikosi Kodo duomenų normalizacijos taisyklių, tam kad būtų užtikrinta duomenų darną, vientisumas. Kodas apibrėžė penkias didėjančio išskaidymo normalizacijos taisykles. Pilnai normalizuota suprojektuota duomenų bazė, kuri tenkina visas 5 Kodo normalizacijos taisykles) dažnai reiškia, kad verslo informacija bus saugoma daugybėje lentelių. Reliacinės duomenų bazės yra efektyvios suvaldyti ryšius egzistuojančius tarp lentelių. Duomenų bazės turi greitą įtraukti/atnaujinti veikimą, kadangi tik mažam duomenų kiekiui šiose lentelėse yra daroma įtaka kiekvieną kartą, kai vykdoma tranzakcija. Tam, kad pagerintume veikimą, senesni duomenis periodiškai ištrinami iš operacinių sistemų.

Duomenų saugyklose egzistuoja optimizuotas duomenų išgavimas. Dažnai duomenys duomenų saugyklose yra denormalizuojami, naudojant žvaigždės schemą. Taip pat tam, kad būtų padidintas duomenų išgavimas, duomenų saugyklose dažnai duomenys saugomi kelis kartus, skirtingo grūdėtumo. Naudojamas labai mažas grūdėtumas (pvz., visi paradavimai), kai duomenys labai reikalingi detalūs, ir agreguoti duomenis, didelis grūdėtumas, kai reikia apibendrintų duomenų (pvz., savaitiniai pardavimai, išvestiniai savaitės duomenys).

Duomenų saugyklose išsaugomi ir tie duomenys (išsaugomi visi duomenys), kurie būna panaikinami operacinių sistemose.