Senin, 23 Desember 2013

Primary key


Sebuah tombol atau primer yang unik adalah kunci yang unik mendefinisikan karakteristik masing-masing baris . Primary key harus terdiri dari karakteristik yang tidak dapat secara kolektif diduplikasi oleh setiap baris lainnya.

Dalam diagram hubungan entitas dari model data , satu atau lebih kunci unik dapat dinyatakan untuk setiap entitas data. Setiap tombol yang unik terdiri dari satu atau lebih atribut data entitas data. Himpunan kunci unik dideklarasikan untuk entitas data yang sering disebut sebagai kunci kandidat untuk entitas data. Dari set kunci kandidat, kunci unik tunggal dipilih dan menyatakan kunci utama untuk entitas data. Dalam diagram hubungan entitas, setiap hubungan entitas menggunakan kunci unik, paling sering kunci utama, dari satu entitas data dan salinan data kunci unik atribut untuk entitas data yang lain yang berkaitan. Ini warisan dari data kunci unik atribut disebut sebagai kunci asing dan digunakan untuk menyediakan jalur akses data antara entitas data. Setelah model data yang dipakai ke dalam database, setiap entitas data yang biasanya menjadi tabel database , kunci unik menjadi unik indeks yang berhubungan dengan tabel database mereka ditugaskan, dan hubungan entitas menjadi batasan kunci asing. Dalam model data terpadu, hubungan kesamaan tidak menjadi batasan kunci asing karena hubungan kesamaan adalah jenis peer-to-peer hubungan.

Primary key dapat terdiri dari atribut tunggal atau beberapa atribut dalam kombinasi. Misalnya, ulang tahun bisa digunakan bersama oleh banyak orang sehingga tidak akan menjadi kandidat utama untuk Primary Key, tapi nomor jaminan sosial atau nomor SIM akan ideal karena berkorelasi dengan satu nilai data tunggal. Karakteristik lain yang unik dari Primary Key karena berkaitan dengan database relasional, adalah bahwa Primary Key juga harus berfungsi sebagai Foreign Key pada tabel terkait . 
Sebagai contoh:

Author TABLE Skema:
 AuthorTable (author_id, AuthorName, CountryBorn, YearBorn)
 Buku TABLE Skema:
 Buku TABLE (ISBN, author_id, Judul, Penerbit, Harga)

Di sini kita dapat melihat bahwa author_id berfungsi sebagai Primary Key di AuthorTable tetapi juga berfungsi sebagai Foreign Key pada BookTable. The Foreign Key berfungsi sebagai penghubung dan karena itu hubungan antara dua "terkait" tabel dalam database contoh ini.

Dalam database relasional , indeks kunci unik unik dapat mengidentifikasi setiap baris dari nilai-nilai data dalam database tabel . Sebuah indeks kunci unik terdiri dari satu kolom atau set kolom dalam tabel database tunggal. Tidak ada dua baris yang berbeda atau rekaman data dalam tabel database dapat memiliki nilai data yang sama (atau kombinasi dari nilai-nilai data) di kolom tersebut indeks kunci unik jika nilai NULL tidak digunakan. Tergantung pada desain, tabel database mungkin memiliki banyak indeks kunci unik tapi paling banyak satu indeks kunci primer.

Sebuah kendala kunci unik tidak berarti NOT NULL kendala dalam praktek. Karena NULL bukanlah nilai sebenarnya (itu merupakan kurangnya nilai), ketika dua baris dibandingkan, dan kedua baris memiliki NULL dalam kolom, nilai kolom tidak dianggap sama. Dengan demikian, dalam rangka untuk kunci yang unik untuk secara unik mengidentifikasi setiap baris dalam sebuah tabel, nilai-nilai NULL tidak boleh digunakan. Menurut SQL standar dan Relational Model teori, kunci unik (kendala unik) harus menerima NULL dalam beberapa baris / tuple - namun tidak semua RDBMS mengimplementasikan fitur ini dengan benar.

Kunci unik harus unik mengidentifikasi semua baris mungkin yang ada di meja dan tidak hanya baris yang ada saat ini. Contoh kunci unik adalah nomor Jaminan Sosial (berhubungan dengan orang tertentu atau ISBN (terkait dengan buku tertentu). buku telepon dan kamus tidak dapat menggunakan nama, kata, atau Dewey Decimal nomor sistem sebagai candidate key karena mereka tidak unik mengidentifikasi nomor telepon atau kata-kata.

bahwa kunci primer harus didefinisikan dengan menggunakan sintaks lain. Sebuah tabel dapat memiliki paling banyak satu kunci utama, tetapi lebih dari satu kunci unik. Kunci utama adalah kombinasi dari kolom yang unik menentukan berturut-turut. Ini adalah kasus khusus dari kunci unik. Salah satu perbedaan adalah bahwa kunci primer memiliki implisit NOT NULL kendala sementara kunci unik tidak. Dengan demikian, nilai-nilai dalam kolom kunci unik mungkin atau mungkin tidak NULL , dan pada kenyataannya kolom tersebut dapat berisi paling banyak satu field NULL. Perbedaan lain adalah 

Model relasional, seperti yang diungkapkan melalui kalkulus relasional dan aljabar relasional, tidak membedakan antara kunci primer dan jenis lain dari kunci. Kunci utama yang ditambahkan ke dalam SQL standar terutama untuk kenyamanan para programmer aplikasi.  Kunci unik serta kunci primer dapat direferensikan oleh kunci asing.

Perbedaan antara Primary Key dan unik Key:
Primary Key
1. Kunci utama tidak bisa membiarkan nilai-nilai null. (Anda tidak dapat menentukan primary key pada kolom yang memungkinkan nulls.)
2. Setiap tabel dapat memiliki paling banyak satu kunci utama.
3. Pada beberapa RDBMS primary key secara otomatis menghasilkan tabel indeks berkerumun secara default.

Unik Key 
1. Sebuah kunci unik dapat memungkinkan nilai null. (Anda dapat menentukan kunci yang unik pada kolom yang memungkinkan nulls.)
2. Setiap tabel dapat memiliki beberapa kunci unik.
3. Pada beberapa RDBMS kunci yang unik secara otomatis menghasilkan tabel indeks non-clustered secara default.

Kunci pengganti
Dalam beberapa situasi desain kunci alam yang secara unik mengidentifikasi sebuah tuple dalam relasi adalah sulit untuk menggunakan untuk pengembangan perangkat lunak. Sebagai contoh, mungkin melibatkan beberapa kolom atau bidang teks besar. Sebuah kunci pengganti dapat digunakan sebagai primary key. Dalam situasi lain mungkin ada lebih dari satu candidate key untuk relasi, dan tidak ada kunci kandidat jelas disukai. Sebuah kunci pengganti dapat digunakan sebagai kunci utama untuk menghindari memberikan salah satu kunci kandidat keunggulan buatan atas yang lain.

Karena kunci utama ada terutama untuk kenyamanan programmer, kunci primer pengganti sering digunakan-dalam banyak kasus-eksklusif dalam desain aplikasi database.

Karena popularitas dari kunci primer pengganti, banyak pengembang dan dalam beberapa kasus bahkan teori telah datang untuk menganggap kunci primer pengganti sebagai bagian tak terpisahkan dari model data relasional. Hal ini sebagian besar disebabkan oleh migrasi dari prinsip-prinsip dari model Pemrograman Berorientasi Objek dengan model relasional, menciptakan model objek-relasional hibrida. Dalam ORM, ini pembatasan tambahan ditempatkan pada kunci primer:
- Kunci primer harus berubah, yaitu, tidak berubah sampai catatan ini hancur.
- Kunci primer harus bilangan bulat anonim atau pengidentifikasi numerik.

Namun, tak satu pun dari pembatasan ini adalah bagian dari model relasional atau standar SQL. Due diligence harus diterapkan pada saat penentuan ketetapan nilai-nilai kunci primer selama database dan desain aplikasi. Beberapa sistem database bahkan menyiratkan bahwa nilai-nilai dalam kolom kunci primer tidak dapat diubah dengan menggunakan UPDATE statement SQL.

Alternatif kunci
Hal ini lumrah dalam database SQL untuk menyatakan kunci primer tunggal, kunci unik yang paling penting. Namun, mungkin ada kunci unik lebih lanjut yang bisa melayani tujuan yang sama. Ini harus ditandai sebagai kunci 'unik'. Hal ini dilakukan untuk mencegah data yang salah masuk meja (entri duplikat tidak berlaku dalam kolom yang unik) dan untuk membuat database yang lebih lengkap dan berguna. Ini bisa disebut kunci alternative

Tidak ada komentar:

Posting Komentar