Datubāze

Vikipēdijas raksts
(Pāradresēts no Datu bāze)
Pārlēkt uz: navigācija, meklēt

Datubāze ir informācijas kopums ar noteiktu struktūru. Par datu bāzi var saukt jebkuru strukturētas informācijas kopumu.

Kompleksas datu bāzes projektēšana, būvniecība, un uzturēšana prasa speciālista prasmes: darbinieki, kas veic šīs funkcijas ir datu bāžu lietojumprogrammatūras programmētāji un datu bāžu administratori. To uzdevumi ir veicami ar dažādiem rīkiem, kas iekļauti kā daļa no datu bāzes pārvaldības sistēmas (no angļu val. Database management system -DBMS) vai arī kā atsevišķas programmatūras produkti. Šie rīki sevī iekļauj specializētas datu bāzes valodas, kā, piemēram, datu definēšanas valodas (no angļu val. data definition languages - DDL), datu manipulācijas valodas (no angļu val. data manipulation languages - DML), un vaicājumvalodas (no angļu val. query language).Šīs var uzskatīt par īpaša nolūka programmēšanas valodām, īpaši izstrādātām, lai manipulētu ar datu bāzēm; dažkārt tās ir kā paplašinājumi jau esošajām programmēšanas valodām, ar pievienotām datubāžu komandām. Datu bāžu valodas parasti ir attiecināmas uz vienu datu modeli, vai daudzos gadījumos tās var arī attiekties uz vienu datu bāzu pārvaldes sistēmas (no angļu val. database management system - DBMS) tipu. Visplašāk atbalstītā datu bāzu valoda ir strukturēta vaicājumvaloda (no angļu val. structured query language - SQL), kas ir izstrādāta datu relāciju modelim un apvieno sevī funkcijas gan no datu definēšanas valodas ( no angļu val. data definition language - DDL), gan datu manipulēšanas valodas (no angļu val. data manipulation language - DML), gan vaicājumu valodas( no angļu val. query language).Veids, kā klasificē datu bāzes ir pēc to tipa un satura, piemēram: bibliogrāfisko,dokumentu, statistikas vai multivides objektu. Vēl viens veids kā datu bāzes tiek iedalītas ir pēc to pielietošanas jomas, piemēram, grāmatvedības, mūzikas, filmu, banku, ražošanas vai apdrošināšanas.

Termins datubāze tika radīts, lai apzīmētu datora datus un lietots tiek praktiski tikai datorikā. Dažkārt to lieto, lai apzīmētu vēl nedatorizētus datus, plānojot to datorizēšanu.Datorizēta datu bāze ir objektu konteiners. Vienā datu bāzē var būt vairāk nekā viena tabula. Piemēram, krājumu izsekošanas sistēma, kas izmanto trīs tabulas, nav trīs datu bāzes, bet viena datu bāze, kurā ir trīs tabulas. Ja vien nav īpaši izveidots tā, lai tiktu izmantoti dati vai kods no cita avota, Access datu bāze glabā savas tabulas vienā failā kopā ar citiem objektiem, piemēram, formām, atskaitēm, makro un moduļiem. Datu bāzēm, kas izveidotas Access 2007 formātā, ir .accdb faila paplašinājums, un datu bāzēm, kas izveidotas iepriekšējos Access formātos, ir .mdb faila paplašinājums. Var izmantot Access 2007, lai izveidotu failus iepriekšējos failu formātos (piemēram, Access 2000 un Access 2002-2003).

Tabulas[izmainīt šo sadaļu | labot pirmkodu]

Datu bāzes tabula izskata ziņā ir līdzīga izklājlapai, kurā dati tiek glabāti rindās un kolonnās. Rezultātā ir diezgan viegli importēt izklājlapu datu bāzes tabulā. Galvenā atšķirība starp datu glabāšanu izklājlapā un datu glabāšanu datu bāzē ir veids, kā dati tiek organizēti.

Lai datu bāze būtu pēc iespējas elastīgāka, datiem jābūt organizētiem tabulās tā, lai nerastos datu redundance. Piemēram, ja glabājat informāciju par darbiniekiem, katrs darbinieks jāievada tikai vienu reizi tabulā, kas iestatīta datu glabāšanai par darbiniekiem. Dati par produktiem tiks glabāti citā tabulā, un dati par filiālēm – vēl citā. Šāds process tiek saukts par normalizēšanu.

Katra rinda tabulā tiek uzskatīta par ierakstu. Ierakstos tiek glabātas individuālās informācijas daļas. Katrs ieraksts sastāv no viena vai vairākiem laukiem. Lauki atbilst tabulas kolonnām. Piemēram, iespējams, jums ir tabula ar nosaukumu “Employees”, kuras katrā ierakstā (rindā) ir informācija par atsevišķu darbinieku un katrā laukā (kolonnā) ir cita veida informācija, piemēram, vārds, uzvārds, adrese utt. Laukos jābūt norādītam konkrētam datu tipam, vai tas ir teksts, datums vai laiks, skaitlis vai kāds cits tips.

Cits ierakstu un lauku aprakstīšanas veids ir bibliotēkas vecā stila kartīšu kataloga vizualizācija. Katra kartīte plauktā atbilst ierakstam datu bāzē. Katra informācijas daļa individuālā kartītē (autors, nosaukums utt.) atbilst laukam datu bāzē.

Formas[izmainīt šo sadaļu | labot pirmkodu]

