หน้าเว็บ

วันพุธที่ 24 กันยายน พ.ศ. 2557

บทบาทของคอมพิวเตอร์

บทบาทของคอมพิวเตอร์


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




1. บทบาทของคอมพิวเตอร์ในสถานศึกษา
คอมพิวเตอร์ช่วยในงานบริหาร เช่น การคิดคะแนน
ทำทะเบียนบุคลากร
คอมพิวเตอร์ช่วยในงานบริการ เช่น งานห้องสมุด งานแนะแนว
คอมพิวเตอร์ช่วยในการเรียนการสอน

2. บทบาทของคอมพิวเตอร์ในวงราชการ
คอมพิวเตอร์ช่วยในการทำทะเบียนราษฎร์
คอมพิวเตอร์ช่วยในการนับคะแนนเลือกตั้ง คิดภาษี อากร การบริหารทั่วไป
คอมพิวเตอร์ช่วยในการรวบรวมข้อมูลและสถิติ
การบริหารงานทั่วไปของหน่วยงานราชการ ทำให้เกิดความสะดวก รวดเร็ว ยิ่งขั้น

3. บทบาทของคอมพิวเตอร์ในงานสังคมศาสตร์
คอมพิวเตอร์ช่วยในงานวิจัย เพื่อให้ได้คำตอบออกมาอย่างรวดเร็วและถูกต้อง

4.บทบาทของคอมพิวเตอร์ในวงการแพทย์
คอมพิวเตอร์ช่วยในการบันทึก
ค้นหาทะเบียนประวัติผู้ป่วย
คอมพิวเตอร์ช่วยในการวินิจฉัยโรค เช่น ตรวจคลื่น สมอง บันทึกการเต้นของหัวใจ
คอมพิวเตอร์ช่วยในการคำนวณหาตำแหน่งที่ถูกต้อง ของอวัยวะก่อนการผ่าตัด

5และสื่อสาร
คอมพิวเตอร์ช่วยในการจองตั๋วเครื่องบิน
คอมพิวเตอร์ช่วยในการเก็บข้อมูล สถิติของผู้โดยสาร
คอมพิวเตอร์ช่วยในการควบคุมการจราจรทางอากาศ

6. บทบาทของคอมพิวเตอร์ในงานธุรกิจ
คอมพิวเตอร์ช่วยในการวางแผนธุรกิจ
คอมพิวเตอร์ช่วยในการประเมินสถานการณ์ทาาง เศรษฐกิจในอนาคตได้อย่างแม่นยำ
คอมพิวเตอร์ช่วยงานธุรการ เช่น งานพัสดุ งานภาษี การทำจดหมายโต้ตอบ

7. บทบาทของคอมพิวเตอร์ในงานธนาคาร
คอมพิวเตอร์ช่วยในการรับฝากและถอนเงิน ที่เป็นภาระกิจประจำของธนาคาร
คอมพิวเตอร์ช่วยในการคิดดอกเบี้ยในอัตราต่างๆ
คอมพิวเตอร์ช่วยให้ลูกค้า ฝากถอนเงินด่วน หรือโอนเงินจากเครื่องได้โดยอัตโนมัติ (ATM)

8. บทบาทของคอมพิวเตอร์ในงานวิศวกรรม
คอมพิวเตอร์ช่วยในการเขียนแบบ
คอมพิวเตอร์ช่วยในการควบคุมหุ่นยนต์ให้ทำงาน
คอมพิวเตอร์ช่วยในการคำนวณโครงสร้าง วางแผน ควบคุมการก่อสร้าง

9. บทบาทของคอมพิวเตอร์ในงานวิทยาศาสตร์
คอมพิวเตอร์ช่วยในการเปรียบเทียบ คัดเลือกข้อมูล
คอมพิวเตอร์ช่วยในการทดลองที่เป็นอันตราย
คอมพิวเตอร์ช่วยในการเดินทางของยานอวกาศ การถ่ายภาพระยะไกล และการสื่อสารผ่านดาวเทียม

10. บทบาทของคอมพิวเตอร์ในร้านค้าปลีก
ห้างสรรพสินค้าใหญ่ ๆ ใช้เครื่องคอมพิวเตอร์คิดเงินแทนเครื่องคิดเลข
การอ่านรหัสด้วยเครื่องอ่าน (Barcode)

เทคโนโลยีคอมพิวเตอร์กับสังคมปัจจุบัน

เทคโนโลยีคอมพิวเตอร์กับสังคมปัจจุบัน


    ในสังคมปัจจุบัน เรารู้จักคอมพิวเตอร์ เพราะว่าเทคโนโลยีคอมพิวเตอร์มีบทบาทกับชีวิตของเราอยากมาก ทั้งด้านการศึกษา การทำงาน ตลอดจนกิจกรรมสันทนาการต่างๆ อย่างเช่น ดูหนัง ฟังเพลง เล่นเกมส์ ตลอดจนอินเตอร์เน็ต ล้วนแล้วแต่มีเทคโนโลยีคอมพิวเตอร์เข้ามาเกี่ยวข้องทั้งสิ้น โดยเฉพาะในทุกวันนี้  เทคโนโลยีมีการเปลี่ยนแปลงไปมาก  จากที่เคยเป็นคอมพิวเตอร์ตัวใหญ่ๆมีใช้เฉพาะหน่วยงาน ก็มาเป็นคอมพิวเตอร์ส่วนบุคคลที่ใครก็สามารถมีได้ เพราะราคาไม่แพง  จนกระทั่งเทคโนโลยีคอมพิวเตอร์ได้เปลี่ยนแปลงไป  มีการผลิตคอมพิวเตอร์รุ่นต่างๆออกมามากมาย  และเทคโนโลยีก็ทันสมัยขึ้น ตัวย่างเช่น โน็ตบุค พีดีเอ แทบแล็ต เป็นต้น ซึ่งมันทำให้เราสามารถพกพาคอมพิวเตอร์ไปได้ทุกที่ทุกเวลา  ไม่มีขีดจำกัดในเรื่องการทำงานหรือทำกิจกรรมต่างๆ ด้วยการใช้งานเทคโนโลยีสื่อสารแแบบไร้สาย อย่างเช่น GPRS, WIFI, และ 3G  มันมามีบทบาทสำคัญกับการดำรงชีวิดของคนเรา  ทำให้การรับรู้ข่าวสารป็นไปได้งานขึ้นง่ายขึ้น  ไม่ว่าเรื่องราวบางอย่างจะเกิดขึ้นต่างมุมโลกกัน แต่เราก็สามารถรับรู้ข่าวสารนั้นได้  และตรงกลุ่มเป้าหมาย ไม่มีขีดจำกัดในเรื่องเวลาและระยะทาง  แม้ว่าจะไกลกัน  แต่ในขณะเดียวกัน  ในประโยชน์ก็ย่อมต้องมีโทษเป็นเรื่องธรรมดา เมื่อใช้เทคโนโลยีไปในทางที่ไม่ดี  ดังที่ปรากฏเป็นข่าวตามหน้าหนังสือพิมพ์  โทรทัศน์  และสือออนไล์ต่างๆ อย่างเช่น การโพสรูปอนาจาร หรือคลิปเกี่ยวกับความรุนแรงต่างๆ  ทำให้เกิดการเลียนแบบได้ง่าย  ตลอดจนการล่อลวงทางอินเตอร์เน็ต  ทำให้เกิดการสูญเสียในชีวิตและทรัพสินต่างๆ  แต่ไม่ว่าอย่างไร  เทคโนโลยีคอมพิวเตอร์  และอินเตอร์เน็ตก็มีความจำเป็นกับการใช้ชีวิตในสังคมปัจจุบัน  เพราะไม่ว่าจะเป็นการทำงาน การศึกษา ตลอดจนการติดต่อสื่สาร ล้วนแล้วแต่ต้องพึ่งพาเทคโนโลยีทั้งสิ้น การมองเห็นประโยชน์ของมัน ทำให้เราสามารถที่จะใช้ประโยชน์จากเทคโนโลยี ได้อย่างเต็มประสิทธิภาพและยั่งยืน โดยไม่เกิดโทษแก่ตัวเราเองและคนรอบข้าง


พื้นฐานการสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์

ความหมายของการสื่อสารข้อมูล


การสื่อสารข้อมูล เป็นกระบวนการถ่ายโอนข้อมูล/สารสนเทศจากแหล่งกำเนิดข่าวสารผ่านสื่อกลาง เพื่อส่งไปยังจุดหมายปลายทางที่ต้องการ

ส่วนประกอบของระบบการสื่อสารข้อมูล (Components of Data Communication System)

ข่าวสาร (Message) ข้อมูลหรือสารสนเทศที่อาจเป็นข้อความ ตัวเลข เสียง และวิดีโอ
ผู้ส่ง (Sender/Source) อุปกรณ์ที่ใช้สำหรับส่งข่าวสาร เช่น คอมพิวเตอร์ โทรศัพท์
ผู้รับ (Receiver/Destination) อุปกรณ์ที่ใช้สำหรับรับข่าวสาร เช่น คอมพิวเตอร์ โทรศัพท์
สื่อกลางส่งข้อมูล (Transmission Medium) เช่น สายไฟเบอร์ออปติก หรือคลื่นวิทยุ เป็นต้น
โพรโทคอล (Protocol) กลุ่มของกฎเกณฑ์และข้อปฏิบัติต่าง ๆ ที่กำหนดขึ้นมา เพื่อนำมาใช้เป็นข้อตกลงร่วมกันระหว่างผู้ส่งและผู้รับเพื่อให้การสื่อสารบรรลุผล
การสื่อสารโทรคมนาคม (Telecommunication)

การสื่อสารโทรคมนาคม หมายถึง การสื่อสารระยะไกล โดยมีวัตถุประสงค์เพื่อการแลกเปลี่ยนสารสนเทศ เกี่ยวข้องกับการใช้งานเครื่องอิเล็กทรอนิกส์ (Electronics Transmitters) เช่น โทรศัพท์ โทรทัศน์ วิทยุ หรือคอมพิวเตอร์ ซึ่งระบบการสื่อสารโทรคมนาคมในยุคปัจจุบันถือว่ามีบทบาทสำคัญต่อการพัฒนาประเทศชาติเป็นอย่างมาก โดยจะพบว่าประเทศที่พัฒนาแล้วล้วนแต่มีระบบการสื่อสารโทรคมนาคมที่ก้าวหน้าและทันสมัย ที่มีส่วนสำคัญต่อการผลักดันธุรกิจต่าง ๆ ให้เกิดขึ้น ซึ่งส่งผลต่อการพัฒนาระบบเศรษฐกิจโลกในยุคนี้ทีเดียว



ความหมายของเครือข่าย

ในส่วนของ “เครือข่าย” หมายถึง เครือข่ายที่มีการเชื่อมโยงกันในระยะใกล้ภายในพื้นที่เดียวกัน (Local) กับเครือข่ายที่เชื่อมโยงแบบระยะไกล (Remote) โดยเฉพาะเครือข่ายที่เชื่อมโยงแบบระยะไกลนั้น จำเป็นต้องพึ่งพาช่องทางการสื่อสารโทรคมนาคมเพื่อให้สามารถส่งข้อมูลระยะไกลได้

ตัวอย่างของการสื่อสารโทรคมนาคม

-          โทรเลข (Telegraphy)

-          โทรสาร (Facsimile)

-          โทรศัพท์ (Telephone)

-          โทรทัศน์ (Television)

-          วิทยุกระจายเสียง (Radio)

-          ไมโครเวฟ (Microwave)

-          ดาวเทียม (Satellite)

เครือข่ายคอมพิวเตอร์ (Computer Networks)

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

ก่อนจะเป็นเครือข่าย

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

ประโยชน์ของเครือข่าย

การใช้ทรัพยากรร่วมกัน
ช่วยลดต้นทุน
เพิ่มความสะดวกในด้านการสื่อสาร
ความน่าเชื่อถือและความปลอดภัยของระบบ


ประเภทของเครือข่าย (Categories of Networks)

เครือข่ายท้องถิ่น (Local Area Network: LAN)

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

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

เครือข่ายระดับเมือง (Metropolitan Area Network: MAN)

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

เครือข่ายระดับประเทศ (Wide Area Network: WAN)

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

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

อินเทอร์เน็ต (The Internet)

อินเทอร์เน็ตจัดเป็นเครือข่ายสาธารณะ (Public Network) ที่ได้เข้ามามีบทบาทต่อการดำเนเนชีวิตปัจจุบันของมนุษย์ในยุคนี้ จึงทำให้รูปแบบธุรกิจเดิมที่เคยดำเนินการอยู่ จำเป็นต้องเปลี่ยนรูปแบบด้วยการใช้ช่องทางการจำหน่ายผ่านอินเทอร์เน็ตเพื่อสร้างทางเลือกและความสะดวกในด้านการบริการแก่ลูกค้า โดยลูกค้าสามารถเลือกซื้อสินค้าหรือบริการผ่านทางเว็บไซต์ ทั้งนี้มิได้จำกัดเพียงลูกค้าภายในประเทศ แต่นั่นหมายถึงลูกค้าทั่วโลกที่สามารถเข้าใช้บริการนี้ผ่านทางเว็บไซต์

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

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

การเชื่อมต่อเครือข่ายคอมพิวเตอร์

(Computer Networks-Basic Configurations)

ในหัวข้อนี้จะกล่าวถึงการเชื่อมต่อเครือข่ายคอมพิวเตอร์ในมุมมองเชิงกายภาพ ที่แสดงให้เห็นถึงการเชื่อมต่อในลักษณะต่าง ๆ และโดยปกติเราสามารถพบเห็นเครือข่ายคอมพิวเตอร์ที่เชื่อมต่อในมุมมองต่าง ๆ ได้จากการสังเกตตามองค์กรหรือหน่วยงาน หรือจากการใช้งานประจำวันไม่ว่าจะที่บ้าน สำนักงาน หรือสถาบันการศึกษา โดยการเชื่อมต่อเครือข่ายคอมพิวเตอร์ในรูปแบบต่าง ๆ มีดังนี้

1.      ไมโครคอมพิวเตอร์กับเครือข่ายท้องถิ่น (Microcomputer-to-LAN Configurations)

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

ด้วยอัตราการใช้งานไมโครคอมพิวเตอร์ และการนำมาเชื่อมต่อเป็นเครือข่ายท้องถิ่นจำนวนมาก จึงทำให้มีการพัฒนาเทคโนโลยีนี้อย่างต่อเนื่อง โดยปัจจุบันเครือข่ายท้องถิ่นมีอัตราความเร็วในการส่งข้อมูลสูงคือ ตั้งแต่ 100 เมกะบิตต่อวินาที (100 Mbps) จนถึงระดับกิกะบิตต่อวินาที (1 Gbps)

2.      ไมโครคอมพิวเตอร์กับอินเทอร์เน็ต (Microcomputer-to-Internet Configurations)

จากการเติบโตของเครือข่ายอินเทอร์เน็ต และกระแสการใช้งานไมโครคอมพิวเตอร์ตามบ้านพักอาศัยมีจำนวนมากขึ้น ดังนั้นการนำไมโครคอมพิวเตอร์มาเชื่อมต่อกับเครือข่ายอินเทอร์เน็ตจึงมีอัตราสูงขึ้นอย่างต่อเนื่อง ผู้ใช้ตามบ้านพักอาศัยส่วนใหญ่ใช้งานอินเทอร์เน็ตด้วยเทคโนโลยีระบบ ADSL ที่กลุ่มลูกค้าตามบ้านพักอาศัยสามารถมีทางเลือกในการใช้บริการอินเทอร์เน็ตความเร็วสูงได้ โดยอัตราความเร็วในการดาวน์โหลดข้อมูลมีได้ตั้งแต่ Mbps แต่การใช้บริการระบบ ADSL ได้นั้น บริษัทผู้ให้บริการอินเทอร์เน็ต (ISP) จะต้องมีการติดตั้งระบบดังกล่าวครอบคลุมพื้นที่ที่ต้องการใช้งานด้วย ลูกค้าตามบ้านักอาศัยจึงสามารถใช้บริการได้ ที่สำคัญการบริการ ADSL จำเป็นต้องเสียค่าใช้จ่ายรายเดือน และสามารถเชื่อมโยงใช้งานได้ตลอด 24 ชั่วโมง

3.      เครือข่ายท้องถิ่นกับเครือข่ายอินเทอร์เน็ต (LAN-to-Internet Configurations)
อุปกรณ์ที่เรียกว่า “เร้าเตอร์ (Router)” จัดเป็นอุปกรณ์สำคัญที่จะต้องนำมาใช้เพื่อเชื่อมต่อระหว่างเครือข่ายทั้งสอง ถึงแม้ว่าอุปกรณ์สวิตช์หรือบริดจ์จะสามารถนำมาใช้เชื่อมต่อระหว่างเครือข่ายได้เช่นกัน แต่หลักการทำงานจะแตกต่างกัน โดยเฉพาะเร้าเตอร์จะมีขีดความสามารถในการจัดการเส้นทางการเดินทางของข้อมูลที่รับส่งกันระหว่างเครือข่ายจำนวนมากที่เชื่อมต่อกันบนเครือข่ายอินเทอร์เน็ตได้เป็นอย่างดี และมีหลักการทำงานที่ซับซ้อนกว่าอุปกรณ์อย่างบริดจ์และสวิตช์

4.      ดาวเทียมและไมโครเวฟ (Satellite and Microwave)
เทคโนโลยีดาวเทียมและไมโครเวฟ จัดเป็นเทคโนโลยีหนึ่งที่กำลังได้รับความนิยมและนำมาใช้งานอย่างแพร่หลาย ซึ่งหากระยะทางระหว่างสองเครือข่ายไกลกันมาก และยากต่อการเดินสายสัญญาณเพื่อเชื่อมต่อระหว่างกัน หรือแทบจะเชื่อมโยงผ่านสายไม่ได้เลยเนื่องจากปัญหาด้านภูมิศาสตร์ ดังนั้นการส่งผ่านข้อมูลด้วยการใช้เทคโนโลยีดาวเทียมและไมโครเวฟจึงเป็นแนวทางหนึงที่สามารถเชื่อมต่อเครือข่ายทั้งสองให้สามารถสื่อสารกันได้อย่างมีประสิทธิภาพ โดยเฉพาะการนำมาประยุกต์ใช้เพื่องานแพร่ภาพทีวีผ่านดาวเทียม โทรศัพท์เคลื่อนที่ ระบบ GPS และวิดีโอคอนเฟเร็นซ์

5.      โทรศัพท์ไร้สาย (Wireless Telephone)
ตัวอย่างของคอมพิวเตอร์โน๊ตบุคที่นำมาใช้เชื่อมต่อกับโทรศัพท์ไร้สายผ่านสายเคเบิลหรือบลูทูธ (Bluetooth) การส่งผ่านข้อมูลจากโทรศัพท์ไร้สายที่เชื่อมต่อกับโน๊ตบุค จะส่งไปยังศูนย์กลางโทรศัพท์ไร้สาย (Wireless Telephone Switching Center) ซึ่งศูนย์กลางนี้เองจะทำหน้าที่ช่วยในการถ่ายโอนข้อมูลระหว่างโน๊ตบุคผ่านโครงข่ายโทรศัพท์สาธารณะ รวมถึงการเชื่อมต่อไปยังเครือข่ายอินเทอร์เน็ต

อัลกอริทึมและการแก้ปัญหาโจทย์ทางคอมพิวเตอร์

อัลกอริทึม


การออกแบบระบบในขั้นตอนที่สองของกระบวนการพัฒนาซอฟต์แวร์จากบทที่  1  มี 2 ส่วนที่สำคัญคือการเลือกใช้โครงสร้างข้อมูลและการออกแบบอัลกอริทึม (Algorithm) ซึ่งที่ผ่านมาได้กล่าวถึงโครงสร้างข้อมูลพื้นฐานแบบต่างๆ และในบทนี้จะกล่าวถึงรายละเอียดของอัลกอริทึมโดยพิจารณาวิธีการตรวจสอบการทำงานของอัลกอริทึมว่ามีความถูกต้องมากน้อยเพียงใดซึ่งใช้เทคนิคแบบการตรวจสอบความจริง (Verification) นอกจากมีการพิจารณาเปรียบเทียบหลายๆ อัลกอริทึมที่ใช้แก้ปัญหาเรื่องเดียวกันว่ามีประสิธิภาพต่างกันอย่างไรซึ่งมีเทคนิคที่นำมาใช้ตรวจวัดว่าอัลกอริทึมไหนดีกว่ากัน

การตรวจสอบความถูกต้องของอัลกอริทึม
                 การเรียกให้โปรแกรมหรือระบบทำงานแบบเบื้องต้นเพื่อทดสอบกับข้อมูลที่หลากหลาย ยังไม่มีประสิทิภาเพียงพอเนื่องจากการทดสอบแสดงให้ทราบถึงข้อผิดพลาดที่ปรากฎอยู่เท่านั้น แต่ข้อผิดพลาดที่ไม่รากฎจำม่สามารถทราบได้จึงนำการตรวจสอบแบบการอนุมาน (Deductive) มาใช้เพื่อรับประกันว่าผลลัพฑ์มีความถูกต้อง
      การตรวจสอลอัลกอริทคึมเพื่อใช้แก้ไขปัญหาว่ามีความถูกต้องจึงใฃ้การอนุมานซึ่งแสดงขั้นตอนการประมวลผลของอัลกอริทึมถูกต้องหรือไม่ตั้งแต่มีการรับข้อมูลเข้ามาและแก้ปัญหาจนถุงผลลัพธ์ที่ได้ออกมา  ดังนั้น  การตรวจสอบความถูกต้องของอัลกอริทึม  A  เรื่มต้นด้วยการวินิจฉัย  I  เป็นการสมมุติข้อมูลี่จะรับเข้ามาใช้งาน (Input Assertion)  เรยกว่าเงื่อนไขตอนต้น(Precondition)  และการวินจฉัย   O   เป็นการสรุปผลลัพธ์ที่ได้ออกมา (Output   Assertion)เรียกว่าเงื่อนไขตอนท้าย ( postcondition)ได้เป็นขอ้พิสูจน์ทางตรรกะแสดงให้ทราบว่า Oจะเกิดขึ้นตาม  I และได้เป็น

I     =>     O   (“I  Implies  O”)

    ได้หลัเกณฑ์  คือ เมือกำหนดเงื่อนไขต้น  I หลังจากอัลกอริทึม  A ทำงานจนถึงงจุดสิ้นสุด (Terminate)จะต้องได้เงื่อนไขตอนท้าย   O  โดยพิจารณาจากตัวอย่างอีลกอริทึมหม่าฉลี่ยของค่าทั้งหมดที่เก็บไว้อาร์เรย์ดังในตารางที่  8.1
