Ana içeriğe geç

Veritabanı View'ı

Veritabanı Görünümü

İngilizcesi
Database View
Okunuşu
deytıbeys vyu
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/database-view

Kısaca

Veritabanı view'ı, sanal bir tablo gibi davranan kayıtlı bir SQL sorgusudur; alttaki sorguyu her seferinde tekrarlamak yerine ondan adıyla seçim yapabilirsiniz.

Veritabanı view'ı nedir?

Veritabanı view'ı, veritabanında saklanan adlandırılmış bir sorgudur. Onu CREATE VIEW ile bir kez oluşturursunuz ve sonrasında tıpkı bir tablo gibi sorgulayabilirsiniz. Normal bir view kendi verisini saklamaz; onu her sorguladığınızda veritabanı, alttaki SELECT'i gerçek tablolar üzerinde çalıştırır.

Bir view'ı sorguladığınızda veritabanı view'ın tanımını sorgunuza katar ve birleşik ifadeyi optimize eder; böylece sonuç her zaman güncel veriyi yansıtır. View'lar karmaşık birleştirmeleri basit bir adın arkasına gizlemek, temel tablolara değil view'a erişim vererek belirli kullanıcılara yalnızca bazı sütunları veya satırları göstermek ve alttaki tablolar değişirken kararlı bir arayüzü korumak için kullanılır. Tek bir tablo üzerindeki basit view'lar çoğu zaman doğrudan güncellenebilir; karmaşık olanlar ise salt okunurdur.

View, kayıtlı bir çalma listesine benzer: şarkıları kopyalamaz, yalnızca hangilerinin hangi sırayla gösterileceğini hatırlar. Materialized view ise farklıdır: sorguyu bir kez çalıştırır ve sonucu gerçek bir tablo olarak saklar; böylece okumalar hızlıdır ancak view yenilenene kadar veri bayat olabilir. Materialized view'lar büyük tabloları toplayan panolar ve raporlar için yaygındır.

Yaygın karışıklık, view ile tablo ya da view ile stored procedure arasında yaşanır. Tablo veri tutar; normal bir view yalnızca bir sorgu tutar. Stored procedure, parametre alabilen ve veriyi değiştirebilen, çağırdığınız bir programdır; view ise bir SELECT içinden okuduğunuz bir sonuç kümesidir. Normal bir view tek başına sorguları hızlandırmaz; çünkü veritabanı altta yine aynı işi yapar.

Önemli noktalar

  • View, bir tablo gibi seçim yapabileceğiniz, adlandırılmış ve kaydedilmiş bir sorgudur.
  • Normal bir view veri saklamaz ve her zaman güncel sonuçları gösterir.
  • View'lar karmaşık birleştirmeleri basitleştirir ve kullanıcıların görebileceği sütunları sınırlayabilir.
  • Materialized view sonucunu saklar ve güncel kalması için yenilenmelidir.

Örnek

View ve materialized view oluşturmak (PostgreSQL sözdizimi)sql
-- A view hides a join behind a simple name
CREATE VIEW active_customers AS
SELECT c.id, c.name, c.country, MAX(o.created_at) AS last_order
FROM customers AS c
JOIN orders AS o ON o.customer_id = c.id
GROUP BY c.id, c.name, c.country;

SELECT * FROM active_customers WHERE country = 'DE';

-- A materialized view stores the result; refresh it to update
CREATE MATERIALIZED VIEW sales_by_month AS
SELECT date_trunc('month', created_at) AS month, SUM(total) AS revenue
FROM orders GROUP BY 1;
REFRESH MATERIALIZED VIEW sales_by_month;

Sık sorulan sorular

Veritabanı view'ı veri saklar mı?

Normal bir view saklamaz; yalnızca sorguyu saklar ve view'dan her okuduğunuzda onu çalıştırır. Materialized view ise sonucunu saklar; bu yüzden yenilenmesi gerekir.

View ile materialized view arasındaki fark nedir?

View her sorguda yeniden hesaplanır; bu yüzden her zaman günceldir ancak ağır sorgularda yavaş olabilir. Materialized view önceden hesaplanmıştır ve okuması hızlıdır, ancak veriyi son yenilendiği andaki haliyle gösterir.

Bir view üzerinden veri eklenebilir veya güncellenebilir mi?

Toplama ya da DISTINCT olmadan tek bir tablodan seçen basit view'lar için çoğunlukla evet. Birleştirme veya gruplama içeren view'lar, veritabanı özel kurallar ya da INSTEAD OF trigger'ları sunmadıkça genellikle salt okunurdur.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar