Sql'de Görünüm ve Tablo Arasındaki Fark


136

Olası Yineleme:
Performansta Görünümler ve Tablolar Arasındaki Fark

SQL'de görünüm ve tablo arasındaki temel fark nedir. Tablolar yerine görünüm kullanmanın herhangi bir avantajı var mı?



6
Kopya gibi görünmüyor. Bağlantılı gönderi, özellikle performans / verimlilik hakkında sorular soruyor. Bu gönderi, seçilen cevabın temsil ettiği gibi, veri türleri olarak nasıl farklı olduklarını soruyor.
Ð ..

Yanıtlar:


198

Tablo verileri içerir, görünüm yalnızca SELECTveritabanına kaydedilen bir ifadedir (veritabanınıza bağlı olarak az ya da çok).

Bir görünümün avantajı, birkaç tablodaki verileri birleştirerek yeni bir görünüm oluşturmasıdır. Maaşları olan bir veritabanınız olduğunu ve üzerinde bazı karmaşık istatistiksel sorgular yapmanız gerektiğini varsayalım.

Karmaşık sorguyu her zaman veritabanına göndermek yerine, sorguyu bir görünüm olarak kaydedebilir ve ardından SELECT * FROM view


11
Dolayısıyla görünüm, bir select ifadesiyle oluşturulmuş bir tablodur. Görünüm saklanır ve erişilebilir, bu nedenle bir görünüm yerine bu bilgilerle yeni bir tablo oluşturmak arasındaki fark ne olur.
Doug Hauf

23
Bir görünümü, tekrarlayabileceğiniz "kaydedilmiş bir seçim ifadesi" olarak düşünebilirsiniz. Gerçekte bir masa değil; bazı veritabanları altında gerçek bir tablo olan görünümler oluşturmaya izin verse de, bu gerçekten sadece SELECTsonuçları döndüren bir ifadedir.
Aaron Digulla

1
dikkat edilecek bir şey: bazı veritabanı sistem listesi görünümleri ve "tabloları göster" üzerindeki tablolar; Komut.
Dexter

1
@ShwetabhShekhar Bu, veritabanınıza ve görünüm türüne bağlıdır. En basit haliyle, veritabanı SQL'i her şeyi göndermişsiniz gibi çalıştıracaktır. Bu durumda, çok sayıda baytı tekrar tekrar göndermeyi kaydedersiniz. Bazı veritabanları sorguyu yürütebilir ve sonucu (gerçek) bir tabloda depolayabilir. O halde bahsettiğiniz sorunları bir şekilde çözmeniz gerekiyor. Bunun nasıl yapılacağını DB belgelerine bakın.
Aaron Digulla

1
@FoxDeploy Evet, çünkü bu görünüm hiçbir şekilde yardımcı olmuyor. Faydalı senaryolar, sınırlı izinlere sahip bir görünüm veya aynı veritabanındaki veya başka bir veritabanındaki (uzak tablo) başka bir şemadan bir tablo seçen bir görünüm olabilir.
Aaron Digulla

34

Tablo: Tablo, verileri ve bilgileri RDBMS'de depolamak için bir ön depolamadır. Tablo, ilgili veri girişlerinin bir koleksiyonudur ve sütun ve satırlardan oluşur.

Görünüm: Görünüm, içeriği bir sorgu tarafından tanımlanan sanal bir tablodur. İndekslenmedikçe, bir görünüm bir veritabanında depolanan veri değerleri kümesi olarak mevcut değildir. Masaya göre avantajları:

  • Birden çok tablodan veya başka bir görünümden sütunları / satırları birleştirebilir ve konsolide bir görünüme sahip olabiliriz.
  • Görünümler, kullanıcılara görünümün temel tablolarına doğrudan erişim izni vermeden, kullanıcıların görünüm aracılığıyla verilere erişmesine izin vererek güvenlik mekanizmaları olarak kullanılabilir.
  • Aşağı akış sistemlerine soyut bir katman görevi görür, bu nedenle şemadaki herhangi bir değişiklik ortaya çıkmaz ve dolayısıyla aşağı akış sistemleri etkilenmez.

16

Görünüm, sanal bir tablodur. Görünüm, tıpkı bir tablo gibi satır ve sütunlardan oluşur. Görünüm ile tablo arasındaki fark, görünümlerin diğer tabloların (veya görünümlerin) üzerine inşa edilmiş tanımlar olması ve verileri kendilerinin tutmamasıdır. Temel tablodaki veriler değişiyorsa, aynı değişiklik görünüme yansıtılır. Tek bir tablonun veya birden çok tablonun üzerine bir görünüm oluşturulabilir. Ayrıca başka bir görünümün üzerine de inşa edilebilir. SQL Create View sayfasında, bir görünümün nasıl oluşturulabileceğini göreceğiz.

Görünümler aşağıdaki avantajları sunar:

  1. Kullanım kolaylığı: Bir görünüm, veritabanı tablolarının karmaşıklığını son kullanıcılardan gizler. Esasen görünümleri veritabanı tablolarının üstünde bir soyutlama katmanı olarak düşünebiliriz.

  2. Yer tasarrufu: Görünümler, gerçek verileri depolamadıkları için depolamak için çok az yer kaplar.

  3. Ek veri güvenliği: Görünümler, tabloda yalnızca belirli sütunları içerebilir, böylece yalnızca hassas olmayan sütunlar dahil edilir ve son kullanıcıya sunulur. Ek olarak, bazı veritabanları, görünümlerin farklı güvenlik ayarlarına sahip olmasına izin vererek hassas verileri meraklı gözlerden gizler.

Cevap: http://www.1keydata.com/sql/sql-view.html


4

Görünüşe göre veritabanı ile herhangi bir doğrudan veya fiziksel ilişki yoktur. Ve bir görünüm aracılığıyla değiştirmeye (örn. Ekleme, güncelleme, silme) izin verilmez, sadece mantıksal bir tablolar kümesidir.


1
SQL Server'da, yalnızca bir temel tabloya başvuruyorsa, temel tabloyu bir görünüm aracılığıyla değiştirebilirsiniz. buraya bakın
Kristen Hammack

3

Bir görünüm, veritabanı alanını her zaman kullanmaktan kurtulmamıza yardımcı olur. Bir tablo oluşturursanız, bu tablo veritabanında saklanır ve varlığı boyunca bir miktar yer tutar. Bunun yerine görünüm, bir sorgu çalıştırıldığında ve dolayısıyla db alanından tasarruf ettiğinde kullanılır. Ve farklı masaları birleştirerek her zaman büyük masalar oluşturamayız, ancak yapabilsek de, masanın yerden tasarruf etmek için ne kadar büyük olduğuna bağlı. Öyleyse görünüm sadece çalışma zamanında farklı masalara katılarak geçici olarak bir tablo oluşturun. Uzmanlar, yanılıyorsam lütfen düzeltin.


2

Tablo:

Tablo, verileri veritabanında depolar ve verileri içerir.

Görünüm:

Görünüm hayali bir tablodur, yalnızca alanları (sütunları) içerir ve çalışma zamanında çerçevelenecek verileri (satır) içermez Bir veya daha fazla tablodan seçilen sütunlarla birleştirmelerle oluşturulan görünümler. Güvenlik nedenleriyle bazı sütunları kullanıcıdan gizlemek ve sütunda bulunan bilgileri gizlemek için görünümler oluşturulur. Görünümler, her seferinde belirli sütunlara erişmek için sorgu yazma çabasını azaltır Her seferinde veritabanına karmaşık sorguyu vurmak yerine, görünümü kullanabiliriz


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.