Desain Sistem Basis Data
1. Struktur Basis Data 2. Normalisasi Data
3. ERD (entity relationship diagram)
Entity/Entitas itu?
orang, tempat, kejadian atau konsep yang informasinya direkam.
Contoh:
– Entitas Mahasiswa.
Relasi itu?
Contoh:
Relasi antara Mahasiswa dengan kuliah Relasi ‘Mempelajari’
Hubungan antara suatu himpunan entitas dengan himpunan entitas yang lainnya.
Kardinalitas / Derajat Relasi
Kardinalitas Relasi menunjukkan
jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain.
Contohnya untuk Kardinalitas Relasi
antara entitas Mahasiswa dengan entitas Matakuliah adalah Banyak ke Banyak
Kardinalitas / Derajat Relasi
Satu ke satu (One to One)
Satu ke banyak (One to Many)
Banyak ke satu (Many to One)
Banyak ke banyak (Many to Many)
Alternative ER Notations
(Diagram E-R)
Diagram Entity-Relationship
Model Entity-Relationship yang berisi komponen Entitas, Relasi dan Atribut-
atribut, digambarkan menggunakan Diagram Entity-Relationship
(Diagram E-R).
Notasi Simbolik Diagram E-R
Dosen
mengepalaiJurusan
nama_dos alamat_dos
nama_dos
kode_jur nama_jur kode_jur
Contoh Relasi Satu ke Satu
1 1
Dosen
mengajarKuliah
nama_dos
alamat_dos
nama_dos
kode_kul
nama_kul kode_kul
Contoh Relasi Satu ke Banyak
1 N
sks
semester
waktu tempat
Mahasiswa
mempelajariKuliah
nim
alamat_mhs
nim
kode_kul
nama_kul kode_kul
Contoh Relasi Banyak ke Banyak
N
sks
semester Indeks_nilai
N nama_mhs
tgl_lahir
Dosen
mengajarKuliah
nama_dos
alamat_dos
nama_dos
kode_kul
nama_kul kode_kul
Contoh Kardinalitas
N N
sks
semester
waktu tempat
Diubah dari 1 menjadiN
Tahapan Pembuatan Diagram E-R
Tahap pembuatan Diagram E-R awal
(preliminary design) rancangan basis data minimal
Tahap optimasi Diagram E-R
(final design) koreksi terhadap tahap pertama (dekomposisi, kardinalitas, penambahan relasi)
Tahapan 1
Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat.
Tahapan 2
Menentukan atribut-atribut key dari masing-masing himpunan entitas kemandiriannya
nama_dos kode_kul
nim
Tahapan 3 (a)
Mengidentifikasi dan menetapkan seluruh himpunan
relasi di antara himpunan entitas-himpunan entitas yang ada beserta foreign key-nya.
Ketepatan dalam menentukan relasi-relasi yang terjadi di antara himpunan entitas, sangat menentukan kualitas rancangan basis data yang dibangun.
Relasi-relasi yang ditetapkan harus dapat : – mengakomodasi semua fakta yang ada
– menjamin semua kebutuhan penyajian data
– dibuat seoptimal mungkin agar tidak memakan ruang penyimpanan yang lebih besar dan tidak menyulitkan operasi pengelolaan data.
Relasi-relasi yang sifatnya tidak langsung harus ditiadakan.
Tahapan 3 (b)
Mahasiswa mempelajari Kuliah
nim nim kode_kul
kode_kul
mengajar
kode_kul nama_dos Dosen nama_dos
Tahapan 4
Mahasiswa mempelajari Kuliah
nim nim kode_kul
kode_kul
mengajar
kode_kul nama_dos Dosen nama_dos
Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi.
N N N 1
Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key).
Tahapan 5
Mahasiswa mempelajari Kuliah
nim
kode_kul
mengajar
waktu ruang
Dosen
N N N 1
nama_mhs
tgl_lahir
alamat_mhs
indeks_nilai
semester nim
kode_kul nama_kul
kode_kul
sks
nama_dos
nama_dos
alamat_dos
Mahasiswa N mempelajari N Kuliah N mengajar 1 Dosen
Kamus Data:
Mahasiswa = {nim, nama_mhs, alamat_mhs, tgl_lahir}
Kuliah = {kode kul, nama_kul, sks, semester}
Dosen = {nama_dos, alamat dos}
mempelajari = {nim, kode_kul, indeks_nilai}
mengajar = {kode_kul, nama dos, waktu, tempat}
Diagram E-R dengan Kamus Data
Derajat/Kardinalitas Relasi minimum merupakan hubungan (korespondensi) minimum yang boleh terjadi antara himpunan entitas yang satu
terhadap himpunan entitas yang lain.
Derajat Relasi Minimum
(Strong Entity)
Entitas Kuat
Tidak memiliki ketergantungan dengan
himpunan entitas lainnya atau dapat berdiri sendiri, contoh Himpunan Entitas Mahasiswa, Dosen dan Kuliah.
Kemunculan entitas-entitas di dalamnya tidak tergantung pada keberadaan entitas di
himpunan entitas yang lain.
Bukan merupakan bagian (sub) dari himpunan entitas yang lain.
(Weak Entity)
Entitas Lemah
Entitas-entitas yang kemunculannya
tergantung pada eksistensinya dalam sebuah relasi terhadap entitas lain (Strong Entity).
Himpunan entitas yang demikian biasanya tidak memiliki atribut yang dapat berfungsi sebagai key, yang benar-benar dapat
menjamin keunikan entitas di dalamnya.
Contoh, untuk melengkapi data mahasiswa kita juga ingin mengelola data hobbi dan
orang tua.
NIM Nama Mahasiswa …… ……
672013067 KOMALA M.P. …… ……
672013153 BRENDA V. A. …… ……
682013073 DIAN PUSPA …… ……
Mahasiswa
Nama Orang Tua Alamat Orang Tua Abdul Rahman Jl. Durian 10, Salatiga Suparman Jl. Mentimun 12, Surabaya Abdul Hasan Jl. Diponegoro 120, Salatiga
Orang Tua
Hobbi
Panjat Tebing Panjat Pohon Panjat Tebing Sepakbola Musik Balet Lukis
Hobbi
Entitas mahasiswa berelasi satu-ke-satu
dengan entitas orang tua.
Entitas mahasiswa
berelasi satu-ke-banyak dengan entitas hobbi
Mahasiswa
Orang Tua memiliki
nim
nama_ortu
menyenangi Hobbi
nama_mhs 1
tgl_lahir
alamat_mhs
nim
1
hobbi nim
hobbi
N
alamat _ortu
1
nama_
ortu
Entitas lemah : Orang-Tua dan Hobbi (garis ganda)
Atribut/field nama_ortu dan hobbi adalah key yang tidak meyakinkan (tulisan putih)
(Subtype Entities)
Sub Entitas
Sub Entitas merupakan himpunan entitas yang beranggotakan entitas-entitas yang merupakan bagian dari himpunan entitas yang lebih superior/utama.
Sub Entitas ini merupakan hasil dekomposisi (spesialisasi) himpunan entitas berdasarkan pengelompokkan tertentu dari himpunan
entitas yang lain.
Dosen
nama_dos alamat_dos
(Subtype Entities)
Sub Entitas
IS A
Dosen Tetap Dosen Tidak Tetap nik
pangkat
tgl_masuk
nama_kantor
alamat_kantor
Entitas superior : Dosen
Sub entitas : Dosen tetap dan Dosen tidak tetap
Varian Relasi
Relasi yang terjadi di antara dua himpunan entitas yang berbeda disebut sebagai
Relasi Biner (Binary Relation), yang merupakan relasi yang paling umum digunakan.
Relasi yang hanya melibatkan sebuah himpunan entitas atau lebih dari dua himpunan entitas.
(Unary Relation)
Relasi Tunggal
Relasi Tunggal (Unary Relation) merupakan relasi yang terjadi dari sebuah himpunan entitas ke himpunan entitas yang sama.
(N-ary Relation)
Relasi Multi Entitas
Relasi Multi Entitas (N-ary Relation) merupakan relasi dari 3 (tiga)
himpunan entitas atau lebih.
(Redundant Relation)
Relasi Ganda
Relasi Ganda(Redundant Relation) merupakan relasi yang muncul
lebih dari satu antara dua himpunan entitas.
Spesialisasi
Proses dari sebuah entitas, lalu
dikelompokkan berdasarkan atribut-atribut yang berbeda, yang melahirkan himpunan entitas baru (proses top-down).
Yang ditekankan dalam spesialisasi
adalah perbedaan antar kelompok entitas.
Notasi relasi yang digunakan adalah Relasi ISA (berasal dari kata ‘Is A’)
Spesialisasi
(Top-Down)
Generalisasi
Proses dari sebuah entitas, lalu
dikelompokkan berdasarkan atribut-atribut yang sama, yang melahirkan himpunan
entitas baru (proses bottom-up).
Yang ditekankan dalam generalisasi adalah persamaan antar kelompok entitas.
Notasi relasi yang digunakan adalah Relasi ISA (berasal dari kata ‘Is A’)
Generalisasi
(Bottom-Up)
Agregasi
Dalam realitas dapat pula dijumpai adanya relasi yang secara kronologis
mensyaratkan telah adanya relasi lain.
Dengan kata lain, sebuah relasi terbentuk tidak hanya dari entitas tapi juga
mengandung unsur dari relasi lain.
Fenomena demikian dapat diakomodasi dengan Agregasi.
Agregasi
Modifikasi Diagram E-R
Modifikasi/perubahan Diagram E-R mengarah pada penyempurnaan dan optimasi model data karena pertimbangan-pertimbangan efisiensi ruang atau kecepatan dan kemudahan pengaksesan data.
Kunci Alternatif (Alternate Key)
Pengkodean Internal (Coding)
Dekomposisi Himpunan Entitas dan Normalisasi
(Alternate Key)
Kunci Alternatif
Sebuah key dapat dikategorikan baik, jika:
berukuran kecil dan Sekuensial.
Key pada himpunan entitas Dosen
merupakan key yang buruk, karena selain panjang juga nilai-nilainya bebas dan tidak sepenuhnya dapat menjamin keunikan
(karena walaupun kecil kemungkinannya, bisa saja ada dua orang dosen atau lebih dengan nama dan gelar yang tepat sama).
(Alternate Key)
Kunci Alternatif
Mahasiswa mempelajari Kuliah
nim
kode_kul
mengajar
waktu ruang
Dosen
N N N 1
nama_mhs
tgl_lahir
alamat_mhs
indeks_nilai
semester nim
kode_kul nama_kul
kode_kul
sks
kode_dos
nama_dos
alamat_dos kode_dos
Pengkodean Internal
Salah satu alasan mengapa menyatakan
suatu data (atribut) dalam bentuk lain adalah untuk efisiensi ruang penyimpanan.
Dan cara yang ditempuh untuk menyatakan suatu data dalam bentuk lain itu adalah
melalui pengkodean (data coding).
Sekuensial
Mnemonic
Blok
Pengkodean Internal
Pengkodean dilakukan dengan membentuk suatu singkatan dari data yang ingin dikodekan, misalnya data jenis-kelamin
('Laki-laki' dan 'Perempuan') dikodekan dengan 'L' dan 'P'.
(Mnemonic)
Pengkodean Internal
Pengkodean dinyatakan dalam format tertentu, misalnya data no. induk mahasiswa dengan format XXYYYY yang terbentuk atas XX=dua dijit terakhir angka tahun masuk dan YYYY=no.urut mahasiswa.
(Blok)
Pengkodean Internal
Pengkodean dilakukan dengan mengasosiasikan data dengan kode terurut (biasanya berupa bilangan asli atau abjad), misalnya data nilai mata kuliah ('Sempurna', 'Baik', 'Cukup', 'Kurang', 'Buruk') dikodekan dengan 'A', 'B', 'C', 'D' dan 'E’.
(Sekuensial)
Pengkodean Internal
Data agama tanpa pengkodean
Data agama dengan pengkodean dan himpunan entitas untuk referensi
Dekomposisi Himpunan Entitas dan Normalisasi
Sebuah himpunan entitas yang ada dalam sebuah Diagram E-R dapat didekomposisi menjadi beberapa himpunan entitas baru karena:
• Pertimbangan efisiensi ruang penyimpanan,
• Pertimbangan kemudahan/kecepatan,
• Pengaksesan data.
Upaya dekomposisi ini senantiasa akan menghasilkan :
• Satu himpunan entitas kuat (strong entity set)
• Satu atau beberapa himpunan entitas lemah atau sub entitas.
Ada dua bentuk dekomposisi himpunan entitas, yaitu:
• Dekomposisi Atribut/Vertikal
• Dekomposisi Entitas/Horisontal
Dekomposisi atribut (dekomposisi vertikal)
Dekomposisi Atribut/Vertikal
Dekomposisi ini dilakukan dengan cara membagi sebuah himpunan entitas menjadi dua atau lebih dengan pemisahan atribut.
Dekomposisi Entitas/Horisontal
Dekomposisi ini dilakukan dengan cara
membagi sebuah himpunan entitas menjadi dua atau lebih dengan pemisahan entitas.
Fleksibilitas
Fleksibilitas dalam desain basis data dapat direalisasikan dalam bentuk:
Penambahan atribut.
Pemilihan domain atribut yang lebih luas (direalisasikan pada tahap implementasi).
Generalisasi.
Perubahan struktur entitas dari yang berorientasi kolom (column-oriented)
menjadi berorientasi baris (row-oriented).