Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore E_book หน่วยที่ 2 ฐานข้อมูลเชิงสัมพันธ์

E_book หน่วยที่ 2 ฐานข้อมูลเชิงสัมพันธ์

Published by Kulnathee Sombatkham, 2019-06-04 21:41:45

Description: E_book หน่วยที่ 2 ฐานข้อมูลเชิงสัมพันธ์

Search

Read the Text Version

หน่วยท่ี 2 ฐานขอ้ มูลเชงิ สมั พันธ์ กุลนที สมบตั ิคา

14 สาระสาคญั ฐานข้อมูลเชิงสัมพนั ธ์ เปน็ ฐานข้อมลู ที่ได้รบั ความนิยมมากในปจั จบุ นั เพราะมีรูปแบบท่ีใชง้ าน งา่ ย เช่น การจัดเกบ็ ข้อมูล การเรียกใชข้ อ้ มูล การเชื่อมโยงขอ้ มูล การนาระบบฐานข้อมลู เชงิ สัมพันธม์ าใช้ งานเพื่อให้มีประสิทธภิ าพ ตอ้ งมีการออกแบบฐานขอ้ มลู สามารถทาการวเิ คราะหห์ าเอนทิต้แี ละแอททริบวิ ต์ เพื่อนาไปใช้ในการสรา้ งระบบฐานข้อมลู ต่อไป ซึง่ ระบบฐานข้อมลู ท่ีนยิ มใชก้ ันมากคือโปรแกรมไมโครซอฟต์ แอคเซส สาระการเรียนรู้ 1. ฐานขอ้ มลู เชิงสมั พันธ์ 2. คาศัพท์พื้นฐานของระบบฐานขอ้ มลู เชงิ สมั พนั ธ์ 3. ขอ้ ดีของระบบฐานขอ้ มูลเชิงสัมพนั ธ์ 4. ชนิดของคีย์ในฐานข้อมลู 5. การออกแบบระบบฐานข้อมลู 6. การนอร์มลั ไลเซชัน 7. โปรแกรมไมโครซอฟตแ์ อคเซส กก 8. การสรา้ งฐานข้อมูล จดุ ประสงค์การเรยี นรู้ 1. บอกลกั ษณะการทางานของฐานข้อมูลเชิงสัมพนั ธ์ได้ 2. บอกความหมายของคาศพั ทพ์ ื้นฐานของฐานข้อมลู เชิงสัมพนั ธไ์ ด้ 3. บอกข้อดขี องระบบฐานข้อมูลเชงิ สัมพนั ธ์ได้ 4. อธบิ ายเก่ยี วกบั คยี ์แบบตา่ ง ๆ ได้ 5. บอกข้นั ตอนการออกแบบระบบฐานข้อมลู ได้ 6. ออกแบบระบบฐานขอ้ มลู ได้ 7. บอกลักษณะและส่วนประกอบของโปรแกรมไมโครซอฟต์แอคเซสได้กก 8. สามารถสร้างฐานข้อมูลในโปรแกรมไมโครซอฟต์แอคเซสได้ 2.1 ฐานข้อมูลเชิงสัมพนั ธ์ ฐานข้อมลู เชงิ สมั พนั ธ์ (Relational Database) เป็นรูปแบบฐานข้อมลู ท่นี ยิ มใช้กนั มากใน ปัจจบุ นั คดิ ขนึ้ โดยโดยด๊อกเตอร์ อี.เอฟ.คอดด์ (Dr. E.F codd) ใช้วิธีเกบ็ ขอ้ มูลในลกั ษณะเป็นตารางยอ่ ย ๆ ท่สี มั พนั ธก์ นั เป็นรูปแบบที่นยิ มใช้กนั อย่างกวา้ งขวางเพราะมปี ระสิทธิภาพสงู และแกป้ ญั หาต่าง ๆ ในการ จัดเก็บข้อมูลได้ เชน่ ปัญหาข้อมูลซ้าซอ้ น ข้อมูลไม่ตรงกันหรือการยดึ ติดกับโปรแกรมทส่ี รา้ ง โดยมีการ พัฒนาซอฟต์แวรเ์ พ่อื รองรับการจัดเกบ็ ข้อมลู ดงั กลา่ ว เรียกว่า ระบบจัดการฐานขอ้ มลู เชิงสัมพันธ์หรือ RDBMS (Relation DataBase Management System) 2.2 คาศพั ท์พน้ื ฐานของระบบฐานขอ้ มูลเชิงสมั พนั ธ์

