Translate

Sunday, August 7, 2016

Tabel



Tabel
Pada pengenalan Oracle RDMS ini pembuatan database tidak dijelaskan dengan detail , namun database yang ada telah dibuat berikut user untuk membuat tabel-tabel yang dibutuhkan. Tiap-tiap user memiliki tablespace tersendiri , jadi antara user satu dengan lainnya tidak mungkin tabel yang dibuat bercampur.
Dari kasus Kepegawaian yang telah ditampilkan ER Diagramnya pada bab I , berikutnya kita buat tabel yang dibutuhkan.

2.1    Membuat table, menghapus tabel dan merelasikan ke table lain.
Tabel dalam Oracle database dilakukan setelah melakukan tahap membuat model data dan membuat desain data. Elemen – elemen yang harus ada dalam pembuatan suatu table yaitu : nama table, nama kolom, dan tipe data kolom.
        Tabel merupakan komponen utama yang membentuk database itu sendiri. Baris (row), dan kolom (column) pada table mengindikasikan “data” atau “record”. Instruksi unutuk membuat, mengubah dan menghapus tabel dilakukan melalui DDL ( Data Definition Language ) yaitu dengan cara :
  1. CREATE TABLE
  2. ALTER TABLE
  3. DROP TABLE

BAB I         2.1.1 Membuat Tabel


Dalam memberikan nama tabel dan kolom terdapat beberapa aturan yang harus diikuti, yaitu :
  1. Nama tabel dan kolom mempunyai panjang karakter 1 – 30 karakter dan karakter pertama harus berupa huruf abjad
  2. Nama harus berisi karakter apa saja seperti A – Z, a – z, 0 – 9 underscore/garisbawah.
  3. Nama tabel tidak boleh memakai kata – kata yang sudah sipakai dalam perintah SQL, seperti select, where, from dan lain-lain).
  4. Nama table tidak boleh menggunakan nama objek yang dimiliki oleh user yang sama
  5. Nama table dengan huruf besar atau huruf kecil tidak mempunyai pembedaan  ( not case sensitive ).
Kolom dalam table mempunyai nilai yaitu sesuai dengan tipe data yang diinginkan. Pemberian nama kolom pada sebuah table juga mempunyai persamaan dengan pemberian nama pada table. Dalam dua buah tabel yang berbeda boleh diberikan nama kolom yang sama. Namun pada sebuah tabel tidak boleh mempunyai  2 buah kolom yang memiliki nama yang sama. Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu yaitu : Domain dan Constraint.
Domain     : Merupakan himpunan yang merupakan nilai kolom yang valid atau     dapat diterima ( acceptable ). Nilai kolom  diluar Domain tersebut dianggap sebagai sebuah pelanggaran dalam integritas data.
Constraint : Usaha unutk mengelompokkan nilai dalam himpunan yang “berlaku” disebut sebagai “Constraint”  atau batasan nilai.
Ada beberapa macam macam tipe data yang dikenal oleh Oracle dalam pembuatan sebuah table, yaitu :

Tipe Data
Keterangan
Char(n)
Mendefinisikan string sepanjang n karakter. Bila n tidak disertakan, maka panjang karakter adalah 1.
Varchar(n)
Mendefinisikan karakter string dengan panjang variable, namun maksimum dibatasi sebanyak n karakter.
Varchar2(n)
Mendefinisikan karakter string dengan panjang variable, namun maksimum dibatasi sebanyak n karakter. Maksimum sebanyak 2000 karakter.
Date
Mendefinisikan tanggal, menyimpan tahun, bulan, hari, jam, menit dan detik. 
Number(n,p)
Mendifinisikan data berupa bilangan positif, negatif, dan desimal. Baik merupkan fixed decimal, maupun floating point
Long
Mendefinisikan binary data, maksimum 2GB, disimpan dalam bentuk internal Oracle. Biasanya digunakan unutuk menyimpan data berupa teks.
Long Raw
Sama dengan Long, mendefinisikan binary data, maksimum 2GB, hanya tidak dikonversi oleh Oracle ( data mentah apa adanya ). Biasanya digunakan untuk menyimpan data berupa gambar, video, maupun suara.
Raw
Data biner (255 byte)
Rowid
Data berbentuk bilangan heksadesimal yang digunakan unutuk memberika alamat yang unik pada setiap baris dalam table.
 