Formas dažkārt tiek sauktas par “datu ievades ekrāniem”. Tās ir interfeisi, kurus izmanto, lai strādātu ar datiem, un tajās bieži ir komandpogas, kas izpilda dažādas komandas. Datu bāzi var izveidot, neizmantojot formas vienkāršai datu rediģēšanai tabulas datu lapās. Tomēr lielākā daļa datu bāzu lietotāju dod priekšroku formu lietošanai, lai skatītu, ievadītu un rediģētu datus tabulās.

Formas nodrošina viegli izmantojamu formātu, lai strādātu ar datiem, un tām var arī pievienot funkcionālus elementus, piemēram, komandpogas. Var programmēt pogas, lai noteiktu, kādi dati tiek rādīti formā, atvērtu citas formas vai atskaites vai veiktu virkni citu uzdevumu. Piemēram, jums var būt forma ar nosaukumu “Klienta forma”, kurā strādājat ar klientu datiem. Klientu formai var būt poga, kas atver pasūtījuma formu, kurā varat ievadīt šī klienta jauno pasūtījumu.

Formas ļauj arī kontrolēt, kā lietotāji mijiedarbojas ar datu bāzes datiem. Piemēram, var izveidot formu, kas rāda tikai noteiktus laukus un ļauj veikt tikai noteiktas darbības. Tas palīdz aizsargāt datus un nodrošināt, ka dati tiek pareizi ievadīti.

Atskaites[izmainīt šo sadaļu | labot pirmkodu]

Atskaites tiek izmantotas datu apkopošanai un rādīšanai tabulās. Atskaite parasti atbild uz konkrētu jautājumu, piemēram, “Cik daudz naudas šogad esam saņēmuši no katra klienta?” vai “Kādās pilsētās atrodas mūsu klienti?”. Katra atskaite var būt formatēta tā, lai rādītu informāciju pēc iespējas salasāmākā veidā.

Atskaiti var palaist jebkurā laikā, un tā vienmēr atspoguļos pašreizējos datu bāzes datus. Atskaites parasti tiek formatētas, lai tās izdrukātu, bet tās var arī skatīt ekrānā, eksportēt uz citām programmām vai nosūtīt e-pasta ziņojumā.

Vaicājumi[izmainīt šo sadaļu | labot pirmkodu]

Vaicājumi ir viena no galvenajām datu bāzes daļām, kas var veikt daudz dažādu funkciju. Visbiežāk izmantotā funkcija ir noteiktu datu izgūšana no tabulām. Nepieciešamie dati parasti ir izkaisīti vairākās tabulās, bet vaicājumi ļauj tos skatīt vienā datu lapā. Tā kā parasti nav nepieciešams skatīt visus ierakstus vienlaikus, vaicājumi arī ļauj pievienot kritērijus, kas no ierakstiem “izfiltrē” tikai jums vajadzīgos datus. Vaicājumi bieži noder kā formu un atskaišu ierakstu avots.

Noteikti vaicājumi ir “atjaunināmi”, kas nozīmē, ka datus pamatā esošajās tabulās var rediģēt ar vaicājuma datu lapas palīdzību. Ja strādājat atjaunināmā vaicājumā, atcerieties, ka izmaiņas patiesībā tiek veiktas tabulās, nevis tikai vaicājuma datu lapā.

Vaicājumiem ir divi paveidi: atlases vaicājumi un darbības vaicājumi. Atlases vaicājums vienkārši izgūst datus un padara tos pieejamus lietošanai. Vaicājuma rezultātus var skatīt ekrānā, izdrukāt vai ielīmēt starpliktuvē. Vai arī vaicājuma izvadi var izmantot kā formas vai atskaites ierakstu avotu.

Darbības vaicājums, kā jau to norāda nosaukums, izpilda uzdevumu ar datiem. Darbības vaicājumus var izmantot, lai izveidotu jaunas tabulas, pievienotu datus esošajām tabulām, atjauninātu vai dzēstu datus.

Makro[izmainīt šo sadaļu | labot pirmkodu]

Makro programmā Access var tikt uzskatīti par vienkāršotu programmēšanas valodu, kuru var izmantot, lai datu bāzei pievienotu funkcionalitāti. Piemēram, komandpogai formā makro var pievienot, lai tas tiktu palaists, kad tiek nospiesta poga. Makro satur darbības, kas veic uzdevumus, piemēram, atver atskaiti, palaiž vaicājumu vai aizver datu bāzi. Lielākā daļa datu bāzes darbības, kuras tiek veiktas manuāli, var tikt automatizētas, izmantojot makro, tāpēc tie var lieliski ietaupīt laiku.

Moduļi[izmainīt šo sadaļu | labot pirmkodu]

Moduļi, tāpat kā makro, ir objekti, kurus var izmantot, lai datu bāzēm pievienotu funkcionalitāti. Ja izveidojat makro programmā Access, izvēloties no makro darbību saraksta, moduļi tiek rakstīti programmēšanas valodāVisual Basic for Applications (VBA). Modulis ir deklarāciju, priekšrakstu un procedūru kolekcija, kas tiek glabāti kopā kā vienums. Modulis var būt vai nu klases modulis, vai standarta modulis. Klases moduļi tiek pievienoti formām vai atskaitēm, un tajos parasti ir procedūras, kas raksturīgas formai vai atskaitei, kam tās pievienotas. Standarta moduļos ir galvenās procedūras, kas nav saistītas ne ar vienu citu objektu. Standarta moduļi ir uzskaitīti navigācijas rūtī sadaļā Moduļi, turpretī klases moduļi netiek uzskaitīti.


