Pada pertemuan kemarin kita telah membahas tentang transformasi ERD ke dalam bentuk database fisik, dimana kita nanti akan menggunakannya dalam mengelola suatu sistem berbasis database. Nah sekarang kita akan belajar bahasa, yaitu sebuah bahasa perintah yang digunakan untuk mengambil data yang terdapat dalam database. Bahasa tersebut adalaah bahasa query (Query Language). Bahasa Query adalah sebuah bahasa dimana kita meminta
Terdapat dua bahasa dalam bahasa query yakni prosedural dan non prosedural. Salah satu contoh prosedural adalah operasi ALJABAR, dikatakan prosedural karena query ini membuat suatu urutan-urutan instruksi. Sedangkan untuk yang non-prosedural adalah operasi KALKULUS, dikatakan non-prosedural karena dia tidak menghendaki urutan-urutan instruksi.
Pada operasi relasi ALJABAR, terdapat dua operasi dasar yaitu Unary dan Binary. Dikatan Unary maksudnya adalah karena dia melakukan operasi pada satu relasi saja (relasi tunggal). Sedangkan operasi binary dia melibatkan sepasang relasi atau lebih.
Berikut ini adalah beberapa bentuk operasi dasar :

  • Selection (σ)Digunakan untuk memperoleh untuk menyeleksi baris-baris yang memenuhi syarat predikat dari penggunaan operator pembanding (<,>,=,=<,>=,#). Beberapa predikat menjadi majemuk dengan menggunakan AND (∧) OR (∨).

    Notasi umum : σ kolom = ‘values required(Tabel)Contoh

    1. Misalnya : Tampilkan data mahasiswa yang memiliki IP > 3
    2. Notasinya : σ IP>3 (Mahasiswa)
    3. SQL-nya : SELECT * FROM MAHASISWA WHERE IP>3;
  • Projection (π)Digunakan untuk mengambil nilai nilai dari kolom-kolom tertentu.

    Notasi umum : π kolom1, kolom2, …, kolomn (Tabel)Contoh

    1. Misalnya : Tampilkan NAMA MAHASISWA yang memiliki IP > 3
    2. Notasinya : π NAMA,σ IP>3 (Mahasiswa)
    3. SQL-nya : SELECT NAMA FROM MAHASISWA WHERE IP>3;
  • Union (∪)Digunakan untuk menghasilkan gabungan tabel dengan syarat memiliki atribut yang sama antara masing-masing tabel.

    Dalam notasi matematis adalah seperti berikut :

    R ∪ S = {x|x∈R atau x ∈ S}

    Contoh :

    1. Misalnya query : Tampilkan nid (dari relasi Dosen) Union dari nid (dari relasi Mengajar) .
    2. Notasinya : π nid(Dosen) ∪ nid(Mengajar)
    3. SQL-nya : SELECT nid FROM Dosen UNION SELECT Mengajar.nid FROM Mengajar;
  • Cartesian Product (X)Cratesian Product digunakan untuk memperoleh nilai dari atribut yang kita pilih dari hasil tabel yang berhubungan.

    Secara matematika notasinya adalah sebagai berikut :

    R X S = {(x,y)|x∈R dan y ∈ S}

    Contoh :

    1. Misalnya Querynya : Tampilkan nid,nama_d (dari relasi Dosen), nama_mk (dari relasi Matakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi Mengajar) dimana semester mengajar adalah pada semester ‘1’.
    2. Notasinya :
      π nid,nama_d,nama_mk, thn_akademik,smt,hari,jam_ke,waktu,kelas (σ smt=1 ∧ Dosen.nid = Mengajar.nid ∧ Mengajar.kdmk = Matakuliah.kdmkDosenXMatakuliahXMengajar)
    3. SQL-nya :
      SELECT nid,nama_d,nama_mk,thn_akademik,smt,hari,jam_ke,waktu,kelas where smt = ‘1’ and Dosen.nid = Mengajar.nid and Mengajar.kdmk = Matakuliah.kdmk;
  • Set Difference (—)Digunakan untuk mendapatkan nilai darisuatu tabel relasi dimana nilai tersebut tidak terdapat dari tabel relasi yang lain.

    Notasi dalam himpunan matematika adalah sebagai berikut :

    R – S = { X | x∈R dan X ∉ R}
    adalah jika terdapat nilai dari atribut tabel 1 sama dengan nilai atribut dari tabel dua maka tidak ditampilkan. Dalam kasus ini hanya menampilkan nilai yang tidak ada di tabel lain.

    Contoh :

    1. Misalnya Query : Tampilkan nid (dari relasi Dosen) Set-difference dari nid (dari relasi Mengajar).
    2. Notasinya :π nid(Dosen) — nid(Mengajar)
    3. SQL-nya : SELECT nid FROM Dosen EXCEPT SELECT nid FROM Mengajar;Atau bisa juga dengan

      SELECT DISTINCT *
      FROM Dosen WHERE NOT EXISTS (SELECT * FROM Mengajar WHERE Dosen.nid = Mengajar.nid);

      Atau bisa juga dengan

      SELECT DISTINCT * FROM Dosen WHERE NOT IN (SELECT * FROM Mengajar WHERE Dosen.nid = Mengajar.nid);

      Atau bisa juga dengan

      SELECT DISTINCT Dosen.* FROM (Dosen LEFT OUTER JOIN Mengajar on Dosen.nid = Mengajar.nid) WHERE Mengajar.nid IS NULL

  • Rename (ρ)adalah operasi untuk menyalin tabel lama ke dalam tabel baru.

    Notasinya adalah sebagai berikut :

    ρ[nama_tabel](tabel lama)

    Contoh :

    1. Misalnya quer : Salinlah table baru dengan nama DosenNew dari table Dosen, dimana jenis kelaminnya adalah ‘Pria’.
    2. Notasinya : ρ[DosenNew]((σ jKelamin=’pria’)(Dosen))
    3. SQL-nya : INSERT INTO DosenNew SELECT * FROM Dosen WHERE jKelamin=’pria’;

 

Query Language (Bahasa Query)
Tagged on:                 

Leave a Reply