บทที่ 1 แนะนำโครงสร้างข้อมูล

บทที่ 1 แนะนำโครงสร้างข้อมูลกับการออกแบบซอฟต์แวร์

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

การนำโครงสร้างข้อมูลไปใช้งาน
           โครงสร้างที่ใช้เก็บข้อมูล
           อัลกอริทึมใช้สำหรับการดำเนินงานเป็นกระบวนการดำเนินงาน (procedure) สำหรับการแก้ปัญหาในแต่ละขั้นตอนหรือการบรรลุเป้าหมาย

 

การออกแบบซอฟต์แวร์ในการประมวลผลข้อมูล ประกอบด้วยส่วนส าคัญ 2 ส่วน
           การเลือกโครงสร้างข้อมูล  (Data Strutcure) ใช้ควบคุมและจัดการกับข้อมูลของปัญหานั้น ๆ หรือที่เรียกว่าชนิดข้อมูลมีโครงสร้าง เรียกสั้น ๆ ว่าชนิดข้อมูล เช่น ชนิดข้อมูลอาร์เรย์ ชนิดข้อมูลสแตก และชนิดข้อมูลลิ้งค์ ลิสต์ การออกแบบระบบต้องเลือกใช้โครงสร้างข้อมูลอย่างเหมาะสมเพื่อจัดการกับข้อมูลที่ใช้ในระบบ

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

 

ความหมายโครงสร้างข้อมูล/ชนิดข้อมูล

โครงสร้างข้อมูล/ชนิดข้อมูลกำหนดรูปแบบที่ใช้สื่อความหมายของข้อมูล

          บิต (Bit) เป็นหน่วยที่เล็กที่สุดในการทำงานของคอมพิวเตอร์ที่แสดงเป็นสถานะได้ 2 สถานะ คือ เปิดกับปิด จึงกำหนดเป็นการเก็บค่าได้ 2 ค่า คือ 0 กับ 1 เรียกว่าไบนารี่ดิจิต (Binary Digit)

          ไบต์ (Byte) เป็นการนำบิตหลาย ๆ บิตมาเรียงต่อรวมกันเพื่อกำหนดค่าได้มากขึ้น เช่น 3 บิต มาต่อเรียงกันจะทำให้เกิดสถานะที่ต่างกันคือ 000,001,010,100,011,010, และ 111 ก็จะได้เป็น 8 สถานะ เมื่อนำบิตมาเรียงต่อรวมกันเป็น 8 บิต เรียกว่าไบต์ มี 256 สถานะ และกำหนดเป็นโครงสร้างข้อมูลที่มีขนาดเล็กที่สุดที่ใช้งานได้ มีค่าตั้งแต่ 0 – 255 (00000000 – 11111111)

          ตัวอักษร (Character) เป็นการเก็บค่าที่เป็นตัวอักษร แต่เนื่องจากคอมพิวเตอร์ไม่สามารถเข้าใจจึงใช้เลขจำนวนเต็มสื่อความหมายแทนโดยใช้บิตจำนวน 8 บิต เรียกว่า Bit String ซึ่งค่าตัวเลขที่ได้จะกำหนดเป็นตัวอกษรหนึ่งตัว ดังนั้นจะได้ตัวอักษรทั้งหมด 256 ตัวที่เรียกว่าเอ็บซีดิก (EBCDIC)

          เลขจำนวนจริง (Real Number)  เป็นรูปแบบของตัวเลขที่มีเลขทศนิยมเรียกว่า Floating – point Number

          เลขจำนวนเต็ม (Integer)  เป็นการนำบิตหลาย ๆ บิตมาเรียงต่อรวมกันเพื่อกำหนดเป็นเลขจำนวนเต็ม

          ฟิลด์ (Field)  คือ เขตข้อมูลเป็นกลุ่มของตัวอักษรที่นำมารวมกัน  ทำให้เกิดความหมายเฉพาะอย่าง เช่น Field  ที่ใช้เก็บข้อมูล ชื่อ   นามสกุล   ตำแหน่ง  เป็นต้น

          เรคอร์ด (Record) คือ ระเบียนประกอบขึ้นด้วย  Field  หลาย Field  ที่มีความสัมพันธ์กัน

          แฟ้มข้อมูล (File)  คือ ตารางประกอบขึ้นด้วย  Record  ที่มีความสัมพันธ์กัน 

          ฐานข้อมูล (Database) คือ ประกอบด้วย File แต่ละ File รวมกันที่มีความสัมพันธ์กัน


 