15 2.2.1 รีเลชนั (Relation) เปน็ โครงสรา้ งของฐานข้อมลู เชิงสมั พันธ์ซึ่งจะมีการเก็บขอ้ มลู ใน รูปแบบตาราง 2 มิติ ประกอบด้วย รายการขอ้ มูลหรอื เรคอร์ดเรยี กว่า ทูเพลิ และเขตข้อมูลหรอื คอลัมน์ เรียกว่า แอททรบิ ิวต์ กกกกกกกก2.2.2 ทูเพลิ (Tuple) หมายถงึ แถวแต่ละแถวในรเี ลชันหรอื เรยี กวา่ เรคอรด์ 2.2.3 ดกี รี (Degree) หมายถงึ จานวนแอททริบวิ ตท์ ัง้ หมดทอ่ี ยใู่ นรเี ลชนั หรอื จานวน เขต ข้อมลู เชน่ จากภาพท่ี 2.1 รเี ลชนั พนักงาน จะมดี กี รที ้ังหมด 4 ดีกรี เปน็ ต้นก 2.2.4 คาร์ดินัลลิต้ี (Cardinality) หมายถงึ จานวนทเู พลิ ท้งั หมดที่บรรจุอยู่ในรีเลชนั หรือ จานวนเรคอร์ด 2.2.5 โดเมน (Domain) เปน็ กลุม่ หรือขอบเขตของค่าข้อมลู ท่ีเป็นไปได้ในแตล่ ะแอททรบิ ิวต์ ซงึ่ เป็นขอ้ มลู ชนดิ เดยี วกัน เชน่ ขอบเขตของคา่ ของขอ้ มูลทีแ่ ทนเพศ ได้แก่ ชาย หญิง เป็นต้น ดีกรี ชาย/หญิง โดเมน รีเลชนั นกั ศึกษา ทเู พลิ รหัสนกั ศึกษา ชือ่ สกุล เพศ 50320001 เรียบ คามูล ชาย 50320002 ธวชั ชัย ยนิ ดี ชาย คาร์ดินลั ลิต้ี 50320003 วรญั ญา วงเลงิ หญิง ภาพที่ 2.1 แสดงสว่ นต่าง ๆ ของข้อมลู เชงิ สมั พนั ธ์ เพอื่ ใหเ้ ข้าใจได้งา่ ยจงึ ขอเปรยี บเทียบคาศพั ท์ท่วั ไปและคาศพั ท์ท่ีใช้การประมวลผลระบบแฟ้มขอ้ มูลดงั ตารางท่ี 2.1 ตารางท่ี 2.1 คาศพั ท์ท่วั ไปและคาศพั ทท์ ีใ่ ชใ้ นการประมวลผลระบบแฟ้มขอ้ มูล ฐานขอ้ มลู เชิงสัมพนั ธ์ ทว่ั ไป ระบบแฟม้ ขอ้ มลู (Relational Database) (General) (File System) รเี ลชน่ั (Relation) ตาราง (Table) แฟม้ ขอ้ มลู (File) ทเู พลิ (Tuple) แถว (Row) ระเบยี น (Record) แอททรบิ ิวต์ (Attribute) สดมภ์ (Column) เขตขอ้ มูล (Field) คารด์ ินัลลิตี้ (Cardinality) จานวนแถว จานวนระเบยี นในหนง่ึ แฟ้มขอ้ มลู ดกี รี (Degree) จานวนสดมภ์ จานวนเขตขอ้ มลู ในหน่ึงระเบียน คยี ห์ ลัก (Primary Key) ค่ากาหนดไม่ซา้ คีย์หลัก (Primary Key) โดเมน (Domain) ขอบข่ายข้อมูล ค่าท่ีเป็นไปได้ของขอ้ มูลในแตล่ ะเขตขอ้ มลู