Arhitektūra[izmainīt šo sadaļu | labot pirmkodu]

Datubāzes arhitektūra sastāv no trīs līmeņiem - ārējais, konceptuālais un iekšējais. Skaidra šo trīs līmeņu nodalīšana bija viena no galvenajām iezīmēm relāciju datubāžu modelī.

  • Ārējais līmenis nosaka, kā lietotāji saprot datu organizāciju. Vienai datubāzei var būt neierobežots skatu skaits ārējā līmenī.
  • Iekšējais līmenis nosaka, kā dati fiziski tiek glabāti un apstrādāti. Iekšējā arhitektūra koncentrējas uz izmaksām, veiktspēju, mērogajamību (Sistēmas programmatūras vai aparatūras spēja normāli funkcionēt gadījumā, ja tās funkcionēšanas apjoms vai konfigurācija tiek mainīta, piemēram, lietotāju skaita palielināšana nesamazina sniegto pakalpojumu apjomu, pāreja uz citu operētājsistēmu netraucē normālu sistēmas funkcionēšanu.) un citām, ar datubāzes veiktspēju saistītām lietām.
  • Konceptuālais līmenis ir starpslānis starp iekšējo un ārējo. Tas nodrošina darbību ar datiem konceptuālā līmenī, neliekot lietotājam zināt, kā dati tiek glabāti iekšējajā līmenī, atvieglojot lietotāju darbu.

Vēsture[izmainīt šo sadaļu | labot pirmkodu]

Datubāzes jēdziens

Datu bāzes koncepcija ir attīstījusies jau kopš 1960. gada, lai atvieglotu pieaugošās grūtībās, projektēšanas, būvniecības un uzturēšanas kompleksu informācijas sistēmās (parasti ar daudziem vienlaicīgi gala lietotājiem, un ar lielu datu apjomu.) Tā ir attīstījusies līdz ar attīstību Datu bāzes pārvaldības sistēmu (DBPS), kas ļauj efektīvi regulēt datu bāzēs. Lai gan termini datu bāze un DBPS definē dažādas organizācijas, tās ir nedalāmas: Datu bāzes rekvizītus nosaka DBPS un otrādi. Oksforda angļu vārdnīca citē 1962. gada tehnisko ziņojumu, kā pirmie izmantojot terminu "datubāze". Ar progresu tehnoloģijas jomās kā piemēram, procesoros, datora atmiņā, datu uzglabāšanas vietās. un datortīklos, ar to izmēriem, iespējām un datu bāzu un to DBPS sniegumi ir pieauguši ar lēcienu. Jau gadu desmitiem tas ir maz ticams, ka sarežģītu informācijas sistēmu var būvēt efektīvi bez pienācīga datubāzu atbalsta DBPS.

Nav plaši atzīta, precīza definīcija priekš DBPS. Tomēr sistēmai, nepieciešams nodrošināt ievērojamu funkcionalitāti, lai to varētu kvalificēt kā DBPS. Tādējādi tā atbalsta datu vākšanai ir ievērotas lietojamības prasības, lai varētu kvalificēt tās kā datubāzes.

Jēdziens “datubāze” nonāca apritē vienlaikus ar tiešās piekļuves datu nesējiem 1960. gadu vidū. Jēdziens apzīmēja atšķirības no iepriekš lietotājiem risinājumiem, atļaujot datu interaktīvu koplietošanu ikdienas pakešapstrādes (secīgas datu apstrādes) vietā.

Pirmajās datu bāzu sistēmās produktivitāte bija pirmajā vietā, tomēr jau tolaik bija skaidrs, ka ir arī citi apsvērumi, kuriem jāpievērš uzmanība. Viens no galvenajiem uzdevumiem bija panākt datu neatkarību no aplikāciju darbības, lai ar tiem pašiem datiem varētu strādāt arī citas aplikācijas. Pirmā datu bāzu sistēmu paaudze bija navigācijas aplikācijas, kuras piekļuva datiem sekojot norādēm no viena ieraksta uz nākamo. Divi izplatītākie datu modeļi tolaik bija hierarhiskais modelis, kuru optimizēja IBM IMS sistēma, un Codasyl modelis, kuru integrēja dažādos produktos, kā piemēram IDMS.

Relāciju modeli pirmo reizi ierosināja Edgars F. Codds 1970. gadā. Jaunais uzstādījums bija, ka aplikācijām datus vajadzētu meklēt pēc satura, nevis norādēm. Tas tika uzskatīts par nepieciešamu, lai varētu papildināt datubāzes saturu, katru reizi nepārrakstot aplikācijas kodu. Relāciju sistēmas uzstādīja augstas prasības skaitļošanas jaudām, tāpēc tikai 1980. gadu vidū, kad datoraparatūra bija pietiekami attīstījusies, tās varēja sākt plaši pielietot. Neskatoties uz to, jau 1990. gadu sākumā, visur, kur bija nepieciešamība pēc lielapjoma datu apstrādes, tika izmantota tieši relāciju sistēma. Savu dominanci tā ir saglabājusi līdz šodienai (2011) ar specifiskiem izņēmumiem, kur šāda sistēma nav lietderīga. Vadošā relāciju datu bāzu programmēšanas valoda ir SQL, kas kalpo par piemēru arī cietiem datu bāzu modeļiem.

