Saya membaca Alkitab SQL Server 2008 dan saya membahas bagian tampilan. Tetapi penulis tidak benar-benar menjelaskan tujuan dari pandangan. Apa kegunaan yang baik untuk tampilan? Haruskah saya menggunakannya di situs web saya dan apa manfaatnya?
sql
sql-server
Lukas101
sumber
sumber
Jawaban:
Penggunaan lain yang tampaknya tidak disebutkan oleh jawaban sebelumnya adalah penerapan perubahan struktur tabel yang lebih mudah.
Misalnya, Anda ingin menghentikan tabel (
T_OLD
) yang berisi data untuk pengguna aktif, dan sebagai gantinya menggunakan tabel baru dengan data serupa (bernamaT_NEW
) tetapi tabel yang memiliki data untuk pengguna aktif dan tidak aktif, dengan satu kolom tambahanactive
.Jika sistem Anda memiliki trilyun kueri
SELECT whatever FROM T_OLD WHERE whatever
, Anda memiliki dua pilihan untuk peluncuran:1) Cold Turkey - Ubah DB, dan pada saat yang sama, ubah, uji dan lepaskan banyak potongan kode yang berisi query tersebut. SANGAT sulit dilakukan (atau bahkan dikoordinasikan), sangat berisiko. Buruk.
2) Bertahap - ubah DB dengan membuat
T_NEW
tabel, lepaskanT_OLD
tabel dan sebagai gantinya buat TAMPILAN disebutT_OLD
yang meniruT_OLD
tabel 100% (misalnya kueri tampilan adalahSELECT all_fields_except_active FROM T_NEW WHERE active=1
).Itu akan memungkinkan Anda untuk menghindari melepaskan kode APAPUN yang saat ini dipilih
T_OLD
, dan melakukan perubahan untuk memigrasi kode dariT_OLD
menjadiT_NEW
di waktu luang.Ini adalah contoh sederhana, ada orang lain yang lebih terlibat.
PS Di sisi lain, Anda mungkin harus memiliki API prosedur tersimpan daripada kueri langsung dari
T_OLD
, tetapi itu tidak selalu terjadi.sumber
(Disalin dari tutorial pertama yang muncul dalam pencarian Google (tautan sekarang mati), tetapi memiliki semua manfaat yang saya sendiri ketik secara manual.)
sumber
Beberapa alasan dari Wikipedia :
Tampilan dapat memberikan keuntungan dibandingkan tabel:
sumber
VIEWS dapat digunakan sebagai bagian SELECT / CODE yang dapat digunakan kembali, yang dapat disertakan dalam pemilihan / kueri lain untuk digabungkan, dan menggunakan berbagai filter berbeda, tanpa harus membuat ulang seluruh SELECT setiap saat.
Ini juga menempatkan logika di satu lokasi, sehingga Anda tidak perlu mengubahnya di seluruh basis kode.
Silahkan lihat
Pilihan Antara Stored Procedures, Functions, Views, Triggers, Inline SQL
sumber
Tampilan adalah lapisan abstraksi, dan melakukan apa yang dilakukan lapisan abstraksi yang baik, termasuk merangkum skema database dan melindungi Anda dari konsekuensi mengubah detail implementasi internal.
Ini sebuah antarmuka.
sumber
Berikut adalah salah satu penggunaan umum menggunakan tampilan untuk membatasi entitas dengan beberapa kriteria.
Tabel: USERS berisi semua pengguna
Tampilan: ACTIVE_USERS berisi semua pengguna kecuali mereka yang ditangguhkan, diblokir, menunggu untuk diaktifkan dan tidak memenuhi kriteria apa pun yang dapat Anda pilih untuk ditentukan di masa mendatang sebagai bagian dari persyaratan aktif. Hal ini membuat Anda tidak perlu menghapus baris dari tabel USERS jika Anda memilih untuk tidak melakukannya karena ACTIVE_USERS selalu dapat menyembunyikan baris yang tidak diinginkan.
Dengan cara ini, Anda dapat menggunakan tabel di halaman manajemen pengguna, tetapi aplikasi lainnya dapat menggunakan ACTIVE_USERS karena mereka mungkin satu-satunya pengguna yang dapat menjalankan proses dan mengakses / mengubah data.
sumber
Tampilan dapat memungkinkan Anda menggabungkan data dari beberapa tabel berbeda dan memformatnya (menggabungkan bidang, memberikan nama bidang yang lebih bermakna, dll.) Sehingga lebih mudah bagi pengguna akhir. Mereka adalah abstraksi dari model database. Mereka juga dapat digunakan untuk memberi pengguna akses ke data dalam tabel tanpa memberi mereka akses langsung ke tabel itu sendiri.
sumber
Berikut adalah beberapa dari banyak alasan menggunakan view daripada tabel secara langsung
Dari imexploring.com
sumber
Daftar kecil alasan / penggunaan umum:
gunakan mereka untuk mengubah format atau 'tampilan' data (yaitu Anda dapat menggabungkan nama depan dan belakang bersama-sama)
melakukan penghitungan atau pencarian data lainnya
mendenormalisasi data (mengekstrak data dari beberapa tabel ke satu tempat)
sumber
Pandangan itu jahat! Hindari mereka jika memungkinkan dan gunakan hanya untuk alasan yang disebutkan oleh DVK - migrasi data sementara.
Anda harus memahami bahwa dalam database dengan 100 tabel sulit untuk mengingat tujuan setiap tabel. Sekarang, jika Anda menambahkan 300 tampilan lagi di sini, itu akan menjadi kekacauan total. Dari pada 'View lovers' cenderung menggunakan tampilan bersarang dan kemudian menggunakan tampilan bersarang dalam prosedur yang tersimpan. Saya secara pribadi bekerja sekarang dengan database di mana ada Tampilan yang bersarang secara mendalam 4 kali! Jadi untuk memahami logika paling sederhana dari prosedur tersimpan, saya harus melalui semua tampilan terlebih dahulu.
sumber