16 2.3 ขอ้ ดีของระบบฐานข้อมลู เชงิ สมั พนั ธ์ กกกกกกกกระบบฐานขอ้ มลู เชิงสมั พนั ธ์ เป็นฐานข้อมลู ท่มี รี ปู แบบงา่ ยสาหรับผ้ใู ชง้ านทว่ั ไป โดยผู้ใชไ้ ม่ จาเปน็ ตอ้ งมีความรู้ในการวเิ คราะหแ์ ละออกแบบระบบ กส็ ามารถใช้งานได้ ข้อดขี องฐานขอ้ มูลเชงิ สมั พนั ธ์ สรุปได้ดังน้ี กกกกกกกก2.3.1 การจัดการกบั ข้อมูลทาได้โดยงา่ ย กกกกกกกกกกกกผใู้ ช้งานสามารถจัดการกับข้อมูลได้โดยง่าย ไมว่ ่าจะเป็นการเพิม่ ลบ แกไ้ ขข้อมูลภายใน ฐานข้อมลู โดยมดี ีบีเอม็ เอสเปน็ ตัวจัดการข้อมูลภายใน ซงึ่ ผูใ้ ชไ้ ม่จาเปน็ ตอ้ งทราบวา่ รายละเอยี ดของการ จัดเกบ็ ข้อมูลทอ่ี ยภู่ ายในเปน็ อยา่ งไร กกกกกกกก2.3.2 ภาษาที่ง่ายในการเรียกดูขอ้ มูล กกกกกกกกกกกกภาษาที่ใชใ้ นการเรียกดขู ้อมลู มีลกั ษณะคล้ายภาษาองั กฤษ ไมจ่ าเป็นต้องเขยี นเป็นลาดับ ขั้นตอนของคาสงั่ จงึ งา่ ยตอ่ การเรยี กดขู ้อมลู กกกกกกกก2.3.3 การเรยี กใชห้ รือเชื่อมโยงข้อมลู สามารถทาได้โดยง่าย กกกกกกกกกกกกการเรยี กใช้หรือเช่อื มโยงขอ้ มูลไดง้ า่ ย โดยอาศยั โอเปอร์เรเตอรท์ างคณิตศาสตร์ ไม่ จาเป็นตอ้ งใช้ตัวชี้ (Pointer) ในการอา้ งถงึ กกกกกกกก2.3.4 รองรบั การเข้าถึงขอ้ มลู แบบผู้ใชห้ ลายคน กกกกกกกกกกกก ฐานข้อมลู ถูกออกแบบมาเป็นอย่างดีมีความสมบรู ณค์ รบถว้ น ข้อมูลถกู จัดเกบ็ ในแหลง่ เดยี วกัน การเขา้ ถงึ หรอื ใช้ขอ้ มูลทาได้สะดวกโดยไม่ขน้ึ กบั โปรแกรมใดโปรแกรมหน่ึง มีการควบคุมความ บูรณภาพของขอ้ มลู ทาใหข้ ้อมูลมีความถกู ตอ้ ง ผู้ใชส้ ามารถดงึ ขอ้ มลู มาใช้ได้ทันทโี ดยไม่ตอ้ งแกไ้ ขโครงสรา้ ง เดมิ 2.4 ชนดิ ของคยี ์ในฐานขอ้ มลู คยี ์ (Key) หมายถึง แอททริบวิ ต์จานวน 1 แอททรบิ ิวต์หรอื มากกว่า 1 แอททรบิ วิ ต์ ทาหนา้ ทีแ่ ทนเอนทติ ี้หรือตารางเม่ือตอ้ งการอา้ งถึงตารางดังกลา่ ว คยี ท์ ่ีใช้ในระบบฐานขอ้ มูลมดี ังน้ี กก 2.4.1 คยี ์หลกั (Primary Key) กกกกกกกกกกกกคีย์หลัก เป็นคยี ์ทกี่ าหนดจากแอททรบิ วิ ตท์ ่ีจะตอ้ งไม่มขี ้อมลู ซ้ากันในรเี ลชนั นั้น เชน่ แอททรบิ วิ ต์รหัสนกั ศึกษาในเอนทติ ี้นักศึกษา หรือแอททรบิ วิ ตร์ หัสพนักงานในเอนทติ ี้ พนกั งาน นาไปใช้จัดเรียงและแยกแยะขอ้ มูลแตล่ ะระเบียนออกจากกนั แอททรบิ ิวต์ท่ีกาหนดให้เป็นคยี ์หลกั ตอ้ งมีค่าเสมอจะเป็นค่าว่าง (Null) ไม่ได้ คุณสมบัตขิ องคยี ์หลกั มดี งั นี้ กกกกกกกกกกกก(1) ขอ้ มูลของแอททรบิ ิวต์มีความเป็นหนง่ึ เดยี ว กล่าวคือ ทกุ แถวของตาราง จะต้องไมม่ ขี อ้ มลู ของแอททริบิวตท์ ี่เปน็ คีย์หลกั ซา้ กนั เลย กกกกกกกกกกกก(2) ต้องประกอบดว้ ยจานวนแอททรบิ วิ ต์ที่น้อยท่ีสดุ ทจ่ี ะสามารถใช้เจาะจง หรอื อา้ งองิ ถงึ แถวใดแถวหน่ึงในรีเลชนั ได้ ตวั อยา่ ง ข้อมลู นักศึกษา

