Senin, 15 April 2013

Pengertian Primary key Dan Foreign key.



Pengertian Primary Key & Foreign Key
a. “Primary Key” adalah field kunci / utama dari suatu tabel yang menunjukkan bahwa field yang menjadi kunci tersebut tidak bisa diisi dengan data yang sama, / dengan kata lain Primary key menjadikan tiap record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik).
Primary Key berguna pada saat menampilkan record hasil pencarian (searching), pengurutan (sorting), dan berbagai operasi query lainnya. Dengan memilih rimary key, proses pencarian, pengurutan dan proses penampilan data dan lainnya berlangsung lebih cepat.

“Foreign key” adalah satu attribute yang melengkapi satu relationship yang menunjukan ke induknya.
b. Satu tabel tidak boleh memiliki lebih dari satu primary key, karena primary key merupakan variable data yang menjadi identitas utama dari tabel tersebut.

Key dan Peranannya di Database relasional:
Seluruh dokumen di IlmuKomputer.Comdapat digunakan,dimodifikasi dan disebarkan
secarabebas untuk tujuan bukankomersial (nonprofit), dengansyarattidakmenghapus
atau merubah atribut penulis dan pernyataancopyright yang disertakan dalamsetiap
dokumen. Tidak diperbolehkanmelakukan penulisanulang, kecuali mendapatkan ijin
terlebihdahulu dari IlmuKomputer.Com.
Untuk mencapai tujuan ini (mengidentifikasi/menghubungkan), key harus
unik didalam tabel. Dengan kata lain, nilaidata yang ditentukan sebagai
key tidak boleh dipakai di order yanglain. Jadi, nomor pesanan 1071 hanya
boleh ada disatu order.Secara umum, dpat dikatakan, bahwa suatu nilai
key hanya boleh dipakai disatu baris data (row).
Ada sejumlah sifat-sifat penting yang harus dipahami tentang key ini,agar
rancangan dan pemakaiannya optimum.
Selanjutnya akan dibahas: Tiga macam key (Primary, Unique, dan Foreign),
sifat-sifat dan penerapannya di Oracle. Agar mudah disimak dan praktis,
contoh-contoh akan menyertai pembahasan.
Tiga Macam Key
Seperti sudah disinggung diatas, key,baik Primary maupun Unique,
haruslah unik. Selain unik, nilai Primary key tidak boleh null (kosong, tidak
diketahui, tidak dapat ditentukan); Unique key boleh null. Perlu dipahami,
bahwa suatu nilai null tidak pernah sama dengan nilai null yang lain,
bahkan tidak pernahsama dengan dirinya sendiri. Jadi, disuatu tabel
sejumlah data (row) Unique key-nya boleh lebih dari satu yang, atau
semuanya, memiliki nilai null.
Misalkan kita membuat tabel pesanan dengan SQLstatement sebagai
contoh Unique key,sebagai berikut:
CREATE TABLE pesanan (
nomor_pesanan VARCHAR2(6)
CONSTRAINT nomor_pesanan_uk UNIQUE
, tanggal_pesan DATE NOT NULL);
Kemudian kita masukkan dua buah data (baris) sebagai berikut:
INSERT INTO pesanan VALUES (1071, ‘01-JAN-2003’);
INSERT INTO pesanan (tanggal_pesan) VALUES (‘30-JUN-2003’);
Maka kedua data masuk kedalam tabel.
Kemudian kita masukkan dua buah data (baris) sebagai berikut:
INSERT INTO pesanan VALUES (1071, ‘01-JAN-2003’);
30-JUN-2003Tetapi andaikan nomor_pesanan adalah Primary key,maka INSERT yang
kedua akan gagal.Oracle akan mengeluarkanpesan kesalahan (error
message):
ORA-01400: cannot insert NULL into ("PESANAN"."NOMOR_PESANAN")
Key boleh terdiri lebih dari satu kolom data (didalam istilah database
relasional, bagian data terkecil disebut kolom (column), seperti
nomor_pesanandalam contoh kita). Misalkan perusahaan punya beberapa
cabang dan nomor pesanan disatu kantor tidak ada hubungan dengan nomor
pesanan kantor lain, dengan kata lainnomor pesanan yang sama digunakan
disemua kantor, maka untuk membedakan nomor nomor pesanan diseluruh
cabang ditambahkan identitas cabang (misalnya kode_cabang) sebagai
bagian darikey.Keyyang terdiri lebih dari satu kolom seperti ini disebut
compositekey (dalam contoh kasus kita compositekey adalah
nomor_pesanan dan kode_cabang). Secara umum dapat dikatakan, bahwa
untuk composite key,keunikannya ditinjau dari gabungan semua kolom data
yang membentuknya.
Untuk Unique key,bila salah satu kolom atau lebih didalam compositekey
bernilai null, nilai kolom lainya yang ada didalam composite key tidak boleh
sama; tetapi diperbolehkan bila semuakolomnya bernilai null.
Memilih dan menggunakan kolom sebagaikeyperlu memperhatikan aturan
berikut:
1.Disatu tabel hanya boleh ada satu Primary key.
2.Disatu tabel boleh ada lebih dari satu Unique key.
3.Untuk composite key,kolom yang sudah dipakai oleh Primary key atau
Unique key boleh digunakan lagi untuk Unique key yang lain, asal tidak
seluruh kolom.
Didalam hubungan kedua tabel dalam contoh diatas, tabel pesanansering
disebut sebagai tabel orang-tua (parent), sedang barang_pesanandisebut
tabel anak (child)
nomor_pesanandi tabel barang_pesanan, yang nilainya mengikuti nilai dari
tabel pesanan, disebut Foreign key –dapat dikatakan bahwa: Foreign key
adalah penghubungkedua table. Foreign key boleh berasal dari Primary
dan/atau Unique key tabel parent, dan boleh composite. Istilah lain yang
kadang dipakai adalah “migrated key” (maksudnya sama dengan Foreign
key) Database Oracletidak membolehkan data di tabel child dimana foreign
key-nya belum ada di tabel parent. Misalnya, kita tidak bisamemasukkan
data barang pesanan untuk pesanan bernomor 1073 sebelum pesanan nomor
1073 ada didalam tabel pesanan.
Kita buat tabel  barang_pesanandenganForeignkey yang
menghubungkannya (me-referensi) dengan nomor_pesanan(key ditabel
pesanan) sebagai berikut:
CREATE TABLE barang_pesanan (
nomor_pesanan VARCHAR2(6)
CONSTRAINT  nomor_pesanan_fk  REFERENCES
pesanan(nomor_pesanan),
nama_barang VARCHAR2(20),
jumlah NUMBER(6));
Tips dan Trik IlmuKomputer.Com
Copyright ©2003 IlmuKomputer.Com
Foreign key di tabel barang_pesanan ini kita beri nama sama yaitu
nomor_pesanan. Sedang nama constraint-nya adalah nomor_pesanan_fk.
Kemudian kita masukkan dua buah data:
INSERT INTO barang_pesanan VALUES (1071, 'Pensil');
INSERT INTO barang_pesanan VALUES (1073, 'Papan tulis');
SQLstatement yang kedua akan gagal.
Karena sifat menghalangi inilah, makakey ditabel parent (primary dan
unique) diistilahkan penjaga integritas (integrity constraint) Perlu dicatat
bahwa ada jenis constraint lain didalam database relasional, selain
penggunaan key yang dibahas disini.
Tetapi, bilakitamenggunakan Unique key dari tabel parent sebagai Foreign
key di tabel child, Oracle tidak menghalangi adanya nilai null didalam
Foreign key ini –maka akanada barang_pesananyang tidak memiliki
pesanannya! Maka kita harus berhati-hati bila menggunakan Unique key
sebagai Foreign key!
Foreign key,didalam tabel child boleh digunakan sebagaiPrimary atau
Unique key,misalnya karena Foreign key ini akandigunakan oleh tabel
yang lain sebagai Foreign key (hubungan ber-rantai)
Efek Samping
Oracle otomatis membuat index untuk semua key, primary maupun unique.
Index memerlukan tempat (didalam disk).
Selain membutuhkan tempat, indexbisa memperlambat respon
(performance), karena setiap kali ada data baru maka selain ditabelnya,
di-index-nya juga harus ditambahkan key dari data baru bersangkutan;
demikian juga bila kita mengubah nilai key yang sudah ada. (Mengubah
nilai key sangat tidak dianjurkan, salah satu alasan adalah karena semua
tabel yang terhubung juga harus segera di-update!) Ada teknik-teknik
untuk menangani masalah respon dan perubahan nilai key ini, dan Oracle
juga menyediakan fasilitasnya. (Tetapi tidak dibahas di tulisan ini)
Saran Pemakaian Key
Pilih kolom yang tepat, tentukan macam (primary dan/atau unique) dan
jumlahnya, sesuai spesifikasi (peraturan pelaksanaan bisnis dan kebutuhan
datanya), untuk menghubungkan tabel-tabel didalam database. Terapkan
dengan menggunakan fasilitas bersangkutan yang tersedia didalam
database yang dipakai. Fasilitas key dan sifat-sifatnya di Microsoft SQL
Server misalnya tidak sama percis denganOracle.

