Tugas 6
1. Inner Join
Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Misalkan isi tabel pelanggan dan pesan adalah sebagai berikut :
Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan email)
Tabel pesan.
Cara #1. Inner Join dengan WHERE.
Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan, pesan WHERE pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya sebagai berikut:
Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi yang dilakukan oleh 3 (tiga) orang pelanggan. Jika kita lihat kembali isi tabel pelanggan di atas, maka terdapat satu pelanggan yang tidak ditampilkan yaitu yang memiliki id pelanggan P0003. Pelanggan tersebut tidak ditampilkan karena belum pernah melakukan transaksi.
Cara #1. Inner Join dengan klausa INNER JOIN.
Berikut ini bentuk umumnya:
SELECT tabel1.*, tabel2.* FROM tabel1 INNER JOIN tabel2 ON tabel1.PK=tabel2.FK;
Dan berikut ini perintah SQL penggabungan tabel pelanggan dan pesan.
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan INNER JOIN pesan ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya akan sama dengan gambar di atas (cara #1).
2. Outer Join
Dengan outer join, tabel akan digabungkan satu arah, sehingga memungkinkan ada data yang NULL (kosong) di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi).
Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT JOIN. Berikut ini bentuk umum dan contohnya:
LEFT JOIN.
Bentuk umum:
SELECT tabel1.*, tabel2.* FROM tabel1 LEFT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan LEFT JOIN pesan ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga data pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi. Dan pada kolom id_pesan dan tgl_pesan untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pesan) pelanggan tersebut tidak ada.
RIGHT JOIN
Bentuk umum:
SELECT tabel1.*, tabel2.* FROM tabel1 RIGHT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan RIGHT JOIN pesan ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi semua isi tabel pesan akan ditampilkan. Jika data pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan tetap ditampilkan.
Menggabungkan 3 Tabel atau Lebih
Untuk menggabungkan tiga tabel atau lebih, pada dasarnya sama dengan penggabungan 2 (dua) tabel. Sebagai contoh misalnya kita akan menampilkan barang-barang yang dipesan beserta nama barang dan harganya untuk pemesanan dengan nomor 1, sedemikian sehingga hasilnya menjadi sebagai berikut:
Tugas 5 Dasar pemograman mysql
Hirarki Data Tradisional :
- Elemen data / Field : suatu elemen data terkecil yang tidak dapat dipecah lagi.
- Record : gabungan sebuah elemen data yang terkait.
- File : himpunan seluruh record yang berhubungan.
Aktifitas Manajemen Data :
- Pengumpulan data ; data yang diperlukan dikumpulkan dan dicatat pada sebuah form yang disebut dokumen sumber yang berfungsi sebagai input.
- Integritas dan Pengujian ; data diperiksa untuk meyakinkan konsistensi dan akurasi data tersebut.
- Penyimpanan data dan pemeliharaan.
- Keamanan data.
- Organisasi data ; data disusun sedemikian untuk memenuhi kebutuhan user.
- Pengambilan data ; data dibuat agar dapat digunakan oleh user yang berhak.
Dua jenis Penyimpanan Sekunder :
- Penyimpanan Berurutan / Sequential Access Storage Device (SASD) ;
Media penyimpan untuk mengisikan record yang diatur dalam susunan tertentu. Data pertama harus diproses pertama kali, data kedua diproses kedua kali, dst. - Penyimpanan Akses Langsung / Direct Access Storage Device (DASD) ;
Mekanisme baca atau tulis yang diarahkan ke record tertentu tanpa pencarian secara urut. Komputer mikro memiliki disk drive dan hard disk.
Cara Mengolah Data :
- Pengolahan Batch ;
Mengumpulkan data terlebih dahulu kemudian diproses sekaligus. - Pengolahan On – Line ;
Setiap data yang diinput langsung didapat output atau hasilnya. - Sistem Real Time ;
Sama seperti pengolahan On – Line, hanya saja data yang ada di update sesuai dengan perubahan waktu.
KONSEP DATABASE
Database : Kumpulan data-data yang terpadu yang disusun dan disimpan dalam suatu cara sehingga memudahkan untuk dipanggil kembali.
Database Manajemen System ;
Suatu program komputer yang digunakan untuk memasukkan,mengubah,menghapus,memanipulasi dan memeperoleh data / informasi dengan praktis dan efisien.
Komponen Utama DBMS :
- Hardware ; yang melakukan pemrosesan dan menyimpan database.
- Data.
- User , dapat diklasifikasikan menjadi :
- End User ;
- Pengguna aplikasi, yang mengoperasikan program aplikasi.
- Pengguna interaktif, yang memberikan perintah-perintah beraras tinggi (sintak-sintak query).
- Programmer aplikasi, yang membuat program aplikasi.
- Database Administrator, bertanggung jawab terhadap pengelolaan database.
- End User ;
- Software, sebagai interface antara user dan database.
Perintah yang digunakan untuk mengelola dan mengorganisasikan data :
- Data Definition Language ;
Perintah yang biasa digunakan oleh DBA untuk mendefinisikan skema ke DBMS.
Skema : deskripsi lengkap tentang struktur field, record dan hubungan data pada database.
Hal yang perlu dijabarkan dalam DBMS :
- Nama database.
- Nama file pada database.
- Nama field dan record.
- Deskripsi file, record dan field.
DDL juga digunakan untuk menciptakan, mengubah dan menghapus database.
Yang termasuk dalam kelompok DDL :
-
- CREATE ; membuat table.
- ALTER ; mengubah struktur table.
- DROP ; menghapus table.
- Data Manipulation Language ;
Perintah yang digunakan untuk mengubah, memanipulasi dan mengambil data pada database.
DML dibagi menjadi 2 :
- Prosedural ; menuntut user menentukan data apa saja yang diperlukan dan bagaimana cara mendapatkannya.
- Non Prosedural ; menuntut user menentukan data apa saja yang diperlukan tetapi tidak perlu menyebutkan cara mendapatkannya.
Perintah yang termasuk dalam DML :
- SELECT ; memilih data.
- INSERT ; menambah data.
- DELETE ; menghapus data.
- UPDATE ; mengubah data.
Tugas – tugas Database Administrator :
- Perencanaan database.
- Penerapan database.
- Operasi Database.
- Keamanan Database.
Keuntungan Database Manajemen System :
- Mengurangi pengulangan data.
- Independensi data.
- Memadukan data dari beberapa file.
- Memanggil data dan informasi secara tepat.
- Meningkatkan keamanan.
Kerugian Database Manajemen System :
- Menggunakan software yang mahal.
- Menggunakan konfiguarsi hardware yang besar.
- Memperkerjakan dan menggaji Staf DBA yang relatif mahal.
Tugas 4
NORMALISASI DATABASE
Normalisasi merupakan sebuah upaya untuk memperoleh sebuah database dengan struktur yang baik dengan cara menerapkan sejumlah aturan pada setiap tabel agar ruang penyimpanan efisien. Istilah normalisasi dapat disederhanakan menjadi memecah relasi menjadi beberapa tabel untuk mendapat database yang optimal
Istilah penting dalam teknik normalisasi
1. Field / atribut kunci. Setiap file selalu terdapat kunci dari file berupa satu field atau satu field yang dapat mewakili record.
2. Candidate key. Kumpulan atribut minimal yang secara unik mengidentifikasi sebuah baris fungsinya sebagai calon primary key.
3. Composite key. Kunci kandidat yang berisi lebih dari satu atribut
4. Primary key. Candidate key yang dipilih untuk mengidentifikasi baris secara unik
5. Alternate key. Candidate key yang tidak dipilih sebagai primary key
6. Foreign key. Key di tabel lain yang terhubung dengan primary key pada sebuah tabel
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.
Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-)
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).
FUNCTIONAL DEPENDENCY (FD)
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
Notasi: A –> B atau A x –> B
Adalah kebalikan dari notasi sebelumnya
Aturan normalisasi
1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
· Mendefinisikan atribut kunci
· Tidak adanya group berulang
· Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)
2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
· Sudah memenuhi dalam bentuk normal kesatu
· Sudah tidak ada ketergantungan parsial, dimana seluruh field hanya tergantung pada sebagian field kunci.
3. Bentuk Normal Tahap (3rd Normal Form / 3NF)
· Sudah berada dalam bentuk normal kedua
· Tidak ada ketergantungan transitif (dimana field bukan kunci tergantung pada field bukan kunci lainnya).
4. Boyce-Code Normal Form (BCNF)
· Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X à Y
· tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi
· Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X à A, BCNF tidak membolehkan A sebagai bagian dari primary key.
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
· Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
· Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
· Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
· Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula .
http://arusboelha.blogspot.com/2012/06/normalisasi-database.html
TIPE DATA PADA DBMS
1. Mysql
TIPE DATA PADA Mysql
TINYINT = Ukuran 1 byte. Bilangan bulat terkecil,
dengan jangkauan untuk bilangan bertanda -128 sampai dengan 127 dan untuk
yang tidak bertanda 0 sampai dengan 255. Bilangan tak bertanda ditandai
dengan kata UNSIGNED.
SMALLINT = Ukuran 2 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -32768 sampai dengan 32767 dan untuk yang
tidak bertanda 0 sampai dengan 65535
MEDIUMINT = Ukuran 3 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -8388608 sampai dengan 8388607 dan untuk
yang tidak bertanda 0 sampai dengan 16777215
INT = Ukuran 4 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -2147483648 sampai dengan 2147483647 dan
untuk yang tidak bertanda 0 sampai dengan 4294967295
INTEGER = Sama dengan INT.
BIGINT = Ukuran 8 byte. Bilangan bulat dengan
jangkauan untuk bilangan bertanda -9223372036854775808 sampai dengan
9223372036854775807 dan untuk yang tidak bertanda 0 sampai dengan
184467440737079551615
FLOAT = Ukuran 4 byte. Biilangan pecahan.
DOUBLE = Ukuran 8 byte. Biilangan pecahan.
DOUBLE PRECISION = Ukuran 4 byte. Biilangan pecahan berpresisi
ganda.
REAL = Ukuran 8 byte. Sinonim dari DOUBLE.
DECIMAL(M,D) = Ukuran M byte. Bilangan pecahan. Misalnya
DECIMAL(5,2) dapat digunakan untuk menyimpan bilangan -99,99 sampai dengan
9