آموزش سیستم مدیریت پایگاه داده - ساختار فایل
دادهها و اطلاعات مرتبط به یکدیگر در قالبهای فایل ذخیره میشوند. یک فایل مجموعهای از رکوردهاست که به صورت دودویی ذخیره میشوند. درایوی دیسک به چندین بلوک تقسیم شده است که میتوانند رکوردها را ذخیره کنند. رکوردهای فایل بر روی آن بلوکهای دیسک نقشهبرداری میشوند.
سازماندهی فایل
سازماندهی فایل، نحوهٔ نقشهبرداری رکوردهای فایل روی بلوکهای دیسک را تعریف میکند. ما چهار نوع سازماندهی فایل برای سازماندهی رکوردهای فایل داریم:
سازماندهی فایل Heap (Heap File Organization)
هنگامی که یک فایل با استفاده از سازماندهی فایل Heap ایجاد میشود، سیستم عامل به آن فایل یک حافظهٔ منطقه را بدون جزئیات حسابداری بیشتر اختصاص میدهد. رکوردهای فایل میتوانند در هر جای این منطقهٔ حافظه قرار گیرند. مدیریت رکوردها مسئولیت نرمافزار است. سازماندهی فایل Heap هیچ ترتیببندی، مرتبسازی یا ایندکسگذاری خود را پشتیبانی نمیکند.
سازماندهی فایل متوالی (Sequential File Organization)
هر رکورد فایل شامل یک فیلد داده (صفت) برای شناسایی منحصربهفرد آن رکورد است. در سازماندهی فایل متوالی، رکوردها براساس فیلد کلیدی یا کلید جستجوی منحصربهفرد به ترتیب متوالی در فایل قرار میگیرند. عملیاتی که تمامی رکوردها را به ترتیب متوالی در شکل فیزیکی ذخیره کند، در عمل امکانپذیر نیست.
سازماندهی فایل هش (Hash File Organization)
سازماندهی فایل هش از محاسبهٔ تابع هش بر روی برخی از فیلدهای رکوردها استفاده میکند. خروجی تابع هش محل بلوک دیسکی که رکوردها در آن قرار میگیرند را تعیین میکند.
سازماندهی فایل خوشهای (Clustered File Organization)
سازماندهی فایل خوشهای برای پایگاههای دادهٔ بزرگ به عنوان خوب شناخته نمیشود. در این مکانیزم، رکوردهای مرتبط از یک یا چند رابطه در همان بلوک دیسک نگهداری میشوند، به عبارت دیگر ترتیب رکوردها بر اساس کلید اصلی یا کلید جستجو نیست.
عملیات فایل
عملیات بر فایلهای پایگاه داده را میتوان به طور کلی به دو دسته تقسیم کرد:
-
عملیات بهروزرسانی
-
عملیات بازیابی
عملیات بهروزرسانی با وارد کردن، حذف یا بهروزرسانی مقادیر دادهها تغییر میدهد. از طرف دیگر، عملیات بازیابی دادهها را تغییر نمیدهد، بلکه آنها را بعد از اعمال فیلترهای اختیاری بازیابی میکند. در هر دو نوع عملیات، انتخاب نقش مهمی را ایفا میکند. علاوه بر ایجاد و حذف یک فایل، میتوان عملیاتهای مختلفی روی فایلها انجام داد.
-
بازکردن (Open) − یک فایل میتواند در یکی از دو حالت، حالت خواندن یا حالت نوشتن باز شود. در حالت خواندن، سیستم عامل به هیچ کس اجازه تغییر داده را نمیدهد. به عبارت دیگر، دادهها فقط خوانده میشوند. فایلهایی که در حالت خواندن باز میشوند، میتوانند توسط چندین واحد به اشتراک گذاشته شوند. حالت نوشتن امکان تغییر داده را فراهم میکند. فایلهایی که در حالت نوشتن باز میشوند، قابل خواندن هستند اما نمیتوانند به اشتراک گذاشته شوند.
-
یافتن (Locate) − هر فایل دارای یک اشارهگر فایل است که مکان فعلی را که دادهها باید در آنجا خوانده یا نوشته شوند، مشخص میکند. این اشارهگر میتواند مطابق با نیاز تنظیم شود. با استفاده از عملیات یافتن (جستجو)، میتوان آن را به جلو یا به عقب حرکت داد.
-
خواندن (Read) − به طور پیشفرض، هنگامی که فایلها در حالت خواندن باز میشوند، اشارهگر فایل به ابتدای فایل اشاره میکند. اما گزینههایی وجود دارد که کاربر میتواند به سیستم عامل بگوید که در زمان باز کردن فایل، اشارهگر فایل را در کجا قرار دهد. دادههای مستقیماً پس از اشارهگر فایل خوانده میشوند.
-
نوشتن (Write) − کاربر میتواند فایل را در حالت نوشتن باز کند که به او اجازه میدهد محتویات آن را ویرایش کند. این میتواند حذف، درج یا تغییر باشد. اشارهگر فایل میتواند در زمان باز کردن قرار داده شود یا در صورت امکان، به صورت پویا تغییر کند.
-
بستن (Close) − این عملیات از نظر سیستم عامل بسیار مهم است. هنگامی که درخواست بستن یک فایل ایجاد میشود، سیستم عامل
- تمام قفلها را (در صورت وجود در حالت به اشتراک گذاشته شده) برداشت میکند،
- دادهها (در صورت تغییر) را در رسانه ذخیرهسازی ثانویه ذخیره میکند، و
- همه بافرها و مدیریتکنندههای فایل مربوط به فایل را آزاد میکند.
سازماندهی دادهها در داخل یک فایل در اینجا نقش اساسی را ایفا میکند. روند یافتن اشارهگر فایل به یک رکورد مورد نظر درون یک فایل بسته به اینکه آیا رکوردها به صورت متوالی یا خوشهای مرتب شدهاند، متفاوت است.