Dasar-dasar desain database

Dasar-dasar desain database

Penting: Artikel ini adalah terjemahan mesin, lihat penafian. Temukan versi bahasa Inggris artikel di sini sebagai rujukan Anda.

Database dirancang memberi Anda akses ke informasi terbaru, akurat. Karena desain yang benar sangat penting untuk mencapai tujuan Anda di bekerja dengan database, menginvestasikan waktu diperlukan untuk mempelajari prinsip desain masuk akal. Pada akhirnya, Anda akan cenderung berakhir dengan database yang sesuai dengan kebutuhan Anda dan bisa dengan mudah mengakomodasi perubahan.

Artikel ini menyediakan panduan untuk perencanaan desktop database. Anda akan mempelajari bagaimana cara memutuskan apa informasi yang Anda perlukan, cara membagi informasi tersebut ke dalam sesuai tabel dan kolom, dan bagaimana tabel berkaitan satu sama lain. Anda harus baca artikel ini sebelum Anda membuat database desktop pertama Anda.

Penting: Access menyediakan pengalaman desain yang memungkinkan Anda membuat aplikasi database Web. Banyak pertimbangan desain berbeda saat Anda mendesain untuk Web. Artikel ini tidak membahas desain aplikasi database Web. Untuk informasi selengkapnya, lihat artikel membangun database untuk berbagi di Web.

Di artikel ini

Beberapa persyaratan database untuk mengetahui

Apa itu desain database yang bagus?

Proses desain

Menentukan tujuan database Anda

Menemukan dan menata informasi yang diperlukan

Membagi informasi ke dalam tabel

Mengubah item informasi ke dalam kolom

Menentukan kunci utama

Membuat hubungan tabel

Menyempurnakan desain

Menerapkan aturan normalisasi


Beberapa persyaratan database untuk mengetahui

Access menata informasi Anda ke dalam tabel: Daftar baris dan kolom mengingatkan akuntan angka atau lembar bentang. Dalam database sederhana, Anda mungkin memiliki satu tabel saja. Untuk database yang paling Anda akan memerlukan lebih dari satu. Misalnya, Anda mungkin memiliki tabel yang menyimpan informasi tentang produk, tabel lain yang menyimpan informasi tentang pesanan dan tabel lain dengan informasi tentang pelanggan.

Gambar yang menggambarkan tiga tabel dalam lembar data

Setiap baris lainnya dengan benar disebut catatan, dan setiap kolom, bidang. Catatan adalah cara yang konsisten dan bermakna untuk menggabungkan informasi tentang sesuatu. Bidang adalah satu item informasi — tipe item yang muncul di setiap rekaman. Dalam tabel produk, misalnya, setiap baris atau catatan akan terus informasi tentang produk satu. Setiap kolom atau bidang berisi beberapa tipe informasi tentang produk tersebut, seperti nama atau harga.

Atas halaman

Apa itu desain database yang bagus?

Prinsip tertentu panduan proses desain database. Prinsip pertama adalah informasi duplikat (juga disebut data berlebihan) buruk, karena sisa ruang dan meningkatkan kemungkinan kesalahan dan inkonsistensi. Prinsip kedua adalah benar dan kelengkapan informasi penting. Jika database Anda berisi informasi salah, laporan yang menarik informasi dari database juga akan berisi informasi salah. Hasilnya, keputusan Anda membuat yang didasarkan pada laporan tersebut akan lalu bisa salah informasi.

Desain database baik adalah salah satu yang:

  • Membagi informasi Anda menjadi tabel berbasis subjek untuk mengurangi data berlebihan.

  • Menyediakan akses dengan informasi yang diperlukan untuk menggabungkan informasi dalam tabel yang diperlukan.

  • Membantu mendukung dan pastikan akurasi dan integritas informasi Anda.

  • Mengakomodasi kebutuhan pelaporan dan pemrosesan data Anda.

Atas halaman

Proses desain

Proses desain terdiri dari langkah-langkah berikut ini:

  • Tentukan tujuan database Anda   

    Ini akan membantu Anda mempersiapkan langkah-langkah yang tersisa.

  • Menemukan dan menata informasi yang diperlukan   

    Mengumpulkan semua jenis informasi yang Anda mungkin ingin merekam di database, seperti nomor produk nama dan urutan.

  • Membagi informasi ke dalam tabel   

    Membagi item informasi ke dalam badan utama atau subjek, seperti produk atau pesanan. Subjek setiap lalu menjadi tabel.

  • Mengaktifkan item informasi ke dalam kolom   

    Tentukan informasi apa yang ingin Anda simpan dalam setiap tabel. Setiap item menjadi bidang, dan ditampilkan sebagai kolom dalam tabel. Misalnya, tabel karyawan yang mungkin menyertakan bidang seperti nama belakang dan membayar tanggal.

  • Menentukan kunci utama   

    Pilih kunci utama setiap tabel. Kunci utama adalah kolom yang digunakan untuk secara unik mengidentifikasi setiap baris. Contoh mungkin ID Produk atau id pesanan.

  • Membuat hubungan tabel   

    Melihat setiap tabel dan menentukan bagaimana data dalam satu tabel terkait dengan data di tabel lainnya. Menambahkan bidang ke tabel atau membuat tabel baru untuk mengklarifikasi hubungan, sebagaimana diperlukan.

  • Memperbaiki desain Anda   

    Menganalisis desain Anda kesalahannya. Membuat tabel dan menambahkan catatan beberapa contoh data. Lihat jika Anda bisa mendapatkan hasil yang Anda inginkan dari tabel Anda. Membuat penyesuaian Desain, jika diperlukan.

  • Menerapkan aturan normalisasi   

    Menerapkan aturan normalisasi data untuk melihat jika tabel Anda disusun dengan benar. Membuat penyesuaian ke tabel, jika diperlukan.

