Anda dapat membuat hubungan antar tabel dengan menggunakan skrip GUI atau SQL. Di sini, saya mendemonstrasikan kedua metode tersebut.
Dalam desain basis data relasional, sebuah hubungan adalah tempat dua atau lebih tabel dihubungkan bersama karena mengandung data terkait. Hal ini memungkinkan pengguna untuk menjalankan kueri untuk data terkait di beberapa tabel.
Di sini, kita akan membuat hubungan berikut.
Metode
Inilah cara kami melakukannya:
- Kami akan menggunakan SQL untuk membuat Album tabel dan satu hubungan.
- Kami akan menggunakan GUI untuk menciptakan hubungan lain.
Dengan begitu, Anda akan melihat kedua metode menciptakan hubungan.
Kita hanya perlu membuat satu tabel karena kita telah membuat dua tabel ini sebelumnya dalam tutorial ini (artis Artis tabel melalui GUI dan Genre tabel menggunakan SQL).
Buat Hubungan menggunakan SQL
Buka jendela kueri baru di SSMS dan jalankan kode berikut:
CREATE TABLE Albums ( AlbumId int IDENTITY(1,1) NOT NULL PRIMARY KEY, AlbumName nvarchar(255) NOT NULL, ReleaseDate date NOT NULL, ArtistId int NOT NULL, GenreId int NOT NULL CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE NO ACTION ON UPDATE NO ACTION );
Bagian pertama dari pernyataan itu membuat tabel.
Bagian terakhir mendefinisikan hubungan. Bagian ini:
CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE NO ACTION ON UPDATE NO ACTION
Dua baris pertama menciptakan hubungan. Mereka membuat batasan kunci asing antara Albums.ArtistId kolom dan Artists.ArtistId kolom.
Dua baris terakhir menentukan apa yang harus dilakukan SQL Server jika seseorang mencoba menghapus atau memperbarui catatan induk yang direferensikan oleh catatan di tabel anak. Dalam hal ini, NO ACTION
berarti penghapusan/pembaruan tidak akan dilanjutkan. Pengguna hanya akan mendapatkan kesalahan.
Anda dapat mengubahnya menjadi ON DELETE CASCADE
jika Anda ingin dapat menghapus induk dan anak sekaligus (yaitu, penghapusan akan mengalir dari induk ke anak). Logika yang sama berlaku untuk pembaruan, dengan menggunakan ON UPDATE CASADE
.
NO ACTION
adalah nilai default, jadi kita bisa melakukannya tanpa dua baris kode terakhir. Namun, saya menyertakannya, karena ini merupakan faktor penting untuk dipikirkan saat membuat batasan kunci asing.
Apa yang dimaksud dengan Batasan Kunci Asing?
batasan kunci asing mendefinisikan hubungan antara tabel ini dan tabel lain. Saat Anda membuat batasan kunci asing, Anda membuatnya terhadap kolom tertentu di anak tabel, untuk mereferensikan kolom tertentu di induk tabel.
Ini membuat kolom di tabel anak menjadi kunci asing . Batasan memastikan bahwa nilai apa pun yang masuk ke kolom (kunci asing) ini sesuai dengan nilai di kolom kunci utama tabel induk. Jika seseorang mencoba memasukkan nilai yang tidak sesuai dengan nilai di kolom kunci utama tabel induk, SQL Server akan memunculkan kesalahan.
Ini membantu menegakkan integritas referensial. Ini mencegah kita dari memiliki catatan yatim (catatan anak yang tidak memiliki orang tua). Atau dalam contoh kami, album yang tidak terkait dengan artis mana pun.
Membuat Hubungan melalui GUI
Sekarang kita akan membuat hubungan lain melalui GUI SQL Server Mangement Studio.
Akan lebih mudah untuk memasukkan ini ke dalam skrip di atas, tetapi saya ingin mendemonstrasikan kedua metode menciptakan hubungan.
-
Buka Tabel Anak di Perancang Tabel
Klik kanan pada tabel anak (Album kami yang baru dibuat tabel) dan pilih Desain dari menu kontekstual.
Jika Anda tidak dapat melihat tabel yang baru dibuat di Object Browser, Anda mungkin perlu me-refresh Object Browser.
Klik kanan pada Tabel simpul dan pilih Segarkan .
-
Buka Dialog Hubungan Kunci Asing
Pilih Desainer Tabel> Hubungan... dari menu atas.
-
Tambahkan Hubungan
Dialog Hubungan Kunci Asing akan menunjukkan kepada Anda hubungan apa pun yang ada untuk tabel. Kita bisa melihat hubungan yang kita buat sebelumnya, saat kita membuat tabel.
Klik Tambah untuk menambahkan hubungan lain.
-
Pilih Tabel Dan Spesifikasi Kolom
Hubungan baru muncul di atas hubungan lainnya di Hubungan yang Dipilih daftar dengan nama FK_Albums_Albums .
Memastikan bahwa hubungan baru dipilih, klik Spesifikasi Tabel dan Kolom di panel kanan. Elips muncul di sebelah kanan properti.
Klik elips (... ) untuk meluncurkan kotak dialog Tabel dan Kolom.
-
Kotak Dialog Tabel dan Kolom
Di sini, Anda memilih tabel kunci utama di panel kiri, dan tabel kunci asing di sebelah kanan.
- Di bawah Tabel kunci utama: pilih Genre sebagai tabel dan GenreId sebagai kolom.
- Di bawah Tabel kunci asing: pilih Album sebagai tabel dan GenreId sebagai kolom.
Klik Oke .
SQL Server akan menyarankan nama untuk hubungan tersebut. Anda dapat mengedit ini jika Anda mau. Jika tidak, biarkan apa adanya.
-
Hubungan
Hubungan Anda sekarang akan ditampilkan dengan benar di kotak dialog Hubungan Kunci Asing.
Klik Tutup .
-
Menyimpan Hubungan
Hubungan Anda tidak akan disimpan sampai Anda menyimpan tabel. Saat Anda menyimpan tabel, Anda mungkin akan mendapatkan peringatan bahwa dua tabel akan disimpan. Hal ini diharapkan, karena hubungan mempengaruhi dua tabel.
Klik Ya untuk menyimpan kedua tabel.
Jika Anda memilih Desainer Tabel> Hubungan... untuk tabel induk, Anda juga akan melihat hubungannya di sana.