SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com




Key dan Peranannya di Database
Relasional
Djoni Darmawikarta
djoni_darmawikarta@yahoo.ca



   Lisensi Dokumen:
   Copyright © 2003 IlmuKomputer.Com
   Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan
   secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
   atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
   dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
   terlebih dahulu dari IlmuKomputer.Com.




Key didalam database relasional dibutuhkan untuk menghubungkan satu
tabel data dengan yang lain. Sebagai contoh (lihat diagram berikut)
nomor_pesanan sebagai key di tabel pesanan digunakan didalam tabel
barang_pesanan untuk mengidentifikasi (menghubungkan) pesanan yang
berisi (terdiri dari) barang-barang tersebut.



      pesanan

        nomor_pesan       tanggal_pes
                                                              barang_pesanan
        an                an
        1071              01-JAN-200
                                                               nomor_pesana        nama_bara     jumla
                          3
                                                               n                   ng            h
        1072              30-JUN-200
                                                               1071                Pinsil        100
                          3
                                                               1071                Penggaris     10
                                                               1071                Penghapus     200
                                                               1072                Pinsil        500
                                                               1072                Papan tulis   50

Untuk mencapai tujuan ini (mengidentifikasi/menghubungkan), key harus
unik didalam tabel. Dengan kata lain, nilai data yang ditentukan sebagai
key tidak boleh dipakai di order yang lain. 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.



                                                                                                 1
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com




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 pernah sama 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 SQL statement 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.

nomor_pesan          tanggal_pesa
an                   n
1071                 01-JAN-2003
                     30-JUN-2003

Tetapi andaikan nomor_pesanan adalah Primary key, maka INSERT yang
kedua akan gagal. Oracle akan mengeluarkan pesan 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_pesanan dalam contoh kita). Misalkan perusahaan punya beberapa
cabang dan nomor pesanan disatu kantor tidak ada hubungan dengan nomor



                                                                            2
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com



pesanan kantor lain, dengan kata lain nomor pesanan yang sama digunakan
disemua kantor, maka untuk membedakan nomor nomor pesanan diseluruh
cabang ditambahkan identitas cabang (misalnya kode_cabang) sebagai
bagian dari key. Key yang terdiri lebih dari satu kolom seperti ini disebut
composite key (dalam contoh kasus kita composite key 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 composite key
bernilai null, nilai kolom lainya yang ada didalam composite key tidak boleh
sama; tetapi diperbolehkan bila semua kolomnya bernilai null.

Memilih dan menggunakan kolom sebagai key perlu memperhatikan aturan
berikut:

•   Disatu tabel hanya boleh ada satu Primary key.
•   Disatu tabel boleh ada lebih dari satu Unique key.
•   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 pesanan sering
disebut sebagai tabel orang-tua (parent), sedang barang_pesanan disebut
tabel anak (child)

nomor_pesanan di tabel barang_pesanan, yang nilainya mengikuti nilai dari
tabel pesanan, disebut Foreign key – dapat dikatakan bahwa: Foreign key
adalah penghubung kedua 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 Oracle tidak membolehkan data di tabel child dimana foreign
key-nya belum ada di tabel parent. Misalnya, kita tidak bisa memasukkan
data barang pesanan untuk pesanan bernomor 1073 sebelum pesanan nomor
1073 ada didalam tabel pesanan.

Kita  buat    tabel barang_pesanan dengan     Foreign  key yang
menghubungkannya (me-referensi) dengan nomor_pesanan (key di tabel
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));



                                                                           3
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');

SQL statement yang kedua akan gagal.

Karena sifat menghalangi inilah, maka key di tabel 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, bila kita menggunakan Unique key dari tabel parent sebagai Foreign
key di tabel child, Oracle tidak menghalangi adanya nilai null didalam
Foreign key ini – maka akan ada barang_pesanan yang tidak memiliki
pesanannya! Maka kita harus berhati-hati bila menggunakan Unique key
sebagai Foreign key!

Foreign key, didalam tabel child boleh digunakan sebagai Primary atau
Unique key, misalnya karena Foreign key ini akan digunakan 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, index bisa 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



                                                                           4
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com



database yang dipakai. Fasilitas key dan sifat-sifatnya di Microsoft SQL
Server misalnya tidak sama percis dengan Oracle.




                                                                       5

Contenu connexe

Tendances

Tendances (6)

slide praktikum basis data
slide praktikum basis data slide praktikum basis data
slide praktikum basis data
 