ประเภทโครงสร้างข้อมูล

                    1. โครงสร้างข้อมูลเบื้องต้น (Primitive Data Structure) เป็นชนิดข้อมูลที่ไม่มีโครงสร้างข้อมูลอื่นมาเป็นส่วนประกอย เมื่อต้องการเก็บค่าสามารถเรียกใช้งานได้ทันที บางครั้งเรียกว่าชนิดข้อมูลพื้นฐาน (Base Type) หรือสร้างมาให้ใช้ด้วยภาษานั้น ๆ  ส่วนโครงสร้างข้อมูลแบบอื่น ๆ จะมีโครงสร้างข้อมูลอื่นเป็นส่วนประกอบ เมื่อต้องการใช้จะต้องกำหนดรูปแบบรายละเอียดโครงสร้างขึ้นมาก่อนเรียกว่าข้อมูลชนิดผู้ใช้กำหนด (Uses-defined Type) 

                    2. โครงสร้างข้อมูลแบบเรียบง่าย (Simple Data Structure) จะมีสมาชิกที่เป็นโครงสร้างข้อมูลอื่นเป็นส่วนประกอบ มีรูปแบบง่าย ๆ ไม่ซับซ้อน สามารถทำความเข้าใจและสร้างขึ้นมาใช้งานได้ง่าย

                    3. โครงสร้างข้อมูลเชิงเส้น (Linear Data Structure) เป็นโครงสร้างที่ความซับซ้อนมากขึ้น ประกอบด้วยสมาชิกที่เป็นโครงสร้างข้อมูลอื่นจัดเรียงต่อกันเป็นแนวเส้น

                    4. โครงสร้างข้อมูลไม่เป็นเชิงเส้น (Nonlinear Data Structure) เป็นโครงสร้างที่มีความซับซ้อนเช่นกัน ประกอบด้วยสมาชิกที่เป็นโครงสร้างข้อมูลอื่นจัดเรียงกันในรูปแบบไบนารี่ ที่จัดเรียงสมาชิกมีการแยกออกเป็นสองทาง และแบบ N- อาร์เรย์ ที่จัดเรียงสมาชิกมีการแยกออกได้หลายทางหลายรูปแบบไม่แน่นอน

                    5. โครงสร้างการจัดการแฟ้มข้อมูล (File Organization) เป็นโครงสร้างสำหรับนำข้อมูลเก็บไว้ในหน่วยความจำสำรอง โดยข้อมูลจะอยู่ในรูปแบบโครงสร้างข้อมูลอื่น และมีวิธีการจัดการโดยการนำโครงสร้างข้อมูลอื่น ๆ มาช่วย

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

 

 


ลักษณะการจัดการโครงสร้างข้อมูลที่ดี ได้แก่

  • ลดความซ้ำซ้อนของข้อมูล
  • กำหนดมาตรฐานข้อมูล
  • มีระบบป้องกันความปลอดภัยของข้อมูล
  • มีความเป็นอิสระจากโปรแกรม
  • รวมข้อมูลเป็นฐานข้อมูลกลาง

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

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

 

โครงสร้างข้อมูลกับภาษาเขียนโปรแกรม

           ภาษาเขียนโปรแกรม (Programming Language) ช่วยให้ผู้เขียนโปรแกรมสามารถกำหนดโครงสร้างข้อมูลที่มีความหมายให้กับตำแปร เนื่องจากตัวแปรเหล่านี้ต้องเก็บค่าตามลักษณะของโครงสร้างข้อมูลที่ได้กำหนดมาและส่วนของการปฏิบัติการที่ช่วยให้การทำงานกับโครงสร้างข้อมูลมีความถูกต้อง ภาษาเขียนโปรแกรมหลายภาษาจะมีแนวทางที่แตกต่างกันในการกำหนดโครงสร้างข้อมูลมาให้ใช้ เช่น ภาษาซี(C) อนุญาตให้โครงสร้างข้อมูลตัวอักษรกับเลขจำนวนเต็มสามารถใช้ร่วมกันและคำนวณได้


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

8              bits                        =            1              Byte                    : B

1,024      Bytes                     =             1              Kilo Byte             : KB        

1,024      KB                         =             1              Mega Byte           : MB        

1,024      MB                         =             1              Giga Byte            : GB        

1,024      GB                         =             1              Tera Byte             : TB        

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