Pemodelan Data (2)Pemodelan Data (2)
Konsep Foreign KeyKonsep Foreign Key Foreign key adalah kolom yang diambil dari primary Foreign key adalah kolom yang diambil dari primary
key entitas lain yang menggunakan hubungan antar 2 key entitas lain yang menggunakan hubungan antar 2 tabel tsb.tabel tsb.
FaktaFakta
Adi, Budi dan Cici bekerja pada Adi, Budi dan Cici bekerja pada bagian Persinalia. Sedangkan bagian Persinalia. Sedangkan Rudi dan Santo bekerja pada Rudi dan Santo bekerja pada bagian Gudangbagian Gudang
Dari fakta diatas dan panah relasi Dari fakta diatas dan panah relasi sebelah kiri, bagaimana cara sebelah kiri, bagaimana cara menuliskan data yang menuliskan data yang menunjukkan hubungan/relasi menunjukkan hubungan/relasi antar tabel pegawai dan antar tabel pegawai dan departemen?departemen?
Konsep Foreign KeyKonsep Foreign Key
Ada 3 alternatif untuk menyimpan data relasiAda 3 alternatif untuk menyimpan data relasi1.1. Membuat tabel baru yang field-fieldnya berisi primari key Membuat tabel baru yang field-fieldnya berisi primari key
kedua tabelkedua tabel2.2. Primary key di tabel pegawai ditempatkan pula pada tabel Primary key di tabel pegawai ditempatkan pula pada tabel
departemendepartemen3.3. Primary key dari tabel departemen ditempatkan pula pada Primary key dari tabel departemen ditempatkan pula pada
tabel pegawaitabel pegawai
Alternatif 1 dan 2 Alternatif 1 dan 2 tidak dipakaitidak dipakai karena mengakibatkan pengulangan karena mengakibatkan pengulangan yang tidak perlu (boros). Alternatif ke-3 dipilih, sehingga struktur yang tidak perlu (boros). Alternatif ke-3 dipilih, sehingga struktur tabelnya menjadi:tabelnya menjadi:
Kolom DEP_Nomor dan Kolom DEP_Nomor dan DEP_Nama pada tabel Pegawai DEP_Nama pada tabel Pegawai disebut dengan disebut dengan foreign keyforeign key, karena , karena diambil dari primary key entitas laindiambil dari primary key entitas lain
Derajat kardinalitas relasi Derajat kardinalitas relasi (Cardinality Ratio)(Cardinality Ratio)
Kardinalitas relasi menunjukkan jumlah Kardinalitas relasi menunjukkan jumlah maksimum data entitas yang dapat berelasi maksimum data entitas yang dapat berelasi dengan entitas lain dengan entitas lain
8lokasi
Pegaw ai Departem en
Proyek
Tanggungan
m em im pin
(0,N)
(0,1)
m enanggung
bekerj apada
(0,N) m engatur
(1,1)
(0,N)
m engepalai(0,1)
bekerj auntuk
Nam a
Nm Depan Inis ial Nm Blk
JenisKel
Alam at Gaj i
NoKTP
Nam aJenisKel TglLahir
Hubungan
Nom or Nam a Lokasi
nam a nom or
TglM ulai
Lam aJam
Jm lPegaw ai
(1,N)(1,1)
(1,1)
(1,N)
(1,N)
(1,1)
ERD PerusahaanERD Perusahaan
Satu ke satu (one to one)Satu ke satu (one to one)
Setiap data pada entitas A berhubungan Setiap data pada entitas A berhubungan dengan maksimal satu data pada entitas B, dengan maksimal satu data pada entitas B, begitu pula sebaliknya begitu pula sebaliknya
Contoh:Contoh:data 1
data 2
data 3
data 4
data 1
data 2
data 3
data 4
Entitas A Entitas B
relasi “mengepalai” antara relasi “mengepalai” antara entitas Pegawai dengan entitas Pegawai dengan entitas Departemenentitas Departemen
Satu ke Banyak (one to many)Satu ke Banyak (one to many)
Setiap data pada entitas A bisa berhubungan Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, tetapi data dengan banyak data pada entitas B, tetapi data pada entitas B berhubungan maksimal hanya pada entitas B berhubungan maksimal hanya dengan sebuah data di A dengan sebuah data di A
Contoh:Contoh:
relasi “menanggung” antara relasi “menanggung” antara entitas pegawai terhadap entitas pegawai terhadap entitas tanggunganentitas tanggungan
Banyak ke Satu (many to one)Banyak ke Satu (many to one)
Merupakan kebalikan dari relasi Merupakan kebalikan dari relasi satu-ke-satu-ke-banyakbanyak
Contoh:Contoh:
relasi “bekerja untuk” pada relasi “bekerja untuk” pada entitas pegawai terhadap entitas entitas pegawai terhadap entitas departemen departemen
data 1
data 2
data 3
data 4
data 1
data 2
data 3
Entitas A Entitas B
Banyak ke banyak Banyak ke banyak (many to many)(many to many)
Setiap data pada entitas A bisa berhubungan Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, demikian dengan banyak data pada entitas B, demikian pula sebaliknyapula sebaliknya
Contoh:Contoh:
relasi “bekerja pada” pada entitas relasi “bekerja pada” pada entitas Pegawai terhadap entitas proyekPegawai terhadap entitas proyek
data 1
data 2
data 3
data 4
data 1
data 2
data 3
data 4
Entitas A Entitas B
Batasan Partisipasi Batasan Partisipasi (Participation Constraint)(Participation Constraint)
Menentukan apakah keberadaan sebuah entitas Menentukan apakah keberadaan sebuah entitas tergantung pada hubungannya ke entitas lain tergantung pada hubungannya ke entitas lain melalui jenis relasinyamelalui jenis relasinya Ada 2 jenis:Ada 2 jenis:
1. 1. Partisipasi TotalPartisipasi Total partisipasi pegawai dalam relasi “bekerja partisipasi pegawai dalam relasi “bekerja untuk”, memberikan arti bahwa setiap data pada pegawai, harus untuk”, memberikan arti bahwa setiap data pada pegawai, harus direlasikan pada sebuah departemen. Atau tidak ada data pegawai direlasikan pada sebuah departemen. Atau tidak ada data pegawai yang tidak berelasi dengan data departemen yang tidak berelasi dengan data departemen
2. 2. Partisipasi sebagianPartisipasi sebagian partisipasi pegawai dalam relasi “mengepalai” partisipasi pegawai dalam relasi “mengepalai” terhadap departemen, tidak setiap data pada pegawai dihubungkan terhadap departemen, tidak setiap data pada pegawai dihubungkan dengan departemen dengan relasi ini. Atau tidak semua pegawai dengan departemen dengan relasi ini. Atau tidak semua pegawai mengepalai departemenmengepalai departemen
Derajat Relasi MinimumDerajat Relasi Minimum
Menunjukkan hubungan (korespondensi) minimum Menunjukkan hubungan (korespondensi) minimum yang boleh terjadi dalam sebuah relasi antar yang boleh terjadi dalam sebuah relasi antar entitas. entitas.
Notasi (x,y) pada relasi menunjukkan derajat Notasi (x,y) pada relasi menunjukkan derajat minimum (x) dan derajat maksimum (y) pada minimum (x) dan derajat maksimum (y) pada sebuah relasi sebuah relasi
Partisipasi total bisa dinotasikan dengan Partisipasi total bisa dinotasikan dengan memberikan derajat relasi minimum (x) = 1 memberikan derajat relasi minimum (x) = 1
Contoh:Contoh:
pada relasi “bekerja untuk” pada entitas pegawai terhadap pada relasi “bekerja untuk” pada entitas pegawai terhadap departemen Derajat relasi minimumnya adalah satudepartemen Derajat relasi minimumnya adalah satu
Notasi lain untuk relasiNotasi lain untuk relasi
Macam relasiMacam relasi
relasi Biner (binary relation)relasi Biner (binary relation) relasi tunggal (unary relation)relasi tunggal (unary relation) relasi Multi entitas (n-ary relation)relasi Multi entitas (n-ary relation) relasi ganda (redundant relation)relasi ganda (redundant relation)
Relasi Biner (Binary Relation)Relasi Biner (Binary Relation)
Merupakan relasi yang terbentuk antar 2 Merupakan relasi yang terbentuk antar 2 buah entitasbuah entitas
Contoh:Contoh:
relasi “bekerja pada” pada entitas pegawai terhadap relasi “bekerja pada” pada entitas pegawai terhadap
entitas proyekentitas proyek
Relasi Tunggal (Unary Relation)Relasi Tunggal (Unary Relation)
Merupakan relasi yang terjadi dari sebuah Merupakan relasi yang terjadi dari sebuah entitas ke entitas yang sama entitas ke entitas yang sama
Contoh:Contoh:
relasi memimpin pada entitas pegawairelasi memimpin pada entitas pegawai
Pegaw ai
m em im pin
(0,N)
(0,1)
Relasi Multi Entitas Relasi Multi Entitas (N-ary Relation)(N-ary Relation)
Merupakan relasi dari 3 buah entitas atau Merupakan relasi dari 3 buah entitas atau lebih. Seharusnya dihindari, karena akan lebih. Seharusnya dihindari, karena akan mengaburkan derajat relasi yang ada dalam mengaburkan derajat relasi yang ada dalam relasi. relasi.
Contoh:Contoh:Instruktur Sem esterM enaw arkan
Kursus
Nam a
NoKursus
Tahun IDSem ester
Relasi Ganda Relasi Ganda (Redundant Relation)(Redundant Relation)
Relasi yang jumlahnya lebih dari satu untuk Relasi yang jumlahnya lebih dari satu untuk dua buah entitas dua buah entitas
Contoh:Contoh:
Pegaw ai Departem en
m engepalai(0,1)
bekerj auntuk (1,N)(1,1)
(1,1)