Kamis, 09 Maret 2017

One-to-One, One-to-Many Table Relationships in SQL Server

SEJARAH ERD
Model Entity Relationship diperkenalkan pertama kali oleh P.P. Chen  pada tahun 1976. ERD ini dirancang untuk menggambarkan persepsi dari pemakai  dan berisi obyek-obyek dasar yang disebut entity dan hubungan antar entity-entity tersebut yang disebut relationship.
Data Modeling merupakan cara untuk menyusun dan mengorganisasikan data sehingga dapat digunakan dengan mudah oleh database.  ERD adalah salah satu cara permodelan data (data modeling).



Apakah yang dimaksud dengan Entity Relationship Diagram (ERD)?
Sebuah  ERD menggambarkan data dalam konteks entitas dan hubungannya. Tujuan utama dari sebuah ERD adalah untuk mendokumentasikan struktur logis dari database.


Elemen-elemen ERD:
1. Entity (Entitas)
Entity (entitas) adalah sesuatu apa saja yang ada di dalam sistem, nyata maupun abstrak di mana data tersimpan atau di mana terdapat data.
Entitas diberi nama dengan kata benda dan dapat dikelompokkan dalam 4 (empat) kelas, yaitu: role (peran), events (kejadian), locations (lokasi), tangible things / concepts(sesuatu yang tidak nyata / konsep). Contoh: pegawai, pembelian, kampus, buku, pembayaran. Contoh detil dari suatu entity (entitas) disebut instance. Contoh: pegawai bernama Dodo, Noni, Citra, dll…
2. Relationship
Relationship adalah hubungan alamiah yang terjadi antara entitas. Contohnya: Entitas Mahasiswa dengan NIM = “14534” dan NamaMhs = “Dodo” yang mempunyai relasi dengan Entitas Kuliah dengan KodeKul = “SI-140” dan NamaMK = “Basis Data”, sehingga struktur data dari Relasi ini bahwa mahasiswa tersebut mengambil mata kuliah pada suatu perguruan tinggi.
Hubungan antara entitas akan menyangkut dua komponen yang menyatakan jalinan ikatan yang terjadi, yaitu: derajat (kardinalitas) dan partisipasi hubungan.
3. Atribut

Deskripsi kelompok data yang mempunyai karakteristik yang sama (data yang mendeksripsikan entity dan relationship), merupakan field yang akan disimpan.

SINGLE-VALUED ATTRIBUTE (Atribut Bernilai Tunggal)
Atribut Bernilai Tunggal ditujukan pada atribut-atribut yang memiliki paling banyak satu nilai untuk setiap baris data.
Contoh:
Pada tabel Mahasiswa, NIM, NmMhs (Nama Mahasiswa) dan AlmtMhs (Alamat Mahasiswa), merupakan atribut bernilai tunggal, karena atribut-atribut tersebut hanya dapat berisikan satu nilai.


MULTI-VALUED ATTRIBUTE (Atribut Bernilai Banyak)
Atribut bernilai banyak ditujukan pada atribut-atribut yang dapat kita isi dengan lebih dari satu nilai, tetapi jenisnya sama.
Contoh:
Atribut hobby pada tabel Mahasiswa, termasuk atribut bernilai banyak, karena kecenderungan seorang mahasiswa memiliki lebih dari satu hobby.


DERIVED ATTRIBUTE (Atribut Turunan)
Atribut Turunan adalah atribut yang nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut atau tabel lain yang berhubungan.
SIMPLE ATTRIBUTE (Atribut Sederhana) dan COMPOSITE ATTRIBUTE (Atribut Komposit)
Atribut Sederhana adalah atribut atomik yang tidak dapat dipilah lagi, sedangkan atribut komposit merupakan atribut yang masih dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna.
KARDINALITAS & PARTISIPASI
1. Cardinality (kardinalitas) menyatakan jumlah anggota entitas yang terlibat di dalam relasi yang terjadi. Dalam hal ini relasi yang terjadi akan membentuk relasi hubungan (relationship instances). Contoh:
a.     Seorang dosen paling banyak mengepalai satu jurusan, tetapi ada dosen yang tidak menjadi ketua jurusan >>relasi one to one (relasi 1:1)
b.     Seorang dosen bisa menerima honor beberapa kali, tetapi mungkin juga tidak menerima honor jika ia tidak mengajar>>relasi one to many (relasi 1:M) 
c.     Seorang customer dapat membeli beberapa barang dan sebuah barang dapat dibeli oleh beberapa customer >>relasi many to many (relasi M:N)

Pasangan antara anggota entitas A dan B dapat dilakukan sesuai dengan derajat hubungannya, yaitu relasi 1:1, 1:M atau relasi M:N
A. Derajat hubungan 1:1
Derajat hubungan 1:1 terjadi bila setiap anggota entitas A hanya boleh berpasangan dengan satu anggota dari entitas B, dan sebaliknya tiap anggota entitas B hanya boleh berpasangan dengan satu anggota dari entitas A.
E-R diagram antara entitas A dan B dengan derajat hubungan 1:1 dilukiskan dengan mencantumkan pada garis hubungan. Sedangkan instance hubungan antar anggota entitas yang terjadi adalah pasangan a2 – b1, a3 – b2 dan a4 – b5. Sedangkan a1, a5, b3 dan b4 masing-masing tidak mempunyai pasangan. Dengan demikian dapat dikatakan bahwa derajat hubungan 1:1 mencakup juga 1:0 dan 0:1