Atas halaman

Menentukan tujuan database Anda

Ada baiknya Anda tulis tujuan database pada kertas — tujuan, bagaimana Anda ingin menggunakannya, dan yang akan menggunakannya. Untuk database kecil untuk bisnis berbasis rumah, misalnya, Anda mungkin menulis sesuatu yang sederhana seperti "database pelanggan membuat daftar pelanggan informasi untuk menghasilkan surat-menyurat dan laporan." Jika database yang lebih kompleks atau digunakan oleh banyak orang, seperti yang sering terjadi dalam pengaturan perusahaan, tujuan dapat dengan mudah satu atau beberapa paragraf dan harus mencakup Kapan dan bagaimana setiap orang akan menggunakan database. Ide adalah memiliki misi berkembang dengan baik yang bisa dirujuk selama proses desain. Mengalami seperti pernyataan membantu Anda fokus pada tujuan Anda saat Anda membuat keputusan.

Atas halaman

Menemukan dan menata informasi yang diperlukan

Untuk menemukan dan menata informasi yang diperlukan, mulai dengan informasi Anda yang sudah ada. Misalnya, Anda mungkin merekam pesanan pembelian dalam informasi pelanggan buku besar atau tetap pada kertas formulir di lemari arsip. Mengumpulkan dokumen tersebut dan daftar setiap tipe informasi yang ditampilkan (misalnya, setiap kotak yang Anda mengisi pada formulir). Jika Anda tidak memiliki formulir apa pun yang sudah ada, bayangkan sebagai gantinya Anda harus mendesain formulir untuk merekam informasi pelanggan. Informasi apa yang akan Anda menempatkan pada formulir Kotak fill-in apa yang akan Anda buat? Mengidentifikasi dan daftar setiap item. Misalnya, saat ini Anda tetap daftar pelanggan pada kartu indeks. Memeriksa kartu ini mungkin menunjukkan bahwa masing-masing kartu memegang pelanggan nama, alamat, kota, negara bagian, kode pos dan nomor telepon. Masing-masing item ini merupakan kemungkinan kolom dalam tabel.

Saat Anda menyiapkan daftar ini, jangan khawatir tentang mendapatkan sempurna pada awalnya. Sebagai gantinya, daftar setiap item yang muncul dalam benak. Jika seseorang akan menggunakan database, minta mereka ide, juga. Anda bisa menyempurnakan daftar nanti.

Berikutnya, pertimbangkan tipe laporan atau surat-menyurat Anda mungkin ingin menghasilkan dari database. Misalnya, Anda mungkin ingin laporan penjualan produk untuk memperlihatkan penjualan menurut kawasan, atau laporan ringkasan inventaris yang memperlihatkan tingkat inventaris produk. Anda juga mungkin ingin membuat surat formulir untuk mengirim ke pelanggan yang menyatakan acara penjualan atau menawarkan premium. Mendesain laporan diingat Anda, dan Bayangkan apa yang akan terlihat seperti. Informasi apa yang akan Anda menempatkan di laporan? Daftar setiap item. Lakukan hal yang sama untuk surat formulir dan laporan lainnya yang Anda akan membuat.

orang membayangkan laporan inventaris produk

Memberikan laporan dan surat-menyurat Anda mungkin ingin membuat membantu Anda mengidentifikasi item yang Anda akan memerlukan di database Anda. Sebagai contoh, anggaplah Anda memberi pelanggan kesempatan untuk masuk ke (atau luar) pembaruan berkala email, dan Anda ingin mencetak daftar orang-orang yang telah diikutsertakan dalam. Untuk merekam informasi itu, Anda menambahkan "Kirim email" kolom ke tabel pelanggan. Untuk masing-masing pelanggan, Anda bisa mengatur bidang ke ya atau tidak.

Persyaratan untuk mengirim pesan email ke pelanggan menyarankan item lain untuk merekam. Setelah Anda mengetahui bahwa pelanggan ingin menerima pesan email, Anda juga perlu mengetahui alamat email yang akan mengirimi mereka. Oleh karena itu, Anda perlu merekam alamat email untuk masing-masing pelanggan.

