1 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Database Systems:
2 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Lab. Actvity 3: Fungsi-Fungsi MySql Advance
Agenda.
• Pendahuluan
• Menggabungkan 2 Tabel
• Menggabungkan Banyak Tabel
• Fungsi Having
• Fungsi SubSelect
• Transaksi
3 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Pendahuluan
4 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Pendahuluan
• Merealisasikan pemodelan data konseptual menggunakan tipe tabel InnoDB
5 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
• Kebutuhan untuk menampilkan data dari 2 buah tabel. • Suatu kewajaran jika satu database memiliki hubungan
(relasi) dari 2 atau lebih tabel.
• Relasi antara tabel dapat berupa relasi 1 –1, 1 –M, dan M –M.
• Penyajian pemodelan data konseptual disebut dengan class diagram.
6 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
• Untuk menggabungkan 2 tabel dapat menggunakan fungsi WHERE dan JOIN.
• Terdapat 2 perintah yang berhubungan dengan fungsi JOIN
1. Inner JOIN 2. Outer JOIN
7 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
9 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
10 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
11 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
Fungsi WHERE
Fungsi JOIN
• Inner JOIN
Sintaks:
SELECT tabel1.(nama_field), tabel2.(nama_field) FROM tabel1, tabel2 WHERE table1.PK = tabel2.FK;
SELECT tabel1.(nama_field), tabel2.(nama_field) FROM tabel1 INNER JOIN tabel2 ON table1.PK = tabel2.FK;
12 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
• Outer JOIN
Fungsi outer join terbagi menjadi 2: 1. Left Join
2. Right Join
Left Join Sintaks:
13 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan 2 Tabel
Right Join Sintaks:
SELECT tabel1.(nama_field), tabel2.(nama_field) FROM tabel1 RIGHT JOIN tabel2 ON table1.PK = tabel2.FK;
14 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan Banyak Tabel
15 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan Banyak Tabel
16 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan Banyak Tabel
id_produk harga nm_produk
B0001 2500 Penggaris 30cm
B0002 1000 Penghapus
B0003 1500 Pensil 2B
B0004 3000 Buku Tulis
B0005 4500 Jangka
• Isikan tabel tb_produk berdasarkan data pada tabel di atas.
17 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan Banyak Tabel
• Adanya kebutuhan untuk menampilkan data dari banyak tabel.
• Secara umum sintaks yang digunakan sama dengan ketika menggabungkan 2 buah tabel.
• Untuk menggabungkan banyak tabel dapat menggunakan fungsi Group By
• Fungsi group bydigunakan untuk mengelompokkan hasil query berdasarkan kriteria atau kondisi tertentu.
18 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Menggabungkan Banyak Tabel
• Fungsi Group By
Sintaks:
SELECT tabel1.(nama_field), tabel2.(nama_field), tabel3.(nama_field), [...] FROM tabel1, tabel2,
[...] WHERE table1.PK = tabel2.FK, table2.PK = tabel3.FK, [...] GROUP BY nama_field [WITH ROLLUP];
19 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Fungsi HAVING
• Kebutuhan untuk menyeleksi suatu fungsi agregasi • Fungsi agregasi adalah sebuah fungsi yang menerapkan
operasi aritmatika dalam prosesnya, seperti SUM, COUNT, AVG, dll.
• Penggunaan fungsi HAVINGdilakukan untuk
mengakomodasi penggunaan fungsi agregasi yang tidak dapat diakomodir oleh fungsi WHERE
20 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Fungsi HAVING
• Sintaks
SELECT tabel1.(nama_field),
COUNT(tabel.nama_field) as nama_fieldFROM
21 Lab. Activity 3: Fungsi-Fungsi MySQL Advance | Fungsi SubSELECT
• Kebutuhan untuk menampilkan data yang kondisinya merupakan hasil dari query lain.
• Sintaks
SELECT nama_field1, nama_field2, [...] FROM
tabel1, tabel2, [...] WHERE nama_field IN (SELECT...);
22 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Transaksi
• MySQL merupakan software database berbasis client-server.
• MySQL dapat melayani banyak pengguna dalam satu waktu secara bersamaan.
• Pengaksesan oleh banyak user dalam waktu bersamaan dapat mengakibatkan collision antar data pengguna. • Collision antar data pengguna dapat menyebabkan data
tidak valid.
23 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Transaksi
• Untuk mengatur proses query dalam suatu sistem yang memiliki banyak pengguna (multi-user), dalam MySQL dapat memanfaatkan 2 hal sebagai berikut:
1. mengunci tabel (table-locking). Cara ini dapat dilakukan jika tipe tabel yang digunakan adalah MyISAM, dan
2. dapat menggunakan perintah BEGIN, COMMIT dan ROLLBACK. Cara ini dapat dilakukan jika tipe tabel adalah tabel transaksi, yaitu InnoDB.
24 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Transaksi
• Terdapat 4 prinsip dasar transaksi yang biasa disingkat dengan ACID, yaitu:
1. Atomicity. Atom merupakan komponen terkecil dari materi
25 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Transaksi
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.
26 Lab. Activity 3: Fungsi-Fungsi MySQL Advance |