ตารางที่ 8.1อัลกอริทึมการทึมการำนวณหาค่าฉลีย

1. กำหนดค่าเรื่มต้นให้ตัวแปร sum =0
2. กำหนดค่าเรื่มต้นให้ตัวแปรดัชนั i=0
3. วนลูป  while i<n ให้ทพดังนี้
a. นำค่าของอาร์เรย์  X[i] บวกกับตัวแปร sum
b. เพิ่มค่าให้กับตัวแปร I หนึ่งค่า
4. คำนวณหาค่าเฉลี่ย sum/n และส่งคืนกลับ



เมื่อวินิจฮัยการรับค่า I   จะได้คำอธิบายดังนี้
I :ค่าที่รับเข้ามาประกอบด้วยตัยเลข n ≤ 1 และอาร์เรย์ Xที่เก็บค่าเลขทศนิยมเมื่อวินิจฉียผลลัพท์ oออกมาจะได้คำอธิาย
O: อัลกอริทึคมทำงานเสร็จ  ค่าที่ส่งคอนกลับมาให้เป็นค่าเฉสี่ยของX[0],…,X[n-11]
          การแสดงผลการทำงานจะได้ว่าเงื่อนไขตอนท้าย O จะเกิดขึ้นได้ตามเงื่อนไขตอนต้น I และมีหลายช่วงของอัลกอริทึมซึ่งเป็การวินิจฉัยซึ่งเป็นการวินิจฉัยตอนกลาง (Intermediate Assertion) โดยเกี่วกับสถานะของการประมวลผลเมื่อทำงานถึงในช่วงนั้น ๆ จากตัวอย่างอัลกอริทึมที่ผ่านมามีการวินิจฉัยตอกลาง L ในส่วนท้ายของการวนลูป while ซึ่งจะเป็นจริงทุกครั้งเมื่อการทำงานมาถึงช่วงนี้และการวินิจฉัยตอกลางี้เรียกว่าการวนลูปสม่ำเสมอ (Loop  Invariant)  จะได้ว่า
I: ค่าที่รับเข้ามาประกอบด้วยตัเลข  n ≥  1 และอาร์เราย์ X ที่เก็บค่าเลขทศนิยม
1 .  กำหนดค่าเริ่มต้นให้ตัวแปร sum =0
2.     กำหนดค่าเริ่มต้นให้วแปรดัชนี i=0
3.   while  i<n ให้ทำดังนี้
a. นำค่าของอาร์เรย์ X [i] บวกให้กับตวแปร Sum
 b. เพิ่มค่าให้กับตัวแปร I หนึ่งค่า
L : ค่าของตัวแปร I เป็นจำนวนครังในการทำงานที่ถึงในแต่ละช่วง   และตัวแปร sum เป็นผลลรวม่าของแตลสมาชิก I ในอร์เรย์ X
4.  คำนวณหาค่าเฉสี่ย Sum /n  และส่งค่ากลับ
O :อัลกอริทึมทำงานเสร็จ  ค่าที่ส่งคืนกลับมาให้เป็นค่าเฉสี่ยของ X[0],…,X[n-1]
          การตรวจสอบจึงประกอบด้วยการแสดงคำอธิบายใหทราบว่าการวินิจฉัย  Lได้โดยสมติให้ k เป็นจำนวนครั้งในการทำงานที่ถึงส่วนล่งของการวนลูปให้  ik  และ sumk เป็นค่าของตัวแปร i และ sum  ตาม่ลำดับของแตละครั้งทีทำงานมาถึง  เมี่อ  k=1 เป็นการผ่นรอบแรกในลูปค่าของ iมีค่าเป็น 0 จากค่าเริ่มต้นกับ  0(บรรทัด 1) ตัวแปร sum มีค่าเทากับ X[0] (บรรทัด  3a)ซึ่งค่าเริ่มต้นเท่ากับ 0(บรรทัด 1) จากนั้นเพิ่ค่าให้กับตัวแปร I หนึ่งค่าจได้  i=1 (บรรทัด  3b)ดังนั้นจะได้ว่าตัวแปร I และ sum มีค่าที่ถูกวินิจฉัยของ  L เมื่อ k=1หากสมมุติให้การทำงานเมื่อไปถึงส่วนล่างของการวนลูปสำหรับครั้งที่ k การวนลูปสม่ำเสมอของ L ได้เป็น  ดังนี้
Ik =kและ sumk =X[0] +….+X[k-1]
ซึ่งสามารถตรวจสอบได้ว่า l เป็นรจริงเช่นกันเมื่อการทำงานต่อไปผ่านไปถึงการวนลูปในครั้งที่ k+1 ซึ่งได้เป็น
Ik+1 =k+1และ sumk+1 = X[0] +….+X[k-1]
ในรอบที่k +1 เมื่อผ่นการวนลูปค่าของ I มีความถูกต้งเพื่อใช้งานดงนี้
Sumk+1 =sumk +X[k]      (บรรทัดที่  3a )
                     =X[0]+…+X[k]    (การอนุมานสมมุติ)
และค่าของ  I จะเพิ่มขึ้นหึ่งค่าดังนี้
Ik+1=ik+1   (บรรทัดที่  3b)
           =  k+1  (การอนุมานสมมุติ)
จากนี้เมื่อทำค่อเนื่องโดยการอนุมานไปแต่ละครั้งการทำงานไปถึงส่วนล่างของการวนลูปค่าของตัวแปร I และ sum จะถูกวินิจฉัยในการวนลูปสม่ำเสมอ หลังจากการวนลูปทำงานผ่านนิพจน์ i<nซึ่งคบคุการทำงานซ้ำในลูปเป็นเท็จ   ลูป  while จึงหยุดการทำงานและทำต่อที่ บรรทัด 4 เป็นการคานวณหาค่าฉลี่ยของสมาชิกในอาร์เรย์   จากนั้นการทำงานถึงจุดสิ้นสุดของอัลกอริทึมและนำการวินิจฉัยผลลัพธ์มาใช้   ดังนั้น  การตรวจสอบความถูกต้องของอัลกอริทึมจึงเสร็จสิ้นสมบูรณ์
                การตรวจสอบดังกล่าวมีสักษระเรยบง่ายซึ่งมีการวินิจฉับตอนกลาง  L  เพียงตอนเดียว และอยู่ในรูปแบบต่อไปนี้
I=>L=> O
  แต่สักหรับอัลกอริทึมที่ซับซอ้นมากขึ้นจำเป็นต้องมีการวินิจฉัยตอนกลางหลาย  ๆ ตอน คือ  L1,  L2,  …,  Ln  ดังนั้น  อัลกอริทึมหรือโปรแกรมจึงถ฿กแตกออกมาเป็นส่วน ๆ เรียกว่าเซ็กต์เม้นท์ (Segment)ซึ่งอาจเป็นประโยคคำสั่งเดีวบล็อกการวนลูป หรือทั้งโปรแกรม โด่ยแต่ละเซ็กต์เม้นท์จะมี  Li หรือ I เป็นเงื่อนไขตอนต้นและมี Li+1 หรือ O เป็นเงื่อนไขตอนท้ายดังในรูปที่  8.1
                                                                     

                                                                     Li                                                                    
                                                             

                                                                        Li+1





รูปที่ 8.1 เซ็กต์เม้นนท์กับเงงื่อนไขตอนต้น และเงื่อนไขตอนท้าย
                ถ้าให้  Li+1 เกิดขึ้นมาตาม Li สำหรับแต่ละ i=1,…,n-1   ใจได้โครงสร้างของการตรวจ สอยความถูกตอ้งเป็น  ดังนี้
     I=> L1 => L2=>…=>Ln=> O
หากเซ็กต์เม้นท์ของโปรแกรมมีโครงสร้างการทำงานแบบเรียงลำดับ (Sequential)การตรวจสอบความถูกตอ้งจะทำทีละประโยคคำสั่งตามลำดับ  ถ้ามีโครงสร้างการทำงานเป็ทางเลือกหรือเงื่อนไข (if)ก็จะมีหลายเส้นทางการทำงานเป็นไปได้เดระหว่างจาก Li ไปยังLi+1
และมีความจะเป็นจะต้องตรวจสอบเส้นทางการทำงานทั้งหมด  ทำให้การตรวจสอบความถูกต้องมีความซับซ้อนมากขึ้น  ซึ่งต้งใช้เวลาและความพยายามเพื่อตรวจสอบอย่างอลเอียดเพื่อให้เกดตวามถูกต้อง  หากโครงสร้างการทำงานเป็นการวลูป  การตรวจสอบจะทำในแต่ละรอบโดยมีตัวควบคุมการวนลูป (Sentinel-contolled  Loop)ตัวควบคุมนับจำนวนการวนลูป (Count-controlled  Loop)เละเงื่อนไขการวนลูปทั่วไป(General Condition Loop)ซึ่งเป็นการทำงานอื่นๆ ในลูปและช่วยการตรวจสอบ โครงสร้างการทำงานสุดท้ายของเซ็กต์เม้นท์  คือ การเรียกฟังก์ชันมาทำงาน (Function Call) ในการตรวจสอบความถูกต้องจะใช้ค่าพารามิเตอร์ต่าง ๆ  เป็นเงื่อนไขตอนต้น  ค่าต่าง ๆ ที่ต้องส่งกลับคืนมาเป็นเงื่อไขตอนท้าย  และตัวฟังก์ชันเป็นการวินิจฉัยตอนกลาง
                ดังนั้น   ทางเลือกการเขียนแรแกรมที่ดีจึงต้องมีการวางกฎเกณฑ์ในการวินิจฉัยลัคเนินการตรวจสอบตามแนวทางที่วางไว้  และถึงแม้ว่าไม่สามารถรับประกันว่าอัลกอริทึมจะทำงานถูกต้องอย่างสมบูรณ์ แก็ทำให้ผู้เขียนโปรแกรมมีความเข้าใจอัลกอริทึมมากขึ้นและเกิดความมั่นใจในการทำงานที่ถูกต้องหลังจากได้มีการตรวจสอบ
ตัวอย่างการตรวจสอบอัลกอริทึม
ในปี ค.ศ. 1950 คำว่าอ้ลกอริทึมได้ถูกนำมาใช้กับอัลกอริทึมขิงยูคลิด (Euclid’s Algorithm) เป็ฯการหาค่าหารร่วมมาก (ห.ร.ม.)ซ฿งเป็ฯค่าสูงสุดที่สามารดนำไปหารค่าสองค่าได้ลงตัว (Greatest  Common Divisor : GCD)ได้เป็นอัลกอริทึมดังในตารางที่9.2 โดยมีการรับค่าตัวเลขบวก mและnเพื่อหาค่าหารร่วมมาก  ตัวเลขที่รับเข้ามานี้ค่าที่มากกว่าจะว่าจะถูกหารด้วยค่าทีนอยกว่า
  ตารางที่ 8.2 อเลกอริทึมของยูคลิด


1 . หารตัวแปร m ด้วยตัวแปร n และเก็บค่าเศษที่เหลือให้กับตัวแปร r
2. ถ้าตัวแปร r = 0ให้จบการทำงานและได้ n เป็นค่าหารรวมมาก
3. กำหนด ค่า m = n ,n = r และไปทงานต่อในรอบถัดไปที่บรรทัด 1
 อัลกอริทึมอื่น ๆ และของยูคลิดเป็นชุดการทำงานเพื่อใช้งานหรือแก้ไขปัญหาบางอย่างโดยการทำงานต้องมีขอบเขตที่สามารถไปถึงจุดสิ้นสุด (Terminate) ได้โดยเฉพาะต้องระมัดระวังการวนลูปที่ไม่สิ้นสุด ( Endless  Loop)  หากพิจารณาจากอัลกอริทึมของยูคลุดซึ่งกำหรดให้ m= 144 และ n=60 จะได้ว่าค่าทั้งสองถูกตอ้งเพราะเป็นค่าบวกตามเงื่อนไขตอนต้นและการทำงานของัลกอริทมเป็นารวนลูปสม่ำเสร  โดยแต่ละบรรทัดถูเรียกให้ทำงานเป็นไปตามลำดับ ดังนี้
 บรรทัดที่ 1:     r=240  จากการหาร  146/60=2 เหลือเศษ24
บรรทัดที่ 2:      r ไม่เท่ากับศุนย์
บรรทัดที่ 3:      m =60 ,n=24
บรรทัดที่ 1:       r =12 จากการหาร 60/24=2 เหลือเศษ12
บรรทัดที่ 2:        rไม่เท่ากับศุนย์
บรรทัดที่ 3:        m =24 ,n=12
บรรทัดที่ 1:        r=0 จากการหาร  24/12=2 เหลือเศษ0
บรรทัดที่ 2:        r เท่ากับศุนย์นการทำงานและค่าหารร่วมมากเท่ากับ 12
จากการตรวจสอบลำดับการทำงาตั้แต่เงื่อนไขตอนต้นที่ถูกต้อง   และการทำงานของวนลูปสม่ำเสมอในตอนกลางจนถึงเงื่อนไขตอนท้ายจะได้ค่า 12 เป็นค่าหารร่วมมากของค่า 144และ 60 ดังนั้นอัลกอริทึมนี้ที่งานได้ผลตามที่ตัองการทำงานของอัลกอริทึมที่ถูกต้องและได้ผลตามที่ต้องการในทุกกรณี   การเขียนโปรแกรมจึงต้องมีการตรวจสอบความถูกต้องของการทำงานโดยทดสอบช่วงของค่าที่รับเข้ามากับค่าที่เป็นผลลัพธ์ออกมา  ถ้าโปรแกรมผ่านการทดสอบทุกรูปแบบที่เป็นไปได้  ก็จะทำให้ผู้เขียนโปรแกราเกิดความมั่ใจ
อัลกอริทึมของยูคลิดมีการทำงานที่ถึงจุดสิ้นสุด  คือ  ค่าที่เหลือเก็บไว้ที่  r  น้อยกว่าค่าของ  n   และถ้าเริ่มต้นให้  n  <  m   ในแต่ละรอบการวนลูปทั้งค่าของ  m   และ   n   จะถูกแทนด้วยค่าที่น้อยกว่าซึ่งค่าใหม่ของ  m  ยังคงมากกว่าค่าของ  n   จะน้อยลงเรื่อย  ๆ   จนเงื่อนไขที่ค่าของ  r  =  0   เป็นจริง  ในกรณีโชคร้ายหรือแย่ที่สุดคือ  ค่าของ  n  ลดลงเป็น  1  หากพบว่าเริ่มต้นค่าของ  n  >  m  จะมีการสลับค่ากันละหว่าง  m  กับ    n  โดยอัลกอริทึมของยูคลิดเขียนเป็นตัวอย่างโปรแกรมได้เป็นตารางที่  8.3













ตารางที่ 8. 3 การหาค่าหารร่วมมาก
#include <stdio.h>
#include <stelib.h>
#include <conio.h>

int euclid <int m, int n)  {
                 int em;

                rem =m%n;
                while(rem !=0 ){
                           m = n ;
                           m =rem;
                           rem = m%n;
            }
          retutn n;
}
main(){
          int m,n ;
         
          printf(“Enter first positive integer  : “);
          scanf(“%d”,&m);
          printf(“Enter first positive integer  : “);
          scanf(“%d”,&n);

           printf(“\nGCD  of  %d  and  %d  is %d \n “,m,n,euclid(m,n));

          getch ();
}


ประสิทธิภาพการทำงานของอัลกอริทึม
             ประสิธิภาของอัลกอริทึมโดยทั่วไปมีมตรฐานการวัดผลสองแบบโดยแบบแรก  คือ การใช้พื้นที่ว่าง (Space Utilization)เป็นจำนวนของหส่วยความจำที่ต้องการใช้เพื่อให้งานสำเร็จประกอบด้วยพื้นที่เก็บคำสั่งทา นที่เก็บข้อมูล และพื้นที่สภาวะแวดลอ้มสแตกแบบที่ 2  คือประสิทธิภวะเวลา (Time Efficiency) เป็นจำนนของเวลาที่ต้องกรใช้การประมวลผลข้อมูลเพื่อให้งานสำเร็จ การสำทั้งสองแบบมาวัดปลด้วยันไม่สามารถเป็นไปได้ เนื่องจากอัลกอริทึมที่ขอใหชื้นที่หน่วยความจำได้ต้อ่ยกว่ามักจะทำงานช้ากว่าอัลกอริทึมที่ขอได้มากกว่า  ดังนั้น ผู้เขียนแรแกรมจึงต้งเลือกว่าจะใช้การขอในที่ว่างหรือประสิทธิภาพเวลา แต่แระสิธิภาพเวลาของอัลกอริทึมจะมีความสำคัญกว่าจึงนำมาใช้พิจารณา  ซึ่งเวลาที่ใช้ในการทำงานของอัลกอริทึมชขึ้นกับปัจจัยหลายๆอย่าง  ดังนี้
       
          1.ขนาดข้อมูลที่รับเข้ามา  จำวนของข้อมูลที่รับเข้ามาทำงานจะมีผลกระทบต่อเวลาที่ใช้ทานใจนการปรมวลลข้อมูลที่รับเข้ามา  เช่น  เวลาที่ใช้จัดเรียงลำดับข้อมูลของรายการขึ้นกับจำนวนของข้อมูลที่มีอยู่ในรายการ ( รายละเอียดการจัดเรียงงลำดับอยู่ในบทที่ 11)  ดังนั้น  เวลาในทำงาน  T  ของอัลกอริทึมจะแสดงในรูปแบบฟังก์ชัน T(n)ของข้อมูลที่รับเข้ามามีขนาด n ค่า
          2. ขนิดของเครื่องคอมพิวเตอร์  คำสั่ง (Instruction)และความเร็วของคอมพิวเตอร์มีผลต่อเวลาในการทำงาน  ปัจจัยนี้ขึ้นกับเครื่องคอมิวเตอร์ที่นำมาใช้  ซึ่งไม่สามารถคาดคะเนให้ความหมายเวลา T(n)อยู่ในลักษณะของเวลาที่เป็นจริง(วินาที)แต่จะนับจำนวนของคำสั่งที่ใช้ในการทำงานโดยประมาณเป็นเวลาT(n )แทน
             3.   คุณภาะซอรสโค้ดและคอมไพเลอร์  เป็นอีกปัจจัยหนค่งที่มีผลต่อเวลาทีใช้ทำงานซึ่งขึ้นกับคุณภาพของซอร์สโคด้ (Source  Code) ที่เขียนการทำงานเป็นอัลกอริทึมและคุณภาพของคอมไพเลอร์(Compiler)ในการแปลงซอร์สโค้ดไปเป็นโค้ดถกษาเครื่อง(Machine Code ) ในบางภาษาเขียนโปแกรมมีความเหมาะสมกว่าในการเขียนอัลกอริทึมในขณะที่บางภาษามีคอมไพเลอร์ที่แปลงงโค้ดได้ดีกว่า ซึ่งหมายความว่าค่า T(n)ไม่สามารถจะทราบได้เมื่อไช้กับการนับจำนวนของคำสั่งในการทำงาน(ข้อ 2)

ประสิทธิภาพกับขนาดข้อมูลที่รับเข้ามา
            ตัวอย่างต่อไปนี้เป็นอัลกอริทคมที่ได้กล่าวมาแลวนารางที่ 8/.1 เป็นการคำนวนหาค่าเฉลี่ยจากการรับค่าเข้ามา n ค่าท่เก็บไว้ในอาร์เรย์  และมีการกำหนดหมายเลขบรรทัดให้กับและประโยคเพื่อความสะดวกในการอ้างถึงได้เป็นดังในตารางที่ 8.4
  ตารางที่ 8.4  อัลกอริทึมการคำนวนหาคาเฉลี่ย


1.กำหนดค่าเริ่มต้นให้ตัวแปร sum = 0
2.กำหนดค่าเริ่มต้นให้ตัวแปรดับนี i =0
3. วนลูป while i<n ให้ทำดังนี้
4. a.นำค่าของอาร์เรย์ X[i]บวกให้กับตัวแปร sum
5.b. เพิ่ค่าให้กับตัแปร I หนึ่งค่า
6.คำนวนหาค่าเฉลี่ย sum/n  และส่งคืนกลับ
           ประโยคบรรทัด 1  และ  2  มีการนำงนเยงครั้งเดียว  ประโยคบรรทัด  4 และ 5 ประกอบกันเป็นการทำงานแบบวนลูปมีการทำงาน n ครั้ง  ประโยคบรรทัด   3  ซึ่งเป็นตัวควบคุมการทำงานซ้ำมีการทำงาน  n+1ครั้ง  เพิ่ม 1 เข้ามาเป็นการตรวจสอบเงื่อนไขในกรณีที่ตัวแปร iมีค่าไม่น้อยกว่า n หลังจากจบการวนลูปประโยคบรรทัด   6 มีการทำงานครั้งเดียว  จากการวิเคราะห์ดังกล่าวได้เป็นตารางผลสรุปดังรูปที่  8.2


ประโยค #
จำนวนการทำงาน

1
2
3
4
5
6

1
1
n+1
n
n
1

ยอดรวม

3n+4

รูปที่ 8.2จำนวนการทำงานทั้งหมดของอัลกอริทึมในตารางที่ 8.2

จะเห็นว่าเวลาที่ใช้ในการทำงานของอัลกอริทึมนี้ได้เป็น

T(n)  =3n+4
     เมื่อจำนานข้อมูลที่รับเข้ามาเพิ่มขึ้น   ค่าเวลาในการทำงานของ  T(n)  ก็จะเพิ่มมากขึ้นตามอัตราส่วนของ nและได้ว่า T(n) มีลำดับขาดตามค่าของ nซึ่งกำหนดเป็นสัญลักษณ์เครื่องหมายบิ๊โอ  (Big  Oh notation) ได้เป็นดังนี้
 
T(n)  = O(n)
ในลักษณะทั่วค่าเวลา  T(n) ของอัลกอริทึมจะบอกว่ามีลำดับขนาดตามค่าของ f(n) แสดงเป็น
T(n)  = O(f(n))

ถ้ามีค่าคงที่ c จะได้ว่า
T(n) ≤ c•f(n) สำหรับทุกๆค่าของ n ที่สามารถมีค่าได้สูงสุด      
       จะได้ว่า T(n)ถูกกำหนดขอบเขตช่วงบนด้วยเวลาคงที่ f(n)สำหรับทุกๆ ค่าของnในช่วงใดช่วงหนึ่ง  และการคำนวนเชิงซ้อน (Computational  Complexity)ของอัลกอริทึมเรียกเป็นO(f(n)) จากลักษณะเชิงซ้อนของอัลกอริทคมตัวอย่างที่ผ่านมาได้เป็น O(n)โดยพบว่าเวลาที่ใช้ในการทำงานได้เป็น
   T(n)  =3n+4
