Dalam database terdapat beberapa modul dengan fungsi dan kegunaan yang berbeda, seperti pembuatan erd, normalisasi, cdm dan pdm, ddl dan dml, fungsi aggregate, query bersyarat dan trigger.
ERD atau Entity Relationship Diagram merupakan pemodelan data utama yang dapat membantu mengorganisasikan data dalam beberapa entitas. Dan di dalam entitas terdapat beberapa atribut yang merupakan karakteristik dari entitas tersebut.
Normalisasi merupakan proses perancangan table yang bertujuan untuk mengurangi data yang terduplikasi dan data yang inkonsistensi. sebuah table dikatakan normal apabila minimal telah memenuhi kriteria 3NF.
CDM(Conseptual Data Model) merupakan pemodelan yang dibuat berdasarkan objek-objek dasar dan hubungan antara objek-objek tersebut yang tidak bergantung pada software atau pertimbangan model struktur data, serta dapat dikonversikan ke bentuk PDM. Sedangkan PDM(Physical Data Model) merupakan representasi fisik dari suatu database yang akan dibuat. PDM dapat dihasilkan melalui CDM yang valid.
Fungsi agregat (aggregate) adalah fungsi yang menerima koleksi nilai dan mengembalikan nilai tunggal sebagai hasilnya. Dalam implementasinya fungsi agregat harus diikuti oleh group by bila terdapat field lain yang dijadikan sebagai kriteria pengelompokan.
Query bersyarat merupakan merupakan perintah query yang memiliki kriteria. Query bersyarat dapat digunakan dengan memakai having atau where. Untuk kriteria having biasanya digunakan untuk menentukan kriteria yang bersifat fungsi aggregate dan harus diikuti dengan group by.
Trigger merupakan perintah SQL yang otomatis dijalankan ketika sebelum atau sesudah terjadinya proses insert, update atau delete pada suatu table. Pada satu table hanya diperbolehkan untuk membuat satu trigger. Untuk menjalankan trigger baru pada satu table maka trigger yang lama harus dihapus
CONTOH SOAL
Buat implementasikan modul-modul yang ada pada databse dengan studi kasus ‘kependudukan’ yang terdiri dari 5 entitas, 5 atribut, dan 10 data !
PEMBAHASAN
ERD
|
ERD Kependudukan |
Pada
hasil diatas merupakan perancangan dari database kependudukan. Pertama
membuat erd, dengan 5 entitas. Terdapat entitas wilayah dengan
atribut(kode_pos sebagai primary key, kelurahan, kecamatan, kabupaten,
provinsi), keluarga dengan atribut(nik sebagai primary key, no_keluarga,
status, jalan, rt, rw), kelahiran dengan atribut(no_lahir sebagai
primary key, tempat_lahir, hari_lahir, tanggal_lahir, keterangan),
penduduk dengan atribut(ktp sebagai primary key, nama, jk, agama,
pendidikan, pekerjaan, penghasilan), dan kematian dengan
atribut(no_kematian sebagai primary key, tempat, hari, tgl, sebab).
Dengan Relasi antara entitas :
1. keluarga menempati wilayah(many to one)
2. keluarga membuat kelahiran(one to many)
3. keluarga membentuk penduduk(one to many)
4. penduduk mengalami kematian(one to one)
Normalisasi
|
tabel utama |
1NF
|
tabel utama 1NF |
2NF
|
tabel keluarga |
|
tabel kelahiran |
3NF
|
tabel keluarga |
|
tabel wilayah |
Kemudian melakukan normalisasi sampai 3NF dengan table utama yang
memiliki multivalue atribut yaitu tempat_tanggal_lahir untuk memenuhi
1NF atribut tersebut harus dipecah menjadi tempat_lahir dan
tanggal_lahir. Untuk memenuhi 2NF table harus dipecah menjadi 2 tabel
yaitu table keluarga dengan nik sebagai primary key dan table kelahiran
dengan no_kelahiran sebagai primary key. Untuk memenuhi 3NF harus
ditambahkan table wilayah dengan kode_pos sebagai primary key karena
atribut kelurahan, kecamatan, kabupaten, dan provinsi tidak bergantung
pada nik tetapi bergantung pada kode_pos.
CDM
|
CDM kependudukan |
PDM
|
PDM kependudukan |
Setelah itu membuat CDM dan PDM, CDM semua table masih sama seperti pada
ERD, sedangkan pada PDM terdapat FK yang ditambahkan pada table supaya
dapat direlasikan seperti seperti nik dan ktp pada table kematian, nik
dan no_kematian pada table penduduk, kode_pos pada table keluarga, dan
nik pada table kelahiran.
DDL dan DML
|
tabel keluarga |
|
tabel kelahiran |
|
tabel wilayah |
|
tabel penduduk |
|
tabel kematian |
Kemudian membuat query DDL dan DML, DDL membuat table seperti yang ada
pada PDM dengan cara generate to database. Setelah itu printah DML untuk
menginput data dengan cara perintah insert all supaya dapat mengisi
data dengan banyak data. Untuk mengupdate menggunakan printah update
misalnya update penduduk set pendidikan='S-1', pekerjaan='Pegawai
Swasta' where nik='3525100305770001', untuk mendelete data menggunakan
perintah delete misalnya delete wilayah where kode_pos='61151'. Serta
untuk melihat data menggunakan perintah select misalnya select*from
wilayah.
Fungsi Aggregate
|
jumlah penghasilan penduduk |
|
penghasilan terendah penduduk |
|
penghasilan tertinggi penduduk |
|
rata-rata penghasilan penduduk |
|
jumlah penduduk disetiap nominal penghasilan |
Setelah itu membuat fungsi aggregate, untuk menampilkan jumlah dari data
digunakan fungsi sum misalnya select sum(penghasilan) from penduduk
berarti untuk menampilkan jumlah dari seluruh data penghasilan, untuk
mencari nilai tertinggi, nilai terendah dan nilai rata-rata menggunakan
max, min, serta avg misanya, select min(penghasilan), max(penghasilan),
avg(penghasilan) from penduduk berarti menampilkan nilai terendah, nilai
tertinggi, serta nilai rata-rata dati field penghasilan pada table
penduduk. Sementara untuk menentukan jumlah data menggunakan fungsi
count misalnya select penghasilan,Count(*) from penduduk group by
penghasilan berarti menampilkan jumlah data per penghasilan pada table
penduduk.
Query Bersyarat
|
penghasilan penduduk yang lebih besar dari 3500000 |
|
nama penduduk yang ktpnya lebih besar atau sama dengan 3525100308770001 |
|
nama penduduk yang mengandung karakter ‘i’ |
|
nama penduduk yang tidak mengandung karakter ‘i’ |
|
nama penduduk yang memiliki ktp 3525100306770001 atau 3525100307770001 |
|
nama penduduk yang ktpnya diantara 3525100301770001 dan 3525100304770001 |
Kemudian membuat query bersyarat, misalnya select penghasilan from
penduduk group by penghasilan having penghasilan > 3500000 berarti
menampilkan penghasilan dari table penduduk yang lebig besar dari
3500000. select ktp,nama from penduduk where ktp>='3525100308770001'
berarti menampilkan nama penduduk yang memiliki no ktp lebih besar atau
sama dengan 3525100308770001. select nama from penduduk where nama
like'%i%' digunakan untuk menampilkan nama penduduk yang memiliki
karakter ‘I’, select nama from penduduk where nama not like'%i%'
digunakan untuk menampilkan nama penduduk yang tidak memiliki karakter
‘I’, select nama, ktp from penduduk where ktp
in('3525100306770001','3525100307770001') digunakan untuk menampilkan
nama yang memiliki ktp 3525100307770001 atau 3525100306770001. select
nama, ktp from penduduk where ktp between '3525100301770001' and
'3525100304770001' digunakan untuk menampilkan nama penduduk yang
memiliki nomor ktp diantara '3525100301770001' dan '3525100304770001'.
Trigger
|
trigger update penduduk |
|
trigger insert kematian |
Terakhir membuat trigger, terdapat trigger update_pen yang berfungsi untuk mencatat record pergantian pendidikan, pekerjaan, dan penghasilan pada table penduduk yang akan otomatis terinput pada table record ketika data penduduk tersebut diupdate. Sedangkan trigger insert_kem berfungsi untuk mengupdate data no_kematian penduduk pada saat table kematian di isi.
QUERY
Tidak ada komentar: