جمعه, ۷ اردیبهشت, ۱۴۰۳ / 26 April, 2024
مجله ویستا

مفاهیم اولیه سیستم فایل


مفاهیم اولیه سیستم فایل
● نوع موجودیت entity type
به هر چیزی در اطراف محیط ما اعم از افراد اشیا و هر پدیده ای که میتوانیم در رابطه با انها اطلاع داشته باشیم موجودیت گفته میشود . هر موجودیت میتواند نوع گونه ای در سطح طبقاتی خود داشته باشد که به ان نوع موجودیت entity type گوییم . مثلا نوع موجودیت گوسفند حیوان است .
▪ محیط عملیاتی یا خرد جهان واقع semantec data unit
به محیطی گفته میشود که میخواهیم در رابطه با ان محیط یک سری داده ها را ذخیره بازیابی و پردازش کنیم .
مثلا اگر محیط عملیاتی کلاس درس باشد . موجودیتهای ان کلاس اعم از دانشجو استاد و صندلیها از محیط عملیاتی اطلاعاتی به مامیدهند .
▪ صفات خاصه attribute
انواع موجودیت ها entity types توسط صفات خاصه مربوط به خودشان از یکدیگر متمایز میشوند . به عبارت دیگر عاملی که مسبب تمایز دو موجودیت در یک محیط عملیاتی میشود صفت خاصه ان موجودیت است .
مثلا صفت خاصه استاد : مدرک . سابقه تحصیل . درجه استادی . نام . نام خانوادگی میتواند باشد .
▪ اطلاع
هر صفت خاصه از دو مولفه تشکیل میشود : اسم صفت خاصه و مقدار صفت خاصه .
به مجموعه این دو مولفه صفت خاصه گوییم . که منجر به وجود اطلاع در مورد ان موجودیت میشود . اطلاع توسط انسان یا ماشین ذخیره بازیابی و پردازش میشود .
در مثال زیر نام درس : اسم صفت خاصه است و ذخیره وبازیابی اطلاعات مقدار صفت خاصه است .
نام درس = ذخیره و بازیابی اطلاعات
▪ فیلد
به مکان ذخیره شدن یک واحد معنادار ( فقره اطلاع) فیلد گوییم . فیلد کوچکترین واحد اطلاعات در فایل است که معنایی منطقی دارد .
▪ رکورد
به مجموعه ای از فیلدهای مربوط به یک نوع موجودیت در یک محیط عملیاتی رکورد گویند .
مثلا به مجموعه فیلدهای : نام – نام خانوادگی – مدرک – ادرس رکورد گوییم . واحد پردازش فایل است از دید پردازشگر فایل .
▪ فایل
‌مجموعه رکوردها فایل را میسازد .
▪ ساختارهای فیلد :
برای مشخص کردن فیلدها در رکوردها راههای مختلفی وجود دارد :
۱) قراردادن فیلدها در طولهای از قبل تعیین شده و ثابت :
مثلا در ساختار یک رکورد تعیین میکنیم که طول فیلد های زیر به ترتیب چقدر است :
▪ نام – نام خانوادگی – ادرس – معدل – رشته
▪ ۱۵بایت- ۲۵بایت – ۵۰ بایت – ۴ بایت – ۵ بایت .
در روش استفاده شده در مثال فوق یعن استفاده از روش بصورتیکه طول فیلد قبلا تعریف شده باشد مشکلاتی به چشم میخورد :
یک ایراد این روش انست که برای رساندن فیلدها به طول تعیین شده در صورتیکه طول داده ما در فیلد به سایز فیلد نمیرسد میبایست از فضای خالی جهت رساندن فیلد به طول تعریف شده استفاده کرد که این روش باعث اتلاف حافظه و بزرگ شدن فایل میشود .
همچنین ممکن است داده ها در آینده بزرگتر از اندازه تعیین شده برای فیلد شوند .
در ضمن استفاده از این روش برای فیلدهایی که قرار است مقداری مانند آدرس یا نام یا نام خانوادگی را نگهداری کند مشکل بنظر میرسد چراکه ممکن است آدرس در آینده تغییر کند و در اندازه فعلی فیلد جا نشود . اما استفاده از این روش برای چیزهایی که اندازه معینی دارند مانند معدل یا نمرات افراد روش مناسبی است .
۲) قرار دادن طول فیلد در ابتدای هر فیلد
۳) استفاده از یک کاراکتر ویژه (حدفاصل delimiter) برای مشخص کردن پایان هر فیلد :
۴) به کاربردن نام هر فیلد در مقابل هر فیلد .
مزیت این ساختار توانایی جابجایی فیلدها در یک رکورد است و همچنین اگر فیلدی مقداری نداشته باشد نام ان نیز ذکر نمیشود . اما مشکلی که این روش دارد انستکه در این روش استفاده از نام هر فیلد میتواند فضای زیادی را مصرف کند .
● ساختارهای رکورد ها :
بعضی از روشهای سازماندهی به رکوردها عبارتند از :
۱) رکوردهای با طول ثابت :
در این روش طول رکوردها در تمامی فایل یکسان است . این روش متداول ترین روش سازماندهی رکوردهاست . ( ثابت بودن طول رکورد الزاما به معنای ثابت بودن طول فیلدهای تشکیل دهنده نیست . )
۲) تعیین طول رکوردها بر حسب تعداد فیلد های ان :
در این روش طول رکورد از n فیلد تشکیل میشود . منتهی این n در کل فایل یکی است .
۳) ذخیره طول رکورد در اول هر رکورد :
در این روش طول هر رکورد در ابتدای رکورد ذکر میشود . این روش برای فایلهایی به کار میرود که اغلب رکوردهای با طول متغیر دارند .
۴) استفاده از اندیس برای اشاره به ابتدای هر رکورد :
اندیس ها در فایل دیگری نگهداری میشوند و مقادیر در فایل دیگری .
هر یک از اعداد ۱و۲۱و۳۴ در فایل دیگری هستند که به ابتدای هر رکورد در فایل دیگر اشاره میکنند .
۵) استفاده از علامتی برای جدا کردن رکوردها .
در این روش با استفاده از یک علامت خاص میتوان رکوردها را از هم جدا کرد
با توجه به سازماندهی هایی که در بالا برای رکورد تعریف کردیم . میتوانیم به این نتیجه برسیم که کلا دو نوع ساختار برای رکوردها داریم :
۱) رکورد با قالب ثابت و مکانی که تعداد ‚ مکان و طول فیلدها در نمونه های مختلف ثابت بوده و تعریف این ساختار از قبل مشخص شده است .
۲) رکورد با قالب غیر ثابت و غیر مکانی که در هر فیلد اسم هر فیلد و مقدار هر فیلد مشخص میشود .
روش مناسب انستکه این نکته که طول هر رکورد ممکن است متحرک شود را در نظر بگیریم .
متحرک بودن طول رکورد به دلایل زیر است :
الف) طول بعضی فیلدها ممکن است متغیر باشد .
ب) تعداد فیلدهای یک رکورد متغیر باشد ( مثلا دانشجویی آدرس نداشته باشد . )
رکورد را میتوان از سه دیدگاه مدنظر قرار داد :
الف) رکورد در سطح انتزاعی abstractive که رکورد را مستفل از جنبه های نمایش ان و به صورت کلی نگاه میکنیم .
ب) رکورد از دیدگاه برنامه نویس که در سطح منطقی logical قرار میگیرد .
این رکورد توسط برنامه نویس در برنامه تعریف میشود .
ج) رکورد ذخیره شده stored که از نظر فیزیکی مدنظر قرار میگیرد که رکورد در کجا به چه صورتی ذخیره شده است .
رکورد منطقی طراحی شده توسط برنامه نویس ان چیزیستکه برنامه نویس میبیند . حال انکه در سطح فیزیکی رکورد ممکن است اطلاعات دیگری نیز به ان اضافه شود و ساختار رکورد را برای ذخیره در حافظه تغییر دهد . معمولا رکوردها در سطح فیزیکی اطلاعاتی کنترلی و داده ای نیز خواهند داشت . بخش کنترلی اغلب پیشوندی است . که به ان بخش غیر داده ای meta section نیز میگویند . بخش کنترلی نیز توسط سیستم فایل استفاده میشود و از دید برنامه مخفی است .
در بخش کنترلی اطلاعاتی نظیر : طول رکورد . نوع رکورد . اشاره گرها . پرچمهای عملیاتی و حفاظتی . اطلاعاتی خاص ویژه بعضی ساختارها ذخیره میشود .
طول رکورد ممکن است متغیر باشد و اگر ثابت بود نیازی به طول رکورد نداریم .
نوع رکورد در بعضی فایلهای Multi type چند نوعی مهم است . چرا که در این فایلها ممکن است رکوردهای دو نوع موجودیت با هم حفظ شود مثل رکورد اطلاعات استاد و دانشجو باهم . که باید مشخص شود این اطلاعات مربوط به کدامیک است ؟ به فایلهایی که تنها یک نوع رکورد ذخیره میکنند Mono Type گویند .
اشاره گر وظیفه ارتباط منطقی رکورد ها را دارد . چرا که در هنگام ذخیره رکورد به حالت فیزیکی الزاما شبیه به حالت منطقی عملیات ذخیره سازی صورت نمیگیرد . بنابراین با استفاده از اشاره گر ها باید انها را به هم متصل کرد . ( خانه های یک ارایه روی کاغذ کنار یکدیگرند . درحالیکه در هارددیسک به این ترتیب کنار هم قرار نمیگیرند . ) نحوه کنار هم قرار گرفتن خانه های یک ارایه در هارددیسک نحوه قرار گرفتن فیزیکی ان و نحوه قرار گرفتن انها روی کاغذ نحوه منطقی است .
پرچمهای حفاظتی برای نشان دادن عملیاتی که قرار است بر رکورد انجام شود یا شده اند به کار میروند .
این فلگها flag بر دو گونه اند : فلگهایی برای حق دستیابی برای خواندن . حق دستیابی برای نوشتن ( شامل : ایجاد – ویرایش – حذف )
فلگهای (پرچمها) عملیاتی برای نشان دادن عملیاتی است که قرار است روی رکورد انجام شود . یا نشان دادن عملیاتی که روی رکورد انجام شده است .
فرضا قرار است رکوردی حذف شود . عملیات به این صورت خواهد بود که با قرار دادن علامتی خاص بر سر رکورد فرضا ۱ ان رکورد حذف منطقی میشود . سپس در فرصت مناسب ان رکورد حذف فیزیکی میشود . مثلا ممکن است با پرچمی مشخص کنیم که کاربر تنها میتواند ان رکورد را بخواند read only و نه تغییر دهد .
● اطلاعات ویژه بعضی ساختارها :
در ساختارهای فایلها گاهی اوقات لازم است اطلاعات خاصی بر انها اورده شود که در فصول اینده توضیح خواهیم داد . مثلا در یک رکورد باید این اطلاع باشد که این رکورد رکورد انتهایی فایل است .
▪ کلید Key :
صفت خاصه یا ترکیبی از چند صفت خاصه که در طول حیات فایل (File Life Cycle) نمونه منحصر بفردی از نمونه های موجودیتهای مختلف در فایل باشد را کلید میگوییم . همیشه سعی میشود صفت خاصه ای بعنوان کلید قرار بگیرد که کوتاهترین طول را دارد .
هرگاه چند کلید رکورد داشته باشیم . کلید رکورد اصلی را کلیدی در نظر میگیریم که کوتاهتر است و به ان اصطلاحا Primary Key : PK و به دیگر کلیدها Secondry Key : SK میگوییم
▪ کلید خارجی Foreign Key :
صفت خاصه ای از موجودیت ( رکورد) است که بعنوان کلید شناخته شده است . منتهی این صفت خاصه تنها برای یکتا کردن مقدار موجودیت بوجود امده است و از اول جزء صفات موجودیتهای ما نبوده است .
مثلا فیلد شماره دانشجویی در یک موجودیت کلید فایلی است که بوجود امده است نه انکه از قبل بوده باشد . مثلا در صفات یک دانشجو اگر شماره شناسنامه بعنوان کلید قرار بگیرد چون از قبل جز صفات بوده است دیگر کلید خارجی نیست .
منبع : میکرو رایانه


همچنین مشاهده کنید