Asas Reka bentuk pangkalan data

Asas Reka bentuk pangkalan data

Important: Artikel ini diterjemahkan oleh mesin, lihatlah notis penafian. Sila dapatkan versi Bahasa Inggeris artikel ini di sini sebagai rujukan anda

Pangkalan data direka bentuk dengan baik memberi anda capaian ke maklumat terkini, tepat. Oleh sebab Reka bentuk betul adalah penting untuk mencapai matlamat anda bekerja dengan pangkalan data, melabur masa yang diperlukan untuk mengetahui prinsip reka bentuk yang baik munasabah. Kesimpulannya, anda lebih berkemungkinan besar berakhir dengan pangkalan data yang memenuhi keperluan anda dan dengan mudah boleh menampung perubahan.

Artikel ini menyediakan garis panduan untuk merancang pangkalan data desktop. Anda akan mengetahui cara untuk memutuskan apakah maklumat yang anda perlukan, cara untuk membahagikan maklumat tersebut kepada jadual yang sesuai dan lajur dan jadual cara tersebut berkaitan antara satu sama lain. Anda harus membaca artikel ini sebelum anda mencipta pangkalan data desktop anda pertama.

Important: Access menyediakan pengalaman Reka bentuk yang membolehkan anda mencipta aplikasi pangkalan data untuk Web. Banyak Reka bentuk pertimbangan adalah berbeza apabila anda mereka bentuk untuk Web. Artikel ini tidak membincangkan Reka bentuk Aplikasi Web pangkalan data. Untuk maklumat lanjut, lihat artikel membina pangkalan data untuk berkongsi di Web.

Dalam artikel ini

Beberapa istilah pangkalan data untuk mengetahui

Apakah Reka bentuk pangkalan data yang baik?

Proses Reka bentuk

Menentukan tujuan pangkalan data anda

Mencari dan mengatur maklumat yang diperlukan

Membahagikan maklumat ke dalam Jadual

Menjadikan item maklumat lajur

Menentukan kunci primer

Mencipta perhubungan Jadual

Penapisan Reka bentuk

Menggunakan peraturan penormalan


Beberapa istilah pangkalan data untuk mengetahui

Access mengatur maklumat anda ke dalam Jadual: Senarai baris dan lajur yang mengingatkan pad seorang Akauntan atau hamparan. Dalam pangkalan data ringkas, anda mungkin mempunyai hanya satu jadual. Untuk kebanyakan pangkalan data, anda akan memerlukan lebih daripada satu. Contohnya, anda mungkin mempunyai jadual yang menyimpan maklumat tentang produk, Jadual lain yang menyimpan maklumat tentang pesanan dan jadual lain dengan maklumat tentang pelanggan.

Imej menggambarkan tiga jadual dalam helaian data

Setiap baris lebih dengan betul dipanggil rekoddan setiap lajur, medan. Rekod adalah cara yang bermakna dan konsisten untuk menggabungkan maklumat tentang sesuatu. Medan adalah satu item maklumat — jenis item yang muncul dalam setiap rekod. Dalam Jadual produk, contohnya, setiap baris atau rekod akan tahan maklumat mengenai satu produk. Setiap lajur atau medan memegang beberapa jenis maklumat tentang produk tersebut, seperti nama atau harga.

Halaman atas

Apakah Reka bentuk pangkalan data yang baik?

Prinsip tertentu panduan proses Reka bentuk pangkalan data. Prinsip pertama adalah bahawa maklumat pendua (juga dipanggil data lewah) buruk, kerana ia sisa ruang dan meningkatkan kemungkinan ralat dan ketidakkonsistenan. Prinsip kedua adalah bahawa ketepatan dan kelengkapan maklumat penting. Jika pangkalan data anda mengandungi maklumat yang salah, mana-mana laporan yang menarik maklumat dari pangkalan data juga akan mengandungi maklumat yang salah. Hasilnya, sebarang keputusan yang anda buat yang berdasarkan laporan tersebut akan kemudian boleh disalah-maklumkan.

Reka bentuk pangkalan data yang baik adalah, oleh itu, salah satu yang:

  • Membahagikan maklumat anda ke dalam Jadual berdasarkan subjek untuk mengurangkan data lewah.

  • Menyediakan capaian dengan maklumat yang memerlukan untuk menggabungkan maklumat dalam Jadual mengikut keperluan.

  • Membantu menyokong dan memastikan ketepatan dan integriti maklumat anda.

  • Menempatkan anda pemprosesan data dan pelaporan keperluan.

Halaman atas

Proses Reka bentuk

