Gambaran Umum Pembentukan Data

Pembentukan data berarti membangun hubungan hierarki antara dua entitas logis atau lebih dalam kueri. Hubungan induk-anak dalam hierarki dapat dilihat antara satu catatan dari Recordset, dan satu atau beberapa catatan (juga dikenal sebagai bab) dari Recordsetlainnya. Dalam hubungan induk-anak, Kumpulan Rekaman induk berisi kumpulan rekaman 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, 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 dari 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 pada kolom di seluruh Recordset. Kolom juga dapat baru dibuat dan kosong.

Saat Anda mengambil nilai kolom yang berisi referensi ke Recordset lainnya, ADO secara otomatis mengembalikan Recordset aktual yang diwakili oleh referensi. Referensi ke Recordset sebenarnya adalah referensi ke subset anak, yang disebut sebuah bab. Orang tua tunggal dapat mengacu lebih dari satu anak Recordset.

Dukungan ADO untuk pembentukan data memungkinkan Anda untuk mengkueri suatu sumber data dan mengembalikan Recordset di mana satu rekaman (induk) mewakili (turunan) Recordset. 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.

Selain itu, pembentukan data di ADO memungkinkan Anda membuat objek Recordset tanpa sumber data yang mendasarinya dengan menggunakan kata kunci NEW 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 turunan. Pembentukan data juga dapat membuat Kumpulan Rekaman induk dari Recordset turunan dengan mengelompokkan rekaman di anak dan menempatkan satu baris di induk untuk setiap grup di anak.

SQL biasa memungkinkan Anda untuk mengambil data menggunakan sintaks perintah JOIN, tetapi ini bisa menjadi tidak efisien dan tidak praktis karena data induk diulang pada setiap rekaman yang dikembalikan untuk hubungan induk-anak spesifik. Pembentukan data dapat menghubungkan catatan induk tunggal di Recordset induk ke beberapa catatan anak di Recordsetanak, sehingga menghindari redundansi dari JOIN. Sebagian besar orang menemukan model pemrograman Recordset induk-anak lebih alami dan lebih mudah dikerjakan daripada model Recordset JOIN tunggal.