Membuat batasan dan indeks tabel dengan Azure Data Studio

Selesai

Saatnya untuk menyelesaikan tabel untuk aplikasi referensi kartu online. Dengan pengetahuan dari unit sebelumnya, model data harus menggunakan hubungan tabel, kunci primer, dan indeks. Anda juga perlu memastikan integritas data dengan batasan.

Diagram of a data model with four related tables.

Dalam latihan ini, Anda akan membuat hubungan tabel, kunci utama, kolom identitas, dan indeks untuk aplikasi referensi kartu online.

Tabel kartu

Ingat aturan untuk tabel kartu:

  • Hanya satu baris untuk setiap kartu dalam tabel kartu
  • Kartu dapat memiliki beberapa terjemahan bahasa dari teks asli dan nama kartu
  • Atribut kartu adalah:
    • ID Kartu
    • Nama (tidak lebih dari 100 karakter)
    • Warna (tidak lebih dari 10 karakter)
    • Daya (tidak ada kartu yang dapat memiliki daya lebih besar dari 20)
    • Jenis (tidak lebih dari 10 karakter)
    • Teks (Area teks besarnya 500 karakter)
    • Keadaan
    • Seni
  • Kartu hanya bisa menjadi salah satu warna berikut: hitam, biru, hijau, merah, putih, oranye
  • Kartu hanya bisa menjadi salah satu jenis berikut: pahlawan, monster, mantra, senjata

Anda perlu membuat kunci primer pada kolom card_id dan menerapkan aturan batasan pada card_color dan card_type. Aturan lain yang perlu Anda tentukan adalah kolom mana yang dapat berisi nilai null dan mana yang diperlukan.

Anda dapat memperbarui tabel dengan apa yang Anda ketahui dari unit dan aturan skenario sebelumnya:

Kartu

Nama kolom Jenis Data Null? Nilai default Catatan
card_id int no IDENTITAS dan Kunci Primer
card_name nvarchar(100) no
card_type nvarchar(10) no senjata, baju besi, mantra, monster
card_color nvarchar(10) no Oranye, hitam, hijau, biru, putih, merah
card_power tinyint no Ini dapat menggunakan tinyint di sini karena daya tidak akan lebih besar dari 20
card_text nvarchar(500) yes
card_status bit no 1
card_art varbinary(max) no

Memperbarui tabel kartu di Azure Data Studio

  1. Dengan Azure Data Studio terbuka dari latihan sebelumnya, temukan tabel dbo.cards di navigator koneksi di folder tabel. Klik kanan tabel kartu dan pilih Desain.

    Screenshot showing how to right-click the cards table in the connections navigator and select Design.

  2. Tugas pertama adalah menentukan kolom mana yang mengizinkan nilai null dan yang tidak. Kartu harus memiliki semua informasi yang relevan di dalamnya seperti nama, jenis, warna, daya, status, dan beberapa seni. Satu-satunya kolom yang tidak perlu Anda miliki teksnya adalah kolom card_text . Menggunakan kotak centang di kolom Izinkan Nulls di perancang tabel, hapus centang semua kotak centang kecuali yang ada di baris card_text.

    Screenshot showing how to uncheck all the checkboxes except for the one in the card_text row.

  3. card_id adalah pengidentifikasi kunci utama tabel kartu. Di kolom Kunci Utama perancang tabel, pilih kotak centang untuk membuat card_id kunci utama untuk tabel.

    Screenshot showing how to select the checkbox for card_id to make this the primary key for the table.

    Catatan

    Ingat, dengan mendefinisikan kunci primer, Anda telah secara otomatis menambahkan indeks rowstore berkluster ke tabel ini.

  4. Selain menjadikan kolom card_id sebagai kunci utama, Anda juga ingin mengatur kolom ini sebagai kolom identitas. Untuk membuat card_id kolom identitas, navigasikan ke area Properti Kolom dan gulir ke bawah untuk menemukan bagian Spesifikasi Identitas. Di sini, centang kotak Adalah Identitas . Nilai dalam bidang Benih Identitas dan Kenaikan Identitas harus diatur ke 1.

    Screenshot showing how to select the Is Identity checkbox in the Column Properties area for the cards table. The values in the Identity Seed and Identity Increment field should be set to 1.

  5. Selanjutnya, Anda perlu menambahkan nilai default ke card_type membatasi kolom ini untuk senjata, baju besi, mantra, atau monster. Untuk menambahkan nilai default ke kolom ini, pilih tab Periksa Batasan di perancang tabel

    Screenshot showing how to select the Check Constraints tab.

  6. Selanjutnya, pilih tombol + Batasan Pemeriksaan Baru untuk menambahkan batasan ini ke kolom.

    Screenshot showing how to select the + New Check Constraint button.

  7. Atur nilai berikut di area Periksa Properti Batasan. Di bidang Nama, ubah nama batasan dari default yang disediakan menjadi CK_type. Navigasi ke bidang Ekspresi dan ketik ekspresi seperti yang diperlihatkan dalam teks berikut:

    [card_type] = 'weapon' OR [card_type] = 'armor' OR [card_type] = 'spell' OR [card_type] = 'monster'
    

    Screenshot showing how to create a check constraint on the card_type column.

  8. Sama seperti yang Anda lakukan dengan card_type, Anda perlu menambahkan nilai default ke kolom card_color . Warna kartu hanya dapat berupa nilai berikut: oranye, hitam, hijau, biru, putih, atau merah. Saat masih berada di tab Periksa Batasan di perancang tabel, pilih tombol + Batasan Pemeriksaan Baru untuk menambahkan batasan baru ke kolom.

    Screenshot showing how to click the + New Check Constraint to add a new constraint to the card_color column.

    Di bidang Nama, ubah nama batasan dari default yang disediakan menjadi CK_color. Navigasi ke bidang Ekspresi dan ketik ekspresi seperti yang diperlihatkan dalam teks berikut:

    [card_color] = 'orange' OR [card_color] = 'black' OR [card_color] = 'green' OR [card_color] = 'blue' OR [card_color] = 'white' OR [card_color] = 'red'
    

    Tampilan batasan pemeriksaan akan terlihat seperti gambar berikut setelah menambahkan batasan card_color:

    Screenshot of the check constraints view of the Table Designer in Azure Data Studio showing how to add new check constraints to a column.

  9. Tabel kartu sekarang selesai dan akan terlihat seperti berikut ini:

    Screenshot of the completed cards table in Azure Data Studio.

  10. Pilih tombol Terbitkan Perubahan di kiri atas jendela perancang tabel untuk menyimpan perubahan tabel ini ke database.

    A screenshot showing how to click the Publish Changes button, just above the table name field.

    Jika diminta untuk meninjau perubahan, pertama, pilih kotak centang yang mengonfirmasi perubahan, lalu pilih tombol Perbarui Database .

    Screenshot showing how to click the Update Database button to submit the changes to the cards table to the database containing constraints.

Tabel terjemahan

Tabel terjemahan akan menjadi tabel pertama yang menggunakan kunci asing yang akan merujuk kembali ke tabel kartu dengan card_id. Hubungan ini tidak hanya akan membuat referensi kembali ke kolom card_id dalam tabel kartu, tetapi akan mencegah baris dimasukkan ke dalam tabel ini tanpa referensi tersebut card_id ada. Sekali lagi, ini juga akan memiliki kolom identitas (translation_id) yang akan berfungsi sebagai kunci utama, situasi yang berulang yang akan Anda lihat di setiap tabel yang dibuat dalam skenario aplikasi kartu.

Dengan mengingat kolom identitas dan kunci asing, inilah yang akan Anda tambahkan ke tabel terjemahan Anda:

Card_translations