Masuk akal untuk membangun prototipe setiap laporan atau output daftar dan pertimbangkan item apa Anda harus menghasilkan laporan. Misalnya, ketika Anda memeriksa surat formulir, beberapa hal yang mungkin muncul dalam benak. Jika Anda ingin menyertakan salam tepat — misalnya, "Mr", "Mrs" atau "Ms." string yang dimulai salam, Anda harus membuat item salam. Selain itu, Anda biasanya mungkin mulai huruf dengan "Dear Tn. Smith" daripada "Dear. Tn. Sylvester Smith". Ini menunjukkan Anda biasanya ingin menyimpan nama belakang yang terpisah dari nama depan.

Titik kunci yang harus diingat adalah bahwa Anda harus masuk setiap bagian dari informasi ke terkecil berguna bagian-bagiannya. Dalam kasus nama, untuk membuat nama belakang yang tersedia, Anda akan berganti nama menjadi dua bagian — nama depan dan nama belakang. Untuk mengurutkan laporan berdasarkan nama belakang, misalnya, membantu pelanggan nama terakhir disimpan secara terpisah. Secara umum, jika Anda ingin mengurutkan, mencari, menghitung, atau laporan berdasarkan pada item informasi, Anda harus meletakkan item tersebut di bidang masing-masing.

Memikirkan tentang pertanyaan Anda mungkin ingin database untuk menjawab. Sebagai contoh, berapa banyak penjualan produk unggulan Anda Apakah Anda menutup bulan? Di mana pelanggan Anda terbaik berada? Siapa yang pemasok untuk produk penjualan terbaik Anda? Mengantisipasi pertanyaan ini membantu Anda nol di pada item tambahan untuk merekam.

Setelah mengumpulkan informasi ini, Anda sudah siap untuk langkah berikutnya.

Atas halaman

Membagi informasi ke dalam tabel

Untuk membagi informasi ke dalam tabel, pilih badan utama, atau subjek. Misalnya, setelah menemukan dan menata informasi untuk database penjualan produk, daftar awal mungkin terlihat seperti ini:

Item informasi tulisan tangan dikelompokkan ke dalam subjek

Badan utama yang diperlihatkan di sini adalah produk, pemasok, pelanggan dan pesanan. Oleh karena itu, masuk akal untuk mulai dengan tabel ini empat: satu untuk fakta-fakta tentang produk, satu untuk fakta-fakta tentang pemasok, satu untuk fakta-fakta tentang pelanggan dan satu untuk mengenal pesanan. Meskipun ini tidak menyelesaikan daftar, ini adalah titik awal yang baik. Anda bisa terus menyempurnakan daftar ini hingga Anda memiliki desain yang berfungsi dengan baik.

Saat Anda pertama-tama meninjau daftar item awal, Anda mungkin ingin menempatkannya semuanya di satu tabel, bukan empat diperlihatkan dalam ilustrasi sebelumnya. Anda akan mempelajari berikut mengapa yaitu ide yang buruk. Misalnya, tabel yang diperlihatkan di sini:

Gambar memperlihatkan tabel yang berisi produk dan pemasoknya

Dalam kasus ini, masing-masing baris berisi informasi tentang produk dan pemasok tersebut. Karena Anda bisa memiliki banyak produk dari pemasok yang sama, pemasok nama dan alamat informasi yang akan diulang berkali-kali. Ini membuang ruang disk. Merekam informasi pemasok sekali saja dalam tabel pemasok terpisah, dan lalu menautkan tabel ke tabel Products, adalah solusi yang jauh lebih baik.

Masalah kedua dengan desain ini muncul ketika Anda perlu mengubah informasi tentang pemasok. Misalnya, Anda perlu mengubah alamat pemasok. Karena muncul di banyak tempat, Anda mungkin tidak sengaja mengubah alamat di satu tempat tapi lupa untuk mengubahnya di yang lain. Perekaman pemasok alamat hanya di satu tempat memecahkan masalah.

Saat Anda mendesain database Anda, selalu untuk merekam fact setiap sekali saja. Jika Anda menemukan informasi yang sama di lebih dari satu tempat, seperti alamat pemasok tertentu, berulang tempat informasi tersebut dalam tabel terpisah.

Akhirnya, misalnya hanya satu produk yang disediakan oleh anggur Coho, dan Anda ingin menghapus produk, tapi mempertahankan informasi nama dan alamat pemasok. Bagaimana Anda ingin menghapus catatan produk tanpa juga kehilangan informasi pemasok? Anda tidak bisa. Karena setiap catatan berisi fakta-fakta tentang produk, serta fakta-fakta tentang pemasok, Anda tidak bisa menghapus tanpa menghapus yang lain. Untuk mempertahankan fakta berikut terpisah, Anda harus Pisahkan satu tabel ke dalam dua: satu tabel untuk informasi produk, dan tabel lain untuk pemasok informasi. Menghapus catatan produk harus menghapus hanya fakta tentang produk, tidak fakta-fakta tentang pemasok.

Setelah Anda memilih subjek yang dinyatakan oleh tabel, kolom dalam tabel tersebut harus menyimpan fakta-fakta hanya tentang subjek. Misalnya, tabel produk harus menyimpan fakta-fakta hanya tentang produk. Karena alamat pemasok fakta tentang pemasok, dan tidak fakta tentang produk, berada di dalam tabel pemasok.