Selain itu masih ada beberapa tipe data bartu yang ada pada Oracle yaitu Varray, Refs, Lobs.



Sintaks untuk membuat sebuah table :
Membuat table dalam Oracle adalah menggunakan CREATE TABLE, dengan sintaks sebagai berikut :

CREATE TABLE  nama_table
(  nama_kolom   tipe_field    batasan
   … … …
);

Nama table             : Karakter dengan huruf besar maupun kecil dan dapat dipisahkan dengan menggunakan underscore.
Tipe Field                : Tipe data yang berlaku pada Oracle
Batasan (Constraint )   : Yang mengikat atribut apakah sebagai primary key, foreign key, not null, unique dan sebagainya.

Dalam contoh kasus perintah sql untuk membuat table DEPT adalah:
SQL > create table DEPT  (
 2  DNUMBER  CHAR(3)  not null,
 3  MGRSSN   CHAR(5),
 4  DNAME    CHAR(15),
 5  MGRSTARTDATE DATE,
);

Setelah menjalankan perintah tersebut maka akan muncul pesan “Table Created” yang berarti bahwa table telah berhasil dibuat. Dengan begitu table DEPT yang kita buat diatas terdiri dari 4 kolom yaitu :
1.   DNUMBER  dengan tipe data Char dan lebar 3 digit serta harus berisi data karena memiliki batasan yang didefinisikan not null.
2.   DNAME dengan tipe data karakter (char) sepanjang 5 digit.
3.   MGRSSN dengan tipe data karakter (char) sepanjang 15 digit
4.   MGRSTARTDATE dengan tipe data Date / Tanggal

Seperti terlihat pada contoh diatas, pada sebuah table dapat mendefinisikan batasan pada sebuah kolom, misal not null, berarti pada kolom tersebut harus diisi dengan sebuah nilai apapun (tidak boleh kosong). Database juga menyediakan pilihan unutk membuat sebuah table yaitu dengan menggunakan sebuah format dan data dari table yang telah ada. Sintaksnya adalah sebagai berikut :
CREATE TABLE    table_baru (kolom1,kolom2,kolom3)
AS ( kolom1,kolom2,kolom3 from table_lama <where…>);

Nama  kolom pada table baru dapat sama dengan nama ataupun berbeda dengan table lama. Kita dapat melihat contohnya sebagai berikut :
Dari contoh diatas dibuat sebuah table baru dari table employee  yang gajinya lebih besar dari 2000000

Untuk memeriksa struktur sebuah table dapat ditampilkan dengan menggunakan DESCRIBE, atau cukup dengan DESC. Sintaksnya :
DESC nama_table
Contoh perintah SQLnya :
SQL > DESC DEPT;

2.2.2 Menghapus Tabel
        Untuk menghapus sebuah tabel dapat digunakan instruksi DROP secara sederhana sebagai berikut :
DROP nama_tabel
Contoh :
SQL > DROP TABLE DEPT;

Untuk menampilkan semua tabel yang dimiliki oleh user adalah :
SQL > SELECT * FROM TAB ;

2.2.3  Menghubungkan atau merelasikan antar table.

Merelasikan sebuah table dengan table lainya kita harus mengetahui Integritas Data itu sendiri. 
Untuk menjaga integritas data tersebut dibutuhkan Constraint. Beberapa constraint seperti Primary Key, Not Null, Unique, Check, dan Foreign Key

Primary Key
Primary Key (PK) disebut juga sebagai “Constraint” unutk menjaga integritas data, yaitu sebuah PK tidak boleh mempunyai duplikat dan otomatis tidak null (not null).
Membuat Primary Key dapat dilakukan setelah tabel terbentuk atau saat mendisain tabel.
Sintaks pembuatan PK adalah sebagi berikut
   
 CREATE TABLE nama_table
(  nama_kolom1  tipe_field    batasan,
   nama_kolom2  tipe_field    batasan,
   … … …
   constraint PK_NamaTable Primary Key (nama_kolom1)
);