17 นกั ศึกษา ช่ือ สกุล รหัสสาขาวชิ า รหัสนักศกึ ษา เรยี บ คามลู 01 50320001 ธวัชชัย ยนิ ดี 02 50320002 วรญั ญา วงเลงิ 03 50320003 คียห์ ลกั ภาพท่ี 2.2 แสดงตัวอย่างคยี ห์ ลัก กกกกกกกก2.4.2 คียค์ ู่แข่ง (Candidate Key) กกกกกกกกกกกกหมายถงึ คียท์ ่ีมีคุณสมบัติใกลเ้ คียงกับคียห์ ลัก ถา้ ในตารางหนึง่ มแี อททรบิ วิ ตห์ ลายแอททริ บวิ ต์ท่มี ีคุณสมบัตคิ รบถว้ นจนนามาใชค้ ยี ห์ ลักแทนกนั ได้ จะเรยี กแอททรบิ ิวตเ์ หลา่ นนั้ ว่า คียค์ ูแ่ ข่ง เช่น ใน รเี ลชันนกั ศึกษา นกั ศกึ ษา รหสั นกั ศึกษา ช่อื สกลุ รหสั สาขาวิชา 50320001 เรียบ คามลู 01 50320002 ธวชั ชยั คามลู 02 50320003 วรญั ญา วงเลงิ 03 คียห์ ลกั คียค์ ู่แข่ง ภาพท่ี 2.3 แสดงตวั อยา่ งคยี ห์ ลกั และคยี ค์ ูแ่ ขง่ จากภาพที่ 2.3 คีย์คูแ่ ข่งได้แก่เอนทติ ้ีนกั ศกึ ษา หากรับประกนั ไดว้ ่าจะไม่มีชื่อนกั ศึกษาซ้ากัน เลยก็สามารถใช้แอททรบิ ิวต์รหัสนักศึกษาหรือชือ่ เป็นคยี ห์ ลักได้ ทาให้ ทั้งสองแอททรบิ ิวต์เป็นคยี ์คู่แข่งกนั ถ้าผอู้ อกแบบระบบฐานขอ้ มลู ใชร้ หัสนักศกึ ษาเปน็ คียห์ ลกั ทาให้แอททรบิ วิ ตช์ อ่ื กลายเปน็ คยี ์คู่แขง่ หรือคยี ์ สารอง ซึง่ เปน็ คยี ท์ ่ไี มถ่ ูกเลอื กเป็นคีย์หลัก 2.4.3 คีย์นอก (Foreign Key) กกกกกกกกกกกก หมายถงึ แอททริบิวตข์ องเอนทิตี้หน่งึ ท่ีมคี ุณสมบตั เิ ปน็ คยี ห์ ลัก และไปปรากฏในเอนทติ ้ี หนง่ึ คีย์นอกจดั เป็นคียท์ ี่มีความสาคัญมากในฐานข้อมูลเชงิ สัมพนั ธ์ เพราะเปน็ คีย์ที่ใชใ้ นการเชือ่ ม ความสัมพันธร์ ะหวา่ งเอนทติ ้ี เชน่ เอนทิตนี้ ักศึกษากับเอนทติ สี้ าขาวิขา และเอนทติ ีส้ าขาวชิ าจะมแี อททริ บิวตร์ หสั สาขาวชิ าเป็นคียห์ ลัก ดังภาพท่ี 2.4

18 นักศึกษา ช่อื สกุล รหัสสาขาวชิ า รหัสนกั ศึกษา เรียบ คามลู 01 50320001 ธวัชชัย ยินดี 02 50320002 วรัญญา วงเลงิ 03 50320003 คียห์ ลกั สาขาวิชา คียน์ อก รหัสสาขาวชิ า ช่อื สาขาวิชา 01 คอมพิวเตอรธ์ รุ กิจ 02 การบัญชี 03 การตลาด กกกกกกกก ภาพที่ 2.4 แสดงตวั อยา่ งของคยี ห์ ลกั และคยี น์ อก จากภาพท่ี 2.4 เอนทติ ี้นกั ศึกษามีรหัสนกั ศกึ ษาเปน็ คยี ์หลกั โดยข้อมลู รหสั นกั ศึกษาจะต้องมคี า่ ขอ้ มูลไม่ซา้ กัน และมีคีย์นอกของเอนทติ ้ี คอื รหัสสาขาวชิ า ซง่ึ เช่อื มโยงความสัมพนั ธไ์ ปยงั แอททริบิวตร์ หัสสาขาวิชาของเอนทิต้ีสาขาวิชา ข้อมลู ทุกตัวของแอททรบิ วิ ต์ รหัสสาขาวิชาในเอนทิตนี้ กั ศกึ ษา จะต้องมอี ยู่ในแอททริบิวตร์ หัสสาขาวชิ าของเอนทติ ้ีสาขาวชิ า ส่วนเอนทติ ้ี สาขาวชิ ามคี ยี ห์ ลกั คือรหัสสาขาวิชา กกกกกกกก2.4.4 คยี ์รวมหรือคียผ์ สม (Composite Key) กกกกกกกกกกกกหมายถึง คีย์ทปี่ ระกอบด้วยกล่มุ ของแอททรบิ วิ ต์ทีร่ วมกนั เปน็ คยี ห์ ลัก (มคี ่าไมซ่ ้ากันและไมม่ คี ่าว่าง ) เช่น การนาแอททรบิ วิ ตร์ หัสนกั ศกึ ษามารวมกับแอททริบิวต์ รหสั วิชา ทาให้เกดิ เป็นแอททรบิ วิ ต์ทมี่ ีคา่ ไมซ่ า้ ซอ้ นกนั เรียกคียท์ เ่ี กดิ จากการรวมรหัสนกั ศกึ ษา และรหสั วชิ าว่า คยี ์รวมหรอื คยี ์ผสม ภาพที่ 2.5 ผลการเรียน รหสั นกั ศึกษา รหสั วชิ า ผลการเรียน 50320001 2201-1004 3.5 50320002 2201-2405 3 50320003 2201-2414 4 เพคื่อยีคผ์วาสมมเข=า้ รใจหเัสก่ียนวกั กศบั กึ ชษนาดิ+แรลหะสั คววิชาามสัมพนั ภธ์ขาพอทงค่ี ีย2์.5จงึแขสอดแงสตดวั งอคยวา่างมคสยี มั ผ์ พสันมธด์ งั ภาพท่ี 2.6 ตารางนักศกึ ษา