Atas halaman

Mengubah item informasi ke dalam kolom

Untuk menentukan kolom dalam tabel, tentukan informasi apa yang perlu Anda melacak tentang subjek direkam dalam tabel. Sebagai contoh, untuk tabel pelanggan, nama, alamat, City-State-Zip, kirim email, salam dan alamat E-mail terdiri dari awal daftar kolom yang baik. Setiap catatan dalam tabel berisi kumpulan sama kolom, sehingga Anda bisa menyimpan nama, alamat, City-State-Zip, kirim email, salam dan email alamat informasi untuk setiap catatan. Misalnya, alamat kolom berisi alamat pelanggan. Setiap catatan berisi data tentang satu pelanggan, dan bidang alamat berisi alamat untuk pelanggan.

Begitu Anda telah memutuskan awal sekumpulan kolom untuk setiap tabel, Anda bisa menyempurnakan kolom. Sebagai contoh, masuk akal untuk menyimpan nama pelanggan sebagai dua kolom terpisah: nama depan dan nama belakang, sehingga Anda bisa mengurutkan, pencarian, dan indeks kolom baru tersebut. Demikian pula, alamat yang benar-benar terdiri dari lima terpisah, alamat, kota, negara bagian, kode pos dan negara/kawasan, dan juga masuk akal untuk menyimpannya dalam kolom terpisah. Jika Anda ingin melakukan pencarian, operasi pemfilteran atau pengurutan berdasarkan negara bagian, misalnya, Anda membutuhkan informasi status yang disimpan dalam kolom terpisah.

Anda juga harus mempertimbangkan apakah database yang akan memuat informasi yang berasal dari rumah tangga saja, atau internasional, juga. Sebagai contoh, jika Anda berencana untuk menyimpan alamat internasional, itu lebih baik untuk memiliki kolom kawasan dan bukan status, karena kolom tersebut bisa mengakomodasi rumah tangga negara dan kawasan lain negara/kawasan. Demikian pula, kode pos lebih masuk akal dari kode pos jika Anda ingin menyimpan internasional alamat.

Daftar berikut ini memperlihatkan beberapa tips untuk menentukan kolom Anda.

  • Jangan Sertakan data terhitung   

    Dalam banyak kasus, Anda tidak harus menyimpan hasil perhitungan dalam tabel. Sebagai gantinya, Anda bisa memiliki akses yang menjalankan perhitungan tersebut saat Anda ingin melihat hasil. Misalnya, ada laporan produk di urutan yang menampilkan subtotal unit pada urutan untuk setiap kategori produk dalam database. Namun, ada tanpa unit pada urutan kolom subtotal di tabel apa pun. Sebagai gantinya, produk tabel berisi kolom unit di urutan yang menyimpan unit pada urutan untuk setiap produk. Menggunakan data tersebut, Access menghitung subtotal setiap kali Anda mencetak laporan. Subtotal itu sendiri tidak dapat disimpan dalam tabel.

  • Menyimpan informasi dalam terkecil logika bagian-bagiannya   

    Anda mungkin ingin memiliki bidang tunggal untuk nama lengkap, atau untuk nama produk bersama dengan deskripsi produk. Jika Anda menggabungkan lebih dari satu jenis informasi dalam bidang, sulit untuk mengambil individual fakta nanti. Mencoba memecah informasi ke bagian logika. sebagai contoh, buat bidang yang terpisah untuk nama depan dan belakang, atau untuk nama produk, kategori, dan deskripsi.

Gambar memperlihatkan item informasi selama proses desain

Begitu Anda telah menyempurnakan kolom data dalam setiap tabel, Anda sudah siap untuk memilih setiap tabel kunci utama.

Atas halaman

Menentukan kunci utama

Setiap tabel harus menyertakan kolom atau sekumpulan kolom yang secara unik mengidentifikasi setiap baris yang disimpan dalam tabel. Ini adalah sering angka identifikasi unik, seperti nomor ID karyawan atau nomor seri. Dalam terminologi database, informasi ini disebut kunci utama tabel. Access menggunakan bidang kunci utama untuk mengaitkan data dari beberapa tabel dan menyatukan data Anda dengan cepat.

Jika Anda sudah memiliki pengidentifikasi unik untuk tabel, seperti nomor produk yang secara unik mengidentifikasi setiap produk dalam Katalog Anda, Anda dapat menggunakan pengidentifikasi tersebut sebagai kunci utama tabel — namun hanya jika nilai dalam kolom ini akan selalu berbeda untuk setiap catatan. Anda tidak memiliki nilai duplikat di kunci utama. Misalnya, jangan gunakan nama orang-orang sebagai kunci utama, karena nama tidak unik. Anda bisa dengan mudah memiliki dua orang dengan nama yang sama dalam tabel yang sama.

Kunci utama harus selalu memiliki nilai. Jika kolom nilai bisa menjadi tidak ditetapkan atau tidak diketahui (nilai yang hilang) pada titik tertentu, tidak bisa digunakan sebagai komponen di kunci utama.

