วันพฤหัสบดีที่ 19 ธันวาคม พ.ศ. 2562

ขั้นตอนการออกแบบฐานข้อมูล


ขั้นตอนการออกแบบฐานข้อมูล  

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

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

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

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

       ขั้นที่ 4 การทำ Normalization ถ้า Table ที่ได้จากขั้นที่ ยังมีความซ้ำซ้อนกันของข้อมูล หรือข้อมูลบางฟีลด์ไม่เกี่ยวข้องโดยตรงกับเนื้อหาใน Table นั้นจะต้องนำมาปรับปรุงแก้ให้มีโครงสร้างหรือรูปแบบที่เหมาะสมก่อนนำไปประมวลผล ถ้านำโครงสร้างไปใช้เลยโดยไม่ทำ Normalization ก่อนอาจเกิดปัญหาได้ เช่นปัญหาสิ้นเปลืองเนื้อที่จัดเก็บข้อมูลที่ซ้ำซ้อนกัน ปัญหาความผิดปกติ (Anomaly) ของข้อมูลเมือมีการแก้ไขเพิ่ม หรือลบคอร์ด รวมทั้งปัญหาในการกำหนดความสัมพันธ์ในขั้นที่ จะทำได้ยาก

       ขั้นที่ กำหนดความสัมพันธ์ นำ Table ทั้งหมดที่ได้หลังจากทำ Normalization มาสร้างความสัมพันธ์โดยใช้คีย์กำหนดในชั้นที่ หรือคีย์ที่เกิดขึ้นใหม่จากการทำ Normalization เป็นตัวเชื่อม ซึ่งอาจเป็นแบบ One - to - One , One -to - Many หรือ Many - to - Many ขึ้นกับลักษณะของข้อมูลการกำหนดความสัมพันธ์ระหว่าง Table นี้มีความสำคัญมาก ผู้ออกแบบจะต้องมีการวิเคราะห์ให้ได้ว่าข้อมูลใน Table ต่างๆนั้นมีความสัมพันธ์กันในลักษณะใด

นอร์มัลไลเซชัน (Normalization) ความซ้ำซ้อนของข้อมูลทำให้ข้อมูลมีขนาดใหญ่เกินความจำเป็น ส่วนที่ซ้ำซ้อนเป็นปัญหาของตารางข้อมูล (รีเลชั่น) แต่สามารถขจัดได้ด้วยขบวนการนอร์มัลไลเซชัน โดยการนอร์มัลไลเซชันถูกคิดค้นโดย E.F.Codd ซึ่งเป็นกระบวนการที่นำเค้าร่างของ relation มาทำให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน (Normal Form) เพื่อให้แน่ใจว่าการออกแบบเค้าร่างของ relation เป็นการออกแบบที่เหมาะสม

ประโยชน์นอร์มัลไลเซชัน คือ
1. ลดที่ว่างที่ต้องใช้ในการเก็บข้อมูล
2. ลดความผิดพลาดและความไม่ตรงกันของข้อมูลในฐานข้อมูล
3. ลดการสูญเสียเวลาการเข้าถึงข้อมูลที่เกิดซ้ำซ้อนในข้อมูลของการลบและแก้ไขข้อมูล
4.เพิ่มความคงทนแก่โครงสร้างฐานข้อมูล 

  ระดับนอร์มัลไลเซชัน  เป็นกระบวนการเพื่อพัฒนาการ เชื่อมต่อของข้อมูลเพื่อแก้ปัญหาของตารางข้อ (รีเลชั่น) ที่ว่าการออกแบบฐานข้อมูลทั้งทางตรรกะและทางกายภาพที่ได้ออกมาใช้ได้หรือยังการ นอร์มัลไลเซชันแบ่งออกได้เป็นหลายระดับ  ได้แก่ 

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

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

Image

       1.1) นิยามของนอร์มัลฟอร์มที่ 1 รีเลชันจะอยู่ในรูปของนอร์มัลฟอร์มที่ 1 ก็ต่อเมื่อมีคุณสมบัติตามเงื่อนไขดังต่อไปนี้
1.  มีการกำหนดแอตทริบิวต์ที่เป็นคีย์
2.  ต้องไม่มีรีพีทติ้งกรุ๊ป แต่ละแถวหรือคอลัมน์จะมีค่าได้เพียง 1 ค่าเท่านั้น
3.  แอตทริบิวต์ทุกตัวต้องขึ้นอยู่กับคีย์หลัก

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