Senin, 08 April 2013

MANIPULASI TABEL 3



MANIPULASI TABEL 3
1.SELECT STATEMENT DASAR
Perintah select adalah perintah yang digunakan untuk menampilkan data pada sebuah table.
Perintah dalam menampilkan data ada bermacam-macam tergantung kebutuhan kita dan ketentuan yang ingin kita buat.
  • Menampilkan seluruh isi table
               Pada query ketik : Select * from nama_tabel;
Symbol * digunakan jika kita ingin menampilkan  keseluruhan isi table.
Sebagai contoh:
               select * from barang;
2.SELECT WITH KOLOM
Menampilkan data table dengan field tertentu
               Pada query ketik : Select field1_tabel,field2_tabel from nama_tabel;
Field_tabel dituliskan sesuai dengan field yang ingin ditampilkan.

Sebagai contoh:
               select kode_barang,nama_barang from barang;
3.SELECT WITH WHERE KOLOM
Menampilkan data pada table dengan ketentuan data tertentu
               Pada query ketik : select * from nama_tabel where ketentuan;
Klausa where digunakan untuk memasukkan data dengan ketentuan “hanya untuk…” atau  ketentuan batasan.
Sebagai contoh:
Ditampilkan seluruh data pada table barang dengan ketentuan hanya untuk stock diatas 2.
                       select * from barang where stock>2;