Anda harus selalu memilih kunci utama yang nilainya tidak akan berubah. Dalam database yang menggunakan lebih dari satu tabel, kunci utama tabel bisa digunakan sebagai referensi di tabel lainnya. Jika kunci utama berubah, Ubah juga harus diterapkan di mana-mana tombol dirujuk. Menggunakan kunci utama yang tidak akan berubah mengurangi kesempatan kunci utama mungkin menjadi tidak sinkron dengan tabel lain yang referensi.

Sering, angka unik sewenang-wenang digunakan sebagai kunci utama. Misalnya, Anda dapat menetapkan setiap pesanan nomor urutan unik. Nomor pesanan hanya tujuan adalah untuk mengidentifikasi urutan. Setelah ditetapkan, maka tidak akan berubah.

Jika Anda tidak memiliki diingat kolom atau sekumpulan kolom yang bisa membuat kunci utama yang baik, pertimbangkan menggunakan kolom yang memiliki tipe data AutoNumber. Saat Anda menggunakan tipe data AutoNumber, Access secara otomatis menetapkan nilai untuk Anda. Pengidentifikasi seperti factless; berisi informasi tidak fakta menjelaskan baris yang mewakili. Factless pengidentifikasi ideal untuk digunakan sebagai kunci utama karena mereka tidak berubah. Kunci utama yang berisi fakta-fakta tentang baris — nomor telepon atau pelanggan nama, misalnya — biasanya lebih untuk mengubah, karena informasi fakta itu sendiri mungkin berubah.

Gambar memperlihatkan tabel Produk dengan bidang kunci utama.

1. kolom diatur ke tipe data AutoNumber sering membuat kunci utama yang baik. Ada dua Produk ID yang sama.

Dalam beberapa kasus, Anda mungkin ingin menggunakan dua atau beberapa bidang yang sama, memberikan kunci utama tabel. Misalnya, dalam tabel detail pesanan yang menyimpan item baris untuk pesanan akan menggunakan dua kolom kunci utama yang: ID pesanan dan ID Produk. Saat kunci utama menggunakan lebih dari satu kolom, juga disebut kunci komposit.

Untuk database penjualan produk, Anda bisa membuat kolom AutoNumber untuk setiap tabel untuk berfungsi sebagai kunci utama: ProductID untuk tabel Products, Idpesanan untuk pesanan, id pelanggan untuk tabel pelanggan, dan tabel SupplierID untuk pemasok tabel.

Gambar memperlihatkan item informasi selama proses desain


Atas halaman

Membuat hubungan tabel

Sekarang karena Anda telah dibagi informasi Anda menjadi tabel, Anda membutuhkan cara untuk menyatukan informasi lagi dalam cara yang bermakna. Misalnya, formulir berikut ini berisi informasi dari beberapa tabel.

Gambar formulir pesanan

1. Informasi di formulir ini berasal dari tabel Pelanggan...

2... tabel karyawan kata...

3... tabel pesanan kata...

4... kata tabel produk...

5... dan tabel detail pesanan.

Akses adalah sistem manajemen database relasional. Dalam database relasional, Anda membagi informasi Anda menjadi tabel terpisah, berbasis subjek. Anda menggunakan hubungan tabel untuk menyatukan informasi sebagaimana diperlukan.

Atas halaman

Membuat hubungan satu ke banyak

Pertimbangkan contoh ini: tabel pemasok dan produk di produk pesanan database. Pemasok dapat menyediakan sejumlah produk. Maka bahwa untuk pemasok dinyatakan dalam tabel pemasok, ada banyak produk yang dinyatakan dalam tabel produk. Hubungan antara tabel pemasok dan tabel produk itu hubungan satu ke banyak.

Konseptual satu ke banyak

Untuk mewakili hubungan satu ke banyak dalam desain database Anda, membuat kunci utama di sisi "satu" dari hubungan itu dan menambahkannya sebagai kolom tambahan atau kolom ke tabel di sisi "banyak" dari hubungan itu. Dalam kasus ini, misalnya, Anda menambahkan kolom ID pemasok dari pemasok tabel ke tabel produk. Akses dapat menggunakan nomor ID pemasok dalam tabel produk untuk menemukan pemasok benar untuk setiap produk.

Kolom ID pemasok dalam tabel produk disebut kunci asing. Kunci asing adalah kunci utama tabel lain. Kolom ID pemasok dalam tabel produk adalah kunci asing karena juga kunci utama dalam tabel pemasok.

Gambar memperlihatkan item informasi selama proses desain

Anda menyediakan dasar untuk bergabung dalam tabel terkait dengan menetapkan pasangan kunci utama dan kunci asing. Jika Anda tidak yakin tabel mana yang harus berbagi sebuah kolom yang umum, mengidentifikasi hubungan satu ke banyak memastikan bahwa dua tabel yang terlibat memang, akan membutuhkan kolom bersama.

Atas halaman

Membuat hubungan banyak ke banyak

Pertimbangkan hubungan antara produk tabel dan tabel pesanan.