Image


       2) การแปลงให้อยู่ในรูปนอร์มัลฟอร์มที่ 2 ในหนึ่งรีเลชันจะประกอบด้วยแอตทริบิวต์ต่าง ๆ ที่มีความสัมพันธ์ที่ขึ้นต่อกันซึ่งความสัมพันธ์ดังกล่าวจะเป็นตัวกำหนดว่าแอตทริบิวต์ใดเป็นตัวกำหนดข้อมูล  หรือ คีย์แอตทริบิวต์ (Key Attribute) และและแอตทริบิวต์ใดเป็นข้อมูลที่ถูกกำหนดหรือนอนคีย์แอตทริบิวต์ (Nonkey Attribute)
         2.1) ฟังก์ชันนัลดีเพนเดนซี  ในการทำนอร์มัลไลเซชัน จะต้องมีความเข้าใจหลักการของฟังก์ชันดีเพนเดนซี(Function Dependency : FD) เสียก่อน โดยมีคำจำกัดความคือ  B  ขึ้นอยู่กับ A ถ้าทราบค่าของ A  ก็จะทำให้รู้ค่าของ B ได้ฟังก์ชันนัลดีเพนเดนซี สามารถแสดงด้วยการใช้เครื่องหมายลูกศร  ( ->)    ตัวอย่างเช่น  A->B แสดง B เป็นฟังก์ชันนัลดีเพนเดนต์กับ  A  กล่าวคือ ถ้ารู้ค่า A ก็จะทำให้ทราบค่าของ B ด้วย  ทุกค่าของ A ที่มีค่าเท่ากัน  จะได้ค่า  เท่ากันเสมอ
        2.2) พาเชียลดีเพนเดนซี  พาร์เชียลดีเพนเดนซี หมายถึง การที่มีแอตทริบิวต์บางแอตทริบิวต์ ที่ขึ้นอยู่กับเพียงบางส่วนของคีย์หลักเท่านั้น ตัวอย่างเช่น จากตารางในภาพข้างล่าง  แอตทริบิวต์ชื่อพนักงานจะขึ้นอยู่กับคีย์รหัสพนักงานในขณะที่แอตทริบิวต์ชื่อแผนกจะขึ้นอยู่กับคีย์รหัสแผนกจะเห็นว่าข้อมูลที่อยู่ในรีเลชันเดียวกันแต่ไม่ได้ขึ้นอยู่กับคีย์ใดคียหนึ่งทั้งหมดแต่จะขึ้นอยู่กับคีย์ใดคีย์หนึ่งเพียงบางส่วนเท่านั้น

Image
Image

         2.3) นิยามของนอร์มัลฟอร์มที่ 2 รีเลชันจะอยู่ในรูปของนอร์มัลฟอร์มที่ 2 ก็ต่อเมื่อมีคุณสมบัติตามเงื่อนไขดังต่อไปนี้
1.  รีเลชันนั้นเป็นนอร์มัลฟอร์มที่ 1 อยู่แล้ว
2.  รีเลชันนั้นไม่มีพาร์เชียลดีเพนเดนซี

3) การแปลงให้อยู่ในรูปนอร์มัลฟอร์มที่ 3 ในหนึ่งรีเลชันจะประกอบคีย์แอตทริบิวต์และนอนคีย์แอตทริบิวต์คีย์แอตทริบิวต์จะต้องเป็นตัวกำหนดความหมายหรือการมีอยู่ของแอตทริบิวต์อื่น ๆ  ที่อยู่ในรีเลชันเสมอ
         3.1) ทรานซิทีฟดีเพนเดนซี (Transitive Dependency) ทรานซิทีฟดีเพนเดนซี หมายถึง การที่มีฟังก์ชันนัลดีเพนเดนซี ระหว่างแอตทริบิวต์ที่ไม่ได้เป็นส่วนของคีย์ใด ๆ แต่มีแอตทริบิวต์อื่น ๆ มาขึ้นกับแอตทริบิวต์นั้นตัวอย่างเช่น จากตารางในภาพข้างล่าง แอตทริบิวต์ชื่อพนักงานและรหัสตำแหน่งงานจะขึ้นอยู่กับคีย์รหัสพนักงาน ในขณะที่แอตทริบิวต์ค่าแรงต่อชั่วโมของพนักงาน จะขึ้นอยู่กับแอตทริบิวต์รหัสตำแหน่งงานซึ่งไม่ใช่คีย์อีกต่อหนึ่งทำให้มีทรานซิทีฟดีเพนเดนซีเกิดขึ้นในรีเลชันนี้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น