Transcript
  • 3. แบบจําลองอ-ีอาร (E-R Model)

    แบบจําลองอี-อาร (Entity-Relationship Model: E-R Model) เปนแบบจําลองขอมูล ที่ประยุกตมา

    จากแนวคิดเรื่อง Semantic Model และมีการพัฒนามาเปน E-R Model โดย Peter Pin Shan Chen จาก

    Massachusetts Institute of Technology ในป ค.ศ. 1976 และไดรับความนยิมมาจนถึงปจจุบัน

    3.1 ความหมายและความสําคัญของแบบจําลองอ-ีอาร

    แบบจําลองอ-ีอาร เปนเครื่องมอืที่ใชในการออกแบบฐานขอมูล ที่แสดงความสัมพันธระหวางเอนทิตี้

    หรือสิ่งที่เราตองการจะจัดเก็บไวในฐานขอมูล โดยนําเสนอในรูปแบบของแผนภาพที่เรียกวา อี-อาร

    ไดอะแกรม (E-R Diagram) ดวยการใชสัญลักษณตางๆ

    แบบจําลองอี-อาร มีความสําคัญในการเปนสื่อกลางเพื่อสื่อสารกับบุคลากรตางๆ ที่เก่ียวของกับ

    ระบบฐานขอมูล ไมวาจะเปนในระดับผูบริหาร นักเขียนโปรแกรม และผูใชในระดับปฏิบัติการ เปนตน ทําให

    เขาใจระบบไดอยางถูกตองตรงกัน เนื่องจากมีการแสดงภาพรวม ของระบบในลักษณะของรูปภาพหรือ

    แผนภาพ ทําใหเขาใจงาย ดังนัน้ระบบที่ออกแบบมาจงึมคีวามถูกตองและเปนไปตามวัตถุประสงคขององคกร

    3.2 องคประกอบของแบบจําลองอ-ีอาร

    แบบจําลองอ-ีอาร ประกอบดวย เอนทติ ีแอตทริบวิต คีย และความสัมพันธ ดังรายละเอยีดตอไปนี้

    3.2.1 เอนทิต ี(Entity)

    เอนทติี (entity) คือ สิ่งตางๆ ที่ผูใชงานฐานขอมูลตองการจะจัดเก็บ ซึ่งมีลักษณะเปนคํานาม

    ทัง้รูปธรรมและนามธรรม เชน บุคคล สถานที่ วัตถุสิ่งของ และเหตุการณตางๆ เปนตน ตัวอยางของเอนทติใีน

    “ระบบการลงทะเบียนเรียนของนักศึกษา” ประกอบดวย รายวิชา นักศึกษา การลงทะเบียน ผลการเรียน

    ประจําภาคเรียน สาขาวชิา คณะ และหลักสูตร เปนตน

    เอนทิตีที่รวบรวมไดจากระบบสามารถแยกแยะและจัดเปนหมวดหมูไดตามชนิดของเอนทิต ี

    ไดดังตอไปนี้

    - หมวดบุคคล ไดแก เอนทติ ี→ นักศกึษา พนักงาน ประชาชน ผูปวย และลูกคา เปนตน - หมวดสถานที ่ไดแก เอนทติ ี→ รัฐ ประเทศ จังหวัด ภาค สาขา และวทิยาเขต เปนตน - หมวดวัตถุ ไดแก เอนทิตี → อาคาร เครื่องจักร ผลผลิต หนังสือ วัตถุดิบ และรถยนต เปนตน

    - หมวดเหตุการณ ไดแก เอนทิตี → การขาย การลงทะเบียน การเดินทาง การสั่งซื้อของ การออกใบเสร็จรับเงนิ และการใหรางวัล เปนตน

    ในอี-อารไดอะแกรม ใชสัญลักษณรูปสี่เหลี่ยมผืนผา แทนหนึ่งเอนทิตี โดยใชชื่อของเอนทิตีนั้นๆ

    กํากับอยูภายใน เชน

    แทน เอนทติ ี“นักศกึษา”

    นกัศกึษา

  • 3.2.2 แอตทรบิวิต (Attribute)

    แอตทริบิวต (attribute) คือ คุณสมบัติตางๆ ของเอนทิตีที่เราตองการจัดเก็บในฐานขอมูล

    ตัวอยางเชน

    - เอนทติบีัตรประชาชน ประกอบดวยแอตทริบิวต หรือสิ่งที่บงบอกคุณสมบัติของประชาชน

    แตละคน ไดแก หมายเลขบัตรประชาชน ชื่อ นามสกุล วันเดือนปเกิด ภูมิลําเนา วันที่ออกบัตร วันที่บัตร

    หมดอาย ุสวนสูง นาหนัก และกรุปเลอืด เปนตน

    - เอนทิตีพนักงาน ประกอบดวยแอตทริบิวต ไดแก รหัสพนักงาน ชื่อ นามสกุล ที่อยู เบอร

    โทรศัพท สถานรูปสมรส และเงนิเดอืน เปนตน

    - เอนทติสีนิคา ประกอบดวยแอตทริบวิต ไดแก รหัสสนิคา ชื่อสนิคา ราคา และจํานวน เปน

    ตน

    - เอนทิตีนักศึกษา ประกอบดวยแอตทริบิวต ไดแก รหัสนักศึกษา ชื่อ นามสกุล เพศ วัน

    เดอืนปเกิด ที่อยู และเบอรโทรศัพท เปนตน

    - เอนทติวีชิา ประกอบดวยแอตทริบวิต ไดแก รหัสวชิา ชื่อวชิา และจํานวนหนวยกิต เปนตน คาของขอมูลในแตละแอตทริบวิตประกอบกัน เรียกวา ทูเพลิ (tuple) ซึ่งเปนแถวของขอมูลในตาราง

    โดยแตละแถวหรอืแตละทูเพลิจะประกอบดวยหลายแอตทริบวิตหรอืหลายคอลัมนของขอมูล จํานวนแถวของ

    ขอมูลในตารางเรียกวา Cardinality และจํานวน แอตทริบิวตทั้งหมดในตารางเรียกวา Degree อยางเชน

    จากรูปที่ 5.2 ม ี4 Cardinality 5 Degree

    รูปท่ี 5.2 ตัวอยางแอตทริบวิต ทูเพลิ และเอนทตินีักศกึษา

    ในอี-อารไดอะแกรม ใชสัญลักษณรูปวงรี แทนหนึ่งแอตทริบิวต โดยใชชื่อของ แอตทริบิวตนั้นๆ

    กํากับอยูภายใน เชน

    แทน แอตทริบวิตของ “ชื่อ”

    ช่ือ

  • 3.2.3 คยี (Key)

    คีย (key) คือ แอตทริบิวตที่สามารถใชบงบอกความแตกตางของแตละทูเพิลได อาจเปนแอตทริบิวต

    เดี่ยวๆ หรอื กลุมของแอตทริบวิตก็ได

    ประเภทของคยีประกอบดวย

    1) ซุปเปอรคีย (super key) คือ แอตทริบิวตหรือกลุมของแอตทริบิวต ที่สามารถบงบอก

    ความแตกตางของแตละทูเพลิได

    ตารางท่ี 5.1 ขอมูลในเอนทิตนีักศกึษา

    รหัสนักศกึษา ชื่อ นามสกุล เลขท่ีบัตรประชาชน

    5620249001 สามารถ ประเสริฐกุล 31201000475991

    5620249002 วชิา ปญญาเลศิ 31201000475992

    5620249003 น้ําทพิย วเิศษศริิ 31201000475993

    จากตารางที ่5.1 ประกอบไปดวยซุปเปอรคียดงัตอไปนี้

    - รหัสนักศกึษา

    - รหัสนักศกึษา, ช่ือ

    - รหัสนักศกึษา, ช่ือ, นามสกุล

    - เลขที่บัตรประชาชน

    2) คยีคูแขง (candidate key) คอื ซุปเปอรคียที่นอยทีสุ่ด ที่สามารถบงบอกความแตกตาง

    ของแตละทูเพลิได

    จากตารางที ่5.1 ประกอบไปดวยคียคูแขงดงัตอไปนี้

    – รหัสนักศกึษา

    – เลขที่บัตรประชาชน

    3) คยีหลัก (primary key) คอื คียคูแขงที่ถูกเลอืก เพื่อใชบงบอกความแตกตางของ แตละ

    ทูเพิล จากตารางที่ 5.1 คียหลัก คือ รหัสนักศึกษา หรือเลขที่บัตรประชาชน อยางใดอยางหนึ่ง คียหลักอาจ

    เปนแคหนึ่งแอตทริบิวตหรือกลุมของแอตทริบิวตก็ได อยางเชน ในตารางที่ 5.1 มีแอตทริบิวตเดียวที่เปนคีย

    หลัก ซึ่งอาจจะเปน “รหัสนักศกึษา” หรอื “เลขที่บัตรประชาชน” ก็ได แตขอมูลบางตารางอาจตองอาศัย

    แอตทริบิวตตั้งแต 2 ตัวขึ้นไปมาประกอบกันเปนคียหลัก เพื่อใหเกิดความแตกตางระหวางทูเพิล ดังเชนใน

    ตารางที่ 5.2

    ตารางท่ี 5.2 ขอมูลในเอนทติกีารลงทะเบยีนเรียนของนักศกึษา ปการศกึษา 1/56

    รหัสนักศกึษา ชื่อ รหัสวชิา ชื่อวชิา ปการศกึษา

    5820248001 ปรีชา 1111 คอมพวิเตอร 1/56

    5820248001 ปรีชา 2222 ภาษาไทย 1/56

    5820248002 เกียงไกร 1111 คอมพวิเตอร 1/56

    5820248003 ฉัตรชัย 3333 ภาษาองักฤษ 1/56

  • จากตารางที่ 5.2 ไมสามารถใหแอตทริบิวตรหัสนักศึกษา เปนคียหลักเพียงแอตทริบิวตเดียวได

    เพราะจะเห็นวา รหัสนักศกึษา 5620248001 ของทูเพลิหรอืแถวที่ 1 จะไปซ้ํากับแถวที่ 2 แตถาใหแอตทริบิวต

    “รหัสนักศกึษา” และ “รหัสวิชา” เปนคียหลัก แลวพิจารณาขอมูลของ 2 แอตทริบิวตนี้ จะเห็นวาขอมูลไมซ้ํา

    กันแลว ดังนั้นตารางที่ 5.2 จึงมีคียหลักซึ่งประกอบดวยแอตทริบิวต 2 ตัวประกอบกัน คือ “รหัสนักศึกษา”

    และ “รหัสวชิา”

    - คียหลักจะเปนคาวาง (null) ไมได เพราะฉะนัน้ในการกรอกขอมูลตางๆ ลงในตาราง แอตทริบิวตใดที่เรากําหนดใหเปนคียหลักตองกรอกขอมูลใหครบ คือ จะไมมีคาไมได แตแอตทริบิวตอื่น

    อาจจะปลอยเวนวางไวก็ไดถาไมทราบคา

    4) คียนอก (foreign key) คือ แอตทริบิวตที่ใชในการเชื่อมตอกับเอนทิตี อื่นๆ เพื่อแสดง

    ความสัมพันธ

    คุณสมบัตขิองคยีนอก คอื

    - คียนอกสามารถมคีาซ้ํากันได

    - คียนอกสามารถเปนคาวางได

    - คียนอกที่ไมเปนคาวางจะเปนคาที่ช้ีไปยังคียหลักของเอนทติทีี่สัมพันธกัน

    รูปท่ี 5.3 แอตทริบวิตที่เปนคียรองที่ใชในการเชื่อมตอกับเอนทติอีืน่

    5) คียรอง (secondary key) คือ แอตทริบิวตท่ีไมเปนคียหลัก แตสามารถใชในการคนหา

    ขอมูลนั้นๆ ได โดยคียรองจะมีคาซํ้ากันได ตัวอยางเชน ในตารางท่ี 5.3 มีรหัสนักศึกษาเปนคียหลัก แตหาก

    ตองการคนหาขอมูลจากชื่อนักศึกษา แอตทริบิวต “ช่ือ” ก็จะเปน คียรอง หรือถาตองการคนหาขอมูลจาก

    นามสกุลนักศึกษา แอตทริบิวต “นามสกุล” ก็จะเปน คียรอง เปนตน

  • ตารางท่ี 5.3 คียรองท่ีใชในการคนหาขอมูล

    รหัสนักศึกษา ช่ือ นามสกุล เบอรโทรศัพท

    58111 สามารถ ประเสริฐกุล 08-111-1111

    58112 วิชา ปญญาเลิศ 08-222-2222

    58113 น้ําทิพย วิเศษศิริ 08-333-3333

    58114 สมจิตร สมสกุลวงค 08-444-4444

    58115 วิชา รักศักดิ์ศรี 08-555-5555

    3.2.4 ความสัมพันธ

    ความสัมพันธ (relationship) เปนการอธิบายความสัมพันธระหวางเอนทิตีท่ีมีความสัมพันธกัน วามี

    ความสัมพันธกันอยางไร โดยในอี-อารไดอะแกรมใชสัญลักษณรูป”ส่ีเหล่ียมขาวหลามตัด” ท่ีมีชื่อของ

    ความสัมพันธนั้นกํากับอยูภายใน และเชื่อมตอกับเอนทิตีท่ีเก่ียวของกับความสัมพันธดวยเสนตรง ดังตัวอยาง

    ดานลาง

    รูปท่ี 5.4 ตัวอยางความสัมพันธระหวางเอนทติ ี

    ความสัมพันธระหวางเอนทิตีแบงเปน 3 ประเภท คือ ความสัมพันธแบบหนึ่งตอหนึ่ง

    ความสัมพันธแบบหนึ่งตอกลุม และความสัมพันธแบบกลุมตอกลุม ดังรายละเอยีดตอไปนี้

    1) ความสัมพันธแบบหนึ่งตอหนึ่ง (one to one relationship หรือ 1:1) หมายถึง ขอมูล

    ในเอนทติหีนึ่ง มคีวามสัมพันธกับขอมูลในอกีหนึ่งเอนทติเีพยีงขอมูลเดยีว ตัวอยางเชน นักศึกษาแตละคนจะมี

    สูตบิัตรไดเพยีงใบเดยีวเทานัน้ และสูตบิัตรหนึ่งใบก็เปนของนักศกึษาไดเพยีงคนเดยีวเทานัน้เชนกัน

    รูปท่ี 5.5 ความสมัพันธของขอมูลแบบหนึ่งตอหนึ่ง

    ในการพิจารณาความสัมพันธระหวางเอนทิตีแบบหนึ่งตอหนึ่ง ตองมองสองทิศ คือ มองจากซายไป

    ขวา และก็ตองมองจากขวาไปซาย แลวจงึนําความสัมพันธทัง้สองทศิ มาพจิารณารวมกัน ดังรูปที่ 5.6

  • รูปท่ี 5.6 วธิกีารพจิารณาความสมัพันธแบบหนึ่งตอหนึ่ง

    2) ความสัมพันธแบบหนึ่งตอกลุม (one to many relationship หรือ 1:M) หมายถึง

    ขอมูลในเอนทติหีนึ่ง มคีวามสัมพันธกับขอมูลในอกีหนึ่งเอนทติมีากกวาหนึ่งขอมูล ตัวอยางเชน ลูกคาหนึ่งคน

    มีใบเสร็จไดหลายใบ เนื่องจากลูกคาหนึ่งคนอาจมาซื้อสินคาหลายคร้ัง แตใบเสร็จหนึ่งใบตองเปนของลูกคา

    เพยีงคนเดยีวเทานัน้

    รูปท่ี 5.7 ความสมัพันธของขอมูลแบบหนึ่งตอกลุม

    ในการพิจารณาความสัมพันธระหวางเอนทิตีแบบหนึ่งตอกลุม ตองมองสองทิศ คือ มองจากซายไป

    ขวา และก็ตองมองจากขวาไปซาย แลวจงึนําความสัมพันธทัง้สองทศิ มาพจิารณารวมกัน ดังรูปที่ 5.8

    รูปท่ี 5.8 วธิกีารพจิารณาความสมัพันธแบบหนึ่งตอกลุม

    3) ความสัมพันธแบบกลุมตอกลุม (many to many relationship หรอื M:M) หมายถึง

    ขอมูลมากกวาหนึ่งขอมูลในเอนทิตีหนึ่ง มีความสัมพันธกับขอมูลในอีกหนึ่งเอนทิตีมากกวาหนึ่งขอมูล

    ตัวอยางเชน นักศึกษาหนึ่งคนสามารถลงทะเบียนเรียนไดหลายวิชา และวิชาแตละวิชามีนักศึกษาลงทะเบียน

    เรยีนไดหลายคน

    รูปท่ี 5.9 ความสัมพันธของขอมูลแบบกลุมตอกลุม

  • ในการพจิารณาความสัมพันธระหวางเอนทิตีแบบกลุมตอกลุม ตองมองสองทิศ คือ มองจากซายไป

    ขวา และก็ตองมองจากขวาไปซาย แลวจงึนําความสัมพันธทัง้สองทศิ มาพจิารณารวมกัน ดังรูปที่ 5.10

    รูปท่ี 5.10 วธิกีารพจิารณาความสมัพันธแบบกลุมตอกลุม

    สัญลักษณในแบบจําลองอ-ีอาร

    ตารางท่ี 5.4 สัญลักษณที่สําคัญๆ ในแบบจําลองอ-ีอาร

    ตัวอยาง

    นักศึกษา และ วิชา เปนเอนทิตีที่เราสนใจจะจัดเก็บ ซึ่งเอนทิตีนักศึกษาจะประกอบดวยแอตทริบิวต

    ไดแก รหัสนักศึกษา ช่ือนักศึกษา นามสกุล และเบอรโทรศัพท เปนตน โดยมีรหัสนักศึกษาเปนคียหลัก สวน

    เอนทิตีวิชาจะประกอบดวยแอตทริบิวต ไดแก รหัสวิชา ชื่อวิชา และจํานวนหนวยกิต เปนตน โดยมีรหัสวิชา

    เปนคียหลัก ซึ่งความสัมพันธระหวางเอนทตินีักศกึษาและเอนทติวีชิา เปนแบบกลุมตอกลุม คือ นักศึกษาหนึ่ง

    คนสามารถลงทะเบยีนเรียนไดหลายวิชา และวิชาแตละวิชามีนักศึกษาลงทะเบียนเรียนไดหลายคน ดังนั้นเรา

    สามารถนําเสนอในรูปของของแผนรูป ที่เรียกวา อี-อารไดอะแกรม (E-R Diagram) ดวยการใชสัญลักษณ

    ตางๆ ดังนี้

  • รูปท่ี 5.11 ตัวอยางของ อ-ีอารไดอะแกรม (E-R Diagram)

    3.3 การแปลงแบบจําลองอ-ีอารเปนโครงสรางตารางฐานขอมูล

    ขัน้ตอนในการแปลงแบบจําลองอ-ีอารเปนโครงสรางของตารางในฐานขอมลู มขัีน้ตอนดงัตอไปนี้

    3.3.1 แปลงเอนทิตปีกตใินแบบจําลองอ-ีอารเปน 1 ตาราง ซึ่งประกอบดวยแอตทริบิวต

    ของเอนทิตีนั้นๆ โดยช่ือของตารางก็คือช่ือของเอนทิตี และแอตทริบิวตของเอนทิตี ก็คือ แอตทริบิวตของ

    ตาราง สําหรับแอตทริบิวตที่เปนคียหลักของตาราง ใหขีดเสนใตที่แอตทริบิวตนั้น เชนเดียวกับในแบบจําลอง

    อ-ีอาร ซึ่งจากรูปที่ 5.11 นํามาแปลงเปนตารางได 2 ตาราง คอื

    รูปท่ี 5.12 โครงสรางของตารางในฐานขอมลูจากการแปลงเอนทติปีกตใินแบบจําลองอ-ีอาร

    3.3.2 แปลงความสัมพนัธเปนตาราง

    1) แปลงความสัมพันธแบบ 1 : M นั้นไมตองสรางตารางใหม แตใหนํา แอตทริบิวต ที่

    เปนคียหลักของเอนทติทีี่อยูดานความสัมพันธที่เปน 1 ไปเพิ่มเปนแอตทริบิวตของตารางดานที่มีความสัมพันธ

    เปน M

    2) แปลงความสัมพันธแบบ M : M จะไดตารางใหม 1 ตาราง ซึ่งประกอบดวย

    แอตทรบิวิตของความสัมพันธนัน้รวมกับแอตทริบวิตที่เปนคียหลักของ 2 เอนทติทีี่มคีวามสัมพันธ แบบ M : M

  • จากแบบจําลองอี-อารในรูปที่ 5.11 สามารถสรางตารางตามขั้นตอนนี้ไดอีก 1 ตาราง คือ ตารางการ

    ลงทะเบียน ซึ่งประกอบดวยแอตทริบิวต รหัสนักศึกษา (คียหลักของ เอนทิตี นักศึกษา) และ รหัสวิชา (คีย

    หลักของเอนทิตีวิชา) ฉะนั้นตารางใหมที่เกิดขึ้น ซึ่งก็คือ ตารางการลงทะเบียน มี รหัสนักศึกษาและรหัสวิชา

    เปนคียหลัก ดังนี้

    รูปท่ี 5.13 โครงสรางของตารางที่ไดจากการแปลงความสมัพันธแบบ M:M

    จากการแปลงแบบจําลองอ-ีอารตามขัน้ตอนขางตน สรุปตารางทีไ่ดทัง้หมด 3 ตาราง ดังตอไปนี้

    รูปท่ี 5.14 โครงสรางฐานขอมูลการลงทะเบยีนเรียนของนกัศกึษา

    ทั้งนี้โครงสรางฐานขอมูลที่ไดจากการแปลงแบบจําลองอี-อารนั้นจะอยูใน 1NF ดังนั้นจึงจําเปนตอง

    นํามาทํานอรมัลไลเซชันตอ เพื่อใหไดฐานขอมลูที่ปราศจากความซ้ําซอนหรอืซ้ําซอนนอยที่สุด แตถาไดทําการ

    ออกแบบฐานขอมูลโดยการใชแบบจําลองอี-อาร มาอยางถูกตองแลว เมื่อแปลงเปนโครงสรางฐานขอมูลแบบ

    สัมพันธ จะไดโครงสรางความสัมพันธที่จัดกลุมของแอตทริบิวตมาเปนอยางดี และบางทีโครงสรางของ

    ความสัมพันธที่ไดนั้นอาจอยูในนอรมัลฟอรมที่สูงกวานอรมัลฟอรมที่ 1 แลว อยางไรก็ตามขั้นตอนถัดมา

    จําเปนตองวเิคราะหความสัมพันธระหวางแอตทริบวิต ซึ่งก็คอื วธินีอรมัลไลเซชันที่จะกลาวตอไป

  • 3.4 การจัดระบบขอมูลในรูปแบบบรรทัดฐาน (Normalization)

    การเก็บรวบรวมขอมูลที่ไดจากการศกึษาของระบบงานเดิมจะอยูในรูปแบบของเอกสารหรือรายงาน

    ตางๆซึ่งจะมีรูปแบบที่ซับซอนเนื่องจากมีการเก็บรายละเอียดของขอมูลทุกอยางไวดวยกันหมด ทฤษฏีหนึ่งที่

    ผูออกแบบฐานขอมูลจะตองนํามาใชในการแปลงขอมูลที่อยูในรูปแบบที่ซับซอนใหอยูในรูปแบบที่งายตอการ

    นําไปใชและกอใหเกิดปญหานอยที่สุด ไดแก ทฤษฏีเก่ียวกับเรื่อง “กระบวนการนอรมัลไลเซชัน” หรือ

    กระบวนการจัดระบบขอมูลในรูปแบบบรรทัดฐาน ซึ่งเปนเครื่องมือที่ชวยในการออกแบบฐานขอมูลแบบเชิง

    สัมพันธ การออกแบบจะตองผานกระบวนการจัดระบบขอมูลในรูปแบบบรรทัดฐาน เพื่อขจัดกลุมขอมูลที่ซ้ํา

    กันในรีเลช่ันออกไป และสรางรีเลช่ันรูปแบบใหมซึ่งจะเปนการแตกรีเลช่ันออกเปนรีเลช่ันยอยหลายรีเลช่ัน เพื่อ

    แกไขปญหาฐานขอมูล จัดการกับขอมูลไดงาย สามารถเพิ่ม ลบ และเปลี่ยนแปลงขอมูลไดโดยไมกอใหเกิด

    ปญหา ฐานขอมูลที่ดตีองสามารถจัดการขอมูลไดอยางมปีระสทิธภิาพ

    3.4.1 แนวคดิเกี่ยวกับนอรมัลไลเซชัน

    กิตติ ภักดีวัฒนะกุล และจําลอง ครูอุตสาหะ (2544 หนา 133) ใหความหมายวา นอร

    มัลไลเซชัน คือวธิกีารที่ใชในการตรวจสอบและแกไขปญหาเก่ียวกับความซ้ําซอนของขอมูล โดยดําเนินการให

    ขอมูล ในแตละรีเลช่ัน (relation) อยูในรูปที่เปนหนวยที่เล็กที่สุดที่ไมสามารถแตกออกเปนหนวยยอยๆ ไดอีก

    โดยยังคงความสัมพันธระหวางขอมูลในรีเลช่ันตางๆ ไวตามหลักการที่กําหนดไวใน relational model การทํา

    นอรมัลไลเซชันนี้ เปนการดําเนินการอยาง เปนลําดับ ที่กําหนดไวดวยกันเปนขั้นตอน ตามปญหาที่เกิดขึ้นใน

    ขัน้ตอนนัน้ๆ ซึ่งแตละขัน้ตอน จะมช่ืีอตามโครงสรางขอมูลที่กําหนดไวดังนี้

    1. First Normal Form (1NF)

    2. Second Normal Form (2NF)

    3. Third Normal Form (3NF)

    4. Boyce-Codd Normal Form (BCNF)

    5. Fourth Normal Form (4NF)

    6. Fifth Normal Form (5NF)

    ในการออกแบบฐานขอมูลเพื่อลดความซ้ําซอนในการจัดเก็บขอมูลอยางนอยตองมี

    คุณสมบัติเปน 3NF เพราะจริงๆ แลว ในการทํางานทั่วๆ ไป แค 3 NF ก็สามารถใชงานไดแลว แตสําหรับ

    BCNF ไปจนถึง 5NF เปนฐานขอมูลชนดิพเิศษจริงๆ ที่แทบจะไมมใีนชีวติประจําวัน โอกาสพบประมาณ 0.01 %

    ดังนัน้ในที่นี้จะศกึษาเพยีงแค 1NF 2NF และ 3NF เทานัน้ เพื่อใชเปนแนวทางในการศกึษาระดับอื่นตอไป

    ในแตละขัน้ตอนของการทํานอรมอไลเซชัน จะมกีาระบุรูปแบบของโครวงสรางขอมูลเรียกวา

    นอรมัลฟอรม (Normal Form) ซึ่งโครงสรางนี้สามารถแกไขปญหาที่เกิดขึ้นในโครงสรางขอมูลของขั้นตอนกอน

    หนานัน้ได นัน้คอื การทํานอรมอไลเซชันแตละขัน้ตอนตองอาศัยผลที่ไดจากการจัดระบบขอมูลในนอรมอไลเซ

    ชันกอนหนา มาปรับปรุงเพื่อใหมโีครงสรางเปนไปตามโครงสรางที่กําหนดไวในขันตอนนัน้ๆ

    หากการออกแบบขอมูลมปีญหาในการจัดดาํเนนิการขอมลู การทําใหขอมูลอยูในการทํานอร

    มอฟอรม (Normal Form) จะทําการแยกรีเลช่ันเดิมเปนรัเลช่ันยอย โดยการแยกรีเลช่ันจะตองคงไวซึ่ง

    คุณสมบัต ิ2 ประการคือ

  • ประการที่ 1 ตองไมมขีอมูลที่ไมเหมอืนเดมิเกิดขึ้น หรอืมขีอมูลใหมเกิดขึ้นจากการเชื่อมโยงขอมูล

    ประการที่ 2 หากมีการแยกรีเลช่ันยอย ยังคงรักษาไวซึ่งขอกําหนดเดิมไวใหไดมากที่สุดและเปน

    ประโยชนตอการใชงาน

    3.4.2 รูปแบบรูปแบบบรรทัดฐาน (Normal Form: NF)

    1) รูปแบบบรรทัดฐานระดับท่ี 1 (First Normal Form: 1NF)

    รูปแบบบรรทัดฐานระดับที่ 1 หรือ First Normal Form เปนการปรับบรรทัดฐานระดับแรกสุด

    จะเปนกระบวนการในการปรับตารางขอมูลของผูใชงานใหอยูในรูปแบบบรรทัดฐานระดับที่ 1 ซึ่งรีเลช่ัน ใดๆ

    จะอยูในรูปแบบบรรทัดฐานระดับที่ 1 ก็ตอเมื่อ คาของแอททริบิวตตางๆ ในแตละทูเพิลจะตองมีคาของขอมูล

    เพยีงคาเดยีว และตองมคุีณสมบัตดิังนี้

    หลักการแปลงเปน 1NF

    (1) หากพบวามกีลุมขอมูลซ้ํา ใหแยกขอมูลออกใหเปนเอกเทศเปนแตละคอลัมน หมายความ

    วาขอมูลที่เก็บในแตละคอลัมนจะตองมลีักษณะเปนคาเดยีว (single valued) ไมสามารถแบงยอยไดอกี

    (2) กําหนดคียหลัก (Primary key) ใหกับรีเลช่ัน (Relation)

    ในการทํานอรมัลไลเซชันจะตองดูขอมูลในตารางเปนหลัก ตัวอยางเชน ขอมูลในตารางที่ 5.5 แสดง

    การเก็บขอมูลเก่ียวกับการสั่งสนิคา ซึ่งแตละรหัสการสั่งสามารถสั่งสนิคาไดมากกวา 1 อยาง

    ตารางท่ี 5.5 แสดงรีเลช่ันที่อยูในรูปแบบไมเปนบรรทัดฐาน (Un-Normal Form: UNF)

    รหัสการส่ัง วันท่ีส่ัง รหัสสนิคา ชื่อสนิคา จํานวนท่ีส่ัง ราคาสนิคา

    OR58001 02/02/58 5811101 กระดาษ 8 2800

    OR58002 02/02/58 5811102

    5811103

    ดนิสอ

    ปากกา

    12

    24

    250

    500

    OR58003 04/03/58 5811104 แฟม 6 300

    OR58004 04/03/58 5811105 หมกึพมิพ 1 3200

    OR58005 05/03/58 5811101

    5811102

    กระดาษ

    ดนิสอ

    4

    12

    1400

    250

    OR58006 05/03/58 5811103 ปากกา 12 250

    OR58007 05/03/58 5811104 แฟม 12 600

    จากตารางที่ 5.5 จะเห็นวาขอมูลในคอลัมนรหัสสินคา ช่ือสินคา จํานวนที่สั่งและราคาสินคามีคา

    มากกวา 1 คา แสดงวาไมเปน atomic หรืออยูในรูปของ repeating group ดังนั้นตารางที่ 5.5 จึงไมเปน 1NF

    โดยเราจะเรยีกตารางที่ยังไมผานแมแต 1NF วา Un-normalized Form (UNF)

    ตารางที่เปน 1NF นั้นทุกๆคาของแตละคอลัมนจะตองเปน Atomic นั้นคอืจะตองไมมีคอลัมนใดที่มีขอมูล

    มากกวา1 คา (จะตองไมมี Repeation Groups)

  • จากตารางที ่5.5 ที่ไมมคุีณสมบัตเิปน 1NF สามารถทําใหมคุีณสมบัตเิปน 1NF ไดดังตารางที ่5.6 ซึ่ง

    มรีหัสการสัง่ และรหสัสนิคา เปนคียหลัก

    ตารางท่ี 5.6 ขอมลูนักศกึษาที่ผานการทํารูปแบบบรรทัดฐานระดับที ่1 ( First Normal Form: 1NF)

    รหัสการส่ัง วันท่ีส่ัง รหัสสนิคา ชื่อสนิคา จํานวนท่ีส่ัง ราคาสนิคา

    OR58001 02/02/58 5811101 กระดาษ 8 400

    OR58002 02/02/58 5811102 ดนิสอ 12 25

    OR58002 02/02/58 5811103 ปากกา 24 25

    OR58003 04/03/58 5811104 แฟม 6 30

    OR58004 04/03/58 5811105 หมกึพมิพ 1 3200

    OR58005 05/03/58 5811101 กระดาษ 4 400

    OR58005 05/03/58 5811102 ดนิสอ 12 25

    OR58006 05/03/58 5811103 ปากกา 12 25

    OR58007 05/03/58 5811104 แฟม 12 30

    ถึงแมวาตารางที่ 5.6 จะไดรับการออกแบบใหอยูในรูป 1NF แลว แตลักษณะของขอมูลภายในอาจ

    กอใหเกิดปญหาขึ้นไดอีก เชน ขอมูลที่เก่ียวกับขอมูลสั่งชื้อ รหัส OR58002 ถูกจัดเก็บไวในแถวที่ 2 และ 3

    ไดแก วันที่ และรหัสสินคา โดยจะเห็นวาเปนการเก็บขอมูลที่ซ้ําซอนกัน ทําใหสิ้นเปลืองเนื้อที่ในการจัดเก็บ

    และกอใหเกิดปญหาในการเปลี่ยนแปลงขอมูลดวย เชน ถารหัสสินคา 5811101 มีการเปลี่ยนช่ือ หรือราคา ก็

    ตองทําการแกไขขอมูลหลายแถว ซึ่งถามีการแกไขขอมูลไมครบ ก็อาจทําใหขอมูลภายในตารางเกิดความ

    ขัดแยงกันได ดังนัน้จงึตองมกีารนอรมัลไลเซชันระดับที่ 2 ตอไป

    2) รูปแบบบรรทัดฐานระดับท่ี 2 (Second Normal Form: 2NF)

    รีเลช่ันใดๆ จะอยูในรูปแบบบรรทัดฐานระดับที่ 2 ก็ตอเมื่อ รีเลช่ันนั้นๆ อยูในรูปแบบบรรทัด

    ฐานระดับที่ 1 และแอททริบวิตทุกตัวที่ไมไดเปนคียหลัก จะตองมคีวามสัมพันธระหวางคาของแอททริบวิตแบบ

    ฟงกช่ันกับคียหลัก (Fully Functional Dependency) ตัวอยางรีเลช่ัน นักศึกษา (รหัสนักศึกษา, ชื่อ, สกุล, เบอร

    โทรศัพท) จะเห็นวาเมื่อทราบคาแอททริบิวตรหัสนักศึกษาจะสามารถทราบคาของแอททริบิวตตัวอื่นๆ ได

    อยางสมบูรณตองมคุีณสมบัตดิังนี้

    หลักกการแปลงเปน 2NF

    (1) หากมรีีเลช่ันใดที่มีแอททริบิวตมีการขึ้นตอกันกับบางสวนของคียหลัก ใหตัดแอททริบิวตดังกลาว

    ออกไปไวในรเีลช่ันใหม และในรีเลช่ันเดมิใหคงแอททริบวิตที่ขึ้นกับทุกสวนของคียหลักไว

    1) ตองมีคุณสมบัติของรูปแบบบรรทัดฐานระดับที่ 1 หรอื 1NF

    2) ทุกๆคอลัมนทีไ่มใชคยี (non-key column) จะตองขึ้นกับ Primary key โดยสมบูรณ

    แมวา Primary key จะเปน Composite key ก็ตาม (จะตองไมเกิด Partial Dependency)

  • (2) สรางรีเลช่ันใหม โดยดึงแอททริบิวตที่ขึ้นกับบางสวนของคียหลัก และกําหนดคียหลักของรีเลช่ัน

    จากแอททริบวิตที่เปนสวนประกอบของรีเลช่ันที่แอททริบวิตเหลานี้ มฟีงกช่ันการขึ้นตอกัน

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

    แอตทริบวิตที่มากกวา 1 ตัวก็จะตองขึ้นอยูกับแอตทริบวิตทัง้หมดที่เปนคียหลัก ไมใชขึ้นอยูกับบางตัวการที่จะ

    รูวาแอตทริบิวตใดขึ้นอยูกับแอตทริบิวตใดนั้น ตองใชความรูในเรื่องฟงกชันการขึ้นตอกัน หรือ functional

    dependency ซึ่งเปนสิ่งที่ใชแสดงความสมัพันธระหวาง แอตทริบวิต ในรูปแบบฟงกชัน เพื่อชวยในการตัดสนิใจ

    วาแอตทริบิวตที่ไมใชคียหลักควรจะปรากฏเปนคอลัมนอยูในตารางหรือควรจะแยกออกมาสรางเปนตาราง

    ใหม

    สมมุติวา X และ Y เปนแอตทริบิวตในตารางหนึ่ง ถา Y ขึ้นอยูกับ X จะสามารถเขียนฟงกชันการขึ้น

    ตอกันไดดังนี้

    การที่ Y ขึ้นอยูกับ X หมายความวา ทุกๆคาของ X ที่เราเลือกขึ้นมา จะสามารถหาคาของ Y มา 1

    คาที่สอดคลองกับคาของ X ไดเสมอ เชน จากตารางที่ 5.7 เปนตารางที่เก็บขอมูลเก่ียวกับนักศกึษา ถาถามวา

    นักศกึษาคนใดที่มีรหัสนักศึกษาเปน 56111 ก็สามารถตอบไดทันทีวาคือ นักศึกษาที่ช่ือวา สามารถ ประเสริฐ

    กุล ดังนัน้ช่ือนักศกึษาจงึขึ้นอยูกับรหัสนักศกึษา ซึ่งเขยีนเปนฟงกชันการขึ้นตอกันไดวา รหัสนักศกึษา → ชื่อ นั่นเอง

    ตารางท่ี 5.7 ตารางนักศกึษา

    รหัสนักศกึษา (คยีหลัก) ชื่อ นามสกุล เบอรโทรศัพท

    56111 สามารถ ประเสริฐกุล 08-1111-1111

    56112 วชิา ปญญาเลศิ 08-2222-222

    56113 น้ําทพิย ปญญาเลศิ 08-3333-3333

    56114 สมจติร สมสกุลวงศ 08-4444-4444

    56115 วชิา รักศักดิ์ศรี 08-5555-5555

    จากตารางที่ 5.6 พบวาไดเกิดความซ้ําซอน เมื่อมีการสั่งซื้อสินคาชนิดเดียวกันขึ้น เชน มีการสั่งซื้อ

    สินคา 5811102 ซ้ํากันในแถวที่ 2 และ 7 เกิดความซ้ําซอนทําใหเปลืองเนื้อที่ และยังทําใหเกิดปญหา ซึ่ง

    สามารถแบงลักษณะของปญหาออกเปน 4 ประเภท ไดแก

    1) การแกไขขอมูล หากมกีารเปลี่ยนแปลงชื่อสินคาจากดินสอเปนสมุด เราตองแกไขในทุกๆ

    เรคอรดที่มรีายการดนิสอ ซึ่งการแกไขอาจไมครอบคลุมทุกเรคอรด

    2) ความขัดแยงของขอมูล เชน ถามีการแกไขรหัสสินคา และชื่อสินคา ก็ตองแกไขราคา

    สินคาดวย เพื่อใหราคาสินคาชนิดเดียวกันเทากัน เชน แถวที่ 2 ราคาสินคา 500 บาท ในขณะที่แถวที่ 7 มี

    ราคาสนิคา 25 บาท

    X→Y

  • 3) การเพิ่มเตมิขอมูล หากบริษัทเกิดตัดสนิใจนําสนิคาชนดิใหมเขามาขาย เชน คอมพิวเตอร

    จะตองรอใหมกีารสั่งซื้อจากลูกคาเสยีกอน จงึจะมรีายการของสนิคาใหมเกิดขึ้น ซึ่งผดิหลักการคา

    4) การลบขอมูล หากมลีูกคายกเลกิการสั่งรหัสการสั่ง OR58001 ซึ่งมผีลใหตองลบขอมูลใน

    แถวที่ 1 ออกไปจากตาราง ทําใหระบบสูญเสยีขอมูลของสนิคากระดาษไปดวย

    ทําใหเราตองทําการจัดขอมลูในรูปแบบบรรทัดฐานระดับที่ 2 โดยการสรางตาราง (รีเลช่ัน) ขึ้นมาใหม

    เพื่อแกปญหาที่เกิดขึ้นกับ 1NF

    การสั่งสนิคา (รหัสการสั่ง, วันที่สั่งสนิคา)

    สนิคา (รหัสสนิคา, ช่ือสนิคา, ราคา)

    บัญชีการสั่ง (รหัสการสั่ง, รหัสสนิคา, จํานวนที่สั่ง)

    ซึ่งเราอาจจะตัง้ช่ือตาราง (รีเลช่ัน) ทัง้ 3 นี้วา การสั่งสนิคา สนิคา และบัญชีการสั่ง แสดงดัง

    ตารางที่ 5.8 ตารางที่ 5.9 และตารางที่ 5.10

    ตารางท่ี 5.8 แสดงตารางการสั่งสนิคาที่อยูในรูปแบบบรรทัดฐานระดับที่ 2 (Second Normal Form: 2NF)

    รหัสการส่ัง วันท่ีส่ัง

    OR58001 02/02/58

    OR58002 02/02/58

    OR58003 04/03/58

    OR58004 04/03/58

    OR58005 05/03/58

    OR58006 05/03/58

    OR58007 05/03/58

    ตารางท่ี 5.9 แสดงตารางสนิคาที่อยูในรูปแบบบรรทัดฐานระดับที่ 2 (Second Normal Form: 2NF)

    รหัสสนิคา ชื่อสนิคา ราคาสนิคา

    5811101 กระดาษ 400

    5811102 ดนิสอ 25

    5811103 ปากกา 25

    5811104 แฟม 30

    5811105 หมกึพมิพ 3200

    5811106 ยางลบ 80

    5811107 กระดาษกาว 125

    5811108 ไมบรรทัด 50

    5811109 คลปิหนบี 130

  • ตารางท่ี 5.10 แสดงตารางบัญชีการสั่งอยูในรูปแบบบรรทัดฐานระดับที่ 2 (Second Normal Form: 2NF)

    รหัสการส่ัง ชื่อสนิคา จํานวนท่ีส่ัง

    OR58001 กระดาษ 8

    OR58002 ดนิสอ 12

    OR58002 ปากกา 24

    OR58003 แฟม 6

    OR58004 หมกึพมิพ 1

    OR58005 กระดาษ 4

    OR58005 ดนิสอ 12

    OR58006 ปากกา 12

    OR58007 แฟม 12

    จากตารางที่ 5.9 พบวาการแกไขขอมูลที่เคยเปนปญหาอยูจะไมเกิดขึ้นแลว เชน การเปลี่ยนช่ือของ

    5811102 จากดินสอเปนสมุดก็จะทําในตารางสินคาเพียงแถวเดียว ซึ่งไมทําใหเกิดความขัดแยงขึ้น สวนกรณี

    ของการสั่งกระดาษ ซึ่งมรีหัสการสั่ง OR58001 ในตาราง 5.10 เราก็เพยีงแตลบขอมูลแถวแรกออกจากตาราง

    บัญชีการสั่ง ซึ่งจะไมกระทบกระเทือนขอมูลเก่ียวกับ 5811101 เพราะยังเก็บอยูในตารางสินคาในรูปเดิม ไมมี

    การเปลี่ยนแปลง

    3) รูปแบบบรรทัดฐานระดับท่ี 3 (Third Normal Form: 3NF)

    รีเลช่ันใดๆ จะอยูในรูปแบบบรรทัดฐานระดับที่ 3 ก็ตอเมื่อ รีเลช่ันนั้นๆ อยูในรูปแบบบรรทัด

    ฐานระดับที่ 2 และแอททริบวิตที่ไมไดเปนคียหลักไมมคุีณสมบัตใินการกําหนดคาของแอททริบวิตอื่นที่ไมใชคีย

    หลัก (Transitive Dependency) แสดงดังตารางที่ 5.11 ตองมคุีณสมบัตดิังนี้

    หลักการแปลงใหเปน 3NF

    (1) หากในรีเลช่ันมีการขึ้นตอกันแบบทรานซิทีฟ ใหตัดเอาแอททริบิวตที่ขึ้นตอกันแบบทรานซิทีฟ

    ออกไปสรางรีเลช่ันใหม

    (2) สรางรีเลช่ันใหม โดยนําเอาแอททริบิวตที่ขึ้นตอกันแบบทรานซิทีฟจากรีเลช่ันเดิมมาและกําหนด

    คียหลักโดยเลอืกเอาแอททริบวิตที่สามารถกําหนดคาของแอททริบวิตอื่นๆ ได

    (3) ในรีเลช่ันเดิมใหคงแอททริบิวตที่สามารถเลือกคาแอททริบิวตที่ไมใชคียหลักไวเปนคียนอก

    (Foreign key) เพื่อใชในการเช่ือมโยงกับรีเลช่ันใหม

    ตารางที่เปน 3NF นั้นจะตองเปน 2NF

    และจะตองไมมีคอลัมนใดชึน้ตอคอลันมอ่ืนที่ไมใชคยีหลัก (Primary key)

  • ตารางท่ี 5.11 แสดงรเีลชั่นลูกคาท่ีมรูีปแบบบรรทัดฐานระดับท่ี 2 (2NF)

    รหัสลูกคา ชื่อลูกคา ท่ีอยู รหัสพนักงาน ชื่อพนักงาน

    C58124 เฉลยีว 18 สุขสวสัดิ ์ S553 วนิัย

    C58256 สุวด ี 22 สุขุมวทิ 9 S556 พรพรรณ

    C58311 ยงยุทธ 25/1 รามอนิทรา 21 S557 ประสทิธิ ์

    C58315 พชัิย 105 ลาดพราว 32 S556 พรพรรณ

    C58405 นันทวัน 172 สาธุประดษิฐ S557 ประสทิธิ ์

    C58255 ประมวล 21 เจริญกรุง S553 วนิัย

    C58522 มณรัีตน 56 ลาดพราว 120 S557 ประสทิธิ ์

    C58587 วัชระ 41 วทิย ุ S556 พรพรรณ

    C58622 มณรัีตน 258 พหลโยธนิ S553 วนิัย

    จากตารางที่ 5.11 มคีียประกอบดวยแอททริบิวตเพียงตัวเดียวคือ รหัสลูกคา ก็ยังมีปญหาเกิดขึ้นกับ

    ขอมูลถาเราเพิ่มเติมขอมูลของพนักงานขายเขาไป การซ้ําซอนในสวนของพนักงานขายเกิดขึ้นปญหาในการ

    แกไขขอมูลก็จะเกิดขึ้นตามมาเหมอืนเดมิ เชน

    1) การแกไขขอมูล ถามีการแกไขขอมูลเก่ียวกับพนักงานขาย เชน พนักงานขายหมายเลข S557 ทํา

    การเปลี่ยนช่ือจาก ประสทิธ เปนประจักษ จะยังผลใหตองทําการแกไขหลายแหง

    2) ความขัดแยงของขอมูล ผลสบืเนื่องมาจากการแกไขขอมูลที่ปรากฏหลายแหง อาจจะทําการแกไข

    ไมครบทุกแหงซึ่งเปนตนเหตุใหขอมูลแตละแหงมคีาไมตรงกัน

    3) การเพิ่มเติมขอมูล ถาบริษัทรับพนักงานขายเขามาใหมยกตัวอยาง ชื่อสมศรี ซึ่งไดรับรหัส

    หมายเลข S555 เราไมสามารถเพิ่มขอมูลของสมศรีเขาไปในระบบได เนื่องจากสมศรียังไมมลีูกคา

    4) การลบขอมูล ถาเราเกิดลบขอมูลเก่ียวกับลูกคาของพนักงานขายหมายเลข S557 ออกจากระบบ

    ก็จะยังผลใหขอมูลของพนักงานขายคนนี้จะหายไปดวยทัง้ๆ ที่เขายังคงทํางานอยูในบริษัท

    จากตารางที่ 5.11 การกําจัดขอมูลที่เกิดขึ้นจากทรานซทีฟีดเีพนเดนซ ีโดยการแยกขอมูลชื่อพนักงาน

    ขายจากรีเลขั่นลูกคาที่เปนทรานซีทีฟดีเพนเดนซีออกมาสรางเปนรีเลช่ันใหม ใหคงแอททริบิวตรหัสพนักงาน

    ขายที่จะทําหนาที่เปนคียนอก (Foreign Key) ไวในรีเลช่ันเดิม โดยตั้งชื่อรีเลช่ันใหมนี้วา พนักงานขาย

    กําหนดใหรหัสพนักงานขายเปนคียหลัก ซึ่งจะทําใหไดผลลัพธดังนี้

    ลูกคา (รหัสลูกคา, ช่ือลูกคา, ที่อยู, รหัสพนักงานขาย)

    พนักงานขาย (รหัสพนักงานขาย, ช่ือพนักงานขาย) การจัดเก็บขอมูล ดังแสดงในตารางที่ 5.11 จะเห็นไดวาขอมูลเก่ียวกับพนักงานขาย ถูกแยกออกมาอยู

    คนละรเีลช่ันจงึไมเกิดความซ้ําซอนแตอยางใดทําใหการเพิ่มเตมิขอมูลของพนักงานขายคนใหมสามารถกระทํา

    ไดโดยไมตองมลีูกคาเนื่องจากขอมูลถูกจัดเก็บแยกรีเลช่ันกัน นอกจากนั้นปญหาในการลบขอมูลของลูกคาก็

    จะไมเกิดขึ้นอกีตอไป เพราะกระทําเฉพาะรีเลช่ันลูกคาเทานัน้ แสดงดังตารางที ่5.12 และตารางที ่5.13

  • ตารางท่ี 5.12 แสดงรีเลช่ันลูกคาและรีเลช่ันพนักงานขายที่มรูีปแบบบรรทัดฐานระดับที่ 3 (3NF)

    รเีลชั่น “ลูกคา”

    รหัสลูกคา ชื่อลูกคา ท่ีอยู รหัสพนักงาน

    C58124 เฉลยีว 18 สุขสวสัดิ ์ S553

    C58256 สุวด ี 22 สุขุมวทิ 9 S556

    C58311 ยงยุทธ 25/1 รามอนิทรา 21 S557

    C58315 พชัิย 105 ลาดพราว 32 S556

    C58405 นันทวัน 172 สาธุประดษิฐ S557

    C58255 ประมวล 21 เจริญกรุง S553

    C58522 มณรัีตน 56 ลาดพราว 120 S557

    C58587 วัชระ 41 วทิย ุ S556

    C58622 มณรัีตน 258 พหลโยธนิ S553

    รเีลชั่น “พนักงานขาย”

    รหัสพนักงาน ชื่อพนักงาน

    S553 วนิัย

    S556 พรพรรณ

    S557 ประสทิธิ์

    4) รูปแบบบรรทัดฐานของบอยสและคอดด (Boyce/Codd Normal Form : BCNF)

    รีเลช่ันหนึ่งๆ จะอยูในรูปแบบบรรทัดฐานของบอยสและคอดดก็ตอเมื่อรีเลช่ันนั้นๆ อยูใน

    รูปแบบบรรทัดฐานระดับที่ 3 และไมมแีอททริบวิตอื่นในรีเลช่ันที่สามารถระบุคาของแอททริบิวตที่เปนคียหลัก

    หรอืสวนหนึ่งสวนใดของคียหลักในกรณทีี่คียหลักเปนคียผสม แสดงดังตารางที ่5.13

    ตารางท่ี 5.13 แสดงตัวอยางการจัดระบบขอมูลในรูปแบบบรรทัดฐานของบอยสและคอดด

    รเีลชั่น “ลูกคา”

    รหัสลูกคา รหัสประจําตัวประชาชน ชื่อลูกคา ท่ีอยู

    C58124 2900021854468 เฉลยีว 18 สุขสวัสด์ิ

    C58256 4351385359001 สุวดี 22 สุขุมวทิ 9

    C58311 3650008087302 ยงยุทธ 25/1 รามอนิทรา 21

    C58315 5400346134331 พชิัย 105 ลาดพราว 32

    C58405 3546421600164 นันทวัน 172 สาธุประดิษฐ

    C58255 5156135430043 ประมวล 21 เจรญิกรุง

  • สามารถเขยีนความสัมพันธไดดังนี้

    รหัสประจําตัวประชาชน ชื่อลูกคา ท่ีอยู

    2900021854468 เฉลยีว 18 สุขสวัสด์ิ

    4351385359001 สุวดี 22 สุขุมวทิ 9

    3650008087302 ยงยุทธ 25/1 รามอนิทรา 21

    5400346134331 พชิัย 105 ลาดพราว 32

    3546421600164 นันทวัน 172 สาธุประดิษฐ

    5156135430043 ประมวล 21 เจรญิกรุง

    รหัสลูกคา ชื่อลูกคา ท่ีอยู

    C58124 เฉลยีว 18 สุขสวัสด์ิ

    C58256 สุวดี 22 สุขุมวทิ 9

    C58311 ยงยุทธ 25/1 รามอนิทรา 21

    C58315 พชิัย 105 ลาดพราว 32

    C58405 นันทวัน 172 สาธุประดิษฐ

    C58255 ประมวล 21 เจรญิกรุง

    รหัสลูกคา รหัสประจําตัวประชาชน

    C58124 2900021854468

    C58256 4351385359001

    C58311 3650008087302

    C58315 5400346134331

    C58405 3546421600164

    C58255 5156135430043

    5) รูปแบบบรรทัดฐานระดับท่ี 4 (Fourth Normal Form : 4NF)

    รีเลช่ันหนึ่งๆ จะอยูในรูปแบบบรรทัดฐานระดับที่ 4 ก็ตอเมื่อ รีเลช่ันนั้นๆ อยูในรูปแบบBCNF

    และเปนรีเลช่ันที่ไมมีความสัมพันธในการระบุคาของแอททริบิวตแบบหลายคาโดยที่แอททริบิวตที่ถูกระบุคา

    หลายคาเหลานี้ไมมีความสัมพันธกันรีเลช่ันที่อยูในรูปแบบ BCNF จะอยูในรูปแบบบรรทัดฐานระดับที่ 3 แต

    รีเลช่ันที่อยูในรูปแบบบรรทัดฐานระดับที่ 3 ไมจําเปนจะตองอยูในรูปแบบ BCNF ดังนั้นรีเลช่ันที่ควรตองผาน

    การทําใหอยูในรูปแบบ BCNF จะตองมีลักษณะที่รีเลช่ันนั้นมีคียคูแขงหลายตัว โดยคียคูแขงเหลานั้นเปนคีย

    ผสมและมคีวามซ้ําซอนกัน

  • ตัวอยาง สนิคาชนดิหนึ่ง มผีูผลติหลายบริษัท ผูผลติแตละบริษัทมโีครงการผลิตหลายโครงการ และ

    มโีรงงานตัง้อยูหลายจังหวัด แสดงดังตารางที่ 5.14

    ตารางท่ี 5.14 แสดงการปรับใหเปน 1NF โดยใหทุกแอททริบวิตประกอบกันเปนคียหลัก

    รเีลชั่น “ผูผลติ” รเีลชั่น “ผูผลติ”

    รหัสผูผลติ รหัส

    โครงงาน

    จังหวัดท่ีตั้ง

    โรงงาน

    รหัสผูผลติ

    รหัส

    โครงงาน

    จังหวัดท่ีตั้ง

    โรงงาน

    P1 PJ001 กรุงเทพฯ P1 PJ001 กรุงเทพฯ

    PJ001 อยุธยา P1 PJ001 อยุธยา

    PJ002 กรุงเทพฯ P1 PJ002 กรุงเทพฯ

    PJ002 สมุทรปราการ P1 PJ002 สมุทรปราการ

    P2 PJ003 ระยอง P2 PJ003 ระยอง

    PJ003 ชลบุรี P2 PJ003 ชลบุรี

    PJ004 ระยอง P2 PJ004 ระยอง

    PJ004 ชลบุรี P2 PJ004 ชลบุรี

    PJ005 ระยอง P2 PJ005 ระยอง

    PJ005 ชลบุรี P2 PJ005 ชลบุรี

    จากตารางที่ 5.14 รีเลช่ันผูผลติประกอบดวยรหัสผูผลิต ซึ่งมีความสัมพันธแบบหนึ่งตอกลุมกับแอ-

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

    ททริบิวตประกอบกันเปนคียหลัก แตแอททริบิวตรหัสโครงการที่สั่งผลิตไมมีความสัมพันธกับจังหวัดที่ตั้ง

    โรงงานแตมาอยูในรีเลช่ันเดียวกันจึงกอใหเกิดความซ้ําซอนของขอมูลเกิดขึ้น เพราะจังหวัดที่ตั้งโรงงานอยูใน

    รีเลช่ันที่ซ้ํากัน ดังนั้นรีเลช่ันนี้จึงมีปญหาแฝงอยูแมวารีเลช่ันผูผลิตจะอยูในรูปแบบของ BCNF โดยมีแอททริ

    บวิตทุกแอททริบวิตประกอบกันเปนคียหลักก็ตาม

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

    เชน หากผูผลติรหัส P2 ยายโรงงานที่ตัง้อยูในจังหวัดระยองไปอยูจังหวัดอื่น ตองทําการแกไขขอมูลหลาย

    เรคอรด หรอืความผดิพลาดที่เกิดจากการเพิ่มขอมูลอาจจะทําไมได เชน การเก็บขอมูลชื่อจังหวัดที่ตั้งโรงงาน

    ของผูผลิตรายใหมที่ยังไมเคยไดรับงานโครงการใดเลยจะทําไมได เปนตนการแกไขปญหาทําไดโดยการแตก

    รีเลช่ัน ผูผลติ ออกเปนสองรีเลช่ัน แสดงดังตารางที่ 5.15

    โครงการผลติ (รหัสผูผลติ, รหัสโครงการที่สั่งผลติ)

    โรงงานผลติ (รหัสผูผลติ, จังหวัดที่ตัง้โรงงาน)

  • ตารางท่ี 5.15 แสดงตัวอยางการจัดระบบขอมลูในรูปแบบบรรทัดฐานระดับที ่4

    รเีลชั่น “โครงการผลติ”

    รหัสผูผลติ รหัสโครงการ

    P1 PJ001

    P1 PJ002

    P2 PJ003

    P2 PJ004

    P2 PJ005

    รเีลชั่น “โรงงานผลติ”

    รหัสผูผลติ จังหวัดท่ีตั้งโรงงาน

    P1 กรุงเทพฯ

    P1 อยุธยา

    P1 สมุทรปราการ

    P2 ระยอง

    P2 ชลบุรี

    6) รูปแบบบรรทัดฐานระดับท่ี 5 (Fifth Normal Form : 5NF)

    รีเลช่ันหนึ่งๆ จะอยูในรูปแบบบรรทัดฐานระดับที ่5 หรอืที่เรียกวา Project-Join Normal Form

    (PJ/NF) ก็ตอเมื่อรีเลช่ันนัน้อยูในรูปแบบบรรทัดฐานระดับที ่4 และไมม ีSymmetric Constraint กลาวคอืหากมี

    การแตกรีเลช่ันออกเปนรีเลช่ันยอย (Projection) และเมื่อทาํการเชื่อมโยงรีเลช่ันยอยทัง้หมด (Join) จะไม

    กอใหเกิดขอมูลใหมทีไ่มเหมอืนรีเลช่ันเดมิ (Squrious Tuple)

    ตัวอยาง รีเลช่ันผูผลติ ประกอบดวยแอททริบวิต ช่ือผูผลติ ชื่อสนิคา และชื่อโครงการ

    โดยมแีอททริบวิตทัง้สามเปนคียหลัก แสดงดังตารางที ่5.16

    ตารางท่ี 5.16 แสดงรีเลช่ันผูผลติ ทีอ่ยูในรูปแบบบรรทัดฐานที่ 4

    รีเลช่ัน “ผูผลติ”

    ชื่อผูผลติ ชื่อสนิคา ชื่อโครงการ

    เสรี ปากกา PJ2

    เสรี โตะ PJ1

    พนดิา ปากกา PJ1

    เสรี ปากกา PJ1

  • จากตารางที่ 5.16 รีเลช่ันผูผลิตที่อยูในรูปแบบบรรทัดฐานระดับที่ 4 ดวยการใหแอททริบิวตทั้งสาม

    ประกอบกันเปนคียหลัก แตยังมีปญหาในการปรับปรุงแกไขขอมูล เชน หากตองการลบขอมูลของทูเพิลที่ 3

    (พนดิา, ปากกา, PJ1) ขอมูลของช่ือผูผลติ คือ พนดิาจะหายไปจากฐานขอมูลหรือหากมีการเปลี่ยนชื่อสินคาก็

    ตองทําการปรับปรุงขอมูลหลายทูเพลิ เปนตน เพื่อหลกีเลี่ยงปญหาดังกลาว จึงทําการแยกรีเลช่ัน ผูผลิต เปน

    สามรเีลช่ันยอย โดยแตละรีเลช่ันยอยจะประกอบดวยแอททริบวิตแตละคูเปนคียหลัก แสดงดังตารางที ่5.17

    ตารางท่ี 5.17 แสดงตัวอยางการจัดระบบขอมูลในรูปแบบบรรทัดฐานระดับที่ 5

    จากตารางที่ 6.13 เมื่อแตกรีเลช่ัน ผูผลิต ออกเปนรีเลช่ัน การผลิต สินคาที่ผลิต และโครงการผลิต

    หากนํารีเลช่ันทั้งสามมาเช่ือมโยงกัน (JOIN) จะมีขอมูลเหมือนในรีเลช่ันเดิม (Symmetric Constraint) คือ ไมมี

    ลักษณะของทูเพลิที่เกินมาซึ่งเรียกวา Spurious Tuple

    ประเด็นที่ควรคํานึงถึงในการทําใหเปนรูปแบบบรรทัดฐาน คือ การแตกรีเลช่ันมากเกินไป (Over

    normalization)

    วัตถุประสงคหนึ่งของการทําใหเปนรูปแบบบรรทัดฐาน คือ เพื่อลดปญหาในดานความซ้ําซอนของ

    ขอมูล และลดปญหาในเรื่องการเพิ่ม การปรับปรุง หรือลบขอมูล โดยทั่วไปแลวการออกแบบในระดับแนวคิด

    ผูออกแบบจะพยายามวเิคราะหรีเลช่ันใหอยูในรูปแบบระดับที่3 แตถามีกรณีของปญหาที่จําเปนตองทําตอไป

    ถึงรูปแบบบรรทัดฐานของบอยสและคอดด หรือระดับที่ 4 หรือระดับที่ 5 (ซึ่งเกิดขึ้นนอยมากในทางปฏิบัติ)

    แตอยาพยายามแตกรีเลช่ันใหมากเกินความจําเปน (Over normalization) เพราะการแตกรีเลช่ันออกเปนรีเลช่ัน

    ยอยมากเกินไป มผีลตอประสทิธภิาพในการทํางานของฐานขอมูลนั้นๆ เชน ในการคนหาขอมูลจะใชเวลามาก

    เกินไป เปนตน


Recommended