Oh, ada banyak perbedaan yang perlu Anda pertimbangkan
Tampilan untuk seleksi:
- Tampilan memberikan abstraksi atas tabel. Anda dapat menambahkan / menghapus bidang dengan mudah dalam tampilan tanpa mengubah skema dasar Anda
- Tampilan dapat memodelkan gabungan yang kompleks dengan mudah.
- Tampilan dapat menyembunyikan hal-hal khusus database dari Anda. Misalnya jika Anda perlu melakukan beberapa pemeriksaan menggunakan fungsi Oracles SYS_CONTEXT atau banyak hal lainnya
- Anda dapat dengan mudah mengelola HIBAH Anda langsung pada tampilan, daripada tabel sebenarnya. Lebih mudah mengelola jika Anda mengetahui pengguna tertentu hanya dapat mengakses tampilan.
- Tampilan dapat membantu Anda dengan kompatibilitas mundur. Anda dapat mengubah skema yang mendasarinya, tetapi tampilan dapat menyembunyikan fakta tersebut dari klien tertentu.
Tampilan untuk penyisipan / pembaruan:
- Anda dapat menangani masalah keamanan dengan tampilan menggunakan fungsionalitas seperti klausul "WITH CHECK OPTION" dari Oracle secara langsung dalam tampilan
Kekurangan
- Anda kehilangan informasi tentang relasi (kunci utama, kunci asing)
- Tidak jelas apakah Anda akan dapat menyisipkan / memperbarui tampilan, karena tampilan menyembunyikan gabungan yang mendasarinya dari Anda
Tampilan dapat:
Dan Anda sebaiknya tidak mendesain tabel agar sesuai dengan tampilan . Model dasar Anda harus memperhatikan penyimpanan dan pengambilan data yang efisien. Tampilan sebagian merupakan alat yang mengurangi kerumitan yang muncul dari model yang efisien dan dinormalisasi dengan memungkinkan Anda mengabstraksi kompleksitas itu.
Selain itu, menanyakan "apa keuntungan menggunakan tampilan di atas tabel?" Bukanlah perbandingan yang bagus. Anda tidak bisa pergi tanpa tabel, tapi Anda bisa melakukannya tanpa tampilan. Mereka masing-masing ada karena alasan yang sangat berbeda. Tabel adalah model konkret dan Views adalah abstrak, well, View.
sumber
Tampilan dapat diterima saat Anda perlu memastikan bahwa logika kompleks diikuti setiap saat. Misalnya, kami memiliki tampilan yang membuat data mentah yang diperlukan untuk semua pelaporan keuangan. Dengan membuat semua laporan menggunakan tampilan ini, semua orang bekerja dari kumpulan data yang sama, bukan satu laporan menggunakan satu kumpulan gabungan dan lainnya lupa menggunakan satu yang memberikan hasil yang berbeda.
Tampilan dapat diterima jika Anda ingin membatasi pengguna ke subkumpulan data tertentu. Misalnya, jika Anda tidak menghapus rekaman tetapi hanya menandai yang saat ini sebagai aktif dan versi yang lebih lama sebagai tidak aktif, Anda ingin tampilan yang digunakan untuk memilih hanya rekaman yang aktif. Hal ini mencegah orang lupa meletakkan klausa where dalam kueri dan mendapatkan hasil yang buruk.
Tampilan dapat digunakan untuk memastikan bahwa pengguna hanya memiliki akses ke sekumpulan catatan - misalnya, tampilan tabel untuk klien tertentu dan tidak ada hak keamanan pada tabel dapat berarti bahwa pengguna untuk klien tersebut hanya dapat melihat data untuk klien itu.
Tampilan sangat membantu saat melakukan refactoring database.
Tampilan tidak dapat diterima saat Anda menggunakan tampilan untuk memanggil tampilan yang dapat mengakibatkan kinerja yang buruk (setidaknya di SQL Server). Kami hampir kehilangan klien jutaan dolar karena seseorang memilih untuk mengabstraksi database seperti itu dan kinerjanya sangat buruk dan sering timeout. Kami juga harus membayar untuk perbaikannya, bukan klien, karena masalah kinerja sepenuhnya adalah kesalahan kami. Saat tampilan memanggil tampilan, mereka harus sepenuhnya menghasilkan tampilan yang mendasarinya. Saya telah melihat ini di mana tampilan itu disebut tampilan yang disebut tampilan dan jutaan catatan dibuat untuk melihat tiga yang pada akhirnya dibutuhkan pengguna. Saya ingat salah satu tampilan ini membutuhkan waktu 8 menit untuk melakukan penghitungan sederhana (*) dari rekaman. Pandangan yang memanggil pandangan adalah ide yang sangat buruk.
Tampilan sering kali merupakan ide yang buruk untuk digunakan untuk memperbarui catatan karena biasanya Anda hanya dapat memperbarui bidang dari tabel yang sama (sekali lagi ini adalah SQL Server, database lain mungkin berbeda). Jika demikian, akan lebih masuk akal untuk memperbarui tabel secara langsung sehingga Anda tahu bidang mana yang tersedia.
sumber
Tampilan berguna saat Anda perlu memilih dari beberapa tabel, atau hanya untuk mendapatkan subset tabel.
Anda harus mendesain tabel Anda sedemikian rupa sehingga database Anda dapat dinormalisasi dengan baik (duplikasi minimum). Ini dapat membuat kueri agak sulit.
Tampilan adalah sedikit pemisahan, memungkinkan Anda untuk melihat data dalam tabel secara berbeda dari yang disimpan.
sumber
Praktik yang umum dilakukan adalah menyembunyikan gabungan dalam tampilan untuk menyajikan model data yang lebih dinormalisasi kepada pengguna. Penggunaan lain melibatkan keamanan (misalnya dengan menyembunyikan kolom dan / atau baris tertentu) atau kinerja (dalam kasus tampilan terwujud)
sumber
Anda harus mendesain meja Anda TANPA mempertimbangkan tampilan.
Selain menyimpan gabungan dan ketentuan, Tampilan memiliki keunggulan performa: SQL Server dapat menghitung dan menyimpan rencana pelaksanaannya dalam tampilan, dan karenanya membuatnya lebih cepat daripada pernyataan SQL "sambil jalan".
View juga dapat memudahkan pekerjaan Anda terkait akses pengguna di tingkat lapangan.
sumber
Pertama-tama, seperti namanya, tampilan tidak dapat diubah. itu karena tampilan tidak lain adalah tabel virtual yang dibuat dari kueri yang disimpan di DB. Karena itu, Anda memiliki beberapa karakteristik tampilan:
jadi ada banyak sekali kasus penggunaan yang tampilan lebih pas daripada tabel, pikirkan tentang hanya menampilkan pengguna aktif di situs web. tampilan akan lebih baik karena Anda beroperasi hanya pada subkumpulan data yang sebenarnya ada di DB Anda (pengguna aktif dan tidak aktif)
lihat artikel ini
semoga ini membantu ..
sumber
Menurut Wikipedia ,
Tampilan dapat memberikan banyak keuntungan dibandingkan tabel:
Tampilan dapat membatasi tingkat keterpaparan tabel yang mendasari ke dunia luar: pengguna tertentu mungkin memiliki izin untuk menanyakan tampilan, sementara menolak akses ke tabel dasar lainnya.
Tampilan dapat menggabungkan dan menyederhanakan beberapa tabel menjadi satu tabel virtual.
Tampilan dapat bertindak sebagai tabel gabungan , di mana mesin database menggabungkan data (jumlah, rata-rata, dll.) Dan menyajikan hasil yang dihitung sebagai bagian dari data.
Tampilan dapat menyembunyikan kerumitan data. Misalnya, tampilan bisa muncul sebagai Sales2000 atau Sales2001, secara transparan mempartisi tabel yang mendasari sebenarnya.
Tampilan membutuhkan sedikit ruang untuk disimpan ; database hanya berisi definisi tampilan, bukan salinan dari semua data yang disajikan.
Tampilan dapat memberikan keamanan ekstra , bergantung pada mesin SQL yang digunakan.
sumber