SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com




Surrogate Key
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.




Misalkan kita memiliki database alamat dengan diagram ER (Entity Relationship
Diagram) data model-nya sebagai berikut. Perhatikan bahwa attribute yang didalam
bagian atas dari kotak entity adalah primary key. Misalnya untuk entity NEGARA,
primary key adalah kode_negara. Sedang PROPINSI memiliki composite primary key
yaitu kode_negara dan kode_propinsi.




Dalam model ini primary key tabel NEGARA, kode_negara, menjadi bagian primary
key tabel PROPINSI; lalu menjadi bagian dari primary key tabel KOTA, dan juga
bagian primary key tabel JALAN. Demikian juga dengan primary key tabel ditingkat
lebih atas yang lain, menjadi bagian dari primary dari primary key tabel yang
dibawahnya, dan dibawa terus ke yang lebih bawah. Dengan demikian dapat dipastikan



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



jalan yang dinegara, dikota, dan dipropinsi mana, karena mungkin ada jalan yang sama
dinegera, kota dan propinsi berbeda.

Dalam contoh model ini, kode_negara, propinsi, kota, dan jalan dibentuk berdasarkan
namanya, seperti dapat dilihat sample data JALAN dibawah ini.

  Kode_negara      Kode_propinsi    Kode_kota   Kode_jalan   Nama_jalan     Jumlah_
                                                                            jalur
  IND              JABAR            JAK         PDHJ         Pondok Hijau   2
  IND              JABAR            JAK         PNID         Pinang Indah   2

Apa yang terjadi bila terjadi penggantian nama, misalnya Jawa Barat, dengan
kode_propinsi JABAR, menjadi Daerah Istimewa Jakarta Raya, yang menurut aturan
pemberian kode, kode_propinsi-nya juga harus diganti, misalnya menjadi DIJR.

Semua data isi tabel JALAN, yang berkaitan dengan Jawa Barat, harus diubah!
Demikian juga dengan isi tabel KOTA. Rangkaian perubahan ini makin memburuk bila
PROPINSI, KOTA dan/atau JALAN digunakan (dihubungkan) dengan tabel-tabel data
yang lain.

Maslah ini terjadi karena rancangan diatas menggunakan intelligent key (bermakna);
kode_negara, propinsi, kode dan jalan, yang menjadi primary key, dibentuk
(dirumuskan) berdasarkan namanya. Intelligent key kadang disebut juga “natural” key.


Solusi Surrogate Key
Surrogate key adalah solusi yang efektif. Surrogate key, sebagai primary key, yang
biasanya merupakan angka bulat urut yang tidak bermakna, tidak ada hubungan dengan
data didalam tabel. Dengan surrogate key, diagram ER kita menjadi sebagai berikut.




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



Kini, bila nama propinsi dan kodenya berubah, atau attribute yang manapun, data
ditabel KOTA dan JALAN, tidak kena dampaknya.

Bila kita ingin menyimpan nama dan kode sebelumnya (history), kita menambahkan
record baru yang memiliki surrogate key-nya sendiri, tidak menimpanya dengan yang
baru. Teknik surrogate key untuk menyimpan data historis ini, didunia data
warehousing dikenal dengan istilah “slowly changing dimension type two”.

Fasilitas Surrogate Key

Database populer seperti Oracle, DB2 dan SQL Server memiliki fasilitas implementasi
surrogate key. Berikut contoh penggunaannya di Microsoft SQL Server.

Mendefinisikan surrogate key pada waktu membuat tabel.          Misalnya untuk tabel
NEGARA bisa menggunakan SQL statement sebagai berikut.

CREATE TABLE negara
    ( negara_sk int IDENTITY(1,2) PRIMARY KEY,
    kode_negara varchar(10) NOT NULL,
    nama_negara varchar(50) NOT NULL,
    gdp int)

Perhatikan tambahan IDENTITY(1,2) pada surrogate key negara_sk. Angka pertama
(disebut seed) adalah nilai negara_sk yang akan diberikan oleh SQL Server untuk data
(row) pertama yang diisikan kedalam tabel ini, dalam contoh kita adalah 1. Angka
kedua (disebut increment), yaitu 2 dalam contoh kita ini, adalah pertambahan pada nilai
surrogate key dari nilai terakhir yang sudah dipakai untuk mendapatkan nilai yang akan
diberikan kepada data yang sedang dimasukkan.