pada sintaks diatas  nama_kolom1 akan menjadi Primary Key, dan akan diberikan nama PK_NamaTabel 
atau
CREATE TABLE  nama_table
(  nama_kolom1  tipe_field    primary key,
   nama_kolom2  tipe_field    batasan,
   … … …
 );
atau
CREATE TABLE  nama_table
(  nama_kolom1  tipe_field    batasan,
   nama_kolom2  tipe_field    batasan,
   … … …
  Primary Key (nama_kolom1)
);

Pada sintaks diatas sama dengan yang pertama yaitu nama_kolom1 sebagai Primary Key, hanya nama dari Primary Key akan ditentukan sendiri oleh Oracle.

Jika sebuah tabel memiliki Primary Key yang lebih dari satu dapat dilakukan dengan sintaks sebagai berikut :

CREATE TABLE  nama_table
(  nama_kolom1  tipe_field    batasan,
   nama_kolom2  tipe_field    batasan,
   nama_kolom3  tipe_field    batasan,
   nama_kolom4  tipe_field    batasan,
   … … …
  Primary Key (nama_kolom1, nama_kolom2, nama_kolom4)
);

Not Null, Unique, Check, Default
Jika sebuah kolom pada table harus diisi, maka constraint not null harus diberikan. Dengan demikian pada saat table diisi dengan data, maka kolom tersebut harus terisi, jika tidak sistem akan menolaknya .
Unique digunakan unutk menjamin bahwa nilai kolom adalah tunggal. Primary Key vs Unique, keduanya adalah kunci kata yang mempunyai arti sama, Oracle membedakan Unique sebagai sebuah field yang dapat mempunyai nilai null, namun bila mempunyai nilai, maka nilai tersebut harus tunggal. Sebaliknya sebuah primary key tidak boleh kosong (secara implisit PK adalah not null).
Untuk Check digunakan untuk menjamin bahwa nilai kolom berada dalam ruang nilai tertentu.
Dengan default, ketika mendefinisikan sebuah kolom dapat memberikan sebuah nilai default. Dengan default pada saat mengisi record data, apabila tidak diberikan sebuah nilai maka akan diberi nilai default tersebut. Untuk lebih jelasnya dapat dilihat dibagian Insert. 
Dapat dilihat pada contoh berikut :

SQL > CREATE TABLE EMPLOYEE
 2   ( SSN CHAR(5) primary key,
 3     DNUMBER CHAR(3),
 4     SUPER_SSN CHAR(5),
 5     FNAME VARCHAR(15),
 6     LNAME VARCHAR(20),
 7     SEX CHAR(1) default ‘P’ ,
 8     ADDRESS VARCHAR(25),
 9   SALARY NUMBER check (SALARY<=9999999999) ,
 10   BDATE DATE );
atau
SQL > CREATE TABLE EMPLOYEE
 2   (SSN CHAR(5) not null,
 3   DNUMBER CHAR(3),
 4   SUPER_SSN CHAR(5),
 5   FNAME VARCHAR(15),
 6   LNAME VARCHAR(20),
 7   SEX CHAR(1) default ‘P’ ,
 8   ADDRESS VARCHAR(25),
 9   SALARY NUMBER ,
 10  BDATE DATE ),
 11  Primary Key (SSN),
 12  Check (SALARY<=9999999999)  );







I.1.1.1            Foreign Key

Foreign Key adalah kolom sebuah table yang menunjukkan bahwa kolom tersebut adalah primary key pada Table yang lain. Contoh dapat dilihat pada gambar berikut :
Tabel_A
F1
F2
F3
F4
1
asd
10000
102



















Tabel_B
K1
K2
K3
101
X
xxx
102





Primary Key
Pada contoh gambar diatas terlihat bahwa kolom F4 pada Tabel_A mereferenesi pada kolom K1 pada Tabel_B. Hal diatas menyebabkan adanya hubungan relasi antara sebuah table dengan table yang lain. Karena adanya hubungan tersebut maka berdasarkan contoh diatas record(101,X,xxx) pada Tabel_B tidak dapat dihapus langsung pada Tabel_B, karena adanya refrensi dari field F5, Tabel_A masih ada, untuk menghapusnya hapus dulu record pada kolom F5.
Membuat Foreign Key dapat dilakukan setelah tabel terbentuk atau saat mendisain tabel.
Untuk membuat Foreign Key dapat dibuat dengan syntax berikut :

