Modul 3 : Querry Language - IvanSholana/PerancanganBasisData GitHub Wiki

Query Language

Query language adalah bahasa/perintah yang digunakan oleh user sebagai request kepada DBMS untuk mengambil data yang diinginkan dari database dan menyediakannya kepada user. Selain itu Query Language juga digunakan untuk melakukan 4 operasi utama dalam DBMS yaitu CRUD (Create, Read, Update, dan Delete). Terdapat 2 jenis Query Language, yaitu Procedural Query dan Non Procedural Query.

Procedural Query

Procedural Query Language merupakan query language yang mana user menuliskan data apa yang diinginkan dan bagaimana cara mendapatkannya. Contoh ilustrasi dari Procedural Query Languange adalah dirimu meminta teh kepada seseorang. Pada saat meminta dirimu juga menjelaskan cara membuat sebuah teh, dari merebut air hingga membawa teh tersebut ke dirimu. Contoh dari Procedural Query Language adalah Aljabar Relasional.

Aljarbar Relasional

  • Selection Operator (σ)

    Selection Operator merupakan operator unary yang digunakan untuk menampilkan data yang diinginkan. Berikut merupakan penulisan dari Selection Operator (σ) :

    σ<selection_condition>(R)
    

    Contoh penggunaan dari selection operator adalah sebagai berikut :

    NIM NAMA LENGKAP IPK
    1 IVAN SHOLANA 4.0
    2 SOEHARTO 4.0
    3 JOKO WIDODO 3.9
    4 MEGA WATI 2.0

    Kita ingin menampilkan keseluruhan data dengan IPK 4 dan NIM lebih dari 1 pada relasi di atas dengan nama relasi MAHASISWA. Dengan begitu penulisan selection operator nya adalah sebagai berikut :

    σ<NIM > 1 and IPK = 4.0>(MAHASISWA)
    

    Dengan menggunakan syntax tersebut, maka akan dihasilkan relasi baru sebagai berikut :

    NIM NAMA LENGKAP IPK
    2 SOEHARTO 4.0
  • Projection Operator (π)

    Projection Operator adalah operator yang digunakan untuk menampilkan list dari atribut/kolom yang diinginkan dari sebuah tabel/relationn. Berikut merupakan syntax dari Projection Operator :

    π<attribute list>(R)
    

    Contoh dari penggunaan Projection Operator adalah sebagai berikut :

    NIM NAMA LENGKAP IPK
    1 IVAN SHOLANA 4.0
    2 SOEHARTO 4.0
    3 JOKO WIDODO 3.9
    4 MEGA WATI 2.0

    Kita ingin menampilkan 2 dari 3 atribut pada relasi MAHASISWA di atas, yaitu NIM dan NAMA LENGKAP. Untuk melakukan hal tersebut, maka penulisan dari Projection Operator nya adalah sebagai berikut :

    π<NIM,NAMA LENGKAP>(MAHASISWA)
    

    Dengan demikian, maka hasil dari syntax tersebut adalah relasi baru sebagai berikut :

    NIM NAMA LENGKAP
    1 IVAN SHOLANA
    2 SOEHARTO
    3 JOKO WIDODO
    4 MEGA WATI

    Pada penggunaan Projector Operator di atas, dapat dilihat bahwa kita hanya ingin menampilkan atribut NIM dan NAMA LENGKAP saja, sehingga terbentuk relasi baru dengan atribut yang tidak memiliki atribut NIM pada relasinya.

  • Union Operator (U)

    Union Operator adalah operator yang digunakan untuk membentuk dan menampilkan sautu relasi baru yang merupakan hasil penggabungan 2 atau lebih relasi yang mana seluruh tuple hanya dimiliki relasi A dan B hingga tuple ke-N dan tuple yang dimiliki oleh keseluruhan relasi tersebut . Pada operator ini terdapat syarat yang harus dipenuhi, yaitu jumlah atribut atau degreenya harus sama dan domain dari atribut tersebut juga harus sama. Selain itu, union operator ini juga memiliki sifat menghilangkan redudansi data pada relasi baru. Contoh dari penggunaan Union Operator adalah sebagai berikut :

    A B
    a b
    e f
    a d
    A B
    c d
    a d
    e f

    Dengan menggunakan R1 U R2, maka relasi baru yang akan dihasilkan adalah sebagai berikut :

    A B
    a b
    e f
    a d
    c d

    Pada relasi baru yang terbentuk, dapat dilihat tuple dengan nilai e dan f mengalami redudansi atau terdapat pada R1 dan R2, sehingga pada relasi baru tuple tersebut hanya ditampilkan sekali atau redudansinya dihilangkan.

  • Intersection Operator (∩)

    Intersection Operator merupakan operator yang digunakan untuk membuat dan menampilkan sebuah relasi baru yang mana anggota atau tuple dari relasi baru tersebut merupakan tuple-tuple yang dimiliki oleh seluruh relasi yang diintersectionkan. Contoh dari penggunaan intersection operator adalah sebagai berikut :

    A B
    a b
    e f
    a d
    A B
    c d
    a d
    e f

    Dengan menggunakan intersection operator atau R1 ∩ R2 maka akan dihasilkan sebuah relasi baru sebagai berikut :

    A B
    e f
    a d

    Pada relasi baru di atas terdapat kardinalitas sejumlah 2 yag terdiri dari 2 tuple berisi a dan f dan a dan d. Tuple tersebut merupakan tuple yang dimiliki oleh R1 dan R2, sehingga akan menjadi tuple pada relasi baru. Kemudian contoh lain dari intersection dapat dilihat pada syntax berikut ini :

    Π kode_mk ( δ sks = 2 (MTKULIAH) ) ∩ Π kode_mk ( δ nim = ‘0641345’ (NILAI) )
    

    Pada syntax tersebut terdapat selector operator dan projector operator yang telah dipelajari sebelumnya. Jika kita bahasakan syntax di atas maka dapat dibaca tampilkan atribut kode_mk dengan syarat sks = 2 pada relasi MTKULIAH dan nim = '0641345' pada relasi NILAI`.

  • Set Difference (-) Operasi yang digunakan untuk membuat sebuah relasi baru yang terdiri dari seluruh tuple yang dimiliki oleh R1 namun tidak dimiliki oleh R2. Contoh dari penggunaan Set Difference adalah sebagai berikut :

    A B
    a b
    e f
    a d
    A B
    c d
    a d
    e f

    Dengan menggunakan R1-R2 maka akan dihasilkan relasi baru sebagai berikut :

    A B
    a b

    Pada relasi di atas dapat dilihat tuple dengan value a dan b menjadi tuple relasi baru, hal tersebut dikarenakan tuple tersebut hanya dimiliki oleh R1.

  • Cartesian Product (x) Merupakan operasi yang digunakan untuk melakukan kombinasi terhadap 2 relasi. Pada Cartesia Product akan dihasilkan relasi baru dengan tuple yang terdiri dari hasil kombinasi 2 relasi. Contoh dari penggunaan Cartesian Product adalah sebagai berikut :

    A B
    a b
    e f
    a d
    A B
    c d
    a d
    e f

    Dengan menggunakan Cartesian Product maka akan dihasilkan relasi baru sebagai berikut :

    A B C D
    a b c d
    a b a d
    a b e f
    e f c d
    e f a d
    e f e f
    a d c d
    a d a d
    a d e f

    Relasi di atas merupakan relasi baru yang dihasilkan dari kombinasi R1 dan R2.

Kalkulus Relasional

⚠️ **GitHub.com Fallback** ⚠️