และ
3n+4 ≤  3n+n  สำหรับ  n≤4
จะได้ว่า
T(n) ≤ 4n สำหรับทุก n ≥ 4
ดังนั้นเมื่อให้ f(n)=nและc=4ก็เขียนได้เป็น
T(n)=O(n)

          นอกจากนี้ยังคงมีความถูกต้องเช่นกันเมื่อเขียนเป็น T(n)=O(5280n)หรือ T(n)=O(4n+5)หรือ T(n)=O(3.141n+2.71828)แต่การเขียนที่ต้องการจะให้อยู่ในรูปแบบของฟังก์ชันเรียบง่าย เช่น n , n2  หรือlog2 เพื่อแสดงให้ทราบถึงลักษณะเชิงซ้อนของอัลกอริทึม และมีรูปแบบทั่วไปเป็น T(n)  = O(g(n)) ถ้า g(n) ≥ n สำหรับทุก ๆค่าของ n

ประสิทธิภาพกับการจัดเก็บข้อมูล
จากตัวอย่างที่ผ่านมา  เวลาที่ใช้ทำงานจะขึ้นกับขนาดหรือจำนวนของข้อมูลที่รับเข้ามาในปัญหาอื่น  ๆ  อาจขึ้นกับวิธีจัดการกับข้อมูลที่รับเข้ามา เช่น  การจดเรียงลำดั่บข้อมูลจะใช้เวลาต้องใช้เวลาจัดเรียงลำดับมากขึ้น
      ดังนั้น  ในการพยายามวัดผลเวลาของ Tอาจใช้ในกรณีดีที่สุด (Best Case)ในกรณีเฉลี่ย (Aver age Case )หรือในกรณีแย่ที่สุด(Worst Cast)การวัดสิทธิภาพของอัลกอริทึมในกรณีดีที่สุดดูเป็นเรื่องง่ายแต่ไม่สามารถนำมาวัดผลได้และในกรณีเฉลี่ยก็เป็นการยากที่จะต้องพิจารณาค่าเฉลี่ยที่ชัดเจน   แต่ในกรณีที่แย่ที่สุดเหมือนไม่ง่ายแต่ก็ไม่ยากที่จะนำมาใช้วัดผลดังนั้นเวลา T(n)จึงนำมาใช้วัดประสิทธิภาพของอัลกอริทึมในกรณีที่แย่ที่สุด
    ตัวอย่างที่นำมาแสดงเป็นอัลกอริทึมการจัดเรียงลำดับข้อมูลแบบเลือก Selection Sorting)
ดังในตารางที่ 8.5 และมีการกำหนดหมายเลขบรรทัดให้กับแต่ละประโยค

ตารางที่ 8.5 อัลกอริทึมการเรียงลำดับแบบเลือก


1.วนลูปforตั้งแต่ i=0ถึงn-2ให้ทำดังนี้
2.     a กำหนดตัวแปร smallpos มีค่าเท่ากับ i
3.     b กำหนดตัวแปรsmallestมีค่าเท่ากับอาร์เรย์ X[smallpos]
4.     c  วนลูป forตั้งแต่ j=i=+1ถึงn-1ให้ทำงานดังนี้
5.                   ถ้า X[j]นอ้ยกว่า  smallest ทำดังนี้
6.           1  กำหนดตัวแปร smallpos มีค่าเท่ากับ j
7.           2  กำหนดตัวแปรsmallestมีค่าเท่ากับอาร์เรย์ X[smallpos]
8.        d  กำหนดอาร์เรย์ X[smallest]มีค่าเท่ากับ X[i]
9.            e  กำหนดอาร์เรย์  X[i] มีค่าเท่ากับ smallest


        ประโยคบรรทัดที่ 1 มีการทำงานบนวนลูป n ครั้งจากช่วง  i=0 ถึง n-2 และหนึ่งครั้งเพื่อจบการวนลูป ประโยคบรรทัด 2,3,8และ 9 แต่ละบรรทัดมีการทำงาน n-1 ครั้งภายในลูปในการวนลูปรอบแรกค่า i =0 โดยประโยคบรรทัดที่ 4 เป็นตัวควบคุมการทำงานซ้ำมีการทำงาน n ครั้งประโยคบลรรทัด 5 เป็นการตรวจเงื่อนไข มีการทำงาน n-1 และในการทำงานของประโยคบรรทัด 6,7เป็นกรณียี่สุดจึงมีการทำงาน n-1  ครั้งเช่นกัน
      ในการวนลูปรอบที่ สองค่า I =1 ประโยคบรรทัด  4มีการทำงาน n-1 ครั้ง ประโยคบรรทัด 5,6และ7 มีการทำงานทั้งหมด n-2  ครั้งเมื่อการทำงานไปเรื่อยๆจนจบ  จะได้ว่าประโยคบรรทัด  4มีการทำงานทั้งหมด n+(n-1)+…+2 ครั้ง ประโยคบรรทัด 5,6และ7 แต่ละบรรทัดมีการทำงานทั้งหมด(n-1)+ n-2)+…+1ครั้งได้ผลรวมทั้งหมดเท่ากับn(n-1)/2-1 และ n(n-1)/2 ตามลำดับซึ่งจะได้เวลาในการทำงานของอัลกอริทึมเป็น ดังนี้

   T(n)  =3n+4(n-1) +-1+3
            =2n2+4n-5
เมื่อ n ≤ n2สำหรับทุก n ≥ 0จะได้ว่า
2n2 + 4n - 5 ≤ 2n2 + 4n = 6n2

และได้ว่า
T(n) ≤ 6n2 สำหรับทุก  n ≥ 0
กำหนดให้f(n) = n2 และ c = 6 ตามเครื่องหมายบิ๊กโอได้เป็น
 T(n) = O(n2)
                   เครื่องหมายบิ๊กโอบอกให้ทราบว่าเป็นการวัดผลโดยประมาณกบเวลาการทำงานของอับลกอริทึมสำหรับข้อมูลที่รับเข้ามีจำนวนมาก ๆ ถ้าหากมีสองอัลกอริทึมที่ทำงานกับปัญหาแบบเดียวกันแต่มีลักษณะเชิงซ้อนต่างกันอัลกอริทึมที่มีเวลาการทำงานน้อยที่สุดจะมีความเวลาการทำงาน T2(n) ของอัลกอริทึม  2  เป็นO(n2)นะได้ว่าอัลกอริทึม  2  และมีประสิทธิภาพมากกว่าเมื่อขนาดข้อมูลเท่ากับ n
           
                    อย่างไรก็ตาม หากขนาดข้อมูลที่รับเข้ามามีจำนวนน้อย  อัลกอริทึม 2  อาจดีกว่าอัลกอริทึม 1  เช่นไห้ T1(n)  =10n และ T2(n)  =0.1n2 ซึ่ง 10n<0.1n2 สำหรับค่าของ n  ที่นอ้ยกว่า 100 และจะได้ว่า
 T1(n)  < T2(n)  สำหรับเฉพาะ n >  100
ดังนั้นอัลกอริทึม  1  มีประสิทธิภาพมากกว่าอัลกอริทึม  2 เฉพาะข้อมูลที่รับเข้มีจำนวนมากกว่า  100
ประสิทธิภาพของอัลกอริทึมจึงขึ้นอยู่กับการจัดการกับข้อมูลอย่าไรโดยตัวอย่างที่นำมาแสดงให้ทราบความแตกต่างของแต่ละอัลกอริทึมที่ใช้แก้ปัญหาแก้ปัญหาแบบเดียว  ซึ่งเป็นการค้นหาค่าที่ต้องการมีอยู่ในอาร์เรย์ที่มีสมาชิก  n ตัวหรือไม่ แบบแรกเป็นอัลกอริทึมแบบง่าที่นำมาใช้ดำเนินการค้นหาเป็นการค้นหาตามลำดับเชิงเส้น (Linear Search) ซึ่งเริ่มต้นการค้นหาที่สมาชิกในตำแหน่งแรกของรายการและทดสอบกับสมาชิกในตำแหน่งถัดแรกของรายการและทดสอบกับสมาชิกในตำแหน่งส่งถัดไปจนกว่าจะพบค่าที่ต้องการหรือสิ้นสุดการค้นหาที่ท้ายรายการได้เป็นอัลกอริทึมดันในตารางที่  8.6



ตารางที่ 8.6 อับกอริทึมการค้นหาแบบเชิงเส้น

การหนดตัวแปร found  มีค่าเท่ากับ false
กำหนดตัวแปร Ioc มีค่าเท่ากับ 0
วนลูปwhile Ioc ≤ n -1 และ  not found ให้ทำดังนี้
ถ้า X[Ioc] มีค่าเท่ากับ item ที่ต้องการหาคำดังนี้
กำหนดตัวแปร found  มีค่าเท่ากับTrue
ไม่เช่นนั้น  เพิ่มหนึ่งค่าให้กับตัวแปร Ioc เท่ากับ Ioc+1


ในกรณีแย่ที่สุดของการค้นหาคือ  ไม่พบค่าที่ต้องการมีอยู่ในรายการ  ซึ่งใช้เวลาการทำงาน TL(n)สำหรับอัลกอริทึมการค้นหาแบบเชิงเส้นในรูที่ 8.3

                 


ประโยค #
จำนวนการทำงาน

1
2
3
4
5
6

1
1
n+1
n
0
n

รูปที่ 8.3 จำนวนการทำงานทั้งหมดของอัลกอริทึมในตารางที่  8.6
เมื่อ TL(n) = 3n+3 จะได้ว่า

TL(n)=O(n)
และ 3n+3 ≤ 4nสำหรับทุก n ≥ 3
 ถ้าหากรายการที่นำมาใช้ค้นหามีการจัดเรียงลำดับข้อมูลอยู่ก่อนแล้ว  ก็สามารถใช้แบบที่ สองโดยอัลกอริทึมจะดำเนินการค้นหาแบบแบ่งครึ่ง (Binary Search)แทนการใช้แบบเชิงเส้นเป็นการค้นหาที่ต้องการโดยไปยังสมาชิกตรงกลางของรายการและทำการตรวจสอบค่าซึ่งมีความเป็นไปได้  3 รูปแบบ คือ

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


1.กำหนดตัวแปร found  มีค่าเท่ากับfalse
2.กำหดตัวแปร first มีค่าเท่ากับ 0
3.กำหดตัวแปร last  มีค่าเท่ากับ n-1
4. วนลูป while first  last และ  not foundให้ทำดังนี้
5.คำนาณค่าตัวแปร loc  มีค่ากับ(fist + last)/2
6.ถ้าค่า item ที่ต้องการหาน้อยกว่าX[loc] ทำดังนี้
7.กำหนดตัวแปร last มีคากับ loc+1
8.ไม่เช่นนั้นถ้าค่า item ที่ต้องการหามากกว่า X[loc] ทำดังนี้
9.กำหนดตัวแปร first  มีค่าเท่ากับ loc+1
10.ไม่เช่นนั้นกำหนดตัวแปร found มีค่ากับ true
จากอัลกอริทึมนี้จะเห็นว่าประโยคบรรทัด 1 , 2 และ 3 มีการทำงานเพียงครั้งเดียว การทำงานถัดไปใช้กับกรณีแย่ที่สุดในการทำนวณเวลา Ta(n) โดยพิจารณาจากจำนวณครั้งการทำงานวนลูปตั้งแต่ประโยคบรรทัด  4 จนถึง  10 ซึ่งในการทำงานแต่ละราบของการวนลูป ขนาดของรายการจะลดลงเหลือครึ่งหนึ่งไปเรื่อย ๆ
 จนกว่าจะพบค่าที่ต้องการ นื่องจากใช้กรณีแย่ที่สุดจึงค้นหาถึงรอบท้ายสุดที่รายการเหลือเพียงค่าเดียว  ดังนั้นจำนวนครั้งในการวนลูปกับบวกจำนวน k ราบของการนลูปจนกราการเหลือเพียงคาเดียว
 เนื่องจากขนาดของรายการที่เหลืเพื่อใช้ค้นหาในเราบที่ได้ n/2k และต้องเป็น
                   <2
ซึ่งจะได้ว่า
n < 2k+1
หรือเท่ากับ
Log2  n < k+1
     สิ่งที่ต้องการคือ จำนวนราบที่ผ่านมาซึ่งเป็นตัวเลขน้อยที่สุด คือ ในส่วนของ  log2 เมื่อให้การทำงานเป็นกรณีแย่ที่สุดและค่าที่ต้องการหาจะมากกว่าแต่ละค่าของ X[0],…,X[n-1] จะได้ประโยคบรรทัด 4ทำงานไม่มากกว่า 1+ log2  n ประโยค่บรรทัด 5,6,8,9ทำงานมากกว่า 1+ log2 n และประโยคบรรทัดที่ 7,10ไม่มีการทำงานเทากับ 0 เวลาที่ใช้ทำงานทั้งหมดจึงไม่มากกว่า 9+5 log2 n และได้เป็น
Tb(n)  = O(log2 n)
 จากกัลป์กอริทึมทั้งสองแบบเวลาในการทำงานการค้นหาแบบเชิงเส้นมีลักษณะฃองเชิงซ้อนเป็นO(n)และการค้นหาแบบแบ่งครึ่งมีแนะสิทธิภาพมากกว่าการค้นหาแบบเชิงเส้นสำหรับข้อมูลในรายการมีจำนวนมาอย่างไรก็ตาม จากการศึกษาพบว่าการค้นหาแบบเชิงเส้นมีประสิทธิภาพมากกว่าการค้นหาแบบแบ่งครึ่งก็ต่อเมื่อจำนายข้อมูลในรายการไม่มากกว่า 20
ตัวอย่างการเปรียบเทียบประสิทธิภาพ
          จากตัวอว่างการหาค่าหารร่วมมากโดยใช้อัลกอริทึมของยูคลิดที่ผ่านมา  เวลาที่ใช้ทำงานในบรรทัด 1จำนวน 3ครั้งสำหรับการวนลูปโดยแต่ละรอบมีการเปรียบเทียบค่า  การส่งค่า และการหารเหลือเศษ  หากพิจารณาสำหรับทุกค่าของ n ที่เป็นไปได้และ 1 ≤ n ≤ m ในกรณีที่ดีที่สุดการทำงานมีเพียงครั้งเดียวที่บรรทัด  1  ในกรณีแย่ที่สุดซึ่งจะได้ค่าหารร่วมมากเท่ากับ 1 เสมอได้เป็นดังในรูปที่ 8.4 โดยแสดงเฉพาะจำนวนการทำงานมากที่สุดในแต่ละช่วง  สำหรับค่าที่อยู่ระหว่างช่วงเหล่านี้จำนวรการทำงานจะไม่มากกว่าจำนวนของ m ในลำดับถัดไป เช่น ให้ m =6 หรือ 7จำนวนการทำงานนกรณีแย่ที่สุดจะไม่มากกว่า  4 ที่เป็นของ m =8


m
n

จำนวนการทำงานของบรรทัด

2
3
5
8
13
21
34
55
89
144

1
2
3
5
8
13
21
34
55
89

1
2
3
4
5
6
7
8
9
10

 รูปที่ 8.4 จำนวนการทำงานของอัลกอริทึมของยุคลิดในกรณีที่แย่ที่สุดในแต่ละช่วง

       จากรูป 8.4 แสดงเฉพาะค่าของ m ที่เป็นค่าน้อย ๆ แต่สำหรับทุกๆค่าของ m ที่น้อยกว่า1,000,000
ในกรณีที่แย่ที่สุดจำนวนการทำงานของบรรทัด 1 จะไม่มากกว่า 28 ครั้ง
      เพื่อให้มีการเปรียบเทียบอัลกอริทึม การหาค่าหารร่วมมากของยูคลิดจึงมีอัลกอริทึมอีกรูปแบบหนึ่งที่ใช้หาค่าหารร่วมมากเช่นกันดังในคารางมรา  8.8 โดยจะชิจารณาถึงประสิทธิภาพว่าเป็นอย่างไร
ตารางที่ 8.8 อัลกอริทึมการหาค่าหารร่วมมาก


1.กำหนดตัวแปร g มีค่าเท่ากับค่าที่น้อยกว่าระหว่างตัวแปร mและ n
2.ถ้าตัวแปร g หารด้วยตัวแป mและnให้จบการทำงานและได้ g เป็นค่าหารร่วมมาก
3.กำหรดค่า g = g-1 และไม่ทำงานต่อในรอบถัดไปที่บรรทัด 1
อัลกอริทคมนี้นะลดค่าของ g  ตามลำดับต่อเนื่องจนกว่าจะพบคาที่สามารถหารค่าของ mและnลงตัว หากไม่พบค่าที่ตอ้งการจะจบลงเมื่อค่าของ g เท่ากับ 1ซึ่งเป็นค่าหารร่วมมากของ ทึก ๆ ค่าและเป็นกรณีแย่ที่สุดพิจารณาเส้นทางการ ทำงานของอัลกอริทึมนี้เมื่อให้ m = 144 และ n =60 เป็นไปตามลำดับดังนี้
บรรทัด 1:        g = 60 เป็นค่าที่น้อยที่สุดระหว่าง 144และ60
บรรทัด 2:        144/60 =2 เหลือเศษ 24และ60/60 = 1 เหลือเศษ 0
บรรทัด 3:         g = 59
บรรทัด 2:          144/59 =2 เหลือเศษ 26และ60/59 = 1 เหลือเศษ 1
บรรทัด 3:          g = 58
        …
        …
        …
บรรทัด 3:         g = 48
บรรทัด 2:          144/48 =3 เหลือเศษ 0และ60/48 = 1 เหลือเศษ 12
บรรทัด 3:          g = 47
           …
        …
       …
บรรทัด 3:          g = 17
บรรทัด 2:          144/12 =12 เหลือเศษ 0และ60/12 = 5เหลือเศษ 0
การหารทั้งสองมีเศษเหลือเท่ากับ 0 จบการทำงานและค่าหารร่วมมากกับ 12

     อัลกอริทึมนี้ทำงานถูกตอ้งรับค่าที่รับเข้ามาเป็นแบบเดียวกับตัวอย่างอัลกอริทึมของยูคลิด ถึงแม้การทำงานจะถึงจุดสิ้นสุดแต่มีแระสิทธิภาพน้อยกว่า   เนื่องจากการทำงานวนซ้ำถึง  49 ครั้ง แต่ละครั้งมีการหารเหลือเศษ 2ครั้งเดียวกับการเปรียบเทียบค่า  3  ครั้งในการวนลูปหากเป็นกรณีดีที่สุดจะทำงานเพียงครั้งเดียวที่บรรทัด  2 ส่วนใหญ่กรณีแย่ที่สุดเกิดขึ้นเมื่อ  n =m -1 และ mเป็นเลขขั้นข้อมูล (Prime Number)ซึ่งจำนวนการทำงานขอบรรทัด  2  เท่ากับ m-1 ครั้งอัลกอริทึมนี้เขียนเป็นตัวอย่างโปรแกรมได้เป็นตารางที่ 8.9
ตารางที่ 8.9 โปรแกรมการหาค่าหารร่วมมาก


#include <stdio.h>
#include<stdlib.h>
#include <conio.h>