Bila kita jalankan tiga buah SQL statement berikut, setelah tabel dibuat (masih kosong
datanya)

INSERT negara (kode_negara, nama_negara, gdp)
     VALUES (‘IND’, ‘Indonesia’, 100)
INSERT negara (kode_negara, nama_negara, gdp)
     VALUES (‘SGP’, ‘Singapura’, 1000)
INSERT negara (kode_negara, nama_negara, gdp)
     VALUES (‘KAN’, ‘Kanada’, 1100)

Maka isi tabel negara adalah:

                 negara_sk          kode_negara   nama_negara   gdp
                 1                  IND           Indonesia     100
                 3                  SGP           Singapura     1000
                 5                  KAN           Kanada        1100




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



Membaca data, misalnya dengan SQL sebagai berikut:

SELECT nama_negara, gdp FROM negara
     WHERE gdp > 100

tidak perlu ‘menyentuh’ surrogate-key, karena memang dia, dilihat dari sudut user
(bukan technical/system), tidak ada hubungan dengan data.

Untuk query yang melibatkan dua atau lebih tabel (join query), misalnya SQL berikut:

SELECT a.nama_negera, b.nama_propinsi FROM negara a, propinsi b
     WHERE a.kode_negara = ‘IND’
           AND a.negara_sk = b.negara_sk

kita tidak perlu menyentuh isi surrogate key, cukup ditambahkan bagian terakhir yang
menyebutkan surrogate key dari kedua tabel yang dibutuhkan untuk menghubungkan
mereka.

Dapat disimpulkan, bahwa penggunaan surrogate key adalah ‘transparan’ terhadap user.


Kesimpulan Manfaat Surrogate Key

Selain menjamin kestabilan (tabel terkait tidak kena dampak perubahan), surrogate key
juga menghemat tempat penyimpan (disk space), karena hanya satu attribute numerik
sederhana, tidak composite seperti bila digunakan intelligent key (makin panjang
rangkaian entity-nya makin besar composite primary key-nya entity ujung terbawahnya,
dan dia makin tidak stabil)

Surrogate key yang sering disebut dummy key sebenarnya smart! Maksudnya, dia tidak
bermakna dan tidak perlu dipusingkan – dia otomatis berfungsi memecahkan masalah
intelligent key.




                                                                                   4

Mais conteúdo relacionado

Semelhante a Surrogate

Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Devi Apriansyah
 
Basis data 7
Basis data 7Basis data 7
Basis data 7Febrienda
 
T modul 5 mysql
T modul 5 mysqlT modul 5 mysql
T modul 5 mysqljafra
 
Chapter13(basis data)p
Chapter13(basis data)pChapter13(basis data)p
Chapter13(basis data)pIrmha Surya
 
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Agus Haryanto
 
Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Devi Apriansyah
 
Database-Environments.pptx
Database-Environments.pptxDatabase-Environments.pptx
Database-Environments.pptxajimaulana27
 
Aplikasi seleksi-karyawan-menggunakan-excel
Aplikasi seleksi-karyawan-menggunakan-excelAplikasi seleksi-karyawan-menggunakan-excel
Aplikasi seleksi-karyawan-menggunakan-excelSekar Sari
 
Arsitektur sistem basis data
Arsitektur sistem basis dataArsitektur sistem basis data
Arsitektur sistem basis dataNurul Arifin S
 
Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)Devi Apriansyah
 
Sql programming
Sql programmingSql programming
Sql programmingDoni Rizky
 

Semelhante a Surrogate (20)

Rsi 13
Rsi 13Rsi 13
Rsi 13
 
Rsi 13
Rsi 13Rsi 13
Rsi 13
 
Laporan modul 5 basisdata
Laporan modul 5 basisdataLaporan modul 5 basisdata
Laporan modul 5 basisdata
 
Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)
 
