MODEL DATA RELASIONAL SISTEM BASIS DATA
STMIK
AUB SURAKARTA
Permodelan Data Menyatakan hubungan antardata dalam database Ada tiga macam model data dasar Hierarkis Jaringan Relasional
1
Model Hierarkis Dikenal pula sebagai model pohon Menggunakan pola hubungan orangtua anak Contoh: Information Management System Dosen Siti Nurbaya
Pengantar Basis Data
Rudi
Asti
Dosen Ashadi
Pemrograman C
Dina
Dina
Matematika I
Edi
Ita
Edi
Model Jaringan Disebut juga model CODASYL Setiap anak bisa memiliki lebih dari satu orangtua Contoh: Integrated Database Management System Dosen Siti Nurbaya
Pengantar Basis Data
Rudi
Asti
Dosen Ashadi
Pemrograman C
Dina
Edi
Matematika I
Ita
2
Model Relasional Merupakan model data yang paling populer saat ini Menggunakan model berupa tabel berdimensi dua (yang disebut relasi atau tabel) Memakai kunci tamu (foreign key) sebagai penghubung dengan tabel lain
Nama Dosen
Kelas
Mahasiswa
Siti Nurbaya
Pengantar Basis Data
Rudi
Siti Nurbaya
Pengantar Basis Data
Asti
Siti Nurbaya
Pengantar Basis Data
Dina
Siti Nurbaya
Pemrograman C
Dina
Siti Nurbaya
Pemrograman C
Edi
Ashadi
Matematika I
Ita
Ashadi
Matematika I
Edi
Model Relasional (Lanjutan ) NO_MHS
NAMA_MHS
KODE_MK
NAMA_MK
55
Ashadi
DB001
Pengantar Basis Data
56
Rina
DB001
Basis Data Lanjut
PI001
Teknik Multimedia
57
Budi
NO_MHS
KODE_MK
NILAI
55
DB001
A
55
PI001
B
56
DB001
B
57
DB001
A
57
DB001
A
3
Model Relasional (Lanjutan )
Kardinalitas
Relasi atau tabel
NO_MHS
KODE_MK
NILAI
55
DB001
A
55
PI001
B
56
DB001
B
57
DB001
A
57
DB001
A
Atribut atau kolom
Sebuah baris atau tuple
Domain NILAI (A, B, C, D, E)
Model Relasional (Lanjutan ) Beberapa sifat yang melekat dalam relasi: Tidak ada baris yang kembar Urutan tupel tidak penting Setiap atribut memiliki nama yang unik Letak atribut bebas Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua baris
4
Model Data Relasional Data direprentasikan dalam tabel berdimensi dua Tiga komponen yang mendasari model data relasional:
Nomor_Peg
Nama
05001
Karmen
05002
Tigor
05003
Sita Devi
Struktur data Pemanipulasi data Integritas data
Model Data Relasional Istilah relasi (relation) menyatakan nama tabel Contoh: PEGAWAI(Nomor_Peg, Nama)
Nomor_Peg
Nama
05001
Karmen
05002
Tigor
05003
Sita Devi
Struktur data
5
Relasi 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 Kunci primer bawah PEGAWAI(Nomor_Peg PEGAWAI(Nomor_Peg,, Nama) Nama)
Kunci Kunci dapat dibedakan menjadi: 1. 2.
Kunci sederhana : Terdiri atas sebuah atribut Kunci komposit : Tersusun atas dua atribut atau lebih
Kunci sederhana:
Kunci komposit:
PEGAWAI(Nomor_Peg PEGAWAI(Nomor_Peg,, Nama) Nama) DEPARTEMEN(Kode_Dep DEPARTEMEN(Kode_Dep,, Nama_Dep) Nama_Dep) BARANG(Kode_Barang, BARANG(Kode_Barang, Nama_Barang) Nama_Barang)
BARANG DIPESAN(No_Pesanan DIPESAN(No_Pesanan,, Kode_Barang, Kode_Barang, Jumlah) Jumlah) NILAI(No_Mhs NILAI(No_Mhs,, Kode_Matakuliah,Skor Kode_Matakuliah,Skor))
6
Kunci Tamu Kunci tamu (foreign key) biasa digunakan sebagai penghubung ke relasi lain
Kunci asing
PELANGGAN Kd_Pelanggan
Nama
Kd_Kota
A001
Aditya
0501
B001
Bakdi
0502
B002
Bramanto
0502
Kunci primer
Kunci Tamu (Lanjutan
KOTA Kd_Kota
Nama_Kota
0501
Semarang
0502
Salatiga
0503
Kendal
)
Garis bawah terputus-putus biasa dipakai untuk menyatakan kunci tamu Contoh: PELANGGAN(Kd_Pelanggan, Nama, Kd_Kota)
KOTA(Kd_Kota, Nama_Kota)
7
Sifat Relasi 1. 2.
3. 4. 5. 6.
Setiap relasi memiliki nama yang unik Setiap isian pada perpotongan baris dan kolom harus bersifat atomik (bernilai tunggal) Setiap baris bersifat unik Setiap atribut memiliki nama yang unik Urutan kolom tidak penting Urutan baris juga tidak penting
Kekangan Integritas (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
8
Kekangan 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 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
9
Integritas Referensial Memastikan bahwa konsistensi antara dua buah relasi tetap terjaga Keadaan Awal:
Kd_Pelanggan
Nama
Kd_Kota
Kd_Kota
Nama_Kota
A001
Aditya
0501
0501
Semarang
B001
Bakdi
0502
0502
Salatiga
B002
Bramanto
0502
0503
Kendal
Efek Tanpa Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502
Kd_Pelanggan
Nama
Kd_Kota
Kd_Kota
Salatiga
Nama_Kota
A001
Aditya
0501
0501
Semarang
B001
Bakdi
0502
0503
Kendal
B002
Bramanto
0502
Menjadi tidak konsisten
10
Efek Integritas Referensial Keadaan Setekah data 0502 pada KOTA dihapus: 0502
Kd_Pelanggan
Nama
Kd_Kota
Salatiga
Kd_Kota
Nama_Kota
A001
Aditya
0501
0501
Semarang
B002
Bramanto
0503
0503
Kendal
B001
Bakdi
0502
Ikut terhapus! atau penghapusan ditolak
Kekangan 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
11
Relasi 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 1. 2. 3.
Anomali penyisipan Anomali penghapusan Anomali peremajaan
12
Anomali Peremajaan Terjadi bila terdapat pengubahan pada sejumlah data yang redundan, tetapi tanpa sengaja tidak semua ikut diubah
PEMASOK
KOTA
BARANG
Kartika
Jakarta
Monitor GGG
JUMLAH
Citra
Bandung
ZIP drive
Candra
Jakarta
Keyboard
Citra
Bandung
Mouse CCP
10 4 5 25
Pemasok Citra pindah ke Bogor dan Pengubahan dilakukan hanya pada data pertama
PEMASOK
KOTA
BARANG
Kartika
Jakarta
Monitor GGG
JUMLAH
Citra
Bogor
ZIP drive
Candra
Jakarta
Keyboard
Citra
Bandung
Mouse CCP
10 4 5 25
Anomali Penyisipan Terjadi bila ada penambahan data Perhatikan contoh disamping Masalah: Bagaimana caranya menyimpan fakta bahwa ruang baru bernama Arjuna ada 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
13
Anomali 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 identitas 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
Contoh Hubungan dalam Model Relasional NO_MHS
NAMA_MHS
KODE_MK
NAMA_MK
55
Ashadi
DB001
Pengantar Basis Data
56
Rina
DB002
Basis Data Lanjut
PI001
Teknik Multimedia
57
Budi
Hubungan
NO_MHS
KODE_MK
NILAI
55
DB001
A
55
PI001
B
56
DB001
B
57
DB001
A
57
DB002
A
14
Contoh Informasi yang Bisa Diperoleh NO_MHS
NAMA_MHS
KODE_MK
NAMA_MK
55
Ashadi
DB001
Pengantar Basis Data
56
Rina
DB002
Basis Data Lanjut
57
Budi
PI001
Teknik Multimedia
NO_MHS
KODE_MK
NILAI
55
DB001
A
NAMA_MHS
NAMA_MK
NILAI
55
PI001
B
Ashadi
Pengantar Basis Data
A
56
DB001
B
Ashadi
Teknik Multimedia
B
A
Rina
Pengantar Basis Data
B
Budi
Pengantar Basis Data
A
Budi
Basis Data Lanjut
A
57 57
DB001 DB002
A
Karakteristik dalam Relasi Tidak ada baris yang kembar Urutan baris tidak penting Setiap atribut memiliki nama yang unik Letak atribut bebas Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua baris
15
Pengertian Tidak Ada Baris Kembar Baris punya identitas yang membuat dua buah baris tidak kembar Identitas tersebut dinamakan primary key
Primary key
NO_MHS
KODE_MK
NILAI
55
DB001
A
55
PI001
B
56
DB001
B
57
DB001
A
57
DB001
B
Contoh baris kembar
Pengertian Urutan Baris Tidak Penting NO_MHS
KODE_MK
NILAI
NO_MHS
KODE_MK
NILAI
55
DB001
A
57
DB001
A
55
PI001
B
55
PI001
B
56
DB001
B
56
DB001
B
57
DB001
A
55
DB001
A
57
DB002
A
57
DB002
A
16
Setiap Atribut Memiliki Nama Unik Nama Nama atribut atribut unikunik
Nama TIDAK atribut UNIK unik
NO_SISWA
TES_1
TES_2
NO_SISWA
TES
TES
12
75
80
12
75
80
13
76
78
13
76
78
14
89
58
14
89
58
15
60
90
15
60
90
16
75
86
16
75
86
Letak Atribut Bebas NO_SISWA
TES_1
TES_2
TES_2
TES_1
NO_SISWA
12
75
80
80
75
12
13
76
78
78
76
13
14
89
58
58
89
14
15
60
90
90
60
15
16
75
86
86
75
16
Urutan kolom tidak penting
17
Setiap Atribut Memiliki Nilai Tunggal Semua atribut bernilai tunggal
Nilai TIDAK TUNGGAL
NO_SISWA
TES_1
TES_2
12
75
80
13
76
14
NO_SISWA
TES
12
75 80
78
13
76 78
89
58
14
89 58
15
60
90
15
60 90
16
75
86
16
75 86
Setiap Atribut Berjenis Sama untuk Semua BarisSemua atribut Jenis tidak bernilai tunggal
sama
NO_SISWA
TES_1
TES_2
NO_SISWA
TES_1
TES_2
12
75
80
12
75
80
13
76
78
13
78
14
89
58
Tujuh puluh enam
14
89
58
15
60
90
16
75
86
15
60
90
16
75
86
18
Apa Primary Key-nya? (1) NO_KTP
NO_KK
NAMA
?
?
?
Apa Primary Key-nya? (2) KODE_DEPARTEMEN
NAMA_DEPARTEMEN
1
Akunting
2
EDP
3
Pemasaran
4
Produksi
19
Apa Primary Key-nya? (3) NO_FAKTUR
KODE_ITEM
JUMLAH
456
K-1
2
457
K-5
1
459
K-1
3
459
K-2
1
460
K-8
5
Apa Primary Key-nya? (4) SEMESTER
TAHUN
NO_MHS
KODE_MKULIAH
SKS
1
2007
1189
M-01
3
1
2007
1189
M-02
2
1
2007
1190
M-01
3
1
2007
1190
M-02
2
1
2007
1190
M-03
3
20
Apa yang Salah? (1) NO_FAKTUR ITEM
ITEM
ITEM
Spidol
456
Pensil
457
Buku
Penggaris
459
Buku
Pensil
460
Spidol
461
Buku
Spidol
Penghapus
Apa yang Salah? (2) NO_PEGAWAI
SEX
BAHASA_ASING
12345
L
ARAB
12346
W
12347
L
INGGRIS
12348
W
INGGRIS JERMAN
12349
W
SPANYOL
21
Apa yang Salah? (3) NO_PEGAWAI
SEX
BAHASA_ASING
12345
L
ARAB
12346
W
12347
L
INGGRIS
12348
W
INGGRIS
12348
W
JERMAN
22