logo

Crowdly

[Reg] Basis Data (A,B,C,D,E,F) Genap 2024/2025

Шукаєте відповіді та рішення тестів для [Reg] Basis Data (A,B,C,D,E,F) Genap 2024/2025? Перегляньте нашу велику колекцію перевірених відповідей для [Reg] Basis Data (A,B,C,D,E,F) Genap 2024/2025 в scele.cs.ui.ac.id.

Отримайте миттєвий доступ до точних відповідей та детальних пояснень для питань вашого курсу. Наша платформа, створена спільнотою, допомагає студентам досягати успіху!

Digitaro adalah perusahaan fintech yang menerapkan sistem insentif otomatis berbasis jam kerja dan performa. Sistem mereka sangat tergantung pada trigger dan stored procedure yang kompleks, dengan skenario sebagai berikut:

  • Tabel employee memiliki kolom: ssn, name, salary, bonus, total_hours_project, dan performance_grade.
  • Tabel works_on memiliki kolom: essn, project_id, hours.
  • Setiap kali jam kerja dimasukkan, total_hours_project diperbarui otomatis.
  • Jika total_hours_project > 200, maka bonus otomatis diberikan sebesar 20% dari gaji pokok.
  • Jika performance_grade diubah menjadi "A", maka stored procedure akan memanggil prosedur pemberian bonus tambahan.
  • Terdapat trigger untuk menolak semua insert/update yang menyebabkan salary + bonus > 1.5 * (salary supervisor).

Jika terdapat trigger:

CREATE TRIGGER check_performance BEFORE UPDATE ON employee

FOR EACH ROW

WHEN (NEW.performance_grade = 'A')

EXECUTE FUNCTION bonus_check();

Dan terdapat function dengan nama bonus_check(), di mana dalamnya seperti ini:

IF NEW.bonus > 0 AND OLD.bonus = 0 THEN

RAISE EXCEPTION 'Bonus manipulation detected!';

END IF;

Apa potensi masalah yang terjadi dari kode diatas?

100%
0%
0%
0%
Переглянути це питання

Digitaro adalah perusahaan fintech yang menerapkan sistem insentif otomatis berbasis jam kerja dan performa. Sistem mereka sangat tergantung pada trigger dan stored procedure yang kompleks, dengan skenario sebagai berikut:

  • Tabel employee memiliki kolom: ssn, name, salary, bonus, total_hours_project, dan performance_grade.
  • Tabel works_on memiliki kolom: essn, project_id, hours.
  • Setiap kali jam kerja dimasukkan, total_hours_project diperbarui otomatis.
  • Jika total_hours_project > 200, maka bonus otomatis diberikan sebesar 20% dari gaji pokok.
  • Jika performance_grade diubah menjadi "A", maka stored procedure akan memanggil prosedur pemberian bonus tambahan.
  • Terdapat trigger untuk menolak semua insert/update yang menyebabkan salary + bonus > 1.5 * (salary supervisor).

Jika terdapat trigger pada employee yang akan:

  • Setelah update salary ➝ memanggil stored procedure recalculate_bonus()
  • Namun, ternyata recalculate_bonus() juga melakukan UPDATE employee SET salary = salary + 500 jika jam kerja > 250.

Apa yang mungkin terjadi?

0%
100%
0%
0%
Переглянути це питання

Digitaro adalah perusahaan fintech yang menerapkan sistem insentif otomatis berbasis jam kerja dan performa. Sistem mereka sangat tergantung pada trigger dan stored procedure yang kompleks, dengan skenario sebagai berikut:

  • Tabel employee memiliki kolom: ssn, name, salary, bonus, total_hours_project, dan performance_grade.
  • Tabel works_on memiliki kolom: essn, project_id, hours.
  • Setiap kali jam kerja dimasukkan, total_hours_project diperbarui otomatis.
  • Jika total_hours_project > 200, maka bonus otomatis diberikan sebesar 20% dari gaji pokok.
  • Jika performance_grade diubah menjadi "A", maka stored procedure akan memanggil prosedur pemberian bonus tambahan.
  • Terdapat trigger untuk menolak semua insert/update yang menyebabkan salary + bonus > 1.5 * (salary supervisor).

