Sub Materi:
• VIEWS DAN CONTROL FLOW FUNCTION
• RELATIONSHIP
• JOIN
VIEWS &
CONTROL FLOW FUNCTION
Views
• View dapat diartikan sebagai tabel virtual
• View merupakan tabel logis yang dibangun dari operasi SELECT dan
JOIN dari database yang sebenarnya. Dengan kata lain, database view
merupakan ilusi (kembar tapi beda) dari tabel sebenarnya.
Tujuan
• untuk mempermudah penulisan query,
• untuk keamanan yang dapat menyembunyikan beberapa kolom yang
bersifat rahasia,
• digunakan untuk mempercepat proses menampilkan data terutama
jika pernyataan query yang dijalankan tersebut secara berulang.
Kelebihan View
• View mempermudah query yang kompleks
Bila ingin query data dari 2 atau lebih tabel, kita membutuhkan JOIN. Setiap operasi query
yang dibuat ke database mengharuskan kita menulis JOIN lagi dan lagi. Oleh karena itu,
View pertama kali dibuat dengan menggunakan JOIN, setelah itu hanya perlu dilakukan
operasi yang diinginkan saja kepada View tersebut, tidak perlu ke database langsung.
• View digunakan untuk mekanisme keamanan
View dibangun dengan memilih beberapa kolom dari beberapa tabel yang diinginkan,
tanpa perlu diberikan akses penuh ke database. Hal ini dapat mencegah user untuk
mengambil informasi penting dari database sebenarnya.
• View digunakan untuk menampilkan komputasi data
Bayangkan kita memiliki tabel dengan nama orderDetails dengan tiga kolom yaitu id,
kuantitas order, dan harga per order. Perhitungan harga total order tidak baik bila disimpan
di dalam database langsung walaupun data tersebut dibutuhkan. Daripada harga total
order dihitung terus menerus dalam setiap query, kita bisa menghitung cukup 1x saja dan
menyimpan hasilnya dalam database View.
Kekurangan View
• Performa
Pada dasarnya, view dibuat dengan menjalankan tambahan query dari
database yang ada, apalagi bila view dibentuk dari view yang lainnya.
• Pembatasan pengubahan data
Semakin banyaknya tabel yang berkolaborasi untuk membentuk view,
semakin ketat peraturan untuk mengupdate data dari suatu view.
Syntax
Dimana sebaiknya foreign key dipasang? Di kolom pada tabel yang "many".
Many to Many
• Satu record dalam tabel A dapat terhubung dengan banyak record
dalam tabel B dan satu record dalam tabel B dapat terhubung dengan
banyak record dalam tabel A.
• Lalu, di tabel mana dapat kita pasang Foreign Key?
• Pada akhirnya, many-to-many relationship table akan diubah
menjadi dua buah one-to-many relationship table.
JOIN
Pengertian JOIN
• Join merupakan operasi sederhana untuk menggabungkan 2 atau
lebih tabel menjadi 1 temporary tabel yang selanjutnya dapat
dijalankan berbagai macam operasi querying.
Macam JOIN
• Inner Join = hanya mengembalikan data yang ada di kedua table
SELECT <column> FROM <table1> INNER JOIN <table2> ON <equality criteria> WHERE <search
criteria> ...
• Outer Join = mengembalikan berbagai macam data yang ada di kedua table
SELECT <column> FROM <table1> LEFT OUTER JOIN <table2> ON <equality criteria> WHERE <search
criteria> ...
Selain itu, juga ada cara dasar untuk join tabel seperti berikut: