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