05. manipulasi data update,delete & seleksi
05. manipulasi data   update,delete & seleksi05. manipulasi data   update,delete & seleksi
05. manipulasi data update,delete & seleksi
 
T modul 5 mysql
T modul 5 mysqlT modul 5 mysql
T modul 5 mysql
 
04. manipulasi data perintah insert
04. manipulasi data   perintah insert04. manipulasi data   perintah insert
04. manipulasi data perintah insert
 
Tupen 8 1235010002
Tupen 8 1235010002Tupen 8 1235010002
Tupen 8 1235010002
 
Materi my sql part 2
Materi my sql part 2Materi my sql part 2
Materi my sql part 2
 

En vedette

Pengertian DDL & DML
Pengertian DDL & DMLPengertian DDL & DML
Pengertian DDL & DMLFajar Sany
 
Transformasi(translasi rotasi-dilatasi)
Transformasi(translasi rotasi-dilatasi)Transformasi(translasi rotasi-dilatasi)
Transformasi(translasi rotasi-dilatasi)mariobopass
 
05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for Wales
05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for Wales05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for Wales
05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for WalesNAAONB landscapesforlife
 
Btg pactual ceo_conference_2011
Btg pactual ceo_conference_2011Btg pactual ceo_conference_2011
Btg pactual ceo_conference_2011Cia Hering RI
 
Startup Weekend Nantes - Around
Startup Weekend Nantes - Around Startup Weekend Nantes - Around
Startup Weekend Nantes - Around Atlantic 2.0
 
Year 11 Ni Hao 3 Lesson 1,2,3,4 Table
Year 11 Ni Hao 3  Lesson 1,2,3,4  TableYear 11 Ni Hao 3  Lesson 1,2,3,4  Table
Year 11 Ni Hao 3 Lesson 1,2,3,4 Tableyr11chinesewghs2012
 
Presentatie Creatief Evenement Creative City Lab
Presentatie Creatief Evenement Creative City LabPresentatie Creatief Evenement Creative City Lab
Presentatie Creatief Evenement Creative City Labcreativecitylab
 
laptop and computer repaire ma
laptop and computer repaire malaptop and computer repaire ma
laptop and computer repaire mawriter03roof
 
Cidadão completo 32
Cidadão completo 32Cidadão completo 32
Cidadão completo 32aghipertexto
 
The Super Bowl XLVI by Design
The Super Bowl XLVI by DesignThe Super Bowl XLVI by Design
The Super Bowl XLVI by DesignYael Rozencwajg
 
Steve Rodrick - Landscapes for Life Conference 2014
Steve Rodrick - Landscapes for Life Conference 2014Steve Rodrick - Landscapes for Life Conference 2014
Steve Rodrick - Landscapes for Life Conference 2014NAAONB landscapesforlife
 
So you want to quickly learn microsoft word
So you want to quickly learn microsoft wordSo you want to quickly learn microsoft word
So you want to quickly learn microsoft wordcandih1981
 
Inform audience about biochar
Inform audience about biocharInform audience about biochar
Inform audience about biocharajakatem
 
Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...
Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...
Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...Mark Albert
 
Research - Ragwana Akram
Research - Ragwana Akram Research - Ragwana Akram
Research - Ragwana Akram haverstockmedia
 

En vedette (20)

SQL(DDL,DML,DCL,TCL)
SQL(DDL,DML,DCL,TCL)SQL(DDL,DML,DCL,TCL)
SQL(DDL,DML,DCL,TCL)
 
Pengertian DDL & DML
Pengertian DDL & DMLPengertian DDL & DML
Pengertian DDL & DML
 
Transformasi(translasi rotasi-dilatasi)
Transformasi(translasi rotasi-dilatasi)Transformasi(translasi rotasi-dilatasi)
Transformasi(translasi rotasi-dilatasi)
 
05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for Wales
05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for Wales05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for Wales
05 - NAAONB Conference 2012 - Roger Thomas, Countryside Council for Wales
 
Btg pactual ceo_conference_2011
Btg pactual ceo_conference_2011Btg pactual ceo_conference_2011
Btg pactual ceo_conference_2011
 
Startup Weekend Nantes - Around
Startup Weekend Nantes - Around Startup Weekend Nantes - Around
Startup Weekend Nantes - Around
 
Year 11 Ni Hao 3 Lesson 1,2,3,4 Table
Year 11 Ni Hao 3  Lesson 1,2,3,4  TableYear 11 Ni Hao 3  Lesson 1,2,3,4  Table
Year 11 Ni Hao 3 Lesson 1,2,3,4 Table
 
