Rabu, 01 Oktober 2014

Pembuatan dan Manajemen Tabel

 

Tabel terdiri dari baris (row) dan kolom (column). Dimana dalam sebuah tabel itu, jumlah dan nama kolom harus didefinisikan terlebih dahulu, sedangkan untuk baris jumlah dan isinya akan selalu berubah-ubah.  Karena, baris merupakan sebuah variabel yang isinya dapat ditambah atau dihapus setiap waktu, dan isi baris sendiri menyesuaikan kolom, termasuk tipe datanya. 

Tipe data yang ditentukan dalam sebuah kolom, bertujuan untuk mempermudah dalam mengelola sebuah database, serta mempermudah saat akan dipakai database tersebut. Sangat disarankan pada saat akan membuat tabel, sebaiknya membuat sebuah konvensi khusus dalam penentuan tabel-tabel yang akan dibuat dan memberikan nama kolom maupun tipe datanya.

Tabel pada
PostgreSQL

1.      Membuat Tabel

      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.

         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 null.

Struktur query yang digunakan membuat tabel dengan dua kolom:

CREATE TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN]);
 Untuk melihat struktur tabel yang telah dibuat ketikkan perintah “\d”.

Struktur query yang digunakan menghapus tabel adalah:

DROP TABLE [NAMA TABEL];


2.      Manipulasi Tabel

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 perllu diingat hal ini bukan manipulasi data melainkan manipulasi struktur tabelnya.

Struktur query yang digunakan untuk menghapus kolom :

ALTER TABLE [NAMA TABEL] DROP COLUMN “[NAMA KOLOM]”;

Struktur query yang digunakan untuk menambah kolom:

ALTER
 TABLE [NAMA TABEL] ADD COLUMN “[NAMA KOLOM] ” [SPASI] [TIPE DATA];

Struktur query yang digunakan untuk mengubah nama tabel :

ALTER TABLE [NAMA TABEL ASAL] RENAME TO [NAMA TABEL BARU];

Struktur query yang digunakan untuk mengubah nama kolom :

ALTER TABLE [NAMA TABLE] RENAME COLUMN “[NAMA KOLOM ASAL]” TO [NAMA KOLOM BARU] ;

Struktur query yang digunakan untuk menambahkan primary key pada tabel :

ALTER TABLE [NAMA TABEL] ADD PRIMARY KEY ([NAMA KOLOM]);



3.      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 [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE gran allDATA] [SPASI] [KETERANGAN]);

4.      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 [NAMA TABEL] TO [NAMA USER];


      Berikut struktur penggunaan REVOKE untuk semua hak akses :

REVOKE ALL ON TABLE [NAMA TABEL] FROM [NAMA USER];


Struktur query untuk menghapus salah satu hak akses, misalnya UPDATE :

REVOKE UPDATE ON TABEL [NAMA TABEL] FROM [NAMA USER];

Struktur query untuk memberi salah satu hak akses, misalnya DELETE :

GRANT DELETE ON TABEL [NAMA TABEL] TO [NAMA USER];

5.      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 [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN]) INHERITS (NAMA TABEL INDUK);

6.      Hubungan Antar Tabel /Relasi (References)

Dalam hal hubungan antar tabel, ada beberapa syarat yang harus terpenuhi seperti, antara tabel yang ingin dihubungkan harus memiliki sebuah field dengan tipe data yang sama. Dengan kata lain ada tabel yang memiliki primary key sebagai kunci untuk menghubungkan ke tabel yang lain dimana terdapat field yang mempunyai tipe data yang sama dengan kata lain yang disebut foreign key.

Tabel pada MySQL

1.      Membuat Tabel

Untuk membuat tabel dalam MySQL, harus dikoneksikan dahulu salam database, acranya dengan mengetikkan kode query “use nama_database;”, kemudian  bisa dilanjutkan membuat tabel dengan query code:

CREATE TABLE nama_tabel (

field1 tipe(panjang),


field2 tipe(panjang),


...


 fieldn tipe(panjang),


 PRIMARY KEY (field_key)


);


Selanjutnya untuk melihat tabel mhs sudah benar benar sudah ada atau belum, ketikkan perintah berikut ini :

SHOW TABLES;

Untuk melihat struktur tabel secara lebih detail, cobalah perintah

atau query sebagai berikut :

DESC nama_tabel;.



2.      Manipulasi Tabel

