Normalization.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
HO Session 14: Database Design Principles
Advertisements

ความรู้เบื้องต้นเกี่ยวกับระบบฐาจข้อมูล
การศึกษาและประยุกต์ใช้ขั้นตอนวิธีเชิง วิวัฒน์แบบหลายจุดประสงค์บนคลังข้อมูล เจเมทัล Study of Evolutionary Algorithm in Multi- objective on Library jMetal.
ลิมิตและความต่อเนื่อง
จัดการฐานข้อมูลด้วย Microsoft Access 2007
ชนิดของข้อมูลและตัวดำเนินการ
Security and Integrity
จงหาระยะห่างของจุดต่อไปนี้ 1. จุด 0 ไปยัง จุด 0 ไปยัง 2
บทที่ 5 รูปแบบที่เป็นบรรทัดฐาน (Normal Form)
บทที่ 8 การออกแบบข้อมูล (Data Design) โครงสร้างข้อมูล (Data Structure)
การวางแผนและการดำเนินงาน
ข้อดีของฐานข้อมูล 1. หลีกเลี่ยงความขัดแย้งของข้อมูล การจัดเก็บข้อมูลแบบแฟ้มข้อมูล โดยข้อมูลเรื่องเดียวกันอาจมีอยู่หลายแฟ้มข้อมูล ซึ่งก่อให้เกิดความขัดแย้งของข้อมูลได้
Databases Design Methodology
การออกแบบแบบจำลองข้อมูล
ซอฟต์แวร์พัฒนาระบบฐานข้อมูล Normalization
บทบาทการบริหารงานสำนักงาน 1
นอร์มัลไลเซชัน (Normalization)
การออกแบบฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์
รูปแบบที่เป็นบรรทัดฐาน
การแปลง E-R เป็น Table.
ข้อสังเกตและข้อผิดพลาด ในการวิเคราะห์และออกแบบระบบ
ประวัติความเป็นมาของฐานข้อมูลและยกตัวอย่างโปรแกรมในการจัดการฐานข้อมูล
บทที่ 8 การจัดเรียงแฟ้มลำดับเชิงดรรชนี
Creating Database With Structure Query Language (SA&D-8)
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ 3 โรงเรียนปลวกแดงพิทยาคม
บทที่ 3 การวิเคราะห์ Analysis.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ
CHARPTER 4 การสอบถามข้อมูลแบบมีเงื่อนไข
การสอบถามข้อมูลแบบซ้อนกัน
CHARPTER 9 การเชื่อมเทเบิล JOIN…. TABLE.
ที่ใช้ใน Object-Oriented Design
Data Modeling Chapter 6.
Linked List (ลิงค์ลิสต์)
การทำ Normalization อ. นุชรัตน์ นุชประยูร.
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
การพัฒนาระบบฐานข้อมูล
ตัวอย่างที่ 2.4 วิธีทำ. สมมติให้พนักงานดังกล่าวดำเนินการแต่งตัวเพื่อไปทำงานเป็นดังนี้ ตัวอย่างที่ 2.4 วิธีทำ.
(การลดความซ้ำซ้อนของข้อมูล)
บทที่ 5 การทำงานกับหลาย Table
1. ศัพท์พื้นฐานของฐานข้อมูล
ตัวอย่าง ระบบคลังหนังสือ (Book Stock System)
การจัดการฐานข้อมูล.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
งานเทคโนโลยีสารสนเทศ โรงเรียนพนมเบญจา
กลวิธีการสอนคณิตศาสตร์ระดับประถมศึกษา
Normalization – Special Problem (DB) Choopan Rattanapoka
โมเดลเชิงสัมพันธ์ The relational model.
งานกลุ่ม กลุ่มที่ 3 เรื่อง ฐานข้อมูลเชิงสัมพันธ์
E-R to Relational Mapping Algorithm
SQL (Structure Query Language) ตอนที่ 2 Online available at
รูปร่างเครือข่ายคอมพิวเตอร์ จัดทำโดย เด็กชาย คณิศร อ้อยกลาง เลขที่ 36 ม.2/5 เสนอ อ.สายฝน เอกกันทา โรงเรียนจักรคำคณาทร จ.ลำพูน.
แบบจำลองข้อมูล (Data Model)
SQL (Structure Query Language) ตอนที่ 1
Introduction to Database
การออกแบบสื่อเพื่อการศึกษา ADDIE Model
การวางแผนและการเขียนโครงการวิจัย
การวิเคราะห์โครงสร้างประโยคภาษาอังกฤษในคอลัมน์Star Biographic ในหนังสือพิมพ์ Student Weekly Analysis of English Sentence Structures in Star Biographic.
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
การเตรียมข้อมูล (Data preparation)
ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF
บทที่ 4 ข้อเสนอโครงการวิจัย
Normalization Lecture 9.
การทำ Normalization 14/11/61.
ห้องแลปการคิดสร้างสรรค์
กระบวนการปรับบรรทัดฐาน Normalization Process
Chapter 8 : นอร์มัลไลเซชัน (Normalization)
Introduction to Database System
ใบสำเนางานนำเสนอ:

Normalization

ความหมายของการนอร์มอลไลเซซัน Normalization เป็นกระบวนการนำโครงร่างของรีเลชันมาแตกเป็นรีเลชันต่างๆ ให้อยู่ในรูปแบบที่เรียกว่า Normal form เป้าหมายเพื่อให้รีเลชันที่ได้รับการออกแบบอยู่ในรูปแบบบรรทัดฐานระดับที่เหมาะสม E.F. Codd แบ่งรูปแบบ Normal Form ออกเป็น 3 ระดับด้วยกันคือ Normal Form ระดับที่ 1 (1NF) Normal Form ระดับที่ 2 (2NF) Normal Form ระดับที่ 3 (3NF)

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

ความผิดพลาดจากการปรับปรุงข้อมูล การผิดพลาดจากการเพิ่มข้อมูล การผิดพลาดจากการลบข้อมูล การผิดพลาดจากเปลี่ยนแปลงข้อมูล

ตาราง Staff sl22 ChuChai Suksri b5 ChaingMai 053-893452 sg37 Sirirat Staff_id Name Surname Branch_id Address Tel. sl22 ChuChai Suksri b5 ChaingMai 053-893452 sg37 Sirirat ManeeJun b1 Bangkok 02-2204446 sa23 Somsak SeeTang sg09 Piya Thanasilp b3 Phitsanulok 055-453246 sg41 Ladda Wongdes b4 Tak 054-215467

Normalize ระดับที่ 1 ไม่มีคอลัมน์ใด มีค่า มากกว่า 1 ค่า (ไม่มี repeating Group) แต่ละตารางต้องมี Primary key

ตัวอย่างข้อมูล ตาราง Student และ ตาราง Subject

Student Subject

ทำให้ตารางทั้ง 3 เป็น NF1 แยกคอลัมน์ที่มีมากว่า 1 ค่าเป็นแถวใหม่ เพิ่มข้อมูลที่เหมาะสมเข้าไป กำหนด Primary Key

ได้ตาราง NF 1 ดังต่อไปนี้ ตาราง Student

ตาราง Subject

ตาราง student_subject

Functional Dependency ฟังก์ชั่นการขึ้นต่อกัน คือ ความสัมพันธ์ระหว่าง Attribute หนึ่ง หรือ กลุ่มของ Attribute ที่ประกอบกันแล้ว สามารถระบุค่าของ Attribute อื่นๆ ใน tuple เดียวกันของรีเลชั่นนั้นได้ สมมติว่า A กับ B คือ Attribute ของรีเลชั่น R แล้ว B เป็นฟังก์ชั่นที่ขึ้นอยู่กับ A จะเขียนในรูปแบบสัญลักษณ์ได้ว่า A  B โดยเรียก A ว่า Determinant และ เรียก B ว่า Dependent

ตัวอย่าง จากตาราง staff ถ้าถามว่า พนักงานคนใดมี รหัสพนักงงาน sl22 เราสามารถตอบได้ทันทีว่า คือ พนักงานชื่อ Chuchai Suksri ดังนั้น แสดงว่า ชื่อพนักงาน ขึ้นอยู่กับ รหัสพนักงาน Staff_id Name Surname Branch_id Address Tel. sl22 ChuChai Suksri b5 ChaingMai 053-893452

