Collections dan Records PL/SQL
5.2. Memilih Tipe-tipe Collection PL/SQL yang Digunakan
Jika kita telah memiliki kode atau business logic yang menggunakan beberapa bahasa pemrograman lain, kita biasanya dapat menterjemahkan array dari bahasa tersebut dan mengatur types secara langsung ke tipe-tipe collection PL/SQL.
- Arrays dalam bahasa lain menjadi VARRAYs dalam PL/SQL
- Sets dan bags dalam bahasa-bahasa lain menjadi nested tables (table bersarang) dalam PL/SQL
- Hash tables dan bentuk-bentuk lain dari pencarian table tak berurut dalam bahasa-bahasa lain menjadi associative arrays dalam PL/SQL
Ketika kita menulis kode asli atau mendesain business logic mulai awal, kita harus mempertimbangkan kekuatan-kekuatan dari setiap collection type untuk memutuskan mana yang tepat untuk setiap situasi.
5.2.1. Memilih Antara Nested Tables dan Associative Arrays
Nested tables dan associative arrays (sebelumnya dikenal sebagai index-by tables) menggunakan notasi subscript yang mirip, namun mereka memiliki karakteristik-karakteristik berbeda ketika ia datang ke parameter passing yang persistent dan ringan.
Nested tables dapat disimpan dalam kolom, namun associative arrays tidak. Nested tables tepat untuk hubungan-hubungan data yang penting yang harus disimpan secara tetap (persisten).
Associative arrays tepat untuk table-table pencarian kecil relatif dimana collection dapat dibangun dalam memori setiap kali procedure dipanggil atau package diinisialisasi. Mereka baik untuk mengumpulkan informasi yang volumenya tidak diketahui sebelumnya, karena tidak ada limit tetap pada ukurannya. Nilai-nilai index mereka lebih fleksibel, karena subscript-subscript associative arrays dapat bernilai negatif, dapat tidak terurut, dan dapat menggunakan nilai-nilai string dibanding kan angka-angka ketika hal itu lebih tepat.
PL/SQL secara otomatis mengkonversi antara host arrays dan associative arrays yang menggunakan nilai-nilai key numerik. Jalan paling efisien untuk melewatkan collections ke dan dari database server adalah menggunakan anonymous PL/SQL blocks untuk mengikat input dan output secara borongan dari host arrays ke associative arrays.
5.2.2. Memilih Antara Nested Tables dan Varrays
Varrays adalah pilihan yang baik ketika jumlah elemen-elemen tidak diketahui, dan ketika elemen-elemen biasanya seluruhnya diakses secara terurut. Ketika disimpan di database, varrays tetap menggunakan urutan dan subscript-subscriptnya.
Setiap varray disimpan sebagai objek tunggal, baik di dalam table pada kolom (jika varray kurang dari 4KB) atau di luar table namun tetap di dalam tablespace yang sama (jika varray lebih besar dari 4KB). Kita harus meng-update atau menampilkan seluruh elemen-elemen dari varray pada saat yang sama, yang mana lebih tepat ketika melakukan beberapa operasi pada seluruh elemen-elemen sebanyak sekali. Namun kita mungkin mendapatinya tidak berfungsi untuk menyimpan dan menampilkan jumlah-jumlah elemen-elemen yang besar dengan cara ini.
Nested tables dapat menjadi jarang: kita dapat menghapus elemen-elemen yang berubah-ubah, dibandingkan hanya menghapus item dari akhirnya. Data pada nested table disimpan out-of-line di dalam store table, sebuah table yang di-generate oleh sistem, yang terkait dengan nested table tersebut. Hal ini membuat nested table tepat untuk query dan update yang hanya berefek pada beberapa elemen-elemen dari collection. Kita tidak dapat mempercayakan order dan subscript-subscript dari nested table yang telah stabil seperti halnya table disimpan dan ditampilkan, karena order dan subscript-subscript tidak dilindungi ketika nested table disimpan di dalam database.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12
| Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi. Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma, Uranus dsb. |


































