Perancangan Database Bagian I*

34
Perancangan Perancangan Database Database Bagian I* Bagian I* iadopsi dari Abdul Kadir, 2005 iadopsi dari Abdul Kadir, 2005

description

Perancangan Database Bagian I*. *diadopsi dari Abdul Kadir, 2005. Nomor_Peg. Nama. 05001. Karmen. 05002. Tigor. 05003. Sita Devi. Model Data Relasional. Data direprentasikan dalam tabel berdimensi dua Tiga komponen yang mendasari model data relasional: Struktur data - PowerPoint PPT Presentation

Transcript of Perancangan Database Bagian I*

Perancangan DatabasePerancangan DatabaseBagian I*Bagian I*

*diadopsi dari Abdul Kadir, 2005*diadopsi dari Abdul Kadir, 2005

Model Data RelasionalModel Data Relasional

Data direprentasikan Data direprentasikan dalam tabel berdimensi dalam tabel berdimensi duadua

Tiga komponen yang Tiga komponen yang mendasari model data mendasari model data relasional:relasional: Struktur data Struktur data Pemanipulasi dataPemanipulasi data Integritas dataIntegritas data

Nomor_Peg Nama

05001 Karmen

05002 Tigor

05003 Sita Devi

Model Data RelasionalModel Data Relasional

Istilah Istilah relasirelasi ( (relationrelation) ) menyatakan nama tabelmenyatakan nama tabel Contoh: Contoh:

PEGAWAI(Nomor_Peg, Nama)PEGAWAI(Nomor_Peg, Nama)

Nomor_Peg Nama

05001 Karmen

05002 Tigor

05003 Sita Devi

Struktur data

RelasiRelasi

Setiap relasi memiliki kunci primer (Setiap relasi memiliki kunci primer (primary primary keykey))

Kunci primer adalah atribut atau sejumlah Kunci primer adalah atribut atau sejumlah atribut yang menjadi pembeda setiap baris atribut yang menjadi pembeda setiap baris dalam relasidalam relasi

Kunci primer biasa dinyatakan dengan Kunci primer biasa dinyatakan dengan garis garis bawahbawah

PEGAWAI(PEGAWAI(Nomor_PegNomor_Peg, Nama), Nama)

Kunci primer

Kunci Kunci

Kunci dapat dibedakan menjadi:Kunci dapat dibedakan menjadi:1.1. Kunci sederhanaKunci sederhana : Terdiri atas sebuah atribut : Terdiri atas sebuah atribut

2.2. Kunci kompositKunci komposit : Tersusun atas dua atribut atau : Tersusun atas dua atribut atau lebihlebih

Kunci sederhana:PEGAWAI(PEGAWAI(Nomor_PegNomor_Peg, Nama), Nama)DEPARTEMEN(DEPARTEMEN(Kode_DepKode_Dep, Nama_Dep), Nama_Dep)BARANG(Kode_Barang, Nama_Barang)BARANG(Kode_Barang, Nama_Barang)

Kunci komposit:BARANG DIPESAN(BARANG DIPESAN(No_PesananNo_Pesanan, , Kode_BarangKode_Barang, , Jumlah)Jumlah)NILAI(NILAI(No_MhsNo_Mhs, , Kode_MatakuliahKode_Matakuliah,Skor),Skor)

Kunci TamuKunci Tamu Kunci tamu.(( tidak ada ketentuan nilainya beda) Kunci tamu.(( tidak ada ketentuan nilainya beda)

fforeign keyoreign key) biasa digunakan sebagai penghubung ke ) biasa digunakan sebagai penghubung ke relasi lainrelasi lain

Kd_Kota

Nama_Kota

0501 Semarang

0502 Salatiga

0503 Kendal

Kd_Pelanggan

Nama

A001 Aditya

B001 Bakdi

B002 Bramanto

Kd_Kota

0501

0502

0502

PELANGGAN