4.SELECT WITH WHERE KOLOM AND
Berikut ini contoh lain dari menampilkan data dengan ketentuan tertentu. Dalam hal ini hanya ada dua atau lebih karakter  ketentuan, sehingga ditambahkan klausa and.
         select * from barang where stock>2 and satuan='Lusin';
                                                                                                                                                                                                                5.SELECT WITH WHERE KOLOM OR                                                                                                                                                                       Berikut ini contoh menampilkan data dengan ketentuan lebih dari satu dalm satu karakter. Digunakan klausa or.
 select * from barang where satuan='Lusin' or satuan='Box' or satuan='Pcs';
Atau dalam format lain menggunakan in. 
               select * from barang where satuan in ('Lusin','Box','Pcs');
6.SELECT WITH WHERE KOLOM BETWEEN
Berkut ini contoh menampilkan data dengan klausa where untuk ketentuan karakter.
  select * from barang where kode_barang like 'T%';
 atau
  select * from barang where left(kode_barang,1)='T';
        angka 1 menujukkan pada kolom berapa dilakukan seleksi
7.SELECT WITH WHERE KOLOM LIKE
BETWEEN menyederhanakan pencarian
SELECTKolom1, Kolom2 FROMtabel
WHEREkolom BETWEENnilai1 ANDnilai2
Cari Nama_kuliah yang mempunyai sks antara 1 sampai 3. Dengan menggunakan  BETWEEN maka bentuk query adalah :
Contoh :SELECTnama_kuliah FROMTabel_MK
WHERESKS BETWEEN1 AND3


Operator
Keterangan
=
Sama Dengan
<> 
Tidak Sama Dengan
Lebih Kecil Dari
<=
Lebih Kecil Sama Dengan
Lebih Besar
>=
Lebih Besar Sama Dengan

          Membaca data pegawai dari departemen 40 yang memiliki gaji dari 1000 sampai 2000 dollar
        SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000 AND deptno=40;


 SELECT (field1, field2, … ) FROM nama_table;
Query SELECT berfungsi untuk mengambil dan menampilkan data dalam kolom(field) pada suatu table.
Contoh:
SELECT judul, penulis, penerbit FROM buku;
Dan untuk melihat semua kolom(field) pada suatu table, digunakan perintah sebagai berikut:
SELECT * FROM nama_table;
Selain itu didalam query SELECT juga terdapat perintah untuk menyaring dan menampilkan data sesuai Kriteria tertentu, sintaksnya sebagai berikut:
SELECT (field1, field2, … ) FROM nama_table WHERE Kriteria; atau
SELECT (field1, field2, … ) FROM nama_table WHERE Kriteria LIKE ‘seperti ini’;
Contoh:
SELECT judul FROM buku WHERE jenis = ‘komik’;