วันจันทร์ที่ 29 ตุลาคม พ.ศ. 2555

บทที่ 1 ความรู้ทั่วไปเกี่ยวกับโครงสร้างข้อมูล

1 นิยามของข้อมูล

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

ชนิดของข้อมูลแบ่งได้หลายชนิด ดังนี้ 
1. ข้อมูลตัวเลข จะประกอบด้วยตัวเลขเท่านั้น  เช่น   145 ,  2468  เป็นต้น มักจะนำมาใช้ในการคำนวณ
2.  ข้อมูลอักขระ  ประกอบด้วย ตัวอักษร  ตัวเลข  และอักขระพิเศษหรือเครื่องหมายพิเศษต่าง ๆ เช่น บ้านเลขที่  13/2  เป็นต้น  ถ้ามีตัวเลขประกอบ จะมิได้นำมาคำนวณ
3. ข้อมูลภาพ  รับรู้จากการมองเห็น  เช่น ภาพดารา  ภาพสัตว์ต่าง ๆ
4. ข้อมูลเสียง  รับรู้จากทางหูหรือการได้ยิน  เช่นเสียงพูด เสียเพลง เป็นต้น

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

2 ความสำคัญของการศึกษาโครงสร้างข้อมูล


3 ความหมายของโครงสร้างข้อมูล

                  โครงสร้างข้อมูล (File Structure) หมายถึง ลักษณะการจัดแบ่งพิกัดต่าง ๆ ของข้อมูลสำหรับแต่ละระเบียน (Record) ในแฟ้มข้อมูลเพื่อให้คอมพิวเตอร์สามารถรับไปประมวลผลได้ ประกอบด้วยส่วนต่าง ๆ ดังนี้
1. หน่วยข้อมูล (Data Item) หมายถึงส่วนที่เล็กที่สุดของข้อมูล เช่น ตัวเลข ตัวอักษร หรือ สัญลักษณ์พิเศษ จะยังไม่มีความหมายในตัวเอง เล่น เลข 9 อักษร ก เป็นต้น
2. ฟิลด์ข้อมูล (Data Field) หมายถึง การนำเอาหน่วยข้อมูลที่สำคัญและต้องการศึกษามาไว้ด้วยกันเพื่อเปรียบเทียบกัน เช่น ชื่อ - สกุล คะแนนการสอบครั้งที่ 1 เงินเดือน ซึ่ง ชื่อ สกุล และเงินเดือน คือ 1 ฟิลด์
3. เรคอร์ดข้อมูล (Data Record) หมายถึง การนำฟิลด์หลายฟิลด์มารวมกลุ่มกัน เช่น นักศึกษาแต่ละคน จะมีข้อมูล ชื่อ สกุล วันเดือนปีเกิด อายุ เพศ ข้อมูลของนักศึกษาแต่ละคนคือ 1 เรคอร์ด
4. แฟ้มข้อมูล (Data File) เกิดจากการนำระเบียนหรือเรคอร์ด หลาย ๆ เรคอร์ดที่เกี่ยวข้องกันในด้านใดด้านหนึ่งมารวมกัน เช่น แฟ้มข้อมูลของนักเรียนห้องหนึ่งจำนวน 20 คน ทุกคนต่างก็มีข้อมูล คือ ชื่อ สกุล วันเดือนปีเกิด อายุ เพศ ศาสนา ข้อมูลของนักเรียนทั้งหมดคือ แฟ้มข้อมูล
5. ฐานข้อมูล (Data base) เกิดจากการนำแฟ้มหลาย ๆ แฟ้มข้อมูลเข้าด้วยกันโดยที่แฟ้มข้อมูลแต่ละแฟ้มจะมีความสัมพันธ์กันหรือไม่ก็ตาม ทำให้ข้อมูลไม่ซ้ำซ้อนกัน และสะดวกรวดเร็วในการใช้งาน
http://www.school.net.th/library/create-web/10000/generality/10000-5934.html


4 การจัดหมวดหมู่ของโครงสร้างข้อมูล

