Bagikan melalui


Cara menentukan hubungan antar tabel dalam database Access

Nota

Pemula: Membutuhkan pengetahuan tentang antarmuka pengguna di komputer pengguna tunggal. Artikel ini hanya berlaku untuk database Microsoft Access (.mdb atau .accdb).

Ringkasan

Artikel ini menjelaskan cara menentukan hubungan dalam database Microsoft Access. Artikel ini berisi:

  • Apa itu hubungan tabel?
  • Jenis hubungan tabel
    • Hubungan satu ke banyak
    • Hubungan banyak-ke-banyak
    • Hubungan satu-ke-satu
  • Cara menentukan hubungan antar tabel
    • Cara menentukan hubungan satu-ke-banyak atau satu-ke-satu
    • Cara mengidentifikasi hubungan banyak-ke-banyak
  • Integritas referensial
  • Pembaruan dan penghapusan berantai
  • Jenis penggabungan

Apa itu hubungan tabel?

Dalam database relasional, hubungan memungkinkan Anda mencegah data yang berlebihan. Misalnya, jika Anda merancang database yang melacak informasi tentang buku, Anda mungkin memiliki tabel bernama "Judul" yang menyimpan informasi tentang setiap buku, seperti judul buku, tanggal publikasi, dan penerbit. Ada juga informasi yang mungkin ingin Anda simpan tentang penerbit, seperti nomor telepon, alamat, dan Kode Pos/Kode Pos penerbit. Jika Anda menyimpan semua informasi ini dalam tabel "Judul", nomor telepon penerbit akan diduplikasi untuk setiap judul yang dicetak penerbit.

Solusi yang lebih baik adalah menyimpan informasi penerbit hanya satu kali, dalam tabel terpisah yang disebut "Penerbit." Anda kemudian akan meletakkan penunjuk dalam tabel "Judul" yang mereferensikan entri dalam tabel "Penerbit".

Untuk memastikan bahwa data Anda tetap disinkronkan, Anda dapat menerapkan integritas referensial antar tabel. Hubungan integritas referensial membantu memastikan bahwa informasi dalam satu tabel cocok dengan informasi di tabel lain. Misalnya, setiap judul dalam tabel "Judul" harus dikaitkan dengan penerbit tertentu dalam tabel "Penerbit". Judul tidak dapat ditambahkan ke database untuk penerbit yang tidak ada di database.

Hubungan logis dalam database memungkinkan Anda mengkueri data secara efisien dan membuat laporan.

Jenis hubungan tabel

Hubungan bekerja dengan mencocokkan data dalam kolom kunci, biasanya kolom (atau bidang) yang memiliki nama yang sama di kedua tabel. Dalam kebanyakan kasus, hubungan menyambungkan kunci utama, atau kolom pengidentifikasi unik untuk setiap baris, dari satu tabel ke bidang di tabel lain. Kolom dalam tabel lain dikenal sebagai "kunci asing." Misalnya, jika Anda ingin melacak penjualan setiap judul buku, Anda membuat hubungan antara kolom kunci utama (sebut saja title_ID) di tabel "Judul" dan kolom dalam tabel "Penjualan" yang bernama title_ID. Kolom title_ID dalam tabel "Penjualan" adalah kunci asing.

Ada tiga jenis hubungan antar tabel. Jenis hubungan yang dibuat tergantung pada bagaimana kolom terkait ditentukan.

Hubungan satu ke banyak

Hubungan satu ke banyak adalah jenis hubungan yang paling umum. Dalam hubungan semacam ini, baris dalam tabel A dapat memiliki banyak baris yang cocok dalam tabel B. Tetapi baris dalam tabel B hanya dapat memiliki satu baris yang cocok di tabel A. Misalnya, tabel "Penerbit" dan "Judul" memiliki hubungan satu ke banyak. Artinya, setiap penerbit menghasilkan banyak judul. Tetapi setiap judul hanya berasal dari satu penerbit.

Hubungan satu ke banyak dibuat jika hanya salah satu kolom terkait yang merupakan kunci utama atau memiliki batasan unik.

Di jendela hubungan di Access, sisi kunci utama hubungan satu-ke-banyak ditandai dengan angka 1. Sisi kunci asing dari hubungan ditandai dengan simbol tak terbatas.

Cuplikan layar contoh untuk hubungan satu ke banyak di jendela hubungan di Access.

Hubungan banyak-ke-banyak

Dalam relasi banyak-ke-banyak, sebuah baris dalam tabel A dapat memiliki banyak baris yang cocok dalam tabel B, dan sebaliknya. Anda membuat hubungan seperti itu dengan menentukan tabel ketiga yang disebut tabel persimpangan. Kunci primer dari tabel penghubung terdiri dari kunci asing dari baik tabel A maupun tabel B. Misalnya, tabel "Penulis" dan tabel "Judul" memiliki hubungan banyak ke banyak yang ditentukan oleh hubungan satu-ke-banyak dari masing-masing tabel ini ke tabel "TitleAuthors". Kunci utama tabel "TitleAuthors" adalah kombinasi kolom au_ID (kunci primer tabel "Penulis"), dan kolom title_ID (kunci utama tabel "Judul").

Cuplikan layar contoh hubungan banyak-ke-banyak pada jendela hubungan di Access.

Hubungan satu-ke-satu

Dalam hubungan satu-ke-satu, baris dalam tabel A dapat memiliki tidak lebih dari satu baris yang cocok dalam tabel B, dan sebaliknya. Hubungan satu-ke-satu dibuat jika kedua kolom terkait adalah kunci primer atau memiliki batasan unik.

Hubungan semacam ini tidak umum, karena sebagian besar informasi yang terkait dengan cara ini akan berada dalam satu tabel. Anda mungkin menggunakan hubungan satu ke satu untuk mengambil tindakan berikut:

  • Bagi tabel dengan banyak kolom.
  • Mengisolasi bagian dari tabel karena alasan keamanan.
  • Simpan data yang berumur pendek dan dapat dengan mudah dihapus dengan menghapus tabel.
  • Simpan informasi yang hanya berlaku untuk subset tabel utama.

Di Access, sisi kunci utama hubungan satu-ke-satu ditandai dengan simbol kunci. Sisi kunci asing juga ditandai dengan simbol kunci.

Cara menentukan hubungan antar tabel

Saat Anda membuat hubungan antar tabel, bidang terkait tidak harus memiliki nama yang sama. Namun, bidang terkait harus memiliki jenis data yang sama kecuali bidang kunci utama adalah bidang AutoNumber. Anda dapat mencocokkan bidang AutoNumber dengan bidang Angka hanya jika properti FieldSize dari kedua bidang tersebut sama. Misalnya, Anda dapat mencocokkan bidang AutoNumber dan bidang Angka jika properti Ukuran Bidang dari kedua bidang adalah Bilangan Bulat Panjang. Meskipun kedua bidang yang cocok adalah bidang Angka, keduanya harus memiliki pengaturan properti Ukuran Bidang yang sama.

Cara mendefinisikan hubungan satu-ke-banyak atau satu-ke-satu

Untuk membuat hubungan satu-ke-banyak atau satu-ke-satu, ikuti langkah-langkah berikut:

  1. Tutup semua tabel. Anda tidak dapat membuat atau mengubah hubungan antara tabel terbuka.

  2. Di Access 2002 atau Access 2003, ikuti langkah-langkah berikut:

    1. Tekan F11 untuk beralih ke jendela Database.
    2. Pada menu Alat , klik Hubungan.

    Di Access 2007, Access 2010, atau Access 2013, klik Hubungan di grup Perlihatkan/Sembunyikan pada tab Alat Database .

  3. Jika Anda belum menentukan hubungan apa pun dalam database Anda, kotak dialog Perlihatkan Tabel akan ditampilkan secara otomatis. Jika Anda ingin menambahkan tabel yang ingin Anda kaitankan tetapi kotak dialog Perlihatkan Tabel tidak muncul, klik Perlihatkan Tabel pada menu Hubungan .

  4. Klik dua kali nama tabel yang ingin Anda hubungkan, lalu tutup kotak dialog Perlihatkan Tabel. Untuk membuat hubungan antara tabel dan tabel itu sendiri, tambahkan tabel tersebut dua kali.

  5. Seret bidang yang ingin Anda kaitankan dari satu tabel ke bidang terkait di tabel lainnya. Untuk menyeret beberapa bidang, tekan Ctrl, klik setiap bidang, lalu seret.

    Dalam kebanyakan kasus, Anda menyeret bidang kunci utama (bidang ini ditampilkan dalam teks tebal) dari satu tabel ke bidang serupa (bidang ini sering memiliki nama yang sama) yang disebut kunci asing di tabel lain.

  6. Kotak dialog Sunting Hubungan muncul. Pastikan bahwa nama bidang yang ditampilkan di dua kolom sudah benar. Anda dapat mengubah nama jika diperlukan.

    Atur opsi hubungan jika diperlukan. Jika Anda harus memiliki informasi tentang item tertentu dalam kotak dialog Edit Hubungan , klik tombol tanda tanya, lalu klik item. (Opsi ini akan dijelaskan secara rinci nanti di artikel ini.)

  7. Klik Buat untuk membuat hubungan.

  8. Ulangi langkah 4 hingga 7 untuk setiap pasangan tabel yang ingin Anda hubungkan.

    Saat Anda menutup kotak dialog Edit Hubungan , Access menanyakan apakah Anda ingin menyimpan tata letak. Apakah Anda menyimpan tata letak atau tidak menyimpan tata letak, hubungan yang Anda buat disimpan dalam database.

    Nota

    Anda dapat membuat hubungan tidak hanya dalam tabel tetapi juga dalam kueri. Namun, integritas referensial tidak ditegakkan dengan kueri.