19 รหสั นักศึกษา ช่อื สกลุ รหัสสาขาวิชา 50320001 เรียบ คามลู 01 50320002 ธวชั ชยั ยนิ ดี 02 50320003 วรัญญา วงเลงิ 03 คยี ค์ ู่แข่ง 1 ตารางสาขาวิชNา คยี น์ อก คียห์ ลกั รหัสสาขาวชิ า ชือ่ สาขาวชิ า 01 คอมพวิ เตอร์ธรุ กจิ 02 การบญั ชี 03 การตลาด ภาพท่ี 2.6 แสดงความสมั พนั ธช์ นิดของคีย์ จากภาพที่ 2.6 แสดงใหเ้ ห็นวา่ เอนทติ ้ีนักศกึ ษามีแอททรบิ ิวตท์ ่ีมีคุณสมบัติ เป็นคยี ์หลัก 2 แอททรบิ วิ ต์ ได้แก่ แอททรบิ วิ ต์รหสั นกั ศึกษาและแอททรบิ วิ ตช์ ื่อ แต่จากตวั อยา่ งข้างต้น เลอื กแอททรบิ ิวต์รหัสนักศกึ ษาเปน็ คยี ์หลัก ดงั นัน้ แอททริบวิ ตช์ ือ่ จงึ กลายเปน็ คยี ค์ ู่แขง่ โดยข้อมูลของรหัส นักศึกษาจะตอ้ งไมซ่ า้ กัน และมคี ีย์นอกของเอนทติ ้ี คือ รหัสสาขาวิชา ซึ่งเชอื่ มโยงความสัมพนั ธไ์ ปยังแอทท ริบวิ ต์รหัสสาขาวชิ าของเอนทติ ี้สาขาวิชา ขอ้ มูลทุกตวั ของแอททริบิวต์สาขาวิชาในเอนทติ ้นี ักศึกษาจะต้อง อยูใ่ นแอททริบิวตร์ หัสสาขาวชิ าของเอนทิตี้สาขาวชิ า สว่ นเอนทติ สี้ าขาวิชามีคีย์หลกั คอื รหัสสาขาวชิ า 2.5 การออกแบบระบบฐานข้อมลู กกกกกกกกการออกแบบระบบฐานข้อมูลเป็นขนั้ ตอนหนงึ่ ของการออกแบบระบบซง่ึ ประกอบด้วยรเี ลชนั ต่าง ๆ ของระบบพรอ้ มแอททริบวิ ตข์ องแตล่ ะรเี ลชนั ตลอดจนการกาหนดความสัมพนั ธแ์ ละคีย์ตา่ ง ๆ ของรีเล ชนั ไดอ้ ยา่ งถกู ตอ้ งเหมาะสม การออกแบบระบบฐานข้อมลู ที่ดีจะทาให้ การจัดเกบ็ ข้อมลู เป็นระเบียบและ เขยี นโปรแกรมได้ง่ายซึง่ มีข้นั ตอนการออกแบบระบบฐานข้อมลู ดังน้ี กกกกกกกก2.5.1 เกบ็ รวบรวมรายละเอยี ดทั้งหมด กกกกกกกกกกกกเปน็ การเกบ็ รวบรวมขอ้ มลู และรายละเอยี ดต่าง ๆ ของงาน รวมท้งั ความตอ้ งการของผูใ้ ช้ ขอ้ มูลอาจได้จากการสารวจความตอ้ งการของผ้ใู ช้โดยวธิ ีการสมั ภาษณ์ เอกสาร แบบฟอร์มตา่ ง ๆ เพ่ือนามา สร้างองค์ประกอบของตาราง กกกกกก กก2.5.2 กาหนดโครงสร้างของตาราง