Tā kā relāciju modelis liek uzsvaru uz ierakstu meklēšanu nevis navigāciju starp tiem, tas nepadara relācijas starp dažādām entītijām skaidrā norāžu formā, bet tā vietā izmanto primārās un ārējās atslēgas. Tas ir labs pamats vaicājumvalodai, tomēr tas nav īpaši piemērots modelēšanas valodai. Šī iemesla dēļ entītiju relāciju modelis, kas radās 1976, gadā, ieguva popularitāti datu bāzu dizainos. Kopš 1970. gada datu bāzu tehnoloģijas attīstās kopā ar datoru tehnoloģijām, kas piedāvā arvien lielākas skaitļošanas jaudas un atmiņas apjomus par zemāku cenu. Tas ir ļāvis izveidot arvien lielāka apjoma datubāzes, vienlaikus palielināt to noslodzi.

Datubāzu pārvaldības sistēma[izmainīt šo sadaļu | labot pirmkodu]

Programmatūru, kas radīta, lai pārvaldītu vispārējas nozīmes datubāzes, sauc par datubāžu pārvaldības sistēmām jeb DBPS (angļu: "Database management system (DBMS)"). Iespējamas ir dažādas programmatūras arhitektūras: mazām datubāzēm visa funkcionalitāte ir ietverta vienā programmā, savukārt lielākās datubāzēs gandrīz vienmēr izmanto klienta-servera arhitektūru. Datubāžu pārvaldības sistēmas sastāv no programmatūras, kas operē ar datubāzēm, nodrošinot atmiņas, drošības, piekļuves, dublēšanas un citas iespējas. Datubāžu pārvaldības sistēma var tik klasificēta balstoties uz datubāzes modeli, kuru tā atbalsta, piemēram, relāciju modeli vai XML, datoru tipa, kuru tā atbalsta, piemēram, servera klastera vai mobilā telefona, vaicājumvalodas piekļuves, piemēram, SQL vai XQuery, veiktspēju, piemēram maksimuma skalas vai maksimālā ātruma vai citiem rādītājiem. Dažas datubāžu pārvaldības sistēmas ietver sevī vairāk nekā vienu no šiem klasifikācijas punktiem, piemēram, vairākas vaicājumvalodas. Gandrīz visās datubāžu programmatūrās ir iebūvēts Open Database Connectivity (ODBC) draiveris, kas ļauj datubāzē integrēt citas datubāzes. DBPS priekšgala sistēma (klients) atbild par datu ievadīšanu, pieprasīšanu un pārskatīšanu. Aizmugures sistēma (serveris) ir programmu kopums, kas kontrolē datu glabāšanu un atbild uz priekšgala sistēmas pieprasījumiem. Meklēšanu un kārtošanu parasti veic serveris. Eksistē ļoti dažādi datu bāzu īstenojumu, sākot no vienkāršākajiem ar vienkāršām tabulām, kas katra tiek glabāta savā datnē, līdz pat ļoti lielām datu bāzēm ar miljoniem ierakstu, kuri tiek glabāti daudzos datu nesējos. Starp DBPS ir lielas atšķirības - tās var ietvert vai neietvert datu pareizuma pārbaudes, datu integritātes un konsistences nodrošināšanu, tās var spēt vienlaicīgi strādāt ar tikai vienu procesu, bet ir arī sistēmas, kas ļauj lielam lietotāju reizē mainīt datus, novēršot konfliktsituācijas.

Komponenti DBVS
Lielākā daļa DBVS, sākot ar 2009. gadu ir īstenotas relāciju modelī. Citas DBVS sistēmas, piemēram, objektu DBVS, piedāvā īpašās iezīmes ar lielākām specializācijas prasībām. To sastāvdaļas, ir līdzīgas, bet ne identiskas.

RDBMS sastāvdaļas
Sublanguages​​-Relācija DBVS (RDBMS) ietver datu definīcijas valodas (DDL), lai noteiktu datu bāzes struktūru, datu kontroles valodu (DCL), lai noteiktu drošības, piekļuves kontroles un datu manipulācijas valodu (DML) attiecībā uz pieprasījumiem un datu atjaunošanu. Interfeiss ir draiveru kodu bibliotēkas, kas nodrošina metodes, lai sagatavotu pārskatus, izpildītu pārskatus, izsauktu rezultātus utt. Kā piemērus var minēt ODBC, JDBC, MySQL / PHP, FireBird / Python.

SQL motors - Šis komponents interpretē un izpilda DDL, DCL un BDL pārskati. Tas ietver trīs galvenās sastāvdaļas (kompilators, pilnveidotājs un izpildītājs).

Relāciju motors - Relāciju objektu, piemēram, tabulu, indekss, un atsauces integritātes ierobežojumi tiek ieviesti ar šo komponentu.

Uzglabāšanas motors - Šis komponents saglabā un nolasa datus no sekundārās glabātuves, kā arī pārvalda darījumu saistības un atcelšanas, dublējumus un atjaunošanas.

Biežāk izmantotās datubāžu pārvaldības sistēmas[izmainīt šo sadaļu | labot pirmkodu]

Veidi[izmainīt šo sadaļu | labot pirmkodu]

Darbības datubāze[izmainīt šo sadaļu | labot pirmkodu]

