Selasa, 22 Oktober 2013

Tugas Pemrograman Basis Data II

Oracle developer memungkinkan untuk membangun system dengan performance yang tinggi menguntungkan bagi GUI (Graphical User Interface), database, client-server, dan teknologi web. Tools dari oracle developer mempunyai interface dan karakteristik umum yang memudahkan user dalam penggunaan serta mendesain elemen modular, kemudian dapat digunakan kembali (reusable).

SELECT nama, alamt, telp
FROM pelanggan
WHERE kota = ‘PONTIANAK’


ORDER BY nama;

 
Structured query language (SQL) merupakan bahasa untuk berkomunikasi dengan database relasional yang bersifat deklaratif (bukan prosedural) dengan menyatakn hasil (bukan cara memperoleh hasil ). Sebagai contoh, statemen SQL dibawah ini akan menampilkan informasi pelanggan dipontianak yang diurutkan secara ascending pada nama pelangga  Contoh :




PL/SQL adalah bahasa prosedural yang digunakan untuk mengoptimalkan pembuatan aplikasi database yang menggunakan database

PROCEDURE
Procedure adalah suatu blok PL/SQL yang menyimpan sekumpulan perintah yang tidak disertai dengan pengembalian nilai. Dengan kata lain, procedure hanya melakukan proses tertentu saja.
Syntax untuk membuat procedure
CREATE [OR REPLACE] PROCEDURE nama_procedure
(parameter_1 tipedata, parameter_2 tipedata, …) IS
variabel-variabel_lokal
BEGIN
                Statemen;
                ……
END;



FUNCTION
Function adalah sebuah blok PL/SQL yang dapat mengembalikan nilai. Maka dari itu dalam pembuatannya harus menggunakan statemen RETURN untuk proses pengembalian nilai
CREATE OR REPLACE FUNCTION nama_function
(parameter_1 tipedata, parameter_2 tipedata, …) IS
RETURN tipedata_function IS
variabel-variabel_lokal
BEGIN
   Statemen;
   ……
   RETURN nilai_function;
END;

Package
Package adalah sebuah schema object yang mengelompokkan PL/SQL types, items, dan subprograms, yang terkait secara logikal.

%TYPE
Tipe data ini dipakai untuk menandakan bahwa variabelyang deklarasikan sama dengan tipe data dari kolom tabel tertentu.

USER SOURCE
User source adalah naskah yang berisi kode procedure yang dapat di modifikasi jika masalah / kesalah.

USER OBJECTS
adalah semua data objek yang dapat diakses oleh user dan untuk meliat suatu nilai apakah nilai tersebut valid atau tidak valid.

USER DEPENDENCIES
User dependencies adalah sebuah data yang dapat berdiri sendiri pada table dictinary

GRANT
Grant merupakan perintah/mengijinkan yang digunakan untuk mengizinkan seorang user untuk mengakses tabel pada database tertentu.
Contoh:
GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01






REVOKE
REVOKE, merupakan perintah yang digunakan untuk mencabut suatu hak akses seorang user pada tabel dalam database tertentu.
Contoh:
REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01
REVOKE ALL ON CLUB FROM PUBLIC

DATABASE ADMINISTRATOR
Jika ada data yang tidak sengaja telah di drop tidak dapa di kembalikan lagi walaupun menggunakan Rollbeck hanya seseorang databese administrator yang dapat recoveri data yang sudah di hapus / drop .

CREATE OR REPLACE PROCEDURE
Digunakan untuk merubah/menggati suatu procedure supaya mencegah kesalahan ,dalam create or replace procedure kita sebenarnya membuat procedure lagi yang sudah ada hanya saja merplace procedure yang lama

PARAMETER
parameter yang terdapat pada Procedure dinamakan Formal Parameter. Sedangkan Parameter yang terdapat pada si pemanggil Procedure adalah Actual Parameter.
Tipe Parameter pada Procedure ada 3 :
  1. IN parameter, Merupakan Tipe parameter yang didefinisikan pada aktual parameter untuk kemudian ditangkap oleh formal parameter. Kita tidak perlu menuliskan IN untuk mendefinisikan parameter tersebut, karena parameter IN telah didefinisikan secara DEFAULT oleh Oracle.

 OUT parameter. Merupakan  tipe parameter pada procedure yang nilainya dapat digunakan oleh si pemanggil procedure dan bisa dibilang OUT parameter merupakan kebalikan dari IN parameter.

  1. IN OUT parameter. Tipe parameter yang digunakan untuk mengirimkan sebuah nilai ke procedure yang kemudian akan diproses dan dikembalikan kepada si pemanggil procedure.

