Five types of constraints exist within an Oracle database. Each type enforces a different rule.
The types are: • NOT NULL constraints • UNIQUE constraints • PRIMARY KEY constraints • FOREIGN KEY constraints • CHECK constraints Email VARCHAR(20) CONSTRAINT email_ntnll NOT NULL,
CREATE TABLE clients( client_number NUMBER(6), first_name VARCHAR2(20), last_name VARCHAR2(20), phone VARCHAR2(20) CONSTRAINT phone_email_uk UNIQUE(email,phone), email VARCHAR2(10) CONSTRAINT NOT NULL, CONSTRAINT emailclients_email NOT NULL, CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number)); Controlling Views Using the view as stated, it is possible to INSERT, UPDATE, and DELETE information for all departments.
This may not be what the DBA intended when the view was created.
To control data access, two options can be added to the CREATE VIEW statement: • WITH CHECK OPTION • WITH READ ONLY The WITH CHECK OPTION ensures that DML operations performed on the view stay within the domain of the view. Any attempt to change the department number for any row in the view fails because it violates the WITH CHECK OPTION constraint. Notice in the example below that the WITH CHECK OPTION CONSTRAINT was given the name view_dept50_check.
DML Operations and Views
CREATE OR REPLACE VIEW view_dept50 AS SELECT department_id, employee_id, first_name, last_name, salary FROM employees WHERE department_id = 50 WITH CHECK OPTION CONSTRAINT view_dept50_check;
The WITH READ ONLY option ensures that no DML operations occur through the view. Any attempt to execute an INSERT, UPDATE, or DELETE statement will result in an Oracle server error.
DML Operations and Views
CREATE OR REPLACE VIEW view_dept50 AS
SELECT department_id, employee_id, first_name, last_name, salary FROM employees WHERE department_id = 50 WITH READ ONLY;
SQL GRANT Command SQL GRANT adalah perintah yang digunakan untuk menyediakan akses atau hak istimewa pada objek database untuk pengguna. Sintaks untuk perintah GRANT adalah:
GRANT
privilege_name
ON TO
object_name {user_name
|PUBLIC
|role_name}
[WITH GRANT OPTION];
privilege_name adalah hak akses atau hak istimewa yang diberikan kepada pengguna. Beberapa hak akses yang ALL, Execute, dan SELECT.
object_name adalah nama dari sebuah objek database seperti TABLE, VIEW, TERSIMPAN PROC dan URUTAN.
user_name adalah nama dari pengguna kepada siapa akses yang tepat yang diberikan.
user_name adalah nama dari pengguna kepada siapa akses yang tepat yang diberikan.
PUBLIK digunakan untuk memberikan hak akses ke semua pengguna.
PERAN adalah seperangkat hak dikelompokkan bersama.
DENGAN GRANT OPTION - Memungkinkan pengguna untuk memberikan hak akses kepada pengguna lain. Untuk Contoh: GRANT SELECT ON TO karyawan user1; Perintah ini memberikan izin SELECT di atas meja karyawan untuk user1.Y
SQL REVOKE Command: Perintah REVOKE menghapus hak akses pengguna atau hak istimewa untuk objek database. Sintaks untuk perintah REVOKE adalah:
REVOKE ON
privilege_name object_name
FROM {user_name |PUBLIC |role_name} Untuk Contoh: REVOKE SELECT ON karyawan DARI user1, perintah ini akan REVOKE hak istimewa SELECT di atas meja karyawan dari user1.When
Pengertian save point Savepoint adalah batu loncatan untuk transaksi dimana kondisi database dapat dikembalikan keposisi saat savepoint dibuat. Semua perubahan yang melewati savepoint tersebut akan dibuatpermanen. Pengertian Commit Adalah perintah yang berfungsi untuk mengendalikan pengeksekusian transaksi yang menyetujui rangkaian perintah yang berhubungan erat dengan perintah yang sebelumnya telah berhasil dilakukan. Pengertian Rollback Adalah perintah yang berfungsi untuk mengendalikan pengeksekusian transaksi yang membatalkan transaksi yang dilakukan karena adanya kesalahan atau kegagalan pada salah satu rangkaian perintah Contoh program save point insert into produk values('P0006','Permen','S0001','K3','1000','20','0'), ('P0007','Bayam','S0001','K2','1000','30','0'); ROLLBACK TO SAVEPOINT sp1; COMMIT;
Contoh program commit dan rollback Commit INSERT INTO departments VALUES (290, ‘Corporate Tax’, NULL, 1700); COMMIT;
Rollback DELETE FROM copy_emp;
ROLLBACK;