Galvenie datubāzu objekti un jēdzieni

1. Datubāze (Database)

Datu/informācijas kopums, kas tiek uzskatīts kā viena loģiska vienība. Kā jau tas parasti – pats pirmais, kas darbā ar datubāzēm jāatceras - tās ir dažādas. Lai gan formālajā definīcijā īpašas atšķirības nav, tomēr, piemēram, Oraclē datubāze sastāv no loģiskās un fiziskās struktūras, tas ir viss failu kopums, kas pastāvīgi glabājas serverī un ko instance (procesi un atmiņa uz servera) startējoties atver. Savukārt, SQL Serverī Datubāze ir vairāk kā viens loģisks lietotājs, kam pieder noteikti objekti, piemēram, tabulas un skatījumi un Oraclē, tam atbilst jēdziens shēma (Schema).

2. Tabulas (Table)

Tabulas ir relāciju datubāzes pamatvienība, kurā glabā datus. Katrai tabulai ir nosaukums. Katrai tabulai ir fiksēts skaits kolonu (vismaz viena) un parasti neierobežots skaits ierakstu. Tabulu piemēri – Organizācijas, Personas, Adreses.

3. Kolonas (Column)

Kolona ir kādas tabulas vai skatījuma atribūts, kam ir savs nosaukums un noteikts datu tips. Vienā kolonā parasti tiek glabāti dati, kuri pēc sava mērķa un sūtības ir vieni un tie paši. Kolonu piemēri Personu tabulai – Vārds, Uzvārds, Personas kods.

4. Ieraksti (Row)

Ieraksts ir loģiski saistīta datu kopa tabulā, kur visi ieraksti sastāv no vienām un tām pašām kolonām. Ieraksta piemērs Personas tabulā Jānis, Bērziņš, 01010112345.

5. Skatījumi (View)

Skatījums ir virtuāla vai loģiska tabula datubāzē, kas nesatur datus, bet ir balstīts uz vaicājumu. Izmainot datus tabulā, attiecīgi mainās arī dati skatījumā. Skatījumus veido dažādu iemeslu dēļ, no kuriem populārākie varētu būt, lai nebūtu jāraksta vienmēr bieži izmantots vaicājums, bet tā vietā izmantot skatījumu, un ierobežot pieejas tiesības lietotājiem izmantojot skatījumus, kas ierobežo pieejamo datu kopu. Skatījuma piemērs Personas adreses, kas kombinē (join) datus no Personu un Adrešu tabulām.

6. Indeksi (Index)

Indeksi ir datu struktūras, kuru primārais uzdevums ir ātri atlasīt noteiktus datus tabulā. Indeksi parasti tiek veidoti uz vienas vai vairākām kolonām tabulā. Gluži kā terminu indekss grāmatā, kas norāda kurā(-s) lappusē(-s) ir atrodams noteiktais termins, tā arī datubāzē indekss norāda kurā ierakstā ir atrodama Persona ar Vārdu Jānis. Bez indeksa nāktos skanēt cauri visu tabulu. Piemērs – indekss uz kolonu Vārds tabulā Persona, ļauj ātri atrast visu personu ierakstus ar noteiktu vārdu. Vairāk par indeksiem, to uzbūvi un pielietojumu lasīt šeit.

7. Ierobežojumi (Constraint)

Ierobežojumi nodrošina biznesa prasību un datu integritātes īstenošanu datubāzē. Ierobežojumi ir vairāku veidu, parastākie ir šādi:
Nav null (Not null) – pārbaudes ierobežojuma speciālgadījums, kolonai ir jābūt netukšai.
Primārā atslēga (Primary key) – unikāls veids kā identificēt ierakstu, sastāv no vienas vai vairākām kolonām. Piemēram, Personas kods Personai.
Unikālā atslēga (Unique key) – atšķirībā no Primārās atslēgas kolona var būt tukša, bet visām, netukšajām vērtībām (vērtību kombinācijām) ir jābūt unikālām, piemēram, Vārds, Uzvārds, Dzimšanas datums un Dzimšanas vieta personai.
Ārējās atslēgas (Foreign key) – vērtību kopa ir ierobežota ar citas tabulas primārās vai unikālās atslēgas vērtību kopu, piemēram, adreses identifikators Personu tabulā, kas norāda personas adresi.
Pārbaudes ierobežojums (Check constraint) – vienai vai vairākām kolonām jāatbilst noteiktai loģiskai izteiksmei, piemēram, personas dzimšanas datums nedrīkst būt mazāks kā 1900. gada 1. janvāris.

8. Saglabātās procedūras, funkcijas, pakotnes (Stored procedure, function, package)