- การสร้างProg.คำสั่งทางCom. ต้องทำความเข้าใจต่อระบบการจัดการ / จัดรูปแบบข้อมูล
- สามารถAccess และเรียกใช้ข้อมูลได้อย่างมีประสิทธิภาพ
- สามารถประยุกต์ใช้กับงานด้านต่างๆได้ดี
- ต้องให้ความสำคัญต่อระบบการจัดการข้อมูล  โดยข้อมูลต้องประกอบด้วย
    1. จัดให้เป็นระบบ (Organize) สามารถเข้าถึงข้อมูลได้ ตามจุดมุ่งหมายผู้ใช้
    2. ประมวลผล (Process)  และแสดงผลลัพธ์ (Presentation Output) ในรูปแบบที่ต้องการ
    3. เป็นตัวแทน (Represent) ของเหตุการณ์ที่เกิดขึ้น
    4. สามารถป้องกัน (Protect) และจัดการ (Manage) ทำให้ข้อมูลมีความถูกต้อง / สมบูรณ์
การจำแนกโครงสร้างข้อมูล    จำแนกเป็น 3 ประเภท
 1. โครงสร้างข้อมูลพื้นฐาน (Primitive Data Structure)
   - มีค่าเฉพาะประเภทใดประเภทหนึ่ง ดังนี้
        1. เลขจำนวนเต็ม (Integer)      2. ตรรก (Boolean)      3. อักษร (Character)  
        4. เลขจำนวนจริง (Real)    ฯลฯ
    - แต่ละภาษาCom. จะมีวิธีการและการกำหนดคำสั่งที่แตกต่างกัน
    - โครงสร้างของไวยากรณ์แต่ละภาษา จะแตกต่างกัน
    - การประกาศตัวแปรบางภาษา
       1. ประกาศแบบเป็นทางการ (Explicit Declare) : แยกเป็นส่วนหนึ่งต่างหาก : Pascal , Cobol
       2. ประกาศตัวแปรภายในโปรแกรม (Implicit Declare) :
             - ไม่ต้องแยกออกมาเป็นส่วนหนึ่งต่างหากจากคำสั่ง  :  Fortrane ฯลฯ
 2. โครงสร้างข้อมูลที่มีส่วนประกอบอย่างง่าย (Simple Data Structure)
- นำเอาข้อมูลโครงสร้างพื้นฐานประกอบขึ้นมาเป็นชุดของข้อมูล
- มีความสัมพันธ์กันในลักษณะอย่างใดอย่างหนึ่ง
- เช่น ข้อมูลรูปแบบArray  รูปแบบข้อมูลแบบRecord    ฯลฯ
 3. โครงสร้างข้อมูลที่มีส่วนประกอบซับซ้อน (Compound Data Structure)
- นำเอาข้อมูลที่มีส่วนประกอบอย่างง่ายๆมาประกอบขึ้น เป็นโครงสร้างที่ซับซ้อน
- เป็นการเฉพาะกิจภายในProg.
- แบ่งออกเป็น 2 ประเภทย่อยๆ
   1. ชุดข้อมูลสัมพันธ์เชิงเส้นตรง (Linear Structure)  : Linked – List Stack Queue ฯลฯ
   2. ชุดข้อมูลสัมพันธ์ไม่เป็นเส้นตรง (Non - Linear Structure)  : Binary Tree Graph Tree
        M - way  Search Tree ฯลฯ

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

