คำอธิบายของพื้นฐาน normalization ฐานข้อมูลใน Access 2000

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 209534 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ฝึกหัด: ต้องทราบของอินเทอร์เฟซสำหรับผู้ใช้บนคอมพิวเตอร์เครื่องเดียวที่ผู้ใช้

สำหรับข้อมูล Microsoft Access 97 รุ่นของบทความนี้ ดู100139.
สำหรับข้อมูล Microsoft Access 2002 รุ่นของบทความนี้ ดู283878.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายถึงคำศัพท์เฉพาะทาง normalization ฐานข้อมูลสำหรับ beginners ความเข้าใจเกี่ยวกับคำศัพท์นี้พื้นฐานจะเป็นประโยชน์เมื่อ discussing การออกแบบของฐานข้อมูลที่เกี่ยว

หมายเหตุ:: Microsoft ยังมีเว็บคาสต์ที่กล่าวถึงขั้นพื้นฐานของ normalization ฐานข้อมูล เมื่อต้องการดูเว็บคาสต์นี้ โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
http://support.microsoft.com/servicedesks/webcasts/wc060600/wc060600.asp?fr=1
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ในการเข้าถึงในเวอร์ชันก่อนหน้านี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
100139พื้นฐาน normalization ฐานข้อมูล

ข้อมูลเพิ่มเติม

คำอธิบายของ normalization

normalization คือ กระบวนการจัดระเบียบข้อมูลในฐานข้อมูล ซึ่งรวมถึงการสร้างตาราง และการกำหนดความสัมพันธ์ระหว่างตารางต่าง ๆ ตามกฎที่มีการออกแบบมา เพื่อป้องกันข้อมูล และ เพื่อทำให้ฐานข้อมูลมีความยืดหยุ่นมากขึ้น โดยการตัดออกการสำรองและการอ้างอิงที่ไม่สอดคล้องกันทั้งการ

ข้อมูลที่ซ้ำซ้อน wastes เนื้อที่ว่างบนดิสก์ และสร้างปัญหาในการบำรุงรักษา ถ้าต้องถูกเปลี่ยนแปลงข้อมูลที่มีอยู่ในสถานที่หนึ่ง ข้อมูลต้องเปลี่ยนในแน่นอนแบบเดียวกันในตำแหน่งที่ตั้งทั้งหมด การเปลี่ยนแปลงที่อยู่ของลูกค้าจะง่ายกว่ามากจะใช้ถ้าข้อมูลที่เก็บอยู่ในตารางลูกค้าและ nowhere อื่นในฐานข้อมูลเท่านั้น

ขึ้นต่อเป็น "ไม่สอดคล้องกัน" คืออะไร ขณะที่อยู่ intuitive สำหรับผู้ใช้ในการค้นหาในตารางลูกค้าสำหรับอยู่ของลูกค้าเฉพาะราย ดังกล่าวอาจไม่ทำควรมีหาเงินเดือนของพนักงานที่เรียกบนลูกค้าเท่านั้น เงินเดือนของพนักงานที่เกี่ยวข้อง กับ หรือขึ้น พนักงาน และซึ่ง ควรจะย้ายไปยังตารางพนักงาน การอ้างอิงที่ไม่สอดคล้องกันสามารถทำข้อมูลยากต่อการเข้าถึงได้เนื่องจากเส้นทางการค้นหาข้อมูลอาจหายไป หรือใช้งานไม่ได้

กฎบางอย่างสำหรับ normalization ฐานข้อมูลได้ แต่ละกฎจะเรียกว่า "ปกติฟอร์ม ถ้ามีการตรวจสอบกฎแรก ฐานข้อมูล said อยู่ใน "แรกปกติฟอร์ม ถ้ามีการตรวจสอบกฎที่สามเป็นอันดับแรก ฐานข้อมูลจะถือเป็นใน "สามปกติฟอร์ม แม้ว่า normalization ระดับอื่น ๆ จะเป็นไปได้ ฟอร์มปกติที่สามจะถือเป็นระดับสูงสุดจำเป็นสำหรับโปรแกรมประยุกต์ที่มากที่สุด

ตามที่ มีหลายอย่างเป็นทางกฎและข้อกำหนด สถานการณ์โลกจริงไม่อนุญาตสำหรับความสอดคล้องที่สมบูรณ์แบบ โดยทั่วไป normalization ต้องตารางเพิ่มเติมของคุณ และลูกค้าบางพบนี้ cumbersome ถ้าคุณตัดสินใจ violate กฎที่สามเป็นอันดับแรกของ normalization อย่างใดอย่างหนึ่ง การตรวจสอบให้แน่ใจว่า โปรแกรมประยุกต์ของคุณ anticipates ปัญหาที่อาจเกิด เช่นข้อมูลที่ซ้ำซ้อนและการอ้างอิงที่ไม่สอดคล้องกัน

คำอธิบายต่อไปนี้มีตัวอย่าง

