SiregarBox Hideout


Normalisasi dalam Database
Juli 4, 2008, 1:12 am
Diarsipkan di bawah: MySQL | Tag: ,

Apa sih normalisasi itu?? Apa fungsinya?? Gimana caranya?? Eitss satu-satu donk! Sekarang saya akan mencoba untuk menjelaskan tentang ‘Normalisasi dalam Database’. Normalisasi itu teknik untuk mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik(tanpa adanya redudansi). Normalisasi dalam suatu database biasanya hanya mencapai N3(Normalisasi Ketiga), berikut adalah urutan Normalisasi :

1. N1(Normalisasi Pertama)
Mempunyai aturan
~Mendefinisikan primary key
~Tidak ada grup yang berulang
~Semua non-primary key bergantung pada primary key
2. N2(Normalisasi Kedua)
Mempunyai aturan
~Memenuhi aturan N1
~Tidak ada ketergantungan parsial
3. N3(Normalisasi Ketiga)
Mempunyai aturan
~Memenuhi aturan N2
~Tidak ada ketergantungan transitif

Sebagai tambahan normal dalam suatu database seharusnya mencapai bentuk normal tertinggi dan bergerak dari bentuk normal satu dan seterusnya untuk setiap kali membatasi hanya satu jenis redudansi. Jumlah normalisasi seluruhnya ada 5(Lima) dimana 3 bentuk normal pertama menekankan redudansi yang muncul dari Function Dependencies sedangkan N4 dan N5 menekankan redudansi yang muncul dari kasus Multi Valued Dependencies.

Berikut adalah cara singkat melakukan normalisasi
1. Normalisasi Pertama a.k.a N1
Hilangkan duplikasi dengan mencari ketergantungan parsial
2. Normalisasi Kedua a.k.a N2
Field-field yang tergantung pada satu field harus dipisah dengan tepat
3. Normalisasi Ketiga a.k.a N3
Cari hubungan transitif(transitive relation) dimana field non key tergantung pada field non key lainnya

Tabel yang sudah mencapai N3 sudah siap untuk diimplementasikan dalam sebuah proyek, sebenarnya masih ada bentuk normalisasi yang lain yaitu Normalisasi  Boyce-Codd dan N4. Jadi sebelum membuat suatu project normalisasikanlah database-mu.

Happy Learning!!



User Interface Buat MySQL
Juli 2, 2008, 9:30 pm
Diarsipkan di bawah: MySQL | Tag: , ,

User interface untuk MySQL sebenarnya ada banyak tapi kali ini saya mau ngomongin antara PHPMyAdmin ama MySQL-Front. Antara dua user interface tersebut mana yang paling banyak di pakai saya tidak tahu, tapi yang jelas saya pakai MySQL-Front. Perbedaan mendasar dari dua program tersebut adalah :
~PHPMyAdmin itu web based jadi musti install Apache, PHP, ama MySQL-nya di PC kita(ada paket dalam XAMPP)
~MySQL-Front itu desktop based jadi cukup install MySQL, ama MySQL-Front aja di PC kita
~Dua-duanya bisa dijalankan dari network
~MySQL-Front mendukung protokol ‘mysql://<nama host>:<port>’
~MySQL-Front mendukung SSH dan PHP Tunnel
~Dan masih banyak lagi

Pada dasarnya MySQL-Front itu shareware sedangkan PHPMyAdmin itu freeware, tapi selama masa trial-nya MySQL-Front tidak mengurangi kemampuan software itu sendiri dalam artian tidak ada fitur yang tidak bekerja. Kalau ada yang punya GUI untuk MySQL yang bagus bisa sharing donk !!

Happy Learning!



Sun dan MySQL
Juli 1, 2008, 12:17 pm
Diarsipkan di bawah: MySQL | Tag: , ,

Sejak MySQL disikat ama Sun Microsystem kok jadi banyak versinya ya???. Menurut beberapa sumber info(terutama dari forum-forum yang bertebaran di internet ini) MySQL yang sekarang berbeda jauh ama MySQL yang dulu.
MySQL sekarang sudah memiliki yang versi berbayar dan closed source walaupun untuk versi gratisan dan open source-nya masih ada. Menurut beberapa orang Sun adalah perusahaan yang memiliki reputasi buruk dalam bidang open source, tapi si Java kan Open Source juga dan Sun juga tetap membuat versi free dari MySQL.
Atas dasar inilah banyak programmer yang berganti haluan dari pengguna MySQL menjadi pengguna PostGreSQL, SQLite, ato database lain yang menurut mereka masih free dan juga memiliki integritas yang kuat. Pada dasarnya kalo menurut saya sih untuk belajar Java mendingan kita pake produk yang nyata-nyata berasal dari perusahaan yang sama jadi kalo mau complain ato cari support kan gampang tuh.
Dulu waktu pertama kali belajar SQL statement ama anak-anak yang lain juga gitu bingung mau pake apa, dulu pilihannya sih postgresql, mysql, sequel dll tapi dianjurin pake mysql ama orang-orang php makanya sampe sekarang lebih seneng ama mysql-nya. Lagian nanti pemakai program kan gak nanya macem-macem tentang software yang kita pakai itu.
Jadi dalam developing software itu kita yang nentuin mau pake apa? MySQL ato PostGreSQL? ato yang lain?. Tapi buat gue yang sudah jadi javaholic jadi lebih suka pake MySQL-nya Sun(yang gratis tentunya hehehe….).