1) ลดความซ้ำซ้อนของข้อมูล การจัดเก็บข้อมูลเป็นแฟ้ม โดยกระจายอยู่ในหลาย ๆ แฟ้ม มักจะพบปัญหาของการปรับแก้ไขข้อมูล เพราะต้องคอยปรับปรุงข้อมูลให้ครบทุกแฟ้ม มิฉะนั้นจะพบกับปัญหาความซ้ำซ้อนของข้อมูล ซึ่งทำให้การบริหารข้อมูลทำได้ยากข้อมูลจึงควรได้รับการออกแบบและเก็บอยู่ในฐานข้อมูลที่ใดที่เดียว เพื่อลดความซ้ำซ้อน ในการกำหนดรูปแบบข้อมูลจะต้องทำให้ข้อมูลทั้งฐานข้อมูลเป็นรูปเดียวกัน เช่น การกำหนดข้อมูลชื่อ ให้ใช้ชื่อแล้วเว้นช่องว่างจึงเป็นนามสกุล และมีตำแหน่งต่อท้ายแทนการขึ้นต้น เช่น พ.ท. สมชาย ดีใจ เก็บเป็น สมชาย ดีใจ พ.ท. เป็นต้น เมื่อมีการกำหนดรูปแบบข้อมูลที่ชัดเจน และถือปฏิบัติใช้ทั้งฐานข้อมูลก็จะลดปัญหาการจัดการฐานข้อมูลลงไปได้มาก ทำให้ข้อมูลเป็นกลางและใช้ร่วมกันได้ นอกจากนี้ยังมีหลายสาเหตุที่อาจก่อให้เกิดความซ้ำซ้อนของข้อมูลในฐานข้อมูล ซึ่งจะต้องคำนึงถึงในการออกแบบฐานข้อมูล ข้อมูลจะต้องใช้งานได้กับผู้ใช้หลาย ๆ ประเภท หรือหลายแบบ เช่น ข้อมูลในฐานข้อมูลของจังหวัด จะต้องใช้ได้ทุกอำเภอ ความต้องการข้อมูลของแต่ละหน่วยงานอาจมีรายละเอียดที่ต่างกัน เช่น แผนกขายต้องการชื่อที่อยู่ของลูกค้าเพื่อติดต่อส่งเสริมการขาย แผนกติดตามหนี้ต้องการได้รายละเอียดเกี่ยวกับประวัติหนี้ค้างของลูกค้า  การเรียกชื่อข้อมูล อาจจะเรียกแตกต่างกัน เช่น ชื่อสินค้า อาจเรียกได้หลายอย่างในชื่อสินค้าเดียวกัน
2) กำหนดมาตรฐานข้อมูล ในการสร้างฐานข้อมูลจะต้องให้ข้อมูลที่จัดเก็บเป็นมาตราฐาน มีการกำหนดรหัสที่เป็นมาตราฐาน มีการกำหนดคำหลัก (keyword) หรือค่าที่ใช้แทนข้อมูลอย่างเดียวกันเพื่อให้ได้ความหมายต่อการใช้งานที่ดี
3) มีระบบป้องกันความปลอดภัยของข้อมูล ข้อมูลที่จัดเก็บไว้ในฐานข้อมูลจำเป็นต้องจัดแบ่งระดับความสำคัญของข้อมูลเพื่อกำหนดผู้ใช้ มีการควบคุมข้อมูล เพื่อบ่งบอกว่าใครจะเป็นผู้แก้ไขหรือข้อมูลได้บ้าง มีการบันทึกประวัติการแก้ไขข้อมูลเพื่อตรวจสอบ ข้อมูลที่จัดเก็บนั้นอาจมีความสำคัญ ดังนั้นการแก้ไขหรือปรับปรุงข้อมูลโดยรู้เท่าไม่ถึงการณ์นั้นอาจทำให้ข้อมูลเสียหายได้
4) มีความเป็นอิสระจากโปรแกรม ระบบจัดการฐานข้อมูลที่ดีจะต้องเป็นระบบที่ข้อมูล และฐานข้อมูลมีความเป็นอิสระจากโปรแกรม ทำให้สามารถใช้โปรแกรมจัดการฐานข้อมูลใด ๆ จัดการฐานข้อมูลได้ การออกแบบให้ข้อมูลเป็นอิสระนี้ทำให้ข้อมูลใช้ได้กับเครื่องคอมพิวเตอร์ทุกรูบแบบ
5) รวมข้อมูลเป็นฐานข้อมูลกลาง แต่เดิมมีการเก็บข้อมูลแยกเป็นแฟ้มกระจัดกระจาย จึงต้องเก็บข้อมูลด้วยเทป แต่ในปัจจุบันด้วยเทคโนโลยีที่ทันสมัยสามารถรวบรวมข้อมูลเข้าด้วยกันเป็นฐานข้อมูลกลาง ทำให้ระบบการทำงานใช้ข้อมูลร่วมกันได้ การดำเนินงานฐานข้อมูลจะต้องมีการจัดการเตรียมฐานข้อมูลและบริหารข้อมูล โดยจัดแบ่งแยก ปรับปรุงข้อมูล และตรวจสอบความถูกต้องหน้าที่หลักของผู้บริหารฐานข้อมูล จึงประกอบด้วยการจัดเก็บข้อมูล การติดต่อประสานงานกับแหล่งข้อมูลและที่มาของข้อมูล จึงประกอบด้วยการจัดเก็บข้อมูล การติดต่อประสานงานกับแหล่งข้อมูลและที่มาของข้อมูลตรวจสอบความถูกต้องของข้อมูล แบ่งกลุ่ม จัดลำดับ กำหนดรหัสข้อมูล สรุปผลทำรายงาน คำนวณเก็บรักษาข้อมูลโดยต้องคำนึงถึงความปลอดภัยและเชื่อถือได้ของข้อมูล การค้นหาข้อมูล การสำรวจข้อมูล และเผยแพร่แจกจ่ายข้อมูล
http://www.tanti.ac.th/com-tranning/it/technof3.htm#3.4