Untuk mengubah struktur suatu tabel, bentuk umum perintah SQL-nya

sebagai berikut :

ALTER TABLE nama_tabel alter_options;



Beberapa contoh variasi perintah ALTER untuk mengubah struktur suatu tabel antara lain :

Menambahkan field ke tabel
 

ALTER TABLE nama_tabel ADD nama_field tipe_data keterangan;


Menambahkan primary key pada suatu tabel

ALTER TABLE nama_tabel ADD PRIMARY KEY(field);

Mengubah tipe field  menjadi varchar dalam tabel
 

ALTER TABLE nama_tabel MODIFY nama-field varchar(8) NOT

NULL;


Menghapus field  dari tabel
 

ALTER TABLE nama_tabel DROP nama_field;



Untuk mengubah nama suatu tabel, dapat menggunakan perintah SQL:

RENAME TABLE pelanggan TO plg;

ALTER TABLE plg RENAME TO pelanggan;




Untuk menghapus sebuah tabel, bentuk umum dari perintah SQL adalah

sebagai berikut :     
 

DROP TABLE nama_tabel;



3.      Temporary Tabel

Untuk membuat temporary tabel dalam MySQL, perintah query seperti di bawah ini:

CREATE TEMPORARY TABLE NAMA_TABEL (nama_field tipe_data keterangan, nama_field tipe_data keterangan);



4.      GRANT dan REVOKE

Untuk mengatur hak akses di MySQL, pada dasarnya kita menggunakan

bentuk perintah GRANT dan REVOKE.

Berikut ini bentuk umum perintah GRANT dan REVOKE secara
 

sederhana :

GRANT priv_type

ON {tbl_name | * | *.* | db_name.*}


TO user_name [IDENTIFIED BY 'password']


[WITH GRANT OPTION];




REVOKE priv_type


ON {tbl_name | * | *.* | db_name.*}


FROM user_name;


Perintah GRANT dan REVOKE dapat digunakan untuk membuat user
 

barumaupun mengatur hak akses user yang sudah ada dengan hak akses (privileges)tertentu. Tingkatan hak akses user dapat terbagi menjadi
 

tingkatan global(tersimpan di tabel mysql.user), database (tersimpan di
 

tabel mysql.host danmysql.db), tabel (tersimpan di tabel mysql.tables_priv) dan kolom (tersimpan di tabel mysql.columns_priv).

Setiap perubahan hak akses di MySQL, termasuk menambahkan user
 

baru,tidak akan berlaku sebelum diakhiri dengan perintah
 

FLUSH PRIVILEGES;
.

Pembuatan Tabel pada PostgreSQL

1.   Membuat table dengan nama  dan field yang sudah di tentukan di atas, kita harus tahu terlebih dahulu struktur query yang akan kita gunakan untuk membuat table, strukturnya adalah seperti berikut.
Query dasar :
CREATE TABLE  namatabel (namakolom tipedata keterangan, namakolom tipedata keterangan, namakolom tipedata keterangan );    
      

Untuk melihat struktur table yang telah kita buat, ketikkan perintah \d namatabel, dan untuk melihat nama table, ketikkan perintah \z. 
2. Membuat table baru dengan nama “pegawai” dan dengan field yang sama seperti pada table 1.
Berikut jadinya :


           
3.      Menghapus kolom “alamat_idn” pada table pegawai dan tampilkan struktur tablenya.
Query dasar :
ALTER TABLE namatable DROP COLUMN namakolom;


 Untuk menampilkan struktur tabelnya, ketikkan \d dengan di ikuti namatabel.

4.    Menambahkan kolom “pekerjaan_idn” dengan type data varchar dan tampilkan struktur table pegawai.
Query dasar :
ALTER TABLE namatabel Add Column  “namakolom” tipe data;


5. Mengubah nama table pegawai menjadi pekerjaNIM dan mengubah nama kolom “pekerjaan_idn” menjadi “alamat_idn” dan tampilkan strukturnya.
Query dasar :
a.       ALTER TABLE namatabelawal Rename to namatabelbaru;
b.      ALTER TABLE namatabel rename column “namakolomawal” to namakolombaru;