Consumer Snapshot - January 2014
Consumer Snapshot - January 2014Consumer Snapshot - January 2014
Consumer Snapshot - January 2014
 
Supermarkets
Supermarkets Supermarkets
Supermarkets
 
Presentatie Creatief Evenement Creative City Lab
Presentatie Creatief Evenement Creative City LabPresentatie Creatief Evenement Creative City Lab
Presentatie Creatief Evenement Creative City Lab
 
laptop and computer repaire ma
laptop and computer repaire malaptop and computer repaire ma
laptop and computer repaire ma
 
Cidadão completo 32
Cidadão completo 32Cidadão completo 32
Cidadão completo 32
 
The Super Bowl XLVI by Design
The Super Bowl XLVI by DesignThe Super Bowl XLVI by Design
The Super Bowl XLVI by Design
 
Steve Rodrick - Landscapes for Life Conference 2014
Steve Rodrick - Landscapes for Life Conference 2014Steve Rodrick - Landscapes for Life Conference 2014
Steve Rodrick - Landscapes for Life Conference 2014
 
TEST from Ankur
TEST from AnkurTEST from Ankur
TEST from Ankur
 
So you want to quickly learn microsoft word
So you want to quickly learn microsoft wordSo you want to quickly learn microsoft word
So you want to quickly learn microsoft word
 
Inform audience about biochar
Inform audience about biocharInform audience about biochar
Inform audience about biochar
 
Film proposal (1)
Film proposal (1)Film proposal (1)
Film proposal (1)
 
Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...
Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...
Mark Anchor Albert National Survey Of Implied Covenant And Breach Of Contract...
 
Research - Ragwana Akram
Research - Ragwana Akram Research - Ragwana Akram
Research - Ragwana Akram
 

Similaire à Djoni (key)

Cg ucc01302 introduction to it excel
Cg ucc01302 introduction to it excelCg ucc01302 introduction to it excel
Cg ucc01302 introduction to it exceliquy
 
Sql programming
Sql programmingSql programming
Sql programmingDoni Rizky
 
Rsi 9 normalisasi dan buble
Rsi 9 normalisasi dan bubleRsi 9 normalisasi dan buble
Rsi 9 normalisasi dan bubledonasiilmu
 

Similaire à Djoni (key) (6)

chap003-Data Modeling
chap003-Data Modelingchap003-Data Modeling
chap003-Data Modeling
 
Cg ucc01302 introduction to it excel
Cg ucc01302 introduction to it excelCg ucc01302 introduction to it excel
Cg ucc01302 introduction to it excel
 
Sql programming
Sql programmingSql programming
Sql programming
 
Rsi 9 normalisasi dan buble
Rsi 9 normalisasi dan bubleRsi 9 normalisasi dan buble
Rsi 9 normalisasi dan buble
 
Rsi 13
Rsi 13Rsi 13
Rsi 13
 
Rsi 13
Rsi 13Rsi 13
Rsi 13
 

Plus de Nurdin Al-Azies

Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)
Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)
Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)Nurdin Al-Azies
 
Daftar riwayat hidup Jusuf Kalla
Daftar riwayat hidup Jusuf KallaDaftar riwayat hidup Jusuf Kalla
Daftar riwayat hidup Jusuf KallaNurdin Al-Azies
 
Daftar riwayat hidup Joko Widodo
Daftar riwayat hidup Joko WidodoDaftar riwayat hidup Joko Widodo
Daftar riwayat hidup Joko WidodoNurdin Al-Azies
 
Panduan Tour Taman Safari Indonesia
Panduan Tour Taman Safari Indonesia Panduan Tour Taman Safari Indonesia
Panduan Tour Taman Safari Indonesia Nurdin Al-Azies
 
Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)
Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)
Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)Nurdin Al-Azies
 
Interpersonal skill and creativity (nurdin al azies)
Interpersonal skill and creativity (nurdin al azies)Interpersonal skill and creativity (nurdin al azies)
Interpersonal skill and creativity (nurdin al azies)Nurdin Al-Azies
 
Desain grafis ver1 2-pdf
Desain grafis ver1 2-pdfDesain grafis ver1 2-pdf
Desain grafis ver1 2-pdfNurdin Al-Azies
 
Biar ngampus tak sekedar status
Biar ngampus tak sekedar statusBiar ngampus tak sekedar status
Biar ngampus tak sekedar statusNurdin Al-Azies
 
