1. ความหมายกระบวนการนอรม์ ไล ลไ์์
การทานอร์มลั ไลเซชนั เป็นวธิ ีการในการกาหนดแอตทริบิวตใ์ หก้ บั แต่ละเอนทิตี เพอื่ ใหไ้ ดโ้ ครงสร้างของตารางท่ีดี สามารถควบคุมความซ้าซอ้ นของขอ้ มูลหลีกเล่ียงความ
ผดิ ปกติของขอ้ มูล โดยทว่ั ไปผลลพั ธข์ องการนอร์มลั ไลเซชนั จะไดต้ ารางที่มีโครงสร้างซบั ซอ้ นนอ้ ยลง แต่จานวนของตารางจะมากข้ึน
การทานอร์มลั ไลเซชนั จะประกอบดว้ ยนอร์มลั ฟอร์ม (Normal Form) แบบต่าง ๆ ท่ีมีเง่ือนไขของการทาใหอ้ ยใู่ นรูปของนอร์มลั ฟอร์มท่ีแตกต่างกนั ไป ข้ึนอยกู่ บั
ผอู้ อกแบบฐานขอ้ มูลวา่ ตอ้ งการลดความซ้าซอ้ นในฐานขอ้ มูลใหอ้ ยใู่ นระดบั ใด ซ่ึงประกอบดว้ ยนอร์มลั ฟอร์มแบบต่าง ๆ ดงั ต่อไปน้ี
– นอร์มลั ฟอร์มท่ี 1 (First Normal Form : 1NF)
– นอร์มลั ฟอร์มท่ี 2 (Second Normal Form : 2NF)
– นอร์มลั ฟอร์มท่ี 3 (Third Normal Form : 3NF)
– บอยซ์คอดดน์ อร์มลั ฟอร์ม (Boyce-Codd Normal Form : BCNF)
– นอร์มลั ฟอร์มท่ี 4 (Fourth Normal Form : 4NF)
– นอร์มลั ฟอร์มที่ 5 (Fifth Normal Form : 5NF)
2. นิยามรูปแบบบรรทตล ฐาน ดงล น้ี
2.1 รูปแบบบรรทตล ฐานระดบล ท่ี 1 ( First Norml Form : 1 NF )
2.2 รูปแบบบรรทตล ฐานระดบล ท่ี 2 (Second Normai Form : 2 NF)
2.3 รูปแบบบรรทตล ฐานระดบล ท่ี 3 (Third Normal Form : 3 NF)
2.4 รูปแบบบรรทตล ฐาน บอย-คอดด์ (Boyce – Codd Normal Form : BCNF)
2.5 รูปแบบบรรทตล ฐานระดบล ท่ี 5 ( Fourth Norml Form : 4 NF )
2.6 รูปแบบบรรทตล ฐานระดบล ท่ี 6 ( Fifth Norml Form : 5 NF )
2.1. รูปแบบบรรทตล ฐานระดบล ท่ี 1 ( First Norml Form : 1 NF )
คุณสมบตั ิของรีเลชนั ของแบบจาลองขอ้ มูลเชิงสัมพนั ธ์ กค็ ือ ขอ้ มูลในแต่ละทปั เพิลจะตอ้ งไม่ซ้ากนั และค่าในแต่ละแอตทริบิวตจ์ ะตอ้ งไม่สามารถถูกแบ่งแยกยอ่ ยลงไป
ไดอ้ ีกหรือมีความเป็นอะตอมมิค
(Atomic) รวมถึงจะตอ้ งมีค่าเพียงค่าเดียวท่ีอยใู่ นแต่ละแอตทริบิวตห์ รือมีความเป็นซิงเกิลแวลู (Single Value) ซ่ึงในการทานอร์มลั ไลเซชนั ใหอ้ ยใู่ นนอร์มลั ฟอร์ท่ี 1 กอ็ าศยั
คุณสมบตั ิดงั ท่ีกล่าวไวข้ า้ งตน้
การที่ขอ้ มูลใน 1 ทปั เพิล สามารถมีค่าในแต่ละแอตทริบิวตไ์ ดม้ ากกวา่ หน่ึงค่า (Multivalued) จะทาใหเ้ กิดรีพที ติง้ กรุ๊ป ดงั ตารางท่ีแสดงในภาพขา้ งล่าง ซ่ึงเลขที่โครงการหน่ึง
หมายเลขประกอบดว้ ยกลุ่มขอ้ มูลหลายกลุ่ม ซ่ึงทาใหร้ ีเลชนั ดงั กล่าว ขาดคุณสมบตั ิซิงเกิลแวลู
2.2.รูปแบบบรรทตล ฐานระดบล ท่ี 2 (Second Normai Form : 2 NF)
ในหน่ึงรีเลชนั จะประกอบดว้ ยแอตทริบิวตต์ ่าง ๆ ที่มีความสมั พนั ธ์ที่ข้ึนต่อกนั ซ่ึงความสมั พนั ธด์ งั กล่าวจะเป็นตวั กาหนดวา่ แอตทริบิวตใ์ ด
เป็นตวั กาหนดขอ้ มูล หรือ คียแ์ อตทริบิวต์ (Key Attribute) และและแอตทริบิวตใ์ ดเป็นขอ้ มูลท่ีถูกกาหนดหรือนอนคียแ์ อตทริบิวต์
(Nonkey Attribute)
ฟังกช์ นั นลั ดีเพนเดนซี (Functional Dependency: FD)
ในการทานอร์มลั ไลเซชนั จะตอ้ งมีความเขา้ ใจหลกั การของฟังกช์ นั ดีเพนเดนซี
(Function Dependency : FD) เสียก่อน โดยมีคาจากดั ความคือ B ข้ึนอยกู่ บั A ถา้ ทราบค่าของ A กจ็ ะทาใหร้ ู้ค่าของ B ได้
2.3. รูปแบบบรรทตล ฐานระดบล ท่ี 3 (Third Normal Form : 3 NF)
ในหน่ึงรีเลชนั จะประกอบคียแ์ อตทริบิวตแ์ ละนอนคียแ์ อตทริบิวต์ คียแ์ อตทริบิวตจ์ ะตอ้ งเป็นตวั กาหนดความหมายหรือการมีอยขู่ องแอ
ตทริบิวตอ์ ่ืน ๆ ที่อยใู่ นรีเลชนั เสมอ
ทรานซิทีฟดีเพนเดนซี (Transitive Dependency)
ทรานซิทีฟดีเพนเดนซี หมายถึง การท่ีมีฟังกช์ นั นลั ดีเพนเดนซี ระหวา่ งแอตทริบิวตท์ ่ีไม่ไดเ้ ป็นส่วนของคียใ์ ด ๆ แต่มีแอตทริบิวตอ์ ื่น ๆ มา
ข้ึนกบั แอตทริบิวตน์ ้นั ตวั อยา่ งเช่น จากตารางในภาพขา้ งล่าง แอตทริบิวตช์ ่ือพนกั งาน และรหสั ตาแหน่งงานจะข้นึ อยกู่ บั คียร์ หสั พนกั งาน
ในขณะท่ีแอตทริบิวตค์ ่าแรงต่อชวั่ โมของพนกั งาน จะข้ึนอยกู่ บั แอตทริบิวตร์ หสั ตาแหน่งงานซ่ึงไม่ใช่คียอ์ ีกต่อหน่ึงทาใหม้ ีทรานซิทีฟดีเพน
เดนซีเกิดข้ึนในรีเลชนั น้ี
1. รีเลชนั น้นั เป็นนอร์มลั ฟอร์มท่ี 2 อยแู่ ลว้
2. รีเลชนั น้นั ไม่มีทรานซิทีฟดีเพนเดนซี
2.4. รูปแบบบรรทตล ฐาน บอย-คอดด์ (Boyce – Codd Normal Form : BCNF)
ในหน่ึงรีเลชนั อาจจะประกอบดว้ ยหลายแคนดิเดตคีย์ (Candidate Key) ทุกแอตทริบิวตใ์ นรีเลชนั จะตอ้ งข้ึนอยกู่ บั แคนดิเดตคียเ์ สมอ เราสามารถกาหนดนิยามของรีเลชนั ท่ี
อยใู่ นรูปของบอยซ์คอดดน์ อร์มลั ฟอร์ม กต็ ่อเมื่อรีเลชนั มีคุณสมบตั ิตามเง่ือนไขดงั ต่อไปน้ี
1. รีเลชนั น้นั เป็นนอร์มลั ฟอร์มท่ี 3 อยแู่ ลว้
2. ทุกแอตทริบิวตใ์ นรีเลชนั จะตอ้ งข้ึนกบั แคนดิเดตคีย์
รีเลชนั จะอยใู่ นรูปบอยซ์คอดดน์ อร์มลั ฟอร์ม ถา้ ทุกแอตทริบิวตข์ ้ึนอยกู่ บั แคนดิเดตคีย์ (Candidate Key) ดงั น้นั ถา้ ใน 1 รีเลชนั มีแคนดิเดตคียเ์ พยี งตวั เดียวแลว้ นอร์มลั
ฟอร์มที่ 3 และบอยซ์คอดดน์ อร์มลั ฟอร์ม จะเหมือนกนั โอกาสที่คุณสมบตั ิของบอยซค์ อดดน์ อร์มลั ฟอร์มจะถูกละเมิดน้นั เกิดข้ึนไดน้ อ้ ย และจะเกิดไดก้ บั รีเลชนั ท่ีมีแคนดิ
เดตคียม์ ากกวา่ หน่ึงเท่าน้นั ดงั ตวั อยา่ งในภาพขา้ งล่าง รีเลชนั การลงทะเบียนเรียน รีเลชนั ดงั กล่าวอยใู่ นรูปนอร์มลั ฟอร์มท่ี 3 แลว้ แต่กย็ งั มีบางส่วนมีปัญหาอยู่ ตรงจุดท่ี
แอตทริบิวตร์ หสั วชิ าเรียน
2.5. รูปแบบบรรทตล ฐานระดบล ท่ี 5 ( Fourth Norml Form : 4 NF )
ในขณะที่การทาใหอ้ ยใู่ นรูปของนอร์มลั ฟอร์มต่าง ๆ ที่ผา่ นมา จะเกี่ยวขอ้ งกบั การข้ึนตรงต่อกนั ของขอ้ มูลในแต่ละแอตทริบิวตห์ รือ
ฟังกช์ นั นลั ดีเพนเดนซี แต่การทาใหอ้ ยใู่ นรูปของนอร์มลั ฟอร์มท่ี 4 จะเกี่ยวขอ้ งกบั รูปแบบของการข้ึนตรงต่อกนั ของขอ้ มูลในระดบั ที่
ซบั ซอ้ นกวา่
มลั ติแวลูดีเพนเดนซี (Multivalued Dependency)
ถา้ แต่ละแอตทริบิวตใ์ นหน่ึงรีเลชนั แบ่งออกเป็นกลุ่มของขอ้ มูลอิสระ เช่นแอตทริบิวต์ X, Y และ Z แบ่งออกเป็นกลุ่มขอ้ มูล
ของ X, Y และ Z ที่เป็นอิสระต่อกนั มลั ติแวลลูดีเพนเดนซี X –>> Y หมายถึงวา่ ค่า X หน่ึงค่าสามารถที่จะบอกค่า Y ไดห้ ลาย ๆ (X
Multi-Determinse Y) ไม่วา่ Z จะมีค่าเป็นอะไรกต็ าม
2.6. รูปแบบบรรทตล ฐานระดบล ท่ี 6 ( Fifth Norml Form : 5 NF )
การแปลงใหอ้ ยใู่ นรูปของนอร์มลั ฟอร์มท่ี 5 จะพจิ ารณาถึงการข้ึนต่อกนั ของขอ้ มูลในการแยกขอ้ มูลในรีเลชนั ออกเป็นรีเลชนั ยอ่ ย และประกอบรีเลชนั ยอ่ ยกลบั เป็นรีเลชนั
ใหญ่เช่นเดิม ซ่ึงเป็นการตรวจสอบวา่ เมื่อรวมกนั ใหม่ดว้ ยวธิ ีการจอยนแ์ ลว้ จะไดร้ ีเลชนั กลบั มาเหมือนเดิมทุกประการหรือไม่
จอยนโ์ อเปอรชนั (Join Operation)
ถา้ มี R1(X,Y) และ R2(Y,Z) R1 JOIN R2 = R3(X, Y, Z) โดยท่ี t(x, y, z) อยใู่ น R3 กต็ ่อเม่ือมี t1(x,y) อยใู่ น R1 และ t2(y,z) อยใู่ น R2
จอยนด์ ีเพนเดนซี (Join Dependency)
ในการแยกรีเลชนั ออกเป็นส่วนยอ่ ย (Decomposition) R1, R2, R3, Rn มีคุณสมบตั ิจอยนด์ ีเพนเดนซี กต็ ่อเมื่อ R1 JOIN R2 JOIN R3 … JOIN Rn = R นน่ั คือเมื่อเอา
รีเลชนั ยอ่ ยมารวมกนั กต็ อ้ งไดร้ ีเลชนั เดิม ท่ีไม่มีขอ้ มูลสูญหาย และไม่มีทปั เพิลที่เกินมา ท่ีเรียกวา่ สพวิ เรียสทปั เพลิ (Spurious Tuple)
นิยามของ 5NF รีเลชนั จะเป็น 5NF ถา้
1. รีเลชันนนั้ เป็นนอร์มลั ฟอร์มท่ี 4 อย่แู ล้ว
2. การแบ่งแยกรีเลชันมคี ุณสมบตั ิจอยน์ดีเพนเดนซี
3. ตวล อยา่ งกระบวนการปรบล บรรทตล ฐาน 1 NF – 3 NF
ในอดีตการเกบ็ รวบรวมขอ้ มูลของระบบงาน จะเป็นการเกบ็ รายละเอียดของ ขอ้ มูลทุกอยา่ งไวด้ ว้ ยกนั อาจจะอยใู่ นหลายรูปแบบ เช่นอยใู่ น
รูปแบบของเอกสาร หรือรายงาน ซ่ึงจะมีปัญหาการซา้ ซอ้ นของขอ้ มูล ทา้ ใหข้ อ้ มูลมีขนาดใหญ่สิ นเปลือง เน้ือท่ีและยากต่อการปรับปรุง
ขอ้ มูล ในปี ค.ศ.1917 Dr. Edgar Frank Codd เป็นคนแรก ที่ไดค้ ิดหาวธิ ีการหรือแนวทางท่ีใชใ้ นการตรวจสอบ และแกป้ ัญหาดงั กล่าวโดย
การนา้ เคา้ ร่างของตาราง มาทา้ ใหอ้ ยใู่ นรูปแบบบรรทดั ฐาน (Normal Form) หรืออีกนยั หน่ึง คือเป็น การแปลงขอ้ มูลที่มีโครงสร้างแบบ
ตาราง จากรูปแบบที่มีความซา้ ซอ้ นใหอ้ ยใู่ น รูปท่ีใชง้ านไดง้ ่าย ทา้ ใหก้ ารเพิม่ ขอ้ มูล การลบขอ้ มูล หรือการแกไ้ ขขอ้ มูลที่อยใู่ นตาราง ไม่เกิด
ความผดิ พลาดข้ึน โดยการทา้ ใหข้ อ้ มูลในแต่ละตารางใหอ้ ยใู่ นรูปท่ีเป็นหน่วยท่ี เลก็ ท่ีสุดไม่สามารถแตกออกเป็นหน่วยยอ่ ย ๆ ไดอ้ ีก แต่ยงั คง
ความสมั พนั ธ์ระหวา่ ง ขอ้ มูลในตารางต่าง ๆ ไวต้ ามหลกั การท่ีกา้ หนดไวใ้ นแบบ จา้ ลองฐานขอ้ มูลเชิงสมั พนั ธ์ เพราะการออกแบบฐานขอ้ มูล
ท่ีดี จะตอ้ งไม่มีความซา้ ซอ้ นในการจดั เกบ็ ขอ้ มูล
หวล ขอ้ ท่ี 2 ภาษา SQL
1. ความหมาย
2. รูปแบบคาสงล่
3. ตวล อย่างการเขยี น
1. ความหมาย
SQL ยอ่ มาจาก structured query language คือภาษาที่ใชใ้ นการเขียนโปรแกรม เพือ่ จดั การกบั ฐานขอ้ มูลโดยเฉพาะ เป็นภาษามาตราฐานบน
ระบบฐานขอ้ มูลเชิงสัมพนั ธ์และเป็นระบบเปิ ด (open system) หมายถึงเราสามารถใชค้ าสั่ง sql กบั ฐานขอ้ มูลชนิดใดกไ็ ด้ และ คาสงั่ งาน
เดียวกนั เมื่อสั่งงานผา่ น ระบบฐานขอ้ มูลที่แตกต่างกนั จะได้ ผลลพั ธ์เหมือนกนั ทาใหเ้ ราสามารถเลือกใชฐ้ านขอ้ มูล ชนิดใดกไ็ ดโ้ ดยไม่ติดยดึ
กบั ฐานขอ้ มูลใดฐานขอ้ มูลหน่ึง นอกจากน้ีแลว้ SQL ยงั เป็นชื่อโปรแกรมฐานขอ้ มูล ซ่ึงโปรแกรม SQL เป็นโปรแกรมฐานขอ้ มูลท่ีมี
โครงสร้างของภาษาที่เขา้ ใจง่าย ไม่ซบั ซอ้ น มีประสิทธิภาพการทางานสูง สามารถทางานที่ซบั ซอ้ นไดโ้ ดยใชค้ าสง่ั เพียงไม่ก่ีคาสัง่ โปรแกรม
SQL จึงเหมาะท่ีจะใชก้ บั ระบบฐานขอ้ มูลเชิงสมั พนั ธ์ และเป็นภาษาหน่ึง ซ่ึงแบ่งการทางานไดเ้ ป็น 4 ประเภท ดงั น้ี
1. Select query ใชส้ าหรับดึงขอ้ มูลท่ีตอ้ งการ
2. Update query ใชส้ าหรับแกไ้ ขขอ้ มูล
3. Insert query ใชส้ าหรับการเพิม่ ขอ้ มูล
4. Delete query ใชส้ าหรับลบขอ้ มูลออกไป
ปัจจุบนั มีซอฟตแ์ วร์ระบบจดั การฐานขอ้ มูล
2. รูปแบบคาสง่ั
ประเภทของคาส่งั ของภาษา SQL
ภาษา SQL เป็นภาษาที่ใชง้ านไดต้ ้งั แต่ระดบั เคร่ืองคอมพวิ เตอร์ส่วนบุคคลพีซีไปจนถึงระดบั เมนเฟรม ประเภทของ
คาสั่งในภาษา SQL (The subdivision of sql) แบ่งออกเป็น 3 ประเภท คือ
1) ภาษาสาหรับการนิยามขอ้ มูล (Data Definition Language : DDL) ประกอบดว้ ยคาสัง่ ท่ีใชใ้ นการกาหนด
โครงสร้างขอ้ มูลวา่ มีคอลมั นอ์ ะไร แต่ละคอลมั นเ์ กบ็ ขอ้ มูลประเภทใด รวมถึงการเพม่ิ คอลมั น์ การกาหนดดชั นี การ
กาหนดววิ หรือตารางเสมือนของผใู้ ช้ เป็นตน้
2) ภาษาสาหรับการจดั การขอ้ มูล (Data Manipulation Language : DML) ประกอบดว้ ยคาสัง่ ที่ใชใ้ นการเรียกใช้
ขอ้ มูล การเปล่ียนแปลงขอ้ มูล การเพม่ิ หรือลบขอ้ มูล เป็นตน้
3) ภาษาควบคุม (Data Control Language : DCL) : ประกอบดว้ ยคาสงั่ ท่ีใชใ้ นการควบคุม การเกิดภาวะพร้อมกนั
หรือการป้องกนั การเกิดเหตุการณ์ท่ีผใู้ ชห้ ลายคนเรียกใชข้ อ้ มูลพร้อมกนั และคาสั่งที่เก่ียวขอ้ งกบั การควบคุมความ
ปลอดภยั ของขอ้ มูลดว้ ยการกาหนดสิทธิของผใู้ ชท้ ี่แตกต่างกนั เป็นตน้
3.ตวั อยา่ งการเขียน
ภาษาที่กลายเป็นภาษามาตรฐานสาหรับระบบฐานขอ้ มูลคือ ภาษา Standard relational database
Query Language หรือเอสคิวแอล (SQL) หรือซีควอล (SE-QUEL) ซ่ึงเป็นภาษาท่ีพฒั นาข้ึนมา
โดยบริษทั ไอบีเอ มีภาษา SQL (Standard Query Language) เป็นส่วนหน่ึงของระบบฐานขอ้ มูล
แบบรีเลชน่ั เนล (Relational Database) ที่ไดร้ ับความนิยมมากเพราะง่ายตอ่ ความเขา้ ใจ และอยใู่ น
รูปภาษาองั กฤษ ภาษา SQL แบ่งออกเป็น 2 ส่วน คือ เอสคิวแอล (SQL) หรือซีควอล (SE-QUEL)
• ภาษาท่ีใชส้ าหรับนิยามขอ้ มลู (Data Definition Language-DDL)
• ภาษาสาหรับการจดั การขอ้ มลู (Data Manipulation Language: DML)
• ภาษาควบคุม (Control Language)
• ภาษาในการเลือกขอ้ มลู (Data Query Language)