Šīs datubāzes glabā detalizētu informāciju par organizācijas vai uzņēmuma darbību. Parasti tās tiek sakārtotas pēc priekšmeta, apstrādā relatīvi daudz izmaiņu un darbību. Pamatā visas lielās pasaules organizācijas izmanto šāda veida datubāzi. Kā piemēru var minēt klientu datubāzes, kas reģistrē kontaktinformāciju, kredīt informāciju un demogrāfisko informāciju par uzņēmuma klientiem. Darbinieku datubāzes glabā informāciju par algām, slodzēm, izglītību un citu informāciju par darbiniekiem. Uzņēmuma resursu datubāzes, kas glabā informāciju par produktiem, to pieejamību un sastāvdaļām vai arī finanšu datubāzes, kas seko līdzi uzņēmuma naudas plūsmai.

Datu noliktavas[izmainīt šo sadaļu | labot pirmkodu]

Datu noliktavas glabā mūsdienu datus no darbību datubāzēm un bieži arī no ārējiem avotiem, ka piemēram tirgus izpētes uzņēmumiem. Bieži ienākošie dati no darbību datubāzēm tiek pārveidoti - apkopoti, pārklasificēti un padarīti anonīmi. Šie dati tad ir pieejami menedžeriem un citiem galalietotājiem kuriem parasti nav pieejas darbības datiem. Pamata datu noliktavas sastāvdaļas ir datu saņemšana un analizēšana, pārveidošana, ielāde un pārvaldīšana lai tā varētu tikt izmantota tālāk.

Analītiskā datubāze[izmainīt šo sadaļu | labot pirmkodu]

Analītiķi var strādāt ar datu noliktavām, vai arī izveidot atsevišķu analītisko datubāzi priekš tiešsaistes analītiskās apstrādes. Piemēram, uzņēmums var izvilkt pārdošanas datus no datu noliktavas lai analizētu reklāmas efektivitāti un cita veida pārdošanas paaugstināšanu apkopojošā līmenī.

Dalītās datu bāzes[izmainīt šo sadaļu | labot pirmkodu]

Šīs ir datubāzes priekš vietējām darba grupām vai departamentiem reģionālajos birojos, filiālēs, ražotņu vai citās darba vietās. Tās var saturēt daļu no parastās darbību datubāzes un lietotāju datubāzes kā arī datus, kuri tiek lietoti tikai vietēji.

Gala lietotāju datubāze[izmainīt šo sadaļu | labot pirmkodu]

Šīs datubāzes sastāv no galalietotāja paša izveidotiem datiem. Par piemēru var minēt datubāzi dažādu dokumentu glabāšanai izklājlapu formā, lejuplādēto failu glabāšanu vai arī personīgo datubāzi pastmarku kolekcijas uzturēšanai.

Ārējās datubāzes[izmainīt šo sadaļu | labot pirmkodu]

Šīs datubāzes izmanto lai glabātu datus no vairākām organizācijām vai nu brīvi vai arī kā abonentiem. Kā piemēru var minēt interneta filmu datubāzi.

Hipermēdiju datubāze[izmainīt šo sadaļu | labot pirmkodu]

Globālo tīmekli var uztvert kā datubāzi, tādu kas izkaisīta pa miljoniem datoru. Tīmekļa pārlūkprogrammas apstrādā šos datu pa vienai lappusei kamēr tīmekļa rāpuļi un cita līdzīga programmatūra veido datubāzei ekvivalentus indeksus, lai atbalstītu meklējumus un citas aktivitātes.

Modeļi[izmainīt šo sadaļu | labot pirmkodu]

Pēc-relāciju datu bāzes modeļi[izmainīt šo sadaļu | labot pirmkodu]

Produkti, kas tiek piedāvāti kā vispārīgāki datu modeļi nekā relāciju modeļi, reizēm tiek klasificēti par pēc-relāciju modeļiem. Alternatīvi termini sevī ietver "hibrīdu datubāze", "objekt-uzlabotas RDBMS" u.c. Datu modelis šādos produktos ietver relācijas, bet nevadās pēc E.F.Codd's Informācijas Principa, kas paredz, ka visa informācija datubāzē jānovirza relāciju vērtībās un ne kā savādāk.

Daži no šiem relāciju modeļa paplašinājumiem integrē no tehnoloģijām, kas datē relāciju modeli. Piemēram, tie pieļauj orientēta grafa attēlošanu ar kokiem mezglos.

Daži pēc-relāciju produkti paplašina relāciju sistēmas ar ne-relāciju pazīmēm. Daži tai pat vietā pievieno relāciju pazīmes pēc-relāciju sistēmām. Paradoksāli, ka tas ļauj produktiem, kas ir vēsturiski relācijai nepiemēroti, kā PICK un MUMPS, veidot ticamu prasību būt relācijai piemēroti.

Objektu datu bāzes modeļi[izmainīt šo sadaļu | labot pirmkodu]

Pēdējos gados, objektorientētā paradigma ir piemērota tādās jomās kā inženierzinātnes un telpisko datu bāzes, telekomunikācijas un dažādās zinātnes jomās. Gada objektorientētā programmēšana un datu bāzu tehnoloģija, sarecējums rezultātā šo jauno datu bāzi. Šīm datu bāzēm mēģinājums, lai datu bāzi pasaulē un lietojumprogrammu programmēšanas pasaulē ciešāk kopā, jo īpaši nodrošinot, ka datu bāze izmanto tāda paša veida sistēmas lietojumprogrammu. Šis mērķis ir novērst gaisa (dažreiz saukta pretestība nesakritība), konvertējot informācijas apmaiņu starp savu pārstāvību datu bāzē (piemēram, kā rindas tabulu), un tās pārstāvniecību lietojumprogrammu (parasti kā objekti.) Tajā pašā laikā, objektu datu bāzes mēģinot ieviest galvenās idejas no objekta plānošanu, piemēram, iekapsulēšanu un polimorfisms, pasaulē datubāzes.