Kreatif entreupreneur workshop
Kreatif entreupreneur workshopKreatif entreupreneur workshop
Kreatif entreupreneur workshopNurdin Al-Azies
 
Strategi Penyambutan Mahasiswa Baru UNTUK LDK
Strategi Penyambutan Mahasiswa Baru UNTUK LDKStrategi Penyambutan Mahasiswa Baru UNTUK LDK
Strategi Penyambutan Mahasiswa Baru UNTUK LDKNurdin Al-Azies
 
7 international linkages
7 international linkages7 international linkages
7 international linkagesNurdin Al-Azies
 
04 ekonomi mikro rancang bangun ekonomi islam
04 ekonomi mikro     rancang bangun ekonomi islam04 ekonomi mikro     rancang bangun ekonomi islam
04 ekonomi mikro rancang bangun ekonomi islamNurdin Al-Azies
 
03 ekonomi mikro permintaan dan penawaran
03 ekonomi mikro     permintaan dan penawaran03 ekonomi mikro     permintaan dan penawaran
03 ekonomi mikro permintaan dan penawaranNurdin Al-Azies
 
02 ekonomi mikro pendahulan tentang ekonomi mikro
02 ekonomi mikro    pendahulan tentang ekonomi mikro02 ekonomi mikro    pendahulan tentang ekonomi mikro
02 ekonomi mikro pendahulan tentang ekonomi mikroNurdin Al-Azies
 
(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )
(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )
(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )Nurdin Al-Azies
 

Plus de Nurdin Al-Azies (20)

Jadwal Piala Dunia 2014
Jadwal Piala Dunia 2014Jadwal Piala Dunia 2014
Jadwal Piala Dunia 2014
 
Visi misi prabowo-hatta
Visi misi prabowo-hattaVisi misi prabowo-hatta
Visi misi prabowo-hatta
 
Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)
Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)
Buku Studi Islam 3 (Dr. Ahmad Alim, LC. MA.)
 
Daftar riwayat hidup Jusuf Kalla
Daftar riwayat hidup Jusuf KallaDaftar riwayat hidup Jusuf Kalla
Daftar riwayat hidup Jusuf Kalla
 
Daftar riwayat hidup Joko Widodo
Daftar riwayat hidup Joko WidodoDaftar riwayat hidup Joko Widodo
Daftar riwayat hidup Joko Widodo
 
Panduan Tour Taman Safari Indonesia
Panduan Tour Taman Safari Indonesia Panduan Tour Taman Safari Indonesia
Panduan Tour Taman Safari Indonesia
 
Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)
Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)
Jadwal imsyakiyah Ramadhan 1435 H (Terbaru)
 
Brosur dan biaya
Brosur dan biayaBrosur dan biaya
Brosur dan biaya
 
Interpersonal skill and creativity (nurdin al azies)
Interpersonal skill and creativity (nurdin al azies)Interpersonal skill and creativity (nurdin al azies)
Interpersonal skill and creativity (nurdin al azies)
 
Desain grafis ver1 2-pdf
Desain grafis ver1 2-pdfDesain grafis ver1 2-pdf
Desain grafis ver1 2-pdf
 
Biar ngampus tak sekedar status
Biar ngampus tak sekedar statusBiar ngampus tak sekedar status
Biar ngampus tak sekedar status
 
Kreatif entreupreneur workshop
Kreatif entreupreneur workshopKreatif entreupreneur workshop
Kreatif entreupreneur workshop
 
Strategi Penyambutan Mahasiswa Baru UNTUK LDK
Strategi Penyambutan Mahasiswa Baru UNTUK LDKStrategi Penyambutan Mahasiswa Baru UNTUK LDK
Strategi Penyambutan Mahasiswa Baru UNTUK LDK
 
Dakwah Kreatif
Dakwah KreatifDakwah Kreatif
Dakwah Kreatif
 
Adobe Flash:
Adobe Flash: Adobe Flash:
Adobe Flash:
 
7 international linkages
7 international linkages7 international linkages
7 international linkages
 
04 ekonomi mikro rancang bangun ekonomi islam
04 ekonomi mikro     rancang bangun ekonomi islam04 ekonomi mikro     rancang bangun ekonomi islam
04 ekonomi mikro rancang bangun ekonomi islam
 
