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 Kumpulan Rekaman, dan satu atau beberapa rekaman (juga dikenal sebagai bab) dari Recordset lain. Dalam hubungan induk-turunan, Kumpulan Rekaman induk berisi Kumpulan Rekaman anak. Contoh hubungan hierarkis seperti itu adalah pelanggan dan pesanan. Untuk setiap pelanggan dalam database, mungkin ada nol atau lebih pesanan. Hubungan hierarkis bisa rekursif, yang berarti bahwa catatan cucu dapat disarangkan dalam catatan anak. Pada prinsipnya, catatan 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 SQL Server, referensi ke Recordset lain, nilai yang berasal dari perhitungan pada satu baris Recordset, atau nilai yang berasal dari operasi atas kolom seluruh Recordset. Kolom juga dapat dibuat dan kosong baru.

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 Kumpulan Rekaman 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 Kumpulan Rekaman induk dan anak. Objek Recordset baru kemudian dapat diisi dengan data dan disimpan secara terus-menerus. Pengembang juga dapat melakukan berbagai perhitungan atau agregasi (misalnya, SUM, AVG, dan MAX) pada bidang anak. Pembentukan data juga dapat membuat Kumpulan Rekaman induk dari Kumpulan Rekaman anak dengan mengelompokkan rekaman di anak dan menempatkan satu baris di induk untuk setiap grup di anak.

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