20 กกกกกกกกกกกกข้อมูลที่ได้จากการรวบรวมรายละเอียดทง้ั หมดจะนามากาหนดรีเลชนั และแอททรบิ ิวต์ จากนัน้ นารีเลชันและแอททริบวิ ต์มากาหนดโครงสร้างตาราง โดยแปลงแอททริบวิ ต์เป็นเขตขอ้ มูล พรอ้ มท้งั กาหนดชนดิ และขนาดขอ้ มูลในแต่ละเขตข้อมูล รวมทั้งเง่อื นไขหรอื กฎเกณฑ์ท่ใี ช้ในการกาหนดลกั ษณะข้อมลู กกกกกกกก2.5.3 กาหนดคยี ์ กกกกกกกกกกกกพจิ ารณาวา่ แอททริบิวต์ใดมีคุณสมบัติเหมาะทีจ่ ะนามาเป็นคยี ์หลัก โดยเลอื กแอททรบิ วิ ต์ท่ี มีค่าไมซ่ า้ กนั ถา้ ไม่มีแอททรบิ ิวต์ใดเลยตอ้ งกาหนดเขตข้อมูลใหมเ่ พ่ือใช้เปน็ คยี ์หลกั โดยเฉพาะ กกกกกกกก2.5.4 การปรบั รเี ลชันใหอ้ ยใู่ นรูปแบบบรรทดั ฐาน (Normalization) กกกกกกกกกก การปรับรีเลชันใหอ้ ยู่ในรปู แบบบรรทัดฐานเปน็ กระบวนการนาโครงร่าง ของ รีเลชนั มาแยกเปน็ รีเลชันต่าง ๆ ให้อยู่ในรูปแบบบรรทดั ฐาน (Normal Form : NF) ซึ่งงา่ ยต่อการนาไปใช้งานและ มีปญั หาน้อยท่ีสุด ไมว่ า่ จะเปน็ ปญั หาการซ้าซอ้ นของข้อมลู หรือปัญหา ความผิดปกติที่อาจเกิดขึ้นจากการ เพมิ่ ลบ หรือแก้ไขขอ้ มลู กกกกกกกก2.5.5 การกาหนดความสมั พันธ์ระหว่างรเี ลชัน กกกกกกกกกกกกนาตารางทัง้ หมดทไ่ี ด้หลงั จากทาใหอ้ ยใู่ นรปู แบบบรรทัดฐานมาสรา้ งความสัมพนั ธโ์ ดยใชค้ ีย์ ทีก่ าหนด หรือคยี ์ที่เกิดข้นึ ใหมจ่ ากการทานอร์มลั ไลเซชันเปน็ ตวั เชอ่ื ม ซงึ่ อาจเปน็ หนงึ่ ต่อหน่งึ หนง่ึ ต่อกล่มุ หรอื กลุม่ ตอ่ กลุ่ม ขึน้ อยกู่ บั ลกั ษณะของข้อมูล ท้ังนี้การกาหนดความสัมพันธข์ องขอ้ มลู มคี วามสาคัญมาก ฉะน้ันผู้ออกแบบจะตอ้ งวิเคราะห์ให้ไดว้ ่าข้อมูลในตารางตา่ ง ๆ มคี วามสมั พันธก์ ันในลักษณะใด 2.6 การนอร์มลั ไลเซชนั กกกกกกกกกระบวนการนอร์มลั ไลเซชนั เปน็ หลักการวิเคราะห์รีเลชันใหอ้ ยู่ในรูปแบบปกติ ซึง่ มีอยู่ 5 ระดับ ได้แก่ นอร์มัลไลเซชนั ระดบั ท่ี 1 (First Normal Form : 1NF) เป็นการกาจัดกล่มุ ข้อมูลท่ซี า้ กนั (Repeating Group) นอรม์ ลั ไลเซชัน ระดบั ท่ี 2 (Second Normal Form : 2NF) เปน็ การกาจัดแอททริบิวตท์ ่ี ขนึ้ กับบางส่วนของคยี ์ (ถา้ คียน์ น้ั ประกอบดว้ ยแอททรบิ ิวต์มากกวา่ หนง่ึ ตวั ข้นึ ไป) นอร์มัลไลเซชัน ระดับท่ี 3 (Third Normal Form : 3NF) เปน็ การกาจดั แอททริบิวต์ที่ข้ึนกับ แอททริบวิ ตอ์ ่ืนทไ่ี ม่ใช่คีย์ นอรม์ ลั ไลเซชนั ระดบั ท่ี 4 (Fourth Normal Form : 4NF) เป็นการกาจดั แอททริบวิ ตท์ ม่ี ี การขึ้นต่อกันแบบเชงิ สัมพันธ์ (Multivalued Dependency) นอร์มลั ไลเซชนั ระดับที่ 5 (Fifth Normal Form : 5NF) เป็นการกาจัดแอททริบิวต์ ท่ีมกี าร ขน้ึ ตอ่ กนั แบบเชิงรว่ ม (Join Dependency) กกกกกกก ในทางทฤษฎีการทานอรม์ ัลไลเซชันจะทาไดส้ ูงสดุ 5 ระดับ แต่ในทางปฏิบัตพิ บวา่ การทาถงึ ระดับท่ี 3 กส็ ามารถแก้ปญั หาความผิดปกตแิ ละความซา้ ซอ้ นของข้อมลู ได้ ดงั นัน้ จึงขอกล่าวถึงเพยี ง นอร์มัลไลเซชัน ระดบั ที่ 1 ถงึ ระดับที่ 3 ดงั ตัวอยา่ ง