No šiem veidiem daudzi ir izmēģināti lai glabātu objektus datu bāzē. Daži produkti pieiet problēmai no lietotņu programmēšanas puses, padarot, objektus, kurus manipulē programma, patstāvīgus. Tādēļ arī parasti nepieciešams papildus izmantot speciālu pieprasījumu valodu, jo parastās programmēšanas valodas nepiedāvā valodas līmeņa funkcijas, lai atrastu informāciju datubāzēs pēc tās satura. Citi pieiet problēmai no datu bāzes puses, nosakot objektorientētu datu modeli priekš datubāzes un izveidojot datubāzes programmēšanas valodu, kas ļauto datubāzi gan programmēt, gan apstrādāt tradicionālos pieprasījumu veidus.

Gala lietotāja datubāze

Šī datu bāze sastāv no datiem, kurus izstrādājis gala lietotājs. Piemēram, dokumentu kolekcijas, izklājlapas, prezentācijas, multivide un citi dokumenti. Vairāki produkti eksistē, kas atbalsta šādas datubāzes. Daži no tiem ir daudz vienkāršāki nekā pilntiesīgas datubāzes, bet daudz vienkāršāku lietojamību, piemēram, neatbalsta funkciju, ka vairāki lietotāji var strādāt ar to pašu datubāzi, ar pamata programmēšanas iespējām un salīdzinoši mazu iespēju klāstu. Tas nenozīmē, ka pilntiesīgas datubāzes nevar izmatot tiem pašiem mērķiem, ja vien tās piedāvā tās pašas vienkāršās fukcijas parastajam lietotājam. Šeit galvenais ir noteikt robežas meklējumu iespējām, kvalitātei un aizsardzībai, ko šīs datubāzes spēj piedāvāt.

Normālformas[izmainīt šo sadaļu | labot pirmkodu]

Normālās formas (NF) relāciju datubāzu teorijā nodrošina kritērijus, kas ļauj noteikt cik lielā mērā tabula ir noturīga pret loģiskām nekonsekvencēm un anomālijām. Jo lielāka normālforma attiecināma uz tabulu, jo tabula labāk pasargāta. Katrai tabulai ir „augstākā normālforma”: pēc definīcijas tabula vienmēr atbilst tās augstākās normālformas prasībām un par augstāko normālformu zemāku normālformu prasībām. Līdzīgā veidā tabula neatbilst par tās augstāko normālformu augstāku normālformu prasībām. Normālformas attiecināmas uz atsevišķām tabulām. Ja apgalvo, ka visa datubāze ir normālformā n, tas nozīmē, ka visas tās tabulas ir normālformā n. Iesācēji datubāzu veidošanā reizēm uzskata, ka normalizācija notiek iteratīvi, proti, šablons 1NF sākumā tiek normalizēts līdz 2NF, tad līdz 3NF un tā tālāk. Taču tas neatbilst patiesībai. Saprātīgi veidota tabula visticamāk būs 3NF jau pirmajā mēģinājumā, turklāt, ja tā ir 3NF, ļoti ticams, ka tās augstākā NF būs 5NF. „Visaugstāko” normālformu sasniegšanai (virs 3NF) parasti nav nepieciešami papildu izdevumi vai pūles no izstrādātāja puses, jo 3NF tabulas parasti nav jāmodificē, lai tās atbilstu šo augstāko normālformu prasībām.

Nr Normālforma Definēja Gads Īsa definīcija
1NF Pirmā normālforma Divas versijas: E. Kods (1970), K. Deits (2003) 1970[1] un 2003[9] Relācija ir pirmajā normālformā, ja katra atribūta domēns satur tikai atomāras vērtības un katra atribūta vērtība satur tikai vienu vērtību no tā domēna.
2NF Otrā normālforma E. Kods 1971[2] Atribūti, kas neietilpst kādā no kandidātatslēgām, ir pilnīgi funkcionāli atkarīgi (tieši vai pastarpināti) no visas kandidātatslēgas, nevis tikai kādas tā sastāvdaļas.
3NF Trešā normālforma Divas versijas: E. Kods (1971), K. Zaniolo (1982) 1971[2] un 1982[11] Trešajā normālformā neeksistē transitīvās (pārejošas) atkarības.
EKNF Elementary Key normālforma K. Zaniolo 1982[11] Katra netriviālā funkcionālā atkarība tabulā ir vai nu atkarība no elementārās atslēgas atribūta vai atkarība no superatslēgas.
BCNF Boyce–Codd normālforma Reimonds F. Boiss and E. Kods 1974[12] Katra lauka vērtību var mainīt tikai vienā vietā – 'nokancelētas' arī transitīvās atkarības. Determinanti ir tikai kandidātatslēgas
4NF Ceturtā normālforma Ronalds Fegans 1977[13] Katra netriviālā daudzvērtību atkarība tabulā ir atkarība no superatslēgas.
5NF Piektā normālforma Ronalds Fegans 1979[14] Katru netriviālo savienošanas atkarību tabulā nosaka tabulas superatslēgas.
DKNF Domēna/atslēgas normālforma Ronalds Fegans 1981[15] Katrs ierobežojums tabulā ir loģiskas tabulas domēnu ierobežojumu un atslēgas ierobežojumu sekas.
6NF Sestā normālforma K. Deits, Hjū Darvens un Nikos Lorencos 2002[16] Tabulā nav netriviālu savienošanas atkarību (ar atsauci uz ieviestu savienošanas operatoru).

