Anda di halaman 1dari 5

Nama : Faza Mohammad Farsyafat

NIM : 1207050038
Kelas : Teknik Informatika – B

UTS – Prak Managemen Basis Data / Teori Managemen Basis Data

1. Soal
Buatlah resume menggunakan kata-kata sendiri mengenai pengelolaan basis data
sebagaimana terdapat pada materi PLSQL untuk section:

a. Section 14 Constraints

Jawab : Menurut sependek pengetahuan saya, Constraints berfungsi untuk membatasi tipe
objek satu yang dapat dikaitkan dengan tipe objek lain menggunakan tipe tautan tertentu
yang di pilih.

Adapun bentuk-bentuk constrain yang saya ketahui itu ada 5 jwnis yakni sebagai berikut.

Umumnya jenis Constraint mengandung:

NOT NULL Constraint: untuk memastikan kolom dalam tabel tidak berisi nilai NULL.

CREATE TABLE Pelanggan


(Kode Integer NOT NULL,
Nama Varchar (30) NOT NULL,
Alamat Varchar(30));

UNIQUE Constraint: untuk memastikan tidak ada data ganda dalam kolom.
CREATE TABLE Pelanggan
(Kode Integer UNIQUE,
Nama Varchar (30),
Alamat Varchar(30));
Fungsi constraint ini untuk membedakn satu data dengan satu data lainya ketika memang
datanya banyak.

CHECK Constraint: memastikan data dalam kolom memenuhi kriteria yang ditentukan.
CREATE TABLE Pelanggan
(Kode integer CHECK (Kode > 0),
Nama varchar (30),
Alamat varchar(30));
Pada contoh di sini kriteria field Kode harus lebih besar dari 0, jika data dientry lebih kecil
dari 0 akan terjadi error dan data tidak akan dapat disimpan ke table.

Primary Key Constraint: digunakan untuk mengidentifikasi secara unik pada baris. MySQL:
Oracle:
CREATE TABLE Pelanggan
(Kode integer PRIMARY KEY,
Nama varchar(30),
Alamat varchar(30));
Constraint ini berfungsi sebagai kunci ketika pencarian data berbeda berhubungan dengan
unique constraint.
Foreign Key Constraint: digunakan untuk integritas referensi dari data.
MySQL:
CREATE TABLE ORDERS
(Kode_Order integer,
Tgl_Order date,
Kode_Pelanggan integer,
Jumlah double,
Primary Key (Order_ID),
Foreign Key (Kode_Pelanggan) references Pelanggan(Kode));

Oracle:
CREATE TABLE ORDERS
(Kode_Order integer primary key,
Tgl_Order date,
Kode_Pelanggan integer references Pelanggan(Kode),
Jumlah double);

b. Section 17 Priviledges and Regular Expression

Jawab : Priviledges Adalah Sebuah hak akses untuk mengelola keseluhan database
singkatnya. Sebagai contoh pada mysql , MySQL memungkinkan kita mengatur hak akses
user sampai pada tingkat kolom. Artinya kita dapat mengatur kolom tertentu dapat diakses
oleh user siapa saja. Semua pengaturan hak akses (privileges) tersimpan di database mysql
yang secara default sudah ada di sistem MySQL.

Di dalam database mysql antara lain terdapat tabel-tabel sebagai berikut:

 Hak Akses Global (*.*)

Hak akses ini berarti user dapat memiliki hak akses untuk seluruh database yang terdapat
di dalam MySQL. Contoh penulisan query GRANT untuk level ini adalah:

GRANT SELECT ON *.* TO 'user'@'localhost';

Perhatikan cara penulisan nama_database.nama_tabel, dimana kita menulisnya


dengan *.*, sehingga user tersebut dapat mengakses seluruh tabel pada seluruh database.

 Hak Akses Level Database (nama_database.*)

Hak akses ini berarti user memiliki hak akses penuh untuk sebuah database. Contoh
penulisan query GRANT untuk level database ini adalah:

GRANT SELECT ON universitas.* TO 'user'@'localhost';

Untuk penulisan nama_database.nama_tabel, kita membatasi nama database, namun


memberikan hak akses untuk seluruh tabel, penulisannya adalah nama_database.*

 Hak Akses Level Tabel (nama_database.nama_tabel)

Hak akses ini berarti user memiliki hak akses untuk sebuah tabel yang berada pada sebuah
database. Contoh penulisan query GRANT untuk level ini adalah:

GRANT SELECT ON universitas.mahasiswa_ilkom TO 'user'@'localhost';


Hak akses yang dimiliki user hanya terbatas pada level sebuah tabel saja.

 Hak Akses Level Kolom (nama_kolom)

Hak akses ini adalah hak akses paling kecil yang dapat diberikan kepada sebuah user.
Dengan hak akses level kolom, user hanya memiliki hak akses untuk beberapa kolom pada
sebuah tabel. Contoh penulisan query GRANT untuk level kolom ini adalah:

GRANT SELECT (nama,umur) ON universitas.mahasiswa_ilkom TO 'user'@'localhost';

Level paling akhir ini kita membatasi hak akses user hanya untuk kolom tertentu saja.
Penulisan kolom yang diperbolehkan diletakkan di dalam tanda kurung.