Nama kolom Jenis Data Null? Nilai default Catatan
translation_id int no IDENTITAS dan Kunci Primer
card_id int no Kunci asing kembali ke tabel Kartu
translation_card_language nvarchar(50) no
translation_card_name nvarchar(500) no Nama kartu yang diterjemahkan
translation_card_text nvarchar(2000) yes Teks kartu yang diterjemahkan

Memperbarui tabel terjemahan di Azure Data Studio

  1. Temukan tabel dbo.card_translations di navigator koneksi di folder tabel. Klik kanan tabel dan pilih Desain.

    Screenshot showing how to right click the card_translations table in the connections navigator and select Design.

  2. Pertama, putuskan kolom mana yang mengizinkan nilai null dan mana yang tidak. Baris dalam tabel ini harus memiliki ID, referensi ke card_id dari tabel kartu , bahasa terjemahan, dan nama kartu yang diterjemahkan. Seperti halnya tabel kartu, translation_card_text bisa null. Di kolom Izinkan Nulls di perancang tabel, hapus centang semua kotak centang kecuali yang ada di baris translation_card_text.

    Screenshot showing how to uncheck all the checkboxes except for the one in the translation_card_text row.

  3. Kolom translation_id adalah pengidentifikasi kunci utama tabel ini. Di kolom Kunci Primer perancang tabel, pilih kotak centang untuk membuat translation_id kunci utama untuk tabel.

    Screenshot showing how to select the checkbox for translation_id to make this the primary key for the table.

    Catatan

    Ingat, dengan mendefinisikan kunci primer, Anda telah secara otomatis menambahkan indeks rowstore berkluster ke tabel ini.

  4. Selain menjadikan kolom translation_id sebagai kunci utama, Anda juga ingin mengatur kolom ini sebagai kolom identitas. Untuk mengatur translation_id sebagai kolom identitas, navigasikan ke area Properti Kolom dan gulir ke bawah untuk menemukan bagian Spesifikasi Identitas. Di sini, centang kotak Adalah Identitas . Nilai dalam bidang Benih Identitas dan Kenaikan Identitas harus diatur ke 1.

    Screenshot showing how to check the Is Identity checkbox the Column Properties area for the card_translations table. The values in the Identity Seed and Identity Increment field should be set to 1.

  5. Setelah kolom dibuat, Anda perlu membuat kunci asing. Pilih tab Kunci Asing di perancang tabel, lalu pilih tombol + Kunci Asing Baru.

    Screenshot showing how to select the Foreign Keys tab in the table designer for the cards_translations table, then select the + New Foreign Key button.

  6. Di bidang Nama Kunci Asing, masukkan FK_card_id_to_translation dan gunakan menu drop-down Tabel Asing untuk memilih dbo.cards (tabel kartu).

    Screenshot showing how to enter FK_card_id_to_translation as the name and use the Foreign Table drop down to select dbo.cards.

  7. Di panel Properti Kunci Asing di sebelah kanan perancang tabel, pilih tombol + Pemetaan Kolom Baru.

    Screenshot showing how to select the + New Column Mapping button in the Foreign Key properties pane.

  8. Pilih card_id menggunakan menu drop-down untuk bidang Kolom dan Kolom Asing.

    Screenshot showing how to select card_id using the drop down for both the column and foreign column fields.

    Tabel card_translations sekarang selesai dan akan terlihat seperti berikut ini:

    Screenshot of the completed card translations table in Azure Data Studio.

  9. Pilih tombol Terbitkan Perubahan di kiri atas jendela perancang tabel untuk menyimpan perubahan tabel ini ke database.

    Screenshot showing how to select the Publish Changes button, just above the table name field.

    Jika diminta untuk meninjau perubahan, pertama, pilih kotak centang yang mengonfirmasi perubahan, lalu pilih tombol Perbarui Database .

    Screenshot showing how to click the Update Database button to submit the changed to the card_translations table to the database.

Tabel set