Proses Reka bentuk terdiri daripada langkah berikut:

  • Menentukan tujuan pangkalan data anda   

    Ini membantu anda menyediakan anda untuk langkah yang selebihnya.

  • Mencari dan mengatur maklumat yang diperlukan   

    Mengumpul semua jenis maklumat yang anda mungkin ingin rekod dalam pangkalan data, seperti nama dan tertib nombor produk.

  • Membahagikan maklumat ke dalam Jadual   

    Membahagikan item maklumat anda kepada entiti utama atau subjek, seperti produk atau pesanan. Subjek setiap kemudian menjadi Jadual.

  • Menjadikan item maklumat ke dalam lajur   

    Memutuskan apakah maklumat yang anda ingin simpan dalam setiap Jadual. Setiap item menjadi medan dan dipaparkan sebagai lajur dalam Jadual. Contohnya, jadual pekerja mungkin termasuk medan seperti nama keluarga dan tarikh mengupah.

  • Menentukan kunci primer   

    Pilih kunci primer setiap Jadual. Kunci primer adalah lajur yang digunakan untuk mengenal pasti setiap baris unik. Contoh mungkin ID produk atau ID pesanan.

  • Menyediakan perhubungan Jadual   

    Cari di setiap jadual dan menentukan cara data dalam satu jadual berkaitan dengan data dalam Jadual lain. Menambah medan pada jadual atau mencipta jadual baru untuk menjelaskan perhubungan, mengikut keperluan.

  • Memperincikan Reka bentuk anda   

    Menganalisis Reka bentuk anda untuk ralat. Cipta jadual dan tambah beberapa rekod data sampel. Lihat jika anda boleh mendapatkan hasil yang anda inginkan daripada jadual anda. Membuat pelarasan untuk Reka bentuk, seperti yang diperlukan.

  • Menggunakan peraturan penormalan   

    Menggunakan peraturan penormalan data untuk melihat jika jadual anda distrukturkan dengan betul. Membuat pelarasan pada jadual, seperti yang diperlukan.

Halaman atas

Menentukan tujuan pangkalan data anda

Ia merupakan idea yang baik untuk tulis tujuan pangkalan data pada kertas — tujuan, cara yang anda jangkakan menggunakannya dan individu yang akan digunakan. Pangkalan data kecil untuk perniagaan berasaskan rumah, contohnya, anda mungkin menulis sesuatu yang ringkas seperti "pangkalan data pelanggan memastikan senarai pelanggan maklumat tujuan menghasilkan mel dan laporan." Jika pangkalan data adalah lebih rumit atau digunakan oleh orang ramai, seberapa kerap berlaku dalam persekitaran korporat, tujuan mungkin dengan mudah perenggan atau lebih dan harus termasuk apabila dan cara setiap individu yang akan menggunakan pangkalan data. Idea adalah mempunyai kenyataan misi juga dibangunkan yang boleh dirujuk di seluruh proses Reka bentuk. Menghadapi seperti membantu kenyataan yang yang anda memfokus pada matlamat anda apabila anda membuat keputusan.

Halaman atas

Mencari dan mengatur maklumat yang diperlukan

Untuk mencari dan mengatur maklumat yang diperlukan, mulakan dengan maklumat sedia ada anda. Contohnya, anda mungkin rekod pesanan pembelian dalam maklumat pelanggan yang Lejar atau simpan pada kertas borang dalam Kabinet fail. Mengumpul dokumen tersebut dan senarai setiap jenis maklumat yang ditunjukkan (contohnya, setiap kotak yang anda isikan pada borang). Jika anda tidak mempunyai sebarang borang sedia ada, bayangkan sebaliknya anda perlu mereka bentuk borang untuk merekodkan maklumat pelanggan. Apakah maklumat yang anda ingin meletakkan pada borang? Kotak fill-in apa yang anda ingin mencipta? Mengenal pasti dan senarai setiap item ini. Contohnya, katakan anda sedang Simpan senarai pelanggan pada Kad Indeks. Memeriksa Kad ini mungkin menunjukkan setiap kad memegang nama pelanggan, alamat, bandar, Negeri, Poskod dan nombor telefon. Setiap item ini mewakili potensi lajur dalam Jadual.

Apabila anda menyediakan senarai ini, jangan risau tentang Mari ia sempurna pada mulanya. Sebaliknya, senarai setiap item yang datang ke fikiran. Jika seseorang akan menggunakan pangkalan data, meminta mereka idea, juga. Anda boleh memperhalusi senarai kemudian.

Seterusnya, pertimbangkan jenis laporan atau mel yang anda mungkin ingin menghasilkan dari pangkalan data. Contohnya, anda mungkin ingin laporan jualan produk untuk menunjukkan jualan mengikut rantau atau ada laporan ringkasan inventori yang menunjukkan aras inventori produk. Anda juga mungkin ingin menjana Surat borang untuk menghantar kepada pelanggan yang mengumumkan peristiwa jualan atau menawarkan premium. Reka bentuk laporan dalam fikiran, dan bayangkan ia rupa. Apakah maklumat yang anda ingin letakkan pada Laporan? Senarai setiap item. Lakukan yang sama untuk Surat borang dan laporan lain yang anda jangkakan mencipta.

seorang individu menggambarkan laporan inventori produk

Memberikan fikiran untuk laporan dan mel yang anda mungkin ingin mencipta membantu anda mengenal pasti item yang anda perlukan dalam pangkalan data anda. Contohnya, katakan anda memberikan pelanggan peluang untuk menyertai ke (atau tiada) kemas kini berkala e-mel, dan anda ingin mencetak senarai yang telah menyertai. Untuk merakamkan maklumat tersebut, anda menambah lajur "Hantar e-mel" Jadual pelanggan. Untuk setiap pelanggan, anda boleh mengesetkan medan kepada Ya atau tidak.

Keperluan untuk menghantar mesej e-mel kepada pelanggan mencadangkan item lain untuk merakam. Sebaik sahaja anda mengetahui bahawa pelanggan yang ingin menerima mesej e-mel, anda juga perlu tahu alamat e-mel untuk menghantar kepada mereka. Oleh itu, anda perlu rekod alamat e-mel untuk setiap pelanggan.