MENGGUNKAN DEFAULT PADA PARAMETER
Dapat menetapkan nilai default ke dalam parameter IN sebagai berikut :
1.      Tugas operator (:=) untuk menampilkan nama parameter
Nilai default tidak dapat pada parameter out dan in out

Perintah Perinta pada Procedure antaranya
·         DROP PROCEDURE calc_comm;
·         ALTER PROCEDUR calc_comm;
·         dll




    
   1. The UPDATE_EMPLOYEE procedure contains an algorithm that calculates an employee's commission multiple times throughout the program. If a change is made to the algorithm, the change must be made multiple times. How can this procedure be modified to simplify the code and reduce duplicated code?

Jawab  : C. Add a local subprogram containing the algorithm.
Alasan : Suatu perintah sql untuk Menambahkan subprogram agar mempermudah dan tidak membuat ulang programnya.
    2.      For which reason might you create a subprogram within a procedure?
Jawab : D. to store a repeating block of code once without creating a separate construct
Alasan : Untuk membuat suatu program hanya sekali tanpa harus membuat ulang programnya
    3.      When invoking a procedure, you can specify the arguments using the positional method by listing the values in the order of the argument list. Which method would you use to list values in an arbitrary order?
Jawab : D. Named
Alasan : Suatu method yang digunakan untuk mengisi nilai yang dapat dijadikan  perintah yang diubah-ubah
     4.      Which type of construct should you create to solely perform an action without returning a value?
Jawab : C. procedure
Alasan : Karena procedure tidak mengembalikan nilai
    5.      Examine this procedure:
           CREATE OR REPLACE PROCEDURE find_seats_sold
           (v_movie_id IN NUMBER DEFAULT 34, v_theater_id IN NUMBER) IS
           v_seats_sold gross_receipt.seats_sold%TYPE;
           BEGIN
           SELECT seats_sold INTO v_seats_sold FROM gross_receipt
           WHERE movie_id = v_movie_id AND theater_id = v_theater_id;
           END;
           Which command will successfully invoke this procedure in SQL*Plus?
Jawab : C. EXECUTE find_seats_sold (v_theater_id => 500, v_movie_id => 34);
Alasan : Untuk menjalankan digunakan perintah execute jawaban a tidak sesuai karena tidak ada parameter b syntax RUN bukan perintah menjalankan program dan d kurang sesuai karena berupa inputan jawaban c paling sesuai menurut syntax



   13.  Procedures and functions can be created and stored in the database or in an Oracle Developer application. How is performance improved when storing procedures and functions in the database?

Jawab : C. Network traffic is decreased by bundling commands.
Alasan : untuk meningkatkan performance ketika penyimpanan prosedur dan function dalam database adalah dengan menurunkan lalulintas jaringan.

    14.  Examine this function:

            CREATE OR REPLACE FUNCTION set_budget
            (v_studio_id IN NUMBER, v_new_budget IN NUMBER)
            RETURN BOOLEAN IS
            BEGIN
            UPDATE studio
            SET yearly_budget = v_new_budget
            WHERE id = v_studio_id;
            IF SQL%FOUND THEN
            RETURN TRUE;
            ELSE RETURN FALSE;
            END IF;
            COMMIT;
            END;

            Which code will successfully invoke this function?
Jawab : D. DECLARE v_updated_flag BOOLEAN;
            BEGIN
            v_updated_flag :=      set_budget(11,500000000);
            END;
Alasan : untuk menjalankan perintah function yang benar adalah dengan memberi deklarasi kemudian nama function type data true/false boolean, kemudian mengisi nama parameter dan function dengan 11,500000000.

    15.  Which two subprogram headers are correct? (Choose two.)

Jawab : B. CREATE OR REPLACE PROCEDURE get_sal (v_sal IN number) IS
CREATE OR REPLACE FUNCTION calc_comm RETURN number (p_amnt IN number)
D. CREATE OR REPLACE FUNCTION calc_comm (p_amnt IN number) RETURN number
Alasan : jawaban a salah karena salah penempatan is, c salah karena function akan mengembalikan type data bukan parameter, jawaban d seharusnya hanya ada parameter saja.

   16.  Procedures and functions are very similar. For which reason would you choose a function over a procedure?

Jawab : B. A function can be used in a SQL statement.
Alasan : karena function dapat digunakan dalam perintah SQL

   17.  The GET_BUDGET function is no longer needed and should be removed. Which command will successfully remove this function from the database?