21 กกกกกก ตวั อยา่ ง ข้อมูลกอ่ นทานอรม์ ัลไลเซชันของการลงทะเบียนเรยี น ประกอบดว้ ย รีเลชนั การ ลงทะเบียน ซง่ึ แต่ละคร้งั ในการลงทะเบยี น นักศกึ ษาสามารถลงทะเบียนไดม้ ากกวา่ 1 วิชา ดงั ภาพท่ี 2.7 รเี ลชันการลงทะเบยี น รหสั ชอ่ื รหสั วชิ า ช่ือวิชา หน่วย รหัสอาจารย์ ชือ่ อาจารย์ นกั ศกึ ษา นักศึกษา กิต ผูส้ อน 50330001 ณัฐชา 2000- ภาษาไทยเพ่ืออาชีพ 1 2 1005 สุปราณี 1101 หลักการเขยี นโปรแกรม 2 1002 ภานวุ ชั ร์ 2201- การใชโ้ ปรแกรมฐานข้อมลู 2 1001 กลุ นที 2410 2201- 2405 50330002 ปารเมธ 2000- ภาษาไทยเพอ่ื อาชีพ 2 2 1004 ชมพู่ 1102 หลกั การเขยี นโปรแกรม 2 1002 ภานุวัชร์ 2201- การใชโ้ ปรแกรมฐานข้อมูล 2 1001 กลุ นที 2410 2201- 2405 50330003 อภสิ ิทธ์ิ 2000- ภาษาไทยเพอ่ื อาชีพ 2 2 1004 ชมพู่ 1102 หลกั การเขยี นโปรแกรม 2 1002 ภานุวัชร์ 2201- 2410 ภาพท่ี 2.7 แสดงตวั อย่างรเี ลชนั ท่ีไม่อย่ใู นรูปแบบบรรทดั ฐาน กกก (1) นอรม์ ัลไลเซชนั ระดับท่ี 1 (Fisrt Normal Form : 1NF) กกกกกกกกกก นอรม์ ัลไลเซชนั ในระดับท่ี 1 เป็นขั้นตอนแรกของกระบวนการ นอร์มลั ไลเซชนั โดยรีเลชนั ทม่ี ีคุณสมบัติอยู่ในรปู แบบของ 1NF รีเลชนั ใด ๆ จะอยใู่ นรปู แบบบรรทดั ฐาน ระดับที่ 1 เม่ือค่าของแต่ละแอททรบิ วิ ต์ในแต่ละทเู พลิ มเี พียงค่าเดยี ว ดังนนั้ จากตัวอยา่ งในภาพท่ี 2.7 จะต้องทาการปรับรเี ลชันให้อยใู่ นรปู แบบบรรทัดฐาน ระดับท่ี 1 ซึง่ สามารถทาโดยการแยกขอ้ มลู ของรหัสนักศึกษาและช่อื นักศึกษา ออกเป็นแต่ละแถว ดังภาพท่ี 2.8 รเี ลชนั การลงทะเบียน รหัส ชอ่ื รหัสวชิ า ชือ่ วชิ า หน่วยกิต รหสั นักศกึ ษา นักศึกษา 2 อาจารย์ ชอ่ื อาจารย์ ผ้สู อน 50330001 ณัฐชา 2000-1101 ภาษาไทยเพื่ออาชีพ 1 1005 สปุ ราณี

22 50330001 ณฐั ชา 2201-2410 หลกั การเขียนโปรแกรม 2 1002 ภานุวชั ร์ 50330001 ณัฐชา 2201-2405 การใช้โปรแกรมฐานข้อมูล 2 1001 กลุ นที 50330002 ปารเมธ 2000-1102 ภาษาไทยเพือ่ อาชีพ 2 2 1004 ชมพู่ 50330002 ปารเมธ 2201-2410 หลักการเขียนโปรแกรม 2 1002 ภานวุ ัชร์ 50330002 ปารเมธ 2201-2405 การใชโ้ ปรแกรมฐานขอ้ มูล 2 1001 กลุ นที 50330003 อภสิ ิทธิ์ 2000-1102 ภาษาไทยเพือ่ อาชีพ 2 2 1004 ชมพู่ 50330003 อภสิ ทิ ธ์ิ 2201-2410 หลกั การเขยี นโปรแกรม 2 1002 ภานุวัชร์ ภาพที่ 2.8 แสดงตัวอย่างรเี ลชันนกั ศึกษาและรเี ลชนั รายวิชาที่ผา่ นการนอร์มัลไลเซชนั ระดับที่1(1NF) กกกกกกกกจากตวั อย่างภาพที่ 2.8 รเี ลชันการลงทะเบียนจะอยูใ่ นรูปแบบบรรทัดฐานระดบั ท่ี 1 ซ่งึ จะเห็น ว่าเราไม่สามารถใชร้ หสั นักศึกษาเป็นคียห์ ลักได้ จึงต้องใชร้ หัสนกั ศกึ ษาและรหสั วชิ าเปน็ คยี ์ร่วมกนั เกิดเปน็ คยี ์ ผสม กกกกกกก (2) นอรม์ ลั ไลเซชนั ระดับท่ี 2 (Second Normal Form : 2NF) กกกกกกก รีเลชนั ทีอ่ ยนู่ อรม์ ัลไลเซชันในระดับท่ี 2 จะต้องอยใู่ นรปู แบบของ 1NF มากอ่ น และทกุ แอททริบิวต์ทไ่ี ม่ใช่คยี ์ (Non key) ต้องข้ึนกับคยี ห์ ลกั อย่างแท้จรงิ ไมใ่ ช่ขน้ึ กบั เพียงบางสว่ นของคีย์หลัก (ถ้า คีย์นน้ั ประกอบแอททรบิ วิ ตม์ ากกวา่ 1 แอททรบิ ิวต)์ กกกกกกก การทาให้รเี ลชนั อย่ใู นรูป 2NF จะตอ้ งแยกรเี ลชันทง้ั หมดทีข่ ้ึนกับบางสว่ นของคียห์ ลักออกมา สร้างเปน็ รีเลชันใหม่ และกาหนดใหส้ ว่ นของคยี ์หลักท่ีแอททริบวิ ต์นนั้ ขึน้ ด้วยเปน็ คียใ์ นรีเลชันใหม่ กกกกกกก จากตวั อย่าง จะตอ้ งแยกรีเลชันการลงทะเบยี น ออกเปน็ 2 รเี ลชนั คอื กกกกก กก รเี ลชันนกั ศกึ ษา ประกอบดว้ ย แอททรบิ ิวต์ รหัสนกั ศกึ ษา, ช่ือนกั ศกึ ษา กกกกกกกก รเี ลชันรายวิชา ประกอบด้วย แอททริบวิ ต์ รหัสวิชา, ชื่อวชิ า, หน่วยกติ และคงเหลือรเี ลชนั เดมิ คอื รเี ลชันการลงทะเบยี น ประกอบดว้ ยแอททรบิ วิ ตร์ หสั นักศึกษา, รหัสวิชา, รหัสอาจารยผ์ ูส้ อน และชอ่ื อาจารย์ ดังนี้ รเี ลชันนักศกึ ษา 1 รีเลชน่ั รายวชิ า 2 รหสั นกั ศึกษา ชอื่ นกั ศึกษา รหัสวชิ า ช่อื วิชา หนว่ ยกิต 50330001 ณฐั ชา 2000-1101 ภาษาไทยเพื่ออาชีพ 1 2 50330002 ปารเมธ 2000-1102 ภาษาไทยเพอ่ื อาชีพ 2 2 50330003 อภิสิทธิ์ 2201-2410 หลักการเขียนโปรแกรม 2 2201-2405 การใชโ้ ปรแกรมฐานข้อมูล 2 รีเลชนั การลงทะเบียน รหัสวิชา รหัสอาจารยผ์ สู้ อน ช่ืออาจารย์ 2000-1101 1005 สุปราณี รหสั นักศกึ ษา 2201-2410 1002 ภานุวชั ร์ 50330001 50330001