int gcd (int m, int n) {
             int g;
             if(m < n)
                             g=m;
            else
                             g  =n;
            while (g>1)  {
                     if((m%g==0)&&(n%g==0);
                                        return g;
                             g--;
           }
          return 1;
}
main() {
          int m,n;
          printf(“Enter fist positive integer :”);
          scanf(“%d”,&m);
          printf(“Enter fist positive integer :”);
          scanf(“%d”,&n);

          printf(“\nGCD  of %d  and  %d  is %d  \n”,m,n,  gcd(m,n));
getch();
}

ลักษณะเชิงซ้อนของอัลกอริทึม
การวัดผลประสิทธิภาพของอัลกอริทึมโดยใช้เวลาในการทำงานเพื่อให้งานสำเร็จเผ็นการประมาณการของเวลาที่ต้องใช้ซึ่งมีอยู่ 2 วิธีคือ นับการดำเนินการ(Operation Count) จะแยกแยะการดำเนินการของคำสั่งและนับจะนวนเวลาที่ใช้ดำเนินการสั้นอีกวิธีคือนับขั้นตอ(Step Count) จะนับจำนวนเวลาของขั้นตอนการทำงานทั้งหมดในโปรแกรมดังในตัวอย่างที่ผ่านมาใช้วิธีนี้  ซึ่งเห็นผลสำคัญที่นำมาใช้เพื่อคาดการณ์ล่วงหน้าถึงการเติบโตของเวลาที่ใช้ทำงานเมื่อของมูลมีจำนวนมากขึ้น  และใช้เปรียบเทียบเวลาการทำงานของสองโปรแกรมที่แก้ปัญหางานแบบเดียวกัน โดยมีเครื่องหมายที่นำมาใช้ 3ลักษณะ  คือ
1 เครื่องหมายบิ๊กโอ   (Big  oh Notat6ion ,O) แสดงเป็น f(n)  = O(g(n)) หมายความว่าเวลาการทำงานของ f(n) น้อยกว่าหรือเท่ากับ g(n)และได้ว่า g(n)เป็นขอบเขตด้านบนของ f(n)
2 เครื่องหมายโอเมก้า  (Onega Notat6ion ,) แสดงเป็น f(n)  = (g(n))หมายความว่าเวลาการทำงานของ f(n) มากกว่าหรือเท่ากับ g(n)และได้ว่า g(n)เป็นขอบเขตด้านบนของ f(n)
3 เครื่องหมายเตตตะ  (Theta Notat6ion ,) แสดงเป็น f(n)  = (g(n))หมายความว่าเวลาการทำงานของ f(n) เท่ากับ g(n)
ในการเปรียบเทียบอัลกอริทึมโดยส่วนใหญ่ใช้เครื่องหมายบิ๊กโอซึ่งอธิบายของเขตด้ายบน ในลักษณะเชิงซ้อนที่มีอัตราการเติบโคตรของฟังก์ชัน  f  ไม่สิ้นสุด (Asymptotic Complexity)และเวลาการทำงานไม่เกินของเขตลนี้ไปได้ให้ฟังก์ชัน  f และ g มีเลขบวกสองตัวและข้อกำหนดมีดังนี้
   f(n) เป็น O(g(n))ถ้ามีค่าคงที่ c และ N  เป็นเลขบวกดังนั้น f(n) ≤ cg(n) สำหรับทุกๆ n โดย n ≥ N
หมายความว่า f    หน้า 138


การแก้ปัญหาโจทย์ทางคอมพิวเตอร์


ขั้นตอนการแก้ไขปัญหาทางคอมพิวเตอร์ 1. การนิยามปัญหา (Problem Definition) ในขั้นแรกของการแก้ปัญหา สิ่งสำคัญที่สุด คือเราต้องทำความเข้าใจให้ได้ว่าปัญหาคืออะไร ประเด็นหลักอยู่ที่ใด และต้องการให้ได้ผลลัพธ์อะไร 2. การวิเคราะห์ปัญหา (Problem analysis) หลังจากที่เข้าใจปัญหาได้ดีแล้ว ขั้นต่อไป คือ การวิเคราะห์ปัญหา และพัฒนาสูตรเชิงคณิตศาสตร์ที่แทนวิธีการแก้ปัญหา วิเคราะห์ปัญหา ให้พิจารณาที่ผลลัพธ์ของปัญหาก่อน (output) ว่าคืออะไร และมีข้อมูลนำเข้า (input) อะไรบ้างที่จะทำให้ได้ผลลัพธ์เช่นนั้น จากนั้นจึงคิดสูตรเป็นสมการ หรือวิธีการที่จะแก้ปัญหานั้น เราต้องวิเคราะห์ให้ได้ว่า ข้อมูลอะไรที่นำเข้าจากผู้ใช้ ข้อมูลอะไรเกิดขึ้นจากการคำนวณ หรือข้อมูลใดเป็นค่าคงที่ ตัวอย่างเช่น โจทย์ต้องการให้เขียนโปรแกรมคำนวณหาจำนวนเงินที่ต้องการจ่ายให้พนักงานรายวัน แต่ละคน โดยมีค่าแรงเป็น 40 บาทต่อชั่วโมง ถ้าทำงานเกินจะมีค่าล่วงเวลาคิดเป็นอัตรา 7 บาทต่อชั่วโมง จากโจทย์ ผลลัพธ์ที่ต้องการ คือ จำนวนที่ต้องจ่ายให้แก่พนักงาน ข้อมูลนำเข้า คือ จำนวนชั่วโมงที่ทำงาน จากนั้นนำมาเขียนเป็นสูตร เชิงคณิตศาสตร์ดังนี้ ค่าแรงของพนักงาน = จำนวนชั่วโมงที่ทำงาน *40 "ถ้าจำนวนชั่วโมงน้อยกว่าหรือเท่ากับ 8" ค่าล่วงเวลา = (จำนวนชั่วโมงที่ทำงาน -8)*7 "ถ้าจำนวนชั่วโมงมากกว่า 8 ชั่วโมง" รวมจำนวนเงินค่าแรงของพนักงานแต่ละคน = ค่าแรงของพนักงาน + ค่าล่วงเวลา 3. การออกแบบอัลกอริธึม (Algorithm design) หรือการออกแบบขั้นตอนวิธีการแก้ปัญหา ในขั้นนี้เป็นการคิดหาขั้นตอนการแก้ปัญหาทีละขั้น เราต้องคิดว่าจะทำอย่างไรจึงจะแก้ปัญหาได้ และสามารถนำมาแปลงเป็นคำสั่งของภาษาโปรแกรมได้โดยง่าย ซึ่งเรียกขั้นตอนการแก้ปัญหาทีละขั้นนี้ว่าอัลกอริธึม (algorithm) ตัวอย่างจากโจทย์การคำนวณหาจำนวนเงินที่ต้องการจ่ายให้แก่พนักงาน เขียนอธิบายแต่ละขั้นไดดังนี้ ขั้นที่ 1 รับข้อมูลชั่วโมงทำงานของพนักงานจากแป้นพิมพ์ ขั้นที่ 2 เปรียบเทียบจำนวนชั่วโมงทำงานกับ 8 ถ้าจำนวนชั่วโมงทำงาน มากกว่า 8 แล้ว ให้คำนวณตามสูตรต่อไปนี้ ค่าแรงของพนักงาน = 8*40 ค่าล่วงเวลา = (จำนวนชั่วโมงที่ทำงาน – 8 ) *7 ถ้าจำนวนชั่วโมงทำงาน น้อยกว่าหรือเท่ากับ 8 แล้วให้คำนวณ ค่าแรงของพนักงาน = จำนวนชั่วโมงที่ทำงาน * 40 ค่าล่วงเวลา = 0 ขั้นที่ 3 คำนวณจำนวนเงินที่ต้องจ่ายให้แก่พนักงาน รวมจำนวนเงินค่าแรงของพนักงานแต่ละคน = ค่าแรงของพนักงาน + ค่าล่วงเวลา ขั้นที่ 4 แสดงผลลัพธ์ให้ผู้ใช้ทราบ ขั้นที่ 5 จบการทำงาน แต่ละขั้นตอนต้องมีความชัดเจนว่าจะทำอะไร แล้วได้ผลลัพธ์อะไรในแต่ละขั้น 4. การพัฒนาโปรแกรม (Program development) ในขั้นตอนนี้นักเขียนโปรแกรมต้องนำเอาคำอธิบายของขั้นตอนการแก้ปัญหาแต่ละขั้นจากอัลกอริธึมมาแปลงเป็นคำสั่งของภาษาโปรแกรมคอมพิวเตอร์ภาษาใดภาษาหนึ่ง เช่น เขียนด้วยภาษา c++ เป็นต้น การพัฒนาโปรแกรมจะทำได้ง่าย ถ้าอัลกอริธึมถูกต้อง และมีความชัดเจน 5. การทดสอบความถูกต้อง (Program Testing) หลังจากที่เราเขียนคำสั่งของภาษาโปแกรมคอมพิวเตอร์แล้ว ขั้นต่อไป คือ การทดสอบ (Testing) เพื่อหาข้อผิดพลาดจากการเขียนคำสั่งผิดไวยกรณ์ของภาษา หรือข้อผิดพลาดจากการคำนวณการทดสอบควรทดสอบทุกกรณีที่คาดว่าจะเกิดขึ้น ตัวอย่างเช่น การคิดจำนวนเงินที่ต้องจ่ายให้แก่พนักงานเราต้องทดสอบด้วยการป้อนจำนวนชั่วโมงทำงานประมาร 3 ค่า คือ ค่าที่มากกว่า 8 หรือค่าที่น้อยกว่า 8 หรือค่าที่เท่ากับ 8 เพื่อทดสอบว่าถูกต้องทุกกรณีตามสูตรที่ออกแบบไว้หรือไม่ 6. การจัดทำเอกสาร (Documentation) การจัดทำเอกสารถือว่าเป็นงานที่สำคัญที่นักเขียนโปรแกรมส่วนใหญ่ละเลย การจัดทำเอกสารมีได้สองแบบ คือจัดทำเอกสารคู่มือผู้ใช้ และเอกสารคู่มือพัฒนา ซึ่งเอกสารแบบหลังนี้มีความสำคัญต่อองค์กร เพราะช่วยให้การบำรุงรักษาโปรแกรมทำได้ง่ายขึ้น และใช้อ้างอิงในกรณีที่มีการเปลี่ยนแปลงใด ๆ ในระบบ การเขียนหมายเหตุในโปรแกรมถือว่าเป็นสิ่งจำเป็นที่ควรจะทำ เพื่ออธิบายความคิดว่าขณะนั้นได้คิดอะไร การเขียนหมายเหตุเป็นสิ่งที่ช่วยเตือนความทรงจำของตัวผู้เขียนเอง และคนอื่น 7. การบำรุงรักษา และการแก้ไข (Maintenance and modification) การพัฒนาโปรแกรมขึ้นมาใหม่ถือว่าเป็นเรื่องที่ง่ายการการบำรุงรักษา และการแก้ไข ต้นทุนการบำรุงรักษาโปรแกรมจะเพิ่มมากขึ้นหากการออกแบบโปรแกรมทำได้ไม่ดี ตัวอย่างอัลกอริธึมคำนวณค่าแรง การระบุจำนวนชั่วโมง อัตราค่าแรง อัตราค่าแรงล่วงเวลาเป็น 8 และ 40 และ 7 ถ้าเราระบุแบบตายตัวเข้าไปในสูตร ในกรณีที่มีการเปลี่ยนนโยบาย เช่นอัตราค่าแรงเป็น 50บาท/ชั่วโมง อัตราค่าล่วงเวลา เป็น 10 บาท/ชั่วโมง ถ้าจำนวนบรรทัดคำสั่งไม่มากคงแก้ไขได้ไม่ยาก แต่ถ้าอัตราเหล่านี้ถูกนำไปใช้ในหลาย ๆ แห่ง ในแฟ้มคำสั่งคงจะยุ่งยากที่จะตามแก้ไขให้ครบสมบูรณ์ทุกแห่ง ดังนั้นการออแบบโปรแกรมใด ๆ ต้องให้มีลักษณะความยืดหยุ่น ปรับเปลี่ยนได้ง่ายเมื่อความต้องการเปลี่ยนเปลี่ยน ในอัลกอริธึม อาจเพิ่มตัวแปรเก็บค่าอัตราทั้งสองก็ได้ แล้วนำตัวแปรนั้นไปใช้ในทุกแห่งที่อ้างถึง เวลามีการเปลี่ยนค่าจะเปลี่ยนที่เดียวก็จะมีผลทุกแห่งที่อ้างถึงตัวแปรอัตราเหล่านั้น แก้ไขอัลกอริธึมใหม่ในขั้น 1, และ 2 ได้ดังนี้ ในขั้นที่ 1 เพิ่มบรรทัดคำสั่งต่อไปนี้ Rate


การพัฒนาระบบสารสนเทศ

การพัฒนาระบบสารสนเทศความจำเป็นในการพัฒนาระบบสารสนเทศ 1.  การเปลี่ยนแปลงกระบวนการบริหารและการปฏิบัติงาน  ระบบเดิมไม่สามารถให้ข้อมูลหรือทำงานได้ตามต้องการ มีการดำเนินงานหลายขึ้นตอน ยุ่งยากในการรวบรวมข้อมูลเพื่อนำมาจัดทำข้อมูลสรุปสำหรับการติดตามการปฏิบัติงานโดยรวมขององค์การ จึงจำเป็นต้องพัฒนาหรือปรับปรุงระบบสารสนเทศที่สามารถช่วยให้ขั้นตอนการปฏิบัติงานภายในและกระบวนการบริหารมีประสิทธิภาพมากขึ้น2.  การเปลี่ยนแปลงด้านเทคโนโลยี  เทคโนโลยีที่ใช้อยู่ในระบบสารสนเทศปัจจุบันล้าสมัย ค่าช้จ่ายในการบำรุงรักษาระบบมีราคาสูง จึงต้องรับเอาเทคโนโลยีใหม่ๆ มาประยุกต์ใช้ซึ่งทำให้มีการเปลี่ยนแปลงระบบการทำงานที่มีอยู่เดิม3.  การปรับองค์การและสร้างความได้เปรียบในการแข่งขัน -  ระบบที่ใช้งานอยู่ปัจจุบันมีขั้นตอนการทำงานที่ยุ่งยากซับซ้อน ขนาดเอกสารอ้างอิงหรือเอกสารที่มีอยู่ไม่ได้มารตรฐาน ทำให้การปรับปรุงหรือแก้ไขทำได้ยาก-  ความต้องการปรับองค์การให้เหมาะสมเพื่อสามารตอบสนองต่อการเปลี่ยนแปลงสภาพแวดล้อมทางธุรกิจ-  ระบบปัจจุบันไม่สามารถรองรับการเปลี่ยนแปลงในอนาคตได้การพัฒนาระบบประกอบด้วย            1)  กระบวนการทางธุรกิจ (Business Process) เกี่ยวข้องกับวัตถุประสงค์ เป้าหมาย และขั้นตอนการดำเนินธุรกิจขององค์การ            -  การปรับปรุงคุณภาพ            -  การติดตามความล้มเหลวจากการดำเนินงาน            -  การปรับค่าตอบแทนของพนักงานโดยใช้การปรับปรุงคุณภาพเป็นดัชนี            -  การค้นหาและแก้ไขสาเหตุที่แท้จริงของความล้มเหลว           2)  บุคลากร (People) 3)  วิธีการและเทคนิค (Methodology and Technique) การเลือกใช้วิธีการและเทคนิคที่เหมาะสมกับลักษณะของระบบเป็นสิ่งสำคัญ4)  เทคโนโลยี (Technology) เทคโนโลยีมีการเปลี่ยนแปลงอย่างรวดเร็วจึงต้องมีการพิจารณาอย่างรอบคอบในการเลือกใช้เทคโนโลยีสารสนเทศให้มีความเหมาะสมกับลักษณะขอบเขตของระบบสารสนเทศแล ะงบประมาณที่กำหนด  5)  งบประมาณ (Budget)  6)  ข้อมูลและโครงสร้างพื้นฐานภายในองค์การ (Infrastructure)7)  การบริหารโครงการ (Project Management)                     ทีมงานพัฒนาระบบการพัฒนา IT เกี่ยวข้องกับบุคคลที่มีหน้าที่รับผิดชอบกระบวนการพัฒนาระบบหลายกลุ่ม โดยทั่วไปจะมีการทำงานเป็นทีมที่ต้องอาศัยความรู้ ประสบการณ์ และทักษะจากกลุ่มบุคคล1)  คณะกรรมการ (Steering Committee)2)  ผู้บริหารโครงการ (Project Manager)3)  ผู้บริหารหน่วยงานด้านสารสนเทศ (MIS Manager)4)  นักวิเคราะห์ระบบ (System Analyst) ควรมีทักษะในด้านต่างๆ คือ                        -  ทักษะด้านเทคนิค                        -  ทักษะด้านการวิเคราะห์                         -  ทักษะดานการบริหารจัดการ                         -  ทักษะด้านการติดต่อสื่อสาร5)  ผู้ชำนาญการทางด้านเทคนิค                         -  ผู้บริหารฐานข้อมูล (Database Administrator : DBA)                        -  โปรแกรมเมอร์ (Programmer)6)  ผู้ใช้และผู้จัดการทั่วไป (User and Manager) 
หลักในการพัฒนาระบบสารสนเทศให้มีประสิทธิภาพ
1)  คำนึงถึงเจ้าของและผู้ใช้ระบบ
2)  เข้าถึงปัญหาให้ตรงจุด ซึ่งมีแนวทางการแก้ปัญหาที่เป็นระบบมีขั้นตอนดังนี้
     -  ศึกษาทำความเข้าใจในปัญหาที่เกิดขึ้น
                     -  รวบรวมและกำหนดความต้องการ
     -  หาวิธีการแก้ปัญหาหลายๆ วิธีและเลือกวิธีที่ดีที่สุด
     -  ออกแบบและทำการแก้ปัญหาตามวิธีที่เลือก
     -  สังเกตและประเมินผลกระทบจากวิธีแก้ปัญหาที่นำมาใช้ และปรับปรุงวิธีการให้มีประสิทธิภาพมากที่สุด
3)  กำหนดขั้นตอนหรือกิจกรรมในการพัฒนาระบบ
4)  กำหนดมาตรฐานในการพัฒนาระบบ
5)  ตระหนักว่าการพัฒนาระบบเป็นการลงทุนประเภทหนึ่ง
6)  เตรียมความพร้อมหากจะต้องยกเลิกหรือทบทวนระบบสารสนเทศที่กำลังพัฒนา
7)  แตกระบบสารสนเทศที่จะพัฒนาออกเป็นระบบย่อย
8)  ออกแบบระบบให้สามารถรองรับต่อการขยายหรือการปรับเปลี่ยนในอนาคต

 ขั้นตอนในการพัฒนาระบบสารสนเทศ
-  การกำหนดและเลือกโครงการ (System Identification and Selection)
          -  การเริ่มต้นและวางแผนโครงการ (System Initiation and Planning)
-  การวิเคราะห์ระบบ (System Analysis)
-  การออกแบบระบบ (System Design)
          -  การพัฒนาและติดตั้งระบบ (System Implementation)
-  การบำรุงรักษาระบบ (System Maintenance)

การพัฒนาระบบมีรูปแบบต่างๆ
1.  การพัฒนาระบบแบบน้ำตก (Waterfall Model) แต่ละขั้นตอนของการพัฒนาระบบจะเริ่มได้ก็ต่อเมื่อได้ทำขั้นตอนก่อนหน้านี้เสร็จเรียบร้อยและจะไม่ย้อนกลับไปทำขั้นตอนก่อนหน้านี้อีก
          2.  การพัฒนาระบบแบบน้ำตกที่ย้อนกลับขั้นตอนได้ (Adapted Waterfall ) เป็นรูปแบบการพัฒนาที่หากดำเนินการในขั้นตอนใดอยู่สามารถย้อนกลับไปขั้นตอนก่อนหน้านี้ได้เพื่อแก้ไขข้อผิดพลาดหรือ  
          เพื่อต้องการความชัดเจน
3. การพัฒนาระบบอย่างรวดเร็ว (Rapid Application Development) เป็นรูปแบบการพัฒนาที่มีการทำซ้ำบางขั้นตอนจนกว่าขั้นตอนต่างๆ ของระบบที่สร้างจะได้รับการยอมรับ

4. การพัฒนาระบบในรูปแบบขดลวด (Evolutionary Model SDLC)  เป็นการพัฒนาระบบแบบวนรอบเพื่อให้การพัฒนาระบบมีความรวดเร็วโดยการพัฒนาระบบจะเริ่มจากแกนกลาง ในรอบแรกของการพัฒนาจะได้  ระบบรุ่น(Version) แรกออกมาและจะปรับปรุงให้ดีขึ้นในรุ่นที่สอง และดำเนินการแบบนี้ไปเรื่อยๆจนกว่าจะได้รุ่นที่สมบูรณ์
วงจรการพัฒนาระบบ
Phase 1  การกำหนดและเลือกสรรโครงการ  (System Identification and Selection) ผลของการพิจารณาของคณะกรรมการอาจเป็นไปได้ดังนี้
            -  อนุมัติโครงการ
            -  ชะลอโครงการ
            -  ทบทวนโครงการ
            -  ไม่อนุมัติโครงการ

Phase 2  การเริ่มต้นและวางแผนโครงการ  (System Initiation and Planning) จะเริ่มจัดทำโครงการ  โดยจัดตั้งทีมงานพร้อมทั้งกำหนดหน้าที่และความรับผิดชอบ
-     การศึกษาความเป็นไปได้
-     การพิจารณาผลประโยชน์หรือผลตอบแทนที่จะได้รับจากโครงการ
-     การพิจารณาค่าใช้จ่ายหรือต้นทุนของโครงการ
-     การวิเคราะห์ความคุ้มค่าของการพัฒนาระบบสารสนเทศ

Phase 3  การวิเคราะห์ระบบ (System Analysis) ในขั้นตอนนี้จะเกี่ยวกับการเก็บข้อมูล
-     Fact-Finding Technique
-     Joint Application Design (JAD)
-     การสร้างต้นแบบ

Phase 4  การออกแบบระบบ (System Design) การออกแบบแบ่งเป็น 2 ส่วน
-     การออกแบบเชิงตรรกะ (Logical Design)
-     การออกแบบเชิงกายภาพ (Physical Design)

Phase 5  การดำเนินการระบบ (System Implementation) ซึ่งจะครอบคลุมกิจกรรมดังต่อไปนี้
-     จัดซื้อหรือจัดหาฮาร์ดแวร์ (Hardware) และซอฟต์แวร์ (Solfware)
-     เขียนโปรแกรมโดยโปรแกรมเมอร์ (Coding)
-     ทำการทดสอบ (Testing)
-     การจัดทำเอกสารระบบ (Documentation)
-     การถ่ายโอนระบบงาน (System Conversion)
-     ฝึกอบรมผู้ใช้ระบบ (Training)

Phase 6  การบำรุงรักษาระบบ (System Maintenance)
            เป็นขั้นตอนการดูและระบบเพื่อให้ระบบมีประสิทธิภาพในการทำงานโดยบุคลากรทางด้านเทคโนโลยีสารสนเทศมีหน้าที่ในส่วนนี้
การบำรุงรักษาระบบแบ่งได้ 4 ประเภท
-     Corrective Maintenance เพื่อแก้ไขข้อผิดพลาดของระบบ
-     Adaptive Maintenance  เพื่อให้ระบบสามารถรองรับความต้องการที่เพิ่มขึ้น
-     Perfective Maintenance  เพื่อบำรุงรักษาระบบให้ทำงานได้อย่างมีประสิทธิภาพ
-     Preventive Maintenance  เพื่อบำรุงรักษาระบบป้องกันข้อผิดพลาดที่จะเกิด
วิธีการพัฒนาระบบสารสนเทศ
1)  การพัฒนาระบบงานแบบดั้งเดิม (Traditional SDLC Methodology) เป็นการพัฒนาระบบสารสนเทศตามวงจรการพัฒนาระบบที่มีขั้นตอนที่แน่นอน วิธีนี้เป็นวิธีเก่าแก่ที่สุดและนิยมเรียกย่อๆ ว่า SDLC
2)  การสร้างต้นแบบ (Prototyping) เป็นการสร้างระบบต้นแบบขึ้นมาเพื่อให้ผู้ใช้ทดลองใช้งานซึ่งนอกจากผู้ใช้จะได้แนวคิดเกี่ยวกับสารสนเทศที่ต้องการแล้วยังช่วยให้มองเห็นภาพของระบบที่จะพัฒนาได้ชัดเจนขึ้น
การพัฒนาระบบโดยใช้ตนแบบแบงออกเป็น 4 ขั้นตอน
ขั้นที่ 1 :  ระบุความต้องการเบื้องต้นของผู้ใช้
ขั้นที่ 2 :  พัฒนาต้นแบบเริ่มแรก
ขั้นที่ 3 :  นำต้นแบบมาใช้
ขั้นที่ 4 :  ปรับปรุงแก้ไขต้นแบบ
3)  การพัฒนาระบบโดยผู้ใช้ (End-user Development)
4)  การใช้บริการจากแหล่งภายนอก (Outsourcing) เนื่องจากองค์การไม่มีบุคลากรที่มีทักษะความชำนาญ การจ้างหน่วยงานหรือบริษัทภายนอกที่มีความชำนาญด้านนี้มาทำการพัฒนาระบบให้ ซึ่งการทำสัญญาจ้างให้หน่วยงานภายนอกมาทำงานเกี่ยวกับการดำเนินงานของฝ่ายคอมพิวเตอร์นี้เรียกว่า IT Outsourcing ในที่นี้จะเรียกสั้นๆ ว่า Outsourcing
5)  การใช้ซอฟแวร์สำเร็จรูปประยุกต์ (Application Software Package) เป็นทางเลือกหนึ่งในการพัฒนา เช่น ระบบงานเงินเดือน ระบบบัญชีลูกหนี้ หรือระบบควบคุมสินค้าคลคลัง หากซอฟต์แวร์สำเร็จรูปสามารถสนองต่อความต้องการระบบงานขององค์การได้ องค์การก้ไม่จำเป็นต้องพัฒนาขึ้นเอง เนื่องจากโปรแกรมสำเร็จรูปได้รับการออกแบบและผ่านการทดสอบแล้ว จึงช่วยลดค่าใช่จ่ายและเวลาในการพัฒนาระบบใหม่และยังช่วยให้การทดสอบ การติดตั้ง และการบำรุงรักษาระบบเป็นไปได้ง่ายขึ้น

