Lab. Actvity 3: Fungsi-Fungsi MySql Advance
Database Systems:
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Agenda. • • • • • •
1
Pendahuluan
Pendahuluan Menggabungkan 2 Tabel Menggabungkan Banyak Tabel Fungsi Having Fungsi SubSelect Transaksi
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
2
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 • 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. Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
• Untuk menggabungkan 2 tabel dapat menggunakan fungsi WHERE dan JOIN. • Terdapat 2 perintah yang berhubungan dengan fungsi JOIN 1. Inner JOIN 2. Outer JOIN
5
Menggabungkan 2 Tabel
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Menggabungkan 2 Tabel
7
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
6
Menggabungkan 2 Tabel
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
8
Menggabungkan 2 Tabel
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Menggabungkan 2 Tabel
9
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Menggabungkan 2 Tabel
10
Menggabungkan 2 Tabel • Outer JOIN Fungsi outer join terbagi menjadi 2: 1. Left Join 2. Right Join
Fungsi WHERE SELECT tabel1.(nama_field), tabel2.(nama_field) FROM tabel1, tabel2 WHERE table1.PK = tabel2.FK;
Fungsi JOIN
Left Join
• Inner JOIN
Sintaks:
Sintaks: SELECT tabel1.(nama_field), tabel2.(nama_field) FROM tabel1 INNER JOIN tabel2 ON table1.PK = tabel2.FK; Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
SELECT tabel1.(nama_field), tabel2.(nama_field) FROM tabel1 LEFT JOIN tabel2 ON table1.PK = tabel2.FK; 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;
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
13
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Menggabungkan Banyak Tabel
14
Menggabungkan Banyak Tabel id_produk
harga
nm_produk
B0001
2500
Penggaris 30cm
B0002
1000
Penghapus
B0003 B0004
1500 3000
Pensil 2B Buku Tulis
B0005
4500
Jangka
• Isikan tabel tb_produk berdasarkan data pada tabel di atas. • Isikan tabel tb_detail_produk dengan 10 buah record dengan id_pesan mengacu kepada tb_pesan. Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
15
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
16
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 by digunakan untuk mengelompokkan hasil query berdasarkan kriteria atau kondisi tertentu. 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];
17
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 HAVING dilakukan untuk mengakomodasi penggunaan fungsi agregasi yang tidak dapat diakomodir oleh fungsi WHERE Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
18
Fungsi HAVING • Sintaks SELECT tabel1.(nama_field), COUNT(tabel.nama_field) as nama_field FROM tabel1, tabel2, [...] WHERE table1.PK = tabel2.FK, table2.PK = tabel3.FK, [...] HAVING [kondisi];
19
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
20
Fungsi SubSELECT • Kebutuhan untuk menampilkan data yang kondisinya merupakan hasil dari query lain. • Sintaks
• MySQL merupakan software database berbasis clientserver. • 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.
SELECT nama_field1, nama_field2, [...] FROM tabel1, tabel2, [...] WHERE nama_field IN (SELECT...);
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
21
Transaksi • Untuk mengatur proses query dalam suatu sistem yang memiliki banyak pengguna (multi-user), dalam MySQL dapat memanfaatkan 2 hal sebagai berikut:
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
22
Transaksi • Terdapat 4 prinsip dasar transaksi yang biasa disingkat dengan ACID, yaitu:
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. Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
Transaksi
23
1. Atomicity. Atom merupakan komponen terkecil dari materi yang tidak dapat dibagi-bagi lagi. Prinsip ini berlaku pada proses transaksi. Semua proses (perintah) yang ada di dalam satu paket transaksi harus selesai semua atau tidak selesai sama sekali. Dengan kata lain, dalam satu transaksi tidak boleh ada proses (perintah) yang gagal dieksekusi. Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
24
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. Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
25
Database Systems:
Lab. Activity 3: Fungsi-Fungsi MySQL Advance |
26