Jika terdapat tiga trigger:

  • Trigger X: AFTER INSERT ON works_on ➝ Update total_hours_project
  • Trigger Y: AFTER UPDATE ON employee.total_hours_project ➝ Jalankan give_bonus() jika jam > 200
  • Trigger Z: BEFORE INSERT ON works_on ➝ Cek apakah jam yang ditambahkan valid (jam ≤ 12), kalau tidak raise exception

Apa yang mungkin terjadi jika ada query:

INSERT INTO works_on VALUES ('123', 'P5', 15);
100%
0%
0%
0%
Переглянути це питання

Perhatikan trigger dan store procedure dibawah ini

Pilihlah pernyataan yang paling tepat untuk kode di atas!

I. Penggunaan OLD.Fname tidak tepat.

II. Jika ingin tetap mempertahankan penggunaan OLD.Fname, perlu dibuat kondisi baru, yaitu

IF (TG_OP = 'INSERT') THEN RAISE EXCEPTION '% salary cannot greater than his/her supervisor salary', NEW.Fname;

III. Jika ingin tetap mempertahankan penggunaan OLD.Fname, perlu dibuat kondisi baru, yaitu

IF (TG_OP = 'UPDATE') THEN RAISE EXCEPTION '% salary cannot greater than his/her supervisor salary', NEW.Fname;

IV. Penggunaan OLD.Fname sudah tepat.

100%
0%
0%
0%
Переглянути це питання

Perhatikan definisi tabel berikut

CREATE TABLE EMPLOYEE (

Ssn VARCHAR PRIMARY KEY,

Fname VARCHAR,

Salary NUMERIC,

Super_ssn VARCHAR REFERENCES EMPLOYEE(Ssn),

Dno INT

);

Pilihlah trigger dan stored procedure yang paling tepat untuk memastikan bahwa tidak ada supervisor (Super_ssn) yang berbeda departemen dari pegawai yang dia supervisi.

0%
0%
0%
100%
Переглянути це питання

Manakah pernyataan berikut yang merupakan perbedaan utama antara trigger dan stored procedure dalam DBMS?

0%
0%
100%
0%
Переглянути це питання

Perhatikan trigger berikut:

CREATE TRIGGER log_perubahan 

AFTER DELETE OR INSERT ON PRODUK

FOR EACH ROW

EXECUTE PROCEDURE catat_perubahan();

i. Data pada tabel PRODUK dihapus, lalu prosedur catat_perubahan() akan dijalankan setelah data dihapus.

ii. Data pada tabel PRODUK ditambahkan, lalu prosedur catat_perubahan() akan dijalankan sebelum data ditambahkan.

iii. Data pada tabel PRODUK ditambahkan, lalu prosedur catat_perubahan() akan dijalankan setelah data ditambahkan.

iv. Data pada tabel PRODUK diubah, lalu prosedur catat_perubahan() akan dijalankan setelah data diubah.

v. Data pada tabel PRODUK ditambahkan, lalu prosedur catat_perubahan() akan dijalankan jika terjadi kesalahan saat penambahan data.

Trigger ini akan dijalankan setiap kali:

0%
0%
100%
0%
Переглянути це питання

Jika kita ingin membuat trigger yang dipicu setelah melakukan penambahan data pada tabel PEGAWAI, maka sintaks yang tepat adalah:

0%
0%
0%
100%
Переглянути це питання

Perhatikan kode dibawah ini

Apa efek dari trigger trg_audit_salary_update tersebut jika gaji seorang karyawan diperbarui dari 5000 menjadi 6000, tetapi bonus tetap?

100%
0%
0%
0%
Переглянути це питання

Seorang HR ingin memastikan bahwa setiap karyawan baru hanya bisa dimasukkan jika supervisornya sudah terdaftar di tabel employee. Bagaimana trigger sebaiknya dibuat?

0%
0%
100%
0%
Переглянути це питання

Хочете миттєвий доступ до всіх перевірених відповідей на scele.cs.ui.ac.id?

Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!