การพัฒนาระบบแบบออบเจ็กต์ (Object-Oriented Methodology)
            ประกอบด้วยกลุ่มของวัตถุ (Class of Objects) ซึ่งทำงานร่วมกัน มีการจัดกลุ่มของข้อมูลและพฤติกรรมหรือฟังก์ชันที่กระทำกับข้อมูลนั้นเป็นกลุ่มๆ ในรูปของออบเจ็กต์ เนื่องจากออบเจ็กต์มีคุณสมบัติในการนำกลับมาใช้ใหม่ได้ (Reusability) การพัฒนาโปรแกรมแบบออบเจ็กต์จึงใช้เวลาในการพัฒนาน้อยกว่าวิธีอื่น

การพัฒนาระบบงานประยุกต์แบบรวดเร็ว (Rapid Application Development) เป็นขั้นตอนในการพัฒนาระบบที่ใช้ระยะเวลาในการพัฒนารวดเร็วกว่าและคุณภาพดีกว่าวิธีพัฒนาระบบงานแบบดั้งเดิม  โดยมีการนำเครื่องมือซอฟต์แวร์มาช่วยในการพัฒนาระบบซึ่งมีขั้นตอนในการพัฒนาระบบอยู่ 4 ขั้นตอนคือ
1)  การกำหนดความต้องการ
2)  การออกแบบโดยผู้ใช้
3)  การสร้างระบบ
4)  การเปลี่ยนระบบหรือใช้ระบบ

ปัจจัยที่มีผลต่อการพัฒนาระบบสารสนเทศให้ประสบความสำเร็จ
1)  การสนับสนุนจากฝ่ายบริหาร
2)  การกำหนดขอบเขตและวัตถุประสงค์ที่ชัดเจน
3)  ความรู้ ความสามารถและประสบการณ์ของทีมพัฒนาระบบ
4)  การเลือกใช้เทคโนโลยีสารสนเทศที่เหมาะสม

5)  การบริหารโครงการพัฒนาระบบสารสนเทศอย่างมีประสิทธิภาพ

ซอฟต์แวร์และการจัดการข้อมูล

1. ความหมายของซอฟต์แวร์

   ซอฟต์แวร์ (Software) หมายถึง ส่วนที่ทำหน้าที่เป็นคำสั่งที่ใช้ควบคุมการทำงานของเครื่องคอมพิวเตอร์ หรืออาจเรียกว่า “ โปรแกรม ” ก็ได้ ซึ่งหมายถึงคำสั่งหรือชุดคำสั่ง สามารถใช้เพื่อสั่งให้คอมพิวเตอร์ทำงาน เราต้องการให้เครื่องคอมพิวเตอร์ทำอะไรก็เขียนเป็นคำสั่งที่จะต้องสั่งเป็นขั้นตอน และแต่ละขั้นตอนต้องทำอย่างละเอียดและครบถ้วนก็จะเรียกว่า นักเขียนโปรแกรม (Programmer) สำหรับการเขียนโปรแกรมดังกล่าวใช้ภาษาที่ใช้ในการเขียนโปรแกรมโดยเฉพาะ หรือหมายถึง ภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ เช่น ภาษาเบสิก ภาษาโคบอล ภาษาปาสคาล เป็นต้น โปรแกรมที่เขียนขึ้นมาก็จะนำไปใช้ในงานเฉพาะอย่าง เช่น โปรแกรมสต็อกสินค้าคงคลัง โปรแกรมคำนวณภาษี โปรแกรมคิดเงินเดือนพนักงาน เป็นต้น

2. ประเภทของซอฟต์แวร์

   ซอฟต์แวร์จะแบ่งออกเป็นประเภทใหญ่ ๆ ได้ ประเภท คือ ซอฟต์แวร์ระบบ (System Software) และซอฟต์แวร์ประยุกต์ ( Application Softwaer) ซึ่งมีรายละเอียด ดังนี้

        1. ซอฟต์แวร์ระบบ ( System Software)

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

1.1 OS (Operating System)

    คือ โปรแกรมระบบที่ทำหน้าที่ควบคุมการใช้งานส่วนต่าง ๆ ของเครื่องคอมพิวเตอร์ เช่น ควบคุมหน่วยความจำ ควบคุมหน่วยประมวลผล ควบคุมหน่วยรับและควบคุมหน่วยแสดงผล ตลอดจนแฟ้มข้อมูลต่าง ๆ ให้มีประสิทธิภาพในการทำงานสูงที่สุด และสามารถใช้อุปกรณ์ทุกสาวนของคอมพิวเตอร์และช่วยจัดการกระบวนการพื้นฐานที่สำคัญ ๆ ภายในเครื่องคอมพิวเตอร์ เช่นการเปิด หรือปิดไฟล์ การสื่อสารกันระหว่างชิ้นส่วนต่าง ๆ ภายในเครื่อง การส่งข้อมูลออกสู่เครื่องพิมพ์หรือสู่จอภาพ เป็นต้น ก่อนที่คอมพิวเตอร์แต่ละเครื่องจะสามารถอ่านไฟล์ต่าง ๆ หรือสามารถใช้ซอฟต์แวร์ต่าง ๆ ได้จะต้องผ่านการดึงระบบปฏิบัติการออกมาฝังตัวอยู่ในหน่าวความจำก่อน ปัจจุบันนี้มีโปรแกรมระบบบอยู่หลายตัวด้วยกันซึ่งแต่ละตัวนั้นก็เป็นโปรแกรมระบบปฏิบัติการเหมือนกัน แต่ต่างกันที่ลักษณะการทำงานจะไม่เหมือนกัน ดังนี้

DOS (Disk operating System) เป็นระบบปฏิบัติการที่นิยมใช้กันมาตั้งแต่ในอดีตออกมาพร้อมกับเครื่องพีซีของไอบีเอ็มรุ่นแรก ๆ จากนั้นก็มีการพัฒนารุ่นใหม่ออกมาเรื่อย ๆ จนกระทั่งถึงเวอร์ชั่นสุดท้ายคือ เวอร์ชั่น 6.22 หลังจากที่มีการประกาศใช้วินโดวส์ 95 ก็คงจะไม่ผลิต DOS เวอร์ชชั่นใหม่ออกมาแล้ว โดยทั่วไปจะนิยมใช้วินโดวส์ 3. x ซึ่งถือว่าเป็นโปรแกรมเสริมชนิดหนึ่งที่ใช้ในดอส 

UNIX เป็นระบบ OS ที่สามารถใช้ร่วมกันได้หลายคน (Multiuser) หรือเป็นระบบปฏิบัติการแบบเครือข่าย โดยที่ผู้ใช้แต่ละคนจะต้องมีชื่อและพาสเวิร์ดส่วนตัว และสามารถเชื่อมโยงถึงกันได้ทั่วโลก โดยผ่านทางสายโทรศัพท์และมี Modem เป็นตัวกลางในการรับส่งข้อมูลหรือโอนย้ายข้อมูล นิยมใช้อย่างแพร่หลายในมหาวิทยาลัย หน่วยงานรัฐบาล หรือบริษัทเอกชนที่มีระบบคอมพิวเตอร์ใหญ่ ๆ ใช้ ในระบบยูนิกซ์เองก็มีวินโดวส์อีกชนิดหนึ่งใช้เรียกว่า X Windows สำหรับผู้ที่ต้องการใช้ระบบยูนิกซ์ในเครื่องพีซีที่บ้านก็มีเวอร์ชั่นสำหรับพีซีเรียกว่า Linux ซึ่งจะมีคำสั่งพื้นฐานคล้าย ๆ กับระบบยูนิกซ์ LAN เป็นระบบปฏิบัติการแบบเครือข่ายเช่นเดียวกัน แต่จะใช้เชื่อมโยงกันใกล้ ๆ เช่น ในอาคารเดียวกันหรือระหว่างอาคารที่อยู่ใกล้กัน โดยใช้สาย Lan เป็นตัวเชื่อมโยง 

WINDOWS เป็นระบบปฏิบัติการที่กำลังนิยมใช้กันมากในปัจจุบัน ซึ่งพัฒนามาถึงรุ่น Windows 2000 แล้ว บริษัทไมโครซอฟต์ได้เริ่มประกาศใช้ MS Windows 95 ครั้งแรกเมื่อ 24 สิงหาคม ค.ศ.1995 โดยมีความคิดที่ว่าจะออกมาแทน MS-DOS และ วินโดวส์ 3. X ที่ใช้ร่วมกันอยู่ ลักษณะของวินโดวส์ 95 จึงคล้ายกับเป็นระบบโอเอสที่มีทั้งดอสและวินโดวส์อยู่ในตัวเดียวกัน แต่เป็นวินโดวส์ที่มีลักษณะพิเศษกว่าวินโดวส์เดิม เช่น มีคุณสมบัติเป็น Plug and play ซึ่งสามารถจะรู้จักฮาร์ดแวร์ต่าง ๆ ที่ติดตั้งอยู่ในเครื่องได้โดยอัตโนมัติ มีลักษณะเป็นระบบ 32 บิต ในขณะที่วินโดวส์ เดิมเป็นระบบ 16 บิต เป็นต้น บริษัทไมโครซอฟต์ไม่ได้หยุดเพียงแค่วินโดวส์ 95 แต่ได้มีการพัฒนาเพิ่มฟังก์ชันใหม่ ๆ เข้าไป ในที่สุดก็ออกระบบโอเอสตัวถัดมาเป็น MS Windows 98 และ MS Windows 2000 ตามลำดับโดยที่มีการติดตั้ง และการใช้งานที่มีพื้นฐานไม่แตกต่างกันมากนัก จึงง่ายสำหรับผู้ใช้ในการปรับตัวเข้ากับระบบโอดอสใหม่ ๆ 

Windows NT เป็นระบบ OS ที่ผลิตจากบริษัทไมโครซอฟต์เข่นเดียวกัน เป็นระบบ 32 บิต มีรูปลักษณ์เป็นกราฟิกที่ต้องใช้เมาส์กล้ายกับวินโดวส์ทั่วไป แต่นิยมใช้ในระบบเวิร์กสเตชันมากกว่าในเครื่องพีซีทั่ว ไป 

OS/2 เป็นระบบ OS ที่ผลิตออกมาจากบริษัท IBM เป็นระบบ 32 บิต ที่มีรูปลักษณ์เป็นกราฟฟิกที่ต้องใช้เมาส์ คล้ายกับวินโดวส์ทั่วไปเช่นกัน

 1.2 Translation Program คือโปรแกรมที่ทำหน้าที่ในการแปลโปรแกรมหรือชุดคำสั่งที่เขียนด้วยภาษาที่ไม่ใช่ภาษาเครื่อง หรือภาษาเครื่องที่ไม่เข้าใจให้เป็นภาษาที่เครื่องสามารถรู้เรื่องเข้าใจ และนำไปปฏิบัติได้ เช่น ภาษา BASIC ,COBOL,C, PASCAL, FORTRAN, ASSEMBLY เป็นต้น สำหรับตัวแปลนั้นจะมี 3 แบบคือ

Assembler เป็นโปแกรมที่ใช้แปลภาษาแอสแซมบลี ซึ่งมีลักษณะการแปลทีละคำสั่ง เมื่อทำตามคำสั่งนั้นเสร็จแล้ว ก็จะแปลคำสั่งถัดไปเรื่อย ๆ จนจบ

Interpreter เป็นโปรแกรมที่ใช้แปลภาษาเบสิก โดยจะแปลทีละคำสั่งแล้วทำตามคำสั่งนั้น แล้วแปลต่อไปเรื่อย ๆ จนจบโปรแกรม

Compiler เป็นโปรแกรมที่ใช้แปลภาษาระดับสูงให้เป็นภาษาเครื่อง ซึ่งจะแปลทั้งโปรแกรมให้เสร็จก่อน จากนั้นจึงจะปฏิบัติตามคำสั่งทีละคำสั่ง 

1.3 Utility Program คือ โปรแกรมระบบที่ทำหน้าที่ในการอำนวยความสะดวกให้กับผู้ใช้เครื่องคอมพิวเตอร์ ให้สามารถทำงานได้สะดวก รวดเร็วและง่ายขึ้น เช่น โปรแกรมที่ใช้ในการเรียงลำดับข้อมูล โปรแกรมโอนย้ายข้อมูลจากชนิดหนึ่งไปยังอักชนิดหนึ่ง โปรแกรมรวบรวมข้อมูล 2 ชุดเข้าด้วยกัน โปรแกรมคัดลอกข้อมูลเป็นต้น

1.4 Diagnostic Program คือ โปรแกรมระบบที่ทำหน้าที่ตรวจสอบข้อผิดพลาดใน การทำงานของอุปกรณ์ต่าง ๆ ของเครื่องคอมพิวเตอร์ ได้แก่ โปแกรม QAPLUS โปรแกรม NORTON เป็นต้น และเมื่อพบข้อผิดพลาดก็จะแจ้งขึ้นบนจอภาพให้ทราบ

2. ซอฟต์แวร์ประยุกต์ (Application Software)


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

2.1 User Program คือ โปรแกรมที่ผู้ใช้เขียนมาใช้เอง โดยใช้ภาษาระดับต่าง ๆ ทางคอมพิวเตอร์ เช่น ภาษา BSDIC , COBOL , PSDCSL , C , ASSEMBLY FORTRAN ฯลฯ ซึ่งการที่จะเลือกใช้ภาษาใดนั้นก็ขึ้นอยู่กับความเหมาะสมของงานเหล่านั้นด้วย เช่น โปรแกรมระบบบัญชี, โปแกรมควบคุมสต็อกสินค้า, โปแกรมแฟ้มทะเบียนประวัติ โปรแกรมคำนวณภาษี,โปรแกรมคิดเงินเดือน เป็นต้น

2.2 Package Program คือ โปรแกรมสำเร็จรูปซึ่งเป็นโปรแกรมที่ถูกสร้างหรือเขียนขึ้นมาโดยบริษัทต่าง ๆ เสร็จเรียบร้อยแล้วพร้อมที่จะนำไปใช้งานต่าง ๆ ได้ทันทีตัวอย่างเช่น

Word Processor โปรแกรมที่ช่วยในการทำเอกสาร พิมพ์งานต่าง ๆ เช่น เวิร์ดจุฬา, เวิร์ดราชวิถี, Microsoft Word, WordPerfect, AmiPro เป็นต้น 

Spreadsheet โปรแกรมที่ใช้ในการคำนวณข้อมูล มีลักษณะเป็นตาราง เช่น Lotus 1-2-3, Microsoft Excel เป็นต้น 

Database โปรแกรมที่ใช้ในการทำงานทางด้านฐานข้อมูลจะใช้เก็บรวบรวมข้อมูลต่าง ๆ ที่มีขนาดใหญ่ และมีข้อมูลเป็นจำนวนมาก เช่น dBASE lll Plis, Foxbase, Microsoft Access, foxpro, Visual Foxpro เป็นต้น 

โปรแกรมที่ใช้ในการทำงานทางด้านการสร้างรูปภาพและกราฟฟิกต่าง ๆ รวมทั้งงานทางด้านสิ่งพิมพ์ การทำโบรชัวร์ แผ่นพับ นามบัตร เช่น CorelDraw, Photoshop, Harvard Graphic, Freelance Graphic, PowerPoint, PageMaker เป็นต้น 

        จากข้างต้นเป็นตัวอย่างของ Package Program ที่นิยมใช้งานกันในปัจจุบัน ที่จริงแล้ว Package Program สามารถแบ่งออกได้เป็น 9 ประเภทด้วยกัน สำหรับรายละเอียดของโปรแกรมแต่ละประเภทนั้น มีรายละเอียดดังนี้

1.โปรแกรมทางด้าน Word Processor

   โปรแกรมทางด้าน Word Processor นั้น เป็นโปรแกรมที่ทำงานเกี่ยวกับทางด้านการประมวลผลคำ สามารถจัดทำเอกสาร รายงาน จดหมาย หนังสือต่าง ๆ ได้ ทำให้ได้งานที่มีประสิทธิภาพ สวยงาม เนื่องจากสามารถจัดรูปแบบงานตามต้องการได้รวมทั้งยังแก้ไขงานที่ทำได้ด้วย อีกทั้งยังช่วยประหยัดเวลาในการแก้ไขงาน และสามารถค้นหาข้อความต่าง ๆ ได้อย่างสะดวก

    โปรแกรมที่จัดอยู่ในกลุ่ม Word Processor มีดังนี้ คือ WordStat, ราชวิถีเวิร์ด เวิร์ดจุฬา โปรแกรมเหล่านี้จะเป็นโปรแกรมที่ทำงานบน Dos นอกจากนั้นยังมีโปรแกรมที่ทำงานบนวินโดวส์อีกด้วย คือ Word Perfect, Microsoft Word และ AmiPro โปรแกรมเหล่านี้จะใช้งานง่าย สะดวก สามารถจัดรูปแบบต่าง ๆ ได้ตามต้องการ รวมทั้งสามารถนำภาพมาประกอบกับงานเอกสาร หรือนำเอกสารจากโปรแกรมอื่นมาจัดรูปแบบในโปรแกรมเหล่านี้ก็ได้

2. โปรแกรมทางด้าน Spreadsheet

   โปรแกรมทางด้าน Spreadsheet เป็นโปรแกรมที่มีลักษณะเป็นกระดาษทำการขนาดใหญ่ หรือ เรียกว่า Worksheet ประกอบด้วยส่วนที่เป็น Row หรือแถวตามแนวนอนและส่วนที่เป็น Column หรือแถวตามแนวตั่ง ซึ่งใช้ในด้านการคำนวณเป็นส่วนมาก นอกจากนั้นยังมีการนำเสนอข้อมูลออกมาในรูปของกราฟโดยสร้างเป็นกราฟ 2 มิติและ 3 มิติได้อีกด้วย โปรแกรม Spreadsheet เหมาะกับการทำงานในด้านการบัญชี การเงิน การวิเคราะห์ข้อมูล หรืองานการคิดคะแนนและเกรดของนักศึกษา เป็นต้น

    สำหรับโปแกรมที่อยู่ในกลุ่มนี้ ได้แก่ โปรแกรม Lotus ซึ่งมีทั้งที่ทำงานบน Dos และบน Windows, โปรแกรม Microsoft Excel โปรแกรมเหล่านี้สามารถจัดรูปแบบตัวอักษรและกำหนดขนาดตัวอักษร รวมทั้งสามารถตีกรอบ สร้างตารางระบายสีลงในเซลล์ต่าง ๆ ได้ นอกจากนั้นยังสามารถนำรูปกราที่สร้างไว้มารวมกับข้อมูลที่อยู่ใน Worksheet เดียวกันได้ ทำให้ได้งานที่สมบูรณ์ขึ้น

3.  โปรแกรมทางด้าน Database

    โปรแกรมประเภทนี้เป็นโปรแกรมที่ทำงานทางด้านการจัดการฐานข้อมูล ช่วยจัดเก็บข้อมูล แก้ไข ค้นหา เพิ่มเติม รวมทั้งการจัดเรียงข้อมูล ทำให้ผู้ใช้สะดวกรวดเร็วสามารถทำงานได้เป็นระบบ โปรแกรม Database เหมาะกับการทำงานที่มีข้อมูลมาก ๆ เช่น การเก็บสต็อกสินค้าคงคลัง การเก็บประวัติพนักงาน การเก็บรายชื่อนักศึกษาในโรงเรียน การเก็บรายชื่อหนังสือในห้องสมุด เป็นต้น           

    โปรแกรมที่อยู่ในกลุ่มนี้ได้แก่ โปรแกรม dBase lll Plus ซึ่งทำงานบน Dos โปรแกรม Foxpro ซึ่งมีหน้าที่ทำงานบน Dos และบน Windows, โปรแกรม Microsoft Access และในปัจจุบันมีโปรแกรม Visual Foxpro ซึ่งเป็นโปรแกรมฐานข้อมูลที่ทำงานบน Windows เช่นกัน

4.  โปรแกรมทางด้าน Graphic

     โปรแกรม Graphic ส่วนมากแล้วจะเกี่ยวกับทางด้านงานออกแบบ เขียนแบบวาดภาพ จัดทำสิ่งพิมพ์และจะเป็นทางด้านการนำเสนองาน สามารถนำไปประยุกต์ใช้ในงานโฆษณา ทำ Slide Show หรือนำไปใช้กับระบบ Multimedia ได้ ปัจจุบันโปรแกรมกลุ่มนี้เป็นที่นิยมมาก

     สำหรับโปรแกรมที่ทำงานทางด้าน Graphic นั้น มีอยู่หลายโปรแกรมและแต่ละโปรแกรมนั้น ส่วนใหญ่จะทำงานคล้ายกัน แต่มีบางคำสั่งที่แตกต่างกันไปดังนี้

CorelDraw และ Photoshop จะทำเกี่ยวกับงานออกแบบ วาดภาพ จัดทำ สิ่งพิมพ์ ตกแต่งภาพให้สวยงาม เหมาะกับงานทางด้านโฆษณา 

Harvard Graphic, Freelance Graphic และ PowerPoint เหมาะกับงานที่ต้องการนำเสนอ หรือแสดงออกโดยการสร้าง Slide Show สามารถนำภาพและเสียงมาประกอบกับงานได้ ทำให้ได้ Presentation ที่สวยงามออกมา 

PageMaker เหมาะกับงานประเภทสิ่งพิมพ์ ใช้สร้างโบรชัวร์ แผ่นพับ ใบปลิว นามบัตร และการทำหนังสือ โปรแกรมที่นิยมใช้กับโรงพิมพ์มาก