KOTA

Kunci primer

Kunci asing

Kunci Tamu (Lanjutan…)Kunci Tamu (Lanjutan…)

Garis bawah terputus-putus biasa dipakai Garis bawah terputus-putus biasa dipakai untuk menyatakan kunci tamuuntuk menyatakan kunci tamu

Contoh:Contoh:PELANGGAN(PELANGGAN(Kd_PelangganKd_Pelanggan, Nama, Kd_Kota), Nama, Kd_Kota)

KOTA(KOTA(Kd_KotaKd_Kota, Nama_Kota), Nama_Kota)

Sifat RelasiSifat Relasi

1.1. Setiap relasi memiliki nama yang unikSetiap relasi memiliki nama yang unik

2.2. Setiap isian pada perpotongan baris dan Setiap isian pada perpotongan baris dan kolom harus bersifat atomik (bernilai kolom harus bersifat atomik (bernilai tunggal)tunggal)

3.3. Setiap baris bersifat unikSetiap baris bersifat unik

4.4. Setiap atribut memiliki nama yang unikSetiap atribut memiliki nama yang unik

5.5. Urutan kolom tidak pentingUrutan kolom tidak penting

6.6. Urutan baris juga tidak pentingUrutan baris juga tidak penting

Kekangan IntegritasKekangan Integritas(Integrity Constraint)(Integrity Constraint)

Tujuannya adalah untuk memfasilitasi Tujuannya adalah untuk memfasilitasi penjagaan keakurasian dan integritas data penjagaan keakurasian dan integritas data dalam dalam databasedatabase (supaya tetap konsisten) (supaya tetap konsisten)

Macamnya:Macamnya: Kekangan domainKekangan domain Integritas entitasIntegritas entitas Integritas referensialIntegritas referensial Kekangan operasionalKekangan operasional

Kekangan Domain(kemungkinan Kekangan Domain(kemungkinan nilai)nilai)

Memastikan data dalam domain yang telah ditetapkanMemastikan data dalam domain yang telah ditetapkan Domain adalah kemungkinan nilai terhadap suatu Domain adalah kemungkinan nilai terhadap suatu

atributatribut Contoh:Contoh:

A,B,C,D,E untuk nilaiA,B,C,D,E untuk nilai TRUE untuk pria dan FALSE untuk wanitaTRUE untuk pria dan FALSE untuk wanita INTEGER untuk menyatakan nilai bulatINTEGER untuk menyatakan nilai bulat

Dalam praktek, domain juga mencakup panjang dataDalam praktek, domain juga mencakup panjang data Contoh:Contoh:

CHARACTER, SIZE 35CHARACTER, SIZE 35 INTEGER, 3 DIGITSINTEGER, 3 DIGITS

Integritas EntitasIntegritas Entitas

Memastikan bahwa data yang terkait dengan Memastikan bahwa data yang terkait dengan kunci primer tidak terlanggarkunci primer tidak terlanggar

Secara khusus, data Null pada kunci primer Secara khusus, data Null pada kunci primer akan ditolakakan ditolak

NullNull berarti nilai pada atribut tidak pernah berarti nilai pada atribut tidak pernah diberikan diberikan

Integritas ReferensialIntegritas Referensial

Memastikan bahwa konsistensi antara dua Memastikan bahwa konsistensi antara dua buah relasi tetap terjagabuah relasi tetap terjaga

Kd_Kota Nama_Kota

0501 Semarang

0502 Salatiga

0503 Kendal

Kd_Pelanggan Nama

A001 Aditya

B001 Bakdi

B002 Bramanto

Kd_Kota

0501

0502

0502

Keadaan Awal:

Efek Tanpa Integritas Efek Tanpa Integritas ReferensialReferensial

Kd_Kota Nama_Kota

0501 Semarang

0502 Salatiga

0503 Kendal

Kd_Pelanggan Nama