แบบฟอร์มปกติแรก

  • การตัดออกกลุ่มที่มีการทำซ้ำในแต่ละตาราง
  • สร้างตารางที่แยกต่างหากสำหรับแต่ละชุดของข้อมูลที่เกี่ยวข้อง
  • ระบุแต่ละชุดของข้อมูลที่เกี่ยวข้องกับคีย์หลัก
อย่าใช้หลายฟิลด์ในตารางเดียวในการเก็บข้อมูลที่คล้ายกัน ตัวอย่างเช่น การติดตามสินค้าในสต็อกที่อาจมาจากแหล่งที่เป็นไปได้สอง เรกคอร์ดในสินค้าคงคลังอาจประกอบด้วยเขตข้อมูลสำหรับผู้ขายรหัส 1 และ 2 รหัสของผู้ขาย

เกิดอะไรขึ้นเมื่อคุณเพิ่มผู้จัดจำหน่ายที่สาม การเพิ่มเขตข้อมูลไม่มีคำตอบ ต้องการแก้ไขโปรแกรมและตาราง และให้เหมาะสมไม่อย่างกับหมายเลขแบบไดนามิกของผู้จัดจำหน่าย แทน วางข้อมูลผู้จัดจำหน่ายทั้งหมดในตารางที่แยกต่างหากที่เรียกว่าผู้ขาย จากสินค้าคงคลังในการเชื่อมโยงกับผู้จัดจำหน่าย ด้วยคีย์การหมายเลขสินค้า หรือผู้จัดจำหน่ายไปยังสินค้าคงคลัง โดยใช้คีย์การโค้ดผู้จัดจำหน่าย

แบบฟอร์มปกติที่สอง

  • สร้างตารางที่แยกต่างหากสำหรับชุดของค่าที่นำไปใช้กับหลายระเบียน
  • การเชื่อมโยงกับตารางเหล่านี้ โดยใช้คีย์ที่ต่างประเทศ
เร็กคอร์ดที่ไม่ควรขึ้นกับบนสิ่งอื่นที่ไม่ใช่คีย์หลักของตาราง (ประกอบแป้น ถ้าจำเป็น) ให้พิจารณาตัวอย่างเช่น ที่อยู่ของลูกค้าในระบบการลงบัญชี ที่อยู่ถูกต้อง ตามตารางลูกค้า แต่ยัง ตามตารางใบสั่ง จัดส่ง ใบส่งของ บัญชีลูกหนี้ และคอลเลกชัน แทนการจัดเก็บอยู่ของลูกค้าเป็นรายการแยกต่างหากในแต่ละตารางเหล่านี้ เก็บไว้ในสถานที่หนึ่ง อย่างใดอย่างหนึ่งในลูกค้าในตาราง หรือในที่อยู่ที่แยกต่างหากตาราง

แบบฟอร์มปกติที่สาม

  • การตัดออกเขตข้อมูลที่ไม่ขึ้นคีย์
ค่าในระเบียนที่ไม่ใช่ส่วนหนึ่งของคีย์ของระเบียนที่ไม่ได้อยู่ในตาราง โดยทั่วไป เวลาเนื้อหาของฟิลด์กลุ่มอาจใช้มากกว่าหนึ่งระเบียนในตาราง พิจารณาการวางเขตข้อมูลเหล่านั้นในตารางที่แยกต่างหาก

ตัวอย่างเช่น ในการสรรหาบุคลากรพนักงาน ตาราง ของ candidate มหาวิทยาลัยชื่อ และที่อยู่อาจจะรวมไว้ แต่คุณต้องการให้รายการทั้งหมดของ universities สำหรับกลุ่มการส่งเมล์ ถ้าข้อมูลมหาวิทยาลัยเก็บอยู่ในตาราง Candidates คุณจะไม่มีวิธีการ universities รายการ ด้วย candidates ปัจจุบันไม่มี สร้างตาราง Universities แยกต่างหาก และเชื่อมโยงไปยังตาราง Candidates ด้วยคีย์รหัสมหาวิทยาลัย

ข้อยกเว้น: Adhering ไปยังฟอร์มสามปกติ ขณะ theoretically ช ไม่ได้เสมอ practical ถ้าคุณมีตารางลูกค้า และคุณต้องการกำจัดการอ้างอิง interfield ที่เป็นไปได้ทั้งหมด คุณต้องสร้างตารางที่แยกต่างหากสำหรับเมือง รหัสไปรษณีย์ พนักงานขาย ระดับชั้นลูกค้า และปัจจัยอื่น ๆ ที่อาจจะซ้ำกันในหลายระเบียน ในทฤษฎี normalization จะคุ้มค่า pursing อย่างไรก็ตาม หลายตารางขนาดเล็กอาจลดลงของประสิทธิภาพ หรือเกินแฟ้มเปิดอยู่และกำลังการผลิตหน่วยความจำ