Ia munasabah baik untuk membina prototaip setiap laporan atau output penyenaraian dan Pertimbangkan Apakah item anda perlu menghasilkan laporan. Contohnya, apabila anda memeriksa Surat borang, beberapa perkara mungkin termasuk ingat. Jika anda ingin memasukkan sapaan betul — contohnya, "Mr", "PN" atau "PN" rentetan yang bermula sapaan, anda perlu mencipta item sapaan. Juga, anda biasanya boleh bermula huruf dengan "Kepada Mr Smith" dan bukannya "kepada. Mr Sylvester Smith". Ini mencadangkan anda biasanya ingin menyimpan nama keluarga yang berasingan daripada nama pertama.

Titik kunci untuk diingati adalah anda perlu memutuskan setiap bahagian maklumat ke terkecil berguna bahagiannya. Dalam kes nama, untuk menjadikan nama keluarga yang sedia ada, anda akan memutuskan nama ke dalam dua bahagian — nama pertama dan nama keluarga. Untuk mengisih laporan mengikut nama keluarga, contohnya, ia membantu mempunyai pelanggan nama terakhir disimpan secara berasingan. Secara umum, jika anda ingin Mengisih, carian, mengira atau laporan berdasarkan pada item maklumat, anda harus meletakkan item tersebut dalam medan masing.

Fikirkan tentang soalan anda mungkin inginkan pangkalan data untuk menjawab. Contohnya, bilangan jualan produk Sorotan anda Adakah anda menutup bulan lepas? Di manakah pelanggan anda terbaik live? Siapakah pembekal untuk produk terlaris anda? Menjangkakan soalan ini membantu anda sifar dalam item tambahan untuk merakam.

Selepas mengumpulkan maklumat ini, anda sudah bersedia untuk langkah seterusnya.

Halaman atas

Membahagikan maklumat ke dalam Jadual

Untuk membahagi maklumat ke dalam Jadual, pilih entiti utama atau subjek. Contohnya, selepas mencari dan mengatur maklumat untuk pangkalan data jualan produk, senarai awal mungkin kelihatan seperti ini:

Item maklumat tulisan tangan dikumpulkan ke dalam subjek

Entiti utama yang ditunjukkan di sini ialah produk, pembekal, pelanggan dan pesanan tersebut. Oleh itu, ia munasabah untuk memulakan dengan jadual ini empat: satu untuk fakta tentang produk, satu untuk fakta mengenai pembekal, satu untuk fakta mengenai pelanggan dan untuk fakta mengenai pesanan. Walaupun ini tidak melengkapkan senarai, ia adalah titik permulaan yang baik. Anda boleh terus untuk memperincikan senarai ini sehingga anda mempunyai reka bentuk yang berfungsi dengan baik.

Apabila anda mula-mula menyemak semula senarai item yang awal, anda mungkin terdorong untuk meletakkannya semua dalam satu jadual, dan bukannya empat yang ditunjukkan dalam ilustrasi sebelumnya. Anda akan mengetahui di sini mengapa iaitu idea yang rosak. Pertimbangkan untuk sedikit masa, jadual yang ditunjukkan di sini:

Imej menunjukkan jadual yang mengandungi kedua-dua produk dan pembekal

Dalam kes ini, setiap baris mengandungi maklumat tentang produk dan pembekal kerjanya. Oleh sebab anda boleh mempunyai banyak produk daripada pembekal yang sama, maklumat nama dan alamat pembekal mempunyai boleh diulang banyak kali. Ini sisa ruang cakera. Rakaman pembekal maklumat sekali sahaja dalam Jadual pembekal yang berasingan, dan kemudian memautkan jadual tersebut Jadual produk, adalah lebih baik penyelesaian banyak.

Masalah kedua dengan reka bentuk ini disertakan apabila anda perlu mengubah suai maklumat tentang pembekal. Contohnya, katakan anda perlu mengubah alamat pada pembekal. Kerana ia muncul di banyak tempat, anda mungkin secara tidak sengaja menukar alamat dalam satu tempat tetapi lupa untuk mengubahnya dalam lain. Rakaman pembekal alamat dalam satu tempat sahaja menyelesaikan masalah.

Apabila anda mereka bentuk pangkalan data anda, sentiasa cuba untuk merakam setiap fakta hanya sekali. Jika anda mencari sendiri berulang maklumat yang sama dalam lebih daripada satu tempat, seperti alamat untuk pembekal tertentu, letakkan maklumat tersebut dalam Jadual berasingan.

Akhirnya, katakan terdapat hanya satu produk yang dibekalkan oleh Coho Winery, dan anda ingin memadamkan produk tetapi mengekalkan maklumat nama dan alamat pembekal. Bagaimanakah anda ingin memadamkan rekod produk tanpa juga kehilangan maklumat pembekal? Anda tidak dapat. Oleh sebab setiap rekod mengandungi fakta mengenai produk dan fakta mengenai pembekal juga, anda tidak boleh memadamkan satu tanpa memadamkan yang lain. Untuk memastikan fakta-fakta ini yang berasingan, anda mesti memisahkan satu jadual ke dalam dua: satu jadual untuk maklumat produk dan jadual lain untuk pembekal maklumat. Memadamkan rekod produk harus memadamkan hanya fakta tentang produk, tidak fakta mengenai pembekal.

Setelah anda memilih subjek yang diwakili oleh jadual, lajur dalam jadual tersebut patut menyimpan fakta hanya mengenai subjek. Contohnya, Jadual produk patut menyimpan fakta hanya mengenai produk. Oleh sebab alamat pembekal adalah fakta tentang pembekal dan tidak fakta tentang produk, ia tergolong dalam Jadual pembekal.

Halaman atas