5.  โปรแกรมเกม ( Game)

    เป็นโปรแกรมที่แพร่หลายเป็นที่รู้จักกันทั่วไป ไม่ว่าจะเป็นเด็กหรือผู้ใหญ่ และปัจจุบันนี้มีโปรแกรมเกมต่าง ๆ มากมาย ทั้งแบบธรรมดาและแบบ 3 มิติ ซึ่งที่จริงแล้วโปรแกรมเกมส่วนใหญ่จะสร้างขึ้นมา เพื่อช่วยผ่อนคลายความตึงเครียดในการทำงานแต่ละส่วนใหญ่แล้วจะพบว่าเด็กจะเล่น เพื่อความสนุกสนานเพลิดเพลินมากกว่า ผู้ใหญ่ควรควบคุมเกมที่เด็ก ๆเล่นด้วย เพราะบางเกมเป็นลักษณะของการต่อสู้ เพื่อให้เกิดชัยชนะ ซึ่งจะทำให้เด็กสร้างนิสัยผิด ๆ กลายเป็นเด็กที่ชอบเอาชนะคนอื่นชอบการต่อสู้ และอาจเป็นคนดุร้าย เห็นแก่ตัวได้

6.  โปรแกรมทางด้านการสร้างสถานการณ์จำลอง

    เป็นโปรแกรมที่ให้ผู้เล่นได้ทดลองสร้างสถานการณ์จำลองของงานที่อาจจะเกิดขึ้นได้หรืออาจจะเรียกว่า เกมส์ทางธุรกิจ โดยให้ผู้เล่นได้รู้จักวางแผนในการทำงาน คิดถึงผลกำไรขาดทุนที่อาจจะเกิดขึ้นได้ รู้จักจัดสรรงบประมาณที่มีอยู่ให้ได้ผลกำไรมากที่สุด

7. โปรแกรมทางด้านการติดต่อสื่อสาร

    เป็นโปรแกรมที่มักนิยมใช้ตามสำนักงานต่างๆทั้งของรัฐและเอกชนในการนัดหมายประชุม การทำจดหมายเวียนไปตามฝ่ายต่างๆ โดยการเก็บข้อมูลไว้ในคอมพิวเตอร์แทนที่จะพิมพ์ออกมาทางกระดาษ เพื่อแจ้งให้พนักงานทราบ ข้อดีของโปรแกรมชนิดนี้คือ ทำให้ประหยัดกระดาษลงไปได้มาก

8.  โปรแกรมคอมพิวเตอร์ช่วยสอน

     โปรแกรมประเภทนี้เรียกอีกอย่างหนึ่งว่า CAI (Computer Assisted Instruction) เป็นโปรแกรมที่นำมาสอนให้กับนักเรียนในวิชาต่าง ๆ โดยที่นักเรียนจะเรียนกับโปรแกรมบนคอมพิวเตอร์และครูเป็นผู้ชีแนะ ทดสอบ และวัดความเข้าใจ รวมทั้งสรุปเนื้อหาที่นักเรียนได้เรียนจากโปรแกรม CAI นี้ ปัจจุบันโปรแกรมประเภทนี้เริ่มนำเข้ามาใช้ในโรงเรียนแพร่หลายมากขึ้น เพราะทุกโรงเรียนมีคอมพิวเตอร์ใช้ ซึ่งเป็นการเปลี่ยนแปลงวิธีการสอนของครูวีหนึ่ง ที่ทำให้นักเรียนไม่รู้สึกเบื่อ และสนใจการเรียนมากขึ้นด้วย

     สำหรับโปรแกรมคอมพิวเตอร์ที่จะใช้สร้างโปรแกรม CAI นั้นได้แก่ โปรแกรม Authorware และโปรแกรม ToolBook เป็นต้น


การจัดการข้อมูล

      ข้อมูล (Data) เป็นองค์ประกอบที่สำคัญส่วนหนึ่งของระบบสารสนเทศคอมพิวเตอร์ การจัดการข้อมูล (Data Management) เป็นกลยุทธ์หนึ่งในการบริหารองค์การให้มีประสิทธิภาพ โดยเฉพาะอย่างยิ่งในยุคของเทคโนโลยีข่าวสาร คอมพิวเตอร์ที่เจริญก้าวหน้าไปอย่างรวดเร็ว การจัดการและบริหารองค์การให้ประสบความสำเร็จนั้น การตัดสินใจที่ถูกต้อง รวดเร็ว และทันต่อเหตุการณ์ถือเป็นหัวใจของการทำธุรกิจในยุคปัจจุบัน ดังนั้นการจัดการข้อมูลให้มีประสิทธิภาพ เพื่อนำไปสู่การตัดสินใจที่ถูกต้องจะช่วยให้องค์การอยู่รอดได้ในการแข่งขันกับองค์การอื่นๆ

การจัดการข้อมูล หมายถึง การจัดเก็บข้อมูล การเรียกใช้ข้อมูล รวมถึงการวิเคราะห์ข้อมูลเพื่อการใงานที่รวดเร็วจึงจัดเก็บในลักษณะของฐานข้อมูล

หน่วยของข้อมูล


หน่วยของข้อมูลคอมพิวเตอร์สามารถจัดเรียงเป็นลำดับชั้น  จากขนาดเล็กไปขนาดใหญ่ได้ดังนี้

–  บิต (bit)  เลขฐานสองหนึ่งหลักซึ่งมีค่าเป็น 0 หรือ 1

–  ตัวอักษร (character) กลุ่มข้อบิตสามารถแทนค่าตัวอักษรได้ ในชุดอักขระASCII 1 ไบต์ (8 บิต) แทน 1 ตัวอักษร

–  เขตข้อมูล (field) เขตข้อมูลซึ่งประกอบด้วยกลุ่มตัวอักษรที่แทนข้อเท็จจริง

–  ระเบียน (record) คือโครงสร้างข้อมูลที่แทนตัววัตถุชิ้นหนึ่ง เช่น ระเบียนนักเรียน

–  แฟ้ม  (file)  ตารางที่เป็นกลุ่มของระเบียนที่มีโครงสร้างเดียวกัน

–  ฐานข้อมูล (database) กลุ่มของตารางที่มีความสัมพันธ์กัน


หน่วยวัดความจุของหน่วยความจำทางคอมพิวเตอร์


8 bits =1Byte: B

1,024 Bytes =1Kilo Byte: KB         

1,024 KB =1Mega Byte: MB         

1,024 MB =1Giga Byte: GB         

1,024 GB =1Tera Byte: TB         


หมายเหตุ     Kilo = 210 = 1,024 


วัตถุประสงค์ในการจัดการข้อมูล


- การเก็บข้อมูลเพื่อให้สามารถนำกลับมาใช้ได้ในภายหลัง


- การจัดข้อมูลให้อยู่ในรูปแบบที่สามารถเรียกใช้ได้อย่างมีประสิทธิภาพ


- การปรับปรุงข้อมูลให้มีความถูกต้องสมบูรณ์อยู่เสมอ


- การปกป้องข้อมูล จากการทำลาย ลักลอบใช้ หรือแก้ไขโดยมิชอบ รวมทั้งปกป้องข้อมูลจากอุบัติเหตุที่อาจเกิดจากวินาศภัยหรือความบกพร่องภายในระบบคอมพิวเตอร์

โครงสร้างข้อมูล

    การใช้คอมพิวเตอร์จัดการระบบฐานข้อมูลนั้น ข้อมูลของเอนทิตีต่างๆ จะได้รับการนำไปเก็บไว้ในหน่วยความจำของคอมพิวเตอร์ ข้อมูลที่เก็บไว้อาจได้รับการเปลี่ยนแปลงเพิ่มเติมหรือตัดออกได้ การเก็บข้อมูลจะทำการเก็บข้อมูลไว้หลายๆ เอนทิตี และเมื่อมีการเรียกใช้อาจนำเอาข้อมูลจากหลายๆ เอนทิตีนั้นมาสัมพันธ์กันเพื่อให้ได้ผลลัพธ์ที่ต้องการ

    การจัดเก็บข้อมูลด้วยระบบคอมพิวเตอร์ที่ถือว่ามีประสิทธิภาพคือการใช้เนื้อที่ในการจัดเก็บข้อมูลน้อยที่สุดและจะต้องเรียกค้นข้อมูลได้ง่าย ดังนั้นจึงมีการแบ่งเอนทิตีออกเป็นส่วนย่อยๆ เพื่อใช้เรียกข้อมูลย่อยซึ่งเรียกว่า เขตข้อมูล (Field) เมื่อนำเขตข้อมูลทั้งหมดของแฟ้มมาวางเรียงกัน จะเกิดรูปแบบที่ทางคอมพิวเตอร์มองเห็นเรียกว่า ระเบียน (Record) ซึ่งสามารถใช้เป็นเครื่องบ่งบอกถึงโครงสร้างงาของแฟ้มนั้นได้รวมกันในระบบฐานข้อมูลจึงประกอบด้วยแฟ้มข้อมูลจำนวนหลายๆ แฟ้มที่มีความสัมพันธ์กัน

การจัดโครงสร้างแฟ้มข้อมูล

การจัดโครงสร้างแฟ้มข้อมูลแบบต่างๆ มีลักษณะเฉพาะตัวในการเข้าถึงข้อมูล ดังนี้

- แฟ้มลำดับ (Sequential file) เป็นการจัดโครงสร้างแฟ้มที่ง่ายที่สุด คือ ระเบียนถูกเก็บเรียงต่อเนื่องกันไปตามลำดับของเขตข้อมูลคีย์


- แฟ้มสุ่ม (Direct file) ใช้แก้ปัญหาความล่าช้าในการเข้าถึงข้อมูลของแฟ้มลำดับ โดยใช้ฟังก์ชันสุ่มในเขตข้อมูลคีย์เป็นข้อมูลนำเข้าและให้ผลลัพธ์เป็นตำแหน่งที่อยู่ของระเบียน


- แฟ้มดรรชนี (Indexed file) คล้ายกับดรรชนีคำศัพท์ที่อยู่ท้ายเล่มหนังสือ ที่ประกอบด้วยคำต่างๆ เรียงตามตัวอักษร โดยจะเก็บค่าของเขตข้อมูลคีย์ทั้งหมดพร้อมด้วยตำแหน่งของระเบียนที่มีค่าเขตข้อมูลคีย์นั้น


- แฟ้มลำดับดรรชนี (Indexed sequential file) เป็นการจัดโครงสร้างแฟ้มข้อมูลที่แตกต่างจากแฟ้มดรรชนี ซึ่งตัวระเบียนในแฟ้มข้อมูลไม่เรียงตามลำดับ แต่เรียงเฉพาะคีย์ในดรรชนี แฟ้มลำดับดรรชนี มีระเบียนที่เรียงลำดับตามเขตคีย์ข้อมูล และมีดรรชนีบางส่วน

การจัดการฐานข้อมูล

     ในการทำงานด้วยคอมพิวเตอร์ ถึงแม้จะมีเครื่องคอมพิวเตอร์ที่มีประสิทธิภาพดีแล้วยังต้องมีชุดคำสั่ง (Software) ที่จะควบคุมการทำงานของเครื่องอีกด้วย การทำงานโดยวิธีการจัดแฟ้มซึ่งเรียกวิธีนี้ว่า ระบบการจัดการกระทำแฟ้มข้อมูล (file handing system) อาจใช้โปรแกรมสำเร็จซึ่งทำหน้าที่ในการเก็บรวบรวมข้อมูลให้เป็นแฟ้มที่มีระเบียบง่ายต่อการใช้งาน และช่วยทำให้ผู้ใช้ประมวลผลข้อมูลต่างๆ ตามความต้องการได้อย่างรวดเร็ว โปรแกรมเหล่านี้จะใช้ระบบการจัดการฐานข้อมูล หรือที่เรียกว่า ดีบีเอ็มเอส (Data Base Management System : DBMS)

     ระบบฐานข้อมูลเป็นสิ่งที่จำเป็นและเกี่ยวข้องกับการใช้งานประจำวัน การตัดสินใจของผู้บริหารจะกระทำได้รวดเร็ว ถ้ามีข้อมูลที่ถูกต้องและเพียงพอ จึงมีการใช้คอมพิวเตอร์ช่วยประมวลผลเพื่อให้ได้สารสนเทศดังกล่าว แต่การประมวลผลด้วยคอมพิวเตอร์จำเป็นต้องมีหลักการและวิธีการที่ทำให้ระบบมีระเบียบแบบแผนที่ดี การแบ่งประเภทแฟ้ม

ลักษณะการจัดการฐานข้อมูลที่ดี

     เทคโนโลยีด้านคอมพิวเตอร์ได้เปลี่ยนแปลงไปตามกาลเวลา วิธีการฐานข้อมูลได้พัฒนาให้ก้าวหน้าขึ้นจากการออกแบบและเก็บข้อมูลในฐานข้อมูลที่เดียว การจัดการฐานข้อมูลจึงมีหลักการที่สำคัญ คือ

1.  ลดความซ้ำซ้อนของข้อมูล

2.  กำหนดมาตรฐานข้อมูล

3.  มีระบบป้องกันความปลอดภัยของข้อมูล

4.  มีความเป็นอิสระจากโปรแกรม

5.  รวมข้อมูลเป็นฐานข้อมูลกลาง

 

เทคโนโลยีมัลติมีเดียและสื่อจัดเก็บข้อมูล

เทคโนโลยีมัลติมีเดีย
ความหมายของมัลติมีเดีย
มัลติมีเดีย (Multimedia) หรือสื่อประสม เปนการนําสื่อหลายๆประเภทมาผสมผสานใชงานรวมกนซั ึ่ง
อาจประกอบไปดวยขอความ ภาพกราฟกเสียงพูด เสยงดนตร ี ีภาพวิดีโอหรือภาพเคลื่อนไหวการนําเสนอขอมูล
ในรูปแบบมัลติมีเดียจะชวยสรางความสนใจแกผูดูนาติดตาม ไมนาเบื่อ สามารถโตตอบการใชงานไดงายขึ้น
และมีความบนเท ั ิง ดังนั้น จึงไมใชเรื่องนาแปลกที่การนาเสนอข ํ อมูลตางๆในยุคปจจุบันลวนนําเสนออยในู
รูปแบบมัลติมีเดียแทบทงสั้ ิ้น
ตัวอยางเทคโนโลยีมัลติมีเดีย
• ความสามารถของโปรเซสเซอรที่สามารถประมวลผลขอมูลอยางรวดเร็วเพื่อรองรบการค ั ํานวณดาน
คอมพิวเตอรกราฟกที่มีความซับซอน
• หนวยความจําในคอมพิวเตอรมีความเรวส็ ูงขึ้น และเพิ่มขยายไดมากขึ้น
• การดแสดงผลที่ชวยใหการแสดงผลภาพไดอยางรวดเร็วและมีประสิทธิภาพในการแสดงผลสูงเชน
การดแสดงผลที่ผนวกคุณสมบัติการแสดงผลภาพสามมิติหรือภาพ 3D รวมถึงการบรรจุหนวยความจาและ ํ
โปรเซสเซอรลงบนการดแสดงผล
• จอภาพขนาดใหญและมประส ี ิทธิภาพสูงในการแสดงภาพ
• การดเสียงและลําโพงที่ทําใหระบบเสียงสมบูรณแบบ เทียบไดกับเครื่องเสียงราคาสูง
• อุปกรณจัดเก็บขอมูลตางๆมีขนาดความจุสูงขึ้นเพื่อรองรับขอมูลมลตั ิมีเดียเชนฮารดดิสกซีดีรอมดีวี
ดีรอม การดหนวยความจําเปนตน
• เทคโนโลยีระบบเครือขายที่มีอัตราการถายโอนขอมูลดวยความเร็วสูงเชน การแสดงขอมูลในลักษณะ
มัลติมีเดียผานเครือขายอินเตอรเน็ตหรือตามเว็บเพจตางๆ การถายทอดขาวผานอินเตอรเน็ต เปนตน
• โปรแกรมซอฟตแวรที่ใชเปนเครื่องมือจัดการเกี่ยวกับภาพและมัลติมีเดียตางๆเชน โปรแกรม
Photoshop, Toolbook, Authorware และ Flash เปนตน
• อุปกรณสื่อสารตางๆเชนโทรศัพทมือถือมีการพฒนาเทคโนโลย ั ีดวยการผนวกฟงกชันการทางานท ํ ี่มา
กกวาโทรศพทั มือถือทวๆั่ ไป ฯลฯ
แสดงใหเห็นไดวาเทคโนโลยีมัลติมีเดียกอใหเกิดนวัตกรรมใหมๆขึ้นมากมายอุปกรณบางอยางเปนไป
ไดหลายๆอยางเชน โทรศัพทมือถือในปจจุบัน ใชวาจะใชงานเพยงต ี ิดตอเพื่อพูดคุยกันเทานั้น แตไดผนวกฟงก
ชันที่รองรับเทคโนโลยีมัลติมีเดียไว
คุณภาพของภาพดิจิตอล(Digital Image Quality)
คุณภาพของภาพดิจิตอลสามารถพจารณาได ิ จากสิ่งตอไปนี้
1. ความละเอียด (Resolution)
ความละเอยดจะแสดงถ ี ึงความชัดของภาพภาพที่มีความละเอียดสูงจะมีจํานวนหรอพื ิกเซลที่เรียงชิดกัน
มากเพื่อใหภาพนั้นมีความละเอียด ราบเรียบยิ่งขึ้น ไมมีลักษณะแบบแตกกระจายและโดยทวไปค ั่ าที่ใชวัด-35-
รูป เปรียบเทยบความละเอ ี ียดของภาพ
2. ระดับความลึกของสี(Bit Depth)
ระดับความลกของส ึ ีคือจุดสีที่ใชแทนจํานวนสีที่สามารถแสดงไดในหนงพึ่ กเซล ิ เชน กรณีภาพขาวดํา
หากมีความลกของส ึ ีเพยงี 1 บิตนั่นหมายถึงในแตละบิตจะมีคาเพยงี 0 หรือ 1 เทานั้น (ขาวและดํา) ดังนนจะไม ั้ 
มีสีเทา สีเทาออน หรือสีเทาเขม แตถาหากคาระดับความลึกของสีมีขนาด 8 บิตหรือ 1 ไบตก็จะสามารถแสดง
สีสันไดมากขึ้น โดยสามารถแสดงความแตกตางของสีใหมีความแตกตางกนได ั ถึง 256 สี(2
8
)แตอยางไรก็ตาม
ระดับความลกของส ึ ีที่มีจํานวนบิตสูงมากๆเชน คาระดับความลึกของสีที่ 24 บิต ซึ่งสามารถกําหนดสีใหมีความ
แตกตางกนได ั มากถึง 16 ลานสีแตดวยสายตาของมนุษยโดยปกติก็คงไมสามารถแยกแยะสีเหลานั้นใหมีความ
แตกตางกนได ั มากมายขนาดนั้น
3. เทคนิคการบีบอัดไฟลภาพ(Compression Techniques)
ความคมชัดของภาพจะขึ้นอยูกับฟอรแมตของรูปภาพแตละชนิด โดยปจจุบันไดมีฟอรแมตหรือสกุล
ภาพตางๆหลายสกุลดวนกนให ั เลือกใชงาน ภาพแตละสกุลจะมีเทคนิคการบีบอัดไฟลใหมีขนาดเล็กลงดวย
เทคนิคที่แตกตางกนตามแต ั ละวัตถุประสงคซึ่งรวมถึงคาระดับความสึกของสี (Bit Depth) ที่แทนจํานวนสีที่
สามารถแสดงไดในหนงพึ่ กเซลด ิ วย โดยปกติเทคนิคการบีบอัดภาพจะมีอย 2 ู เทคนิคดวยกนคั ือ
• เทคนิคการบีบอัดขอมูลแบบไมสูญเสีย(Lossless Compression)
ทําใหภาพไมบิดเบือนหรือผิดเพี้ยนไปจากเดิม กลาวคือจะไมทําใหสูญเสียคุณภาพจากภาพตนฉบับ
• เทคนิคการบีบอัดขอมูลแบบสูญเสีย (Lossy compression)
ภาพที่ผานการบีบอัดแลวมีบางสวนที่ตองสูญเสียไปหรือบิดเบือนไปจากตนฉบับบางแตก็ยังคงคุณภาพที่พอรับ
ได (อัตราสวน 10 : 1 ถึง 40 : 1 ) ดวยเทคนิคนี้จะทาให ํ ภาพที่ไดมีขนาดไฟลที่เลกลงกว ็ าเดิมอยางเหนได ็ ชัดทําให
ไมตองสิ้นเปลองเน ื ื้อที่การจัดเก็บ-36-
รายละเอียดคณสมบ ุ ัติของฟอรแมตภาพสกุลตางๆ ที่นิยมใชมีดังตอไปนี้
• ฟอรแมตภาพ BMP (Bitmap)
เปนฟอรแมตมาตรฐานของระบบปฏิบัติการวินโดวสความละเอียดและความคมชัดของภาพคอน
ขางดีโดยสามารถเลือกใชระดับความลกได ึ ตั้งแต 1 ถึง 24 บิตสวนขอเสียของฟอรแมตภาพนี้คือไฟลมีความจุสูง
• ฟอรแมตภาพ JPG (Joint Photographic Experts Group: J-PEG)
เปนฟอรแมตภาพที่นิยมใชกันมากใชเทคนิคการบีบอดขั อมูลแบบสูญเสียโดยใชอัตราสวนตั้งแต
10:1 จนถึง 50: 1 ไฟลภาพ JPG มีคุณภาพดีมีระดับความลึกของสีสูงถึง 24 บิต และมีขนาดความจุต่ํา ดังนั้นจึง
มักนาไปใช ํ ในการบันทึกภาพถายตางๆโดยหากมีการใชเทคนิคการบบอี ัดไฟลไมเกิน 75% จากภาพตันฉบับ
หากมองดวยสายตาแลวจะไมมีความแตกตางกบฟอร ั แมตภาพของ TIF หรือ BMP เลยและขนาดความจุก็ยังต่ํา
กวาอีกดวย
• ฟอรแมต GIF (Graphics Interchange Format)
มักนําไปใชบนอินเตอรเน็ตเนื่องจากมีขนาดไฟลเล็ก อีกทงยั้ งมั ีคุณสมบัติในการกําหนดพื้นหลัง
ของภาพเปนแบบโปรงใส (Transparent Color) รวมทั้งภาพเคลื่อนไหวตางๆแตภาพฟอรแมต GIF นี้ไมควร
เปนภาพที่มีความละเอียดและสีสันมากๆเนื่องจากคุณสมบัติของฟอรแมตภาพ GIF นั้นจะมีคาความละเอียดต่ํา
และมีระดับความลกของส ึ ีเพียง 8 บิต (256 สี) เทานั้น
• ฟอรแมตภาพ PNG (Portable Network Graphics)
เปนฟอรแมตภาพทมาใหม ี่ โดยไดนําคุณสมบัติเดนของฟอรแมตภาพของ JPG และ GIF มารวม
เขาไวดวยกนั มีระดับความลึกของสีสูงถึง 24 บิต และสามารถกําหนดพื้นหลังเปนแบบโปรงใสเชนเดียวกับฟอร
แมตภาพของ GIF ไดแตอยางไรก็ตามฟอรแมตภาพดังกลาวก็เริ่มมีการนําไปใชบางแตก็ยังไมเปนที่นิยมเทาใดนัก
นอกจากนี้ยังมีเทคนิคการบบอี ัดขอมูลแบบ MPEG (Moving Picture Exports Group) ที่ใชกับคอมพิวเตอรดวย
การใชเทคนิคการบีบอัดขอมูลแบบสูญเสียโยมักใชกับไฟลประเภทมัลติมีเดียที่มีทั้งภาพและเสยงี โดย MPEG
จะทําการเลอกบ ื ีบขนาดภาพที่มีความซ้ําซอนกนโดยคงไว ั เพียงภาพที่มีการเปลี่ยนแปลงเทานั้น จึงทาให ํ 
สามารถบีบอดขั อมูลไดในอัตราสวนตั้งแต 50: 1 ถึง 200 : 1 ดวยเหตุนี้จึงทําใหสามารถบันทึกภาพยนตรหรือ
วิดีโอซีดีหนึ่งเรื่องลงในแผนซีดีไดโดย MPEG มีมาตรฐานตางๆ ดังตอไปนี้
• MPEG-1 (ISO 11172)
เปนเทคโนโลยีการบีบอัดขอมูลเสียงและวิดีโอ (Digital Audio/Video) ซึ่งเปนที่นิยมใชกันอยางแพรหลา
โดยเฉพาะ MP3 ซึ่งคําวา MO3 นั้นเปนคํายอโดยยอมาจากคําเต็มวา MPEG-1 Layer 3
• MPEG-2(ISO13818)
เปนเทคโนโลยีการบีบอัดขอมูลที่ใชกับการแพรภาพทีวีและดีวีดี(Digital TV and DVD)
• MPEG-4 (ISO 14496)
เปนเทคโนโลยีการบีบอัดขอมูลแบบออบเจ็กต(Objected-Based Coding)
4. การใชเทคนิคตกแตงภาพ(Image Enhancement Techniques)
ในบางครั้งเราอาจจาเปํ นตองพงพาเคร ึ่ ื่องมือหรือซอฟตแวรชวยในการตกแตงภาพตนฉบับใหคมชัดยิ่งขึ้น ซึ่ง
โปรแกรมตกแตงภาพที่นิยมใชคือโปรแกรม Photoshop -37-
5. อุปกรณอื่นๆ ที่ชวยใหมีประสิทธิภาพสงขู ึ้น (Equipment Used and its Performance)
นอกจากนี้แลวก็ยังมีอุปกรณหรือฮารดแวรตางๆ ที่จะชวยใหการนําเสนอภาพใหมีคุณภาพยิ่งขึ้น
เชนการดจอภาพ จอภาพ โดยการดจอภาพเปนอุปกรณที่สําคัญชิ้นหนงทึ่ ี่ทําใหสามารถกาหนดจ ํ ํานวนสีและ
ความละเอยดเท ี าใด ดังนนจะเห ั้ นได ็ วาหากผูที่นิยมใชคอมพิวเตอรมาใชงานดานการออกแบบหรือเลนเกมสนั้น
มักเลือกใชการดจอภาพที่มีประสิทธิภาพสูงกันทงสั้ ิ้น ซึ่งจะทําใหแสดงภาพไดสมจริงหรือเปนระบบสามมิติ
นอกจากนี้ชิปประมวลผลภายในการดและหนวยความจําบนการดจอก็จะชวยใหการประมวลผลภาพตางๆ มี
ความรวดเร็วขึ้น สวนจอภาพก็ควรใชจอภาพที่มีขนาดใหญในกรณีใชงานดานการออกแบบกราฟกและหากตอง
การภาพที่สวยงาม คมชัด จอภาพแบบแอลซีดีก็เปนทางเลือกหนึ่งที่นาสนใจ
สื่อจัดเก็บขอมูล
ความหมายของสื่อจัดเก็บขอมูล
สื่อจัดเก็บขอมูลเปนสื่อ (Media) ที่ใชสําหรับจัดเก็บขอมูล ชุดคําสั่งและสารสนเทศอื่นๆซึ่งถือเปน
หนวยความจาสํ ํารอง (Secondary Storage) กลาวคือ หนวยความจาหล ํ ักของคอมพิวเตอรนั้นจะเปนหนวย
ความจาแบบช ํ ั่วคราว (Volatile Memory) ขอมูลจะสูญหายหมดหากปราศจากกระแสไฟเลี้ยง ดังนั้น ขอมูล
สําคัญตางๆจึ่งจําเปนตองมการจ ี ัดเก็บไวบนหนวยความจําถาวร (Nonvolatile Momory) กอนทจะท ี่ ําการป
ดเครื่องเพื่อจะไดนําขอมูลที่เก็บลงในสื่อนั้น นําไปใชงานในวนขั างหนาไดโดยสื่อตางๆใชสําหรบจั ัดเก็บขอมูล
นั้นตองใชควบคูกับอุปกรณขับที่ใชกับสอสื่ ิ่งนั้น เชน ฟลอปปดิสกก็จะใชควบคูกับฟลอปปดิสกไดรฟ จึงสามารถ
ทําการอานหรอเขื ียนขอมูลบนดิสเกตตไดหรือแผนซีดีก็ตองใชคูกับเครื่องอานซีดีเปนตน และความจริงสื่อเก็บข
อมูล สามารถเรียกชื่อไดหลายชื่อดวยกัน ซงลวนแตมีความหมายเดียวกัน เชน Secondary Storage , Auxillary
Storage, Permanent Storage หรือ Mass Storage
ปจจุบันมีสื่อจดเกั ็บขอมูลหลายๆ ประเภทดวยกันใหเลือกใชงานตามความเหมาะสม การพิจารณา
วาจะใชสื่อใดเปนอุปกรณจักเก็บขอมูล สามารถพจารณาได ิ จากหลายปจจัยดวยกัน เชน ตนทุน ขนาดความจุและ
ความเร็วในการเขาถึงขอมูล อยางไรก็ตาม เทคโนโลยีของสื่อจัดเก็บขอมูลในปจจุบันไดพัฒนาขึ้นมากโดย
เฉพาะแผนซีดีหรือแผนดีวีดีที่ทําใหสามารถจุขอมูลไดสูงขึ้น ก็เพื่อรองรับขอมูลในยคปุ จจุบันที่มีหลายรูปแบบ
โดยเฉพาะขอมูลในรูปแบบของมัลติมีเดียที่ไดกลาวไปแลวขางตน ดังนั้นสื่อจัดเก็บขอมูลอยางดสเกตต ิ ในปจจุบัน
จึงเริ่มเสื่อมความนยมลง ิ เพราะจุขอมูลไดนอยนั่นเอง
ชนิดของสื่อจัดเก็บขอมูล
เทคโนโลยีของอุปกรณจัดเก็บขอมูล สามารถจัดแบงออกเปน 2 ชนิดดวยกัน คือสื่อจัดเก็บขอมูลที่ใชเทคโนโลยี
แบบแมเหล็ก (Magnetic Storage)และสื่อจัดเก็บขอมูลที่ใชเทคโนโลยีดวยแสง (Optical Storage) ซึ่งสื่อ
จัดเก็บขอมูลสวนใหญมักจะเปนลักษณะใดลักษณะหนงในส ึ่ องชนิดนี้แตก็มีสื่อจัดเก็บขอมูลบางชนิดที่ใช
เทคโนโลยีทั้งสองรวมกนคั ือเปนทงแบบแม ั้ เหล็กและแสงเชน Magneto-Optical Disk ซึ่งรายละเอียดสื่อ
จัดเก็บขอมูลชนิดตางๆ
• สื่อจัดเก็บขอมูลแบบแมเหล็ก (Magnetic Storage)
สื่อจัดเก็บขอมูลแบบแมเหล็ก คือสื่อจัดเก็บขอมูลที่ใชเทคโนโลยีแมเหล็ก (Magnetic) ซึ่งประกอบดวย-38-
 - ฟลอปปดิสก (Floppy Disks/Diskettes)