Cara menentukan hubungan banyak-ke-banyak

Untuk membuat hubungan banyak-ke-banyak, ikuti langkah-langkah berikut.

  1. Buat dua tabel yang akan memiliki hubungan banyak-ke-banyak.

  2. Buat tabel ketiga. Ini adalah tabel penghubung. Dalam tabel persimpangan, tambahkan bidang baru yang memiliki definisi yang sama dengan bidang kunci utama dari setiap tabel yang Anda buat di langkah 1. Dalam tabel penghubung, bidang kunci utama berfungsi sebagai kunci asing. Anda dapat menambahkan bidang lain ke tabel penghubung, seperti Anda melakukannya pada tabel lain.

  3. Dalam tabel penghubung, tetapkan kunci utama untuk menyertakan bidang kunci utama dari dua tabel lainnya. Misalnya, dalam tabel persimpangan "TitleAuthors", kunci utama akan terdiri dari bidang OrderID dan ProductID .

    Nota

    Untuk membuat kunci primer, ikuti langkah-langkah berikut:

    1. Buka tabel dalam tampilan Desain.

    2. Pilih bidang atau bidang yang ingin Anda tentukan sebagai kunci utama. Untuk memilih satu bidang, klik pemilih baris untuk bidang yang diinginkan. Untuk memilih beberapa bidang, tahan tombol Ctrl, lalu klik pemilih baris untuk setiap bidang.

    3. Di Access 2002 atau di Access 2003, klik Kunci Primer pada toolbar.

      Di Access 2007, klik Kunci Primer di grup Alat pada tab Desain .

      Nota

      Jika Anda ingin urutan bidang dalam kunci utama beberapa bidang berbeda dari urutan bidang tersebut dalam tabel, klik Indeks pada toolbar untuk menampilkan kotak dialog Indeks, lalu urutkan ulang nama bidang untuk indeks bernama PrimaryKey.

  4. Tentukan hubungan satu-ke-banyak antara setiap tabel utama dan tabel persimpangan.

Integritas referensial

Integritas referensial adalah sistem aturan yang digunakan Access untuk memastikan bahwa hubungan antara rekaman dalam tabel terkait valid, dan Anda tidak secara tidak sengaja menghapus atau mengubah data terkait. Anda dapat mengatur integritas referensial saat semua kondisi berikut ini benar:

  • Bidang yang cocok dari tabel utama adalah kunci utama atau memiliki indeks unik.
  • Bidang terkait memiliki jenis data yang sama. Ada dua pengecualian. Bidang AutoNumber dapat terkait dengan bidang Angka yang memiliki FieldSize pengaturan properti Bilangan Bulat Panjang, dan bidang AutoNumber yang memiliki FieldSize pengaturan properti ID Replikasi dapat terkait dengan bidang Angka yang memiliki FieldSize pengaturan properti ID Replikasi.
  • Kedua tabel milik database Access yang sama. Jika tabel adalah tabel tertaut, tabel tersebut harus berupa tabel dalam format Access, dan Anda harus membuka database tempat tabel disimpan untuk mengatur integritas referensial. Integritas referensial tidak dapat diberlakukan untuk tabel tertaut dari database dalam format lain.