A001 Aditya

B001 Bakdi

B002 Bramanto

Kd_Kota

0501

0502

0502

Keadaan Setekah data 0502 pada KOTA dihapus:

Menjadi tidak konsisten

Efek Integritas ReferensialEfek Integritas Referensial

Kd_Kota Nama_Kota

0501 Semarang

0503 Kendal

Kd_Pelanggan Nama

A001 Aditya

B002 Bramanto

Kd_Kota

0501

0502

0502 Salatiga

Keadaan Setekah data 0502 pada KOTA dihapus:

B001 Bakdi 0502Ikut terhapus!

atau penghapusan

ditolak

Kekangan OperasionalKekangan Operasional

Kekangan yang berhubungan dengan aturan Kekangan yang berhubungan dengan aturan bisnisbisnis

Misalnya “Saldo tabungan tidak boleh negatif”Misalnya “Saldo tabungan tidak boleh negatif” Pada Access, kekangan seperti ini bisa Pada Access, kekangan seperti ini bisa

diimplementasikan pada Validation Rule.diimplementasikan pada Validation Rule. Pada PostgreSQL, hal ini bisa Pada PostgreSQL, hal ini bisa

diimplementasikan dalam prosedur tersimpandiimplementasikan dalam prosedur tersimpan

Relasi Berstruktur BaikRelasi Berstruktur Baik

Suatu relasi dikatakan berstruktur baik kalau :Suatu relasi dikatakan berstruktur baik kalau : Mengandung redundansi sesedikit mungkin danMengandung redundansi sesedikit mungkin dan Memungkinkan pemakai memasukkan, mengubah, Memungkinkan pemakai memasukkan, mengubah,

atau menghapus baris tanpa menimbulkan atau menghapus baris tanpa menimbulkan kesalahan atau tidak konsistenkesalahan atau tidak konsisten

Kesalahan atau akibat tidak konsisten yang Kesalahan atau akibat tidak konsisten yang ditimbulkan pada ulasan di atas biasa ditimbulkan pada ulasan di atas biasa dinamakan dinamakan anomalianomali

AnomaliAnomali

1.1. Anomali penyisipanAnomali penyisipan

2.2. Anomali penghapusanAnomali penghapusan

3.3. Anomali peremajaanAnomali peremajaan

Anomali PeremajaanAnomali Peremajaan

Terjadi bila terdapat Terjadi bila terdapat pengubahan pada pengubahan pada sejumlah data yang sejumlah data yang redundan, tetapi tanpa redundan, tetapi tanpa sengaja tidak semua ikut sengaja tidak semua ikut diubahdiubah

PEMASOK KOTA BARANG JUMLAH

Kartika Jakarta Monitor GGG 10

Citra Bandung ZIP drive 4

Candra Jakarta Keyboard 5

Citra Bandung Mouse CCP 25

Pemasok Citra pindah ke Bogor dan Pengubahan dilakukan hanya pada

data pertama

PEMASOK KOTA BARANG JUMLAH

Kartika Jakarta Monitor GGG 10

Citra Bogor ZIP drive 4

Candra Jakarta Keyboard 5

Citra Bandung Mouse CCP 25

Anomali PenyisipanAnomali Penyisipan

Terjadi bila ada Terjadi bila ada penambahan datapenambahan data

Perhatikan contoh Perhatikan contoh disampingdisamping

Masalah: Masalah: “Bagaimana “Bagaimana caranya menyimpan caranya menyimpan fakta bahwa ruang baru fakta bahwa ruang baru bernama Arjuna ada bernama Arjuna ada pada gedung selatan?”pada gedung selatan?”

KULIAH RUA NG TEMPAT

Jaringan Komputer Merapi Gedung Utara

Pengantar Basis Data Merbabu Gedung Utara

Matematikaa I Rama Gedung Selatan

Sistem Pakar Sinta Gedung Selatan