Menjadikan item maklumat lajur

Untuk menentukan lajur dalam Jadual, memutuskan apakah maklumat yang anda perlu menjejaki tentang subjek direkodkan dalam Jadual. Contohnya, untuk jadual pelanggan, nama, alamat, City-State-Zip, Hantar e-mel, alamat e-mel dan sapaan terdiri daripada senarai lajur permulaan yang baik. Setiap rekod dalam Jadual yang mengandungi set sama lajur, agar anda boleh menyimpan nama, alamat, City-State-Zip, Hantar e-mel, sapaan dan e-mel alamat maklumat untuk setiap rekod. Contohnya, alamat lajur yang mengandungi alamat pelanggan. Setiap rekod mengandungi data tentang seorang pelanggan, dan pada medan alamat mengandungi alamat untuk pelanggan tersebut.

Sebaik sahaja anda telah membuat keputusan set awal lajur bagi setiap Jadual, anda boleh memperhalusi lajur selanjutnya. Contohnya, ia munasabah untuk menyimpan nama pelanggan sebagai dua lajur berasingan: nama pertama dan nama keluarga, agar anda boleh Mengisih, carian dan Indeks pada lajur baru tersebut. Begitu juga, alamat sebenarnya terdiri daripada lima komponen berasingan, alamat, bandar, Negeri, Poskod dan negara/rantau, dan ia juga masuk munasabah untuk menyimpannya dalam lajur berasingan. Jika anda ingin melaksanakan carian, penapis atau pengendalian isihan mengikut negeri, contohnya, anda memerlukan maklumat keadaan yang disimpan dalam lajur yang berasingan.

Anda juga seharusnya mempertimbangkan sama ada pangkalan data menampung maklumat yang asal domestik sahaja, atau antarabangsa, juga. Contohnya, jika anda merancang untuk menyimpan alamat antarabangsa, adalah lebih baik untuk mempunyai lajur rantau dan bukannya Negeri, kerana lajur tersebut boleh menampung domestik negara dan rantau lain negara/rantau. Begitu juga, Poskod munasabah lebih daripada Poskod jika anda akan menyimpan alamat antarabangsa.

Senarai berikut menunjukkan beberapa petua untuk menentukan lajur anda.

  • Jangan masukkan data terhitung   

    Dalam kebanyakan kes, anda tidak perlu menyimpan hasil pengiraan dalam Jadual. Sebaliknya, anda boleh capai melaksanakan pengiraan apabila anda ingin melihat hasil. Contohnya, katakan terdapat laporan produk pada perintah yang memaparkan subjumlah unit pada perintah bagi setiap kategori produk dalam pangkalan data. Walau bagaimanapun, terdapat lajur subtotal unit pada perintah tiada dalam sebarang Jadual. Sebaliknya, Jadual produk termasuk unit pada tertib lajur yang menyimpan unit pada perintah untuk setiap produk. Menggunakan data, Access mengira subjumlah, setiap kali anda mencetak laporan. Subjumlah itu sendiri tidak akan disimpan dalam Jadual.

  • Menyimpan maklumat dalam terkecil logik bahagiannya   

    Anda mungkin terdorong mempunyai medan tunggal nama penuh atau nama produk bersama-sama dengan Perihalan produk. Jika anda menggabungkan lebih daripada satu jenis maklumat dalam medan, ia adalah sukar untuk mendapatkan fakta individu kemudian. Cuba memecah maklumat ke dalam bahagian logik; Contohnya, mencipta medan berasingan bagi nama pertama dan Keluarga, atau untuk nama produk, kategori dan perihalan.

Imej menunjukkan item maklumat semasa proses reka bentuk

Sebaik sahaja anda telah ditapis lajur data dalam setiap Jadual, anda sudah bersedia untuk memilih setiap Jadual kunci primer.

Halaman atas

Menentukan kunci primer

Setiap Jadual harus termasuk lajur atau set lajur yang mengenal pasti setiap baris yang disimpan dalam Jadual secara unik. Ini biasanya ialah nombor pengenalan unik, seperti nombor ID pekerja atau nombor bersiri. Dalam Peristilahan pangkalan data, maklumat ini dipanggil kunci primer Jadual. Access menggunakan medan kunci primer untuk mengaitkan data daripada berbilang jadual dan menggabungkan data anda dengan cepat.

Jika anda sudah mempunyai pengecam unik untuk jadual, seperti nombor produk yang unik mengenal pasti setiap produk dalam katalog anda, anda boleh menggunakan pengecam tersebut sebagai kunci primer bagi Jadual — tetapi hanya jika nilai dalam lajur ini akan sentiasa berada berlainan untuk setiap rekod. Anda tidak boleh mempunyai nilai pendua dalam kunci primer. Contohnya, Jangan gunakan nama individu sebagai kunci primer, kerana nama tidak unik. Anda boleh dengan mudah mempunyai dua orang dengan nama yang sama dalam Jadual yang sama.

Kunci primer mesti sentiasa mempunyai nilai. Jika nilai lajur yang boleh menjadi tidak ditugaskan atau tidak diketahui (nilai hilang) pada beberapa titik, ia tidak boleh digunakan sebagai komponen dalam kunci primer.

Anda harus sentiasa memilih kunci primer yang nilainya tidak akan berubah. Dalam pangkalan data yang menggunakan lebih daripada satu jadual, kunci primer jadual yang boleh digunakan sebagai rujukan dalam Jadual lain. Jika kunci primer berubah, ubah mesti juga boleh digunakan di mana-mana kekunci dirujuk. Menggunakan kunci primer yang tidak akan berubah mengurangkan peluang kunci primer mungkin menjadi tidak segerak dengan jadual lain yang merujuk kepada ia.