Pembaruan pada tabel set adalah kecil; Anda hanya akan menambahkan kunci primer yang juga merupakan kolom identitas. Anda akan menggunakan kolom set_id untuk pembaruan ini. Anda juga harus mengatur semua kolom agar tidak menerima nilai null.

Set

Nama kolom Jenis Data Null? Nilai default Catatan
set_id int no IDENTITAS dan Kunci Primer
set_name nvarchar(50) no
set_date date no Tidak perlu menyimpan waktu (jam/menit/detik) sehingga DATE akan berfungsi di sini

Memperbarui tabel set di Azure Data Studio

  1. Temukan tabel dbo.sets di navigator koneksi di folder tabel. Klik kanan tabel dan pilih Desain.

    Screenshot showing how to right-click the sets table and select Design.

  2. Hapus centang pada semua kotak centang di kolom Izinkan Nulls di perancang tabel.

    Screenshot showing how to uncheck all the checkboxes for the sets table for allow nulls.

  3. Kolom set_id adalah pengidentifikasi kunci utama tabel ini. Di kolom Kunci Primer perancang tabel, pilih kotak centang untuk membuat set_id kunci utama untuk tabel.

    Screenshot showing how to select the checkbox for set_id to make this the primary key for the table.

    Catatan

    Ingat, dengan mendefinisikan kunci primer, Anda telah secara otomatis menambahkan indeks rowstore berkluster ke tabel ini.

  4. Selain menjadikan kolom set_id sebagai kunci utama, Anda juga ingin mengatur kolom ini sebagai kolom identitas. Untuk membuat kolom set_id menjadi kolom identitas, navigasikan ke area Properti Kolom dan gulir ke bawah untuk menemukan bagian Spesifikasi Identitas. Di sini, centang kotak Adalah Identitas . Nilai dalam bidang Benih Identitas dan Kenaikan Identitas harus diatur ke 1.

    Screenshot showing how to select the checkbox for Is Identity in the Column Properties area for the sets table. The values in the Identity Seed and Identity Increment field should be set to 1.

    Tabel set sekarang selesai dan akan terlihat seperti berikut ini:

    Screenshot of the completed sets table in Azure Data Studio.

  5. Pilih tombol Terbitkan Perubahan di kiri atas jendela perancang tabel untuk menyimpan perubahan tabel ini ke database.

    Screenshot showing how to click the Publish Changes button, just above the table name field.

    Jika diminta untuk meninjau perubahan, pertama, pilih kotak centang yang mengonfirmasi perubahan, lalu pilih tombol Perbarui Database .

    Screenshot showing how to select the Update Database button to submit the changed to the sets table to the database.

Tabel set_lists

Anda juga memerlukan kolom identitas/kunci utama pada kolom set_list_id . Selanjutnya, Anda perlu membuat dua pointer kembali ke kartu dan mengatur tabel, yang akan menjadi kunci asing; card_id dan set_id dengan jenis data yang cocok dengan tabel tersebut. Tabel set_lists ini akan penting ketika pengguna menginginkan semua informasi tentang kartu dalam set tertentu. Selain itu, hubungan kunci asing ini akan mencegah memiliki tabel dengan baris duplikat atau mencoba untuk melumpuhkan set_id ke dalam satu kolom pada tabel kartu, yang akan mengakibatkan masalah penguraian dan performa.

Tabel set_lists akan terlihat seperti berikut ini dengan modifikasi:

Set_lists

Nama kolom Jenis Data Null? Nilai default Catatan
set_list_id int no IDENTITAS dan Kunci Primer
card_id int no Kunci asing kembali ke tabel Kartu
set_id int no Kunci asing kembali ke tabel Set