Aturan berikut berlaku saat Anda menggunakan integritas referensial:

  • Anda tidak dapat memasukkan nilai di bidang kunci asing dari tabel terkait yang tidak ada di kunci utama tabel utama. Namun, Anda dapat memasukkan nilai Null di kunci asing. Ini menentukan bahwa rekaman tidak terkait. Misalnya, Anda tidak dapat memiliki pesanan yang ditetapkan ke pelanggan yang tidak ada. Namun, Anda dapat memiliki pesanan yang tidak ditetapkan ke siapa pun dengan memasukkan nilai Null di bidang CustomerID.
  • Anda tidak dapat menghapus rekaman dari tabel utama jika rekaman yang cocok ada di tabel terkait. Misalnya, Anda tidak dapat menghapus catatan karyawan dari tabel "Karyawan" jika ada pesanan yang ditetapkan untuk karyawan dalam tabel "Pesanan".
  • Anda tidak dapat mengubah nilai kunci utama dalam tabel utama jika rekaman tersebut memiliki rekaman terkait. Misalnya, Anda tidak dapat mengubah ID karyawan dalam tabel "Karyawan" jika ada pesanan yang ditetapkan untuk karyawan tersebut dalam tabel "Pesanan".

Pembaruan dan penghapusan berantai

Untuk hubungan di mana integritas referensial diberlakukan, Anda dapat menentukan apakah Anda ingin Access memperbarui atau menghapus rekaman terkait secara bertingkat secara otomatis. Jika Anda mengatur opsi ini, operasi hapus dan perbarui yang biasanya akan dicegah oleh aturan integritas referensial diaktifkan. Saat Anda menghapus rekaman atau mengubah nilai kunci utama dalam tabel utama, Access membuat perubahan yang diperlukan pada tabel terkait untuk mempertahankan integritas referensial.

Ketika Anda mengklik kotak centang Kaskade Pembaruan Bidang Terkait saat menentukan hubungan, setiap kali Anda mengubah kunci utama dalam tabel utama, Microsoft Access secara otomatis memperbarui kunci utama ke nilai baru di semua rekaman terkait. Misalnya, jika Anda mengubah ID pelanggan di tabel "Pelanggan", bidang CustomerID di tabel "Pesanan" secara otomatis diperbarui untuk setiap pesanan pelanggan tersebut sehingga hubungan tidak rusak. Mengakses pembaruan kaskade tanpa menampilkan pesan apa pun.

Nota

Jika kunci utama dalam tabel utama adalah bidang AutoNumber, memilih kotak centang Perbarui Berkala Bidang Terkait tidak berpengaruh karena Anda tidak dapat mengubah nilai di bidang AutoNumber.

Jika Anda memilih kotak centang Hapus Kaskade Rekaman Terkait saat Anda menentukan hubungan, kapan saja Anda menghapus rekaman di tabel utama, Access secara otomatis menghapus rekaman terkait dalam tabel terkait. Misalnya, jika Anda menghapus catatan pelanggan dari tabel "Pelanggan", semua pesanan pelanggan akan dihapus secara otomatis dari tabel "Pesanan". (Ini termasuk catatan dalam tabel "Detail Pesanan" yang terkait dengan catatan "Pesanan"). Saat Anda menghapus rekaman dari formulir atau lembar data saat kotak centang Hapus Kaskade Rekaman Terkait dipilih, Access memperingatkan Anda bahwa rekaman terkait juga dapat dihapus. Namun, saat Anda menghapus rekaman dengan menggunakan kueri penghapusan, Access secara otomatis menghapus rekaman dalam tabel terkait tanpa menampilkan peringatan.

Jenis penggabungan

Ada tiga jenis gabungan. Anda dapat melihatnya dalam cuplikan layar berikut:

Cuplikan layar Properti Penggabungan, yang menunjukkan tiga jenis gabungan.

Opsi 1 mendefinisikan gabungan dalam. Gabungan dalam adalah gabungan di mana rekaman dari dua tabel digabungkan dalam hasil kueri hanya jika nilai dalam bidang yang digabungkan memenuhi kondisi tertentu. Dalam kueri, gabungan default adalah gabungan dalam yang memilih rekaman hanya jika nilai dalam bidang yang digabungkan cocok.

Opsi 2 mendefinisikan join luar kiri. Gabungan luar kiri adalah gabungan di mana semua catatan dari sisi kiri operasi LEFT JOIN yang ada dalam pernyataan SQL kueri ditambahkan ke hasil kueri, bahkan ketika tidak ada nilai yang cocok di bidang yang digabungkan dari tabel di sisi kanan.

Opsi 3 mendefinisikan gabungan luar yang tepat. Gabungan luar kanan adalah gabungan di mana semua rekaman dari sisi kanan operasi RIGHT JOIN dalam pernyataan SQL kueri ditambahkan ke hasil kueri, bahkan jika tidak ada nilai yang cocok di bidang yang digabungkan dari tabel di sisi kiri.