Foreign Key (nama_kolom) References tabel_tempat_referensi (nama_kolom)
Untuk jelasnya dapat dilihat pada contoh berikut berdasarkan skenario diatas:

CREATE TABLE    Tabel_A
(  F1            char(10) not null,
   F2   varchar(20),
   F3   varchar(20),
   F4       number(3) ,
   … … …
  Primary Key (F1),
  Foreign Key (F4) References Tabel_B (K1) 
);

Untuk dapat secara otomatis menghapus kolom K1 pada Tabel_B pada saat menghapus kolom F4 dapat dengan menambahkan sintaks On Delete Cascade. Untuk jelasnya akan dibahas pada pertemuan selanjutnya.
Dengan adanya Primary Key, Foreign Key maka akan terbentuk sebuah relasi antara sebuah table dengan table yang lainnya.

BAB II       2.3    Mengisikan dan Menambah Record Data


        Setelah mempelajari bagaimana membuat table dan merelasikan antar table dalam sebuah database sekarang kita akan mempelajari bagaimana mengisikan atau menambahkan record (baris/row) baru kedalam sebuah table.
        Untuk memasukkan record data, dengan menggunakan INSERT. Untuk lebih jelasnya dapat kita perhatikan dibawah ini.
Insert
        Sebelum memasukkan record data harus ada table yang terbentuk lebih dahulu. Perintah insert digunakan unutuk memasukkan satu baris data kedalam table. Perlu diperhatikan, bahwa   constraint not null dan constraint lainnya harus diperhatikan pada saat insert dilakukan. Kolom yang mempunyai atribut not null, harus terisi ( atau terisi dengan nilai defaultnya ).


II.1.1.3         INSERT … VALUES

Perintah ini digunakan unutuk memasukkan satu buah record secara satu persatu. Sangat berguna bila data yang dimasukkan sedikit. Sintaks lengkapnya yaitu sebagai berikut :
INSERT INTO nama_table
VALUES (nilai1, nilai2, … )
Untuk sintaks diatas nilai yang dimasukkan harus sesuai dengan struktur kolom yang ada pada tabel.
Tapi jika menggunakan sintaks berikut :
INSERT INTO nama_table (kolom1, kolom2,…)
VALUES (nilai1, nilai2,…)
Maka nilai yang dimasukkan tidak harus berurutan seperti pada tabel tapi seperti urutan kolom didalam kurung.

Beberapa hal yang harus diperhatikan pada saat melakukan perintah INSERT
1. Tipe Data untuk nilai yang dimasukkan harus sama dengan tipe data yang terdapat didalam tabel. Bila kolom1 mempunyai tipe data number maka nilai1 harus juga bertipe number.(tipe data harus sama)
2. Ukuran data yang dimasukkan harus sesuai dengan ukuran karakter dan ukuran kolom 20, maka nilai1 harus memiliki ukuran maksimal 20.
3. Lokasi data dalam nilai yang akan dimasukkan harus berhubungan / sama dengan lokasi kolom dalam tabel yang akan ditambahkan. Jadi nilai1 dimasukkan dalam kolom1, begitu seterusnya.
4. Bila tabel anda memiliki kolom unique, maka data yang sama tidak akan dimasukkan.

Contoh perintah SQL :
SQL > INSERT INTO EMPLOYEE
2 (SSN,FNAME,LNAME,ADDRESS,SALARY,BDATE)
3 VALUES (‘21010’,’AGUS’,’BUDIONO’,’Jl. KETAPANG 12’,
4 ‘700000’,’12-DEC-78’);
Dapat dilihat hasilnya dengan
SQL> SELECT * FROM EMPLOYEE ;
 
Perlu diperhatikan bahwa nilai Constraint yang telah ada harus dipatuhi, misalnya jika kolom itu not null, maka pada saat insert harus memiliki values, atau suatu kolom jika didefinisikan dalam keadaan default maka ketika insert dapat tidak diberikan sebuah nilai (dalam values dikosongkan) maka akan diisi dengan nilai defaultnya.



  

No comments:

Post a Comment

silahkan membaca dan berkomentar