Rabu, 26 Januari 2011

kisi DBMS

1.       Mana yang salah tentang perintah berikut?
SQL> CREATE OR REPLACE TRIGGER AFT_INS_KEUANGAN
AFTER INSERT ON KEUANGAN
FOR EACH ROW
WHEN (:new.donasi > 0)
DECLARE
BEGIN
IF INSERTING THEN
UPDATE STATUS_MHS
SET STATUS = ‘lunas’
WHERE NIM = :new.nim;
END IF;
END;

a.       Trigger ini dijalankan setelah insert dilakukan pada tabel KEUANGAN.
b.      “:new.donasi” menunjuk kolom donasi pada data yang baru dimasukkan.
c.       “INSERTING” digunakan untuk memeriksa kondisi apakah sedang memasukkan data baru.
d.      “STATUS_MHS” adalah tabel yang di dalamnya ada kolom “STATUS” dan “NIM”
e.      Perintah DECLARE tanpa variabel membuat trigger ini tidak dapat dibuat.

2.       Mana yang salah tentang perintah berikut?
SQL> create trigger ledger_after_ins_row
before insert on LEDGER_AUDIT
for each row
begin
call INSERT_LEDGER_DUP(:new.Action_Date, :new.Action, :new.Item,
:new.Quantity, :new.QuantityType, :new.Rate,:new.Amount, :new.Person);
end; 

a.       Trigger ini dijalankan sebelum insert dilakukan pada tabel LEDGER_AUDIT.
b.      “INSERT_LEDGER_DUP” adalah nama procedure yang dipanggil untuk membuat duplikat data yang baru dimasukkan.
c.       “:new…..” mengambil data dari data yang baru  dimasukkan.
d.      perintah “for each row” tidak perlu, menghambat eksekusi trigger.
e.      perintah “for each row” perlu, untuk meyakinkan setiap record yang diisikan diduplikasi.

3.       Mana dua pernyataan berikut yang salah tentang perintah ini:
SQL> CREATE INDEX mahasiswa_idx ON mahasiswa(nim, nama, alamat );

a.       “mahasiswa_idx” adalah nama indeksnya.
b.      “mahasiswa” adalah nama tabelnya.
c.       tabel mahasiswa berisi hanya kolom-kolom (nim, nama, alamat).
d.      “(nim, nama, alamat)” adalah kolom-kolom di tabel mahasiswa yang akan dijadikan indeks.
e.      Indeks tak dapat dibuat karena kolom indeksnya lebih dari satu.

4.       Mana yang salah tentang perintah berikut?
CREATE or REPLACE VIEW mahasiswa_view (nim, nama, alamat)
AS
      SELECT nim, nama, alamat
      FROM mahasiswa
      WHERE alamat != ‘’ with check option;

a.       VIEW di atas menyimpan data asli mahasiswa
b.      VIEW di atas tidak menyimpan data asli mahasiswa, hanya menyimpan pointer-nya.
c.       “mahasiswa_view” akan menampilkan beberapa data dari tabel mahasiswa
d.      “check option” akan memeriksa setiap perubahan yang dilakukan pada view terhadap constraint yang diberlakukan terhadap setiap kolom.
e.      “alamat != ‘’” memeriksa alamat yang tidak kosong.

5.       Mana yang salah tentang perintah berikut?

CREATE SEQUENCE supplier_seq
    MINVALUE 1
    START WITH 1
    INCREMENT BY 1
    CACHE 20;
/

INSERT INTO suppliers
(supplier_id, supplier_name)
VALUES
(supplier_seq.nextval, 'Kraft Foods');
/

a.       “supplier_seq” adalah objek yang valid, dikenali, di ORACLE.
b.      Nilai awalnya 1, naik satu demi satu, sampai 20.
c.       Nilai awalnya 1, naik satu demi satu, sampai MAXVALUE default 999999999999999999999999999
d.      Mengambil nilai berikutnya dari objek sequence dilakukan dengan perintah “nextval”
e.      Perintah di atas mengisi dua kolom di tabel “suppliers”

6.       Mana yang salah tentang perintah berikut?

SQL> COMPUTE min max avg of bayar on prodi

