Access dibandingkan dengan SQL Server sangat jauh berbeda.
Engine SQL Server menyokong tipe field yang disebut sebagai 'computed
column', yang tidak menyimpan data sama sekali, tetapi isinya langsung
menghitung dari field2 yang didefinisikan di tabel definisinya,
sehingga kita tidak direpotkan sama sekali dengan updating datanya,
itu udah urusan engine SQL Server.
Gunanya untuk memudahkan dari sisi query saja, tetapi tetap saja ada
kelemahannya, seperti tidak bisa menggunakan subquery yang mengandung
computed column di dalamnya.
Ada catatan disini: nilai dalam computed column tidak disimpan dalam
media harddisk, tetapi kalau field computed column tersebut dijadikan
index, mau tak mau, nilai tersebut akan di simpan oleh SQL Server,
tetapi tetap tidak menjadi masalah di sisi developer, karena update
nilainya ditangani oleh SQL Server. Perlakuan index di SQL Server pun
ada perbedaan dengan index di Access. SQL Server bisa mengatur letak
fisikal data dalam harddisk urutannya sesuai dengan index, sedangkan
di Access index tidak secara fisik di atas harddisk, tetapi secara
logikal penunjukan alamat referens.
Computed Column adalah fitur milik SQL Server, dan dalam hal ini,
bisakah dikatakan SQL Server nge-break aturan RDBMS ? Tentu tidak
bukan ?

Yang dilakukan Darmawan adalah berusaha meniru perlakuan tsb di engine
Access, tetapi secara manual. Akibatnya seperti kesulitan updating
nilai yang Darmawan hadapi sekarang.

Semakin banyak data, pasti semakin berat kerja engine database untuk
membuat laporan, itulah sekarang yang lagi trend: data warehouse.
Sederhananya, kalau mau dimanualkan di Access, pisahkan data current
dengan data history. Data current dalam keadaan normalisasi (minimal
bentuk ke 3), sedang data history dalam kondisi denormalized. Satu
aturan yang harus dipegang, data history tidak boleh ada perubahan
lagi. Jika terpaksa ada perubahan, maka buatkan mekanisme untuk
generate denormalisasi otomatis.
Proses mendenormalisasikan dilakukan periodik. Reporting untuk analisa
bisa mengambil data dari database history, dan dipadukan dengan data
current. Hasilnya pasti jauh lebih cepat dibandingkan dengan
menghitung dari satu database yang terdiri dari data tahun jembot
sampai tahun sekarang dalam kondisi normalisasi.

Aksan Kurdin