Kecerdasan Buatan Merapi Gedung Utara

Anomali PenghapusanAnomali Penghapusan Terjadi kiranya sesuatu Terjadi kiranya sesuatu

baris yang tak terpakai baris yang tak terpakai dihapus dan sebagai dihapus dan sebagai akibatnya terdapat data lain akibatnya terdapat data lain yang hilangyang hilang

Perhatikan contoh di Perhatikan contoh di sampingsamping

Apa yang terjadi seandainya Apa yang terjadi seandainya data bahwa siswa dengan data bahwa siswa dengan identitas 12 dihapus?identitas 12 dihapus? Data Data yang menyatakan bahwa yang menyatakan bahwa biaya kursus bahasa Jepang biaya kursus bahasa Jepang juga akan terhapusjuga akan terhapus

NO_SISWA NAMA_KURSUS BIAYA

10 Bahasa Inggris 120.000

10 Bahasa Prancis 120.000

10 Bahasa Mandarin 180.000

15 Bahasa Inggris 120.000

12 Bahasa Jepang 160.000

Tranformasi Diagram ER/EER Tranformasi Diagram ER/EER ke Relasike Relasi

Memetakan Entitas Reguler (kuat)Memetakan Entitas Reguler (kuat)

PELANGGANNo_Pelanggan

Nama_Pelanggan

Alamat_Pelanggan

No_PelangganNama_PelangganAlamat_Pelanggan

Tipe entitas PELANGGAN

Relasi PELANGGAN

Tranformasi Diagram ER Tranformasi Diagram ER ke Relasike Relasi

Memetakan Entitas dengan Atribut KompositMemetakan Entitas dengan Atribut Komposit

PELANGGANNo_Pelanggan

Nama_Pelanggan

Alamat_Pelanggan

No_PelangganNama_Pelanggan Jalan

Tipe entitas PELANGGAN dengan atribut komposit

Relasi PELANGGAN

JalanKota

Kode_Pos

Kota Kode_Pos

Tranformasi Diagram ER Tranformasi Diagram ER ke Relasike Relasi

Memetakan Entitas dengan Atribut Bernilai GandaMemetakan Entitas dengan Atribut Bernilai Ganda

PEGAWAI

No_Pegawai

Nama_Pegawai

Keterampilan

No_Pegawai Nama_Pegawai Alamat_Pegawai

Tipe entitas PEGAWAI dengan atribut bernilai ganda

Relasi PEGAWAI

Alamat_Pegawai

No_Pegawai Keterampilan Relasi KETERAMPILAN PEGAWAI

Pemetaan Entitas LemahPemetaan Entitas Lemah

PEGAWAI Memiliki

No_Pegawai Nama_PegawaiNama_Tanggungan Tanggal_Lahir

TANGGUNGAN

No_Pegawai Nama_Pegawai Relasi PEGAWAI

No_PegawaiNama_TanggunganTanggal_Lahir Relasi TANGGUNGAN

Pemetaan Hubungan 1 to MPemetaan Hubungan 1 to M

MengirimPELANGGAN

No_Pelanggan Nama_Pelanggan Nomor_Pesan Tanggal_Pesan

PESANAN

No_PelangganNama_Pelanggan Relasi PELANGGAN

No_Pesan Tanggal_Pesan No_Pelanggan Relasi PESANAN

Pemetaan Hubungan M to MPemetaan Hubungan M to M

MemintaPESANAN

No_Pesan Tgl_Pesan Kode_Produk Harga_Unit

PRODUK

No_Pesan Tgl_pesan Relasi PESANAN

Kode_Produk Harga_Unit

Relasi BARIS PESANAN

Jumlah

No_Pesan Kode_Produk Jumlah

Relasi PRODUK

Pemetaan Hubungan 1 to 1Pemetaan Hubungan 1 to 1

MengepalaiDOSEN

No_Dosen Nama_Dosen Kode_Prodi Nama_Prodi