03 ekonomi mikro permintaan dan penawaran
03 ekonomi mikro     permintaan dan penawaran03 ekonomi mikro     permintaan dan penawaran
03 ekonomi mikro permintaan dan penawaran
 
02 ekonomi mikro pendahulan tentang ekonomi mikro
02 ekonomi mikro    pendahulan tentang ekonomi mikro02 ekonomi mikro    pendahulan tentang ekonomi mikro
02 ekonomi mikro pendahulan tentang ekonomi mikro
 
(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )
(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )
(KULIAH S2 UIKA) 01 ekonomi mikro (DR. H. IRWAN CH, SE,MM )
 

Djoni (key)

  • 1. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Key dan Peranannya di Database Relasional Djoni Darmawikarta djoni_darmawikarta@yahoo.ca Lisensi Dokumen: Copyright © 2003 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. Key didalam database relasional dibutuhkan untuk menghubungkan satu tabel data dengan yang lain. Sebagai contoh (lihat diagram berikut) nomor_pesanan sebagai key di tabel pesanan digunakan didalam tabel barang_pesanan untuk mengidentifikasi (menghubungkan) pesanan yang berisi (terdiri dari) barang-barang tersebut. pesanan nomor_pesan tanggal_pes barang_pesanan an an 1071 01-JAN-200 nomor_pesana nama_bara jumla 3 n ng h 1072 30-JUN-200 1071 Pinsil 100 3 1071 Penggaris 10 1071 Penghapus 200 1072 Pinsil 500 1072 Papan tulis 50 Untuk mencapai tujuan ini (mengidentifikasi/menghubungkan), key harus unik didalam tabel. Dengan kata lain, nilai data yang ditentukan sebagai key tidak boleh dipakai di order yang lain. 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. 1
  • 2. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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 pernah sama 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 SQL statement 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. nomor_pesan tanggal_pesa an n 1071 01-JAN-2003 30-JUN-2003 Tetapi andaikan nomor_pesanan adalah Primary key, maka INSERT yang kedua akan gagal. Oracle akan mengeluarkan pesan 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_pesanan dalam contoh kita). Misalkan perusahaan punya beberapa cabang dan nomor pesanan disatu kantor tidak ada hubungan dengan nomor 2
  • 3. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com pesanan kantor lain, dengan kata lain nomor pesanan yang sama digunakan disemua kantor, maka untuk membedakan nomor nomor pesanan diseluruh cabang ditambahkan identitas cabang (misalnya kode_cabang) sebagai bagian dari key. Key yang terdiri lebih dari satu kolom seperti ini disebut composite key (dalam contoh kasus kita composite key 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 composite key bernilai null, nilai kolom lainya yang ada didalam composite key tidak boleh sama; tetapi diperbolehkan bila semua kolomnya bernilai null. Memilih dan menggunakan kolom sebagai key perlu memperhatikan aturan berikut: • Disatu tabel hanya boleh ada satu Primary key. • Disatu tabel boleh ada lebih dari satu Unique key. • 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 pesanan sering disebut sebagai tabel orang-tua (parent), sedang barang_pesanan disebut tabel anak (child) nomor_pesanan di tabel barang_pesanan, yang nilainya mengikuti nilai dari tabel pesanan, disebut Foreign key – dapat dikatakan bahwa: Foreign key adalah penghubung kedua 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 Oracle tidak membolehkan data di tabel child dimana foreign key-nya belum ada di tabel parent. Misalnya, kita tidak bisa memasukkan data barang pesanan untuk pesanan bernomor 1073 sebelum pesanan nomor 1073 ada didalam tabel pesanan. Kita buat tabel barang_pesanan dengan Foreign key yang menghubungkannya (me-referensi) dengan nomor_pesanan (key di tabel 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)); 3
  • 4. 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'); SQL statement yang kedua akan gagal. Karena sifat menghalangi inilah, maka key di tabel 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, bila kita menggunakan Unique key dari tabel parent sebagai Foreign key di tabel child, Oracle tidak menghalangi adanya nilai null didalam Foreign key ini – maka akan ada barang_pesanan yang tidak memiliki pesanannya! Maka kita harus berhati-hati bila menggunakan Unique key sebagai Foreign key! Foreign key, didalam tabel child boleh digunakan sebagai Primary atau Unique key, misalnya karena Foreign key ini akan digunakan 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, index bisa 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 4
  • 5. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com database yang dipakai. Fasilitas key dan sifat-sifatnya di Microsoft SQL Server misalnya tidak sama percis dengan Oracle. 5