Batasan tabel

Selesai

Batasan tabel database tidak hanya memungkinkan Anda mengontrol apa dan bagaimana Anda menyimpan data, tetapi juga menentukan hubungan antar tabel.

Dengan menggunakan batasan dan hubungan tabel, Anda dapat memenuhi aturan khusus permainan kartu untuk kualitas data tanpa baris duplikat. Penting untuk menghilangkan baris duplikat karena tidak hanya menyebabkan masalah performa, mereka juga menghapus kemampuan untuk memiliki data yang lengkap, konsisten, dan akurat (juga disebut integritas data).

Dengan mempelajari cara menggunakan batasan dan hubungan tabel, Anda dapat memastikan integritas data di seluruh aplikasi.

Menetapkan nilai unik dengan kunci primer

Klasifikasi membantu saat mencari item tertentu dengan membatasi pilihan Anda dan menyajikan serangkaian hasil yang lebih kecil. Database relasional berisi kunci primer, yang merupakan kolom atau kombinasi kolom yang berisi nilai yang secara unik mengidentifikasi setiap baris dalam tabel. Dengan permainan kartu, Anda dapat membatasi hasil pencarian berdasarkan jenis kartu atau warna tetapi, dengan menetapkan kunci primer juga, database dapat langsung memanggil kembali semua informasi tentang kartu itu dengan satu nilai unik.

Saat menentukan dan membuat tabel, Anda dapat menggabungkan kolom kunci primer dengan kolom identitas. Menggabungkan dua kolom tidak hanya memastikan nilai yang unik, tetapi juga akan memiliki Azure SQL mengurus penegakan dan pembuatan nilai unik ini secara otomatis. Perhatikan saja, tabel hanya dapat berisi satu kunci primer dan kolom atau kumpulan kolom ini tidak pernah boleh berisi nilai kosong atau null. Dalam skenario, tabel kartu akan memiliki kunci primer pada kolom card_id yang menyediakan penunjuk pencarian langsung ke kartu tertentu yang dicari pengguna.

Gambar memperlihatkan panah yang menunjuk ke kunci primer.

Menentukan hubungan tabel dengan kunci asing

Persyaratan untuk aplikasi referensi kartu online adalah untuk mendukung kartu yang memiliki terjemahan untuk beberapa bahasa. Anda hanya bisa menambahkan kolom untuk setiap bahasa pada tabel kartu utama tetapi akhirnya itu akan menjadi sulit dikelola. Ini juga akan mengharuskan Anda untuk menambahkan kolom baru ke tabel setiap kali terjemahan baru diperlukan. Solusi yang lebih baik adalah memiliki tabel terjemahan terpisah yang dapat Anda tautkan kembali ke tabel kartu card_id kolom. Di sinilah kunci asing datang bermain.

Kunci asing adalah kolom atau kombinasi kolom yang dapat digunakan untuk menerapkan tautan, atau hubungan, di antara dua tabel. Kunci asing membantu mengontrol data yang dapat disimpan menggunakan hubungan ini memastikan bahwa hanya data dari kolom kunci utama dalam tabel terkait yang dapat disimpan di kolom kunci asing. Dalam skenario permainan kartu, Anda akan menggunakan hubungan kunci asing dalam tabel terjemahan ke kunci utama tabel kartu utama. Hubungan ini kemudian hanya akan memungkinkan nilai dari kolom kunci utama dalam tabel kartu dimasukkan ke dalam kolom kunci asing dalam tabel terjemahan untuk memastikan selalu ada hubungan antara keduanya mencegah baris tanpa induk atau data yang tidak akurat. Misalnya, Anda tidak dapat memiliki baris dalam tabel terjemahan untuk card_id 52 jika card_id 52 tidak ada di tabel kartu.

Gambar memperlihatkan tabel yang ditautkan oleh kunci asing.

Menerapkan integritas data dengan batasan

Nilai null, nilai default, dan batasan pemeriksaan

Mengontrol data apa yang disimpan dalam tabel permainan kartu dapat membantu menjaga nilai yang tidak diinginkan dan menegakkan integritas data (himpunan data yang lengkap, konsisten, dan akurat). Pada tingkat yang paling sederhana, ada kolom di mana Anda harus selalu memiliki nilai yang dimasukkan seperti nama kartu; mencegah kelalaian potongan-potongan kunci data. Saat membuat tabel, Anda bisa mengatur kolom untuk memperbolehkan atau melarang nilai kosong atau null. Database Azure SQL akan melihat kapan seseorang tidak menyediakan semua elemen data yang diperlukan yang diperlukan dengan meneruskan nilai null. Ketika situasi ini terjadi, database akan mencegah catatan dimasukkan.

Azure SQL juga dapat membantu kami mengontrol nilai apa yang dapat diterima dalam kolom dengan menetapkan satu atau beberapa nilai default. Database bahkan dapat membatasi data yang diizinkan untuk daftar nilai yang ditetapkan. Nilai default dengan kolom akan memberi tahu database nilai apa yang akan digunakan jika tidak ada nilai yang ditentukan. Setelah contoh seperti itu yang dapat digunakan dengan aplikasi referensi kartu adalah dengan kolom status. Di sini, Anda dapat menetapkan nilai default yang akan digunakan pada entri kartu yang membantu entri data cepat dan elemen antarmuka pengguna default.

Batasan pemeriksaan dapat membatasi nilai apa yang bisa diterima kolom. Dengan skenario aplikasi referensi kartu, warna kartu dan jenis kartu harus memiliki serangkaian nilai tertentu; kondisi sempurna untuk batasan pemeriksaan sehingga nilai yang tidak memenuhi kriteria ini akan ditolak.

Gambar memperlihatkan batasan pemeriksaan yang menolak nilai yang tidak ada dalam daftar nilai yang dapat diterima.

Mungkin ada situasi di mana menentukan sekumpulan nilai default tidak realistis. Bayangkan kolom yang hanya memungkinkan angka antara 1 dan 10000. Membuat daftar nilai untuk 10000 angka individu akan menjadi tidak perlu dan padat karya. Anda dapat membuat batasan pemeriksaan dengan ekspresi logis (Boolean) apa pun yang mengembalikan TRUE atau FALSE berdasarkan operator logis; seperti rentang nilai yang menggunakan lebih besar dari dan kurang dari operator. Anda dapat memiliki beberapa batasan pemeriksaan pada satu kolom dan Anda bisa memiliki batasan pemeriksaan tunggal yang berlaku untuk beberapa kolom.

Batasan unik

Sama seperti kunci primer yang akan memberlakukan keunikan, ada situasi di mana Anda ingin kolom memiliki nilai unik tetapi bukan kunci primer (ingat hanya ada satu kunci primer per tabel). Dengan membuat kolom dengan batasan unik, Azure SQL dapat mengizinkan entri nilai unik, mengizinkan nilai null jika sesuai tidak seperti kunci primer, dan menggunakan sebagai kunci asing jika diperlukan. Batasan unik dapat digunakan dalam aplikasi kartu pada tabel set_lists. Di sini, Anda dapat menempatkan batasan unik pada kolom card_id dan set_id untuk memastikan bahwa kartu tidak ditambahkan ke set lebih dari sekali.

Uji pengetahuan Anda

1.

Referensi kunci asing jenis kolom apa dalam tabel lain?

2.

Jenis batasan apa yang akan Anda gunakan untuk membatasi nilai yang diterima oleh satu atau beberapa kolom dalam tabel ke rentang tertentu menggunakan ekspresi logis?