Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่ 9 การจัดการแฟ้มข้อมูล - Coggle Diagram
บทที่ 9
การจัดการแฟ้มข้อมูล
9.1แนวคิดเกี่ยวกับแฟ้มข้อมูล แฟ้มข้อมูล คือ ชื่อของสารสนเทศที่สัมพันธ์กัน ซึ่งถูกบันทึกไว้ในหน่วยเก็บข้อมูลสำรองในมุมมองของผู้ใช้แฟ้มข้อมูลคือการจัดสรรที่เล็กที่สุดของหน่วยเก็บข้อมูลสำรองซึ่งข้อมูลนี้ไม่สามารถเขียนไปยังหน่วยความจำหลักได้ เว้นแต่จะถูกจัดเก็บภายในแฟ้มของข้อมูล
Source File คือ ล าดับของโปรแกรมย่อย (Subroutine) และฟังก์ชัน (อาจเป็นการประกาศค่าตามประโยค)
Object File คือ ลำดับของไบต์ ที่จัดเรียงในบล็อคที่ตัวเชื่อมโยง(Linker) ของระบบเข้า
Text File คือ ลำดับของตัวอักษรที่เรียงกันในบรรทัด (หรือหน้า)
Executable File คือ ลำดับของส่วนของรหัสโปรแกรมซึ่งตัว Load โปรแกรม (Loader)นำเข้ามายังหน่วยความจำและสั่งให้ทำงาน (Execute)
9.1.1 คุณลักษณะของแฟ้มข้อมูล (File Attributes) ต้องการที่จะให้ผู้ใช้เป็นอิสระจาก
อุปกรณ์ใด ๆ (Device independent) ดังนั้น ในการเข้าถึงแฟ้มข้อมูลใด ๆ จะต้องมีรูปแบบเดียวกันต้องการที่จะให้ผู้ใช้เป็นอิสระจากอุปกรณ์ใด ๆ (Device independent) ดังนั้น ในการเข้าถึงแฟ้มข้อมูลใด ๆ จะต้องมีรูปแบบเดียวกันคุณลักษณะของ
แฟ้มข้อมูลที่แตกต่างกันขึ้นอยู่กับระบบปฏิบัติการ แต่โดยปกติจะประกอบด้วยสิ่งเหล่านี้
ตัวระบุ (Identifier) แท็กที่ไม่ซ้ ากันนี้มักจะเป็นหมายเลขตัวระบุแฟ้มข้อมูลภายในระบบแฟ้ม
ประเภท (Type) ข้อมูลนี้จำเป็นสำหรับระบบที่สนับสนุนประเภทต่าง ๆ ของแฟ้มข้อมูล
ชื่อ (Name) ชื่อแฟ้มข้อมูลที่เป็นสัญลักษณ์เป็นเพียงข้อมูลที่เก็บไว้ในรูปแบบที่อ่านได้โดยมนุษย์
ตำแหน่ง (Location) ข้อมูลนี้เป็นตัวชี้ไปยังอุปกรณ์และตำแหน่งของแฟ้มที่อยู่ในฮาร์ดดิสก์
ขนาด (Size) จะบอกขนาดปัจจุบันของแฟ้มข้อมูล (หน่วยเป็นไบต์) ซึ่งขนาดสูงสุดจะถูกกำหนดเอาไว้
การป้องกัน (Protection) จะใช้ควบคุมสิทธิ์ในการเข้าถึงแฟ้มข้อมูลต่าง ๆ เช่น การอ่านเขียนแฟ้มข้อมูล
วันเวลาของผู้ใช้(Time, Date, and User Identification) ข้อมูลนี้จะถูกเก็บไว้เมื่อมีการ
แก้ไขแฟ้มข้อมูลนี้ในครั้งล่าสุด ซึ่งมีประโยชน์สำหรับป้องกันความปลอดภัย
9.1.2 การดำเนินการกับแฟ้มข้อมูล (File Operations) แฟ้มข้อมูลจะมีชนิดข้อมูลที่จับต้องไม่ได้ การที่จะกำหนดแฟ้มข้อมูลให้เหมาะสมได้ต้องพิจารณาตัวดำเนินการทั้งหมดที่อยู่ในแฟ้มข้อมูล ระบบปฏิบัติการจะช่วยสนับสนุนทางด้านการสร้าง เขียน และอ่านแฟ้มข้อมูล หรือบางทีก็เป็นการลบหรือตัดทอนแฟ้มข้อมูล
การสร้างแฟ้มข้อมูล (Creating a file) จะมีอยู่สองขั้นตอนในการสร้าง ขั้นตอนแรกต้องรู้ขั้นตอนที่สองการสร้างแฟ้มข้อมูลใหม่จำเป็นต้องสร้างอยู่ในไดเรกทอรี่
การเขียนแฟ้มข้อมูล (Writing a file) ในการเขียนแฟ้มข้อมูลเราจะทำให้ข้อมูลถูกเขียนขึ้นทั้งชื่อแฟ้มข้อมูลและรายละเอียดที่ถูกเขียนไปยังแฟ้มข้อมูล
อ่านแฟ้มข้อมูล (Reading a file) หากเราต้องการอ่านแฟ้มข้อมูลเราก็ต้องรู้ถึงตำแหน่งของแฟ้มข้อมูลในไดเรกทอรี่
ที่เก็บแฟ้มข้อมูลภายในแฟ้ม (Repositioning within a file) เริ่มต้นจากการค้นหา ไดเรกทอรี่ที่ต้องการและกำหนดค่าให้ตัวชี้ตำแหน่งแฟ้มข้อมูลปัจจุบัน
การลบแฟ้มข้อมูล (Deleting a file) ในการลบแฟ้มข้อมูลเราจำเป็นต้องรู้ตำแหน่งของแฟ้มข้อมูลในไดเรกทอรี่ เริ่มจากการค้นหาไดเรกทอรี่ที่มีชื่อจากแฟ้มที่จะลบ
การตัดทอนแฟ้มข้อมูล (Truncating a file) เมื่อผู้ใช้ต้องการให้แฟ้มข้อมูลมีคุณลักษณะเหมือนเดิม แต่ต้องการลบเนื้อหาของแฟ้มข้อมูลแทนที่จะลบและสร้างใหม่
โดยสิทธิ์ของการเข้าถึงแฟ้มข้อมูลก็จะถูกเก็บไว้ในพื้นที่เล็ก ๆ ในระบบปฏิบัติการ โดยสรุปมีข้อมูลหลายส่วนที่เกี่ยวข้องกับการเปิดแฟ้มข้อมูล ดังนี้
การนับการเปิดแฟ้มข้อมูล (File-open count) เมื่อแฟ้มข้อมูลที่กำลังใช้งานถูกปิดลง
ระบบปฏิบัติการต้องใช้ตารางเปิดแฟ้มข้อมูล (Open file table) ซำ้อีกครั้ง
ตำแหน่งของแฟ้มข้อมูลบนดิสก์ (Disk location of the file) การทำงานของแฟ้มข้อมูลส่วนใหญ่ต้องการให้ระบบปรับปรุงข้อมูลภายในแฟ้มข้อมูล สำหรับข้อมูลที่จำเป็นเพื่อระบุ
ตัวชี้แฟ้มข้อมูล (File pointer) ระบบจะไม่ติดตามแฟ้มข้อมูลที่ก าลังอ่านและเขียน
แฟ้มข้อมูลอยู่ แต่ระบบจะติดตามการอ่านเขียนครั้งสุดท้าย
สิทธิ์ในการเข้าใช้(Access rights) แต่ละกระบวนการมีการเข้าถึงไม่เหมือนกัน ข้อมูลที่ถูก
เก็บเอาไว้ในกระบวนการมีจำนวนมาก จึงต้องมีการกำหนดสิทธิ์ในการเข้าใช้
9.1.3 ประเภทของแฟ้มข้อมูล (File types) เมื่อเรามีการออกแบบระบบแฟ้มที่อยู่ในระบบปฏิบัติการ เราก็ต้องพิจารณาว่าระบบปฏิบัติการ
ควรรู้จักและสนับสนุนแฟ้มข้อมูลประเภทไหน เราต้องรู้ว่าระบบปฏิบัติการต้องการแฟ้มข้อมูลประเภทไหน
9.1.4 โครงสร้างของแฟ้ม (File Structure)ประเภทของแฟ้มข้อมูลนั้นยังสามารถใช้เพื่อแสดงโครงสร้างที่อยู่ภายในของแฟ้มข้อมูลได้ โดย
โครงสร้างของแฟ้มข้อมูลจะต้องตรงกับความหมายของโปรแกรมที่ใช้งานอยู่
เขตข้อมูล (Field) หรือคำ(Word) คือ หน่วยของข้อมูลที่เกิดจากการนำอักขระหลาย ๆ ตัว
มารวมกัน
ระเบียน (Record) คือ หน่วยของข้อมูลที่มีการนำเขตข้อมูลหลาย ๆ เขตข้อมูล ที่มี
ความสัมพันธ์กันมารวมกัน หรือค่าของข้อมูลในแต่ละเขตข้อมูลมารวมกัน
ไบต์(Byte) หรือ ตัวอักขระ (Character) คือ หน่วยของข้อมูลที่น าบิตหลาย ๆ บิตมารวมกันแทนตัวอักษรแต่ละตัว เช่น A, B, ..., Z, 0, 1, 2, ... ,9
แฟ้มข้อมูล (File) คือ หน่วยของข้อมูลที่มีการนำระเบียนหลาย ๆ ระเบียนที่มีความสัมพันธ์
กันมารวมกัน
บิต (Bit : Binary Digit) คือ หน่วยของข้อมูลที่เล็กที่สุดที่เก็บอยู่ในหน่วยความจำภายในคอมพิวเตอร์ซึ่งบิตจะแทนด้วยตัวเลข คือ 0 หรือ 1 อย่างใดอย่างหนึ่งเท่านั้น
ฐานข้อมูล (Database) คือ หน่วยของข้อมูลที่มีการนำแฟ้มข้อมูลหลาย ๆ แฟ้มข้อมูล ที่มี
ความสัมพันธ์กันมารวมกัน
9.1.5 โครงสร้างของแฟ้มข้อมูลภายใน (Internal File Structure)ในระบบดิสก์ มักมีขนาดของบล็อกที่ก าหนดโดยขนาดของเซกเตอร์ การเข้าใช้พื้นที่ในดิสก์ทั้งหมด
(Disk I/O) ถูกแบ่งเป็นหน่วยของบล็อก (Physical record) และทุกบล็อกมีขนาดเท่ากัน
9.2 วิธีการเข้าถึงแฟ้มข้อมูล แฟ้มข้อมูลถูกใช้เก็บข้อมูลสารสนเทศ เมื่อถูกนำมาใช้ย่อมมีการเข้าถึงเพื่ออ่านข้อมูล โดยวิธีในการเข้าถึงข้อมูลนั้นก็แล้วแต่ระบบปฏิบัติการว่าเป็นชนิดไหน
9.2.1 วิธีเข้าถึงโดยลำดับ (Sequential Access) เป็นเทคนิคที่ใช้ในการเก็บข้อมูลอย่างหนึ่ง เพื่อให้สามารถเรียกมาใช้ได้อย่างมีประสิทธิภาพ ใช้ใน
โปรแกรมประเภทคลังข้อมูล การเข้าถึงหน่วยเก็บข้อมูลหรือสื่อบางชนิด
9.2.2 การเข้าถึงโดยตรง (Direct Access) หมายถึง การเข้าถึงข้อมูลโดยใช้เวลาในการค้นหาข้อมูลได้เร็วเท่ากันหมด ไม่ขึ้นกับตำแหน่งที่เก็บหมายความว่า ไม่ว่าข้อมูลจะเก็บอยู่ที่ส่วนใดของสื่อที่ใช้บันทึก หัวอ่าน (Read head) ก็จะเจาะตรงลงไปอ่านได้เลย
9.2.3 วิธีการเข้าถึงอื่น ๆ (Other Access Methods) ประกอบไปด้วยตัวชี้ตำแหน่งในหลาย ๆ ส่วน เอาไว้สำหรับค้นหาข้อมูล
ในแฟ้มข้อมูล ในการค้นหาครั้งแรกใช้ดัชนีและใช้ตัวชี้ในการเข้าถึงแฟ้มข้อมูล และค้นหาข้อมูลที่เราต้องการวิธีเสริมนี้เกี่ยวข้องกับการสร้างดัชนีให้แฟ้มข้อมูล
9.3 โครงสร้างของไดเรกทอรี่ ไดเรกทอรี่ (Directories) เป็นที่เก็บรวบรวมชื่อของแฟ้มข้อมูล และข้อมูลที่สำคัญของแฟ้มข้อมูล ในแต่ละ Volume สามารถแบ่งออกมาเพื่อเป็นดิสก์ได้ Volumes สามารถมีระบบได้หลายระบบปฏิบัติการ และอนุญาตให้บูทหรือรันได้มากกว่าหนึ่ง ในแต่ละ Volumes ที่มีระบบแฟ้มข้อมูลอยู่
ลบแฟ้มข้อมูล (delete a file) เมื่อแฟ้มข้อมูลไม่ต้องการแล้ว ต้องสามารถลบมันออกจาก
ไดเรกทอรี่
แสดงไดเรกทอรี่ (List a directory) การดูแฟ้มข้อมูลในไดเรกทอรี่ต้องสามารถแสดงชื่อแฟ้มข้อมูลในไดเรกทอรี่ และเนื้อหาของไดเรกทอรี่สำหรับแต่ละแฟ้มในรายการ
สร้างแฟ้มข้อมูล (Create a file) แฟ้มข้อมูลใหม่จำเป็นต้องถูกสร้างและเพิ่มเข้าใน
เปลี่ยนชื่อแฟ้มข้อมูล (Rename a file) เพราะว่าชื่อของแฟ้มข้อมูลนั้นมีหลากหลายเนื้อหาและหลากหลายผู้ใช้ เราต้องสามารถเปลี่ยนชื่อ เมื่อเนื้อหาภายในถูกเปลี่ยนหรือมีการใช้แฟ้มข้อมูลนั้นเปลี่ยนแปลงไป
ค้นหาแฟ้มข้อมูล (Search for a file) เมื่อผู้ใช้หรือโปรแกรมเรียกใช้แฟ้มข้อมูลใด ๆ ระบบ
ต้องค้นหาแฟ้มข้อมูลนั้นจากไดเรกทอรี่
การข้ามระบบแฟ้มข้อมูล (Traverse the file system) การสามารถเข้าถึงในหลาย
ไดเรกทอรี่และหลาย ๆ แฟ้มข้อมูลภายในโครงสร้างไดเรกทอรี่ สำหรับความน่าเชื่อถือคือ การรักษาเนื้อหาและโครงสร้างของระบบแฟ้มข้อมูลทั้งหมด
9.3.1 ไดเรกทอรี่ระดับเดียว (Single-Level Directory) โครงสร้างต่าง ๆ ของไดเรกทอรี่ คือ ไดเรกทอรี่ระดับเดียว แฟ้มข้อมูลทั้งหมดจะถูกเก็บไว้ในได
เรกทอรี่เดียว
9.3.2 ไดเรกทอรี่สองระดับ (Two-Level Directory) ในโครงสร้างของได
เรกทอรี่สองระดับ แต่ละผู้ใช้จะมีไดเรกทอรี่ของตนเอง (User file directory : UFD) โดยจะสร้างโครงสร้างจำลองขึ้นมาสำหรับผู้ใช้เพียงคนเดียว
9.3.3 ไดเรกทอรี่ที่มีโครงสร้างแบบต้นไม้(Tree-structured directory)ถ้าแฟ้มข้อมูลที่ต้องการไม่มีในไดเรกทอรี่ปัจจุบัน ผู้ใช้ต้องระบุชื่อของเส้นทาง (Pathname) หรือเปลี่ยนไดเรกทอรี่ปัจจุบันไปเป็นไดเรกทอรี่อื่น การอ้างอิงถึงแฟ้มข้อมูลใด ๆ ก็ตาม จ าเป็นต้องระบุที่อยู่ของแฟ้มข้อมูลนั้น ๆ ให้ถูกต้องว่าอยู่ใน
ไดเรกทอรี่ใด หรือสับไดเรกทอรี่ใด
การอ้างชื่อแฟ้มข้อมูลแบบสัมบูรณ์(Absolute path name) เป็นการอ้างถึงแฟ้มข้อมูลโดยเริ่มจากราก (Root) เสมอ ตามด้วยชื่อไดเรกทอรี่ย่อยไล่ลงมาตามลำดับชั้นของไดเรกทอรี่จนกระทั่งถึงไดเร็กทอรีที่บรรจุแฟ้มข้อมูลอยู่
การอ้างชื่อแบบสัมพัทธ์ (Relative path name) เป็นการอ้างถึงแฟ้มข้อมูลโดยที่ผู้ใช้จะต้องเข้าใจในเรื่องระบบไดเรกทอรี่ปัจจุบัน (Current directory) เนื่องจากการอ้างถึงชื่อแฟ้มข้อมูลจะเริ่มต้นจากไดเรกทอรี่ปัจจุบันแล้วไล่ไปตามลำดับชั้นของไดเรกทอรี่ที่แฟ้มข้อมูลนั้นอยู่และจบลงด้วยชื่อแฟ้มข้อมูลนั้น
9.3.4 ไดเรกทอรี่กราฟแบบไม่เป็นวงจร (Acyclic-Graph Directory) Acyclic graph สามารถปรับให้เข้ากับสถานการณ์ โดยการสร้างต้นไม้แบบง่าย ๆ ได้ แต่เป็นเรื่องที่ยุ่งยากแฟ้มข้อมูลอาจจะมีหลาย Path name ดังนั้นมันแตกต่างอย่างชัดเจนที่จะอ้างถึงแฟ้มข้อมูลเดียวกัน ถ้าเราต้องการค้นหาแฟ้มข้อมูล เก็บสะสมสถิติของแฟ้มข้อมูลทั้งหมดหรือสำรองแฟ้มข้อมูลทั้งหมดเอาไว้
9.3.5 ไดเรกทอรี่แบบกราฟโดยทั่วไป (General Graph Directory)
ปัญหาหลักของการใช้ Acyclic graph คือ มันไม่ใช่โครงสร้างที่สมบูรณ์แบบ ถ้าเราเริ่มจาก Two-
level และอนุญาตให้ผู้ใช้สร้างไดเรกทอรี่ย่อย ผลก็คือจะกลายเป็นโครงสร้างแบบ Tree-structure
ความได้เปรียบของ Acyclic graph คือ ความสัมพันธ์ที่มีความเรียบง่ายของอัลกอริทึมที่จะท่องไปในกราฟ การค้นหาแฟ้มข้อมูลในไดเรกทอรี่ที่ใช้ร่วมกัน (Share subdirectory)ควรที่จะเลี่ยงการท่องไปในการแชร์ของพื้นที่ที่แบ่งไว้ของ Acyclic graph เป็นครั้งที่สอง เหตุผลก็เพื่อประสิทธิภาพเป็นหลัก
9.4 การป้องกันการสูญหายของข้อมูล เมื่อข้อมูลถูกเก็บไว้ในระบบคอมพิวเตอร์สิ่งที่เราต้องการคือความปลอดภัยทางด้านกายภาพและความปลอดภัยทางด้านการเข้าถึงข้อมูล ความเชื่อถือของการเกิดความซ้ำซ้อนของสำาเนาแฟ้มข้อมูล
9.4.1 ชนิดของการเข้าถึงแฟ้มข้อมูล (Types of Access) การป้องกันโดยการควบคุมการเข้าถึงของข้อมูลโดยการกำหนดสิทธ์ของผู้ใช้ว่ามีประเภทเป็นอะไรซึ่งเราสามารถกำหนดมันได้ โดยเครื่องแม่ข่ายจะมีประเภทในการกำหนดชนิดดังนี้
ดำเนินการ (Execute) อ่านแฟ้มข้อมูลแล้วเอาเข้าไปในหน่วยความจำแล้วดำเนินการกับแฟ้มข้อมูลนั้น
เพิ่ม (Append) เขียนข้อมูลใหม่จนกระทั่งจบแฟ้มข้อมูล
เขียน (Write) เขียนหรือเขียนซ้ าแฟ้มข้อมูล
ลบ (Delete) ลบแฟ้มข้อมูลออกไปท าให้เกิดพื้นที่ว่าง
อ่าน (Read) อ่านข้อมูลจากแฟ้มข้อมูล
รายการ (List) แสดงชื่อและส่วนประกอบต่าง ๆ ของแฟ้มข้อมูล
9.4.2 รายการเข้าถึงแฟ้มข้อมูลและกลุ่ม (Access Lists and Groups)ส่วนใหญ่วิธีในการป้องกันปัญหานั้นจะขึ้นอยู่กับข้อมูลเฉพาะของตัวผู้ใช้ ผู้ใช้ที่แตกต่างกันอาจจะ
ต้องก าหนดสิทธิ์เพื่อให้เข้าไปใช้แฟ้มข้อมูลหรือไดเรกทอรี่ที่กำหนดไว้เท่านั้น โดยทั่วไปนั้นการเชื่อมโยงของแฟ้มข้อมูลในแต่ละไดเรกทอรี่จะใช้วิธีการเข้าถึงโดยการควบคุม (Access-control list : ACL)ในการกำหนดสิทธิ์นี้จะแบ่งการกำหนดค่าต่าง ๆ
ออกเป็นสองส่วนหลัก ๆ คือ
ส่วนของ AROs (Access Request Objects) ตรงนี้จะเป็นการกำหนด Object ที่ทำการร้องขอ (Request) ฟังก์ชั่นการทำงาน (Action)หรือตัวผู้ใช้เอง สามารถกำหนดเป็น n-level ได้ หมายถึง กลุ่มของผู้ใช้หรือผู้ใช้จะสามารถแบ่งเป็นระดับย่อย ๆ ได้
ส่วนของ ACOs (Access Control Objects) ตรงนี้จะใช้กำหนดทรัพยากรต่าง ๆ ในระบบของเราที่ต้องการจะกำหนดสิทธิ์ให้กับผู้ใช้บางกลุ่มหรือบางคนในการเข้าถึงทรัพยากรต่าง ๆ
เจ้าของ (Owner) เป็นเจ้าของแฟ้มข้อมูลสามารถกำหนดสิทธิ์ให้แก่ผู้ใช้งานทั่วไปได้
กลุ่ม (Group) เป็นกลุ่มของผู้ใช้ซึ่งจะแชร์แฟ้มข้อมูลใช้งานระหว่างกันได้และต้องการ
คนอื่นทั้งหมด (Universe) เป็นกลุ่มของผู้ใช้ทั้งหมดที่มีอยู่ในระบบการป้องกันที่เชื่อมโยงกับแฟ้มข้อมูล
9.4.3 แนวทางการป้องกันอื่น ๆ อีกวิธีการในการป้องกันปัญหาที่จะเชื่อมโยงกับรหัสผ่านที่แฟ้มข้อมูล เช่นเดียวกับการเข้าสู่ระบบคอมพิวเตอร์นั้น มักจะควบคุมโดยรหัสผ่านเข้าใช้แฟ้มข้อมูลแต่ละแฟ้มข้อมูลสามารถควบคุม หากรหัสผ่านจะถูกเลือกแบบสุ่มและการเปลี่ยนแปลงบ่อยจะมีประสิทธิภาพในการจำกัดการเข้าถึงแฟ้มข้อมูล
9.5 สรุป ในการจัดเก็บข้อมูลลงในสื่อเก็บข้อมูลจะต้องมีการตั้งชื่อกลุ่มข้อมูล ชื่อที่ว่านี้เรียกว่าแฟ้มข้อมูลในการเข้าถึงแฟ้มข้อมูลระบบปฏิบัติการจะจัดการให้ผ่าน
ทางการด าเนินการจากโปรแกรมของระบบที่เรียกว่า System call ซึ่ง System call เหล่านี้จะช่วยในการสร้าง ลบ อ่าน และเขียนแฟ้มข้อมูลต่าง ๆ ได้ระบบปฏิบัติการยังช่วยเก็บไฟล์ในกลุ่มเดียวกันไว้ในไดเรกทอรี่ ซึ่งไดเรกทอรี่เป็นแฟ้มข้อมูลประเภทหนึ่ง ที่ช่วยแบ่งกลุ่มแฟ้มข้อมูลที่จัดเก็บในสื่อที่เป็นกลุ่ม