Cara Memberikan Hak Akses Untuk Seluruh Tabel


Sebagai contoh kedua, kali ini kita akan membuat user mahasiswa yang diberikan
hak akses untuk dapat melihat seluruh tabel yang ada pada database universitas,
berikut querynya:
1 mysql> CREATE USER 'mahasiswa'@'localhost' IDENTIFIED BY 'r4hasia';
2 Query OK, 0 rows affected (0.01 sec)
3
4 mysql> GRANT SELECT ON universitas.* TO 'mahasiswa'@'localhost';
5 Query OK, 0 rows affected (0.00 sec)

Pembuatan user mahasiswa ini hampir sama dengan perintah saat membuat
user ilkom_admin. Kecuali kali ini untuk penulisan tabel kita menggunakan
format universitas.* yang berarti dapat mengakses seluruh tabel pada
database universitas.
Selanjutnya, kita akan mencoba menggunakan user mahasiswa untuk melihat
database universitas:
1 D:\MySQL\bin>mysql -u mahasiswa -pr4hasia
2
3 Welcome to the MySQL monitor. Commands end with ; or \g.
4 Your MySQL connection id is 3
5
6 Server version: 5.5.27 MySQL Community Server (GPL)
7 Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
8 Oracle is a registered trademark of Oracle Corporation and/or its
9 affiliates. Other names may be trademarks of their respective
10 owners.
11
12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
13
14 mysql> USE universitas;
15 Database changed
16
17 mysql> SHOW TABLES;
18 +-----------------------+
19 | Tables_in_universitas |
20 +-----------------------+
21 | mahasiswa_ekonomi |
22 | mahasiswa_ilkom |
23 +-----------------------+
24 2 rows in set (0.00 sec)

Dari hasil query diatas, terlihat bahwa user mahasiswa dapat melihat terdapat 2
tabel dalam database universitas. Dan jika kita membuat sebuah tabel baru dalam
database universitas, user mahasiswa juga akan bisa melihatnya.

Cara Memberikan Seluruh Hak Akses (query GRANT ALL)


Dari kedua contoh user sebelumnya, yakni user ilkom_admin dan mahasiswa, kita
hanya menggunakan hak akses SELECT. Kali ini kita akan memberikan hak akses
penuh kepada user ekonomi_admin, dengan query GRANT ALL. Berikut querynya:
1 mysql> CREATE USER 'ekonomi_admin'@'localhost' IDENTIFIED BY 'r4hasia';
2 Query OK, 0 rows affected (0.00 sec)
3
4 mysql> GRANT ALL ON universitas.mahasiswa_ekonomi
5 TO 'ekonomi_admin'@'localhost';
6 Query OK, 0 rows affected (0.00 sec)

Dengan memberikan hak akses GRANT ALL, maka user ekonomi_admin dapat
menggunakan seluruh query dasar pada tabel mahasiswa_ekonomi,
seperti SELECT, UPDATE, bahkan DELETE. Sebagai latihan, silahkan mencoba
masuk sebagai user ekonomi_admin dan lakukan perintah seperti UPDATE,
DELETE, dan DROP.

c. Section 18 TCL

Jawab : Database transaction adalah salah satu subset yang disediakan SQL. Gunanya untuk
mengatur alur data transaksi dalam suatu database. Transaction ini biasanya digunakan
didalam trigger. Namun, jangan samakan transaction ini dengan trigger. Trigger dijalankan
untuk menanggapi perubahan tertentu pada tabel tertentu.

Transactions memiliki empat sifat standar berikut, biasanya disebut dengan akronim ACID :

1. Atomicity : memastikan bahwa semua operasi di dalam unit kerja selesai dengan
sukses. Jika tidak, maka transaction akan dibatalkan pada pada titik kegagalan
kemudian operasi sebelumnya dikembalikan ke keadaan semula.

2. Consistency : memastikan bahwa database benar-benar mengubah keadaan pada


transactions yang berhasil dilakukan.

3. Isolation : memungkinkan transactions beroperasi secara independen dan transparan


satu sama lain.

4. Durability : memastikan bahwa hasil atau akibat dari transactions yang dilakukan
tetap dijalankan meski terjadi kegagalan sistem.

COMMIT and ROLLBACK

Bila transactions telah berhasil, maka perintah COMMIT harus dieksekusi sehingga perubahan
pada semua tabel yang terlibat akan mulai berlaku. Jika terjadi kegagalan, perintah
ROLLBACK harus dieksekusi untuk mengembalikan setiap tabel yang mengacu dalam
transactions ke keadaan sebelumnya.
Kita dapat mengontrol transactions dengan menetapkan variabel sesi yang disebut
AUTOCOMMIT. Jika AUTOCOMMIT di-set ke 1 (default), maka setiap pernyataan SQL (dalam
transaksi atau tidak) dianggap sebagai transaction yang lengkap dan dilakukan secara default
ketika selesai dijalankan.

Ketika AUTOCOMMIT di-set ke 0, dengan mengeluarkan perintah SET AUTOCOMMIT = 0,


rangkaian pernyataan berikutnya bertindak seperti sebuah transaction dan tidak ada aktivitas
yang dilakukan sampai pernyataan COMMIT secara eksplisit dijalankan kembali.

Anda mungkin juga menyukai