SQL teikumu un procedurālu elementu (nosacījumi, cikli, mainīgie, to definēšana, vērtību piešķiršana utt.) kopums, kas tiek saglabāts datubāzē un kam tiek piešķirts noteikts nosaukums. Tādējādi šādu saglabātu procedūru ir iespējams izpildīt datubāzē to izsaucot no jebkura klienta. Saglabātas procedūras piemērs – mēnešalgas aprēķins uzņēmuma darbiniekam balstoties uz mēneša laikā ievadīto informāciju par nostrādātajām stundām.

9. Trigeri (Trigger)

SQL teikumu un procedurālu elementu kopums, kas tiek automātiski izpildīts, pēc vai pirms kāda noteikta notikuma. Notikumi pamatā ir divu veidu – datu manipulācijas valodas teikums (Insert, Update, Delete), kas veic izmaiņas noteiktā tabulā vai Datu definēšanas valodas teikums. Dažādās datubāzēs iespējamie trigeru veidi ir dažādi. Trigera piemērs – katrai rindiņai, kas tiek pievienota tabulai, automātiski atsevišķā kolonā tiek saglabāts lietotāja vārds, kas to izdarījis.

10. Transakcijas (Transaction)

Izmaiņu kopums datubāzē, kur tām ir jāatbilst četrām (ACID, no angļu valodas pazīmju pirmajiem burtiem) pazīmēm:
1) Atomitāte, atomaritāte (Atomicity)  – visām izmaiņām ir vai nu jātiek izpildītām, vai arī jātiek atceltām, 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.
2) Konsistence, saskanīgums (Consistency) – transakcijas sākumā un beigās netiek pārkāpti ierobežojumi, 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.
3) Izolētība (Isolation) – transakcijas izmaiņas nav redzamas citās operācijās, 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ā.
4) Ilgstamība, paliekamība (Durability) – garantija, ka tiklīdz, kā transakcija ir pabeigta, tās izmaiņas netiks zaudētas pat datubāzes avārijas rezultātā.

11. Tiesības (Permission, Privilege)

Atļauja veikt noteiktu operāciju. Pamatā dalās divās daļās – tiesības veikt noteiktu darbību datubāzē, piemēram, izveidot tabulu, vai tiesības veikt noteiktas datu manipulācijas ar esošiem objektiem, piemēram, dot lasīšanas tiesības uz tabulu Personas citiem datubāzes lietotājiem.

12. Lomas (Role)

Tiesību kopums, kam piešķirts vārds.

13. Bloķēšana (Locking)

Tiesību aizliegums vienlaicīgi darboties ar vieniem un tiem pašiem ierakstiem. Parasti darbības dalās divās daļās – lasīšanā (DML Select teikums) un rakstīšanā (DML Insert, Delete, Update). Tas par ko parasti interesējas vai datubāzes lasītāji bloķē rakstītājus un rakstītāji bloķē lasītājus, t.i. vai vienas tabulas rindu vienlaicīgi var viens vai vairāki lietotāji lasīt un viens lietotājs rakstīt. Parasti, lasītāji citus lasītājus nebloķē, un rakstītāji savukārt citus rakstītājus bloķē, t.i. vienlaicīgi vienas tabulas vienu rindu var lasīt no vairākiem pieslēgumiem, bet rakstīt var tikai viens. Bez tam mehānisms cik lielā līmenī notiek bloķēšana arī ir atšķirīgs (ierakstu, datu bāzes bloku, tabulu).

14. Strukturēta vaicājumu valoda (SQL)

Īss apraksts paskaidrots šeit.

SQL elementu un konstrukciju indekss ir šeit.

15. Datu manipulēšanas, definēšanas, kontroles un transakciju kontroles valoda (DML, DDL, DCL, TCl)

Paskaidrota šeit.

16. Tālākā lasāmviela

3 Atbildes to “Galvenie datubāzu objekti un jēdzieni”

  1. biekste Teica:

    4 gadi studiju pa kaaju…
    visu laiku tika macits ka view -> skats nevis skatijums

    tie Ierobežojumi arii kka manuprat neatbilst patiesibai

  2. Gints Plivna Teica:

    Ne viss, kas rakstīts internetā, ir taisnība un nekam nevar ticēt 100%, tai skaitā arī tam, kas ir šai vietnē :)
    Bet skatoties http://www.termini.lv view ir tulkots kā skatījums un constraint netiek tulkots nekādi, savukārt tildes vārdnīcā, kas gan, protams, nav nekāda mega autoritāte, constraint tomēr ir ierobežojums.

  3. lagreen Teica:

    Ak jel, skatiijums..
    ..nezinu, kaut kaa mani tas vairs nepaarsteidz.. :)

Atstāj atbildi