ฟลอปปดิสกหรือดิสกเกตตเปนดิสกแบบออนที่ทําจากแผนไมลารและเคลือบดวยสารแมเหล็กบางๆ ทั้ง
สองดาน มีขนาดตั้งแต 8 นิ้ว, 5.25 นิ้วและ 3.5 นิ้วตามลําดับ โดยดิสกเกตตที่ยังคงนิยมใชกันจนถึงปจจุบันนี้คือ
ขนาด 3. 5 นิ้วซึ่งดิสกเกตตขนาดดังกลาวจะมีอยสองความจ ู ุดวยกนคั ือขนาดความจุ 720 กิโลไบตและ 1.44 เม
กะไบตปจจุบันที่ยังคงนิยมใชอยูคือขนาดความจุที่ 1.44 เมกะไบตอยางไรก็ตามดิสกเกตตขนาด 3.5 นิ้วนี้ก็ยังมี
ขนาดความจุ 2.88 เมกะไบตแตไมไดรับความนิยมเทาที่ควรซึ่งหากมีความจาเปํ นตองการใชงานดิสกที่มีความ
จุสูงกวา 1.44 เมกะไบตสวนใหญมักนยมใช ิ ดิสกชนิดความจุสูงอยาง Zip Disk หรือ Jaz Disk มากกวา
รูป ฟลอปปดิสกขนาด 5.25 นิ้ว
รูป ฟลอปปดิสกขนาด 3.5 นิ้ว
การฟอรแมตแผนดิสกสรางเซกเตอร (Sector) และแบงสวนของแตละแทร็กใชเปนชองจัดเก็บขอมูล
โดยแตละเซกเตอรก็สามารถจัดเก็บขอมูลไดมากถึง 512 ไบตอีกทั้งการใชงานฟลอปปดิสกนี้จําเปนตองมี
อุปกรณขับเคลื่อนแผนดิสกที่ใชสําหรับอาน/บันทกขึ อมลลงบนแผ ู นดิสกที่เรียกกวาเครื่องขับดิสกหรือฟลอปป
ดิสกไดรฟ (Floppy Disk Drive) -39-
รูป แตละแทร็กบนแผนฟลอปปดิสกจะถูกแบงดวยเซ็กเตอรเพอใช ื่ จัดเก็บขอมูล
รูป ฟลอปปดิสกไดรฟ (Floppy Disk Drive)
- ดิสกความจุสูง(High-Capacity Floppy Disks)
นอกจากดิสเกตตธรรมดาที่นิยมใชกันซงมึ่ ีความจเพุ ียง 1.44 เมกะไบตแลว สื่อบันทกขึ อมูลที่มีลักษณะ
เชนเดียวกับ ดิสเกตตที่สามารถจัดเก็บขอมลได ู สูงที่นิยมใชกัน เชน Super Disk, Zip Disk และ Jaz Disk โดย
Super Disk มีความจุขนาด 120 เมกะไบตสวน Zip Disk มีความจุขอมูลที่ 100 เมกะไบตและ 250 เมกะไบต
ในขณะที่ Jaz Disk นั้นสามารถจัดเก็บขอมูลไดถึง 1 กิกะไบตและ 2 กิกะไบต
- ฮารดดิสก (hard Disks)
ฮารดดิสกเปนสื่อจัดเก็บขอมูลที่นิยมใชกันมากเนื่องจากมีความจุสูงและปจจับันมความจ ี ุสูงมากกวา 50 กิ
กะไบตอีกทงยั้ ังมีราคาที่ไมแพงและจัดเปนสื่อจัดเก็บขอมูลหลักที่จําเปนตองมีในเครื่องคอมพิวเตอรเพื่อ
จัดเก็บขอมูลสําคัญตางๆเชน โปรแกรมระบบปฏิบัติการแอพพลิเคชนโปรแกรมรวมถ ั ึงขอมูลหรือสารสนเทศ
ตางๆ
รูป ฮารดดิสก-40-
ลักษณะการทํางานของฮารดดิสกจะคลายคลึงกับฟลอปปดิสกแตภายในตัวฮารดดิสกไดรวมหวอั าน/บันทึก
และจานแมเหล็กอยูภายในตัวเดียวกัน ดั้งนนเราจ ั้ ึงสามารถเรียกชื่อฮารดดิสกไดทั้งฮารดดิสกหรือฮารดไดรฟ
(Hard Drive) โดยโครงสรางภายในฮารดดิสกจะประกอบดวยแพลตเตอร (Platters) ซึ่งคลายกับแผนดิสกแตจะ
ทําดวยแผนอลูมิเนียมแข็งทเคล ี่ ือบดวยออกไซดของเหล็กและจะมีอยูหลายแพลตเตอรดวยกัน แตละแพลต
เตอรจะเรียงอยูบนแกนเดียวกันที่เรียกวา spindle ทําใหแพลตเตอรแตละแผนสามารถหมนไปได ุ พรอมๆกัน
ดวยมอเตอรขับเคลื่อนที่มีความเรวระหว ็ าง 3600-7200 RPM (Round Per Minute: RPM(รอบตอนาที)) แตละ
หนาของแผนจานจะมีหัวอานเขียนประจาเฉพาะ ํ โดยหวอั านเขียนทุกหัวจะเชื่อมติดกันคลายหวีสามารถเคลื่อน
เขาออกระหวางแทร็กตางๆอยางรวดเร็ว ฮารดดิสคจะบรรจุอยูในกลองโลหะปดสนิท เพื่อปองกนสั ิ่งสกปรก
หลุดเขาไปภายใน ซึ่งถาตองการเปดออกจะตองเปดในหองเรียก clean room ที่มีการกรองฝนละออกจาก ุ
อากาศเขาไปในหองออกแลว
รูป โครงสรางภายในฮารดดิสกและไซลินเดอร
รูป แสดงแผนจาน แกนหมุน Spindle หัวอานเขียน และกานหวอั านเขียน
แตละหนาของแพลตเตอรที่วางเรียงซอนกนนั ั้น จะมีหัวอานบนทั กทึ ี่สามารถเคลื่อนทเขี่ าออกไปยังแทรกตางๆ
ที่ตองการและเนื่องจากฮารดดิสกมีจํานวนจานดิสกหรือแพลตเตอรหลายแผนเรียงซอนกันดังนั้นการอางองติ ํา
แหนงจึงอางองติ ําแหนงแทร็กเดียวกนในแต ั ละแพลตเตอรที่เรียกวาไซลินเดอร(Cylinder) -41-
สําหรับหัวอาน/บันทึก (Read/Write Heads) ที่อยภายในฮาร ู ดดิสกนั้น จะมีจํานวนมากกวาหนึ่งหัวอาน/บันทึก
ซึ่งโดยปกติฮารดดิสกสวนใหญมักจะมีอย 6 ู แพลตเตอรดั้งนนจะม ั้ ีจํานวนหนาทงสั้ ิน 12 หนาดวยกันแตหัวอาน/
บันทกทึ ี่มีอยภายในจะม ู ีอยเพู ียง 11 หัวอาน/บันทกเท ึ านั้น เนื่องจากแผนสุดทายดานลางสุดจะไมไดถูกใชงาน
ชนิดของฮารดดิสก
ชนิดของฮารดดิสกโดยปกตจะม ิ ีอย 2 ู ชนดดิ วยกัน คือ
- ฮารดดิสกแบบ EIDE (Enhances Integrates Drive Electronics)
คอนโทรลเลอร EIDE สามารถเชื่อมตออุปกรณได 4 ชิ้น โดยที่ฮารดดิสกแตละตัวที่เชอมต ื่ อบนคอน
โทรลเลอรชนดนิ ี้จะมีความจุไดสูงสุด 137 กิกะไบตตอหนงตึ่ ัวการโอนถายขอมูลจะมีอัตราที่ 66 เมกะไบตต
อวินาทีแตดวยเทคโนโลยฮาร ี ดดิสกแบบ EIDE นี้ไดพัฒนาความเร็วอยางตอเนื่องเชน Ultra DMA,
ATA/66,ATA/100,ATA/133 (หมายเลขตอทายคือ Throughput สูงสุดที่มีหนวยเปนเมกะไบตตอวนาท ิ ีเชน
ATA/133 จะมี Throughput สูงสุดที่ 133 เมกะไบต/วินาที) ฮารดดิสกแบบ EIDE เปนฮารดดิสกที่มีกลมผุ ูใชงาน
มากที่สุด และมักนามาใช ํ งานกับเครื่องพีซีทั่วไป เนื่องจากมีราคาถูกและมีความจุสูง
รูป ฮารดดิสกแบบ EIDE
- ฮารดดิสกแบบ SCSI (Small Computer System Interface)
คอนโทรลเลอร SCSI สามารถเชื่อมตออุปกรณได 7 อุปกรณดวยกันโดยการเชื่อมตอจะเปนในลักษณะของลูกโซ(Daisy Chain) ฮาร
ดดิสก SCSI นี้ถูกออกแบบมาเพื่อใชงานบนเครื่องเซิรฟเวอรที่คอยบริการขอมูลใหกับผูใชงานหลายๆ คนบนเครือขาย ซึ่งเนนที่ความทนทานตอการ
ใชงานหนักและมีความรวดเร็วสูงโดยมีความเร็วในการถายโอนขอมูลไดสูงถึง 160 เมกะไบตตอนาทีหรือมากกวาอีกทั้งยังมีความจุสูงแตมีราคาที่สู
งกวาแบบ EIDE -42-
รูป ฮารดดิสกแบบ SCSI
การพจารณาความเร ิ วของฮาร ็ ดดิสก
สามารถพิจารณาไดจาก
 - เวลาคนหา(Seek Times) คือเวลาที่แขนของหัวอาน/บันทึกเคลื่อนที่ไปยังแทร็กหรือไซลินเดอรที่
ตองการโดยมหนี วยวัดความเร็วเปนมิลลิวินาที(Millisecond)
 - เวลาแฝง (Rotation Delay or Latency Time) คือเวลาที่ตําแหนงขอมูลที่ตองการในแตละแทร็กห
มุนมายงตั ําแหนงของหัวอาน/บันทึกเพื่อที่จะทําการถายโอนขอมูลไปยังหนวยความจําหลักโดยมีหนวยวัด
ความเร็วเปนมิลลิวินาที
 - เวลาเขาถึง (Access Time) คือเวลารวมของเวลาคนหาและเวลาแฝง(Seek Time + Latency Time)
 - เวลาถายโอนขอมูล ( Transfer Time) คือเวลาการถายโอนขอมูลระหวางตาแหน ํ งขอมูลบนแทร็ก
นั้นๆไปยังหนวยความจําหลักซึ่งมหนี วยเปนบิตตอวินาทีความเร็วในการถายโอนขอมูลนี้จะขนอย ึ้ ูกับความเร็ว
รอบการหมนของแพลตเตอร ุ ซึ่งมีหนวยเปน RPM รวมถงความหนาแน ึ นของขอมูลในแตละแทร็ก(Track Per
Inch : TPI ) ดวย
 • เทปแมเหล็ก (Magnetic Tape)