แบบทดสอบ
1. บอกความหมายของ "ข้อมูล" ตามพจนานุกรมฉบับราชบัณฑิตยสถาน
 ตอบ  ข้อมูล คำนาน หมายถึงข้อเท็จจริง หรือสิ่งที่ถือหรือยอมรับว่าเป็นข้อเท็จจริง สำหรับใช้เป็นหลักอนุมานหาควมจริงหรอการคำนวน
2. อธิบายลักษณะสำคัญของ "ข้อมูลคอมพิวเตอร์"
ตอบ 
3. อธิบายความหมายของโครงสร้างข้อมูล
ตอบ หมายถึง ลักษณะการจัดแบ่งพิกัดต่าง ๆ ของข้อมูลสำหรับแต่ละระเบียน (Record) ในแฟ้มข้อมูลเพื่อให้คอมพิวเตอร์สามารถรับไปประมวลผลได้ ประกอบด้วยส่วนต่าง ๆ
4. อธิบายลักษณะสำคัญของโครงสร้างข้อมูลทางกายภาพ
ตอบ โครงสร้างข้อมูลที่เราสามารถพบเห็นได้ทั่วไป แบ่งออกเป็น 2 ประเภท
5. อธิบายลักษณะสำคัญของโครงสร้างข้อมูลตรรกะ
ตอบ เป็นข้อมูลที่ถูกประมวลผลแล้ว หรือเป็นข้อมูลเชิงจำนวน แบ่งออกเป็น 2 ประเภท
6. อธิบายลักษณะสำคัญของ Pimitive Data Types
ตอบ ชนิดข้อมูลที่สามารถเก็บข้อมูลที่เป็นข้อมูลทั่วไปหรือข้อมูลพื้นฐาน ภาษาจาวาถูกออกแบบให้มีชนิดข้อมูลพื้นฐาน เนื่องจากผู้ออกแบบต้องการให้ผู้ที่สนใจภาษาจาวาและเคยเขียนโปรแกรมมาก่อน สามารถเข้าใจภาษาจาวาได้อย่างไม่ยากเย็นนัก ชนิดข้อมูลพื้นฐานมี 4 ประเภทหลักๆ
7. อธิบายลักษณะสำคัญของ Structure Data Types
ตอบ ชนิดของข้อมูลซึ่งค่าของข้อมูล (data values) ประกอบจากเซตของข้อมูลย่อย (component) ซึ่งอาจจะเป็นข้อมูลเชิงเดี่ยวหรือข้อมูลเชิงโครงสร้างก็ได้ ตัวอย่างของข้อมูลเชิงโครงสร้างในภาษาปาสคาล ได้แก่ แถวลำดับ หรือ อะเรย์ (array), ระเบียน หรือ เรคคอร์ด (record), ไฟล์ (file), และ เซ็ต (set) เป็นต้น
8. อธิบายลักษณะสำคัญของโครงสร้างข้อมูลแบบเชิงเส้น หร้อมยกตัวอย่าง
ตอบ ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน
9.  อธิบายลักษณะสำคัญของโครงสร้างข้อมูลแบบไม่เป็บเชิงเส้น พร้อมยกตัวอย่าง
ตอบ ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตั
10 . เขียนแผนผังแสดงการจัดหมวดหมู่โครงสร้างข้อมูลคอมพิวเตอร์ พร้อมอธิบาย
ตอบ  
11. ยกตัวอย่างที่แสดงให้เห็นถึงความสำคัญของการศึกษาโครงสร้างข้อมูล และการนำโครงสร้างข้อมูลไปใช้งานพร้อมตัวอย่างที่แสดงให้เห็นถึงความสำคัญของการศึกษาโครงสร้างข้อมูล พร้อมอธิบายโดยละเอียด