PROGRAM STUDI

No_Dosen Nama_Dosen Relasi DOSEN

Relasi PROGRAM STUDI

Tanggal_Penugasan

Kode_Prodi Nama_Prodi No_DosenTanggal_penugasan

Pemetaan Entitas AsosiatifPemetaan Entitas Asosiatif(Ternary)(Ternary)

PENGIRIMANPELANGGAN

No_Pelanggan Nama Vendor Alamat

VENDOR

No_Pelanggan Nama Relasi PELANGGAN

Kode_Vendor Alamat

Relasi PENGIRIMAN

Tanggal

No_Kirim Tanggal Jumlah

Relasi VENDOR

No_KirimJumlah

No_PelangganKode_Vendor

Pemetaan Unary 1:NPemetaan Unary 1:N

PEGAWAI

No_Pegawai

Nama_Pegawai

No_Pegawai Nama_Pegawai Tgl_lahir Relasi PEGAWAI

Tgl_Lahir

Mengepalai

ID_Manajer

Pemetaan Unary M:MPemetaan Unary M:M

ITEM

No_Item

Nama_Item

No_Item Nama_Item Harga_Unit Relasi ITEM

Harga_Unit

Tersusun_atasJumlah

No_Item No_Komponen Jumlah Relasi KOMPONEN

Pemetaan Hubungan Pemetaan Hubungan Supertipe/Subtipe Supertipe/Subtipe

PEGAWAI

d

PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK

Gaji_Bulanan

Nomor_Pegawai

Nama_Pegawai Alamat

Tgl_Mulai_Kerja

Upah_Harian Nomor_KontrakLama_KontrakTunjangan

Kompensasi

Tipe_Pegawai:

“H”

“K”“T”

Pemetaan Hubungan Pemetaan Hubungan Supertipe/Subtipe (Lanjutan…)Supertipe/Subtipe (Lanjutan…)

Model relasional tidak mendukung hubungan Model relasional tidak mendukung hubungan supertipe/subtipe secara langsungsupertipe/subtipe secara langsung

Strategi pemecahan untuk kasus di depan:Strategi pemecahan untuk kasus di depan:1.1. Buat relasi terpisah untuk masing-masing supertipe dan Buat relasi terpisah untuk masing-masing supertipe dan

subtipesubtipe

2.2. Berikan atribut-atribut yang umum (termasuk kunci Berikan atribut-atribut yang umum (termasuk kunci primer) ke supertipeprimer) ke supertipe

3.3. Masukkan pembeda subtipe pada supertipeMasukkan pembeda subtipe pada supertipe

4.4. Tambahkan kunci primer pada supertipe ke semua Tambahkan kunci primer pada supertipe ke semua subtipesubtipe

Solusi Pemetaan Hubungan Solusi Pemetaan Hubungan Supertipe/SubtipeSupertipe/Subtipe

Nomor_PegawaiNama_Pegawai AlamatTgl_Mulai_Kerja PEGAWAI

Nomor_Pegawai Upah_Harian PEGAWAI HARIAN

Nomor_PegawaiGaji_Bulanan PEGAWAI TETAP

Nomor_PegawaiNomor_Kontrak

PEGAWAI KONTRAK

Tunjangan

Lama_KontrakKompensasi

Tipe_Pegawai

TugasTugas

Suatu hasil ujian dinyatakan dengan atribut seperti Suatu hasil ujian dinyatakan dengan atribut seperti berikut:berikut: No_MhsNo_Mhs Nama_MhsNama_Mhs MataujianMataujian No_Dosen_PengujiNo_Dosen_Penguji Nama_Dosen_PengujiNama_Dosen_Penguji

Gambarkan diagram E-R-nyaGambarkan diagram E-R-nya Kemudian ubahlah diagram E-R tersebut ke relasiKemudian ubahlah diagram E-R tersebut ke relasi