Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 1 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 2
Pendahuluan
Pendahuluan
• Merealisasikan pemodelan data
konseptual menggunakan tipe tabel
InnoDB
• Tipe tabel InnoDB dipilih karena proses transaksi
akan dilakukan terhadap tabel-tabel dalam sistem
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 3 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 4
Menggabungkan 2 Tabel Menggabungkan 2 Tabel
• Kebutuhan untuk menampilkan data dari 2 buah tabel. • Untuk menggabungkan 2 tabel dapat
• Suatu kewajaran jika satu database memiliki menggunakan fungsi WHERE dan JOIN.
hubungan (relasi) dari 2 atau lebih tabel. • Terdapat 2 perintah yang berhubungan dengan
• Relasi antara tabel dapat berupa relasi 1 – 1, 1 – M, fungsi JOIN
dan M – M. 1. Inner JOIN
• Penyajian pemodelan data konseptual disebut dengan 2. Outer JOIN
class diagram.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 5 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 6
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 7 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 8
Menggabungkan 2 Tabel Menggabungkan 2 Tabel
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 9 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 10
Menggabungkan 2 Tabel
Menggabungkan 2 Tabel
Fungsi WHERE
• Outer JOIN
SELECT tabel1.(nama_field), tabel2.(nama_field) Fungsi outer join terbagi menjadi 2:
FROM tabel1, tabel2 WHERE table1.PK =
tabel2.FK;
1. Left Join
Fungsi JOIN 2. Right Join
• Inner JOIN Left Join
Sintaks:
Sintaks:
SELECT tabel1.(nama_field), tabel2.
(nama_field) FROM tabel1 INNER JOIN tabel2 ON
table1.PK = tabel2.FK;
SELECT tabel1.(nama_field), tabel2.
(nama_field) FROM tabel1 LEFT JOIN tabel2 ON
table1.PK = tabel2.FK;
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 11 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 12
Menggabungkan 2 Tabel Menggabungkan Banyak Tabel
Right Join
Sintaks:
SELECT tabel1.(nama_field), tabel2.
(nama_field) FROM tabel1 RIGHT JOIN tabel2 ON
table1.PK = tabel2.FK;
Fungsi HAVING
Fungsi HAVING
• Kebutuhan untuk menyeleksi suatu fungsi agregasi
• Sintaks
• Fungsi agregasi adalah sebuah fungsi yang SELECT tabel1.(nama_field),
menerapkan operasi aritmatika dalam prosesnya, COUNT(tabel.nama_field) as nama_field FROM
seperti SUM, COUNT, AVG, dll. tabel1, tabel2, [...] WHERE table1.PK =
tabel2.FK, table2.PK = tabel3.FK, [...] HAVING
• Penggunaan fungsi HAVING dilakukan untuk [kondisi];
mengakomodasi penggunaan fungsi agregasi yang
tidak dapat diakomodir oleh fungsi WHERE
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 19 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 20
Fungsi SubSELECT Transaksi
• Kebutuhan untuk menampilkan data yang • MySQL merupakan software database berbasis
kondisinya merupakan hasil dari query lain. client- server.
• Sintaks • MySQL dapat melayani banyak pengguna dalam
SELECT nama_field1, nama_field2, [...] FROM satu waktu secara bersamaan.
tabel1, tabel2, [...] WHERE nama_field IN • Pengaksesan oleh banyak user dalam waktu
(SELECT...);
bersamaan dapat mengakibatkan collision antar data
pengguna.
• Collision antar data pengguna dapat menyebabkan
data tidak valid.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 21 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 22
Transaksi
Transaksi
• Untuk mengatur proses query dalam suatu sistem yang
• Terdapat 4 prinsip dasar transaksi yang biasa
memiliki banyak pengguna (multi-user), dalam
disingkat dengan ACID, yaitu:
MySQL dapat memanfaatkan 2 hal sebagai berikut:
1. Atomicity. Atom merupakan komponen terkecil dari materi
1. mengunci tabel (table-locking). Cara ini dapat dilakukan jika
yang tidak dapat dibagi-bagi lagi. Prinsip ini berlaku pada
tipe tabel yang digunakan adalah MyISAM, dan
proses transaksi. Semua proses (perintah) yang ada di dalam
2. dapat menggunakan perintah BEGIN, COMMIT dan satu paket transaksi harus selesai semua atau tidak selesai
ROLLBACK. Cara ini dapat dilakukan jika tipe tabel adalah sama sekali. Dengan kata lain, dalam satu transaksi tidak
tabel transaksi, yaitu InnoDB. boleh ada proses (perintah) yang gagal dieksekusi.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 23 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 24
Transaksi
Database Systems:
2. Consistency. Bahwa kegagalan satu proses dalam transaksi
tidak akan mempengaruhi transaksi lainnya.
3. Isolation. Secara sederhana, bahwa data yang sedang
digunakan dalam satu transaksi, tidak dapat digunakan oleh
transaksi lainnya sebelum seluruh proses transaksi yang
pertama selesai.
4. Durability. Jika sebuah transaksi selesai dieksekusi, hasilnya
tetap tercatat dengan baik.
Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 25 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | 26