รปู แบบบรรรทัดฐานประกอบดว ยหวั ขอยอยดังน้ี
ความหมายของกระบวนการนอรมลั ไลเซซนั
นอรม ลั ไลเซชัน (Normalization) คือวิธที ใ่ี ชในการปรบั โครงสรา งของตารางเพ่อื ใหไดตารางทสี่ ามารถเกบ็ ขอมลู ไดโดยการลดความซํา้ ซอนของขอมูล และรักษาความถกู ตองใหแกขอมลู โดย
ใหอ ยใู นรปู แบบทเ่ี รียกวา Normal Form การออกแบบฐานขอ มูลในรูปแบบบรรทดั ฐานการทาํ นอรม ัลไลเซชัน เปน วธิ ีการในการกาํ หนดแอตทริบิวตใ หก ับแตละเอนทติ เี พอื่ ใหไดโครงสรา งของ
ตารางที่ดสี ามารถควบคมุ ความซ้ําซอ นของขอ มลู หลกี เลีย่ งความผิดปกติของขอมูลโดยทัว่ ไปผลลัพธข องการนอรมัลไลเซชนั จะไดต ารางท่มี ีโครงสรา งซับซอ นนอ ยลงแตจาํ นวนของตารางจะ
มากขึน้ การทํานอรมลั ไลเซชัน จะประกอบดว ยนอรม ัลฟอรม (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)
1) รูปแบบบรรทัดฐานระดบั ที่ 1 (First Normal Form : 1NF)
คณุ สมบตั ิของรเี ลชนั ของแบบจาํ ลองขอมูลเชิงสมั พันธ ก็คอื ขอ มลู ในแตละทัปเพิลจะตองไมซ า้ํ กัน และคาในแตล ะแอตทริบิวตจะตอ งไมสามารถถูกแบงแยกยอ ยลงไปไดอีกหรอื มคี วามเปน อะตอมมคิ (Atomic) รวมถึงจะ
ตอ งมคี าเพียงคาเดียวทอ่ี ยูใ นแตละแอตทริบิวตหรือมคี วามเปนซิงเกลิ แวลู (Single Value) ซงึ่ ในการทํานอรม ลั ไลเซชันใหอ ยูในนอรมลั ฟอรที่ 1 กอ็ าศัยคุณสมบัตดิ งั ท่ีกลา วไวข า งตน
1.1) รีพีทตงิ้ กรุป (Repeating Group)การทข่ี อ มลู ใน 1 ทปั เพลิ สามารถมคี า ในแตละแอตทริบิวตไดม ากกวาหนง่ึ คา (Multivalued) จะทําใหเ กิดรีพีทต้งิ กรุป ดงั ตารางที่แสดงในภาพขา งลาง ซงึ่ เลขทโ่ี ครงการหนงึ่ หมายเลข
ประกอบดวยกลุม ขอมลู หลายกลมุ ซง่ึ ทําใหร ีเลชนั ดังกลาว ขาดคุณสมบตั ซิ งิ เกลิ แวลู
รีเลชนั จะอยใู นรปู ของนอรมัลฟอรมที่ 1 กต็ อเมอ่ื มีคณุ สมบัติตามเงือ่ นไขดงั ตอไปนี้ 1.2) นยิ ามของนอรมัลฟอรม ท่ี 1
1. มกี ารกําหนดแอตทริบิวตท ีเ่ ปน คีย
2. ตอ งไมม ีรพี ที ติง้ กรปุ แตล ะแถวหรือคอลัมนจ ะมคี าไดเพยี ง 1 คาเทานน้ั
จ3.ากแภอาตพทขราิบงิวบตนท เุกมตอ่ื วั กตาอรงกขารึ้นนออยรูกม ับัลคไียลห เซลชักนั ใหอ ยูในรูปนอรมลั ฟอรมที่ 1 จะไดตารางทแ่ี ตกยอ ยออกมาเปน 2 ตาราง ดงั ภาพขางลาง ซึ่งมีคุณสมบัติตามนอรม ัลฟอรมท่ี 1 แลว
2) การแปลงใหอ ยูใ นรปู นอรมัลฟอรมท่ี 2 (Second Normal Form : 2NF)
ในหนงึ่ รีเลชนั จะประกอบดว ยแอตทรบิ วิ ตตา ง ๆ ท่มี ีความสมั พันธท ี่ขึน้ ตอกัน ซงึ่ ความสัมพันธดังกลา วจะเปนตัวกาํ หนดวา แอตทรบิ วิ ตใ ดเปน ตวั กาํ หนดขอ มูล หรอื คียแอตทริบิวต (Key Attribute) และและแอตทริบวิ ตใดเปนขอมูลท่ี
ถกู กําหนดหรือนอนคยี แอตทรบิ ิวต (Nonkey Attribute)
2.1) ฟงกชนั นลั ดเี พนเดนซี (Functional Dependency: FD)ในการทํานอรมัลไลเซชัน จะตอ งมีความเขา ใจหลักการของฟงกชันดเี พนเดนซ(ี Function Dependency : FD) เสียกอ น โดยมีคาํ จํากัดความคือ B ข้นึ อยูกบั A ถา ทราบ
คา ของ A ก็จะทาํ ใหร ูคาของ B ไดฟ ง กช นั นัลดีเพนเดนซี สามารถแสดงดวยการใชเ คร่อื งหมายลกู ศร ( ->) ตัวอยางเชน A->B แสดง B เปน ฟง กชันนลั ดีเพนเดนตก ับ A กลาวคือ ถา รคู า A ก็จะทําใหท ราบคา ของ B ดวย ทกุ คาของ
A ทีม่ ีคาเทา กนั จะไดคา เทา กนั เสมอ
2.2) พาเชยี ลดีเพนเดนซี (Partial Dependency)
พารเชียลดเี พนเดนซี หมายถึง การทมี่ แี อตทริบิวตบ างแอตทรบิ วิ ต ที่ข้ึนอยูก ับเพยี งบางสว นของคียห ลักเทา นนั้ ตวั อยา งเชน จากตารางในภาพขางลาง แอตทริบวิ ตช อ่ื พนกั งานจะขึ้นอยกู บั คยี ร หสั พนกั งาน ในขณะที่แอตทริบิวตช่อื
แผนก จะข้ึนอยกู บั คยี ร หัสแผนก จะเหน็ วา ขอ มูลท่อี ยูในรเี ลชันเดียวกัน แตไ มไ ดขน้ึ อยกู ับคียใดคียหนึ่งทงั้ หมด แตจะขน้ึ อยูก บั คยี ใ ดคยี หนง่ึ เพยี งบางสวนเทาน้นั
2.3) นิยามของนอรมัลฟอรม ที่ 2
รีเลชนั จะอยูในรปู ของนอรม ลั ฟอรมที่ 2 ก็ตอเม่ือมีคณุ สมบตั ติ ามเงื่อนไขดังตอ ไปน้ี
1. รีเลชันน้นั เปนนอรมลั ฟอรม ที่ 1 อยูแลว
2. รเี ลชนั นั้นไมมพี ารเชยี ลดีเพนเดนซี
ตัวอยางรเี ลชันพนักงานในแผนกในภาพขา งบนเมื่อทําการแตกออกเปนรีเลชนั ยอยทไ่ี มม พี ารเ ชียลดีเพนเดนซีแลว จะไดเ ปน รเี ลชันสองรีเลชัน คือ รีเลชนั พนกั งานและ รีเลชันแผนก ซึ่งอยใู นรูปของนอรมลั ฟอรมท่ี 2 แลว ดงั ภาพขางลาง
3) การแปลงใหอ ยูในรูปนอรม ัลฟอรม ที่ 3 (Third Normal Form : 3NF)ในหนึ่งรเี ลชนั จะประกอบคยี แอตทรบิ วิ ตและนอนคียแ อตทริบิวต คยี แ อตทริบวิ ตจ ะตองเปนตัวกาํ หนดความหมายหรอื การมอี ยขู อง
แอตทรบิ ิวตอ่นื ๆ ทอ่ี ยูในรเี ลชันเสมอ
3.1) ทรานซิทฟี ดีเพนเดนซี (Transitive Dependency)ทรานซิทีฟดเี พนเดนซี หมายถึง การท่มี ีฟง กช ันนลั ดเี พนเดนซี ระหวางแอตทรบิ ิวตท ไ่ี มไ ดเปน สว นของคยี ใดๆแตมแี อตทรบิ วิ ตอน่ื ๆ มาข้นึ กับแอตทรบิ ิวต
นน้ั ตัวอยางเชน จากตารางในภาพขางลา งแอตทรบิ วิ ตช ่ือพนกั งาน และรหสั ตําแหนงงานจะขน้ึ อยกู บั คียร หสั พนักงาน ในขณะที่แอตทรบิ วิ ตคา แรงตอชว่ั โมของพนกั งาน จะขน้ึ อยูกบั แอตทรบิ ิวตร หสั ตาํ แหนง งานซ่งึ
ไมใชคียอีกตอหนง่ึ ทาํ ใหม ที รานซทิ ีฟดีเพนเดนซีเกิดขึ้นในรเี ลชนั น้ี
รเี ลชันจะอยใู นรูปของนอรมลั ฟอรมท่ี 3 กต็ อ เม่ือมคี ณุ สมบัติตามเง่ือนไขดงั ตอไปน้ี 3.2) นิยามของนอรมลั ฟอรมที่ 3
1. รเี ลชนั น้ันเปนนอรมลั ฟอรม ที่ 2 อยแู ลว
2. รเี ลชันนน้ั ไมม ีทรานซิทฟี ดีเพนเดนซตี ัวอยางรีเลชนั การทํางานของพนกั งานในภาพขางบนเมือ่ ทาํ การแตกออกเปน รเี ลชนั ยอยทไี่ มม ที รานซิทีฟดเี พนเดนซีแลวจะไดเปน รเี ลชันสองรเี ลชนั คือรเี ลชันพนกั งานและรเี ล
ชนั ตําแหนงงานซึ่งอยใู นรูปของนอรม ลั ฟอรมท่ี 3 แลว ดงั ภาพขา งลาง
4) การแปลงใหอ ยใู นรปู บอยซค อดดน อรม ลั ฟอรม (Boyce-Codd Normal Form : BCNF)ในหนึ่งรเี ลชันอาจจะประกอบดวยหลายแคนดิเดตคยี (Candidate Key) ทุกแอตทริบวิ ตใ นรีเลชนั จะตอ งขึ้นอยกู ับ
แคนดเิ ดตคียเสมอ เราสามารถกาํ หนดนิยามของรเี ลชนั ท่ีอยูใ นรปู ของบอยซค อดดนอรมัลฟอรม ก็ตอ เมอ่ื รเี ลชนั มีคุณสมบตั ิตามเง่ือนไขดงั ตอ ไปนี้
1. รีเลชนั น้ันเปน นอรมัลฟอรม ท่ี 3 อยูแลว
2. ทกุ แอตทรบิ วิ ตใ นรีเลชนั จะตอ งขน้ึ กบั แคนดเิ ดตคียร เี ลชนั จะอยใู นรปู บอยซค อดดนอรมัลฟอรม ถา ทกุ แอตทรบิ ิวตข ึ้นอยกู บั แคนดเิ ดตคีย(Candidate Key) ดังนั้นถา ใน 1 รเี ลชันมีแคนดิเดตคยี เ พียงตวั เดียวแลว น
อรม ลั ฟอรม ท่ี 3 และบอยซค อดดนอรมลั ฟอรม จะเหมอื นกัน โอกาสท่คี ณุ สมบตั ขิ องบอยซคอดดนอรมลั ฟอรม จะถูกละเมดิ นน้ั เกิดขน้ึ ไดน อ ยและจะเกดิ ไดก บั รีเลชนั ทม่ี แี คนดิเดตคียม ากกวา หนง่ึ เทา น้นั ดังตวั อยาง
ในภาพขา งลางรีเลชันการลงทะเบียนเรียนรเี ลชนั ดังกลา วอยูในรปู นอรม ัลฟอรม ที่ 3แลวแตก ็ยังมีบางสว นมปี ญหาอยู ตรงจดุ ที่แอตทริบวิ ตร หัสวิชาเรยี น และผลการเรยี นข้นึ อยูกบั คยี น กั ศึกษา และคยี ผูส อน แตใ น
ขณะเดยี วกันรหสั ผูส อนกข็ ึ้นอยกู บั รหสั วชิ าเรียนทาํ ใหถา ตอ งการเปลี่ยนแปลงผสู อนในวิชา 301 จะตอ งมกี ารเปล่ียนแปลงถงึ 2 ทปั เพิล ซง่ึ ผลลพั ธที่ไดอ าจจะทําใหเ กดิ ความผดิ พลาดหากทาํ การแกไ ขไมค รบถวน
และถา นกั ศึกษารหสั 135 ถอนการลงทะเบียนวิชา 280 ขอมูลของผทู ่สี อนวชิ านจ้ี ะหายไปจากระบบเลย ถา เราลบขอ มลู นี้
เราสามารถทําการแตกตารางออกมาใหอยใู นรูปของบอยซค อดดน อรมลั ฟอรม ได โดยการแยกแอตทริบิวตร หสั วชิ าเรียนและรหสั ผูสอนซ่ึงขึน้ อยูกบั แอตทริบวิ ตร หัสวชิ าเรียน ออกมาเปน อกี หน่งึ รเี ลชัน และ
แยกแอตทริบวิ ต รหัสนักศึกษา รหัสผสู อนและผลการเรียนออกมาเปน อีกหนึง่ รีเลชัน ดังแสดงในภาพขางลา ง
5) การแปลงใหอ ยูในรูปนอรมลั ฟอรมท่ี 4 (Fourth Normal Form : 4NF)ในขณะที่การทาํ ใหอ ยูในรูปของนอรมัลฟอรม ตา ง ๆ ทผี่ านมา จะเก่ยี วของกบั การข้ึนตรงตอกันของขอมูลในแตละแอตทรบิ วิ ตห รือฟงกชนั
นลั ดเี พนเดนซแี ตก ารทาํ ใหอ ยูใ นรูปของนอรม ัลฟอรม ท่ี 4 จะเกีย่ วขอ งกับรปู แบบของการขน้ึ ตรงตอกันของขอมูลในระดับท่ีซับซอ นกวา
5.1) มัลตแิ วลูดีเพนเดนซี (Multivalued Dependency)ถา แตล ะแอตทรบิ ิวตใ นหนง่ึ รเี ลชนั แบง ออกเปนกลมุ ของขอ มูลอสิ ระ เชน แอตทริบวิ ต X, Y และ Z แบงออกเปนกลุมขอ มลู ของ X, Y และ Z ทเ่ี ปน อิสระ
ตอ กัน มลั ตแิ วลลดู เี พนเดนซี X –>> Y หมายถงึ วาคา X หน่ึงคา สามารถท่ีจะบอกคา Y ไดหลาย ๆ (X Multi-Determinse Y) ไมวา Z จะมคี าเปน อะไรกต็ ามโดยปกติ ถา R ประกอบดวย Attribute
X, Y และ Z (Z = R – {XY} ) ดังนัน้ ถา X –>> Y แลว X –>> Z เสมอ สามารถเขยี นใหมเ ปน X –>> Y | Z ถา Y เปน สับเซทของ X หรือ X ยเู น่ยี น Y = R แลว เราเรียก X –>> Y วา
ทรเิ วยี ลมัลติแวลดู เี พนเดนซี (Trivial Multivalued Dependency) ซงึ่ จะตา งจากฟงกชันนลั ดีเพนเดนซี X –> Y ท่ี X จะสามารถบอกคา Y ไดแคเพยี งคาเดียว ดงั ตวั อยางภาพขา งลาง
เนอ่ื งจากแอตทรบิ ิวต รหสั โครงการ รหสั บรษิ ทั และทตี่ ้งั โครงการลว นเปน คียแ อตทรบิ ิวต ดงั นั้นรเี ลชันในภาพ จงึ ถือวา อยูในรปู BCNF แลว แตย ังไมอ ยูในรูปของ 4NF เน่ืองจากรีเลชนั ดังกลา วยังมที ริเวียล
มัลติแวลดู เี พนเดนซอี ยูในรีเลชนั ตวั อยางเชนรหสั โครงการA001 สามารถบอกคา ของรหสั บริษัทที่เปน ผูร ับผดิ ชอบไดมากกวา หนงึ่ บรษิ ัท คือ รหัสบริษทั B001 และ B002 ในขณะเดยี วกันรหัสโครงการ
A001 ก็บอกถึงทตี่ ัง้ ของโครงการสองแหงคอื จันทบรุ ี และระยอง ซึ่งถามีการเพม่ิ บริษทั ท่ีรบั ผดิ ชอบโครงการเขาไปในโครงการ A001 อีกหน่งึ บริษทั กจ็ ะตอ งมกี ารเพิม่ ขอ มูลถงึ สองทัปเพลิ เน่อื งจากโครงการ
ดงั กลา วมที ตี่ งั้ อยถู งึ สองแหงคือ ระยอง และจันทบรุ ี สงผลใหเกิดความซา้ํ ซอ นของขอมูลขนึ้ ในรเี ลชนั ดงั กลา ว และอาจจะเกดิ ความผิดพลาดในการเพม่ิ ขอมูลได เนื่องจากทตี่ ง้ั โครงการไมไ ดข้ึนอยูก ับรหัสบรษิ ัทท่ี
เปนผูรบั ผิดชอบแตข ้นึ อยูกับรหัสโครงการ ดังน้นั ถา หากมีการเพิ่มบรษิ ัทผรู บั ผิดชอบเพ่ิมข้นึ อีกหนึง่ บริษทั เราจาํ เปนที่จะตองทาํ การเพิ่มขอมูลท่ตี งั้ โครงการเขาไปอกี สองแหง ดว ยเสมอ ซง่ึ เปน ผลจากความสมั พนั ธในรูป
แบบของ ทรเิ วียลมลั ติแวลูดเี พนเดนซี นัน่ เอง
นอรม ลั ฟอรมที่ 4
5.2)นยิ ามของนอรม ัลฟอรม ท่ี 4รเี ลชนั จะอยใู นรปู ของนอรม ัลฟอรม ท่ี 4 กต็ อ เมอ่ื มคี ุณสมบัตติ ามเงอื่ นไขดงั ตอ ไปน้1ี . รีเลชันนัน้ เปน บอยซค อดดนอรมลั ฟอรมอยูแลว2. รเี ลชันนนั้ ไมมที ริเวยี ลมลั ติแวลูดเี พนเดน
ซจี ากรีเลชันในภาพขางบน เราสามารถขจดั ทรเิ วียลมัลติแวลดู ีเพนเดนซี โดยการแตกรีเลชนั ดงั กลา วออกเปนรีเลชันยอ ย 2 รเี ลชันซ่งึ จะทาํ ใหท ั้งสองรเี ลชันอยใู นรปู ของนอรมัลฟอรม ท่ี 4 ดงั ภาพขา งลา ง
6) การแปลงใหอยูในรูปนอรม ัลฟอรมท่ี 5 (Fifth Normal Form : 5NF)การแปลงใหอ ยใู นรปู ของนอรม ัลฟอรมที่ 5 จะพจิ ารณาถงึ การขึ้นตอ กันของขอมลู ในการแยกขอมูลในรีเลชันออกเปน รีเลชนั ยอย และ
ประกอบรเี ลชนั ยอ ยกลับเปน รเี ลชนั ใหญเชนเดมิ ซงึ่ เปนการตรวจสอบวา เมือ่ รวมกนั ใหมด วยวิธีการจอยนแ ลว จะไดร ีเลชนั กลบั มาเหมือนเดิมทกุ ประการหรือไม
6.1) จอยนโอเปอรชนั (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
6.2) จอยนด ีเพนเดนซี (Join Dependency)ในการแยกรีเลชนั ออกเปน สว นยอย (Decomposition) R1, R2, R3, Rn มคี ุณสมบตั จิ อยนดีเพนเดนซี ก็ตอ เมือ่ R1 JOIN R2 JOIN R3 … JOIN
Rn = R น่นั คือเม่อื เอารเี ลชันยอ ยมารวมกนั ก็ตองไดร ีเลชันเดิม ทไ่ี มม ีขอ มูลสูญหาย และไมมที ปั เพิลทเ่ี กนิ มา ทเี่ รียกวา สพิวเรียสทัปเพลิ (Spurious Tuple)
6.3) นิยามของ 5NF รเี ลชันจะเปน 5NF ถา
1. รเี ลชนั นนั้ เปนนอรม ลั ฟอรม ท่ี 4 อยูแ ลว
2. การแบงแยกรีเลชนั มคี ุณสมบตั ิจอยนดเี พนเดนซีจากตัวอยา งในภาพขางลางรเี ลชันวิชาเรียนประจําภาคอยใู นรปู ของนอรมัลฟอรมที่ 4 แลว เน่อื งจากแอตทรบิ ิวตภาคการศึกษาเปนตัวกําหนดแอตทริบวิ ตร หัส
วิชาหลาย คาในขณะท่แี อตทรบิ วิ ตรหัสวชิ าก็เปน ตวั กาํ หนดแอตทริบิวตร หสั ชนั้ เรียนหลายคา รเี ลชนั นจี้ ึงไมม ที ริเวยี ลมัลตแิ วลูดีเพนเดนซี ตอไปเราจงึ ทําการทดสอบคุณสมบัตินอรมัลฟอรมที่ 5 ของรเี ลชนั วชิ า
เรยี นประจําภาค โดยเม่ือนํารีเลชันดงั กลา วมาทาํ การแตกยอยออกเปนสามรีเลชนั คือ รเี ลชนั ภาคการศกึ ษา รีเลชันวิชาเรียนของช้ันเรียนและรเี ลชันช้ันเรยี นประจําภาค และทาํ การจอยนท ัง้ สามรีเลชนั รวมกลบั เปน
หนึ่งรเี ลชันอกี ครงั้ จะไดจ ํานวนขอมูลเทากนั กับรเี ลชนั กอ นทีจ่ ะมแี ตกเปนรเี ลชนั ยอ ยทุกประการซึ่งก็คือรีเลชันดงั กลาวมคี ุณสมบัติจอยนด ีเพนเดนซีและอยใู นรปู ของนอรมัลฟอรม ท่ี 5 แลว
ความหมายภาษา SQL
SQLคืออะไร SQL ยอมาจาก structured query language คอื ภาษาที่ใชในการเขียนโปรแกรม เพือ่ จดั การกบั ฐานขอ มูลโดยเฉพาะ เปนภาษามาตราฐานบนระบบฐานขอมลู เชิง
สัมพนั ธและเปนระบบเปด (open system) หมายถึงเราสามารถใชคําส่ัง sql กบั ฐานขอ มูลชนดิ ใดกไ็ ด และ คําสัง่ งานเดยี วกันเมื่อสั่งงานผา น ระบบฐานขอ มลู ท่ีแตกตา งกนั จะได
ผลลพั ธเหมอื นกัน ทาํ ใหเ ราสามารถเลอื กใชฐ านขอมูล ชนดิ ใดก็ไดโดยไมต ิดยึดกบั ฐานขอมลู ใดฐานขอมูลหน่งึ นอกจากน้ีแลว SQL ยังเปน ช่อื โปรแกรมฐานขอ มูล ซง่ึ โปรแกรม SQL
เปนโปรแกรมฐานขอ มูลที่มีโครงสรา งของภาษาท่ีเขาใจงาย ไมซับซอ น มปี ระสทิ ธิภาพการทาํ งานสูง สามารถทํางานท่ีซับซอนไดโ ดยใชค าํ สงั่ เพยี งไมก ี่คําสัง่ โปรแกรม SQL จึงเหมาะท่ี
จะใชก ับระบบฐานขอมูลเชิงสัมพนั ธ และเปนภาษาหน่ึง ซ่งึ แบงการทํางานไดเ ปน 4 ประเภท ดงั นี้1. Select query ใชส าํ หรบั ดงึ ขอ มูลท่ีตองการ2. Update query ใชส ําหรับแกไ ข
ขอ มูล3. Insert query ใชส ําหรับการเพม่ิ ขอ มลู 4. Delete query ใชสําหรบั ลบขอ มูลออกไป ปจ จบุ นั มซี อฟตแ วรร ะบบจดั การฐานขอมลู (DBMS) ท่ีสนบั สนนุ การใชคําส่งั
SQL เชน Oracle, DB2, MS-SQL, MS-Access นอกจากนภี้ าษา SQL ถกู นาํ มาใชเ ขียนรว มกับโปรแกรมภาษาตา งๆ เชน ภาษา c/C++, VisualBasic และ Java
รูปแบบคาํ ส่ัง SQL
ประเภทของคาํ สัง่ ของภาษา SQLภาษา SQL เปน ภาษาทใ่ี ชงานไดต ้ังแตระดบั เคร่ืองคอมพิวเตอรส ว นบุคคลพีซไี ปจนถึงระดับเมนเฟรม ประเภทของคําส่ังในภาษา SQL (The
subdivision of sql) แบงออกเปน 3 ประเภท คอื 1) ภาษาสาํ หรับการนยิ ามขอ มูล (Data Definition Language : DDL) ประกอบดวยคําสง่ั ท่ีใชใ นการกําหนดโครงสรา ง
ขอมูลวา มคี อลมั นอะไร แตล ะคอลัมนเ ก็บขอ มูลประเภทใด รวมถึงการเพ่ิมคอลมั น การกาํ หนดดชั นี การกาํ หนดววิ หรือตารางเสมือนของผใู ช เปนตน2) ภาษาสําหรับการ
จัดการขอ มลู (Data Manipulation Language : DML) ประกอบดวยคาํ สัง่ ที่ใชใ นการเรยี กใชขอ มลู การเปลีย่ นแปลงขอ มลู การเพ่ิมหรอื ลบขอมลู เปนตน 3) ภาษา
ควบคุม (Data Control Language : DCL) : ประกอบดว ยคาํ สัง่ ทใี่ ชใ นการควบคุม การเกดิ ภาวะพรอมกนั หรือการปอ งกันการเกดิ เหตกุ ารณท่ผี ใู ชหลายคนเรยี กใชขอ มูล
พรอมกัน และคาํ สงั่ ที่เก่ียวของกับการควบคุมความปลอดภัยของขอมูลดว ยการกําหนดสิทธิของผใู ชท แ่ี ตกตา งกัน เปน ตน
การใชง านคาํ ส่ัง SQL พนื้ ฐาน
1. การสรา งตาราง การสรางตารางทม่ี ีคยี น อก (Foreign key)
1) สรา งตารางปลายทางกอ น (FRIENDS)
การสรางตารางท่ีมี primary key แบบเพิ่มคา อตั โนมตั ิ (Creating an automatically incrementing primary key)
CREATE TABLE friends (
CREATE TABLE staff ( fname TEXT NOT NULL,
staffid SERIAL NOT NULL PRIMARY KEY, lname TEXT NOT NULL,
fname TEXT NOT NULL, nickname TEXT NOT NULL,
lname TEXT NOT NULL, PRIMARY KEY(lname, nickname)
email TEXT NOT NULL
);
); --------------------------------------------------------------------------------- ----------------------------------------------------
การสรา งตารางทม่ี ี primary key ฟล ดเดียว (Creating a single-field primary key) 2) สรางตารางท่ตี องการเช่อื มโยงไปหรือตารางตน ทาง (staffs)
CREATE TABLE citizen (
ssid VARCHAR(9) NOT NULL PRIMARY KEY, CREATE TABLE staffs (
fname TEXT NOT NULL, staffid SERIAL NOT NULL PRIMARY KEY,
lname TEXT NOT NULL,
zipcode VARCHAR(10) NOT NULL email TEXT NOT NULL,
); lname TEXT,
---------------------------------------------------------------------------------
nickname TEXT,
การสรา งตารางทม่ี ี primary key หลายฟล ด (Creating a multiple-field primary key) FOREIGN KEY (lname,nickname) REFERENCES friends(lname,nickname)
CREATE TABLE friends (
fname TEXT NOT NULL, );
lname TEXT NOT NULL, ----------------------------------------------------
nickname TEXT NOT NULL, 3) ทดลองปอ นขอ มลู ในตารางปลายทางกอน (FRIENDS)
INSERT INTO FRIENDS VALUES ('Thanakorn', 'Samofak', 'OODDY');
PRIMARY KEY(lname, nickname)
);
ความรูพ้นื ฐานเกี่ยวกบั ฐานขอ มูลไมใชเ ชงิ สัมพนั ธ (SQL)
ฐานขอ มูล NoSQL (ไมใชเ ชิงสมั พันธ) ทาํ งานอยา งไรฐานขอมูล NoSQL ใชโ มเดลขอ มลู ท่ีหลากหลายสาํ หรับการเขาถงึ และจดั การขอมลู ฐานขอมูลประเภทนไี้ ดร ับการปรับปรงุ
ประสทิ ธภิ าพสาํ หรับแอปพลเิ คชันทีต่ อ งใชขอมลู ปรมิ าณมาก มเี วลาแฝงต่าํ และมีโมเดลขอมูลทยี่ ืดหยุน โดยเฉพาะ ซ่ึงเกิดขนึ้ โดยการผอนปรนขอจํากดั ความสมา่ํ เสมอขอ มูลของ
ฐานขอ มลู อ่นื ๆลองดูพิจารณาตัวอยา งการสรา งโมเดลแบบแผนสาํ หรบั ฐานขอ มูลหนงั สือแบบไมซบั ซอ น:ในฐานขอมลู เชงิ สมั พันธ บนั ทึกหนงั สือมกั ถูกแยกออกจากกนั (หรอื
“มาตรฐาน”) และจัดเก็บในตารางแยก สว นความสัมพนั ธจ ะถกู กําหนดโดยขอจาํ กัดคยี หลักและคียน อก ในตัวอยา งน้ี ตารางหนังสือมีคอลมั นสําหรบั ISBN, ช่อื หนงั สือ และคร้ังท่ี
พมิ พ ตารางผูเ ขยี นมีคอลัมนส าํ หรบั รหสั ผเู ขียนและชื่อผูเขยี น และสุดทายตาราง ISBN ของผูเขียนมคี อลมั นสาํ หรบั รหสั ผูเขยี นและ ISBN โมเดลเชงิ สัมพนั ธถูกออกแบบมาเพอื่
ทําใหฐานขอมลู สามารถบังคับใชความสมบูรณอา งองิ ระหวางตารางตา งๆ ในฐานขอ มูล ปรบั ใหเ ปน ปกติเพือ่ ลดความซาํ้ ซอ น และไดรับการปรบั ปรุงประสทิ ธิภาพสําหรบั พื้นที่จัด
เกบ็ อยางทั่วถึงในฐานขอ มูล NoSQL บันทกึ หนงั สอื มักจะถกู จดั เกบ็ เปนเอกสาร JSON สําหรบั หนงั สือแตละเลม รายการ, ISBN, ช่ือหนังสือ, ครง้ั ทีพ่ ิมพ, ชือ่ ผเู ขียน และรหสั ผู
เขยี นจะถูกจดั เก็บเปน คณุ ลักษณะในเอกสารเดียว ในโมเดลนี้ ขอ มูลไดรับการปรับปรุงประสทิ ธิภาพสําหรับการพฒั นาท่ีงายและความสามารถในการปรบั ขนาดแนวนอน