Upload
independent
View
2
Download
0
Embed Size (px)
Citation preview
Candidate KeyCandidate KeyCandidate Key (kunci calon) adalah salah satu rangkaian yang mempunyai nilai unik untuk membedakan atau mengidentifikasi nilai-nilai kombinasi yang unik diantara semua kejadian yang spesifik dari entetitas.
Tabel PegawaiAtribut (KdPeg, NoKtp, Nama, Alamat,
TempatLahir, TglLahir, Kota)
Candidat Key (KdPeg, NoKtp)
Primary KeyPrimary KeyPrimary Key (kunci utama) adalah atribut Merupakan candidate key yang telah dipilih untuk mengidentifikasi setiap record secara unik. Primary key harus merupakan field yang benar-benar unik dan tidak boleh ada nilai NULL.Kriteria PK :
– Key tersebut lebih natural untuk dijadikan acuan– Key tersebut lebih sederhana– Key tersebut cukup uniqe
Contoh :Tabel Pegawai
Atribut (KdPeg, NoKtp, Nama, Alamat, TempatLahir, TglLahir, Kota)
KdPeg dan NoKtp adalah kunci calon (Candidate Key) dan untuk kunci utama (Primary Key) adalah salah satu yang dipilih dari kunci calon. Misalnya KdPeg di jadikan primary key, maka primary key nya adalah KdPeg.
Alternate KeyAlternate KeyAlternate key Adalah candidate key yang tidak terpilih.
Contoh :Tabel Pegawai
Atribut (KdPeg, NoKtp, Nama, Alamat, TempatLahir, TglLahir, Kota)
KdPeg dan NoKtp adalah kunci calon (Candidate Key), Misalnya KdPeg di jadikan primary key, maka NoKtp menjadi Alternate key.
Foreign KeyForeign Key• Jika sebuah primary key terhubungan ke table/entity lain, maka
keberadaan primary key pada entity tersebut di sebut sebagai foreign key. Foreign key adalah Sebuah kumpulan field dalam satu relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan primary key pada relasi yang kedua), seperti: ‘logical pointer’.
• “Foreign key” adalah satu attribute yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan.
Kd_Kota
Nama_Kota
0501 Pontianak0502 Singkawang0503 Ketapang
Kd_Pelanggan
Nama
A001 AdityaB001 Bakdi B002 Bramanto
Kd_Kota
050105020502
KOTA
Kunci primer
Kunci asingFK
PKPK
Kunci Tamu (Lanjutan…)Kunci Tamu (Lanjutan…)• Garis bawah terputus-putus biasa
dipakai untuk menyatakan kunci tamu
• Contoh:PELANGGAN(Kd_Pelanggan, Nama, Kd_Kota)
KOTA(Kd_Kota, Nama_Kota)
Composite KeyComposite KeyDalam desain database, composite key adalah kunci yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian entitas. Setiap atribut yang membentuk kunci senyawa adalah kunci sederhana dalam haknya sendiri. Contoh : BARANG (No_Pesanan, Kode_Barang, Jumlah)NILAI (No_Mhs, Kode_Matakuliah, Skor)
•Secondary keySekunder key adalah sebuah atribut atau kombinasi yang digunakan hanya untuk tujuan pengambilan data.
No_PelangganNama_Pelanggan Jalan Kota Kode_Pos
Secondary KeyPrimary Key
Relasi/ TabelRelasi/ Tabel• Setiap relasi memiliki kunci primer
(primary key)• Kunci primer adalah atribut atau
sejumlah atribut yang menjadi pembeda setiap baris dalam relasi
• Kunci primer biasa dinyatakan dengan garis bawah
PEGAWAI(PEGAWAI(Nomor_PegNomor_Peg, Nama), Nama)Kunci primer
Sifat TabelSifat Tabel1. Setiap Tabel memiliki nama yang unik2. Setiap isian pada perpotongan baris dan
kolom harus bersifat atomik (bernilai tunggal)
3. Setiap baris bersifat unik4. Setiap atribut memiliki nama yang unik5. Urutan kolom tidak penting6. Urutan baris juga tidak penting
Kekangan IntegritasKekangan Integritas(Integrity Constraint)(Integrity Constraint)
• Tujuannya adalah untuk memfasilitasi penjagaan keakurasian dan integritas data dalam database (supaya tetap konsisten)
• Macamnya:– Kekangan domain– Integritas entitas– Integritas referensial– Kekangan operasional
Kekangan DomainKekangan Domain• Memastikan data dalam domain yang telah
ditetapkan• Domain adalah kemungkinan nilai terhadap suatu
atribut• Contoh:
– A,B,C,D,E untuk nilai– TRUE untuk pria dan FALSE untuk wanita– INTEGER untuk menyatakan nilai bulat
• Dalam praktek, domain juga mencakup panjang data
• Contoh:– CHARACTER, SIZE 35– INTEGER, 3 DIGITS
Integritas EntitasIntegritas Entitas• Memastikan bahwa data yang terkait
dengan kunci primer tidak terlanggar• Secara khusus, data Null pada kunci
primer akan ditolak• Null berarti nilai pada atribut tidak pernah
diberikan
Integritas ReferensialIntegritas Referensial• Memastikan bahwa konsistensi
antara dua buah relasi tetap terjaga
Kd_Kota Nama_Kota
0501 Pontianak
0502 Singkawang
0503 Ketapang
Kd_Pelanggan Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0502
Keadaan Awal:Tabel Pelanggan Tabel Kota
Efek Tanpa Integritas Efek Tanpa Integritas ReferensialReferensial
Kd_Kota Nama_Kota
0501 Pontianak
0502 Singkawang
0503 Ketapang
Kd_Pelanggan Nama
A001 Aditya
B001 Bakdi
B002 Bramanto
Kd_Kota
0501
0502
0502
Keadaan Setekah data 0502 pada KOTA dihapus:Menjadi
tidak konsisten
Tabel Pelanggan Tabel Kota
Efek Integritas ReferensialEfek Integritas Referensial
Kd_Kota Nama_Kota
0501 Pontianak
0503 Ketapang
Kd_Pelanggan Nama
A001 Aditya
B002 Bramanto
Kd_Kota
0501
0503
0502 Singkawang
Keadaan Setekah data 0502 pada KOTA dihapus:
B001 Bakdi 0502Ikut terhapus!
atau penghapusan ditolak
Tabel Pelanggan Tabel Kota
Kekangan OperasionalKekangan Operasional• Kekangan yang berhubungan dengan
aturan bisnis• Misalnya “Saldo tabungan tidak boleh
negatif”• Pada Access, kekangan seperti ini bisa
diimplementasikan pada Validation Rule.• Pada PostgreSQL, hal ini bisa
diimplementasikan dalam prosedur tersimpan
Relasi Berstruktur BaikRelasi Berstruktur Baik• Suatu relasi dikatakan berstruktur baik
kalau :– Mengandung redundansi sesedikit mungkin
dan– Memungkinkan pemakai memasukkan,
mengubah, atau menghapus baris tanpa menimbulkan kesalahan atau tidak konsisten
• Kesalahan atau akibat tidak konsisten yang ditimbulkan pada ulasan di atas biasa dinamakan anomali
Anomali PeremajaanAnomali Peremajaan• Terjadi bila terdapat
pengubahan pada sejumlah data yang redundan, tetapi tanpa sengaja tidak semua ikut diubah.
PEMASOK KOTA BARANG JUMLAH
Kartika Pontianak Monitor GGG 10
Citra Kuburaya ZIP drive 4
Candra Jungkat Keyboard 5
Citra Kuburaya Mouse CCP 25
Pemasok Citra pindah ke Singkawang dan Pengubahan dilakukan hanya pada
data pertama
PEMASOK KOTA BARANG JUMLAH
Kartika Pontianak Monitor GGG 10
Citra Singkawang ZIP drive 4
Candra Jungkat Keyboard 5
Citra Kuburaya Mouse CCP 25
Anomali PenyisipanAnomali Penyisipan• Terjadi bila ada
penambahan data• Perhatikan contoh
disamping• Masalah: “Bagaimana
caranya menyimpan fakta bahwa ruang baru bernama C.5.1 ada pada Gedung Ampera ?”
KULIAH RUA NG TEMPAT
Jaringan Komputer Lab 6 Gedung Ilham
Pengantar Basis Data Lab 7 Gedung Ilham
Matematikaa I C.2.7 Gedung Ampera
Sistem Pakar C.2.6 Gedung Ampera
Kecerdasan Buatan Lab 3 Gedung Ilham
Anomali PenghapusanAnomali Penghapusan• Terjadi kiranya sesuatu
baris yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang
• Perhatikan contoh di samping
• Apa yang terjadi seandainya data bahwa siswa dengan No_siswa 12 dihapus? Data yang menyatakan bahwa biaya kursus bahasa Jepang juga 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)
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 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 Ganda
PEGAWAI
No_PegawaiNama_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
1 M
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
1 M
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
M N
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
1 1
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
1 1
Pemetaan Unary 1:NPemetaan Unary 1:N
PEGAWAI
No_PegawaiNama_Pegawai
No_Pegawai Nama_Pegawai Tgl_lahir Relasi PEGAWAI
Tgl_Lahir
Mengepalai
ID_Manajer
1
M
Pemetaan Unary M:MPemetaan Unary M:M
ITEM
No_ItemNama_Item
No_Item Nama_Item Harga_Unit Relasi ITEM
Harga_Unit
Tersusun_atasJumlah
No_Item No_Komponen Jumlah Relasi KOMPONEN
M
N
Pemetaan Hubungan Pemetaan Hubungan SuperSuperclassclass/Sub/Subclassclass
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 SuperSuperclassclass/Sub/Subclassclass (Lanjutan…) (Lanjutan…)
• Model relasional tidak mendukung hubungan superclass/subclass secara langsung
• Strategi pemecahan untuk kasus di depan:1. Buat relasi terpisah untuk masing-masing
superclass dan subclass2. Berikan atribut-atribut yang umum (termasuk
kunci primer) ke superclass3. Masukkan pembeda subclass pada superclass4. Tambahkan kunci primer pada superclass ke
semua subtclass
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