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 kode_jur nama_dos alamat_dos kode_jur nama_jur Dosen 1 1 mengepalai Jurusan
Contoh Relasi Satu ke Banyak kode_kul nama_dos nama_dos kode_kul nama_kul Dosen 1 N mengajar Kuliah alamat_dos waktu tempat sks semester
Contoh Relasi Banyak ke Banyak kode_kul nim nama_mhs nim kode_kul nama_kul Mahasiswa N mempelajari N Kuliah alamat_mhs tgl_lahir Indeks_nilai sks semester
Contoh Kardinalitas kode_kul nama_dos nama_dos kode_kul nama_kul Dosen N mengajar N Kuliah alamat_dos waktu tempat sks semester Diubah dari 1 menjadi N
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 nim kode_kul kode_kul nama_dos Mahasiswa mempelajari Kuliah mengajar Dosen kode_kul nama_dos
Tahapan 4 Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi. nim nim kode_kul kode_kul nama_dos Mahasiswa N N N 1 mempelajari Kuliah mengajar Dosen kode_kul nama_dos
Tahapan 5 Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key). nim nama_mhs kode_kul nama_kul nama_dos nim kode_kul kode_kul nama_dos Mahasiswa N N N 1 mempelajari Kuliah mengajar Dosen indeks_nilai waktu ruang tgl_lahir alamat_mhs sks semester alamat_dos
Diagram E-R dengan Kamus Data Mahasiswa N N N 1 mempelajari Kuliah mengajar 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.
Mahasiswa NIM Nama Mahasiswa Orang Tua Nama Orang Tua Alamat Orang Tua 672013067 KOMALA M.P. 672013153 BRENDA V. A. 682013073 DIAN PUSPA Abdul Rahman Suparman Abdul Hasan Jl. Durian 10, Salatiga Jl. Mentimun 12, Surabaya Jl. Diponegoro 120, Salatiga Entitas mahasiswa berelasi satu-ke-satu dengan entitas orang tua. Entitas mahasiswa berelasi satu-ke-banyak dengan entitas hobbi Hobbi Hobbi Panjat Tebing Panjat Pohon Panjat Tebing Sepakbola Musik Balet Lukis
nim nama_ortu nama_ ortu nim memiliki 1 Orang Tua nama_mhs 1 Mahasiswa alamat _ortu tgl_lahir alamat_mhs 1 nim menyenangi hobbi N Hobbi hobbi 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 nama_mhs kode_kul nama_kul kode_dos nim kode_kul kode_kul kode_dos Mahasiswa N N N 1 mempelajari Kuliah mengajar Dosen indeks_nilai waktu ruang tgl_lahir alamat_mhs sks semester alamat_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 (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 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. (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..?