Functional Dependency (FD) เป็นวิธีที่ใช้ตรวจสอบว่า Attribute ที่ไม่ใช่ Primary key นั้นมีความเกี่ยวข้องกับ Primary key หรือ ไม่เพื่อใช้ พิจารณา ว่าควรจะแยก Attribute ดังกล่าวควรจะแยกเป็นคอลัมน์ในตารางใหม่ หรือ ไม่ ในรีเลชั่นหนึ่ง Attribute ทุกตัวต้องขึ้นอยู่กับ Primary key โดยถ้า Primary Key เป็นกลุ่ม Attribute ต้องขึ้นอยู่กับ Attribute ทุกตัวที่รวมเป็น Primary Key ถ้าขึ้นอยู่กับ Primary key เพียงบางส่วนจะเรียกว่า Partial Dependency ถ้าขึ้นอยู่กับ Primary key ทั้งหมดเรียกว่า Full Functional Dependency ถ้า Primary key เป็น Attribute เดียวจะเป็น Full Functional Dependency

ตัวอย่าง รูปแบบ NF2 ตาราง Student จะเห็นได้ว่า Name,BirthDay,Cladd,Advisor ไม่ได้ขึ้นอยู่กับ Attribute ที่เป็น Primary key ทั้งหมด แต่ ขึ้นอยู่กับ Student_id เพียง Attribute เดียว ไม่ได้ขึ้นอยู่กับ Club และ Hobby ดังนั้นจะเขียน FD ได้ดังนี้ Student_id  Name,Birthday,Class,Advisor Student_id  club,hobby

ดังนั้น จึงสามารถแยกตารางตาม FD ได้ดังนี้

ตัวอย่าง รูปแบบ NF2 ตาราง Subject จะเห็นได้ว่า ตาราง Subject จะมีลักษณะคล้ายกับ ตารางStudent ดังนั้นจะเขียน FD ได้ดังนี้ Subject_id  Name, Credit Subject_id  Teacher,Textbook

ดังนั้น จึงสามารถแยกตารางตาม FD ได้ดังนี้

สำหรับตาราง Student_subject เขียน FD ได้ดังนี้ Student_id,Subject_id Grade,Score,Term จาก FD จะเห็นได้ว่า เมื่อต้องการจะทราบค่าของ Attribute ที่ไม่ใช้ Key ซึ่งก็คือ Grade,Score,Term ต้องทราบค่าของ Primary key คือ Student_id,Subject_id ก่อน ไม่ได้ขึ้นอยู่กับตัวใดตัวหนึ่ง ดังนั้นจึงไม่เป็ฯ Partial Dependency จึงไม่จำเป็นต้องแยกตาราง

Normalize ระดับที่ 3 เป็น 2NF Attribute ที่ใช่ Key ไม่ขึ้นต่อกันเอง (ไม่เป็น Transitive Dependency) เป็น FD ที่ไม่เกี่ยวข้องกับ Primary key

จากตาราง Student จะมี FD ที่ไม่เกี่ยวข้องกับ Primary key คือ Class  Teacher จึงต้องแยกตารางออกเป็น สองตารางดังนี้

Boyce/Codd Normal Form (BCNF) Attribute ทุกตัวขึ้นอยู่กับ Candidate Key Determinant ทุกตัวต้องเป็น Candidate Key ตัวอย่าง จากตาราง Teacher_Textbook ได้ FD ดังต่อไปนี้ Textbook  Subject_id Teacher,Subject_id  Textbook

Cadidate Key ของตารางนี้คือ (teacher,textbook) กับ (teacher,subject_id) Determinant คือ textbook กับ teacher,subject_id จะเห็นว่า textbook ที่เป็น Determinant ของ FD ไม่ได้เป็น Cadidate Key ดังนั้น Relation นี้จึงไม่เป็น BCNF

ดังนั้น ต้องแยกตารางดังกล่าวออกเป็นสองตาราง ตาม FD ซึ่งมี Determinant ที่ไม่ได้เป็น Candidate Key ซึ่งจะได้ตารางดังต่อไปนี้ คือ ตาราง Textbook และ Teacher_Textbook

Normalize ระดับที่ 4 เป็น BCNF ไม่มี Multivalued Dependency

Nomalization ระดับที่ 5 จะต้องมี Candidate Key ปรากฏใน Join Dependency ของ Relation นั้นเสมอ