เทปแมเหล็กเปนสื่อจัดเก็บขอมูลที่มีความนิยมใชมานาน แตในปจจุบันความนยมของเทปแม ิ เหล็กได
ลดนอยลงไปมากเนื่องจากการเขาถงขึ อมูลเปนไปในลกษณะแบบเร ั ยงล ี ําดับ (Sequential) ซึ่งชากวาแบบ
เขาถึงโดยตรง (Direct Access) อยางแมกเนติกดิสกแตอยางไรก็ตาม เทปแมเหล็กก็ยังคงนิยมใชสําหรับ
จัดเก็บขอมูลสํารองตางๆเนื่องจากเทปแมเหล็กมีความจุสูงและเคลอนย ื่ ายไดงายเมื่อเทียบปรมาณความจ ิ ุกับ
ราคาถือวามีราคาถูกและคมคุ า ปจจุบันเทปแมเหล็กมหลายชน ี ิดดวยกัน เชน เทปแมเหล็กแบบมวนซงมึ่ กใช ั กับ
เครื่องระดับใหญเชน มินิคอมพิวเตอรและเมนเฟรมคอมพิวเตอรนอกจากนี้ก็ยังมเทปแบบตล ี ับคาสเซ็ต
คารทริดจที่มักใชงานบนไมโครคอมพิวเตอรรวมทงเทปชน ั้ ิด DAT เปนตน สวนความเร็วของเครื่องอานเทปจะ
ขึ้นอยูกับอัตราความเร็วในการหมนของม ุ วนเทปซึ่งมกมั ีหนวยวัดเปนนวติ้ อวินาที (Inch Per Second) และอัตรา
ความเร็วในการถายโอนขอมูลซึ่งมหนี วยวัดเปนไบตตอวินาท (Byte Per Second) ี
รูป เทปแมเหล็กชนิดมวนและตลับ
• สื่อจัดเก็บขอมูลชนิดแสง (Optical Storage) -43-
แนวโนมการจัดเก็บขอมูลดวยสื่อจัดเก็บขอมูลที่ใชเทคโนโลยีออปติคัลมีความนิยมสูงขึ้นเปนลําดับ เนื่องจากมี
ความจุสูง ทนทาน และมีราคาถูกและโปรแกรมตางๆในปจจุบันสวนใหญผูผลิตมักนําโปรแกรมมาบันทึกลง
ในแผนซีดีแทบทั้งสิ้น
- ซีดีรอม (Compact Disc Read-Only Memory: CD-ROM)
ภายในซีดีรอมจะแบงเปนแทร็กและเซ็กเตอรเหมือนกับแผนดิสกแตเซ็กเตอรในซีดีรอมจะมีขนาดเทากัน ทุกเซ็ก
เตอรทําใหสามารถเก็บขอมูลไดมากขึ้น เมื่อไดรฟซีดีรอมเริ่มทางานมอเตอร ํ จะเริ่มหมุนดวยความเร็ว หลายคา
ทั้งนี้เพื่อใหอัตราเร็วในการอานขอมูลจากซีดีรอมคงที่สม่ําเสมอทุกเซกเตอร ็ ไมวาจะเปนเซกเตอร ็ ที่อยรอบนอกก ู
หรือวงในก็ตาม จากนนแสงเลเซอร ั้ จะฉายลงซีดีรอม โดยลําแสงจะถูกโฟกัสดวยเลนสที่เคลื่อนตําแหนงไดโดย
การทางานของขดลวด ํ ลําแสงเลเซอรจะทะลุผานไปที่ซีดีรอมแลวถูกสะทอนกลับ ที่ผิวหนาของซีดีรอมจะเปน
หลุมเปนบอ สวนที่เปนหลุมลงไปเรียก "แลนด" สําหรับบริเวณที่ไมมีการเจาะลึกลงไปเรียก "พิต" ผิวสองรูปแบบนี้
เราใชแทนการเก็บขอมูลในรปแบบของ ู 1 และ 0 แสงเมื่อถูกพิตจะกระจายไปไมสะทอนกลับ แตเมื่อแสงถูกเลนส
จะสะทอนกลบผั านแทงปริซึม จากนนหั้ ักเหผานแทงปริซึมไปยังตัวตรวจจับแสงอีกทีทุกๆชวงของลําแสงที่
กระทบตัวตรวจจับแสงจะกําเนิดแรงดันไฟฟา หรือเกิด 1 และ 0 ที่ทําใหคอมพิวเตอรสามารถเขาใจไดสวนการ
บันทกขึ อมูลลงแผนซีดีรอมนั้นตองใชแสงเลเซอรเชนกัน โดยมีลําแสงเลเซอรจากหัวบันทกของเคร ึ องบ ื่ ันทึก
ขอมูลสองไปกระทบพนผื้ ิวหนาของแผน ถาสองไปกระทบบริเวณใดจะทําใหบริเวณนั้นเปนหลุมขนาดเล็ก
บริเวณทีไมถูกบันทกจะม ึ ีลักษณะเปนพื้นเรียบสลับกันไปเรื่อยๆตลอดทั้งแผน
รูป เปรียบเทยบโครงสร ี างภายในระหวางดิสเกตตและซีดีรอม-44-
แผนซีดีรอมเปนสื่อในการเกบข็ อมูลแบบออปติคอล (Optical Storage) ใชลําแสงเลเซอรในการอานข
อมูล แผนซีดีรอมทํามาจากแผนพลาสตกเคล ิ ือบดวยอลูมิเนียม เพื่อสะทอนแสงเลเซอรที่ยิงมาเมอแสงเลเซอร ื่ ที่
ยิงมาสะทอนกลับไปที่ตัวอานขอมูลที่เรียกวา Photo Detector ก็อานขอมูลที่ไดรับกลับมาวาเปนอะไรและสงคา
0 และ1 ไปใหกลับซีพียูเพื่อนําไปประมวลผลตอไป
แผนซีดีรอม หนึ่งแผนสามารถจุขอมูลไดประมาณ 600-700 เมกะไบต ขอมูลที่บันทกลงในแผ ึ นซีดีรอม
สามารถเรยกใช ี งานหรืออานไดเพียงอยางเดียว (Read Only)ไมสามารถแกไขขอมูลใดๆได
ความเร็วของไดรฟซีดีรอมมีหลายความเร็วเชน 2x 4x หรือ 16x เปนตนซึ่งคา 2x หมายถงไดรฟ ึ ซีดีรอม
มีความเร็วในการหมุน 2 เทาไดรฟตัวแรกที่เกิดขึ้นมามความเร ี ็ว 1x จะมีอัตราในการโอนถายขอมูล (Data
Tranfer Rate) 150 KB ตอวนาท ิ ีดั้งนนถั้ าไดรฟซีดีรอม ที่มีความเร็ว 50x ก็จะมีอัตราความเร็วในการโอนถายข
อมูลที่ 7500 KBps
- ดีวีดีรอม(Digital Versatile Disc Read-Only Memory:DVD-ROM)
แผนดีวีดีรอมเปนสื่อจัดเก็บขอมูลชนิดหนงทึ่ ี่นิยมนํามาบันทกภาพยนตร ึ เนื่องจากมีความจุสูงมากเมื่อ
เทียบกบแผ ั นซีดีรอม โดยแผนดีวีดีนั้นสามารถบนทั ึกขอมูลไดทั้งสองดาน แตละดานสามารถจุขอมูลไดถึง 4.7
กิกะไบตดังนนความความจ ั้ ุทั้งสองดานกสามารถจ ็ ุขอมูลไดมากถึง 9.4 กิกะไบตและถาหากเปนดีวีดีรอมชนิด
ดูอัลเลเยอร (Dual-Layer) ก็จะสามารถจดเกั ็บขอมูลไดมากถึง 17 กิกะไบตเลยทีเดยวี
แผนดีวีดีรอมนี้ไดถูกออกแบบมาเพื่อใชสําหรับเก็บขอมูลภาพยนตรซึ่งโดยทวไปแล ั่ วมีความยาว
ประมาณ 2 ชั่วโมงการบันทึกขอมูลลงในแผนดีวีดีจะใชเทคโนโลยีการบีบอัดขอมูลที่เรียกวา MPEG-2 สาเหตุที่
แผนดีวีดีรอมสามารถจัดเกบข็ อมูลไดในปริมาณมากทงๆท ั้ ี่มีขนาดเทากับแผนซีดีรอม ก็เนื่องมาจากชองวาง
ระหวางแทรกของแผ ็ นดีวีดีรอมนั้นจะมีขนาดที่เล็กกวาแผนซีดีรอม และรวมถงมึ ีขนาดของรองขอมูลที่เล็กกวาด
วย การลดขนาดของรองเกบข็ อมูลนี้ทําใหความหนาแนนของขอมูลใ นแทรกต็ อความยาวหนงนึ่ วของแผ ิ้ นดีวีดี
รอมจึงมีมากกวาแผนซีดีรอมถึงสองเทาสาหร ํ ับในดานของความเร็วในการถายโอนขอมูลนั้นเครื่องอานดีวีดีรอม
จะมีความเร็วในการถายโอนขอมูลที่สูงกวาเครื่องอานซีดีรอม เพราะความเร็วที่สูงจะทําใหการแสดงผล
ภาพยนตรที่เคลื่อนไหวนั้นแลดูเปนธรรมชาติโดยอัตราความเร็วท 1x (Single Speed) ี่ ของเครื่องอานดีวีดีรอม
จะมีความเร็วในการถายโอนขอมูลที่ประมาณ 1350 KBps ในขณะทเคร ี่ ื่องอานซีดีรอมจะมีความเร็วในการถาย
โอนขอมูลที่ประมาณ 150 KBps เทานั้น และในสวนของระบบเสียงที่บันทกลงในแผ ึ นดีวีดีก็จะมระบบการ ี
บันทกเส ึ ียงที่มีคุณภาพดีกวาแผนซีดีรอม จากขอดีหลายๆอยางของแผนดีวีดีจึงทาให ํ มีราคาสูงกวาแผนซีดี-45-
- ซีดีอาร(Compact Disk Recordable : CD-R) และซีดีอารดับบลิว (Compact Disk Rewritable :
CD-RW)
กระแสการใชงานแผนซีดีรอมที่จําเปนตองมีเครื่องปมแผนซีดีซึ่งมีราคาสูงและมักใชงานทางดานธุรกิจ
หรืออุตสาหกรรมเปนสําคัญลําพงผั ใชู งานทั่วๆไปคงไมสามารถซื้อมาเพื่อใชงานไดดังนนเทคโนโลย ั้ ีซีดีอารจึง
ไดถูกพัฒนาขนเพึ้ ื่อใหผูใชอยางเราๆ สามารถทาการบ ํ นทั ึกขอมูลหรือออดิโอไฟลตางๆ ลงบนแผนซีดีไดดวย
ตนเอง
ซีดีอาร (CD-R) คือแผนบันทึกซีดีที่ผูใชสามารถทําการบันทกขึ อมูลลงในแผนไดหลายครั้งจนเต็มแผ
นและสามารถอานไดหลายครั้งแตการบนทั กขึ อมูลจะไมสามารถทําการบันทึกทับหรือลบขอมูลเดิมที่บันทึกไป
แลวไดสวนคณสมบ ุ ัติในการบันทึกไดหลายครั้งเรียกวามัลติเซสชัน (Multisession)ซึ่งเปนการแบงการบนทั กขึ 
อมูลทีละสวนที่เรียกวาเซสซนแต ั ละเซสชันก็จะประกอบดวยหลายๆแทร็กเมื่อเซลชนหน ั ึ่งไดทําการบันทึกขอมูล
ไปเสร็จเรียบรอยแลวโดยพนทื้ ี่บนซีดียังพอมีพื้นที่เหลือพอในการบันทึกขอมูลตอไปไดอีกการบนทั กขึ อมูลใน
คราวตอไปก็จะทําไดดวยการเปดเซสซันตอจากเดิม ซึ่งจะเปนเซลซันที่ตอจากเทร็อกที่ผานการบันทึกมากอน
หนานนเอง ั่
ซีดีอารจะแตกตางกับซีดีรอมตรงดานบนทั ึกขอมูล โดยดานบนทั กขึ อมูลของแผนซดีีอารนั้นจะมีสีฟาอม
เขียวซึ่งเปนสารพิเศษที่ไวตอความรอน โดยตัวหวบั ันทกขึ อมูลเลเซอรในเครื่องบันทึกซีดีนั้นจะทาการเบ ํ ิรนพนผื้ ิว
ดังกลาวในการบันทึกขอมูล
เครื่องอาน/บันทกแผ ึ นซีดีกําลังจะกลายเปนมาตรฐานที่เครื่องคอมพวเตอร ิ พีซีจําเปนตองมีเพราะปจจุ
บันเครื่องดังกลาวมีราคาถูก มีความสะดวกในการบันทกขึ อมูลชนิดมลตั ิมีเดียหรือไฟลขอมูลที่มีขนาดความจุ
มากๆซึ่งแผนซีดีจะมีความทนทานกวาแผนดิสเกตตและเก็บไดระยะยาวนานกวาสําหรับสเปกหรือรายละเอียด
ตัวเลขความเรวท็ ี่ระบุไวบนเครื่องชนิดนี้เชน 40x,12x,48x หมายถึง ความเร็วในการเขียนแผนซีดีอาร
(CD-Recordable) 40 เทา
ความเร็วในการเขียนแผนซีดีอารดับบลิว(CD-Rewritable) 12 เทา
ความเร็วในการอานแผนซีดีทั่วไป 48 เทา
• สื่อจัดเก็บขอมูลชนิดอื่นๆ
นอกจากนี้ยังมีสื่อจัดเก็บขอมูลลชนิดอื่นๆเชน โฟโตซีดี (Photo CD) ซึ่งเปนเทคโนโลยีของบริษัทโกดักที่-46-
ชนิดของหนวยความจําแบบแฟลชจะมีอยูหลายรูปแบบดวยกัน เชนหนวยความจาแบบแฟลชท ํ อยี่ ูในรูปแบบ
ของการดหนวยความจํา (Memory Card) เชน Memory Stick, Compact Flash,Smart Media, SD และ
Multimedia Card สวนขนาดความจุก็มีหลายขนาดใหเลือกใชงาน เชนความจุขนาด 16, 32, 64, 128 หรือ 256
เมกะไบตจนถึงหนวยกกะไบต ิ นอกจากนี้ยังมหนี วยความจาแบบแฟลชท ํ ี่มีอินเตอรเฟส ในรูปแบบยูเอสบี(USB)
ที่สามารถเสียบเขาโดยตรงกับพอรตยูเอสบีในคอมพวเตอร ิ เพื่อใชบันทึก/อาน ขอมูล ซึ่งก็มีชื่อเรียกที่แตกตางกัน
ตามผผลู ิต เชนthumb Drive, Flash Drive หรือ Handy Drive เปนตน
รูป การดหนวยความจําชนิดตางๆ
รูป Flash Drive
• RAID
RAID คืออะไร
RAID ยอมาจากคําวา Redundant Array of (Independent) Inexpensive Disks เปนวิธีการเกบข็ อมูล
ใหกระจายไปในดิสกหลายๆ ตัวเพื่อชวยใหการเพิ่มประสิทธิภาพในการอานและเขยนข ี อมูล หรือเพื่อชวยเพิ่ม
ความนาเชื่อถอในการเก ื บข็ อมูลหรือทงสองอย ั้ างจุดประสงคเบื้องตนของ RAID ในสมัยแรกเริ่มคือการรวบรวม
เอาดิสกขนาดเล็กและราคาไมแพงมาตอเขาดวยกนเพั ื่อใหมีขนาดและความสามารถทดแทนเหมือนดิสกขนาด-47-
รูปแบบของ RAID
- RAID-0
หรือการทํา striping คือขอมูลจะถูกแบงออกเปนหลายๆ สวนเทาๆกัน แตละสวนเรียกวา chunk
กระจายไปยังดิสกหลายๆ ตัวการอานและเขียนขอมูลจะเร็วขึ้นเพราะมีดิสกหลายๆ ตัวชวยกันใหบริการขอมูล
ไดพรอมๆกัน ไมตองรอจากดิสกตัวเดียวอยางไรก็ตาม RAID-0 ไมมีการทําสารองข ํ อมูลในตัวเองเพื่อเพิ่ม
ความนาเชื่อถอของระบบ ื
ประสิทธิภาพในการอานเขียนขอมูลของ RAID-0 จะสูงมากเพราะมการกระจายการท ี ํางานไปยังดสกิ 
หลายๆ ตัวแตไมมีการสํารองขอมูลเลย ดังนนเม ั้ ื่อมีดิสกตัวหนึ่งเสียก็จะทาให ํ ขอมูลเสียหายทั้งหมด RAID-0
จึงใชในงานที่ตองการความเร็วสูงมากแตไมตองการความนาเชื่อถือของระบบ
- RAID-1
ถูกเรียกโดยทวไปอ ั่ ีกชื่อหนึ่งวา Disk Mirroring คือการทําสําเนาขอมูลบนดิสกสองชุดหรือมากกวาเพื่อช
วยในการสํารองขอมูลและเพิ่มความนาเชอถื่ ือของระบบ ในการอานขอมูล RAID-1 จะทําการอานขอมูล
จากดิสกชุดใดก็ไดมาใหเพราะขอมูลจะเหมือนกัน แตเมื่อมีการเขียนขอมูลลงในดสกิ  RAID-1 จะตองคอย
ตรวจสอบวาขอมูลถูกเขียนอยางถูกตองลงบนดิสกทั้งสองชุด-48-
ประสิทธิภาพในการอานขอมูลของ RAID-1 จะสูงเปนสองเทาของปกติเพราะสามารถอานไดจากดิสก
ชุดใดก็ไดพรอมกัน การสํารองขอมูลจะสมบูรณที่สุดเพราะเก็บขอมูลไวถึงสองชุด ถาดิสกชุดใดเสียก็สามารถใช
ขอมูลจากอีกชุดไดเลยทันทีจึงมีความนาเชื่อถือสูงแตประสิทธิภาพในการเขียนจะลดลงกวาปกติเล็กนอยอยาง
ไรก็ตาม RAID-1 จะสิ้นเปลืองดิสกในการเก็บขอมูลมากเพราะตองเกบข็ อมูลเหมือนกนสองช ั ุด จึงตองใชดิสก
เก็บขอมูลเปนสองเทาแตจะเหมาะกับงานที่ขอมูลสําคัญมากๆเชนงานทางดานการบัญชี
- RAID-2
ขอมูลจะถูก stripe ไปยังดิสกหลายๆ ตัวในระดับ bit และจะใช Hamming Code ECC เปนเทคนิค
สําหรับใชทํา error correction โดยจะตองใชดิสกหนงตึ่ ัวหรือมากกวาเปนที่สําหรับเก็บ Hamming Code ECC
นี้สําหรับการทํางานของ RAID-2 เมื่อมีการเขียนขอมูลลงในดิสก RAID-2 จะคํานวณ ECC ของขอมูลที่อยในู
stripe เดียวกนและเก ั ็บลงใน ECC ดิสกในกรณีที่มีดิสกที่เก็บขอมูลเกดความเส ิ ียหาย RAID ก็จะทําการ
recover ขอมูลไดดวยการ rebuild ขอมูลในดิสกตัวที่เสยไปข ี ึ้นมาใหมจาก ECC
เดิมที RAID-2 ถูกออกแบบมาใชสําหรับดิสกที่ไมมี hardware สําหรบทั ํา error detection แตปจจุ
บันดิสกทุกตัวจะมี hardware นี้อยในต ู ัวแลวจึงทาให ํ  RAID-2 ไมไดรับความนิยมอกตี อไป
 - RAID-3 -49-
คลายกับ RAID-2 แตขอมูลจะถูก stripe ในระดับ byte และใชฟงกชั่น XOR สําหรับคํานวณหาคา
parity เพื่อทํา error correction สําหรับ RAID-3 นี้จะเสยดี ิสกตัวหนึ่งไวสําหรับเก็บคา parity โดยในระหวางการ
เขียนขอมูล RAID-3 จะใชขอมูลที่อยในู stripe เดียวกนมา ั XOR กันเพื่อหาคา parity แลวเก็บลงใน parity ดิสก
เชน P1 = a XOR b XOR c XOR d ในกรณีที่ดิสกตัวหนึ่งมีความเสียหาย RAID ก็จะทําการ recover ขอมูล
ไดดวยการสรางขอมูลในดิสกตัวที่เสยไปข ี ึ้นมาใหมจากดิสก parity สมมติวาดิสกตัวท 3 ี่ เสียทําใหอานขอมูล c
ไมได RAID สามารถ rebuild ขอมูลที่อยในด ู ิสกตัวที่ 3 โดยอาศัย parity ดังนี้ c = P1 XOR a XOR b XOR d
การเขียนขอมูลของ RAID-3 จะชาลงเพราะตองมีการคํานวณ parity ใหมทําใหตองมีการอาน parity
และขอมูลเดิมขึ้นมาเพื่อใชคํานวณหา parity ใหมแลวจึงสามารถเขียนขอมูลใหมลงไปไดเชนถา c ถูกเปลี่ยน
เปน x จะคํานวณหา parity ใหม (Px) ก็จะตองอาน c และ P1 ขึ้นมาคานวณ ํ Px = P1 XOR c XOR x
RAID-3 จะเปลืองดิสกไปตัวหนงสึ่ ําหรับเก็บ parity และดวยเหตุที่มีดิสกที่ใชเก็บ parity เพียงแคตัว
เดียว ดิสกตัวนี้อาจจะทางานหน ํ ักจนถวงการทางานของระบบได ํ  RAID-3 จึงเหมาะสําหรับงานประเภท
single-user ที่ขอมูลมีความตอเนื่องและมีขนาดใหญแต RAID-3 ไมเหมาะกับงาน multi-user ที่มีการเขาถึง
ขอมูลแบบ random เนื่องจาก RAID-3 ทํา stripe ในระดับ byte ทําใหการอานหรือเขียนขอมูลทุกครั้งแมจะเล็ก
เพียงแค block เดียวก็จะตองใชงานดิสกทุกตัวเสมอ
- RAID-4
จะเหมือน RAID-3 แตขอมูลจะถูก stripe ในระดับ block และจะกันดิสกตัวหนึ่งไวเก็บ parity ในกรณี
ที่ดิสกตัวหนงมึ่ ีความเสยหาย ี RAID ก็จะทําการ recover ขอมูลไดดวยการสรางขอมูลในดิสกตัวที่เสียไปขึ้นมา
ใหมจากดิสก parity -50-
RAID-4 มีการคํานวณหาคา parity ที่ใชชวยในการ recover ขอมูล ทําใหการเขียนขอมูลจะชาลงเพราะ
การคํานวณ parity จะตองอานขอมูลและ parity เดิมจากดิสกและดิสกที่ใชเก็บ parity เพียงแคตัวเดียวนี้อาจจะ
ทํางานหนักจนถวงการทํางานของระบบไดทําใหไมเหมาะกับงานที่มีการเขียนพรอมๆกันมากๆอยางไรก็ตาม
RAID-4 มีประสิทธิภาพในการอานสงกว ู า RAID-3 มากเพราะการ stripe ในระดับ block ทําใหการอานขอมูล
block หนงๆึ่ อาจจะอานจากดิสกตัวเดียวไดไมจําเปนตองอานจากทุกตัวเหมือน RAID-3 ทําใหประสิทธิภาพใน
การอานขอมูลจึงเหมือนกับ RAID-0
- RAID-5
ลักษณะการทํางานจะคลายกับ RAID-4 เพียงแต parity จะถูก stripe ไปยังดิสกทุกๆ ตัวดวย
ประสิทธิภาพในการอานขอมูลใกลเคียงกับ RAID-0 มี parity ที่ใชชวยในการ recover ขอมูล การเขียน
ขอมูลจะชาลงเพราะตองมีการคํานวณ parity และเปลืองเนื้อที่ไปเทยบเท ี ากับดิสกตัวหนงสึ่ าหร ํ บเกั ็บคา parity
แตจะไมมี parity ดิสกที่จะทางานหน ํ กเกั นไป ิ RAID-5 จึงเหมาะสาหร ํ บงานประเภท ั multi-user ทั่วๆไป
 - RAID-6
การทางานจะเหม ํ ือนกับ RAID-5 แตจะมี parity 2 ชุดกระจายในดิสกทุกตัว-51-
การเขียนขอมูลจะชาลงเพราะตองมีการคานวณ ํ parity ถึง 2 ชุด และเปลืองดิสกเพิ่มขึ้นอีกตัวหนึ่ง
สําหรับ parity ชุดที่สองแตจะทําให RAID-6 สามารถทําการใหบริการขอมูลตอไปไดถึงแมจะมีดิสกเสียพรอมกัน
2 ตัว
 - RAID-10
คือการทํา RAID-0 บน RAID-1 หรือ striping บน mirroring
RAID-10 มีการสํารองขอมูลที่สมบูรณและมีประสิทธิภาพในการอานเขียนขอมูลสูงแตจะมีราคาแพง
มากเพราะตองใชดิสกจํานวนมากจึงเหมาะกับงานที่ตองการประสทธิ ิภาพและความนาเชื่อถือของระบบสูงและ
จะตองมีงบประมาณมากดวย
ในปจจุบัน RAID ชนิดที่ 0, 1 และ 5 ถูกนํามาใชอยางแพรหลายการเลือกวาจะใช RAID ชนิดใด จะตอง
เลือกใหสอดคลองกับงานนั้นโดยองคประกอบที่สําคัญที่ตองนํามาพจารณาค ิ ือประสิทธิภาพ, การสํารองขอมูล,
ความนาเชื่อถอของระบบ ื และราคา

x