6.      Memberikan primary key pada table pekerjaNIM dan mengubah type data pada kolom “alamat_idn” menjadi text.
Query dasar :
a.       Struktur query yang digunakan untuk menambahkan primary key pada table
ALTER TABLE namatabel add primary key (namakolom);
b.      Struktur query yang digunakan untuk mengubah type data dari suatu kolom tertentu.
ALTER TABLE namatabel ALTER COLUMN namakolom Type namatypepengganti;

7.      Hapus table pekerjaNIM
Query dasar :
DROP TABLE pekerjaNIM;
       


Jika setelah di ENTER terdapat pesan DROP TABLE, maka table “pekerjaNIM” sudah terhapus.

8.      Membuat temporary table dengan nama mahasiswa_sementara dengan 3 field (id, nama, dan tgl_lahir) setelah itu tampilkan.
Query dasar :
CREATE TEMPORARY TABLE namatabel (namakolom tipedata keterangan, namakolom tipedata keterangan, namakolom tipedata keterangan);


9.      Grant and Revoke
Query dasar :
a.       Struktur penggunaan GRANT untuk semua hak akses :
Grant all on table namatabel to namauser;
b.      Struktur penggunaan REVOKE untuk semua hak akses :
Revoke all on table namatabel from namauser;
c.       Struktur penggunaan REVOKE untuk salah satu hak akses, misalnya SELECT :
Grant Select on table namatabel from namauser;
d.      Struktur penggunaan REVOKE untuk salah satu hak akses, misalnya SELECT :
Revoke Select on table namatabel from namauser;
                      
                           
                           
Jika sudah ada pesan GRANT dan REVOKE, berarti penutupan dan pengaktifan hak akses yang kita lakukan sudah berhasil.
Pengecekan :

 
 Buka SQL shell baru, kemudian masuk dengan user kita dan lakukan pengecekan dengan mengetikkan, SELECT * from namatabel;
*   Jika kita lakukan GRANT maka kita bisa melihat struktur tabelny, sedangkan jika kita melakukan revoke selanjutnya aka nada pesan “permission denied for…..” menandakan bahwa hak akses database telah ditutup.
*   Begitu pula jika kita melakukan GRANT and REVOKE pada salah satu hak akses misalnya (SELECT, UPDATE, DELETE).

10.  Membuat table baru dengan nama Gaji, yang merupakan turunan dari table pertama, dengan fieldnya (gaji kotor, pajak, gaji bersih), setelah itu tampilkan.
      Query dasar :
   CREATE TEMPORARY TABLE namatabel (gaji_kotor integer, pajak integer,  gaji_bersih integer) inherits (namatabelinduk);
       Berikut contohnya :



 Perbandingan DBMS PostgreSQL dengan MySQL

-       Dalam membuat user, perintah querynya berbeda.

-       Mengoneksikan database dalam postgreSQL dan MySQL berbeda.

-       Untuk cara membuat tabelnya kira-kira sama dalam querynya.

-       Dalam melihat daftar tabel, ada perbedaan query. (show dan \z)

-       Query untuk menampilkan struktur tabel berbeda. (desc dan \d)

-       Dalam menghapus dan menambahkan  field, ada perbedaan dengan adanya tulisan “column serta tanda petik”.

-       Dalam rename tabel, hanya terjadi perubahan posisi kata, serta penambahan kata alter.

-       Ketika merubah field, perbedaannya langsung diminta memasukkan tipe data field pengganti dalam MySQL

-       Dalam GRANT dan REVOKE, di MySQL perintah querynya lebih panjang dibandingkan PostgreSQL.

-       Untuk mengecek sudah di GRANT atau REVOKE, dalam postgreSQL mengecek melalui “SELECT * FROM NAMA_TABEL;”, kalau MySQL melalui “DESC NAMA_TABEL;”.

 Rangkuman, Kritik dan Saran

               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. Database mysql dengan databse psql mempunyai beberapa perbedaan dalam pembuatan dan menajemen databasenya, seperti pada pengecekan table, pengecekan struktur table, pengubahan type, pengubahan nama kolom dan penggunaan Inheritence (turunan).
                Cari semua informasi mengenai manajemen tabel dari kedua DBMS tersebut agar kedepan lebih memahami mengenai manajemen pembuatan tabel.

Daftar Pustaka
- www.fairuzzumar.blogspot.com
-Modul Pratek DBD bab II
-www.sinauonlen.blogspot.com




1 komentar:

  1. Training Scriptcase di Indonesia, kunjungi www.OwenSolution.com

    BalasHapus