Be yourself in way of programming!



Java and MySQL
Juli 1, 2008, 5:47 am
Diarsipkan di bawah: MySQL

Konekin Java ke MySQL

Bagi saya saat pertama belajar Java pertanyaan yang muncul pertama adalah “Gimana Konekin ke MySQl-nya yah??”. Sekarang setelah belajar java selama 2 minggu akhirnya ngerti tentang cara konekin MySQL dengan Java. Pada dasarnya sih sama aja kayak di PHP dulu bikin file yang bisa dipanggil untuk kebutuhan koneksinya contoh source nya seperti dibawah ini :

package koper.db;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import javax.swing.JOptionPane;

public class Koneksi {
private static Connection pConn;
private Koneksi() throws SQLException, IOException{}

public static Connection getConnection() throws SQLException, IOException{
if (pConn == null){
try {
pConn = createConnection();
} catch (com.mysql.jdbc.CommunicationsException ce){
JOptionPane.showMessageDialog(null, “Database Server Mati atau Tidak Ditemukan”);
System.exit(0);
}
}return pConn;
}

public static void closeConnection() throws SQLException, IOException{
pConn.close();
}

public static void releaseConnection() throws SQLException, IOException{
pConn.close();
pConn = null;
}

public static void commitConnection() throws SQLException, IOException{
pConn.commit();
}

public static void rollbackConnection() throws SQLException, IOException{
pConn.rollback();
}

private static Connection createConnection() throws SQLException, IOException{
Properties prop = new Properties();
FileInputStream in = new FileInputStream(“prop/database.properties”);
prop.load(in);
in.close();

String drivers = prop.getProperty(“jdbc.drivers”);
if (drivers != null)
System.setProperty(“jdbc.drivers”, drivers);
String url = prop.getProperty(“jdbc.url”);
String server = prop.getProperty(“jdbc.server”);
String db = prop.getProperty(“jdbc.db”);
String username = prop.getProperty(“jdbc.username”);
String password = prop.getProperty(“jdbc.password”);
String s = url + “//” + server + “/” + db + “?user=” + username
+ “&password=” + password;

return DriverManager.getConnection(s);

}

}
dari source diatas untuk mengubah nama database dan juga user en password kita cukup ganti aja di file yang ada di folder prop yaitu file database.properties isinya kurang lebih

jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:
jdbc.server=localhost
jdbc.db=koper
jdbc.username=root
jdbc.password=root

udah deh jadi kalo mau panggil koneksi ya cukup pakai file ini aja. Happy Coding!



MySQL Ku!
Juni 30, 2008, 3:26 pm
Diarsipkan di bawah: MySQL

MySQL-Ku!

Baru download mysql yang baru buat gantiin yang lama (mysql ver 3.4), langsung deh coba install siapa tau aja corrupt tuh file kan musti download lagi (biasa downloader dari internet cafe hehehe…). Pertama coba install bagus juga udah langsung bisa configurasi saat selesai instalasi pakai wizard pula wow keren deh! langsung aja pindahin ke flashdisk terus cabut pulang.
Malemnya coba gue install di PC rumah eh jalan juga gak sia-sia deh download tadi. Setelah langsung deh bikin database en tabel-tabelnya, tapi kok ada error sql syntax. Wah bingung berat nih gue masa musti download lagi, iseng-iseng gue pakai MySQL-Front buat cek error-nya tapi kok semua tabel gue tipe engine-nya InnoDB bukannya MySQL itu defaultnya MyISAM???. Setelah tapa brata dan puasa selama 3 menit untuk chat dengan temen-temen seperjuangan akhirnya tau juga kalo MySQL yang gua donlod default enginenya ya itu InnoDB.
Besoknya iseng-iseng ke internet buat nyari tau tentang InnoDB (maklum biasa pake MyISAM kagak ngerti InnoDB). Setelah beberapa menit akhirnya gue tahu perbedaan mendasar dari InnoDB dan MySQL yaitu:
1. InnoDB itu lebih lambat dari MySQL tapi punya integritas yang lebih baik dari MyISAM
2. InnoDB bisa di rollback kalo MyISAM kan ndak bisa to
3. InnoDB mendukung hampir semua fungsi dasar yang dibutuhkan dalam RDBMS kalo MyISAM kayaknya kagak deh
4. MyISAM data tabel disimpan dalam file sendiri sendiri si InnoDB ndak tuh
5. Kalo mau bikin sistem database yang punya integritas yang baik pake InnoDB tapi kalo maunya yang cepet pake MyISAM

Setelah sampe rumah gue belajar lagi deh tentang MySQL(padahal paling males banget kalo belajar database) biar bisa bikin aplikasi dengan si InnoDB. Ya udah Happy Learning!.