Urutan tunggal yang bisa menyertakan lebih dari satu produk. Di sisi lain, satu produk bisa muncul pada banyak pesanan. Oleh karena itu, untuk setiap catatan dalam tabel pesanan, ada banyak rekaman dalam tabel produk. Dan untuk setiap catatan dalam tabel produk, ada banyak rekaman dalam tabel pesanan. Tipe hubungan ini disebut hubungan banyak-ke-banyak karena untuk setiap produk, ada banyak pesanan; dan pesanan, bisa produk. Perhatikan bahwa untuk mendeteksi hubungan banyak-ke-banyak antara tabel Anda, sangatlah penting agar Anda mempertimbangkan kedua sisi dari hubungan itu.

Subjek dua tabel — pesanan dan produk — memiliki hubungan banyak-ke-banyak. Ini menyajikan masalah. Untuk memahami masalah, Bayangkan apa yang akan terjadi jika Anda mencoba untuk membuat hubungan antara dua tabel dengan menambahkan bidang ID Produk untuk tabel pesanan. Untuk memiliki lebih dari satu produk per pesanan, Anda memerlukan lebih dari satu rekaman dalam tabel pesanan per pesanan. Anda akan berulang informasi pesanan untuk setiap baris yang berhubungan dengan urutan tunggal — mengakibatkan desain yang efisien yang bisa mengakibatkan data akurat. Anda mengalami masalah yang sama jika Anda meletakkan bidang ID pesanan dalam tabel produk — Anda akan memiliki lebih dari satu catatan dalam tabel produk untuk setiap produk. Bagaimana Anda mengatasi masalah ini?

Jawaban adalah untuk membuat tabel ketiga, sering disebut gabungan tabel, yang rusak hubungan banyak-ke-banyak ke dua hubungan satu ke banyak. Anda menyisipkan kunci utama dari masing-masing dua tabel ke tabel ketiga. Hasilnya, ketiga tabel catatan setiap kemunculan atau contoh hubungan.

Konseptual hubungan banyak ke banyak

Tiap rekaman dalam tabel detail pesanan mewakili satu item baris pada urutan. Kunci utama tabel detail pesanan terdiri dari dua bidang — kunci asing dari perintah dan tabel produk. Menggunakan bidang ID pesanan saja tidak berfungsi sebagai kunci utama untuk tabel ini, karena satu pesanan yang bisa memiliki banyak item baris. ID pesanan diulangi untuk setiap item baris pada perintah, sehingga bidang tidak berisi nilai unik. Menggunakan bidang ID Produk saja tidak berfungsi, karena salah satu produk bisa muncul pada banyak pesanan yang berbeda. Tapi bersama-sama, dua bidang selalu menghasilkan nilai yang unik untuk setiap catatan.

Di database penjualan produk, tabel pesanan dan tabel produk yang tidak terkait dengan satu sama lain secara langsung. Sebagai gantinya, mereka terkait tidak langsung melalui tabel detail pesanan. Hubungan banyak-ke-banyak antara pesanan dan produk dinyatakan dalam database dengan menggunakan dua hubungan satu ke banyak:

  • Tabel pesanan dan tabel detail pesanan memiliki hubungan satu ke banyak. Setiap pesanan bisa memiliki lebih dari satu item baris, tetapi setiap item baris tersambung ke hanya satu urutan.

  • Produk tabel dan tabel detail pesanan memiliki hubungan satu ke banyak. Setiap produk bisa memiliki banyak item baris yang terkait dengannya, tetapi setiap item baris merujuk ke hanya satu produk.

Dari tabel detail pesanan, Anda bisa menentukan semua produk di urutan tertentu. Anda juga bisa menentukan semua perintah untuk produk tertentu.

Setelah menggabungkan tabel detail pesanan, daftar tabel dan bidang mungkin terlihat seperti ini:

Gambar memperlihatkan item informasi selama proses desain


Atas halaman

Membuat hubungan satu ke satu

Tipe lain hubungan adalah hubungan satu ke satu. Misalnya, Anda perlu merekam beberapa informasi produk tambahan khusus yang akan Anda perlukan jarang atau yang hanya berlaku untuk beberapa produk. Karena Anda tidak memerlukan informasi sering, dan karena menyimpan informasi dalam tabel produk akan menghasilkan kosong untuk setiap produk yang tidak berlaku, Anda menempatkannya di tabel terpisah. Seperti tabel produk, Anda menggunakan ProductID sebagai kunci utama. Hubungan antara tabel tambahan ini dan tabel produk adalah hubungan satu ke satu. Untuk setiap catatan dalam tabel produk, ada satu rekaman cocok di tabel tambahan. Ketika Anda mengidentifikasi hubungan seperti, kedua tabel harus berbagi bidang yang sama.

Saat Anda mendeteksi harus hubungan satu ke satu dalam database Anda, pertimbangkan Apakah Anda bisa mengumpulkan informasi dari dua tabel di satu tabel. Jika Anda tidak ingin melakukannya karena beberapa alasan, mungkin karena akan menghasilkan banyak spasi kosong, daftar berikut ini memperlihatkan bagaimana Anda akan mewakili hubungan di desain Anda:

  • Jika dua tabel memiliki subjek yang sama, Anda bisa mungkin menyiapkan hubungan dengan menggunakan kunci utama yang sama di kedua tabel.

  • Jika dua tabel memiliki subjek yang berbeda dengan kunci utama yang berbeda, pilih salah satu tabel (salah satu) dan sisipkan kunci utama yang di tabel lain sebagai kunci asing.

