SISTEM DATABASE
MODEL DATA (LANJUTAN)
- Model Data sebelumnya : ditekankan pada pengenalan komponenkomponen dasar dalam kegiatan perancangan serta langkahlangkah teknis yang dapat dilakukan untuk mentransformasikan fakta di lapangan ke dalam sebuah model data.
- Bab ini : mempelajari sejumlah varian komponen-komponen perancangan basis data serta proses-proses lanjutan terhadap perancangan dasar yang telah kita buat.
Varian Entitas
- Idealnya, himpunan entitas yang kita libatkan dalam sebuah Diagram E-R adalah himpunan entitas kuat/bebas (Strong Entity Sets). Yang dimaksud dengan himpunan entitas yang kuat/bebas adalah:
*Tidak memiliki ketergantungan dengan himpunan entitas lainnya atau dapat berdiri sendiri, contoh Himpunan entitas Mahasiswa, Dosen dan Kuliah sebagaimana yang ditunjukkan di contoh sebelumnya.
*Kemunculan entitas-entitas di dalamnya tidak tergantung pada keberadaan entitas di himpunan entitas yang lain.
*Bukan merupakan bagian (sub) dari himpunan entitas yang lain.
- Namun demikian, dalam pembuatan Diagram E-R kita tidak selalu dapat melibatkan himpunan entitas seperti itu. Ada kalanya kita juga melibatkan himpunan entitas yang lemah (Weak Entity Sets) atau merupakan bagian dari himpunan entitas lainnya (Subtype Entities).
Himpunan Entitas Lemah (Weak Entity Sets)
- Himpunan Entitas Lemah memiliki karakteristik :
*Entitas-entitas yang kemunculannya tergantung pada eksistensinya dalam sebuah relasi terhadap entitas lain (Strong Entity).
*Himpunan entitas yang demikian biasanya tidak memiliki atribut yang dapat berfungsi sebagai key, yang benar-benar dapat menjamin keunikan entitas di dalamnya. Sebagai contoh, untuk melengkapi data mahasiswa kita juga ingin mengelola data hobbi dan orang tua.
- Berikut adalah contoh fakta yang dapat kita gunakan beserta relasi yang terjadi:
- Dengan fakta tersebut, dapat kita lihat bahwa entitas mahasiswa berelasi satu-ke-satu dengan entitas orang tua dan berelasi satuke- banyak dengan entitas hobbi, sehingga kita dapat menggambarkan Diagram E-R sebagai berikut:
- Data Orang-Tua dan Hobbi di atas dapat digolongkan sebagai himpunan entitas lemah (yang dalam Diagram E-R dinyatakan dengan kotak bergaris ganda), karena kemunculannya sangat tergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas Mahasiswa.
- Jika misalnya mahasiswa bernama 'Budi Haryanto' tidak ada, maka orang tua bernama 'Siswono Handoyo' serta hobbi 'membaca' juga ditiadakan.
- Kedua himpunan entitas (Orang-Tua dan Hobbi) juga tidakmemiliki atribut sendiri yang dapat menjamin keunikan entitasentitasdi dalamnya. Atribut nama_ortu dan hobbi sengaja diberigaris bawah yang putus-putus untuk menunjukkan bahwa keduaatribut itu merupakan atribut key yang tidak meyakinkan. Jikaada mahasiswa yang bersaudara atau yang mempunyai hobbi yangsama, maka entitas-entitas yang sama akan muncul padahimpunan entitas Orang-Tua atau Hobbi.
Sub Entitas (Subtype Entities)
- Sub Entitas merupakan himpunan entitas yang beranggotakan entitas-entitas yang merupakan bagian dari himpunan entitas yang lebih superior/utama.
- Sub Entitas ini merupakan hasil dekomposisi (spesialisasi) himpunan entitas berdasarkan pengelompokkan tertentu (penjelasan tentang Spesialisasi dapat dilihat di bagian berikutnya). Berikut adalah contoh Sub Entitas:
- Dosen merupakan himpunan entitas superior. Dengan proses Spesialisasi (yang dilambangkan dengan adanya relasi khusus 'ISA') terhadap himpunan entitas ini, dapat dibentuk dua buah sub entitas 'Dosen Tetap' dan 'Dosen Tidak Tetap'. Konsekuensinya, entitas-entitas di kedua sub entitas juga merupakan (berasal dari) entitas-entitas yang ada pada himpunan entitas Dosen, namun tidak sebaliknya. Seperti halnya himpunan entitas lemah, sub entitas juga tidak memiliki atribut yang dapat menjamin keunikan entitas-entitas di dalamnya.
Varian Relasi
- Relasi yang terjadi di antara dua himpunan entitas yang berbeda disebut sebagai Relasi Biner (Binary Relation), yang merupakanrelasi yang paling umum digunakan.
- Adakalanya kita juga menggunakan relasi yang hanya melibatkan sebuah himpunan entitas atau lebih dari dua himpunan entitas.
Relasi Tunggal (Unary Relation)
- Relasi Tunggal (Unary Relation) merupakan relasi yang terjadi dari sebuah himpunan entitas ke himpunan entitas yang sama.
- Pada contoh relasi tunggal yang pertama, hubungan yang ingin ditunjukkan adalah fakta tentang adanya dosen pendamping (yang sudah senior) bagi para dosen baru dalam rangka pembinaan profesi.
- Setiap dosen senior bisa menjadi pendamping bagi beberapa dosen baru sekaligus. Sementara setiap dosen baru hanya dapat memiliki seorang dosen pendamping. Baik entitas dosen senior maupun entitas dosen baru ditempatkan di sebuah himpunan entitas Dosen, sehingga relasinya terjadi pada sebuah himpunan entitas saja.
- Pada contoh kedua, ditunjukkan pula relasi tunggal tapi dengan derajat relasi banyak-ke-banyak.
- Relasi pada contoh ini menunjukkan adanya persyaratan pengambilan mata kuliah. Misalnya, matakuliah 'Basis Data' hanya boleh diikuti, jika telah lulus mata kuliah 'Struktur Data' dan 'Pemrograman'.
- Derajat relasi banyak-ke-banyak menunjukkan bahwa yang menjadi prasyarat dalam pengambilan sebuah mata kuliah bisa saja lebih dari satu mata kuliah dan sebuah mata kuliah dapat menjadi prasyarat bagi beberapa mata kuliah yang lain.
Relasi Multi Entitas (N-ary Relation)
- Relasi Multi Entitas (N-ary Relation) merupakan relasi dari 3 (tiga) himpunan entitas atau lebih.
- Bentuk relasi semacam ini sedapat mungkin dihindari, karena akan mengaburkan Derajat Relasi yang ada dalam relasi tersebut.
- Sebagai contoh, pada sistem perkuliahan kita dapat menambahkan himpunan entitas baru, yaitu himpunan entitas Ruang yang kemudian bersama dengan himpunan entitas Dosen dan Kuliah membentuk relasi 'Pengajaran' seperti berikut ini (atribut deskriptif untuk Dosen dan Kuliah tidak ditampilkan):
- Pada Diagram E-R di atas, himpunan entitas Ruang dibentuk karena data ruang juga memiliki entitas-entitas dengan sejumlah atribut khusus (kode_rua, nama_rua dan kapasitas).
- Yang menjadi tidak jelas pada Relasi demikian adalah Derajat Relasinya. Sebagaimana telah kita ketahui, Derajat Relasi mengacu pada seberapa besar tingkat korespondensi antara sebuah himpunan entitas dengan himpunan entitas yang lain. Dalam Relasi N-ary, himpunan entitas yang lain itu ada lebih dari satu. Karena itu dapat saja diputuskan untuk tidak menunjukkan Derajat Relasi untuk relasi N-ary seperti di atas. Kita akan membahas lebih jauh soal ini pada tahap Implementasi.
Relasi Ganda (Redundant Relation)
- Ada kalanya, relasi yang muncul antara dua himpunan entitas tidak hanya satu relasi, tetapi ada lebih dari satu relasi. Relasi demikian disebut Relasi Ganda {Redundant Relation).
- Kita dapat mengambil contoh relasi antara himpunan entitas Dosen dan Kuliah, Relasi yang telah kita ketahui adalah 'Mengajar'. Namun katakanlah, ada kebutuhan untuk juga mengakomodasi adanya faktabahwa setiap Dosen juga memiliki kemampuan (mengusai) untuk mengajar mata kuliah lain yang sudah ada pengajarnya.
- Dosen X telah ditetapkan untuk mengajar mata kuliah A dan dosen Y untuk mata kuliah B. Ada fakta bahwa dosen X tersebut juga berkemampuan untuk mengajar mata kuliah B dan mata kuliah C, begitu pula dosen Y yang sesungguhnya juga menguasai mata kuliah A.
- Jika fakta-fakta ini ingin diakomodasi juga, maka kita harus menyatakannya dalam relasi yang berbeda. Sehingga antara himpunan entitas Dosen dan Kuliah, terdapat lebih dari satu jenis relasi (Relasi Ganda) seperti digambarkan dalam Diagram E-R berikut ini (atribut-atribut untuk Dosen dan Kuliah sengaja tidak diperlihatkan):
Relasi Ganda tersebut memang perlu dibuat, karena memang
kebutuhan (makna) dari kedua relasi tersebut memang berbeda.
Demikian juga dengan atribut-atribut relasi dan Derajat Relasinya.
Tidak sebagaimana pada himpunan relasi Mengajar,
himpunan relasi Menguasai hanya memiliki atribut key yang
berasal dari himpunan entitas Dosen dan Kuliah, karena memang
hanya untuk menunjukkan daftar mata kuliah yang dikuasai oleh
setiap dosen (seorang dosen yang tidak mengajar mata kuliah
tertentu tidak berarti dia tidak menguasai mata kuliah tersebut).
Sementara itu, Derajat Relasi banyak-ke-banyak (N-N) pada
himpunan relasi Menguasai menunjukkan bahwa seorang Dosen
dapat mengusai banyak mata kuliah sekaligus dan begitu juga
sebaliknya, setiap mata kuliah dapat dikuasai oleh lebih dari
seorang dosen.
7
Spesialisasi dan Generalisasi
Pada sebuah himpunan entitas dimungkinkan adanya
pengelompokkan entitas-entitas yang menjadi anggotanya.
Kadang-kadang kita temui, atribut-atribut yang melekat pada
masing-masing kelompok tersebut tidak sepenuhnya sama.
Sebagai contoh, entitas-entitas yang ada pada himpunan entitas
Dosen dapat dibagi dalam dua kelompok, yaitu :
Dosen Tetap (yang sekaligus merupakan karyawan/pegawai di
perguruan tinggi yang bersangkutan).
Dosen Tidak Tetap (yang telah menjadi karyawan/pegawai di
perguruan tinggi/ perusahaan lain).
Atribut-atribut yang ada pada himpunan entitas Dosen kita
perluas. Kelompok Dosen Tetap bisa memiliki atribut-atribut
tambahan seperti nik, pangkat dan tgl_masuk.
Bagi kelompok Dosen Tidak Tetap atribut-atribut tersebut tidak
relevan. Atribut-atribut tambahan yang relevan bagi kelompok
Dosen Tidak Tetap adalah nama_kantor dan alamat_kantor yang
menunjukkan lokasi tempat dosen bekerja secara permanen.
Adanya pembedaan atribut ini menyebabkan entitas-entitas dosen
tersebut tidak mungkin disatukan dalam sebuah himpunan entitas
saja. Karena itu, pemisahan (spesialisasi) entitas bisa dilakukan.
Jika kita memulai dari sebuah himpunan entitas lalu kemudian
melakukan pengelompokan yang melahirkan himpunan entitas
baru (proses top-down), maka kita sedang melakukan Spesialisasi.
Bisa juga yang terjadi adalah sebaliknya. Kita mengetahui bahwa
entitas-entitas dalam himpunan entitas Mahasiswa sebenarnya
dapat dibagi dalam dua kelompok, yaitu mahasiswa D3 (Diploma
3) dan mahasiswa SI (Strata 1). Tetapi pengelompokan ini tidak
diperlegas dengan adanya perbedaan atribut. Karena tidak
tegasnya perbedaan atribut dari kedua kelompok, maka kejompokkelompok
entitas tersebut malah disatukan dalam sebuah
himpunan entitas dengan atribut-atribut yang sama. Jadi
pendekatannya bersifat bottom-up, mula-mula tcrpisah tetapi
kemudian menjadi satu. Proses yang demikian disebut
Generalisasi.
Dengan demikian, Spesialisasi dan Generalisasi merupakan dua
proses yang berlawanan. Yang ditekankan dalam .spesialisasi
adalah perbedaan antar kelompok entitas, sedang dalam
generalisasi yang ditekankan adalah persamaannya. Adanya
Spesialisasi dan Generalisasi diwujudkan dalam notasi relasi yang
khusus, yang disebut Relasi 'ISA' (yang berasal dari 'Is A') sebagai
berikut:
8
Adanya Spesialisasi dalam perancangan basis data, umumnya
akan terlihat secara eksplisit pada hasil akhir Diagram E-R.
Sedangkan proses Generalisasi, dengan pertimbangan simplifikasi
(penyederhanaan), seringkali ditiadakan (tidak diperlihatkan secara
eksplisit) pada hasil akhir Diagram E-R.
Peniadaan generalisasi ini direpresentasikan dengan adanya
atribut baru pada himpunan entitas akhir. Pada contoh di atas,
kita dapat menambahkan atribut baru (program_studi yang
nilainya ‘D3' atau 'S1') ke dalam himpunan entitas Mahasiswa.
Agregasi
Dalam realitas dapat pula kita jumpai adanya relasi yang secara
kronologis mensyaratkan telah adanya relasi lain. Dengan kata
lain, sebuah relasi terbentuk tidak hanya dari entitas tapi juga
mengandung unsur dari relasi lain. Fenomena demikian dapat
diakomodasi dengan Agregasi.
Kita ambil contoh berikut untuk menunjukkan adanya Agregasi.
Kita telah mengetahui adanya relasi antara himpunan entitas
Mahasiswa dan himpunan entitas Kuliah. Ada sejumlah mata
kuliah yang membutuhkan kegiatan praktikum (tapi tidak semua
mata kuliah). Kegiatan praktikum ini tidak wajib diikuti oleh
mahasiswa yang mengulang (karena di semester sebelumnya tidak
lulus).
Himpunan relasi 'Mengikuti' dalam Diagram E-R berikut ini
menunjukkan entitas mahasiswa yang mengikuti kegiatan
praktikum tertentu karena telah mempelajari suatu mata kuliah
(yang memang membutuhkan kegiatan praktikum):
9
Sementara himpunan entitas Praktikum memiliki atribut-atribut
dengan kode_pra sebagai key. Atribut key pada himpunan relasi
Mengikuti merupakan foreign-key di mana kode_pra berasal dari
himpunan entitas Praktikum dan nim+kode_kul diambil dari
himpunan relasi Mempelajari. Perlu ditegaskan sekali lagi, nim
dan kode_kul ini tidak berasal (secara langsung) dari himpunan
entitas Mahasiswa dan Kuliah, karena yang ada di himpunan
relasi Mengikuti hanyalah pasangan nim+kode_kul yang sudah ada
di himpunan relasi Mempelajari. Karena itulah, ada faktor
kronologis yang ingin ditunjukkan dengan adanya Agregasi seperti
di atas, di mana sebuah relasi (Mengikuti Praktikum) hanya akan
ada jika telah ada relasi lainnya (Mempelajari Kuliah).
Proses Lanjutan
Sebuah Diagram E-R yang telah mengakomodasi semua fakta yang
ada, bisa saja telah dianggap selesai untuk selanjutnya
diimplementasikan. Akan tetapi, sebenarnya kita dapat melakukan
berbagai proses lanjutan (perubahan Diagram E-R) yang mengarah
pada penyempurnaan dan optimasi model data karena
pertimbangan-pertimbangan efisiensi ruang atau kecepatan dan
kemudahan pengaksesan data.
Key Altematif (Alternate Key)
Sebuah key dapat dikatagorikan baik, jika: Berukuran kecil dan
Sekuensial.
Key pada himpunan entitas Dosen merupakan key yang buruk,
karena selain panjang juga nilai-nilainya bebas dan tidak
sepenuhnya dapat menjamin keunikan (karena walaupun kecil
kemungkinannya, bisa saja ada dua orang dosen atau lebih
dengan nama dan gelar yang tepat sama).
Dengan pertimbangan itu, kita dapat saja menambahkan atribut
10
baru, misalnya kode_dos, pada himpunan entitas Dosen yang
selanjutnya kita jadikan sebagai key untuk menggantikan
nama_dos. Key semacam ini disebut Key Alternatif (Alternate Key).
Penggunaan atribut kode_dos ini tentu saja akan berdampak pada
atribut-atribut di semua relasi yang berhubungan dengan entitas
Dosen. Berikut koreksi Diagram E-R-nya jika atribut ini kita
tambahkan dan sekaligus kita jadikan sebagai key pada himpunan
entitas Dosen.
Sepintas lalu adanya penambahan atribut kode_dos ini akan
menyebabkan kebutuhan ruang penyimpanan yang lebih besar.
Namun, hal itu tidak sepenuhnya benar. Memang di sisi himpunan
entitas Dosen akan terjadi penambahan kebutuhan ruang
penyimpanan, tetapi di relasi Mengajar justru akan terjadi
pengurangan ruang penyimpanan yang sangat berarti karena
ukiiran data kode_dos akan jauh lebih kecil dibanding ukuran data
nama_dos.
Sehingga jika relasi yang terjadi dengan melibatkan entitas dosen
semakin banyak, maka penambahan atribut ini justru akan lebih
efisien dari sisi kebutuhan ruang penyimpanan. Apalagi, kita juga
akan memperoleh keuntungan yang lain, yaitu kecepatan akses
data yang lebih baik, karena memanfaatkan key yang lebih kecil
ukurannya.
Pengkodean Internal
Salah satu alasan mengapa kita menyatakan suatu data (atribut)
dalam bentuk lain adalah untuk efisiensi ruang penyimpanan. Dan
cara yang ditempuh untuk menyatakan suatu data dalam bentuk
lain itu adalah melalui pengkodean (data coding).
Ada 3 (tiga) bentuk pengkodean yang dapat kita pilih, yaitu :
Sekuensial
Pengkodean dilakukan dengan mengasosiasikan data dengan kode
terurut (biasanya berupa bilangan asli atau abjad), misalnya data
11
nilai mata kuliah ('Sempuma', 'Baik', 'Cukup', 'Kurang', 'Buruk')
dikodekan dengan 'A', 'B', 'C', 'D' dan 'E'.
Mnemonic
Pengkodean dilakukan dengan membentuk suatu singkatan dari
data yang ingin dikodekan, misalnya data jenis-kelamin ('Laki-laki'
dan 'Perempuan') dikodekan dengan 'L' dan 'P'.
Blok
Pengkodean dinyatakan dalam format tertentu, misalnya data no.
induk mahasiswa dengan format XXYYYY yang terbentuk atas
XX=dua dijit terakhir angka tahun masuk dan YYYY=no.urut
mahasiswa.
Jika pada himpunan entitas mahasiswa kita juga ingin menyimpan
data agama setiap mahasiswa misalnya, maka data agama ini dapat
juga kita nyatakan dalam bentuk kode. Pemakaian kode ini
membutuhkan adanya himpunan entitas baru yang akan menjadi
ferensi, untuk mendapatkan nilai data agama yang sesungguhnya.
Dekomposisi Himpunan Entitas dan Normalisasi
Sebuah himpunan entitas yang ada dalam sebuah Diagram E-R dapat
kita dekomposisi menjadi beberapa himpunan entitas baru karena
pertimbangan efisiensi ruang penyimpanan atau karena pertimbangan
kemudahan/kecepatan pengaksesan data. Upaya dekomposisi ini
senantiasa akan menghasilkan satu himpunan entitas kuat (strong
entity set) dan satu atau beberapa himpunan entitas lemah atau sub
entitas.
Secara umum ada dua bentuk dekomposisi himpunan entitas, yaitu:
A. Dekomposisi Atribut (Dekomposisi Vertikal)
Dekomposisi ini dilakukan dengan cara membagi sebuah
himpunan entitas menjadi dua atau lebih dengan pemisahan
12
atribut.
Pembentukan himpunan entitas Orang-Tua (dengan mendekomposisi-
nya dari himpunan entitas Mahasiswa yang lengkap
tersebut) dapat dilakukan dengan pertimbangan, bahwa data
nama_ortu dan alamat_ortu jarang sekali dibutuhkan/diakses.
Semakin kecilnya ukuran himpunan entitas, maka semakin kecil
pula ukuran ruang yang dibutuhkan pada waktu implementasi.
Semakin kecil ukuran datanya, akan semakin cepat pula
pengaksesan datanya.
Sementara dekomposisi dengan membentuk himpunan entitas
Hobbi dilakukan dengan alasan bahwa atribut Hobby merupakan
atribut bernilai banyak (multivalued attribute) dan tidak selalu
setiap entitas mahasiswa memiliki data hobbi.
Pendekomposisian ini akan mengurangi redundansi data dan
mengefisiensikan ruang penyimpanan yang nantinya dibutuhkan.
Sebagai hasil dekomposisi di atas, jumlah entitas Mahasiswa
hasil dekomposisi akan sama dengan jumlah entitas sebelum
dekomposisi. Sementara, jumlah entitas Orang-Tua akan sama
atau lebih kecil daripada jumlah entitas Mahasiswa.
B. Dekomposisi Entitas (Dekomposisi Horizontal)
13
Dekomposisi ini dilakukan dengan cara membagi sebuah
himpunan entitas menjadi dua atau lebih dengan pemisahan
entitas. contoh dekomposisi entitas yang dilakukan dengan
melakukan Spesialisasi yang dapat berbentuk:
Sebagai hasil dekomposisi di atas, jumlah entitas Dosen sebelum
dekomposisi akan sama dengan jumlah entitas Dosen Tetap ditambah
dengan jumlah entitas Dosen Tidak Tetap.
Fleksibilitas
Fleksibilitas dalam desain basis data dapat direalisasikan dalam bentuk:
Penambahan atribut.
Pemilihan domain atribut yang lebih luas (direalisasikan pada
tahap implementasi).
Generalisasi.
Perubahan struktur entitas dari yang berorientasi kolom (columnoriented)
menjadi berorientasi baris (row-oriented).
14
kebutuhan (makna) dari kedua relasi tersebut memang berbeda.
Demikian juga dengan atribut-atribut relasi dan Derajat Relasinya.
Tidak sebagaimana pada himpunan relasi Mengajar,
himpunan relasi Menguasai hanya memiliki atribut key yang
berasal dari himpunan entitas Dosen dan Kuliah, karena memang
hanya untuk menunjukkan daftar mata kuliah yang dikuasai oleh
setiap dosen (seorang dosen yang tidak mengajar mata kuliah
tertentu tidak berarti dia tidak menguasai mata kuliah tersebut).
Sementara itu, Derajat Relasi banyak-ke-banyak (N-N) pada
himpunan relasi Menguasai menunjukkan bahwa seorang Dosen
dapat mengusai banyak mata kuliah sekaligus dan begitu juga
sebaliknya, setiap mata kuliah dapat dikuasai oleh lebih dari
seorang dosen.
7
Spesialisasi dan Generalisasi
Pada sebuah himpunan entitas dimungkinkan adanya
pengelompokkan entitas-entitas yang menjadi anggotanya.
Kadang-kadang kita temui, atribut-atribut yang melekat pada
masing-masing kelompok tersebut tidak sepenuhnya sama.
Sebagai contoh, entitas-entitas yang ada pada himpunan entitas
Dosen dapat dibagi dalam dua kelompok, yaitu :
Dosen Tetap (yang sekaligus merupakan karyawan/pegawai di
perguruan tinggi yang bersangkutan).
Dosen Tidak Tetap (yang telah menjadi karyawan/pegawai di
perguruan tinggi/ perusahaan lain).
Atribut-atribut yang ada pada himpunan entitas Dosen kita
perluas. Kelompok Dosen Tetap bisa memiliki atribut-atribut
tambahan seperti nik, pangkat dan tgl_masuk.
Bagi kelompok Dosen Tidak Tetap atribut-atribut tersebut tidak
relevan. Atribut-atribut tambahan yang relevan bagi kelompok
Dosen Tidak Tetap adalah nama_kantor dan alamat_kantor yang
menunjukkan lokasi tempat dosen bekerja secara permanen.
Adanya pembedaan atribut ini menyebabkan entitas-entitas dosen
tersebut tidak mungkin disatukan dalam sebuah himpunan entitas
saja. Karena itu, pemisahan (spesialisasi) entitas bisa dilakukan.
Jika kita memulai dari sebuah himpunan entitas lalu kemudian
melakukan pengelompokan yang melahirkan himpunan entitas
baru (proses top-down), maka kita sedang melakukan Spesialisasi.
Bisa juga yang terjadi adalah sebaliknya. Kita mengetahui bahwa
entitas-entitas dalam himpunan entitas Mahasiswa sebenarnya
dapat dibagi dalam dua kelompok, yaitu mahasiswa D3 (Diploma
3) dan mahasiswa SI (Strata 1). Tetapi pengelompokan ini tidak
diperlegas dengan adanya perbedaan atribut. Karena tidak
tegasnya perbedaan atribut dari kedua kelompok, maka kejompokkelompok
entitas tersebut malah disatukan dalam sebuah
himpunan entitas dengan atribut-atribut yang sama. Jadi
pendekatannya bersifat bottom-up, mula-mula tcrpisah tetapi
kemudian menjadi satu. Proses yang demikian disebut
Generalisasi.
Dengan demikian, Spesialisasi dan Generalisasi merupakan dua
proses yang berlawanan. Yang ditekankan dalam .spesialisasi
adalah perbedaan antar kelompok entitas, sedang dalam
generalisasi yang ditekankan adalah persamaannya. Adanya
Spesialisasi dan Generalisasi diwujudkan dalam notasi relasi yang
khusus, yang disebut Relasi 'ISA' (yang berasal dari 'Is A') sebagai
berikut:
8
Adanya Spesialisasi dalam perancangan basis data, umumnya
akan terlihat secara eksplisit pada hasil akhir Diagram E-R.
Sedangkan proses Generalisasi, dengan pertimbangan simplifikasi
(penyederhanaan), seringkali ditiadakan (tidak diperlihatkan secara
eksplisit) pada hasil akhir Diagram E-R.
Peniadaan generalisasi ini direpresentasikan dengan adanya
atribut baru pada himpunan entitas akhir. Pada contoh di atas,
kita dapat menambahkan atribut baru (program_studi yang
nilainya ‘D3' atau 'S1') ke dalam himpunan entitas Mahasiswa.
Agregasi
Dalam realitas dapat pula kita jumpai adanya relasi yang secara
kronologis mensyaratkan telah adanya relasi lain. Dengan kata
lain, sebuah relasi terbentuk tidak hanya dari entitas tapi juga
mengandung unsur dari relasi lain. Fenomena demikian dapat
diakomodasi dengan Agregasi.
Kita ambil contoh berikut untuk menunjukkan adanya Agregasi.
Kita telah mengetahui adanya relasi antara himpunan entitas
Mahasiswa dan himpunan entitas Kuliah. Ada sejumlah mata
kuliah yang membutuhkan kegiatan praktikum (tapi tidak semua
mata kuliah). Kegiatan praktikum ini tidak wajib diikuti oleh
mahasiswa yang mengulang (karena di semester sebelumnya tidak
lulus).
Himpunan relasi 'Mengikuti' dalam Diagram E-R berikut ini
menunjukkan entitas mahasiswa yang mengikuti kegiatan
praktikum tertentu karena telah mempelajari suatu mata kuliah
(yang memang membutuhkan kegiatan praktikum):
9
Sementara himpunan entitas Praktikum memiliki atribut-atribut
dengan kode_pra sebagai key. Atribut key pada himpunan relasi
Mengikuti merupakan foreign-key di mana kode_pra berasal dari
himpunan entitas Praktikum dan nim+kode_kul diambil dari
himpunan relasi Mempelajari. Perlu ditegaskan sekali lagi, nim
dan kode_kul ini tidak berasal (secara langsung) dari himpunan
entitas Mahasiswa dan Kuliah, karena yang ada di himpunan
relasi Mengikuti hanyalah pasangan nim+kode_kul yang sudah ada
di himpunan relasi Mempelajari. Karena itulah, ada faktor
kronologis yang ingin ditunjukkan dengan adanya Agregasi seperti
di atas, di mana sebuah relasi (Mengikuti Praktikum) hanya akan
ada jika telah ada relasi lainnya (Mempelajari Kuliah).
Proses Lanjutan
Sebuah Diagram E-R yang telah mengakomodasi semua fakta yang
ada, bisa saja telah dianggap selesai untuk selanjutnya
diimplementasikan. Akan tetapi, sebenarnya kita dapat melakukan
berbagai proses lanjutan (perubahan Diagram E-R) yang mengarah
pada penyempurnaan dan optimasi model data karena
pertimbangan-pertimbangan efisiensi ruang atau kecepatan dan
kemudahan pengaksesan data.
Key Altematif (Alternate Key)
Sebuah key dapat dikatagorikan baik, jika: Berukuran kecil dan
Sekuensial.
Key pada himpunan entitas Dosen merupakan key yang buruk,
karena selain panjang juga nilai-nilainya bebas dan tidak
sepenuhnya dapat menjamin keunikan (karena walaupun kecil
kemungkinannya, bisa saja ada dua orang dosen atau lebih
dengan nama dan gelar yang tepat sama).
Dengan pertimbangan itu, kita dapat saja menambahkan atribut
10
baru, misalnya kode_dos, pada himpunan entitas Dosen yang
selanjutnya kita jadikan sebagai key untuk menggantikan
nama_dos. Key semacam ini disebut Key Alternatif (Alternate Key).
Penggunaan atribut kode_dos ini tentu saja akan berdampak pada
atribut-atribut di semua relasi yang berhubungan dengan entitas
Dosen. Berikut koreksi Diagram E-R-nya jika atribut ini kita
tambahkan dan sekaligus kita jadikan sebagai key pada himpunan
entitas Dosen.
Sepintas lalu adanya penambahan atribut kode_dos ini akan
menyebabkan kebutuhan ruang penyimpanan yang lebih besar.
Namun, hal itu tidak sepenuhnya benar. Memang di sisi himpunan
entitas Dosen akan terjadi penambahan kebutuhan ruang
penyimpanan, tetapi di relasi Mengajar justru akan terjadi
pengurangan ruang penyimpanan yang sangat berarti karena
ukiiran data kode_dos akan jauh lebih kecil dibanding ukuran data
nama_dos.
Sehingga jika relasi yang terjadi dengan melibatkan entitas dosen
semakin banyak, maka penambahan atribut ini justru akan lebih
efisien dari sisi kebutuhan ruang penyimpanan. Apalagi, kita juga
akan memperoleh keuntungan yang lain, yaitu kecepatan akses
data yang lebih baik, karena memanfaatkan key yang lebih kecil
ukurannya.
Pengkodean Internal
Salah satu alasan mengapa kita menyatakan suatu data (atribut)
dalam bentuk lain adalah untuk efisiensi ruang penyimpanan. Dan
cara yang ditempuh untuk menyatakan suatu data dalam bentuk
lain itu adalah melalui pengkodean (data coding).
Ada 3 (tiga) bentuk pengkodean yang dapat kita pilih, yaitu :
Sekuensial
Pengkodean dilakukan dengan mengasosiasikan data dengan kode
terurut (biasanya berupa bilangan asli atau abjad), misalnya data
11
nilai mata kuliah ('Sempuma', 'Baik', 'Cukup', 'Kurang', 'Buruk')
dikodekan dengan 'A', 'B', 'C', 'D' dan 'E'.
Mnemonic
Pengkodean dilakukan dengan membentuk suatu singkatan dari
data yang ingin dikodekan, misalnya data jenis-kelamin ('Laki-laki'
dan 'Perempuan') dikodekan dengan 'L' dan 'P'.
Blok
Pengkodean dinyatakan dalam format tertentu, misalnya data no.
induk mahasiswa dengan format XXYYYY yang terbentuk atas
XX=dua dijit terakhir angka tahun masuk dan YYYY=no.urut
mahasiswa.
Jika pada himpunan entitas mahasiswa kita juga ingin menyimpan
data agama setiap mahasiswa misalnya, maka data agama ini dapat
juga kita nyatakan dalam bentuk kode. Pemakaian kode ini
membutuhkan adanya himpunan entitas baru yang akan menjadi
ferensi, untuk mendapatkan nilai data agama yang sesungguhnya.
Dekomposisi Himpunan Entitas dan Normalisasi
Sebuah himpunan entitas yang ada dalam sebuah Diagram E-R dapat
kita dekomposisi menjadi beberapa himpunan entitas baru karena
pertimbangan efisiensi ruang penyimpanan atau karena pertimbangan
kemudahan/kecepatan pengaksesan data. Upaya dekomposisi ini
senantiasa akan menghasilkan satu himpunan entitas kuat (strong
entity set) dan satu atau beberapa himpunan entitas lemah atau sub
entitas.
Secara umum ada dua bentuk dekomposisi himpunan entitas, yaitu:
A. Dekomposisi Atribut (Dekomposisi Vertikal)
Dekomposisi ini dilakukan dengan cara membagi sebuah
himpunan entitas menjadi dua atau lebih dengan pemisahan
12
atribut.
Pembentukan himpunan entitas Orang-Tua (dengan mendekomposisi-
nya dari himpunan entitas Mahasiswa yang lengkap
tersebut) dapat dilakukan dengan pertimbangan, bahwa data
nama_ortu dan alamat_ortu jarang sekali dibutuhkan/diakses.
Semakin kecilnya ukuran himpunan entitas, maka semakin kecil
pula ukuran ruang yang dibutuhkan pada waktu implementasi.
Semakin kecil ukuran datanya, akan semakin cepat pula
pengaksesan datanya.
Sementara dekomposisi dengan membentuk himpunan entitas
Hobbi dilakukan dengan alasan bahwa atribut Hobby merupakan
atribut bernilai banyak (multivalued attribute) dan tidak selalu
setiap entitas mahasiswa memiliki data hobbi.
Pendekomposisian ini akan mengurangi redundansi data dan
mengefisiensikan ruang penyimpanan yang nantinya dibutuhkan.
Sebagai hasil dekomposisi di atas, jumlah entitas Mahasiswa
hasil dekomposisi akan sama dengan jumlah entitas sebelum
dekomposisi. Sementara, jumlah entitas Orang-Tua akan sama
atau lebih kecil daripada jumlah entitas Mahasiswa.
B. Dekomposisi Entitas (Dekomposisi Horizontal)
13
Dekomposisi ini dilakukan dengan cara membagi sebuah
himpunan entitas menjadi dua atau lebih dengan pemisahan
entitas. contoh dekomposisi entitas yang dilakukan dengan
melakukan Spesialisasi yang dapat berbentuk:
Sebagai hasil dekomposisi di atas, jumlah entitas Dosen sebelum
dekomposisi akan sama dengan jumlah entitas Dosen Tetap ditambah
dengan jumlah entitas Dosen Tidak Tetap.
Fleksibilitas
Fleksibilitas dalam desain basis data dapat direalisasikan dalam bentuk:
Penambahan atribut.
Pemilihan domain atribut yang lebih luas (direalisasikan pada
tahap implementasi).
Generalisasi.
Perubahan struktur entitas dari yang berorientasi kolom (columnoriented)
menjadi berorientasi baris (row-oriented).
14
No comments:
Post a Comment