Biasanya, nombor unik ada arbitrari digunakan sebagai kunci primer. Contohnya, anda mungkin memperuntukkan tertib setiap nombor pesanan yang unik. Nombor pesanan hanya tujuan adalah untuk mengenal pasti tertib. Sebaik sahaja diperuntukkan, ia tidak akan berubah.

Jika anda tidak mempunyai ingat lajur atau set lajur yang mungkin menyebabkan kunci primer yang baik, pertimbangkan untuk menggunakan lajur yang mempunyai jenis data Autonombor. Apabila anda menggunakan jenis data Autonombor, Access memperuntukkan nilai secara automatik untuk anda. Pengecam sedemikian ialah factless; Ia mengandungi tiada maklumat fakta yang menerangkan baris yang diwakilinya. Pengecam factless adalah ideal untuk digunakan sebagai kunci primer kerana ia tidak berubah. Kunci primer yang mengandungi fakta mengenai baris — nombor telefon atau pelanggan nama, contohnya — adalah berkemungkinan besar untuk mengubah, kerana maklumat fakta itu sendiri mungkin berubah.

Imej menunjukkan jadual Produk dengan medan kunci primer.

1. lajur disetkan kepada jenis data Autonombor sering menjadikan kunci primer yang baik. Tiada ID produk dua adalah sama.

Dalam sesetengah kes, anda mungkin ingin menggunakan dua atau lebih medan yang disediakan, bersama-sama, kunci primer Jadual. Contohnya, jadual butiran pesanan yang menyimpan item baris untuk pesanan akan menggunakan dua lajur dalam bahagian kunci primer: ID pesanan dan ID produk. Apabila kunci primer menggunakan lebih daripada satu lajur, ia juga dipanggil kunci Komposit.

Untuk produk jualan pangkalan data, anda boleh mencipta lajur Autonombor untuk setiap jadual untuk bertindak sebagai kunci primer: ProductID untuk jadual produk, Idpesanan untuk pesanan, ID pelanggan untuk jadual pelanggan, dan jadual SupplierID untuk jadual pembekal.

Imej menunjukkan item maklumat semasa proses reka bentuk


Halaman atas

Mencipta perhubungan Jadual

Setelah anda mempunyai dibahagikan maklumat anda ke dalam Jadual, anda memerlukan cara untuk menggabungkan maklumat sekali lagi dalam cara yang bermakna. Contohnya, borang berikut termasuk maklumat dari beberapa Jadual.

Imej borang pesanan

1. Maklumat dalam borang ini diambil daripada jadual Pelanggan...

2. … Jadual pekerja begitu...

3. … Jadual pesanan begitu …

4. … Jadual produk begitu …

5. … dan jadual butiran pesanan.

Capaian adalah sistem pengurusan pangkalan data hubungan. Dalam pangkalan data perhubungan, anda bahagikan maklumat anda ke dalam Jadual berasingan, berdasarkan subjek. Anda kemudian menggunakan perhubungan jadual untuk menggabungkan maklumat sebagaimana perlu.

Halaman atas

Mencipta perhubungan satu ke banyak

Pertimbangkan untuk contoh ini: Jadual produk dan pembekal dalam produk pesanan pangkalan data. Pembekal yang boleh memberikan sebarang nombor produk. Ia mengikuti bahawa untuk mana-mana pembekal yang dinyatakan dalam Jadual pembekal, Terdapat banyak produk yang dinyatakan dalam Jadual produk. Perhubungan antara Jadual pembekal dan jadual produk ialah, oleh itu, perhubungan satu ke banyak.

Konsep satu kepada banyak

Untuk mewakili perhubungan satu ke banyak dalam reka bentuk pangkalan data anda, mengambil kunci primer pada bahagian "satu" dalam perhubungan dan tambah sebagai lajur tambahan atau lajur Jadual pada bahagian "banyak" dalam perhubungan. Dalam kes ini, contohnya, anda menambahkan lajur ID pembekal daripada jadual pembekal Jadual produk. Access boleh menggunakan nombor ID pembekal kemudian dalam Jadual produk untuk mencari pembekal yang betul untuk setiap produk.

Lajur ID pembekal dalam Jadual produk dipanggil kunci asing. Kunci asing adalah kunci primer Jadual lain. Lajur ID pembekal dalam Jadual produk adalah kunci asing kerana ia juga adalah kunci primer dalam Jadual pembekal.

Imej menunjukkan item maklumat semasa proses reka bentuk

Anda menyediakan asas untuk menyertai jadual berkaitan dengan mewujudkan pasangan kunci primer dan kunci asing. Jika anda tidak pasti jadual yang sepatutnya berkongsi lajur biasa, mengenal pasti perhubungan satu ke banyak memastikan bahawa kedua-dua jadual yang terlibat, sebenarnya memerlukan lajur kongsi.

Halaman atas

Mencipta perhubungan satu ke banyak

Pertimbangkan perhubungan antara Jadual produk dan jadual pesanan.