Jawab : C. DROP FUNCTION get_budget;
Alasan : untuk menghapus function get_budget maka digunakan drop function

    18.  Which code successfully calculates commission returning it to the calling environment?

Jawab : D. CREATE OR REPLACE FUNCTION calc_comm (v_emp_id IN NUMBER) RETURN number IS
            v_total NUMBER;
            BEGIN
            SELECT SUM(ord.total) INTO v_total
            FROM ord,customer
            WHERE ord.custid = customer.custid
            AND customer.repid = v_emp_id;
            RETURN (v_total * .20);
            END;
Alasan : Jawaban A dan B salah karena tidak mengembalikan nilai sedangkan C syntax tidak lengkap

    19.  Examine this function:

            CREATE OR REPLACE FUNCTION get_budget
            (v_studio_id IN NUMBER, v_max_budget IN NUMBER) RETURN number IS
            v_yearly_budget NUMBER;
            BEGIN
            SELECT yearly_budget INTO v_yearly_budget FROM studio
            WHERE id = v_studio_id;
            IF v_yearly_budget > v_max_budget THEN RETURN v_max_budget;
            ELSE RETURN v_yearly_budget;
            END IF;
            END;

            Which set of statements will successfully invoke this function within SQL*Plus?
Jawab : A. SELECT id, name, get_budget(id,200) FROM studio;
Alasan : untuk memanggil function digunakan select kemudian nama function

    20.  A stored function can be invoked in many different ways. Which invocation example is NOT valid?
Jawab : D. executing the stored function within the DEFAULT clause of the CREATE TABLE
Alasan : Karena function tidak dapat membuat tabel

    21.  You have just created a PL/SQL user-defined function called CALC_COMM. Which statement will successfully test it?
Jawab : D. SELECT * FROM ord GROUP BY ordid HAVING calc_comm(total) > 5000;
Alasan : Memanggil function dengan kondisi having....function

    22.  How do functions simplify maintainability?
Jawab : A. by limiting changes to logic to one location
Alasan : memperbaiki satu lokasi function untuk pemanggilan satu function



    23.  Which two statements are true? (Choose two.)

Jawab : A. function must return a value.
D. A function can be invoked from within a PL/SQL expression.
Alasan : karena pernyataan yang benar adalah function pasti mengembalikan nilai dan function dapat digunakan dalam PL/SQL

     24.  Examine this statement:

            SELECT id, theater_pck.get_budget(id)
            FROM studio;

            What must be true about the GET_BUDGET function for this statement to be successful?
Jawab : B. It must not modify the database.
Alasan : tidak bisa memodifikasi database karena select untuk menampilkan

      25.  Examine this function:

            CREATE OR REPLACE FUNCTION get_budget
            RETURN number IS
            v_yearly_budget NUMBER;
            BEGIN
            SELECT yearly_budget INTO v_yearly_budget
            FROM studio WHERE id = v_studio_id;
            RETURN v_yearly_budget;
            END;

            What additional code is needed to compile this function successfully?
Jawab : D. Add "(v_studio_id IN NUMBER)" right before the RETURN statement of the header.
Alasan : Karena yang dibutuhkan adalah Menambah variable sebelum return

     C.     EXECUTE find_seats_sold (v_theater_id => 500);
Command yang digunakan untuk memanggil procedure find_seat_sold adalah EXECUTE find_seat_sold(v_thetater_id =>500);,v_movie_id telah diisi dengan 34 karena di default dan v_theater_id diisi 500.
 27.              Which statement about declaring parameters is true?
B .Data type and maximum length are required.
Pendeklarasian parameter yang benar dalam oracle dengan tipe varchar2 yaitu harus menambahkan data type dan maximum length.

    29.    The CALC_COMM procedure is no longer needed and should be removed. Which command will successfully remove this procedure from the database?
    A.    DROP calc_comm;
DROP digunakan untuk menghapus suatu object database tertentu.
    30.  Examine this procedure:
     CREATE PROCEDURE add_theater IS
     BEGIN
     INSERT INTO theater
     VALUES (35, 'Riverplace Theatre', '1222 River Drive, Austin, Tx.');
     END;
     Which three statements about this procedure are true? (Choose three.)
     A.    The ADD_THEATER procedure is written in SQL.
     B.     The ADD_THEATER procedure can be shared by multiple programs.
     C.     The ADD_THEATER procedure will be stored in the database as a schema object.