หน่วยการเรียนรู้ที่ 4
เรื่อง การจัดการเกี่ยวกับไฟล์ข้อมูล
การจัดการไฟล์ (File Management)
•การทำงานในระบบคอมพิวเตอร์ทั้งหมดจำเป็นต้องมีการเก็บและนำ ข้อมูลไปใช้งาน
• ขณะที่โปรเซสกำลังทำงานข้อมูลจะเก็บไว้ในหน่วยความจำ ถ้าเครื่องคอมพิวเตอร์ดับไม่ว่าด้วยสาเหตุใดก็ตามข้อมูลทั้งหมดจะสูญหายไป
• ดังนั้นจึงจำเป็นต้องจัดเก็บข้อมูลเหล่านี้ไว้ในหน่วยจัดเก็บข้อมูลสำรอง ซึ่งอาจจะเป็นแผ่นดิสก์เก็ต ฮาร์ดดิสก์ หรืออุปกรณ์อื่น ๆ
• ในการจัดเก็บข้อมูลเหล่านี้มีจุดประสงค์เพื่อนำมาใช้งานต่อไป จึงจำเป็นต้องมีการกำหนดชื่อเพื่อแทนกลุ่มข้อมูล ซึ่งเราเรียกว่าไฟล์ข้อมูล
• นอกจากนี้ถ้าเราจัดเก็บข้อมูลไม่เป็นระเบียบจะทำให้การค้นหาไฟล์ข้อมูลที่ต้องการได้ยากหรือช้า ดังนั้นถ้าเราจัดหมวดหมู่ให้กับไฟล์ข้อมูลก็จะทำให้การค้นหาไฟล์ทำได้สะดวกหรือรวดเร็วขึ้น
• การจัดให้ไฟล์เป็นหมวดหมู่ก็คือการจัดเก็บในไดเร็กทอรี่ (Directory) หรือโฟลเดอร์ (Folder)
ไฟล์ข้อมูล (File)
• หมายถึงสิ่งที่บรรจุข้อมูลต่าง ๆ ไว้ในที่เดียวกัน ซึ่งอาจหมายถึงโปรแกรมหรือข้อมูลที่เราต้องการเก็บไว้ด้วยกัน
• เมื่อเราต้องการค้นหาไฟล์ เราอ้างอิงด้วยชื่อไฟล์โดยไม่จำเป็นต้องทราบว่าไฟล์นั้นถูกเก็บไว้ในส่วนใดในดิสก์
• OS จะมีโปรแกรมย่อยที่ชื่อ System Call ทำหน้าที่จัดการงานที่เกี่ยวข้องกับไฟล์ เช่น การสร้างไฟล์ การลบไฟล์ การอ่าน/เขียนทับไฟล์
คำสั่งที่ใช้ในการจัดการไฟล์
• DIR (DIRECTORY) ดูชื่อแฟ้มข้อมูล, เนื้อที่บนแผ่นดิสก์, ชื่อแผ่นดิสก์
• TYPE แสดงเนื้อหาหรือข้อมูลในแฟ้มข้อมูลที่กำหนด
• COPY ใช้คัดลอกแฟ้มข้อมูลหนึ่ง หรือหลายแฟ้มข้อมูลจากแฟ้มข้อมูลต้นทาง ไปยังแฟ้มข้อมูลปลายทาง
• REN (RENAME) เปลี่ยนชื่อแฟ้มข้อมูล (ข้อมูลข้างในแฟ้มข้อมูลยังเหมือนเดิม)
• DEL (DELETE) ลบแฟ้มข้อมูลออกจากแผ่นดิสก์
• MD (MAKE DIRECTORY) สร้าง subdirectory (ห้องย่อย) เพื่อจัดเก็บแฟ้มข้อมูล
• CD (CHANGE DIRECTORY) เป็นคำสั่งในการเปลี่ยนไปใช้งาน subdirectory ที่ต้องการ
• RD (REMOVE DIRECTORY) ลบ subdirectory (ห้องย่อย) ที่สร้างด้วยคำสั่ง MD
• TREE แสดงรายชื่อ directory ทั้งหมดในแผ่นดิสก์ ที่กำหนด
• SYS (SYSTEM) เป็นคำสั่ง copy แฟ้มข้อมูลที่ใช้ในการเปิดเครื่องลงในแผ่นดิสก์หรือฮาร์ดดิสก์ ที่ไม่มีระบบ
• DISKCOPY (COPY DISKETTE) เป็นคำสั่งที่ใช้ copy file ทั้งหมดจากแผ่นดิสก์จากแผ่นหนึ่งไปใส่อีกแผ่นหนึ่ง แต่ถ้าแผ่นดิสก์อีกแผ่น ยังไม่ได้ทำการ format ก็จะทำการ format ให้โดยอัตโนมัติ
• $ ls [-altCF] [directory …] เป็นการแสดงชื่อไฟล์ที่มีอยู่ใน ไดเรกทอรี่ที่ระบุ
• $ pwd คือคำสั่งที่ใช้เช็คว่าไดเรกทอรี่ปัจจุบันอยู่ที่ตำแหน่งใด
• $ cd [ชื่อพาท] เป็นการเปลี่ยนไดเรกทอรี่ไป เป็นไดเรกทอรี่ที่ต้องการ
• $ mkdir [ชื่อไดเรกทอรี่] คือคำสั่งที่ใช้ในการสร้างไดเรกทอรี่ใหม่ขึ้น
• $ rmdir [ชื่อไดเรกทอรี่] คือการลบไดเรกทอรี่ที่มีอยู่
• $ rm [ชื่อไฟล์] คือการลบไฟล์ที่อ้างถึง
• cat [ชื่อไฟล์] เป็นการแสดงข้อความในไฟล์ที่เป็นเท็กซ์ไฟล์ (Text Files : ไฟล์ตัวอักษร) แสดงบนจอภาพ
• $ mv [ชื่อไฟล์ต้นทาง] [ชื่อไฟล์ปลายทาง] คือการย้ายไฟล์ (move) จากพาทใดๆที่อ้างอิงถึงไปยังพาทปลายทาง
• $ more เป็นการแสดงข้อความในไฟล์ทีละหน้าจอแล้วหยุดรอจนกว่าผู้ใช้จะกดคีย์ช่องว่าง (space bar) จึงจะแสดงข้อมูลหน้า ถัดไปหรือกด Enter เพื่อแสดงข้อมูลบรรทัดถัดไปทีละบรรทัด
• $ cp [ชื่อไฟล์ต้นฉบับ] [ชื่อไฟล์สำเนา] เป็นคำสั่งคัดลอก (copy) ข้อมูลจากไฟล์หนึ่ง ไปยังปลายทางที่ต้องการ
การตั้งชื่อไฟล์ข้อมูล
• ในการกำหนดชื่อไฟล์ในแต่ละ OS นั้นมีความแตกต่างกันอยู่บ้าง
• แต่โดยหลักการจะคล้ายคลึงกันคือ ชื่อไฟล์จะประกอบ 2 ส่วนด้วยกัน คือส่วนที่เป็นชื่อหลัก และส่วนที่เป็นนามสกุล (File extension) ทั้งสองส่วนนี้จะถูกคั่นด้วยจุด (Period) เช่น readme.txt , document.doc เป็นต้น
• ตัวอย่างข้อกำหนดที่แตกต่างกันในแต่ละ OS
– ระบบ MS-DOS ส่วนที่เป็นชื่อหลักจะประกอบด้วยตัวอักษรไม่เกิน 8 ตัวอักษร และตามด้วยนามสกุลไม่เกิน 3 ตัวอักษร
– ระบบ UNIX ถือว่าการตั้งชื่อด้วยอักษรตัวใหญ่ตัวเล็กไม่เหมือนกัน (Case sensitive) เช่น Readme.txt , readme.txt หรือ README.TXT ถือว่าเป็นคนละไฟล์
ตัวอย่างชนิดของไฟล์ข้อมูล
โครงสร้างไฟล์ข้อมูล
• การจัดโครงสร้างไฟล์ข้อมูลที่ใช้กันอยู่ทั่วไปมีอยู่ 3 แบบ
– แบบไบต์เรียงต่อกันไป เช่น UNIX และ Windows เวลาอ่าน/เขียนก็จะทำงานทีละไบต์
– แบบเรกคอร์ด (Record) โดยมีขนาดของเรกคอร์ดคงที่ เช่น CP/M เวลาอ่าน/เขียนก็จะทำงานทีละเรกคอร์ด สำหรับเรกคอร์ดสุดท้ายอาจจะไม่เต็มเรกคอร์ดก็ได้
– แบบต้นไม้ (Tree) จะจัดเก็บเป็นบล็อก ในแต่ละบล็อกจะประกอบด้วยเรกคอร์ด โดยขนาดของแต่ละเรกคอร์ดอาจไม่เท่ากัน เช่น OS ในระบบ Mainframe เวลาอ่าน/เขียนก็จะทำงานโดยค้นไปตามการเชื่อมโยงของต้นไม้
ไดเร็กทอรี (Directory)
• ไดเร็กทอรี (Directory) หมายถึงสารบัญที่เก็บรวบรวมรายชื่อของไฟล์ต่าง ๆ ทั้งหมดไว้ เพื่อให้ผู้ใช้สามารถค้นหา เรียกคืน และตรวจสอบข้อมูลที่ต้องการได้
• ไดเร็กทอรี เป็นไฟล์ประเภทหนึ่งซึ่งมีอยู่ 2 ระบบ
– ระบบไดเร็กทอรีเดี่ยว (Single-Level Directory Systems)
– ระบบไดเร็กทอรี 2 ระดับ (Two-Level Directory System)
ระบบไดเร็กทอรีหลายระดับ (Hierarchical Directory Systems)
เป็นระบบที่มีโครงสร้างง่ายที่สุด ภายในระบบจะมีอยู่เพียงไดเร็กทอรีเดียว รวบรวมไฟล์ทุกไฟล์ไว้ที่เดียวกัน และทุกไฟล์จะอยู่ในระดับเดียวกันการจัดเก็บในลักษณะนี้ทำให้เกิดปัญหาดังนี้
– ไฟล์ต่าง ๆ ที่มีอยู่ในไดเร็กทอรีไม่สามารถแยกเจ้าของไฟล์ได้
– ไฟล์หลากหลายชนิดต้องอยู่ปะปนกันทำให้ไม่สะดวกในการค้นหา
– ในกรณีที่ต้องการสร้างไฟล์ให้มีชื่อเหมือนที่มีอยู่ก่อนแล้วไม่สามารถทำได้ ซึ่งถ้าสร้างไฟล์ให้มีชื่อเดียวกับที่มีอยู่ก่อนนั้น จะทำให้ไฟล์เก่าถูกเขียนทับลงไปโดยไม่ได้ตั้งใจ ทำให้ข้อมูลสูญหายได้
ระบบไดเร็กทอรี 2 ระดับ(Two-Level Directory System)
• แก้ปัญหาแบบแรกได้แต่ไม่เต็มร้อย
• จะกำหนดให้ผู้ใช้แต่ละคนสามารถสร้างไดเร็กทอรีย่อยของตนได้เรียกว่า Sub-Directory หรือไดเร็กทอรีย่อย ในแต่ละสับไดเร็กทอรีจะอยู่ภายใต้ไดเร็กทอรีรากเดียวกัน (Root directory)
• ภายในสับไดเร็กทอรีผู้ใช้สามารถกำหนดชื่อไฟล์ได้ตามใจโดยไม่ต้องไปกังวลว่าจะไปซ้ำกับชื่อใคร
• แต่ปัญหาก็คือ กรณีที่ผู้ใช้มีไฟล์หลายประเภทจะไม่สามาถแยกประเภทของไฟล์ต่าง ๆ ได้ตามต้องการ
ระบบไดเร็กทอรีหลายระดับ ( Hierarchical Directory Systems )
•เพื่อแก้ปัญหาระบบไดเร็กทอรีเดี่ยว OS จึงยอมให้มีการสร้างโครงสร้างไดเร็กทอรีแบบหลายระดับขึ้นมา ซึ่งกำหนดให้ผู้ใช้แต่ละคนสามารถสร้างไดเร็กทอรีย่อย (Sub-directory) ได้โดยไม่จำกัด
•ระบบไฟล์ในปัจจุบันใช้โครงสร้างไดเร็กทอรีแบบนี้
•เรียกอีกชื่อหนึ่งว่า ระบบไดเร็กทอรีแบบโครงสร้างต้นไม้ (Tree Structure)