Jadi ingin ngebahas lebih lanjut : ID pada prinsipnya dapat dihasilkan secara automatis dan user entry. Use entry memiliki keunggulan : 1. id representatif => bermakna bagi manusia
kekurangganya : 1. tidak scalable bagaimana mencegah 2 user memasukan sebuah id yang sama untuk 2 item yang beda. Bisa tapi itu boros komunikasi dan boros proses. 2. bergantung pada mental model user 3. ada kecenderungan boros tempat Automatis generated id dapat dibagi menjadi beberapa yaitu : 1. auto number 2. id dibentuk berdasarkan aturan tertentu 3. string acak sepanjang 32 karakter Keunggulan auto number : 1. mudah dibuat 2. murah 3. irit tempat berarti biaya join dapat ditekan. 4. tidak menyebabkan pagefault (jarang) Kekuranggannya : 1. menyebabkan disk contention dan biasanya menyebabkan sistem berbasis RAID jadi tidak berfungsi dengan optimal. RAID = redudant array of independent disks. Sebuah sistem fault tolerance dengan menyebar data ke beberapa disk. auto number tidak bisa membuat data tersebar ke beberapa disk. Kalopun bisa ongkosnya muahal. 2. rentan terhadap serangan berurut (sequence attack). Contoh kita punya tabel tapesan ( pesanid autonumber, owner varchar(30)) Field lain diabaikan. Untuk mendapatkan pesan yang ditujukan untuk oranglain kita cukup maju mundurkan pesanid yang kita ketahui. Bisa diperoleh pesan untuk orang lain. 3. tidak representatif 4. dapat menyebabkan bottleneck pada sistem database tersebar. 1 database gigantic yang ada datanya dikelola di beberapa server. Server yang menghasilkan autogenerated id akan mengalami workload jauh lebih besar. ID Dibentuk berdasarkan aturan sebagai contoh nim saya 13596072 1= s1 3 teknik industri 5 teknik informatika 96 nomor angkatan 072 nomor urut. ID dibentuk berdasarkan aturan tertentu memiliki keuntungan : 1. representatif 2. mudah dibuat 3. murah 4. cukup tahan terhadap disk contention (RAID bisa dipakai secara optimal) 5. scalable di multiserver 6. biaya join menegah (tidak terlalu boros tempat biasanya dibanding pake string acak 32 karakter) Kekurangganya 1. aturan pembuatanya sulit diubah sekalinya sistem dipakai. Sebagai contoh diatas bagaimana jika fakultasnya berkembang lebih dari 10 sementara tempat yang disediakan untuk fakultas cuman 1 digit. 2. tidak tahan terhadap serangan berurut. tinggal cobanya aturannya string acak 32 karakter unggul dalam 1. keamanan serangan berurut tidak bisa diterapkan (baca muahal muahal muahal) 2. sangat scalable baik scale up dan scale out. Scale up berarti penambahan disk pada raid tinggal plug and play aja. sedang scale out berarti penambahan server baru juga tinggal plug and play. 3. kebal perubahan aturan (la wong acak) kekurangan : 1. boros tempat 2. sering menyebabkan page fault. Page fault adalah sebuah kejadian dimana blok penyimpan data telah penuh sehingga harus dialokasikan block baru. Proses alokasi ini mahal. 3. proses join mahal karena ukuran index membesar. 4. tidak representatif dengan pengetahuan di atas coba jawab pertanyaan saya : kapan masing-masing item dipakai ? > 2. membuat table ID generator > contoh taIDGen ( namatable varchar(128), nomor int, > primary key (namatable)) > > untuk menggunakannya gunakan cara berikut > lock taidgen > > select nomor+1 as nomor2 from taidgen > where namatable='nama table' > > update taidgen set nomor=nomor+1 > where namatable='nama table' > > commit; > > releaselock taidgen. Cara ini menyebabkan konkurensi agak rendah. Cara yang lebih baik : select nomor+1 as nomor2 from taidgen where namatable='nama table (holdlock) update taidgen set nomor=nomor+1 where namatable='nama table' commit; kedua cara diatas hanya berlaku untuk SQL server. Cara pertama menyebabkan seluruh table dilock sedang cara kedua hanya record yang akan dipakai saja yang dilock. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com Wahana Programmer Groups Links <*> Untuk mengunjungi sponsor milis ini, klik link berikut: http://wahanaprogrammer.net <*> Untuk menghubungi owner milis ini, kirim email ke: [EMAIL PROTECTED] <*> Konsultasi pemrogramman bisa chat disini: Yahoo! Messenger: wahanaprogrammer Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/Programmer-VB/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