Tertib tunggal yang boleh memasukkan lebih daripada satu produk. Sebaliknya, satu produk boleh muncul pada banyak pesanan. Oleh itu, untuk setiap rekod dalam Jadual pesanan, boleh terdapat banyak rekod dalam Jadual produk. Dan untuk setiap rekod dalam Jadual produk, boleh terdapat banyak rekod dalam Jadual pesanan. Jenis perhubungan ini dipanggil perhubungan satu ke banyak kerana untuk mana-mana produk, boleh terdapat banyak pesanan; dan untuk sebarang tertib, boleh terdapat banyak produk. Sila ambil perhatian bahawa untuk mengesan perhubungan banyak kepada banyak antara jadual anda, adalah penting untuk anda pertimbangkan kedua-dua belah perhubungan.

Subjek dua Jadual — pesanan dan produk — mempunyai perhubungan satu ke banyak. Ini memberikan masalah. Untuk memahami masalah, bayangkan apa yang akan berlaku jika anda cuba mencipta perhubungan antara dua Jadual dengan menambahkan medan ID produk Jadual pesanan. Untuk mempunyai lebih daripada satu produk setiap pesanan, anda memerlukan lebih daripada satu rekod dalam Jadual pesanan setiap pesanan. Anda akan berulang maklumat pesanan bagi setiap baris yang berkaitan dengan perintah tunggal — menghasilkan reka bentuk cekap yang boleh membawa data tepat. Anda menghadapi masalah yang sama jika anda meletakkan medan ID pesanan dalam Jadual produk — anda mempunyai lebih daripada satu rekod dalam Jadual produk untuk setiap produk. Bagaimana anda boleh menyelesaikan masalah ini?

Jawapan adalah untuk mencipta Jadual Ketiga, selalunya dipanggil Jadual Simpang, yang rosak perhubungan banyak kepada banyak ke dua perhubungan satu ke banyak. Anda menyelitkan kunci primer daripada setiap dua Jadual ke dalam Jadual ketiga. Hasilnya, Jadual Ketiga rekod setiap kejadian atau kejadian perhubungan.

Konsep perhubungan banyak kepada banyak

Setiap rekod dalam jadual butiran pesanan mewakili satu item baris pada tertib. Jadual butiran pesanan kunci primer terdiri daripada dua medan — kunci asing daripada perintah dan jadual produk. Menggunakan medan ID pesanan sahaja tidak berfungsi sebagai kunci primer untuk Jadual ini, kerana satu pesanan boleh mempunyai banyak item baris. ID pesanan diulangi untuk setiap item baris pada tertib, jadi medan tidak mengandungi nilai unik. Menggunakan medan ID produk sahaja tidak berfungsi sama ada, kerana satu produk boleh muncul pada banyak perintah yang berbeza. Tetapi bersama-sama, dua medan sentiasa menghasilkan nilai unik untuk setiap rekod.

Dalam produk jualan pangkalan data, Jadual pesanan dan jadual produk tidak berkaitan dengan satu sama lain terus. Sebaliknya, ia adalah berkaitan tidak langsung melalui jadual butiran pesanan. Perhubungan banyak kepada banyak antara pesanan dan produk diwakili dalam pangkalan data menggunakan dua perhubungan satu ke banyak:

  • Jadual pesanan dan jadual butiran pesanan yang mempunyai perhubungan satu ke banyak. Perintah setiap boleh mempunyai lebih daripada satu item baris, tetapi setiap item baris disambungkan dengan hanya satu pesanan.

  • Jadual produk dan jadual butiran pesanan yang mempunyai perhubungan satu ke banyak. Setiap produk boleh mempunyai banyak item baris yang berkaitan dengannya, tetapi setiap item baris merujuk kepada hanya satu produk.

Dari jadual butiran pesanan, anda boleh menentukan semua produk pada tertib tertentu. Anda juga boleh menentukan semua pesanan untuk produk atau perkhidmatan tertentu.

Selepas menggabungkan jadual butiran pesanan, senarai jadual dan medan mungkin kelihatan seperti ini:

Imej menunjukkan item maklumat semasa proses reka bentuk


Halaman atas

Mencipta perhubungan satu ke satu

Jenis perhubungan yang lain adalah perhubungan satu ke satu. Contohnya, katakan anda perlu merakam beberapa maklumat produk tambahan khas yang anda akan perlukan jarang atau yang hanya digunakan pada beberapa produk. Kerana anda tidak perlukan maklumat kerap, dan kerana menyimpan maklumat dalam Jadual produk akan memberikan hasil ruang kosong bagi setiap produk yang ia tidak digunakan, anda akan meletakkannya dalam Jadual berasingan. Seperti jadual produk, anda menggunakan ProductID yang sebagai kunci primer. Perhubungan antara Jadual tambahan ini dan jadual produk adalah perhubungan satu ke satu. Untuk setiap rekod dalam Jadual produk, wujud rekod tunggal yang sepadan dalam Jadual tambahan. Apabila anda mengenal pasti perhubungan seperti, kedua-dua Jadual mesti berkongsi medan biasa.

Apabila anda mengesan keperluan untuk perhubungan satu ke satu dalam pangkalan data anda, pertimbangkan sama ada anda boleh letakkan maklumat daripada dua Jadual bersama-sama dalam satu jadual. Jika anda tidak ingin melakukannya atas beberapa sebab, mungkin kerana ia akan memberikan hasil banyak ruang kosong, senarai berikut menunjukkan cara anda ingin mewakili perhubungan dalam reka bentuk anda:

  • Jika kedua-dua Jadual mempunyai subjek yang sama, anda boleh mungkin menyediakan perhubungan menggunakan kunci primer yang sama dalam kedua-dua Jadual.

  • Jika kedua-dua Jadual mempunyai subjek yang berbeza dengan kunci primer yang berlainan, pilih salah satu Jadual (sama ada) dan selitkan bahagian kunci primer dalam Jadual lain sebagai kunci asing.