a.       Perintah COMPUTE melakukan perhitungan dari sekelompok data.
b.      Hasil urutan eksekusi perintah ini bukan min max avg tetapi avg max min.
c.       “bayar” merupakan kolom dari sebuah tabel.
d.      “prodi” harus muncul pada perintah BREAK yang mendahului perintah COMPUTE.
e.      Perintah COMPUTE dapat dijalankan tanpa perintah BREAK.
7.       Mana yang salah tentang perintah berikut?

SQL> COLUMN prodi FORMAT A10 WORD_WRAPPED HEADING "PRODI|JUR"

a.       “prodi” merupakan kolom suatu tabel.
b.      “A10” berarti 10 huruf.
c.       WORD_WRAPPED berarti kata-kata akan diputus jika panjangnya melebihi 10 huruf.
d.      “PRODI|JUR” akan membuat judul dua baris jika ada perintah SET HEADSEP “|”.
e.      WORD_WRAPPED berarti kata-kata akan dilanjutkan di bawahnya jika panjangnya melebihi 10 huruf.
8.       Mana yang salah tentang perintah berikut?

SQL> TTITLE CENTER "DAFTAR MAHASISWA" SKIP CENTER"===============================================" SKIP 2  LEFT "User          : " SQL.USER SKIP RIGHT "Halaman :" FORMAT 99 SQL.PNO SKIP LEFT  "Tanggal       :" FORMAT A20 v_today SKIP LEFT  "=============================================================" BTITLE LEFT "----------------------------------------------------------------------------------------------"SKIP 2
a.       TTITLE memberi judul di atas, BTITLE memberi judul di bawah.
b.      CENTER untuk membuat tampilan berikutnya di tengah layar.
c.       SKIP n membuat baris baru kosong sebanyak n baris
d.      LEFT rata kiri
e.      “v_today “ merupakan kolom.
9.       Mana yang salah tentang perintah berikut?

SQL> SET DEFINE ON
SQL> ACCEPT file_name PROMPT "File penampung hasil report: "
SQL> SPOOL &file_name

a.       SET DEFINE ON untuk mendefinisikan variabel dari masukan keyboard
b.      “file_name” adalah variabel
c.       PROMPT untuk menampilkan pesan
d.      SPOOL untuk membuat report
e.      Nama file laporan berekstensi “rpt”

10.   Mana yang salah tentang perintah berikut?

SQL> select TO_CHAR(SYSDATE,'DD-MON-YYYY')today, nim, nama, prodi, bayar
  2> from mahasiswa ORDER BY 1,2;

a.       TO_CHAR adalah fungsi untuk mengubah tipe data selain CHAR menjadi CHAR
b.      “today” merupakan kolom
c.       “today” merupakan variabel
d.      “nim, nama, prodi, bayar” merupakan kolom
e.      ORDER BY 1,2 diurutkan pada kolom pertama dan kedua.

11.   Agar hasil pembuatan laporan diatur dalam format HTML, perlu diberikan perintah:
a.       SET MARKUP HTML ON SPOOL ON
b.      SET MARKUP ON SPOOL ON
c.       SET HTML ON SPOOL ON
d.      SET SPOOL HTML ON
e.      SET HTML ON

12.   Mana pernyataan yang salah tentang tuning:
a.       Tuning diperlukan ketika akses basis data Oracle lambat.
b.      Tuning dilakukan dengan mencari alternatif query (SQL) yang lebih efisien.
c.       Tuning dilakukan dengan menjalankan program khusus (explain plan for ….à @plan).
d.      Hasil program khusus tersebut menunjukkan langkah-langkah eksekusi.
e.      Hasil program khusus tersebut menunjukkan waktu eksekusi.

        13. Perhatikan dua buah query berikut:
                QUERY 1 :            select a.*,b.nama,c.kategori from buku a
where exists (select 1 from supplier b where
a.id_supplier=b.id_supplier) and
exists (select 1 from jenis c where a.id_jenis=c.id_jenis)

                QUERY 2 :     select a.*,b.nama,c.kategori from buku a
where a.id_supplier in (select b.id_supplier from supplier b) and
a.id_jenis in (select c.id_jenis from jenis c)

                Mana yang salah tentang dua buah query tersebut :
                a.  select 1 pada QUERY 1 bermakna munculkan kolom pertama.
                b.  select 1 pada QUERY 1 bermakna tampilkan angka 1 sebanyak record.
                c.  kata kunci  “exists” pada QUERY 1 digunakan untuk memeriksa keberadaan hasil subquery
     berikutnya.