2009/1/7 I Putu Gede Darmawan <[email protected]>:
> Saya menggunakan Calculated Field hanya untuk mempercepat proses saja mas.
> Sebab program saya yang sebelumnya sangat lambat sekali untuk
> Membuat rekapan bulanan terutama tahunnya.
> Mengingat banyaknya jumlah transaksi yang terjadi
> Untuk itu
> Pada program yang baru saya akan coba atasi masalah tersebut.
>
> Untuk proses updatenya,
> Bukannya cukup Handling Event Before Update saja,
> Maka otomatis ketika ada perubahan pada calculated field tinggal disimpan.
>> SubTotal = Harga * Jumlah - Discount
> Ini sebenernya penyederhanaan dari kasus saya.
> SubTotal = Harga * Jumlah * (1-(Discount/100))
> :D
>
>>Btw, kalo masih ngotot nyimpen calculated field di tabel dan melanggar
>>aturan RDBMS,
> Maaf ya mas kalau agak ngotot,
> Maklum masih newbie.
> Ini mungkin yang sempet saya diskusikan dengan mas Aksan.
> Saya jadi bingung kenapa menyimpan calculated field dibilang melanggar RDBMS
> Di SQL Server fasilitas untuk nyimpan SQL Server ada.
> Masakan Database besar seperti SQL Server melanggar aturan RDBMS ....
> Just my thought.
>
>> pasti mas Putu punya alasan yang bagus - meskipun cara ini tidak efektif.
> Wakakakakka saya masih newbie, jadi alasannya untuk mempercepat retrieval
> Saja.
> Nanti dalam modul lain pada saat entry data pada form detail,
> Stok perlu ditampilkan ke user.
> Jainya setiap beberapa bulan sekali tabel stok_awal perlu di update,
> Dan Querynya untuk menghitung sisa stok tidak mulai dari awal melainkan dari
> tanggal stok terkahir di update.
> Jadi tidak perlu kalkulasi sisa barang .
> Hanya untuk mempercepat kalkulasi saja.
>
> Terima kasih
> Mas buat tanggapannya.
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of Edy WIYONO
> Sent: Wednesday, January 07, 2009 10:16 AM
> To: [email protected]
> Subject: Re: [belajar-access] Requery tidak jalan
>
> Mungkin kang Putu terbawa 'kebiasaan' di software yang lama.
>
> Mungkin pertanyaannya lebih ke sisi integrasi data nantinya.
>
> SubTotal = Harga * Jumlah - Discount
> GrandTotal = Sum(Harga)
>
> Daily Summary
> Weekly Summary
> Monthly Summary
>
> Tiap kali harga satu item berubah, maka harus jalanin routine
> - Update Grand
> - Update Daily
> - Update Weekly
> - Update Monthly
>
> Btw, dgn Desain RDBMS - seperti Bang Aksan bilang - karena hasil kalkulasi
> tdk
> di simpan, maka nggak usah jalanin apapun, semua data di Summary dan di
> Calculated Field
> akan terUpdate secara otomatis.
>
> Btw, kalo masih ngotot nyimpen calculated field di tabel dan melanggar
> aturan RDBMS,
> pasti mas Putu punya alasan yang bagus - meskipun cara ini tidak efektif.
>
> Salam Hangat dan Jabat Erat,
>
> Edy WIYONO
>
> ----- Original Message -----
> From: "aksan kurdin" <[email protected]>
> To: <[email protected]>
> Sent: Wednesday, January 07, 2009 08:08
> Subject: Re: [belajar-access] Requery tidak jalan
>
> Saya tetap menyarankan darmawan untuk tidak menyimpan calculated field
> dalam table. Pekerjaan jadi lebih sederhana, tidak terbuang lama dalam
> desain interface formnya. Tool developer sekarang lebih banyak
> mengarahkan kita untuk sisi pemecahan masalah, bukan lagi dari sisi
> desain tampilan seperti pendahulu2nya jaman fox dan clipper dulu. Jadi
> semakin normal data anda, pekerjaan anda seyogyanya bisa lebih banyak
> yang diselesaikan, ketimbang muter2 di desain calculated field yang
> 'harus' disimpan.
> Interface data entry bisa dibuat dari unbound field pada field yang
> tidak perlu disimpan.
> Untuk pelaporan dan print out data, baru gunakan query untuk
> menghitung calculated field, karena gunanya query adalah memberikan
> data yang diminta, termasuk olahan penghitungan dari field2 yang
> dibutuhkan.
>
> aksan kurdin
>
> 2009/1/6 I Putu Gede Darmawan <[email protected]>:
>> Terima kasih atas tanggapannya.
>>
>> Ini saya kirimkan filenya mas.
>>
>>
>>
>> Jadi masalah kalau saya update data di Form Detail,
>>
>> Totalnya tidak otomatis terhitung.
>>
>> Kecuali kita klik next & back / back & next / Form Close & Form Open
>>
>> Padahal saya sudah beri perintah Requery pada Event OnCurrent / On
>> AfterUpdate
>>
>>
>>
>> Mohon bantuan suhu suhu disini
>>
>>
>>
>> Terima kasih
>>
>> ________________________________
>>
>> From: [email protected]
>> [mailto:[email protected]]
>> On Behalf Of [email protected]
>> Sent: Tuesday, January 06, 2009 1:57 PM
>> To: [email protected]
>> Subject: RE: [belajar-access] Requery tidak jalan
>>
>>
>>
>> coba contoh filenya disertakan
>>
>> I Putu Gede Darmawan <[email protected]> wrote:
>>
>> Maaf mas masih error.
>>
>> Tetap saja kalau ada perubahan pada form detail nggak mau tersimpen
>> otomatis.
>>
>> Kecuali record tersebut di buka sekali lagi (event OnCurrent di trigger)
>> ,bisa melalui tombol next kemudian back,back kemudian next,
>>
>> Close form kemudian buka form.
>>
>>
>>
>>
>>
>> Aduh pusing juga nih ...
>>
>>
>>
>> ________________________________
>>
>> From: [email protected]
>> [mailto:[email protected]]
>> On Behalf Of Edy.WIYONO
>> Sent: Wednesday, December 31, 2008 9:48 AM
>> To: [email protected]
>> Subject: Re: [belajar-access] Requery tidak jalan
>>
>>
>>
>> Kalo masih ingin menyimpan di Tabel, ini contohnya.
>>
>>
>> Salam Hangat dan Jabat Erat,
>>
>> Edy WIYONO
>>
>>
>> 2008/12/31 I Putu Gede Darmawan <[email protected]>
>>
>>
>>
>> Masih belum sesuai kebutuhan mas,
>>
>> Tapi nanti kalau masih mentok ya terpaksa calculated fieldnya nggak saya
>> simpan.
>>
>> Tapi sekarang saya coba kutak katik deh biar calculated fieldnya bisa
>> saya
>> simpan..
>>
>>
>>
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG - http://www.avg.com
>> Version: 8.0.176 / Virus Database: 270.10.1/1869 - Release Date:
>> 12/30/2008
>> 12:06 PM
>>
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG - http://www.avg.com
>> Version: 8.0.176 / Virus Database: 270.10.3/1877 - Release Date: 1/5/2009
>> 7:20 PM
>>
>>
>
> --
> Aksan Kurdin
>
> ------------------------------------
>
> SPAM IS PROHIBITEDYahoo! Groups Links
>
> ------------------------------------
>
> SPAM IS PROHIBITEDYahoo! Groups Links
>
> No virus found in this incoming message.
> Checked by AVG - http://www.avg.com
> Version: 8.0.176 / Virus Database: 270.10.3/1879 - Release Date: 1/6/2009
> 5:16 PM
>
> 



-- 
Aksan Kurdin

Kirim email ke