Basis data 7
Basis data 7Basis data 7
Basis data 7
 
T modul 5 mysql
T modul 5 mysqlT modul 5 mysql
T modul 5 mysql
 
Chapter13(basis data)p
Chapter13(basis data)pChapter13(basis data)p
Chapter13(basis data)p
 
modul basis data.docx
modul basis data.docxmodul basis data.docx
modul basis data.docx
 
Semester genap
Semester genapSemester genap
Semester genap
 
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
 
Djoni (generik)
Djoni (generik)Djoni (generik)
Djoni (generik)
 
Sbd ke1 2
Sbd ke1 2Sbd ke1 2
Sbd ke1 2
 
Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)
 
27305 model relational
27305 model relational27305 model relational
27305 model relational
 
Database-Environments.pptx
Database-Environments.pptxDatabase-Environments.pptx
Database-Environments.pptx
 
Aplikasi seleksi-karyawan-menggunakan-excel
Aplikasi seleksi-karyawan-menggunakan-excelAplikasi seleksi-karyawan-menggunakan-excel
Aplikasi seleksi-karyawan-menggunakan-excel
 
Arsitektur sistem basis data
Arsitektur sistem basis dataArsitektur sistem basis data
Arsitektur sistem basis data
 
Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)Laporan praktikum modul 6 (ddl)
Laporan praktikum modul 6 (ddl)
 
Vb
VbVb
Vb
 
Sql programming
Sql programmingSql programming
Sql programming
 

Mais 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
 

Mais de Nurdin Al-Azies (20)

Jadwal Piala Dunia 2014
Jadwal Piala Dunia 2014Jadwal Piala Dunia 2014
Jadwal Piala Dunia 2014
 
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 )
 
Sony (northwind)
Sony (northwind)Sony (northwind)
Sony (northwind)
 