d.  pelaksanaan kata kunci “in” pada umumnya lebih lambat daripada “exists”.
e.  perintah “select b.id_supplier” pada QUERY 2 dapat diganti “select id_supplier”.


14.  Penguncian data di Oracle dapat dilakukan terhadap hal-hal berikut, kecuali:
a.       row.
b.      multiple row.
c.       table.
d.      column.
e.       field.

        15.  Mana pernyataan yang salah tentang perintah berikut:
                                SQL> LOCK TABLE karyawan IN EXCLUSIVE MODE;
a.       perintah tersebut untuk mengunci tabel “karyawan”.
b.      user lain tidak dapat mengakses tabel “karyawan”.
c.       user lain boleh membaca tabel “karyawan”.
d.      Lock dapat dilepaskan dengan perintah COMMIT
e.      Lock dapat dilepaskan dengan perintah ROLLBACK

       16. Mana pernyataan berikut yang salah tentang deadlock:
a.       deadlock dapat terjadi meskipun hanya ada satu (sesi) user.
b.      deadlock dapat terjadi ketika ada dua atau lebih (sesi) user.
c.       deadlock terjadi ketika beberapa sesi user mencoba mengunci data, lalu permintaan mereka
tak dapat dilayani karena data sedang dipakai user lain.
d.      deadlock dapat dipecahkan oleh user yang terlibat deadlock tersebut.
e.      deadlock juga dapat dipecahkan oleh administrator.

       17. Mana pernyataan berikut yang salah tentang backup:
a.       backup bermanfaat ketika database rusak.
b.      backup dapat dilakukan terhadap data fisik asli.
c.       backup dapat dilakukan secara lojik.
d.      untuk mendapatkan database sebelum rusak, dilakukan recovery dari backup terakhir.
e.      untuk mendapatkan database sebelum rusak, dilakukan recovery dari backup paling awal.

       18. Mana pernyataan berikut yang salah tentang perintah berikut:
SQL> GRANT SELECT ON satu TO scotti;

a.       “scotti” adalah nama user
b.      “satu” adalah nama tabel
c.       “scotti” dapat melakukan “SELECT” terhadap tabel “satu”
d.      “scotti” dapat melakukan “UPDATE” pada tabel “satu”
e.      hanya “admin” yang dapat menjalankan perintah ini.

       19. Mana pernyataan berikut yang salah tentang perintah berikut:
SQL> CREATE ROLE mhs_role;
SQL> grant select on mahasiswa to mhs_role;
SQL> GRANT mhs_role to scotti;

a.       ROLE digunakan untuk menyederhanakan pemberian hak akses pada user
b.      “mhs_role” termasuk user
c.       “mhs_role” termasuk role
d.      User “scotti” diberi hak akses seperti yang diberikan pada “mhs_role”
e.      User “scotti” dapat membaca tabel “mahasiswa”

       20. Mana pernyataan berikut yang salah tentang SQL berikut:
CREATE OR REPLACE PROCEDURE GETORDERID ( v_orderID OUT ORDERS.OrderID%type)
AS
n_OrderID number;
BEGIN
    SELECT SUBSTR(MAX(OrderID),2,4) INTO v_OrderID FROM ORDERS;
    n_OrderID := TO_NUMBER(v_OrderID);
    n_OrderID := n_OrderID + 1;
    If n_OrderID <= 9 then
      v_OrderID := 'O000' || TO_CHAR(n_OrderID);
    else If n_OrderID <= 99 then
      v_OrderID := 'O00' || TO_CHAR(n_OrderID);
           else If n_OrderID <= 999 then
               v_OrderID := 'O0' || TO_CHAR(n_OrderID);
                  else
                           v_OrderID := 'O' || TO_CHAR(n_OrderID);
                  end if;
           end if;
    END IF;
END;
/

a.       Nama procedure tersebut adalah “GETORDERID”.
b.      Procedure tersebut memberikan hasilnya melalui variabel “v_orderID”.
c.       Kata kunci “OUT” dapat diganti “IN” dengan hasil yang tetap sama.
d.      Perintah  SUBSTR(MAX(OrderID),2,4)digunakan untuk mendapatkan empat huruf dari posisi kedua dari data OrderID terakhir.
e.      Perintah  TO_NUMBER(v_OrderID) digunakan untuk mendapatkan nilai angka dari string yang terdapat pada variabel v_OrderID.


Latihan soal DBMS klick

Tidak ada komentar:

Posting Komentar