Memperbarui tabel set_lists di Azure Data Studio

  1. Temukan tabel dbo.set_lists di navigator koneksi di folder tabel. Klik kanan tabel kartu dan pilih Desain.

    Screenshot showing how to right click on the set_lists table and select Design.

  2. Hapus centang pada semua kotak centang di kolom Izinkan Nulls di perancang tabel.

    A screenshot showing how to uncheck all the checkboxes for the set_lists table for allow nulls.

  3. Kolom set_list_id adalah pengidentifikasi kunci utama tabel ini. Di kolom Kunci Primer perancang tabel, pilih kotak centang untuk membuat kolom set_list_id menjadi kunci utama untuk tabel.

    A screenshot showing how to select the checkbox for set_list_id to make this the primary key for the table.

    Catatan

    Ingat, dengan mendefinisikan kunci primer, Anda telah secara otomatis menambahkan indeks rowstore berkluster ke tabel ini.

  4. Selain menjadikan kolom set_list_id sebagai kunci utama, Anda juga ingin mengatur kolom ini sebagai kolom identitas. Untuk membuat kolom set_list_id menjadi kolom identitas, navigasikan ke area Properti Kolom dan gulir ke bawah untuk menemukan bagian Spesifikasi Identitas. Di sini, pilih kotak centang Is Identity . Nilai dalam bidang Benih Identitas dan Kenaikan Identitas harus diatur ke 1.

    Screenshot showing how to select the checkbox for Is Identity in the Column Properties area for the set_lists table. The values in the Identity Seed and Identity Increment field should be set to 1.

  5. Selanjutnya, Anda perlu membuat kunci asing. Pilih tab Kunci Asing di perancang tabel, lalu pilih tombol + Kunci Asing Baru.

    Screenshot showing how to select the Foreign Keys tab in the table designer for the set_lists table, then select the + New Foreign Key button.

  6. Untuk kunci pertama, di bidang Nama Kunci Asing, masukkan FK_card_id_to_card dan gunakan menu drop-down Tabel Asing untuk memilih dbo.cards.

    Screenshot showing how to enter FK_card_id_to_card and use the Foreign Table drop-down to select dbo.cards.

  7. Di panel Properti Kunci Asing di sebelah kanan perancang tabel, pilih tombol + Pemetaan Kolom Baru.

    A screenshot showing how to select the + New Column Mapping button in the Foreign Key properties pane.

  8. Pilih card_id menggunakan menu drop-down untuk bidang Kolom dan Kolom Asing.

    A screenshot showing how to select card_id using the drop down for both the Column and Foreign column fields.

  9. Pilih tombol + Kunci Asing Baru lagi.

    A screenshot showing how to select the Foreign Keys tab for the set_lists table in the table designer, then select the + New Foreign Key button.

  10. Di bidang Nama Kunci Asing, masukkan FK_set_id_to_set dan gunakan menu drop-down Tabel Asing untuk memilih dbo.sets.

    Screenshot showing how to enter FK_set_id_to_set and use the Foreign Table drop-down to select dbo.sets.

  11. Di panel Properti Kunci Asing di sebelah kanan perancang tabel, pilih tombol + Pemetaan Kolom Baru.

    A screenshot showing how again for the second time, in the Foreign Key properties pane, on the right of the table designer for the set_lists table, click the + New Column Mapping button.

  12. Pilih set_id menggunakan drop-down untuk bidang Kolom dan Kolom Asing.

    Screenshot showing how to select set_id using the drop down for both the Column and Foreign Column fields.

  13. Tabel set_lists sekarang selesai. Ini akan terlihat seperti gambar berikut:

    A screenshot of the completed card set list table in Azure Data Studio.

  14. Pilih tombol Terbitkan Perubahan di kiri atas jendela perancang tabel untuk menyimpan perubahan tabel ini ke database.

    Screenshot showing how to select the Publish Changes button, just above the table name field.

    Jika diminta untuk meninjau perubahan, pertama, pilih kotak centang yang mengonfirmasi perubahan, lalu pilih tombol Perbarui Database .

    Screenshot showing how to select the Update Database button to submit the changed to the set_lists table to the database.