B. Derajat hubungan 1: M
Derajat hubungan ini terjadi bila tiap anggota entitas A boleh berpasangan dengan lebih dari satu anggota entitas B. Sebaliknya tiap anggota entitas B hanya boleh berpasangan dengan satu anggota entitas A.
C.Derajat hubungan M : N
Derajat hubungan antar entitas m:n terjadi bila tiap anggota entitas A dapat berpasangan dengan lebih dari satu anggota entitas B. Sebaliknya setiap anggota entitas B juga dapat berpasangan dengan lebih dari satu anggota entitas A.
C.Derajat hubungan M : N
Derajat hubungan antar entitas m:n terjadi bila tiap anggota entitas A dapat berpasangan dengan lebih dari satu anggota entitas B. Sebaliknya setiap anggota entitas B juga dapat berpasangan dengan lebih dari satu anggota entitas A.

Contoh Relasi One to One

Setiap dosen paling banyak mengepalai satu jurusan (walau tidak semua dosen mengepalai jurusan). Dan setiap jurusan dikepalai palinng bayak satu dosen.
Mengepalai : Foreign-Key (Kunci Asing) -> penghubung
Contoh Relasi One to Many

Setiap dosen dapat mengajar lebih dari satu mata kuliah, sedangkan setiap mata kuliah diajar paling banyak satu dosen.
Contoh Relasi Many to Many
Setiap mahasiswa dapat mempelajari banyak mata kuliah dan setiap mata kuliah dapat dipelajari oleh banyak mahasiswa.
Tahapan Pembuatan ERD
}  Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat
}  Menentukan atribut-atribut key dari masing-masing himpunan entitas
}  Mengidentfikasi dan menetapkan seluruh himpunan relasi di antara himpunan entitas-himpunan entitas yang ada beserta foreign key-nya
}  Menentukan derajat/kardinalitas relasi untuk setiap   himpunan relasi
}  Melengkapi himpnan entitas dan himpunan relasi  dengan atribut deskriptif (non key)
CONTOH-CONTOH Kasus
}  Sebuah bank memiliki beberapa cabang di daerah yang berlainan. Masing-masing cabang memiliki pelanggan yang relatif banyak. Sebuah rekening mungkin saja dimiliki oleh beberapa pelanggan dan setiap pelanggan boleh memiliki banyak rekening.

Gambarkan skema ERD dan tabel untuk kasus ini.
Pelanggan (NoPel, Nama, Alamat, Jabatan)
Milik (NoPel, NoAkun)
Akun (NoAkun,  Jumlah, NoCabang)
Cabang (NoCabang, AlamatCabang, Manager),
Transaksi (NoTransaksi, TglTransaksi, Waktu Transaksi, Jumlah Transaksi, JenisTransaksi, NoAkun)


Contoh Kasus 2
Contoh Kasus:
Sebuah perusahaan memiliki beberapa departemen. Setiap departemen terdiri dari seorang supervisor dan paling sedikit satu orang pegawai.
Pegawai dapat bekerja paling tidak di satu departemen, tapi mungkin juga lebih dari satu departemen.
Sedikitnya satu orang pegawai diikutsertakan dalam sebuah proyek, seorang pegawai mungkin berlibur dan tidak diikutsertakan dalam proyek apapun. Field data yang penting adalah nama departemen, proyek, supervisor, dan pegawai, serta no.supervisor, no.pegawai, dan no.proyek sebagai key.
Langkah penciptaan ERD:
1. Identifikasi Entitas
Entitas dalam sistem ini adalah Departemen, Pegawai, Supervisor dan Proyek. Seseorang mungkin saja membuat Perusahaan sebagai sebuah entitas, tetapi ini adalah entitas yang salah, karena hannya memiliki satu instance dalam permasalahan ini. Entitas yang benar harus memiliki lebih dari satu instance.
2. Tentukan Relationship
Matriks Relasi Entitas:

3. Gambar “KASAR” ERD
Kita menghubungkan entitas yang mempunyai relasi seperti yang ditunjukkan pada matriks relasi entitas.
4. Tentukan Kardinalitas
Berdasarkan deskripsi permasalahan, dapat diketahui bahwa:
1.    Setiap Departemen dipimpin oleh satu Supervisor
2.    Seorang Supervisor hanya memimpin satu Departemen
3.    Setiap Departemen memiliki paling sedikit satu Pegawai
4.    Setiap Pegawai bekerja paling sedikit pada satu Departemen
5.    Setiap Proyek paling sedikit melibatkan satu orang Pegawai
6.    Seorang Pegawai dapat terlibat dalam beberapa Proyek atau bahkan tidak sama sekali.
5. Tentukan Kunci utama (Primary-Keys)
Kunci utama (primary keys) adalah Nama Departemen (NmDept), Nomor Supervisor (NoSpv), Nomor Pegawai (NoPeg) dan Nomor Proyek (NoPryk)


 6. Gambar ERD berdasarkan kunci
7. Menentukan Atribut
Atribut yang diperlukan adalah Nama Departemen, Nama Proyek, Nama Supervisor,Nama Pegawai selain Primary Keys.

8. Pemetaan Atribut

9. Gambar ERD dengan Atribut