Langkah 1 : Membangun model data konseptual lokal
untuk setiap view. 1.1 Mengidentifikasikan tipe entitas
Tujuan : mengidentifikasikan tipe entitas utama yang dibutuhkan oleh view.
Entitas : kelompok obyek yang memiliki properti yang sama, dan mempunyai keberadaan yang tidak tergantung. Entitas dapat berupa :
• Obyek fisik seperti orang, tempat atau konsep.
• Obyek konseptual/abstrak seperti kejadian. Entitas biasanya berupa kata benda dan dapat diidentifikasikan dengan menganalisa kebutuhan
user. Ditahap ini diidentifikasikan obyek-obyek
utama. Sedangkan kata benda yang berupa atribut dari suatu obyek tidak diidentifikasikan sebagai obyek tersendiri.
Hasil analisa terhadap tipe entitas, dimasukkan ke dalam kamus data. Penamaan entitas harus mudah dimengerti dan menggambarkan obyek yang sesungguhnya bagi user.
1.2 Mengidentifikasikan tipe hubungan (relationship) Tujuan : mengidentifikasikan relasi penting yang ada diantara tipe-tipe entitas yang telah teridentifikasikan. Hal-hal yang perlu dilakukan pada tahap ini :
• Menggambarkan entitas yang telah ditentukan pada tahap sebelumnya, dan menentukan hubungan antara entitas dengan menggunakan diagram ER (Entity
Relationship).
• Menentukan batasan multiplicity dari tiap
relationship. Multiplicity adalah angka
yang menggambarkan batasan jumlah obyek yang memiliki hubungan dengan obyek lain yang terjadi dalam suatu
relationship. Batasan jumlah yang
menentukan jumlah obyek yang terlibat dalam suatu relationship, akan menjadi batasan untuk menentukan apakah penyimpanan dan manipulasi data dalam basis data valid atau tidak. Multiplicity digunakan untuk memeriksa dan memelihara kualitas data.
• Memeriksa dan menghilangkan fan traps.
Fan traps keadaan dimana sebuah model
merepresentasikan relationship antar tipe entitas, yang menimbulkan kerancuan hubungan antara entitas tertentu. (Connoly, 2002, p352). Fan traps dapat diatasi dengan mengatur kembali hubungan antar entitas :
- Memeriksa apakah tiap entitas setidaknya terhubung dalam satu
relationship.
- Mendokumentasikan tipe
relationship.
1.3 Mengidentifikasikan dan mengasosiasikan atribut dengan suatu entitas atau tipe relationship.
Tujuan : menghubungkan atribut dengan tipe entitas atau relationship yang sesuai.
Beberapa hal yang harus diperhatikan dalam menentukan atribut :
• Menentukan apakah atribut tersebut termasuk simple atau composite attribute. Suatu atribut dapat diidentifikasikan
sebagai composite attribute jika dapat dibagi menjadi beberapa atribut yang lebih kecil (simple attribute).
• Menentukan apakah atribut tersebut termasuk single atau multi-valued attribute. Bila suatu atribut dinilai perlu
memiliki lebih dari satu nilai untuk suatu obyek, atribut tersebut dapat diidentifikasikan sebagai multi-valued
attribute.
• Mengidentifikasikan derived attribute. Untuk menjaga keakuratan derived
attribute, harus didokumentasikan atribut
apa saja yang menghasilkan derived
attribute dan kapan derived attribute harus
di-update. Hal ini akan dibahas lebih lanjut pada tahap konseptual.
• Masalah potensial. Bila suatu atribut diasosiasikan dengan lebih dari satu tipe entitas atau relationship, hal ini menunjukkan bahwa :
- Ada beberapa entitas yang dapat direpresentasikan sebagai satu
entitas. Jika kedua entitas tersebut memiliki beberapa atribut yang sama dan beberapa atribut yang unik, salah satu entitas tersebut dapat digeneralisasi.
- Mengidentifikasi relationship
antar tipe entitas. Contoh : table Staff dengan atribut staffNo, staffName, dan position. Dan table PropertyForRent dengan atribut propertyNo, steer, city, yype, rooms, rent, dan
managerName. Atribut managerName dimaksudkan untuk menggambarkan hubungan Staff manages PropertyForRent dan relationship manages harus ditambahkan.
• Dokumentasi atribut meliputi : - Nama atribut dan deskripsi. - Tipe data dan ukuran field. - Alias/nama lain atribut.
- Apakah atribut tersebut simple atau composite attribute.
- Apakah atribut tersebut single atau multi-valued attribute.
- Apakah atribut tersebut termasuk
derived attribute.
- Nilai default atribut.
1.4 Menentukan domain attribute
Tujuan : menentukan domain untuk atribut di model data konseptual lokal.
Domain : kelompok nilai yang menjadi struktur
suatu atribut.
1.5 Menentukan atribut candidate dan primary key. Tujuan : mengidentifikasikan candidate key untuk setiap entitas. Jika ada lebih dari satu candidate
key, dipilih salah satu untuk menjadi primary key.
1.6 Mempertimbangkan penggunaan konsep permodelan yang lebih tinggi
Tujuan : mempertimbangkan penggunaan konsep permodelan yang lebih baik, seperti generalisasi, spesialisasi, agregasi, dan composition.
Mendefinisikan entitas dalam diagram ER dengan konsep :
• Generalisasi/spesialisasi : hubungan antar entitas yang meminimalkan perbedaan dengan mengidentifikasikan karakteristik yang sama. Dalam generalisasi, entitas yang lebih umum disebut sebagai
superclass. Sedangkan entitas yang lebih
spesifik/khusus disebut sebagai subclass. • Agregasi : hubungan antar entitas yang
menggambarkan hubungan “bagian dari” atau “memiliki”, dimana salah satu entitas sebagai keseluruhan dan entitas yang lain sebagai bagiannya.
• Composition : bentuk yang lebih spesifik dari agregasi yang mempresentasikan penggabungan antara entitas dimana ada kepemilikan yang kuat dan kesamaan
lifetime antara ‘whole’ dan ‘part’ (Connoly
dan Begg, p372).
1.7 Memeriksa model akan kemungkinan redundansi Periksa kembali hubungan :
• 1 to 1 : untuk menghindari kemungkinan adanya 2 entitas yang mempresentasikan
obyek yang sama meskipun nama entitas tersebut mungkin berbeda.
• Menghilangkan relationship yang
redundan untuk menyederhanakan model data konseptual.
1.8 Memvalidasikan model konseptual lokal dengan transaksi user
Tujuan : memastikan model konseptual lokal yang mendukung transaksi yang dibutuhkan oleh view. Model data lokal : gambaran dari data-data yang diperlukan oleh setiap bagian dalam suatu perusahaan.
Untuk mengecek apakah model konseptual telah mempresentasikan transaksi-transaksi yang dibutuhkan oleh user, digunakan 2 pendekatan :
• Mendeskripsikan transaksi
Mengecek apakah semua informasi (entitas, atribut, dan relationship) yang ada di dalam suatu transaksi telah didokumentasikan oleh model data.
• Menggunakan alur transaksi
Mengecek alur transaksi dalam model data (diagram ER). Sehingga dapat diketahui bagian-bagian dari model data yang kritis terhadap transaksi, bagian yang perlu ditambahkan atau diperbaiki entitas, atribut, atau
relationshipnya.
1.9 Membahas ulang model data konseptual lokal dengan user
Tujuan : memastikan bahwa model merepresentasikan view dengan benar.
Tahap ini memeriksa apakah dalam model data masih terdapat anomaly atau tidak. Bila masih ditemukan anomaly, tahap perancangan
sebelumnya dapat diulang kembali. Tahap perancangan dapat dilakukan hingga model data dianggap merepresentasikan keadaan yang sebenarnya oleh user.
B. Logical Database Design
Menurut Connoly dan Begg (2002, p281), Logical
Database Design adalah proses konstruksi suatu informasi
yang digunakan dalam sebuah perusahaan berdasarkan sebuah model yang spesifik, tetapi bebas dari fakta-fakta DBMS dan pertimbangan-pertimbangan fisik lainnya. Langkah-langkahnya sebagai berikut :