Menentukan hubungan antar tabel membantu Anda memastikan bahwa Anda memiliki kanan tabel dan kolom. Saat ada hubungan satu ke satu atau satu-ke-banyak, tabel yang terlibat perlu berbagi umum kolom atau kolom. Saat ada hubungan banyak ke banyak, ketiga tabel yang diperlukan untuk mewakili hubungan.

Atas halaman

Menyempurnakan desain

Setelah Anda memiliki tabel, bidang, dan hubungan yang Anda perlukan, Anda harus membuat dan mengisi tabel Anda dengan contoh data dan cobalah bekerja dengan informasi: membuat kueri, menambahkan catatan baru, dan lain sebagainya. Lakukan ini membantu menyoroti masalah potensial — misalnya, Anda mungkin perlu menambahkan kolom yang Anda lupa untuk menyisipkan selama fase desain Anda, atau Anda mungkin memiliki tabel yang harus Anda memisahkan menjadi dua tabel untuk menghapus duplikasi.

Lihat jika Anda bisa menggunakan database untuk mendapatkan jawaban yang Anda inginkan. Membuat draf kasar formulir dan laporan Anda dan melihat jika mereka memperlihatkan data yang Anda harapkan. Cari duplikasi data yang tidak diperlukan dan, saat Anda menemukan, mengubah desain Anda untuk menghilangkannya.

Saat Anda mencoba database awal Anda, Anda mungkin akan menemukan ruang untuk perbaikan. Berikut adalah beberapa hal untuk diperiksa untuk:

  • Apakah Anda lupa kolom apa pun? Jika demikian, termasuk informasi di tabel yang sudah ada? Jika informasi tentang sesuatu yang lain, Anda mungkin perlu membuat tabel lain. Membuat kolom untuk setiap item informasi yang Anda perlukan untuk melacak. Jika informasi yang tidak dapat dihitung dari kolom lain, itu mungkin Anda akan membutuhkan kolom baru untuk itu.

  • Apakah kolom yang tidak diperlukan karena mereka dapat dihitung dari bidang yang sudah ada? Jika item informasi dapat dihitung dari kolom lain yang sudah ada — potongan harga dihitung dari harga eceran, misalnya — biasanya lebih baik untuk melakukannya, dan menghindari membuat kolom baru.

  • Anda berulang kali memasukkan informasi duplikat dalam salah satu dari tabel Anda? Jika demikian, Anda mungkin perlu membagi tabel menjadi dua tabel yang memiliki hubungan satu ke banyak.

  • Apakah Anda memiliki tabel dengan banyak bidang, beberapa catatan, dan banyak bidang kosong di tiap-tiap Arsip? Jika demikian, memikirkan tentang mendesain ulang tabel sehingga memiliki lebih sedikit bidang dan catatan lainnya.

  • Setiap item informasi yang telah rusak ke terkecil berguna bagian-bagiannya? Jika Anda perlu laporan, mengurutkan, Cari atau menghitung pada item informasi, letakkan item itu di kolom sendiri.

  • Setiap kolom berisi fakta tentang tabel subjek Jika kolom tidak berisi informasi tentang tabel subjek, berada di dalam tabel yang berbeda.

  • Semua hubungan antara tabel yang dinyatakan, baik oleh bidang umum atau ketiga tabel itu. Hubungan satu ke satu dan satu ke banyak mengharuskan kolom umum. Hubungan banyak ke banyak memerlukan ketiga tabel.

Menyempurnakan tabel produk

Anggap bahwa setiap produk dalam database penjualan produk berada di bawah kategori umum, seperti minuman, bumbu atau laut. Tabel produk bisa menyertakan bidang yang memperlihatkan kategori setiap produk.

Anggap bahwa setelah memeriksa dan memperbaiki desain database, Anda memutuskan untuk menyimpan Deskripsi kategori bersama dengan namanya. Jika Anda menambahkan bidang kategori Deskripsi ke tabel produk, Anda harus mengulangi setiap kategori Deskripsi untuk setiap produk yang berada di bawah kategori — ini adalah tidak solusi yang baik.

Solusi yang lebih baik adalah untuk membuat kategori baru subjek untuk database untuk melacak, dengan tabel sendiri dan sendiri kunci utama. Anda bisa lalu menambahkan kunci utama dari kategori tabel ke tabel produk sebagai kunci asing.

Kategori dan produk tabel memiliki hubungan satu ke banyak: Kategori bisa menyertakan lebih dari satu produk, namun produk yang bisa menjadi milik hanya satu kategori.

Saat Anda meninjau struktur tabel Anda, akan mencari grup berulang. Sebagai contoh, pertimbangkan tabel berisi kolom berikut ini:

  • Product ID

  • Nama

  • Produk ID1

  • Name1

  • Produk ID2

  • Name2

  • Produk ID3

  • Name3

