PEMBUATAN DAN MANEJEMEN TABEL
1. Dasar Teori
Sebuah tabel terdiri dari baris (row) dan kolom (column), dimana jumlah dan nama kolom harus didefinisikan terlabih dahulu di awal. Sedangkan baris merupakan sebuah variabel yang dapat dihapus dan diisi kapanpun, sehingga jumlahnya selalu berubah sesuai dengan jumlah data didalamnya. Setiap kolom dalam tabel mempunyai tipe data, tipe data digunakan untuk membatasi jenis data yang bisa dimasukkan, sehingga akan mempermudah dalam menggunakannya dan melakukan pengelolaan selanjutnya. Sangat disarankan pada saat akan membuat tabel, sebaiknya membuat sebuah aturan khusus dalam penentuan tabel-tabel yang akan dibuat dan memberikan nama kolom maupun tipe datanya.
Query adalah semacam kemampuan untuk menampilkan suatu data dari database dimana mengambil dari table-tabel yang ada di database, namun tabel tersebut tidak semua ditampilkan sesuai dengan yang kita inginkan. data apa yang ingin kita tampilkan.
DDL atau Data Definition Language adalah kumpulan perintah SQL yang dapat digunakan untuk membuat dan mengubah struktur dan definisi tipe data dari objek-objek database seperti tabel, index, trigger, view, dan lain-lain. DML atau Data Manipulation Language adalah kumpulan perintah SQL yang berhubungan dengan pekerjaan mengolah data di dalam table.
Seperti yang kita ketahui Basis Data merupakan kumpulan data yang
saling berhubungan (Relational). Pada prinsipnya basis data menggunakan model
Relational karena pada model ini menggunakan kunci (key) untuk mengindentifikasi atau
membedakan antara satu tabel dengan tabel lainya.
Kunci-kunci yang digunakan memiliki
fungsi masing-masing dalam mengindentifikasi yang berbeda-beda. Berikut ini
macam-macam key pada sebuah model Relational :
a. Super Key
Super key merupakan sebuah atribut data atau kumplan atribut yang
secara unik dapat mengindentifikasi sebuah tupel.
contoh : misalnya database akademik maka super key yang digunakan
adalah : npm,nama_mhs,tgllahir, alamat, dst
b. Candidat Key
Candidat key merupakan super key yang minal dapat
mengindentifikasi tupel secara unik.
contoh : npm dan nama_mhs
c. Primary Key
Primary key merupakan candidat key yang terpilih yang secara unik
yang dapat mengindentifikasi tupel
contoh : npm
d. Alternate key
Alternate key merupakan key yang tidak terpilih
contoh : nama_mhs
e. Composite key
Composite key merupakan gabungan dua key atau lebih yang secara
unik dapat menidentiifikasi sebuah tupel.
Contoh : npm, dan kode_matkul
f. Foreign Key
Foreign Key merupakan atribut yang merupakan key pada relasi lain.
Contoh : npm, kode_matkul pada relasi ambil_matkul
Ø Perintah Dasar PostgreSQL
Catatan :
• Tabel harus memiliki primary key, artinya dalam pembuatan tabel haruslah terdapat sekelompok kolom (field) yang menyebabkan setiap baris (record) dalam tabel tersebut tidak sama dan juga digunakan untuk mempercepat dalam pencarian.
• Deklarasi primary key tidak boleh kosong (null), jadi kita harus mendeklarasikan sebagai not null. Namun secara default PostgreSQL menganggapnya sebagai nullable (boleh kosong), jika waktu pengisian tidak menyebutkan null atau not Bull.
Struktur query yang digunakan membuat tabel dengan dua kolom:
create table namatabel (namakolom tipedata keterangan, namakolom tipedata keterangan);
*Cttn : Untuk melihat struktur tabel yang telah dibuat ketikkan perintah \d dan melihat semua tabel menggunakan \z.
Contoh : Membuat tabel baru dengan nama infoprib sebagai berikut :
Struktur query yang digunakan menghapus tabel :
drop table namatabel;
Manipulasi Data
Dalam pembuatan tabel
sebaiknya direncanakan field
dan tipe datanya
untuk meminimalisir kesalahan saat
tabel telah berisi
data. Namun meskipun
begitu bukan berarti tabel tidak
bisa diubah dan dihapus. PostgreSQL telah menyediakan utilitas untuk
manipulasi ini dan
perlu diingat hal
ini bukan manipulasi
data melainkan manipulasi struktur tabelnya.
Struktur query yang digunakan untuk menghapus kolom :
alter table namatabel drop column “namakolom”;
Struktur query yang digunakan untuk menambah kolom:
alter table namatabel add column “namakolom” tipe data;
Struktur query yang digunakan untuk mengubah nama tabel :
alter table namatabelasal rename to namatabelbaru;
Struktur query yang digunakan untuk mengubah nama kolom :
alter
table namatable rename column “namakolom asal” to namakolombaru;
Struktur query yang digunakan untuk mengubah type dari kolom
tertentu :
alter table namatable alter column namakolom type namatypepengganti;
Struktur query yang digunakan untuk menambahkan primary key pada
tabel :
alter table namatabel add primary key (namakolom);
Temporary Tabel
Temporary tabel sifatnya hanya sementara artinya akan aktif hanya ketika kita sedang berada atau login ke database namun ketika kita logout dari psql database maka secara otomatis temporary tabel akan terhapus.
Struktur query yang digunakan membuat tabel dengan dua kolom:
create temporary table namatabel (namakolom tipedata keterangan ,
namakolom tipedata keterangan);
GRANT dan REVOKE
Pada saat membuat
tabel pada user
tertentu maka hanya
user tersebut dan
user postgres yang dapat
mengakses tabel itu.
Namun jika kita
ingin agar tabel
yang telah dibuat pada user kita
dapat diakses oleh user tertentu atau semua user yang berada pada
PostgreSQL, maka semua
itu dapat dilakukan
dengan perintah GRANT.
Jika ingin mencabut hak akses
kita bisa menggunakan perintah REVOKE.
Berikut struktur penggunaan GRANT
untuk semua hak akses :
grant all on table namatabel to namauser;
Berikut struktur penggunaan REVOKE untuk semua hak akses :
revoke all on table namatabel from namauser;
Struktur query untuk menghapus salah satu hak akses, misalnya
UPDATE :
revoke update on tabel namatabel from namauser;
Struktur query untuk memberi salah satu hak akses, misalnya DELETE
:
grant delete on tabel namatabel to namauser;
Turunan (Inheritance)
INHERITANCE
dipergunakan jika ingin
membuat sebuah tabel
baru yang
berhubungan dengan tabel yang ada, dengan kata lain turunan tabel
pertama.
Struktur penggunaan query INHERITANCE :
create temporary table
namatabel (namakolom tipedata
keterangan ,
namakolom tipedata keterangan) inherits (namatabelinduk);
Ø Perintah Dasar MySQL
Membuat Database
Create Database_nama
Menghapus database
Drop Database db_nama
Membuat Tabel
Create Table Tbk_name(field
1 type_data, field 2 type_data)
Mengahapus tabel
Drop Table tb_name
Menambah Primary Key
Alter Table tb_name
ADD Primary Key (field_name)
Menghapus hak akses
Revoke ALL on
nama_db.nama_tabel from nama_user@localhost identified by ‘password’
Memberikan
hak akses
Grant all privileges on tb_name to user_name@localhost identified by
‘password’
2. Hasil Praktikum Dan Tugas Rumah
- Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya.
- Buatlah sebuah tabel lagi dengan nama pegawai dan nama field sama dengan tabel identitas
- Hapus kolom “alamat_idn” dan tampilkan struktur dari tabel pegawai tadi.
- Tambahkan kolom “pekerjaan_idn” dengan type data varchar dan tampilkan struktur tabel pegawai.
- Ubah nama tabel pegawai menjadi pekerjaNIM kemudian ubah nama kolom
“pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.
- Berikan Primary key pada tabel pekerjaNIM dan ubah type data pada kolom “alamat_idn” menjadi text. Kemudian tampilkan struktur tabel.
- Hapus tabel pekerjaNIM
- Buat temporary tabel dengan nama mahasiswa_sementara dengan 3 kolom yaitu id, nama, tanggal lahir dan tampilkan tabel atau strukturnya.
- Hapus semua hak akses tabel tertentu kepada salah satu user yang telah dibuat dan lakukan pengecekan. Kemudian berikan semua hak akses kembali dan lakukan pengecekan kembali. Hapus hak akses SELECT tabel tertentu kepada salah satu user dan lakukan pengecekan.
- Buat tabel baru dengan nama Gaji, dengan catatan pembuatan tabel berasal dari turunan tabel number 1 dan tambahkan kolom gaji kotor, pajak, dan gaji bersih. Kemudian tampilkan strukturnya. Berhubung di mysql nggak bisa pakek inheritance , makanya saya pakek manual saja seperti contoh soal pertama =D hahaha
TUGAS RUMAH
Buat database dan
tabel sistem pada
pertemuan 1 menggunakan
query dan dilengkapi dengan tampilan strukturnya.
Jawabannya :
Menurut Pemahamana saya, Berikut ini adalah query pembuatan database “Rental_Mobil” sesuai
dengan rancangan ERD pada tugas Minggu lalu atau pertemuan yang pertama. Dan
pembuatan tabel beserta tampilan strukturnya.
a.
Tabel
penyewa
b.
Tabel
Mobil
c.
Tabel
Transaksi
3. Evaluasi perbandingan PostgreSQL dan MySQL
Instruksi
|
PostgreSQL
|
MySQL
|
Membuat Tabel
|
Create Table
nama_tabel (nama_kolom type_data ket);
|
Create Table
nama_tabel (nama_kolom type_data ket);
|
Koneksi ke
database
|
\c nama_db;
|
Use nama_db;
|
Menampilkan struktur
tabel
|
\d
nama_tabel;
|
desc
nama_tabel;
|
Menghapus
Kolom
|
alter Table
nama_tabel drop column “nama_kolom”;
|
alter Table
nama_tabel drop column nama_kolom;
|
Menambahkan
kolom
|
Column
“nama_kolom” type_data;
|
alter Table
nama_tabel add column nama_kolom type_data;
|
Mengubah nama
tabel
|
Alter Table
“nama_lama” rename to “nama_baru”;
|
Alter Table
nama_lama rename to nama_baru;
|
Mengubah nama
kolom
|
Alter Table
nama_tabel rename column “nama_kolom_asal” to nama_kolom_baru;
|
Alter Table
nama_tabel Changde nama_lama nama_baru type_data;
|
Memberikan
primary Key pada tabel
|
Alter Table
nama_tabel add primary Key (nama_kolom);
|
Alter Table
nama_tabel add primary Key (nama_kolom);
|
Mengganti
type data pada kolom
|
Alter Table
nama_tabel rename column “nama_lama” to “nama_baru”;
|
Alter Table
nama_tabel modify nama_kolom type_data;
|
Menghapus
tabel
|
Drop Table
nama_tabel;
|
Drop Table
nama_tabel;
|
Mencabut hak
akses tabel untuk semua fungsi pada salah satu user
|
Revoke all on
Table nama_table from nama_user;
|
Revoke all on
nama_db nama_tabel from nama_user@localhost identified by ‘password’;
|
Mencabut hak
akses tabel untuk salah satu fungsi kepada salah satu user, Misalnya select
|
Revoke all on
Table nama_tabel from nama_user;
|
Revoke select
on nama_db.nama_tabel from nama_user@localhost identifed by ‘password’;
|
Memberikan
semua hak akses salah satu pada tabel kepada user
|
Grant all on
Table nama_tabel to nama_user;
|
Grant all on
nama_db.nama_tabel to nama_user@localhost identified by ‘password;
|
Membuat tabel
temporary
|
Create
temporary Table nama_tabel (nama_kolom type_data ket);
|
Create
temporary Table nama_tabel (nama_kolom tipe_data ket);
|
Membuat tabel
turunan atau Inheritance
|
Create
temporary Table nama_tabel (nama_kolom tipe_data ket) inherits
(nama_tabel_induk);
|
Pada MyQSL
tidak ada Inherits kata lainnya tidak bisa menggunakan Inherits.
|
4. KESIMPULAN
Setelah saya melakukan percobaan antara ke dua DBMS ini, pembuatan tabel dimana memerlukan Sintak-sintak untuk manajemenkan suatu tabel dalam database meliputi pembuatan, pengeditan, menghapus, pemberian primary Key, pemberian hak akses pada salah satu user, dll. Sintak-sintak dalam kedua DBMS ini PostgreSQL dan MySQL sangat penting karena apa, karena dapat mengetahui query untuk manajemen tabel tidak hanya bisa menggunakan 1 DBMS. Dan setidaknya kita dapat membandingkan antara kedua DBMS itu mana yang lebih mudah di pakai, walaupun tiap database memiliki kekurangan dan kelebihan masing-masing.
KRITIK DAN SARAN
Dalam pembuatan laporan ini, saya cukup bingung dan kurang jelas tugas yang diberikan praktikan dengan soal yang ada di modul. Dan juga saya kurang mengerti tentang materi revoke dan Grant di MySQL. Dan juga saya cukup bingung dengan pembuatan tabel turunan di MySQL.
MANFAAT BAGI PEMBACA
Pembaca dapat mengetahui perbandingan antara kedua DBMS ini PostgreSQL maupun MySQL. Dimana mengetahui Sintak-sintaknya yang lebih mudah dipakai dan membedakan antara kelebihan dan kekurangannya. Dan semoga ilmu yang saya itu di blog ini semoga bermanfaat :)
SEKIAN dan TERIMA KASIH =)
DAFTAR PUSTAKA
- Nugroho, Adi. “Perancangan dan Implementasi Sistem Basis Data”, Yogyakarta : C.V Andi Offset, 2011.
- “Seri Panduan Praktis : Pengolahan Database dengan MySQL”, Semarang : C.V Andi Offset, 2006.
- http://www.duniailkom.com/tutorial-belajar-mysql-cara-membuat-dan-menghapus-user-mysql-create-user/
- http://lunarphue.wordpress.com/basis-data/ddl-dan-dml/
- http://sukamikir.wordpress.com/2008/10/08/macam-macam-kunci-pada-basis-data/