ขั้นตอนการออกแบบฐานข้อมูล
ขั้นตอนการออกแบบฐานข้อมูล
ขั้นที่ 1 เก็บรวบรวมข้อมูลรายละเอียดทั้งหมดการเก็บรวบรวมข้อมูลและรายละเอียดต่างๆของงาน รวมทั้งความต้องการของผู้ใช้เช่น
· มีข้อมูลใดบ้างที่เป็นเรื่องเดียวกัน ให้จัดกลุ่มข้อมูลนั้นเป็นเเอนทิตี้
· มีข้อมูลอะไรบ้างที่จะต้องนำมาค้นหาหรือประมวลผล ผลที่ได้ต้องส่งออกระบบภายนอกหรือไม่
· มีใครบ้างที่เป็นผู้ใช้ฐานข้อมูลนี้ ใช้บ่อยแค่ไหน มีความสำคัญอย่างไร
· ลักษณะของรายงาน ประกอบด้วยรายงานอะไรบ้าง ระยะเวลาในการออกรายงาน
· ข้อมูลอื่นๆที่สามารถรวบรวมได้ โดยพยายามเก็บรายละเอียดให้มากที่สุด
ขั้นที่ 2 กำหนดโครงสร้างของ Table จากกลุ่มข้อมูลหรือแอนทิตี้ที่รวบรวมได้จากเอกสารต่างๆในขั้นที่ 1เราจะนำมากำหนดแอตทริบิวต์ของข้อมูลเพื่อจะได้ทราบว่าในเอนทิตี้นั้นจะนำข้อมูลอะไรมาใช้บ้าง หลังจากนั้นให้นำแอตทริบิวต์มากำหนดโครงสร้างเบื้องต้นของ Table โดยแปลงแอตทริบิวต์เป็นฟิลด์ พร้อมกำหนดชนิดและขนาดข้อมูลในแต่ละขนาดข้อมูลในแต่ละฟีลด์ รวมทั้งเงื่อนไขหรือกฏเกณฑ์ที่ใช้กำหนดลักษณะของข้อมูล
ขั้นที่ 3 กำหนดคีย์ ขั้นตอนนี้จะพิจารณาว่าฟีดล์ใดบ้างใน Table นั้นที่มีคุณสมบัติเหมาะสมจะใช้เป็นคีย์ ถ้าไม่มีฟีลด์ใดเลยที่เหมาะสม ก็จะต้องกำหนดฟีลด์ใหม่เพื่อใช้เเป้นคีย์โดยเฉพาะ
ขั้นที่ 4 การทำ Normalization ถ้า Table ที่ได้จากขั้นที่ 2 ยังมีความซ้ำซ้อนกันของข้อมูล หรือข้อมูลบางฟีลด์ไม่เกี่ยวข้องโดยตรงกับเนื้อหาใน Table นั้นจะต้องนำมาปรับปรุงแก้ให้มีโครงสร้างหรือรูปแบบที่เหมาะสมก่อนนำไปประมวลผล ถ้านำโครงสร้างไปใช้เลยโดยไม่ทำ Normalization ก่อนอาจเกิดปัญหาได้ เช่นปัญหาสิ้นเปลืองเนื้อที่จัดเก็บข้อมูลที่ซ้ำซ้อนกัน ปัญหาความผิดปกติ (Anomaly) ของข้อมูลเมือมีการแก้ไขเพิ่ม หรือลบคอร์ด รวมทั้งปัญหาในการกำหนดความสัมพันธ์ในขั้นที่ 5 จะทำได้ยาก
ขั้นที่ 5 กำหนดความสัมพันธ์ นำ Table ทั้งหมดที่ได้หลังจากทำ Normalization มาสร้างความสัมพันธ์โดยใช้คีย์กำหนดในชั้นที่ 3 หรือคีย์ที่เกิดขึ้นใหม่จากการทำ 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 ก็อาศัยคุณสมบัติดังที่กล่าวไว้ข้างต้น
1) รีพีทติ้งกรุ๊ป การที่ข้อมูลใน 1 ทัปเพิล สามารถมีค่าในแต่ละแอตทริบิวต์ได้มากกว่าหนึ่งค่า (Multivalued) จะทำให้เกิดรีพีทติ้งกรุ๊ป ดังตารางที่แสดงในภาพข้างล่าง ซึ่งเลขที่โครงการหนึ่งหมายเลขประกอบด้วยกลุ่มข้อมูลหลายกลุ่ม ซึ่งทำให้รีเลชันดังกล่าว ขาดคุณสมบัติซิงเกิลแวล

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

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



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

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