Di sini, setiap produk adalah grup berulang kolom yang berbeda dari yang lain hanya dengan menambahkan nomor ke akhir nama kolom. Saat Anda melihat kolom bernomor cara ini, Anda harus kembali desain Anda.

Desain seperti memiliki beberapa kekurangan. Bagi para pemula, memaksa Anda untuk menempatkan batas atas jumlah produk. Segera setelah Anda telah melampaui batas tersebut, Anda harus menambahkan grup kolom struktur tabel, yang merupakan tugas administratif utama.

Masalah lain adalah bahwa pemasok tersebut yang memiliki kurang dari jumlah maksimum produk akan membuang beberapa ruang, karena kolom tambahan akan kosong. Paling serius Cacat dengan desain seperti adalah bahwa membuat banyak tugas sulit untuk melakukan, seperti pengurutan atau pengindeksan tabel dengan ID Produk atau nama.

Setiap kali Anda melihat berulang grup Tinjau desain erat dengan mata pada tabel di dua memisahkan. Dalam contoh di atas yang lebih baik untuk menggunakan dua tabel, satu untuk pemasok dan satu untuk produk yang terkait dengan ID pemasok.

Atas halaman

Menerapkan aturan normalisasi

Anda bisa menerapkan aturan normalisasi data (kadang disebut normalisasi aturan) sebagai langkah berikutnya dalam desain. Anda menggunakan aturan ini untuk melihat jika tabel Anda disusun dengan benar. Proses menerapkan aturan ke desain database Anda disebut menormalkan database, atau cukup normalisasi.

Normalisasi ini paling berguna jika Anda telah mewakili semua item informasi dan telah tiba di awal desain. Ide adalah untuk membantu Anda memastikan bahwa Anda memiliki item informasi Anda dibagi menjadi tabel yang sesuai. Apa normalisasi tidak bisa Anda lakukan adalah memastikan bahwa Anda memiliki semua item data yang benar untuk memulainya.

Anda menerapkan aturan berturut-turut, setiap langkah memastikan yang desain Anda masuk di salah satu dari apa yang dikenal sebagai "formulir normal." Formulir lima normal diterima secara luas — formulir normal pertama melalui kelima formulir normal. Artikel ini menguraikan tentang tiga, karena semua yang diperlukan untuk sebagian besar desain database.

Bentuk pertama normal

Bentuk normal pertama menyatakan bahwa di irisan setiap baris dan kolom dalam tabel, ada satu nilai, dan tidak pernah daftar nilai. Misalnya, Anda tidak bisa memiliki bidang bernama harga di mana Anda meletakkan lebih dari satu harga. Jika Anda memikirkan setiap irisan baris dan kolom sebagai sel, setiap sel bisa terdiri hanya satu nilai.

Bentuk kedua normal

Bentuk normal kedua memerlukan setiap kolom utama agar sepenuhnya bergantung pada seluruh kunci utama, tidak ada pada hanya bagian dari kunci. Aturan ini berlaku bila Anda memiliki kunci utama yang terdiri dari lebih dari satu kolom. Misalnya, Anda memiliki tabel berisi kolom berikut, di mana ID pesanan dan ID Produk formulir kunci utama:

  • ID pesanan (kunci utama)

  • ID Produk (kunci utama)

  • Nama Produk

Desain ini melanggar kedua formulir normal, karena nama produk bergantung pada ID Produk, tapi tidak pada ID pesanan, sehingga tidak bergantung pada seluruh kunci utama. Anda harus menghapus nama produk dari tabel. Ini termasuk dalam tabel yang berbeda (produk).

Bentuk ketiga normal

Bentuk ketiga normal memerlukan yang tidak hanya setiap kolom utama bisa bergantung pada seluruh kunci utama, tetapi non-tombol kolom secara independen dari satu sama lain.

Cara lain untuk dikatakan ini adalah bahwa setiap kolom utama harus bergantung pada kunci utama dan tidak ada tapi kunci utama. Misalnya, Anda memiliki tabel berisi kolom berikut ini:

  • ProductID (kunci utama)

  • Nama

  • SRP

  • Diskon

Mengasumsikan bahwa diskon bergantung pada harga eceran (SRP). Tabel ini melanggar bentuk ketiga normal karena kolom utama, diskon, bergantung pada kolom utama lainnya, SRP. Kolom independensi berarti bahwa Anda dapat mengubah setiap kolom utama tanpa memengaruhi kolom lainnya. Jika Anda mengubah nilai dalam bidang SRP, diskon akan berubah sesuai, jadi melanggar aturan tersebut. Dalam kasus ini diskon akan dipindahkan ke tabel lain yang adalah mengetik di SRP.

Atas halaman

Catatan: Penafian Terjemahan Mesin: Artikel ini telah diterjemahan oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan terjemahan mesin ini untuk membantu pengguna yang bukan penutur bahasa Inggris agar dapat menikmati konten tentang produk, layanan, dan teknologi Microsoft. Karena artikel ini diterjemahkan oleh mesin, mungkin akan terdapat kesalahan kosa kata, sintaksis, atau tata bahasa.

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×