Menentukan perhubungan antara Jadual membantu anda memastikan anda mempunyai kanan jadual dan lajur. Apabila perhubungan satu ke satu atau satu ke banyak wujud, jadual yang terlibat perlu berkongsi lajur umum atau lajur. Apabila perhubungan satu ke banyak wujud, Jadual Ketiga diperlukan untuk mewakili perhubungan.

Halaman atas

Penapisan Reka bentuk

Sebaik sahaja anda mempunyai jadual, medan dan perhubungan yang anda perlukan, anda perlu mencipta dan mengisi jadual anda dengan data sampel dan cuba bekerja dengan maklumat: mencipta pertanyaan, menambah rekod baru, dan sebagainya. Melakukan ini membantu menyerlahkan masalah yang berpotensi — contohnya, anda mungkin perlu menambah lajur yang anda terlupa untuk menyelitkan fasa Reka bentuk anda, atau anda mungkin mempunyai jadual yang anda harus memisahkan kepada dua jadual untuk mengalih keluar pertindihan.

Lihat jika anda boleh menggunakan pangkalan data untuk mendapatkan jawapan yang anda inginkan. Cipta Draf kasar borang dan laporan anda dan lihat jika ia menunjukkan data yang anda jangkakan. Cari pertindihan data yang tidak diperlukan, dan apabila anda menemui sebarang, mengubah Reka bentuk anda untuk menyingkirkan ia.

Semasa anda cuba pangkalan data awal anda, anda mungkin akan menemui bilik untuk pembaikan. Berikut adalah beberapa perkara untuk menyemak:

  • Adakah anda terlupa sebarang lajur? Jika ya, maklumat tergolong dalam Jadual sedia ada? Jika ia adalah maklumat mengenai sesuatu yang lain, anda mungkin perlu mencipta jadual lain. Mencipta lajur bagi setiap item maklumat yang anda perlu menjejaki. Jika maklumat yang tidak boleh dikira daripada lajur lain, ia adalah berkemungkinan besar anda akan memerlukan lajur baru untuknya.

  • Adakah sebarang lajur yang tidak diperlukan kerana ia boleh dikira daripada medan sedia ada? Jika item maklumat boleh dikira daripada lajur sedia ada lain — harga diskaun dikira daripada harga runcit, contohnya — biasanya lebih baik untuk melakukannya sahaja, dan mengelakkan mencipta lajur baru.

  • Anda berulang kali memasukkan maklumat pendua dalam satu jadual anda? Jika ya, anda mungkin perlu membahagikan Jadual kepada dua jadual yang mempunyai perhubungan satu ke banyak.

  • Adakah anda mempunyai jadual dengan banyak medan, bilangan rekod yang terhad, dan banyak medan kosong dalam rekod individu? Jika ya, fikirkan semula Jadual agar ia mempunyai kurang medan dan rekod lain.

  • Setiap item maklumat telah rosak ke terkecil berguna bahagiannya? Jika anda perlu melaporkan, mengisih, Cari atau mengira pada item maklumat, letakkan item tersebut dalam lajur tersendiri.

  • Adakah setiap lajur mengandungi fakta tentang subjek Jadual? Jika lajur mengandungi maklumat tentang Jadual subjek, ia tergolong dalam Jadual lain.

  • Adakah semua perhubungan antara jadual yang diwakili, sama ada dengan medan biasa atau dengan jadual ketiga? Perhubungan satu ke satu dan satu ke banyak memerlukan lajur umum. Perhubungan banyak kepada banyak memerlukan Jadual ketiga.

Penapisan Jadual produk

Katakan setiap produk dalam pangkalan data jualan produk yang jatuh di bawah kategori umum, seperti minuman, masakan atau laut. Jadual produk boleh termasuk medan yang menunjukkan kategori setiap produk.

Katakan yang selepas memeriksa dan penapisan Reka bentuk pangkalan data, anda memutuskan untuk menyimpan Perihalan kategori bersama-sama dengan namanya. Jika anda menambah medan kategori Perihalan Jadual produk, anda perlu ulangi setiap kategori Perihalan bagi setiap produk yang jatuh di bawah kategori — ini bukan penyelesaian yang baik.

Penyelesaian yang lebih baik adalah membuat kategori subjek baru untuk pangkalan data untuk menjejak Jadual tersendiri dengan sendiri kunci primer. Anda boleh kemudian menambah kunci primer daripada jadual kategori produk Jadual sebagai kunci asing.

Jadual kategori dan produk mempunyai perhubungan satu ke banyak: kategori boleh memasukkan lebih daripada satu produk, tetapi produk yang boleh digolongkan hanya satu kategori.

Apabila anda menyemak semula struktur jadual anda, akan meninjau berulang Kumpulan. Contohnya, pertimbangkan jadual yang mengandungi lajur berikut:

  • ID Produk

  • Nama

  • ID1 produk

  • Name1

  • ID2 produk

  • Name2

  • ID3 produk

  • Name3

Di sini, setiap produk adalah Kumpulan berulang lajur yang berbeza daripada yang lain hanya dengan menambah nombor ke hujung nama lajur. Apabila anda melihat lajur bernombor cara ini, anda harus semula Reka bentuk anda.

