flashcard

2 Jenis Query Lang? ?

  1. Functional/prosedural :: How? e.g. Relational Algebra
  2. Non Procedural/Declarative :: What? e.g. Tuple and domain relational calculus

Relational Algebra

Sifat Relational Algebra ?

  • Procedural Language
  • 6 basic operation
  • 5 Additional Operation
  • 2 Extended Operators

Basic Operation

1. Select Operation ()

Notasi: Penjelasan: Mengambil baris () dari relasi yang memenuhi predikat/kondisi (). Kondisi ini bisa berupa perbandingan matematika dasar (seperti ) yang dihubungkan dengan logika and, or, dan not.

  • Contoh Kasus: Mengambil data instruktur yang hanya berasal dari departemen Fisika .

2. Project Operation ()

Project digunakan untuk menyaring kolom (atribut).

  • Notasi: .
  • Penjelasan: Menghasilkan relasi baru dengan menghapus kolom-kolom yang tidak disebutkan di dalam notasi[].
  • Aturan Penting: Karena hasil relasi adalah sebuah himpunan (set), maka baris yang duplikat (kembar) akan otomatis dihapus dari hasil akhir.
  • Contoh Kasus: Menampilkan tabel instruktur tapi hanya memunculkan kolom ID, Nama, dan Nama Departemen saja .

3. Union Operation ()

Operator ini digunakan untuk menggabungkan data dari dua relasi menjadi satu.

  • Notasi: .
  • Penjelasan: Menghasilkan data yang ada di relasi ATAU di relasi .
  • Syarat Ketat: 1. Kedua relasi harus memiliki jumlah kolom yang sama (same arity) 2. Tipe data (domain) pada kolom yang bersesuaian harus cocok/kompatibel.

4. Set Difference Operation ()

Operator ini digunakan untuk mengurangi/memotong data antar himpunan.

  • Notasi: .
  • Penjelasan: Menghasilkan data yang ada di dalam relasi , TETAPI TIDAK ADA di dalam relasi ].
  • Syarat Ketat: Sama seperti Union, operasi ini hanya bisa dilakukan pada relasi yang saling kompatibel.

5. Cartesian-Product Operation ()

Operator ini digunakan untuk memasangkan setiap baris dari satu tabel dengan setiap baris dari tabel lainnya.

  • Notasi: .
  • Penjelasan: Menghasilkan kombinasi silang antara baris di relasi dengan baris di relasi . Jika tabel A punya 2 baris dan tabel B punya 3 baris, hasilnya adalah tabel baru dengan 6 baris.
  • Aturan Atribut: Atribut dari kedua relasi harus berbeda (disjoint). Jika ada nama kolom yang kebetulan sama, maka kolom tersebut harus diganti namanya (rename) atau ditulis dengan melampirkan nama tabel asalnya (contoh: ).

6. Rename Operation ()

Operator ini digunakan untuk memberikan nama baru pada hasil ekspresi atau atribut.

  • Notasi: atau .

  • Penjelasan: Mengembalikan hasil dari ekspresi di bawah nama baru , dan juga bisa sekaligus mengganti nama atribut-atributnya menjadi .

  • Kegunaan: Sangat berguna untuk memberi nama pada hasil sementara, atau ketika kita ingin menggabungkan sebuah tabel dengan dirinya sendiri.


Penggabungan Operator (Composition)

Karena setiap operator di atas selalu menghasilkan relasi (tabel) yang baru, maka kita bisa menumpuk atau menggabungkan operator-operator ini menjadi satu ekspresi matematika yang panjang (relational-algebra expression)

Contoh Penggabungan: “Cari nama-nama instruktur di departemen Fisika.” . (Sistem akan melakukan Select/Saring baris departemen Fisika terlebih dahulu, baru kemudian di-Project/Saring untuk hanya memunculkan kolom namanya saja).


Latihan Formal RQ Lang 1 Daftar semua mata kuliah (ID, judul, dan sks) di departeman “Comp. Sci.”.

2 ID, nama, dan departemen asal mahasiswa yang pernah mengambil mata kuliah yang bukan berasal dari departemennya, berikut informasi nama, jumlah sks, dan departemen penyelenggara mata kuliah tersebut.

3 Nama instruktur yang tidak mengajar pada semester 2 tahun 2025. ( harus dengan intructor id diawal karena bisa ada orang berbeda dengan nama yang sama)

ingat harus dengan primary key j 4 ID dan nama semua orang di university

5 ID instruktur yang berlokasi di gedung “LabTek 5” dan mengajar kelas yang diselenggarakan di gedung “LabTek 8” pada semester 2 tahun 2025.

Additional Operator

  1. Set Intersection () :: Yang sama
  2. Natural Join () :: gabungkan jikaada nilai sama
  3. assignment () :: menyimpan ke variable di kiri
  4. Division () :: a mengambil semua di B (A div B)

Warning Natural Join semua atribut yang sama jadi kalau nyari yang tidak sama sedangkan nama atributnya sama.

JenisNotasiKeterangan
Left Outer JoinSemua tuple dari , tambahkan null jika tidak match di
Right Outer JoinSemua tuple dari , tambahkan null jika tidak match di
Full Outer JoinSemua tuple dari dan , null untuk yang tidak match

Extended Operator

A. Generalized Projection () :: Fungsi Proyeksi dengan ekspresi aritmatika Contoh: Rata-rata gaji per departemen B. Aggregation :: Kelompokkan berdasarkan G lalu hitung fungsi agregasi F

Data modification ope rations

A. Deletion pakai set diffrence B. Update pakai Projection C. Insert Pakai Union

Skema basis data suatu perguruan tinggi

Berdasarkan skema tersebut, tulislah ekspresi aljabar relasional untuk mendapatkan informasi berikut ini.

ID dan nama instruktur serta perkiraan bonus yang akan diterima di akhir tahun. Bonus dihitung sebesar 3% dari gaji per tahun. Catatan: gaji yang disimpan di basis data adalah gaji per bulan.

Nama departemen dengan budget terkecil.

atau pakai aggregation:

ID dan nama mahasiswa departemen “IF” serta total sks yang diambilnya di semester 1 tahun 2020.

Menambahkan mata kuliah dengan ID “IF4000”, nama “Magang Industri”, dari departemen “IF” dengan bobot 4 sks dan mata kuliah dengan ID “II4000”, nama “Magang Industri”, dari departemen “STI” dengan bobot 4 sks.

Mendaftarkan semua mahasiswa departemen “IF” yang telah lulus sekurang-kurangnya 138 sks tapi belum mengambil mata kuliah “IF4090” untuk mengikuti mata kuliah “IF4000” kelas 99 pada semester 2 2020 (asumsi kelas tersebut telah tercatat pada relasi section).

Mengubah gaji semua instruktur: yang memiliki gaji di atas rata-rata gaji instruktur di departemennya diberi kenaikan 1% sedangkan yang memiliki gaji lebih kecil atau sama dengan gaji rata-rata di departemennya diberi kenaikan 1,1%.

Menghapus semua mata kuliah dari departemen “IF” yang belum pernah diselenggarakan.

SQL

Select ID, Student.name from student where dapartment=“comp. Sci” Select * from instructor where salary beetwen select * from student where name LIKE ‘Budi% _%” select id, title, credits from takes natural join takes select course.ID, title, credits, sec_id, instructor from teaches, course, instruction where course.dept