Skats (datubāze)

Skats (), relāciju datubāzu kontekstā, ir virtuāla tabula, ko no vienas vai vairākām tabulām veido SQL vaicājums. Par skatu sauc arī šādu saglabātu vaicājumu.

Tā kā kopas nav sakārtotas pēc definīcijas, arī rindas skatā nav sakārtotas. Tāpēc ORDER BY teikums skata definēšanā ir nenozīmīgs. SQL standarts nepieļauj ievietot ORDER BY teikumu CREATE VIEW priekšrakstā gluži tāpat, kā nav atļauts CREATE TABLE priekšraksts. Taču no skata var iegūt sakārtotus datus tādā pašā veidā, kā no jebkuras citas tabulas, kā daļu no vaicājuma priekšraksta. Tomēr, dažas DBVS (kā Oracle un SQL Server) ļauj izveidot skatu ar ORDER BY teikumu apakšvaicājumā, kas ietekmē to, kā tiek parādīti dati.

Skatu priekšrocības, salīdzinot ar tabulām 
 Skats var attēlot datu apakškopu, kuru satur tabula
 Skati var apvienot un vienkāršot saliktas tabulas vienā virtuālā tabulā
 Skati var būt kā kopsavilkuma tabulas, kur datu bāzes dzinējs apkopo datus (summa, vidējais aritmētiskais utt.) un sniedz aprēķinu rezultātus kā daļu no datiem
 Skati aizņem ļoti mazu atmiņu uzglabāšanai, datu bāze satur vienīgi skata definīciju, nevis visus datus, ko satur kopija
 Atkarībā no SQL izmantojuma, skati var nodrošināt papildu drošību
 Skati var ierobežot tabulas vai tabulu izpaušanas pakāpi, ārējai pasaulei

Gluži kā funkcijas (programmēšanā) spēj piedāvāt abstrakciju, tāpat arī datu bāzu lietotāji var izveidot abstrakciju, izmantojot skatus. Citā paralēlē ar funkcijām, datu bāzu lietotāji var manipulēt ar ligzdveida skatiem jeb viens skats var savākt datus no citiem skatiem. Neizmantojot skatus, datu bāzu normalizēšana būtu daudz sarežģītāka. Skati padara vienkāršāku bezzudumu savienojuma dekompozīciju.

Tikai lasāmi un uzlabojami skati 
Datu bāzu praktizētāji var definēt skatus kā tikai lasāmus vai uzlabojamus. Ja datu bāzes sistēma var noteikt pretējo skata shēmas attēlojumu no pamata bāzes tabulas, tad skats ir uzlabojams. INSERT, UPDATE un DELETE operācijas var tikt piemērotas uzlabojamiem skatiem. Tikai lasāmi skati neatbalsta šādas operācijas, jo DBVS nevar noteikt izmaiņas, kādas notikušas pamata bāzes tabulās.

Indeksētie skati 
Indeksēts skats, atšķirībā no parasta skata, ir materializēts, tas nozīmē, ka dati, ko atgriež skats, tiek uzglabāti datu bāzē tādā formā, kā tos atgriež skats. Atšķirība star indeksētu skatu un parastu skatu rodas brīdī, kad parastam skatam tiek izveidots klasterēts indekss. Klasterētā indeksa uzbūve ir gandrīz tāda pati, kā tabulām (Tabulas ar klasterētu (clustered) indeksu Skatīt). Atšķirība ir tā, ka datu lapās tiek glabāti tie dati, kas norādīti skatā, ja dati ir iegūti agregātfunkciju rezultātā, tad datu lapās tiek glabāti jau agregātfunkciju rezultāti.
Tas, ka skatā tiek glabāti jau sagatavoti dati, uzliek zināmus ierobežojumus. Jāņem vērā arī tas, ka indeksētais skats aizņems vietu uz diska. Tas arī nozīmē to, ka katra DML (Datu Manipulācijas Valoda- Insert, Update, Delete) operācija nozīmē datu mainīšanu arī indeksētajā skatā.

Ārējās saites 
 Skati MySQL 

Datubāzu pārvaldības sistēmas
SQL