NORMALISASI DATA
Tujuan :
Mampu membangun desain logika basis data relasional untuk
menghasilkan struktur tabel yang normal.
PrePraktikum
1. Apakah yang anda ketahui tentang normalisasi?
2. Mengapa suatu tabel perlu dinormalisasikan?
3. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.
4. Apa yang disebut dengan bentuk normal?
5. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapat
dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik?
1. Dasar Teori
Normalisasi
Normalisasi merupakan cara pendekatan dalam membangun desain
logika basis data relasional yang tidak secara langsung berkaitan dengan
model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar
untuk meghasilkan struktur tabel yang normal. Pada dasarnya desain logika
basis data relasional dapat menggunakan prinsip normalisasi maupun
transformasi dari model ER ke bentuk fisik.
Pada pembahasan tentang normalisasi data, digunakan istilah baru
yang disebut dengan functinal dependencies atau ketergantungan fungsional.
6
Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A
menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris
data dengan nilai A yang sama, maka nilai B juga sama. Diberikan 2 baris
r1 dan r2 dalam tabel T dimana AB
Jika r1(A)=r2(A), maka r1(B) = r2(B)
Dimisalkan relasi nilai_mhs memiliki empat buah atribut/field yaitu
nama_kul, nim, nama_mhs dan nilai. Maka ketergantungan fungsional
pada relasi tersebut adalah:
a. nim nama_mhs
yang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim.
Hal ini dibuktikan dari fakta: untuk setiap nilai nim yang sama, maka pasti
nilai nama_mhs nya juga sama.
b. nama_kul, nim nilai
yang berarti bahwa atribut nilai tergantung pada atribut nama_kull dan
nim secara bersama-sama. Untuk ketergantungan fungsional seperti ini
sesuai dengan pengertian bahwa setiap nilai diperuntukkan pada
mahasiswa tertentu untuk matakuliah tertentu yang diambil. Dalam arti
lain untuk nama_kul dan nim yang sama, maka nilai juga sama, karena
nama_kul dan nim merupakan key (bersifat unik).
Bentuk-Bentuk Normalisasi
Bentuk-bentuk normal dapat dimanfaatkan untuk memperoleh tabel
dan basis data yang lebih baik.
7
Berikut ini akan dicontohkan normalisasi dari tabel kuliah yang memiliki
atribut:
Kode_kul Nama_kul Sks Smstr Waktu Ruang Nama_d
C1234 Matematika 1 2 1 1 RKB-3 Devie
C1243 Riset Operasi 2 5 1 RKB-1 Rosa
C1342 ADSI 2 3 2 RKB-3 Anamis
Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat
atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel
tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel
kuliah menjadi:
1. Tabel Kuliah
Kode_kul Nama_kul Sks Smstr Nama_dosen
C1234 Matematika 1 2 1 Devie
C1243 Riset Operasi 2 5 Rosa
C1342 ADSI 2 3 Anamisa
2. Tabel Jadwal
Kode_kul Waktu Ruang
C1234 1 RKB-3
C1243 1 RKB-1
C1342 2 RKB-3
Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat
8
redudan yaitu nama_mhs, maka tabel nilai ini dianggap melanggar 2NF.
Primary key pada tabel nilai adalah [kode_kul, nim]. Penambahan atribut baru
(nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru
yaitu nimnama_mhs. Karena atribut nama_mhs ini hanya memiliki
ketergantungan parsial pada primary key secara utuh (hanya tergantung pada
nim, padahal nim hanya bagian dari primary key). Bentuk normal kedua ini
dianggap belum memadai karena meninjau sifat ketergantungan atribut
terhadap primary key saja.
9
Bentuk normal ketiga 3NF dapat dikatakan BCNF karena sudah cukup
memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Sebuah tabel
dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus
dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel
tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-
tabel baru tersebut bisa menghasilkan tabel semula dengan sama
persis.
2. Terpeliharanya ketergantungan fungsional pada saat perubahan data
(Dependency Preservation).
3. Tidak melanggar Boyce-Code Normal Form (BCNF).
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel
tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form /
3NF).
Relasi R dengan ketergantungan fungsional F termasuk dalam bentuk
BCNF jika untuk semua X A yang ada dalam F. Dengan kata lain, R berada
dalam BCNF jika ketergantungan fungsional non-trivial pada R memiliki key
constraint.
2. Kegiatan Praktikum
1. Terdapat suatu bentuk tabel informasi seperti berikut ini :
Tabel 9.1. Informasi Buku
ISBN Judul Halaman Topik
979-533- Basisdata 60 Data Definition Language Data
791-2 Manipulation Language
Data Control Language
11
MODUL III
STRUCTURED QUERY ANGUAGE (SQL)
Tujuan :
1. Memahami tentang sistem database
2. Memahami instalasi MySQL di lingkungan Windows
3. Memahami dasar-dasar MySQL.
Tugas Pendahuluan
1. Apa yang anda ketahui tentang mysql, jelaskan
2. Apa perbedaan instalasi mysql dilingkungan windows dengan
linux
3. sebutkan operator dan fungsi dalam mysql !
1. Dasar Teori
Basis data adalah sekumpalan informasi yang diatur agar mudah dicari.
Dalam arti umum basis data adalah sekumpulan data yang diproses dengan bantuan
komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang
dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi.
Pengertian MYSQL
Database MYSQL merupakan sistem manajemen basis data SQL yang
sangat terkenal dan bersifat Open Source. MySQL dibangun, didistribusikan dan
didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang
dibiayai oleh pengembang MYSQL
Tipe Data
Data yang terdapat dalam sebuah tabel berupa field-field yang berisi nilai
dari data tersebut. Nilai data dalam field memiliki tipe sendiri-sendiri. MYSQL
mengenal beberapa tipe data field yaitu :
Tipe data numerik
1
Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan
floating point. Integer digunakan untuk data bilangan bulat sedangkan floating
point digunakan untuk bilangan desimal.
Tipe data string
String adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data
string dapat dilihat pada tabel 8.1.2.b berikut:
2
Tabel 8.1.2.d Tipe Data Tanggal
Tipe Data Kisaran Nilai Memori
Penyimpanan
DATETIME 1000-01-01 00:00 sampai 9999-12-31 3 byte
23:59:59
DATE 1000-01-01 sampai 9999-12-31 8 byte
TIMESTAMP 1970-01-01 00:00:00 sampai 2037 4 byte
TIME -839:59:59 sampai 838:59:59 3 byte
YEAR 1901 sampai 2155 1 byte
Operator MYSQL
MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi
diantaranya:
Operator Aritmetika
Suatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal
(DATE) menggunakan ekspresi aritmatika. Dapat dilihat pada tabel 8.1.3.a
berikut ini:
Tabel 8.1.3.a Operator aritmatika MYSQL
Operator Keterangan
+ Tambah
- Kurang
* Kali
/ Bagi
Mod () Modulus
Operator Pembandingan
Suatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai
sintax sebagai berikut: WHERE expr operator value. Tabel 8.1.3.b
menunjukan operator pembanding pada MYSQL berikut ini:
Tabel 8.1.3.b Operator Pembanding MYSQL
Operator Keterangan
= Sama Dengan
> Lebih Besar
< Lebih Kecil
>= Lebih Besar atau Sama Dengan
<= Lebih Kecil atau Sama Dengan
<> Tidak Sama Dengan
Operator Logika
Operator ini digunakan untuk membandingkan dua nilai variabel yang bertipe
boolean.
3
Operator Karakter
Operator untuk membentuk pencarian string yang sesuai dengan nilai yang
mencantumkan pada kondisi. Kondisi pencarian dapat berisi karakter , ada 3
symbol khusus berikut ini dapat dilihat pada tabel 8.1.3.d berikut ini:
Tabel 8.1.3.d Tabel Operator Karakter
Operator Keterangan
% Sembarang karakter berapapun jumlahnya
_ Sembarang satu karakter
[] Sembarang karakter yang terletak dalam kurung
siku
Operator Lain-lain
Operator yang digunakan untuk menguji nilai-nilai yang ada dalam list (tanda
kurung) dan dapat juga untuk menampilkan baris berdasarkan suatu jangkauan
(range) nilai. Ada 2 symbol tersebut dapat dilihat pada tabel 8.1.3.e berikut ini:
Tabel 8.1.3.e Operator lain-lain
Operator Keterangan
IN Dalam
BETWEEN Diantara
2. Kegiatan Praktikum :
Instalasi MySQL-5.0.22-WIN32 :
1. Jalankan file setup mysql, yaitu mysql-5.0.22-win32.exe, maka akan muncul
dialog instalasi sebagai berikut :
2. Pilih tombol Next, kemudian muncul dialog tipe instalasi sebagai berikut :
4
3. Pilih Custom, kemudian pilih tombol Next. Kemudian tampil dialog fitur
program sebagai berikut :
4. Klik tanda silang pada Developer Components, kemudian pilih This feature
will be installed on local hard drive seperti gambar berikut :
5
5. Kemudian pilih tombol Change..., pada folder name ubah menjadi sesuai
dengan gambar berikut ini :
6. Pilih OK, kemudian pilih tombol Next, dan pilih tombol Install, maka proses
instalasi dimulai.
6
7. Berikutnya muncul dialog account, pilih Skip Sign-Up dan klik tombol Next,
maka akan muncul dialog sebagai berikut :
8. Klik tombol Finish dan tombol Next, maka akan muncul dialog sebagai
berikut :
7
9. Pilih Standard Configuration dan klik tombol Next, lalu muncul gambar
berikut :
8
10. Pilih tombol Next. Kemudian muncul gambar berikut ini. Masukkan password
yang diinginkan pada kota isian New root password dan Confirm berikut ini
untuk sekuritas, misalnya 123456. Klik tombol Next.
9
Melakukan Koneksi ke MySQL :
Cara 1 :
1. Melalui DOS Prompt, masuk ke direktori utama MySQL dengan cara sebagai
berikut (yang diketik hanya yang digaris bawah) :
C:\>cd \mysql\bin
2. Setelah itu ketikkan perintah berikut (yang diketik hanya yang digaris bawah) :
C:\>mysql\bin\mysql –u root –p
maka akan diminta untuk memasukkan passoword, isikan password yang
digunakan pada saat instalasi, yaitu 123456.
3. Selanjutnya akan ada respon dari server seperti gambar berikut :
10
2. Masukkan password yang telah ditentukan pada saat instalasi, yaitu : 123456
kemudian tekan enter.
Constraint
Constraint adalah batasan atau aturan yang ada pada table.
MySQL menyediakan beberapa tipe constraint berikut :
• NOT NULL
Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh
berisi
nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key)
otomatis tidak boleh NULL.
• UNIQUE
Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu data
dengan data lainnya namanya tidak boleh sama, misal alamat email.
11