คุณอาจเพิ่มเติมกระทำการใช้แบบฟอร์มปกติที่สามไปยังข้อมูลที่เปลี่ยนแปลงบ่อยครั้งเท่านั้น ถ้าฟิลด์บางฟิลด์ที่อยู่กับที่อยู่ ออกแบบโปรแกรมประยุกต์ของคุณให้ใช้กระบวนการผู้ใช้ในการตรวจสอบทั้งหมดที่เกี่ยวข้องเขตข้อมูลเมื่อมีการเปลี่ยนแปลงใด ๆ

แบบฟอร์มอื่น ๆ normalization

ฟอร์มที่ปกติที่สี่ การเรียกอีก อย่างว่า Boyce Codd ปกติฟอร์ม (BCNF), และฟอร์มปกติ fifth มีอยู่ แต่ไม่ค่อยได้ถือเป็นในการออกแบบ practical disregarding กฎเหล่านี้อาจทำให้การออกแบบฐานข้อมูลที่สมบูรณ์แบบน้อยกว่า แต่จะไม่มีผลต่อฟังก์ชันการทำงาน

normalizing มีตารางตัวอย่าง

ขั้นตอนเหล่านี้แสดงให้เห็นถึงแนวทางที่กระบวนการ normalizing ตาราง student สมมติ
  1. ตาราง unnormalized:
    ยุบตารางนี้ขยายตารางนี้
    student #ปรึกษาห้อง AdvClass1Class2Class3
    1022Jones412101-07143-01159-02
    4123Smith216201-01211-02214-01
  2. ฟอร์มที่มีการปกติแรก: ไม่มีการทำซ้ำกลุ่ม

    ตารางควรมีขนาดสองเท่านั้น ตั้งแต่หนึ่ง student มีคลาสที่หลาย ระดับชั้นเหล่านี้ควรถูกแสดงในตารางที่แยกต่างหาก เขตข้อมูล Class1, Class2 และ Class3 ในระเบียนที่ด้านบนจะ indications ของปัญหาในการออกแบบ

    กระดาษคำนวณใช้มิติอื่นอยู่บ่อย ๆ แต่ตารางควรไม่ อีกวิธีหนึ่งที่ใช้ดูปัญหานี้จะ มีความสัมพันธ์แบบหนึ่งไปยังหลาย ไม่ย้ายทางด้านหนึ่งและทางด้านจำนวนมากในตารางเดียวกัน แทน สร้างตารางอื่นในรูปแบบปกติแรก โดยการตัดออกกลุ่มทำซ้ำ (คลา #), ตามที่แสดงอยู่ด้านล่าง:
    ยุบตารางนี้ขยายตารางนี้
    student #ปรึกษาห้อง Advคลา #
    1022Jones412101-07
    1022Jones412143-01
    1022Jones412159-02
    4123Smith216201-01
    4123Smith216211-02
    4123Smith216214-01
  3. ฟอร์มปกติที่สอง: ข้อมูลที่ซ้ำซ้อนการตัดออก

    หมายเหตุหลายระดับชั้น # ค่าสำหรับแต่ละนักเรียน # ค่าในตารางด้านบน Class# is not functionally dependent on Student# (primary key), so this relationship is not in second normal form.

    The following two tables demonstrate second normal form:

    Students

    ยุบตารางนี้ขยายตารางนี้
    Student#AdvisorAdv-Room
    1022Jones412
    4123Smith216

    Registration

    ยุบตารางนี้ขยายตารางนี้
    Student#Class#
    1022101-07
    1022143-01
    1022159-02
    4123201-01
    4123211-02
    4123214-01
  4. Third Normal Form: Eliminate Data Not Dependent On Key

    ในตัวอย่างที่หลังสุด Adv-ห้อง (หมายเลขงานที่ปรึกษา) คือ functionally ขึ้นอยู่กับแอตทริบิวต์โปรแกรมช่วยแนะนำ โซลูชันมีการ ย้ายแอตทริบิวต์ที่จากตาราง Students ไปยังตาราง Faculty ตามที่แสดงอยู่ด้านล่าง:

    students

    ยุบตารางนี้ขยายตารางนี้
    student #ปรึกษา
    1022Jones
    4123Smith

    faculty

    ยุบตารางนี้ขยายตารางนี้
    ชื่อ:มีที่ว่างDept
    Jones41242
    Smith21642

ข้อมูลอ้างอิง

Ahlo บันทึก Hamilton, Randy น้ำตาลและ Peter Colcloughแนะนำของนักพัฒนา A FoxPro ที่ 2:: ผู้เชี่ยวชาญการแนะนำสำหรับการเขียนโปรแกรมความแรงของ Industrial. สมชาย Wiley & Sons, 1991 ตุลาคม เพจที่ 220-225

Jennings, Rogerการใช้การเข้าถึง 1.1 สำหรับ Windows. Que Corporation, 1993 กรกฎาคม เพจที่ 799-800

คุณสมบัติ

หมายเลขบทความ (Article ID): 209534 - รีวิวครั้งสุดท้าย: 17 กันยายน 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Access 2000 Standard Edition
Keywords: 
kbdatabase kbdesign kbinfo kbusage kbmt KB209534 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:209534

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com