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? Hubungan antara suatu himpunan entitas dengan himpunan entitas yang lainnya. Contoh: Relasi antara Mahasiswa dengan kuliah Relasi ‘Mempelajari’
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 Entity-Relationship (Diagram E-R)
Model Entity-Relationship yang berisi komponen Entitas, Relasi dan Atributatribut, digambarkan menggunakan Diagram Entity-Relationship (Diagram E-R).
Notasi Simbolik Diagram E-R
Contoh Relasi Satu ke Satu nama_dos
nama_dos
Dosen
kode_jur
kode_jur
alamat_dos
1
mengepalai
1
nama_jur
Jurusan
Contoh Relasi Satu ke Banyak kode_kul nama_dos
Dosen alamat_dos
nama_kul
nama_dos
1
kode_kul
N
mengajar
waktu
tempat
Kuliah sks
semester
Contoh Relasi Banyak ke Banyak kode_kul nim
nama_mhs
Mahasiswa
nim
N
alamat_mhs
nama_kul kode_kul
mempelajari
Indeks_nilai tgl_lahir
N
Kuliah sks
semester
Contoh Kardinalitas kode_kul nama_dos
Dosen
nama_kul
nama_dos
N
kode_kul
N
mengajar
waktu
Kuliah
tempat
alamat_dos
sks
Diubah dari 1 menjadi N
semester
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 nim
kode_kul
nama_dos
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)
nim
Mahasiswa
nim
kode_kul
kode_kul
mempelajari
Kuliah
mengajar
kode_kul
nama_dos
Dosen
nama_dos
Tahapan 4 Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi. nim
Mahasiswa
nim
N
kode_kul
kode_kul
mempelajari
N
Kuliah
N
mengajar
kode_kul
nama_dos
1
Dosen
nama_dos
Tahapan 5 Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key). nim
kode_kul
nama_kul
nama_dos
nama_mhs nim
Mahasiswa
N
kode_kul
kode_kul
N
mempelajari
Kuliah
N
indeks_nilai
mengajar
waktu
tgl_lahir
nama_dos
1
Dosen
ruang alamat_dos
alamat_mhs
sks
semester
Diagram E-R dengan Kamus Data 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}
Derajat Relasi Minimum Derajat/Kardinalitas Relasi minimum merupakan hubungan (korespondensi) minimum yang boleh terjadi antara himpunan entitas yang satu terhadap himpunan entitas yang lain.
Entitas Kuat
(Strong Entity)
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.
Entitas Lemah (Weak Entity)
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.
Orang Tua
Mahasiswa NIM
Nama Mahasiswa
……
……
Nama Orang Tua
Alamat Orang Tua
672013067
KOMALA M.P.
……
……
Abdul Rahman
Jl. Durian 10, Salatiga
672013153
BRENDA V. A.
……
……
Suparman
Jl. Mentimun 12, Surabaya
682013073
DIAN PUSPA
……
……
Abdul Hasan
Jl. Diponegoro 120, Salatiga
Hobbi Entitas mahasiswa berelasi satu-ke-satu dengan entitas orang tua. Entitas mahasiswa berelasi satu-ke-banyak dengan entitas hobbi
Hobbi Panjat Tebing Panjat Pohon Panjat Tebing Sepakbola Musik Balet Lukis
nim
nama_ ortu
nama_ortu
nim
1
memiliki
Orang Tua
1
nama_mhs
alamat _ortu
Mahasiswa hobbi
nim tgl_lahir
1 menyenangi
N
Hobbi
hobbi
alamat_mhs
Entitas lemah : Orang-Tua dan Hobbi (garis ganda) Atribut/field nama_ortu dan hobbi adalah key yang tidak meyakinkan (tulisan putih)
Sub Entitas
(Subtype Entities) 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.
Sub Entitas
(Subtype Entities) nama_dos
alamat_dos
Dosen
Entitas superior : Dosen Sub entitas : Dosen tetap dan Dosen tidak tetap
IS A nik nama_kantor pangkat
Dosen Tetap
Dosen Tidak Tetap alamat_kantor
tgl_masuk
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.
Relasi Tunggal (Unary Relation)
Relasi Tunggal (Unary Relation) merupakan relasi yang terjadi dari sebuah himpunan entitas ke himpunan entitas yang sama.
Relasi Multi Entitas
(N-ary Relation)
Relasi Multi Entitas (N-ary Relation) merupakan relasi dari 3 (tiga) himpunan entitas atau lebih.
Relasi Ganda
(Redundant Relation)
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
Kunci Alternatif
(Alternate Key)
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).
Kunci Alternatif
(Alternate Key) nama_dos
nim
kode_kul
nama_kul kode_dos
nama_mhs nim
Mahasiswa
N
kode_kul
kode_kul
N
mempelajari
Kuliah
N
indeks_nilai
mengajar
waktu
tgl_lahir
kode_dos
1
Dosen
ruang alamat_dos
alamat_mhs
sks
semester
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 (Sekuensial) 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’.
Pengkodean Internal (Mnemonic) Pengkodean dilakukan dengan membentuk suatu singkatan dari data yang ingin dikodekan, misalnya data jenis-kelamin ('Laki-laki' dan 'Perempuan') dikodekan dengan 'L' dan 'P'.
Pengkodean Internal (Blok) 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.
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/Vertikal Dekomposisi ini dilakukan dengan cara membagi sebuah himpunan entitas menjadi dua atau lebih dengan pemisahan atribut.
Dekomposisi atribut (dekomposisi vertikal)
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).
Fleksibilitas
Mau bertanya..?