Glabāšanas struktūras[izmainīt šo sadaļu | labot pirmkodu]

Datubāzes var glabāt attiecīgās tabulas un indeksus atmiņā vai cietā diska dažādos veidos:

  • Sakārtotas vai nesakārtotas izplātās datnes
  • ISAM
  • Kaudzes
  • heša kausi
  • loģiskas bloku datnes
  • B+ koki

Visizplatītākie ir B+ koki un ISAM

Objektu datubāzes izmanto plašu glabāšanas mehānismu klāstu. Dažas izmanto virtuālus atmiņas kartētas datnes, lai padarītu izmantotās valodas (Java, C++, utt.) objektus pastāvīgus. Lai gan ļoti efektīvs, tas var padarīt citu valodu izmantošanu grūtāku. Citas izjauc objektus noteikta un atšķirīga garuma komponentēs, kas pēc tam tiek saliktas kopā uz diska ka noteikta garuma bloki un tiek salikti atpakaļ vai nu uz servera vai klienta. Vēl viena populāra metode sevī ietver objektu glabāšanu tuplēs (tuple - sakārtots elementu saraksts no Angļu val.) , tāpat kā relāciju datubāzēs, kuras pēc tam kā objektus sakārto datubāzes serveris.

Citas metodes ietver klasifikāciju pēc kategorijas(piemēram datu sagrupēšana pēc mēneša vai atrašanās vietas, iepriekš apstrādātu vaicājumu rezultātu glabāšana kā arī sadalīšana pēc apgabala vai heša.

Atmiņas pārvaldīšanas un glabāšanas un topoloģija var būt svarīgi izstrādes lēmumi datubāžu izstrādātājiem. Kā piemēram normalizācija tiek lietota lai samazinātu atmiņas nepieciešamību un uzlabotu datubāzes dizainu, pretēji de-normalizācija tiek izmantota lai samazinātu apvienošanas sarežģītību un samazinātu pieprasījumu izpildes laikus.

Indeksēšana[izmainīt šo sadaļu | labot pirmkodu]

Indeksācija ir veids, lai uzlabotu datu bāzes veiktspēju. Daudzu veidu indeksa kopīga īpašuma, kas tās novērš vajadzību pārbaudīt katru ierakstu, braucot vaicājumu. Lielās datubāzēs, tas var mazināt pieprasījumu, laiks, izmaksas, ko kārtām. Visvienkāršākais veids indekss ir sakārtots vērtību sarakstu, kurus var meklēt, izmantojot bināro meklēšanu ar blakus atsaucoties uz vietu, kad, līdzīgi indeksu aizmugurē grāmatu. Paši dati var būt vairāki indeksi (darbinieku datu bāzi varētu indeksēt pēc uzvārda un īre datumu.)

Indeksi ietekmēt veiktspēju, bet ne rezultātu. Datubāzes dizaineri var pievienot vai noņemt indeksi bez izmaiņām piemērojot loģikas, samazinot uzturēšanas izmaksas, jo datu bāze aug un datu bāzes izmantošanas attīstību.

Ņemot vērā īpaši vaicājumu, DBVS "vaicājumu optimizētāju ir atbildīga par izstrādāt visefektīvāko stratēģiju, lai atrastu atbilstošu datu. Pilnveidotājs izlemj, kura indeksu vai indeksu, lai izmantotu, kā apvienot datus no dažādām datu bāzes, kā sniegt datus secībā pieprasīta, u.c.

Indeksu var paātrināt piekļuvi datiem, bet tie patērē vietu datu bāzē, un ir jāatjaunina katru reizi, kad dati ir mainīti. Indeksu tāpēc var paātrināt piekļuvi datiem, bet lēns datu uzturēšanu. Šie divi īpašības nosaka, vai konkrētā indeksa ir vērts izmaksas.

Drošība[izmainīt šo sadaļu | labot pirmkodu]

Datu bāzes drošība apzīmē sistēmu, procesus un un procedūras, kas aizsargā datubāzi no nesankcionētas piekļuves, kā arī pasargā datu bāzu saturu, datu bāzu īpašniekus un lietotājus. Datu bāzu drošība nodrošina aizsardzību gan pret tīšu, neatļautu datu bāzu lietošanu, gan pret netīšām darbībām datu bāzē Datu drošība ir kontroles process, kurā dati tiek aizsargāti no neautorizētas piekļuves, datu bojājumiem un neadekvātas rīcības, kas ir pretrunā ar organizācijas drošības politiku. Līdz ar to, īpaši mūsdienās, kad organizācijām strauji palielinās informācijas apmaiņas kanāli (sociālie mēdiji, p2p komunikācija), datu drošība iedalās trijos kontroles veidos – datu kontrole un aizsardzība ar tiem strādājot, tos pārvietojot vai uzglabājot.

Datubāzes pārvaldības sistēma parasti ievieš drošību, izmantojot piekļuves kontroli, auditu un šifrēšanu:

  • Datu bāzes piekļuves kontrole pārvalda to, kam (personai vai noteiktai datorprogrammai) ir atļauts piekļūt datubāzei un cik plaša informācija datu bāzē ir pieejama. Šī kontrole tiek vadīta ar autorizācijas palīdzību (autorizāciju koordinē datu bāzu īpašnieks).
  • Auditēšana ieraksta informāciju par datu bāzes aktivitātēm. Datu bāzu audits, galvenokārt, pārbauda, vai nav notikuši drošības pārkāpumi. Ja tādi tiek konstatēti, tiek veikti visi iespējamie labojumi, lai turpmāk to novērstu.
  • Drošības apsvērumu dēļ dažu veidu dati (piem., kredītkartes informācija) var tikt glabāta šifrētā veidā, lai novērstu iespēju, ka informācija kļūst pieejama neatļautiem lietotājiem. Šifrēšana aizsargā datus zemākajā līmenī. Datu bāzu pārvaldības sistēma šifrē datus, kad tie tiek pievienoti datu bāzei un tad, kad tiek atgriezti rezultāti. Šifrēšanas processā informācija tiek pārveidota izmantojot speciālu algortimu, tādā veidā padarīta nevienam nesaprotama, izņemot tos, kam ir pieejama speciālā informācija (atslēga) par šifrēšanas procesu. Šis process var notikt uz tīklu savienojuma klienta pusē, lai novērstu nesankcionētu piekļuvi izmantošanas brīdī.

Datu šifrēšana jeb kriptēšana mūsdienās ir IT speciālistu pasaulē atzītākais un visefektīvākais veids kā nodrošināties pret datu noplūdi, bojājumiem vai zudumiem, neatkarīgi no tā vai kāds ar datiem strādā, vai dati tiek pārvietoti vai glabāti.

Konfidencialitāte[izmainīt šo sadaļu | labot pirmkodu]

Likumi un noteikumi regulē informācijas publiskošanu no dažām datubāzēm,piemēram, aizsargājot medicīnisko vēsturi, vadītāju uzskaites, tālruņa žurnālus utt. Latvijā Fizisko personu datu aizsardzības likums nosaka, kāda informācija nav pieļaujama publiskošanai un izplatīšanai.

Datubāzes transakcijas[izmainīt šo sadaļu | labot pirmkodu]

Transakcija sastāv no loģisko darbību kopuma, kas tiek izpildītas datu bāzes vadības sistēmā. Tā darbojas kā viens vesels operāciju kopums, neatkarīgi no citām transakcijām. Datu bāzu transakciju pielietošanai ir divi galvenie mērķi:

  1. Izveidotu uzticamu darbību kopumu, kas ļauj atjaunot datus pēc sistēmas kļūmes, kad operāciju izpilde apstājas (pilnīgi vai daļēji) un daudzas operācijas ir nepabeigtas un ar neskaidru statusu.
  2. Nodrošinātu izolāciju starp programmām, kas vienlaicīgi strādā ar datu bāzi. Ja netiek nodrošināta šī izolācija, tad datu bāzē var rasties kļūda.

Lai izveidotu transakciju ir nepieciešams ievērot ACID(ACID - no angļu valodas pazīmju pirmajiem burtiem) principu:

  • Atomitāte ( no angļu val. Atomicity): Vai nu tiek izpildītas visas operācijas, kas ietilpst transakcijā, vai arī netiek izpildīta neviena,piemēram, naudas pārskaitīšana no viena konta otrā nozīmē naudas izņemšanu no pirmā konta un naudas pieskaitīšanu otrajam kontam, ja tiks

izpildīta tikai viena no šīm darbībām, tad iegūtais rezultāts būs nekorekts.

  • Pastāvīgums ( no angļu val. Consistency): Pēc transakcijas izpildes rezultātā datu bāze no viena nepretrunīga stāvokļa pāriet uz citu nepretrunīgu stāvokli,piemēram, ja konta stāvoklim vienmēr jābūt lielākam par "0", tad naudas pārskaitījums, kas konta stāvokli pazeminās zem nulles, netiks pieļauts.
  • Atdalīšana (no angļu val. Isolation): Transakcijas izpildē un rezultātu korektumā nevar iejaukties cita transakcija, kas izpildās paralēli,piemēram, naudas pārskaitīšanas laikā citi lietotāji nekad neredzēs stāvokli,kad nauda ir abos kontos, vai tieši otrādi tā nav nevienā kontā.
  • Izturība (no angļu val. Durability) :Izmaiņas ko datu bāzē veikusi apstiprināta transakcija nedrīkst pazaudēt(jeb garantija, ka tiklīdz, kā transakcija ir pabeigta, tās izmaiņas netiks zaudētas pat datubāzes avārijas rezultātā.).

Transakcijas darbojas pēc principa – visu vai neko. Ir jāizpildās pilnīgi visam darbību kopumam. Tikai tad, kad transakcija ir izpildījusies veiksmīgi, tās rezultāti tiek ierakstīti datu bāzē.

Datu bāzes rezerves kopiju izveide un atjaunošana[izmainīt šo sadaļu | labot pirmkodu]

Dažreiz ir nepieciešams atgriezt datu bāzi iepriekšējā stāvoklī. Iemesli šim var būd dažādi, piemēram, gadījumos, kad datu bāzē atrodas bojāti dati sakarā ar programmatūras kļūdu, vai arī tā ir papildināta ar kļūdainiem datiem. Šādas kļūdas var ieviesties, ja rezerves kopiju izveide ir veikta neregulāri vai nepārtraukti, kur katrs nepieciešamais datu bāzes stāvoklis tiek glabāts izdalītā rezerves kopijas failā. Kad šāds datu stāvoklis ir radies un ir nepieciešams atjaunot iepriekšējā datus stāvoklī to ir iespējams izdarīt izvēloties atskaites punktu laikā un atjaunojot datu bāzi vai kādu no tās daļām.