23 50330001 2201-2405 1001 กุลนที 330002 2000-1102 1004 ชมพู่ 50330002 2201-2410 1002 ภานุวชั ร์ 50330002 2201-2405 1001 กลุ นที 50330003 2000-1102 1004 ชมพู่ 50330003 2201-2410 1002 ภานุวัชร์ ภาพท่ี 2.9 แสดงรเี ลชันตา่ ง ๆ ที่ผ่านการนอรม์ ลั ไลเซชันระดับที่ 2 (2NF) กกกกกกกก (3) นอร์มลั ไลเซชนั ระดบั ท่ี 3 (Third Normal Form : 3NF) กกกกกกกก รีเลชันทอ่ี ยู่นอรม์ ลั ไลเซชนั ในระดบั ท่ี 3 จะต้องอยู่ในรูปแบบของ 2NF มากอ่ น และทุกแอททริบิวตท์ ่ีไมใ่ ช่คยี ์ (Non-key) จะต้องขึ้นกบั คยี ห์ ลกั เท่านั้น และต้องไม่มี การขึ้นตอ่ กันระหวา่ งแอททรบิ วิ ตท์ ไ่ี ม่ใชค่ ีย์ (Transitive Dependency) กกกกกกกกก หลงั จากทานอรม์ ลั ไลเซชันในระดบั ที่ 2 แลว้ พบว่าแอททริบิวตช์ ่อื อาจารยใ์ นภาพที่ 2.9 ไม่ไดข้ ึ้นกับคยี ห์ ลัก ซึง่ ประกอบไปดว้ ย รหัสนกั ศกึ ษา และรหสั วชิ าแต่ช่ืออาจารยไ์ ปขนึ้ กับรหสั อาจารย์ ผู้สอน ซ่ึงไม่ใช่คียห์ ลกั ของรีเลชนั การลงทะเบยี น ดังนัน้ จึงตอ้ งกาจัดคยี ์ทีไ่ มใ่ ช่คีย์คู่แข่งออกไปสรู่ เี ลชันใหมไ่ ด้ ดังภาพที่ 2.10 รีเลชนั อาจารย์ 3 รหัสอาจารย์ผสู้ อน ชอ่ื อาจารย์ 1001 กุลนที 1002 ภานวุ ชั ร์ 1004 ชมพู่ 1005 สปุ ราณี รเี ลชนั การลงทะเบยี น 4 รหสั นกั ศึกษา รหสั วิชา รหัสอาจารยผ์ ้สู อน 50330001 2000-1101 1005 50330001 2201-2410 1002 50330001 2201-2405 1001 50330002 2000-1102 1004 50330002 2201-2410 1002 50330002 2201-2405 1001 50330003 2000-1102 1004 50330003 2201-2410 1002 ภาพท่ี 2.10 แสดงรีเลชนั ตา่ ง ๆ ทผ่ี า่ นการนอรม์ ลั ไลเซชันระดับท่ี 3 (3NF)


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook