Gambaran Umum Pembentukan Data

Pembentukan data berarti membangun hubungan hierarkis antara dua entitas logis atau lebih dalam kueri. Hierarki dapat dilihat dalam hubungan induk-anak antara rekaman satu Recordset, dan satu atau beberapa rekaman (juga dikenal sebagai bab) dari Recordset lain. Dalam hubungan induk-anak, Recordset induk berisi Recordset turunan. Contoh hubungan hierarkis seperti itu adalah pelanggan dan pesanan. Untuk setiap pelanggan dalam database, mungkin ada nol atau lebih pesanan. Hubungan hierarkis bisa rekursif, artinya catatan cucu dapat ditumpuk dalam rekaman anak. Pada prinsipnya, rekaman hierarkis dapat disarangkan ke kedalaman apa pun. Dalam praktiknya, ADO membatasi rekursi hingga maksimum 512 Recordsets.

Secara umum, kolom Recordset berbentuk dapat berisi data dari penyedia data seperti Microsoft® SQL Server, referensi ke Recordset lain, nilai yang berasal dari perhitungan pada satu baris Recordset, atau nilai yang berasal dari operasi di atas kolom seluruh Recordset. Kolom juga dapat dibuat baru dan kosong.

Saat Anda mengambil nilai kolom yang berisi referensi ke Recordset lain, ADO secara otomatis mengembalikan Recordset aktual yang diwakili oleh referensi. Referensi ke Recordset sebenarnya adalah referensi ke subset anak, yang disebut bab. Induk tunggal dapat mereferensikan lebih dari satu Kumpulan Rekaman anak.

Dukungan ADO untuk pembentukan data memungkinkan Anda mengkueri sumber data dan mengembalikan Recordset di mana rekaman (induk) mewakili Kumpulan Rekaman (turunan). Dalam skenario pesanan pelanggan, Anda dapat menggunakan pembentukan data untuk mengambil informasi pelanggan serta pesanan yang dilakukan oleh setiap pelanggan dalam satu kueri. Recordset yang dihasilkan juga dikenal sebagai Recordset berbentuk.

Selain itu, pembentukan data di ADO memungkinkan Anda membuat objek Recordset baru tanpa sumber data yang mendasarinya dengan menggunakan kata kunci BARU untuk menjelaskan bidang Recordset induk dan anak. Objek Recordset baru kemudian dapat diisi dengan data dan disimpan terus-menerus. Pengembang juga dapat melakukan berbagai perhitungan atau agregasi (misalnya, SUM, AVG, dan MAX) pada bidang anak. Pembentukan data juga dapat membuat Recordset induk dari Recordset anak dengan mengelompokkan rekaman di anak dan menempatkan satu baris di induk untuk setiap grup di anak.

SQL reguler memungkinkan Anda untuk mengambil data menggunakan sintaks JOIN , tetapi ini bisa tidak efisien dan sulit karena data induk yang berlebihan diulang di setiap rekaman yang dikembalikan untuk hubungan induk-anak tertentu. Pembentukan data dapat menghubungkan rekaman induk tunggal di Recordset induk dengan beberapa rekaman turunan di Recordset turunan, menghindari redundansi JOIN. Sebagian besar orang menemukan model pemrograman Recordset induk-anak lebih alami dan lebih mudah untuk dikerjakan daripada model Recordset JOIN tunggal.