Surrogate

  • 1. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Surrogate Key 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. Misalkan kita memiliki database alamat dengan diagram ER (Entity Relationship Diagram) data model-nya sebagai berikut. Perhatikan bahwa attribute yang didalam bagian atas dari kotak entity adalah primary key. Misalnya untuk entity NEGARA, primary key adalah kode_negara. Sedang PROPINSI memiliki composite primary key yaitu kode_negara dan kode_propinsi. Dalam model ini primary key tabel NEGARA, kode_negara, menjadi bagian primary key tabel PROPINSI; lalu menjadi bagian dari primary key tabel KOTA, dan juga bagian primary key tabel JALAN. Demikian juga dengan primary key tabel ditingkat lebih atas yang lain, menjadi bagian dari primary dari primary key tabel yang dibawahnya, dan dibawa terus ke yang lebih bawah. Dengan demikian dapat dipastikan 1
  • 2. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com jalan yang dinegara, dikota, dan dipropinsi mana, karena mungkin ada jalan yang sama dinegera, kota dan propinsi berbeda. Dalam contoh model ini, kode_negara, propinsi, kota, dan jalan dibentuk berdasarkan namanya, seperti dapat dilihat sample data JALAN dibawah ini. Kode_negara Kode_propinsi Kode_kota Kode_jalan Nama_jalan Jumlah_ jalur IND JABAR JAK PDHJ Pondok Hijau 2 IND JABAR JAK PNID Pinang Indah 2 Apa yang terjadi bila terjadi penggantian nama, misalnya Jawa Barat, dengan kode_propinsi JABAR, menjadi Daerah Istimewa Jakarta Raya, yang menurut aturan pemberian kode, kode_propinsi-nya juga harus diganti, misalnya menjadi DIJR. Semua data isi tabel JALAN, yang berkaitan dengan Jawa Barat, harus diubah! Demikian juga dengan isi tabel KOTA. Rangkaian perubahan ini makin memburuk bila PROPINSI, KOTA dan/atau JALAN digunakan (dihubungkan) dengan tabel-tabel data yang lain. Maslah ini terjadi karena rancangan diatas menggunakan intelligent key (bermakna); kode_negara, propinsi, kode dan jalan, yang menjadi primary key, dibentuk (dirumuskan) berdasarkan namanya. Intelligent key kadang disebut juga “natural” key. Solusi Surrogate Key Surrogate key adalah solusi yang efektif. Surrogate key, sebagai primary key, yang biasanya merupakan angka bulat urut yang tidak bermakna, tidak ada hubungan dengan data didalam tabel. Dengan surrogate key, diagram ER kita menjadi sebagai berikut. 2
  • 3. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Kini, bila nama propinsi dan kodenya berubah, atau attribute yang manapun, data ditabel KOTA dan JALAN, tidak kena dampaknya. Bila kita ingin menyimpan nama dan kode sebelumnya (history), kita menambahkan record baru yang memiliki surrogate key-nya sendiri, tidak menimpanya dengan yang baru. Teknik surrogate key untuk menyimpan data historis ini, didunia data warehousing dikenal dengan istilah “slowly changing dimension type two”. Fasilitas Surrogate Key Database populer seperti Oracle, DB2 dan SQL Server memiliki fasilitas implementasi surrogate key. Berikut contoh penggunaannya di Microsoft SQL Server. Mendefinisikan surrogate key pada waktu membuat tabel. Misalnya untuk tabel NEGARA bisa menggunakan SQL statement sebagai berikut. CREATE TABLE negara ( negara_sk int IDENTITY(1,2) PRIMARY KEY, kode_negara varchar(10) NOT NULL, nama_negara varchar(50) NOT NULL, gdp int) Perhatikan tambahan IDENTITY(1,2) pada surrogate key negara_sk. Angka pertama (disebut seed) adalah nilai negara_sk yang akan diberikan oleh SQL Server untuk data (row) pertama yang diisikan kedalam tabel ini, dalam contoh kita adalah 1. Angka kedua (disebut increment), yaitu 2 dalam contoh kita ini, adalah pertambahan pada nilai surrogate key dari nilai terakhir yang sudah dipakai untuk mendapatkan nilai yang akan diberikan kepada data yang sedang dimasukkan. Bila kita jalankan tiga buah SQL statement berikut, setelah tabel dibuat (masih kosong datanya) INSERT negara (kode_negara, nama_negara, gdp) VALUES (‘IND’, ‘Indonesia’, 100) INSERT negara (kode_negara, nama_negara, gdp) VALUES (‘SGP’, ‘Singapura’, 1000) INSERT negara (kode_negara, nama_negara, gdp) VALUES (‘KAN’, ‘Kanada’, 1100) Maka isi tabel negara adalah: negara_sk kode_negara nama_negara gdp 1 IND Indonesia 100 3 SGP Singapura 1000 5 KAN Kanada 1100 3
  • 4. Tips dan Trik IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com Membaca data, misalnya dengan SQL sebagai berikut: SELECT nama_negara, gdp FROM negara WHERE gdp > 100 tidak perlu ‘menyentuh’ surrogate-key, karena memang dia, dilihat dari sudut user (bukan technical/system), tidak ada hubungan dengan data. Untuk query yang melibatkan dua atau lebih tabel (join query), misalnya SQL berikut: SELECT a.nama_negera, b.nama_propinsi FROM negara a, propinsi b WHERE a.kode_negara = ‘IND’ AND a.negara_sk = b.negara_sk kita tidak perlu menyentuh isi surrogate key, cukup ditambahkan bagian terakhir yang menyebutkan surrogate key dari kedua tabel yang dibutuhkan untuk menghubungkan mereka. Dapat disimpulkan, bahwa penggunaan surrogate key adalah ‘transparan’ terhadap user. Kesimpulan Manfaat Surrogate Key Selain menjamin kestabilan (tabel terkait tidak kena dampak perubahan), surrogate key juga menghemat tempat penyimpan (disk space), karena hanya satu attribute numerik sederhana, tidak composite seperti bila digunakan intelligent key (makin panjang rangkaian entity-nya makin besar composite primary key-nya entity ujung terbawahnya, dan dia makin tidak stabil) Surrogate key yang sering disebut dummy key sebenarnya smart! Maksudnya, dia tidak bermakna dan tidak perlu dipusingkan – dia otomatis berfungsi memecahkan masalah intelligent key. 4