Görünüş (SQL)

SQL-də Görünüş (ing. view) — verilənlər bazasında saxlanılan virtual bir cədvəldir. Görünüş bir və ya bir neçə cədvəldən seçilmiş sütunlar və sətirlər əsasında yaradılır və istifadəçilərə məlumatlara asan giriş imkanı verir. Görünüşlər məlumatların təkrarını azaltmaq, mürəkkəb sorğuları sadələşdirmək və məlumat təhlükəsizliyini təmin etmək üçün istifadə olunur. Görünüş statik deyil və orijinal cədvəllərdəki məlumatlar dəyişdikdə avtomatik olaraq yenilənir. Görünüş SQL-də CREATE VIEW ifadəsi ilə yaradılır.[1]

Görünüşlər cədvəllər üzərində üstünlüklər təmin edə bilər:[2]

  • Görünüşlər cədvəldə olan məlumatların bir hissəsini təmsil edə bilər. Nəticə etibarilə, görünüş əsas cədvəllərin xarici aləmə məruz qalma dərəcəsini məhdudlaşdıra bilər: xüsusi istifadəçinin görünüşü sorğulamaq icazəsi ola bilər, lakin əsas cədvəlin qalan hissəsinə giriş qadağan edilə bilər.
  • Görünüşlər birdən çox cədvəli bir virtual cədvəldə birləşdirə və sadələşdirə bilər.
  • Görünüşlər məcmu cədvəllər kimi çıxış edə bilər, burada verilənlər bazası mühərriki məlumatları (cəm, orta və s.) cəmləşdirir və hesablanmış nəticələri verilənlərin bir hissəsi kimi təqdim edir.
  • Görünüşlər məlumatların mürəkkəbliyini gizlədə bilər. Məsələn, görünüş faktiki əsas cədvəli şəffaf şəkildə ayıraraq Sales2020 və ya Sales2021 kimi görünə bilər.[1]
  • Görünüşlər çox az yer tutur; verilənlər bazası yalnız görünüşün tərifini ehtiva edir, təmsil etdiyi bütün məlumatların surətini deyil.
  • İstifadəçi siniflərinin təbii və intuitiv tapdığı şəkildə struktur datasına baxır.

Görünüş orijinal sorğuya bərabərdir. Görünüş üzrə sorğular yerinə yetirildikdə sorğu dəyişir. Məsələn, aşağıdakı məzmunlu accounts_view adlı bir görünüş varsa:

-- accounts_view:
----
SELECT name,
       money_received,
       money_sent,
       (money_received - money_sent) AS balance,
       address,
	   ...
  FROM table_customers c 
  JOIN accounts_table a 
    ON a.customer_id = c.customer_id

o zaman proqram sadə bir sorğu yerinə yetirə bilər, məsələn:

-- Simple query
----
SELECT name,
       balance
  FROM accounts_view

Daha sonra DBMS sadə sorğunu götürür, onu ekvivalent təqdimatla əvəz edir və sonra aşağıdakıları sorğu optimallaşdırıcısına göndərir:

-- Preprocessed query:
----
SELECT name,
       balance
  FROM (SELECT name,
               money_received,
               money_sent,
               (money_received - money_sent) AS balance,
               address,
			    ...
          FROM table_customers c JOIN accounts_table a
               ON a.customer_id = c.customer_id        )
  1. 1 2 Groff, James R.; Weinberg, Paul N. SQL: The Complete Reference (PDF). Osborne/McGraw-Hill. 1999. 291–292. ISBN 0072118458. 2024-07-05 tarixində arxivləşdirilib (PDF). İstifadə tarixi: 2024-10-24.
  2. "25.5 Using Views". MySQL. Oracle. 2023-12-12. 2023-11-23 tarixində arxivləşdirilib. İstifadə tarixi: 2023-12-12. Views are stored queries that when invoked produce a result set. A view acts as a virtual table.