บทที่ 8 การจัดเรียงแฟ้มลำดับเชิงดรรชนี Indexed Sequential File Organization
นิยามการประยุกต์ใช้ การพัฒนาอุปกรณ์ชนิดเข้าถึงโดยตรงได้ทำให้เราสามารถดัดแปลงแฟ้มลำดับที่เข้าถึงระเบียนได้ทั้งแบบลำดับและแบบสุ่ม แฟ้มลำดับเชิงดรรชนีคือ วิธีการจัดเก็บระเบียนให้มีประสิทธิภาพ เพื่อให้เข้าถึงระเบียนแบบลำดับโดยเขตหลักบางตัว และยังสามารถเข้าถึงระเบียนหนึ่งระเบียนระเบียนใดแบบสุ่มโดยเขตหลักตัวเดี่ยวกันนั้น ข้อกำหนดที่สำคัญ คือ ทุกระเบียนจะต้องมีไพรมารีคีย์และแฟ้มข้อมูลจะต้องเก็บอยู่ในอุปกรณ์ DASD
เนื่องจากแฟ้มที่สามารถเข้าถึงระเบียนได้ทั้งแบบลำดับและแบบสุ่ม ดังนั้นลักษณะงานที่เหมาะสมมักอยู่ในรูปของ batch และ Interactive processing เช่น ระบบบัตรเครดิต
ตัวอย่างลักษณะงานที่ต้องใช้ระบบนี้คือ Class Records พิมพ์รายชื่อและที่อยู่นักศึกษาทั้งหมด คำนวณอายุเฉลี่ยของนักศึกษา คำนวณค่า GPA คำนวณจำนวนหน่วยกิจทั้งหมดที่นักศึกษารุ่นปัจจุบันลงทะเบียน เปลี่ยนสถานะนักศึกษา แสดง Grade แทรกระเบียนของนักศึกษาใหม่ ถอนหรือลบชื่อนักศึกษาที่ลาออก 1-4 เข้าถึงแบบลำดับ 5-8 เข้าถึงบางระเบียนแบบสุ่ม
โครงสร้างระเบียนแฟ้มลำดับเชิงดรรชนีใช้กันมี 2 แบบ Prime and overflow data areas (static) Block indexes and data (dynamic) ทั้ง 2 แบบต่างก็แยกเนื้อที่ส่วนดรรชนี ออกจากส่วนของข้อมูล และต่างก็ต้องเก็บในอุปกรณ์ DASD
Prime and overflow data areas โครงสร้างแบบนี้เกี่ยวข้องกับลักษณะทางกายภาพของอุปกรณ์บันทึกข้อมูล โดยแบ่งเนื้อหาออกเป็น 2 ส่วนคือ 1. ส่วนดรรชนี (Index file) ส่วนช่วยให้เข้าถึงข้อมูลได้ 2. ส่วนข้อมูล (Data file) ส่วนเก็บระเบียนข้อมูล 2.1 ส่วนเก็บข้อมูลมีโครงสร้างแฟ้มลำดับเรียงตามไพรมารีคีย์ 2.2 เนื้อที่ส่วนล้น เก็บระเบียนส่วนล้น
ส่วนดรรชนี สร้างขึ้นโดยระบบการดำเนินงาน โดยส่วนเก็บข้อมูลหลักอาจเป็นเลขแทรค หรือเลขที่ Cylinder ก็ได้ โดยแบ่งเป็น 3 ระดับด้วยกัน 1. Master index มีหรือไม่มีก็ได้ ใช้เก็บเลขที่ของแทรคใน Cylinder index มีเพื่อเพิ่มประสิทธิภาพในการค้นหา 2. Cylinder index ใช้บอกการกระจายตัวของระเบียน 3. track index เป็นดรรชนีระดับต่ำสุดปกติอยู่ในแทรคแรกสุด (แทรค 0) และมีไว้ชี้บอกตำแหน่งที่เก็บของระเบียนของ Prime track ในแต่ละ Cylinder
การสร้างแฟ้มลำดับเชิงดรรชนี ระเบียนต่างๆจัดเก็บตามลำดับของไพรมารีคีย์ หลักจากบันทึกคีย์สุดท้าย O.S.จะบันทึกคีย์สูงสุดไว้ใน normal entry ของ Track index