Reka bentuk seperti mempunyai beberapa kelemahan. Untuk permulaan, ia memaksa anda letakkan had pada bilangan produk. Sebaik sahaja anda melebihi had tersebut, anda mesti menambah Kumpulan baru lajur untuk struktur Jadual, iaitu tugas pentadbiran utama.

Masalah lain adalah tersebut pembekal yang mempunyai kurang daripada bilangan maksimum bagi produk akan membazirkan beberapa ruang, kerana lajur tambahan akan kosong. Kecacatan paling serius dengan reka bentuk tersebut adalah bahawa ia menjadikan banyak tugas sukar untuk melaksanakan, seperti pengisihan atau pengindeksan Jadual dengan ID produk atau nama.

Apabila anda melihat berulang Kumpulan menyemak semula Reka bentuk rapat dengan mata pada memisahkan Jadual dalam dua. Dalam contoh di atas adalah lebih baik untuk menggunakan dua Jadual, satu untuk pembekal dan satu untuk produk yang dikaitkan dengan ID pembekal.

Halaman atas

Menggunakan peraturan penormalan

Anda boleh menggunakan peraturan penormalan data (kadangkala dipanggil peraturan penormalan) sebagai langkah seterusnya dalam reka bentuk anda. Anda menggunakan peraturan ini untuk melihat jika jadual anda distrukturkan dengan betul. Proses menggunakan peraturan untuk Reka bentuk pangkalan data anda dipanggil normalizing pangkalan data, atau hanya penormalan.

Penormalan adalah paling berguna selepas anda telah diwakili semua item maklumat dan telah tiba di permulaan Reka bentuk. Idea adalah untuk membantu anda memastikan bahawa anda telah bahagikan item maklumat anda ke dalam Jadual yang sesuai. Apakah penormalan tidak boleh lakukan adalah memastikan anda mempunyai semua item data yang betul untuk bermula dengan.

Anda menggunakan peraturan dalam pewarisan memastikan setiap langkah yang Reka bentuk anda tiba di salah satu daripada sesuatu yang dikenali sebagai "Borang normal." Borang normal lima meluas diterima — borang normal pertama melalui borang normal kelima. Artikel ini akan mengembangkan pada tiga pertama, kerana ia semua yang diperlukan untuk kebanyakan Reka bentuk pangkalan data.

Borang normal yang pertama

Borang normal pertama menyatakan bahawa di persilangan setiap baris dan lajur dalam Jadual, wujud nilai tunggal, dan tidak pernah senarai nilai. Contohnya, anda tidak boleh mempunyai medan yang dinamakan harga yang anda letakkan harga lebih daripada satu. Jika anda fikirkan setiap persilangan baris dan lajur sebagai sel, setiap sel boleh tahan hanya satu nilai.

Borang normal kedua

Borang normal kedua memerlukan setiap lajur kunci sepenuhnya bergantung pada kunci primer keseluruhan, bukan pada hanya bahagian penting. Peraturan ini digunakan apabila anda mempunyai kunci primer yang terdiri daripada lebih daripada satu lajur. Contohnya, katakan anda mempunyai jadual yang mengandungi lajur berikut, di mana ID pesanan dan ID produk borang kunci primer:

  • ID pesanan (kunci primer)

  • ID produk (kunci primer)

  • Nama produk

Reka bentuk ini melanggar borang normal kedua, kerana nama produk bergantung pada ID produk, tetapi bukan ID pesanan, agar ia tidak bergantung pada seluruh kunci primer. Anda mesti mengalih keluar nama produk daripada jadual. Ia tergolong dalam Jadual lain (produk).

Borang normal ketiga

Borang normal ketiga memerlukan yang bukan sahaja setiap lajur kunci akan bergantung pada seluruh kunci primer tetapi -kunci lajur menjadi berasingan daripada satu sama lain.

Cara lain mengatakan ini adalah bahawa setiap lajur kunci mesti bergantung pada kunci primer dan tiada apa-apa tetapi kunci primer. Contohnya, katakan anda mempunyai jadual yang mengandungi lajur berikut:

  • ProductID (kunci primer)

  • Nama

  • SRP

  • Diskaun

Menganggap bahawa diskaun bergantung pada harga runcit dicadangkan (SRP). Jadual ini melanggar borang ketiga normal kerana lajur kunci, diskaun, bergantung pada lajur kunci lain, SRP. Lajur kebebasan bermakna bahawa anda sepatutnya dapat mengubah sebarang lajur kunci tanpa menjejaskan lajur lain. Jika anda mengubah nilai dalam medan SRP, diskaun akan berubah mengikut kesesuaian, maka melanggar peraturan tersebut. Dalam kes ini diskaun akan dialihkan ke Jadual lain yang dimasukkan pada SRP.

Halaman atas

Note: Notis Penafian Penterjemahan Mesin: Artikel ini telah diterjemah oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan penterjemahan mesin ini untuk membantu pengguna-pengguna yang tidak bertutur dalam Bahasa Inggeris supaya dapat menikmati kandungan mengenai produk, perkhidmatan dan teknologi Microsoft. Artikel ini mungkin mengandungi ralat perbendaharaan kata, sintaks atau tatabahasa kerana ia diterjemahkan oleh mesin.

Kembangkan kemahiran anda
Jelajahi latihan
Dapatkan ciri baru terlebih dahulu
Sertai Office Insiders

Adakah maklumat ini membantu?

Terima kasih atas maklum balas anda!

Terima kasih atas maklum balas anda! Nampaknya ia mungkin akan membantu untuk menyambungkan anda kepada salah seorang daripada ejen sokongan Office kami.

×