Pd
Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data. Dalam merancang basis data, kita dapat melakukannya dengan :
1. Menerapkan normalisasi pada struktur table yang telah diketahui. 2. Langsung membuat model ER (Entity Relationship)
Upaya pembentukan basis data yang baik akan bisa lebih mudah jika dilakukan dengan lebih dahulu membuat perencanaan basis data. Bagaimana upaca/cara yang baik itu melalui perencanaan basis data yang akan dibahas lebih mendalam dalam materi-materi selanjutnya. Perencanaan basis data dilaksanakan dengan menerapkan sejumlah teori terhadap data (fakta) yang telah dimiliki yang salah satunya adalah penerapan NORMALISASI DATA
Tabel Mahasiswa
NIM 10.02.0001 10.02.0002 10.02.0003 10.02.0004 10.02.0005 10.02.0006 10.02.0007 10.02.0008 Nama Mahasiswa Tri Apsari Pramudita Eliana Susanti Putu Septiana Putra Gede Agus Pradipta Tri Martini Putu Eka Dharma A.A. Gede Ngurah Gst Ayu Laksmi Alamat Mahasiswa Jl. Merdeka 10 Jl. Tunjung 23 Jl. Melati 30 Jl. Tamrin 19 Komp. Griya Asri D-2 Perum Dalung Permai D3 Jl. Sultan Agung 50 Jl. Hasanudin 25 Tgl. Lahir 2 Januari 1991 3 Maret 1990 7 Agustus 1991 29 Juni 1991 13 Mei 1990 6 Oktober 1991 7 Juli 1990 8 Juni 1990
10.02.0009
12 Sept 1990
Data Dosen
Nam Dosen Ir. Taufik Ismail Alamat Dosen Perum Dosen Griya Asri C-5 Semarapura
Data Nilai
Mata Kuliah NIM Nama Mahasiswa Index Nilai
Struktur Data
Struktur Data
10.02.0001
10.02.0002
A
A
Struktur Data
Basis Data
10.02.0003
10.02.0004
Basis Data
Bahasa Indonesia Pemrograman Visual Pemrograman Visual
10.02.0005
10.02.0006 10.02.0001 10.02.0004
Tri Martini
Putu Eka Dharma Tri Apsari Pramudita Gede Agus Pradipta B C C
Data Jadwal
Mata Kuliah Basis Data Bahasa Inggris Pemrograman Visual Analisis dan Desain Sistem Waktu Senin, 08.00 09.40 dan Kamis, 11.00 11.50 Selasa, 10.00 11.40 dan Jumat, 08.00 09.40 Rabu, 13.00 14.40 dan Jumat 14.00-15.50 Rabu, 09.00 15.50 Tempat Ruang A Ruang B Ruang C Ruang A Nama Dosen Ir. Taufik Ismail Dewi Sundari, S.Pd Dra Yuni Patmasari, M.Pd Dr. I Gede Bagus Pratama
Dari 5 table di atas, masing-masing table memiliki field / atribut sebagai key, dan lainnya sebagai atribut deskriptif. Ada pula atribut yang tergolong atribut sederhana atau komposit dan lainnya.
Super Key
Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi Bisa terjadi, ada lebih dari 1 kumpulan atribut yang bersifat seperti itu pada sebuah table. Contoh : pada tabel Mahasiswa yang memiliki 4 buah field / atribut tersebut, yang dapat menjadi superkey adalah:
nim, nama_mahasiswa, alamat_mahasiswa, dan tgl_lahir nim, nama_mahasiswa, alamat_mahasiswa nim, nama_mahasiswa nim nama_mahasiswa
Candidate key
merupakan kumpulan field / atribut minimal yang dapat membedakan setiap baris data dalam sebuah table secara unik. Sebuah Candidate-key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain. Jadi sebuah Candidate-key pasti superkey, tapi belum tentu sebaliknya Contoh :
nim nama_mahasiswa, jika kita bisa menjamin tidak ada nilai yang sama untuk atribut ini.
Pada sebuah table dimungkinkan ada lebih dari satu Candidate-key, seperti contoh diatas. Salah satu dari Candidatekey ini (jika memang lebih dari satu) dapat dijadikan sebagai Key Primer (Primary key).
Primary Key
Primary_key adalah candidate-key yang dipilih untuk mengidentifikasi tupel secara unik pada suatu relasi. Kunci utama dapat terbentuk dari satu atribut atau lebih. Pemilihan Key Primer dari sejumlah Candidate-key pada suatu table didasari pada ketiga hal berikut ini:
Key tersebut lebih sering (natural) untuk dijadikan acuan. Key tersebut lebih ringkas. Jaminan keunikan Key tersebut lebih baik.
Dengan pertimbangan tersebut, kedua Candidate-key pada table Mahasiswa, yaitu nim dan nama_mahasiswa, yang lebih cocok sebagai Key Primer adalah (nid). Hal ini dikarenakan bahwa jaminan keunikan daripada nid (nomor induk dosen) akan terjamin karena karena setiap nid pada suatu perguruan tinggi pastinya tidak akan sama nilainya, sedangkan kenapa tidak memilih nama_d, karena nama_d kemungkinan ada yang sama nilainya.
Foreign-Key
adalah satu atribut (satu set atribut) yang melengkapi satu relationship (hubungan) yang menunjukkan ke induknya. Foreign key ditempatkan pada relasi anak dan sama dengan primary key induk direlasikan. Hubungan antara relasi induk dengan anak adalah satu lawan banyak (one to many relationship)
Atribut Deskriptif
Atribut-atribut yang tidak menjadi atau merupakan anggota primary key Misalnya dalam tabel mahasiswa, atribut seperti : nama_mahasiswa, alamat_mahasiswa, dan tgl_lahir digolongkan sebagai atribut deskriptif
... ...
Nim
Nama_mahasiswa
hobi
Sepakbola, voli, berenang, membaca Menari
Jl. Tunjung 23
3 Maret 1990
10.02.0002 ...
...
...
Musik, memancing
Atribut bernilai banyak Tempat Ruang A .... Ruang B .... Ruang C .... Nama Dosen
Selasa, 10.00 11.40 dan Jumat, 08.00 09.40 Rabu, 13.00 14.40 dan Jumat 14.00-15.50
10.02.00 02
10.02.00 03 ... 10.02.00. 05
Eliana Susanti
Putu Septiana Putra ... Abdulah
Menari
Musik, memancing ... <null>
Nilai NULL
Contoh (1)
Misal Data Mahasiswa sbb :
Atau
Contoh (2)
Dekomposisi menjadi :
Tabel Mahasiswa :
Tabel Hobi :
Contoh (1)
Tabel berikut ini memenuhi 1NF, tetapi tidak termasuk 2NF
Contoh (2)
Tidak memenuhi 2NF, karena {NIM, KodeMk} yang dianggap sebagai primary key sedangkan:
{NIM, KodeMk} NamaMhs {NIM, KodeMk} Alamat {NIM, KodeMk} Matakuliah {NIM, KodeMk} Sks {NIM, KodeMk} NilaiHuruf
Tabel tersebut perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Contoh (3)
Functional dependencynya sbb:
{NIM, KodeMk} NilaiHuruf (fd1) NIM {NamaMhs, Alamat} (fd2) KodeMk {Matakuliah, Sks} (fd3)
Sehingga :
fd1 (NIM, KodeMk, NilaiHuruf) Tabel Nilai fd2 (NIM, NamaMhs, Alamat) Tabel Mahasiswa fd3 (KodeMk, Matakuliah, Sks) Tabel MataKuliah
Ketergantungan fungsional X Y dalam relasi R dikatakan bergantung transitif jika terdapat kumpulan atribut Z himpunan primary key R sehingga X Z dan Z Y.
Contoh (1)
Tabel mahasis berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF
Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) : KodePos {Kota, Provinsi}
Contoh (2)
Sehingga tabel tersebut perlu didekomposisi menjadi :
Mahasiswa (NIM, NamaMhs, Jalan, KodePos) KodePos (KodePos, Provinsi, Kota)
Latihan
Berikut ini contoh basis data yang belum ternormalisasi :
Masalah :
Tidak perlu berulang-ulang kali menyimpan data alamat, nama barang, dan harga. Redundancy dapat menimbulkan masalah, yaitu data yang tidak konsisten (pensile)