حسن صفوی
شنبه 01 اسفند 1383, 14:08 عصر
با سلام خدمت شما خواننده محترم و از اینکه این مقاله (که بیش از 100 قسمت دارد) را انتخاب کردید ممنونم. هدفم از نوشتن این مقاله تجزیه و تحلیل سیستم و ساختار فایل ها در حیطه مهندسی فایل هست. مهندسی فایل خود بخشی از مهندسی داده ها است .سعی می کنم نکات ریز را بطور کامل بررسی کنم و چیزی احیانا از قلم نیفتد.آگاهی از این موضوعات برای یک برنامه نویس (بخصوص برنامه نویس سیستم) خیلی لازم هست و آگاهانه تر می تواند برنامه نویسی کند و در "کاربرد" مورد نظرش بهتر می تواند از سیستم فایل استفاده کند.
سیستم فایل :
قبل از ورود به موضوعات اصلی ابتدا به شرح برخی از مفاهیم مقدماتی می پردازیم که پیوسته در مبا حث سیستم فایل مطرح می شوند . این مفاهیم عبارت اند از : فیلد و اطلاع و رکورد و فایل و ....
فیلد : به مکان ذخیره سازی یک واحد معنایی داده (Semantic data unit) و نامدار (یک فقره اطلاع ) را فیلد گوییم.واحد معنایی داده حالت تجزیه ناپذیری (اتومیستی) دارد یا به بیان دیگر اگر آن را تجزیه کنیم اجزا حاصله در یک حیطه معنای مشخص فا قد معنا می باشد. طول این واحد حد اقل یک کاراکتر ( گاه یک بیت) هست و حداکثر طول آن بستگی به سیستم فایل و زبان برنامه سازی ای دارد که از آن استفاده می کنیم. گاه یک فیلد می تواند از اجزاء کوچکتری تشکیل شده باشد که آن را فیلد مرکب می نامیم ولی اگر کلمه فیلد را به تنهایی بکار بریم منظور همان فیلد ساده هست.
محیط عملیاتی : به محیطی که در رابطه با آن می خواهیم یک سری داده ذخیره کنیم را محیط عملیاتی گویند .
توجه : اصطلاح " خرد جهان واقع " نیز هم معنی محیط عملیاتی هست.
هر محیط عملیاتی از چند موجودیت تشکیل شده مثلا یک اداره از کارمندان ورئیس و غیره تشکیل شده است .
انواع موجودیت ها توسط صفات خاصه مربوط به هر یک از سایر موجودیت ها متمایز می گردنند. مثلا صفت خاصه یک کارمند می تواند اسم و فامیل و قدمت کار و ... باشد.
اطلاع : هر صفت خاصه از دو مولفه تشکیل شده است : یکی اسم صفت خاصه و دیگری مقدار آن مثلا "نام خانوادگی " اسم صفت خاصه است ولی "رضایی" مقدارآن هست.
رکورد :رکورد را می توان از سه دیدگاه بررسی کرد ولی مفهوم کلی آن چنین است:
مجموعه ای از فیلد ها تشکیل رکورد می دهند و همچنین رکورد واحد پردازش فایل از دید برنامه فایل پرداز هست.
برنامه فایل پرداز یا همان پردازشگر فایل نرم افزاری هست که می تواند کار هایی از جمله باز کردن فایل ساختن فایل و همچنین ویرایش فایل مربوط به خود را انجام بدهد مثلا نرم افزار ورد پردازشگر فایل های متنی می باشد.
اگر بخواهیم به موضوع ریزترنگاه کنیم رکورد را می توانیم از سه دیدگاه بررسی کنیم:
رکورد : در سطح انتزاعی
رکورد :در سطح برنامه کاربر
رکورد : در محیط ذخیره سازی
رکورد در سطح انتزاعی :
مجموعه اطلا عاتی هست که در مورد هر یک از نمونه های متمایز یک یا بیش از یک نوع موجودیت از یک خرد جهان واقع می خواهیم داشته باشیم.
اصطلاح خرد جهان واقع را به تفسیر بیشتر بررسی می کنیم:
خرد جهان واقع منظور از جهان بیرونی و محسوس وبه بیان دیگر هر محیطی که در آن فعالیت های داده داری و داده پردازی انجام می شود به منظور رفع مجموعه ای مشخص از نیازهای اطلاعاتی.
رکورد از دید برنامه نویس :
رکورد از این دید در اساس همان مجموعه اطلاعات هست و رکورد از این دید را رکورد منطقی می گوییم و چنین تعریف می کنیم:
مجموعه ای است دارای ساختار مشخص و نامدار از تعدادی فیلد.
رکورد در محیط ذخیره سازی :
در این سطح رکورد علاوه بر داده هایی که دارد ممکن هست بخش دیگری موسوم به بخش غیر داده ای هم داشته باشد.
بخش غیر داده ای حاوی اطلاعاتی هست که سیستم فایل برای پر دازش رکورد به آن ها نیاز دارد.این بخش معمولا از تعدادی فیلد تشکیل شده است که در سیستم ها و ساختار های گوناگون فایل متفاوت هست.این بخش به بخش پیشوندی یا سیستمی یا بخش کنترل نیز موسوم است در این بخش به طور کلی اطلاعات زیر ذخیره می شود.
1- طول رکورد
2- نوع رکورد
3- اشاره گر ها
4- فلاگ های عملیاتی
5- فلاگ های حفا ظتی
6- اطلاع های خاص در بعضی از ساختار ها
اینک به شرح هر یک از موارد فوق می پردازیم:
فیلد حاوی طول رکورد :
وقتی که رکورد ها طول متغیر دارند در نظر گرفتن فیلدی برای درج طول یکی از تکنیک های مشخص کردن محدوده رکورد است.در مورد رکورد ها با طول ثابت نیازی به استفاده از این فیلد نیست.
بعدا دلایل متغیر شدن طول رکورد را نیز بررسی می کنیم.
فیلد حاوی نوع رکورد :
در فایل های حاوی بیش از یک نوع رکورد فیلدی برای درج کد نوع در نظر گرفته می شود . برای روشن تر شدن مو ضوع به تعریف فایل رجوع شود.که فایل های تک نوعی و چند نوعی وجود دارد.
فیلد های حاوی اشاره گرها :
برای پیاده سازی منطقی فایل ها (ارتباط ساختاری بین رکورد ها ) وایجاد ساختار فیزیکی از اشاره گر استفاده می شودو البته لزوما در هر ساختاری چنین نیست.اشاره گر اساسا آدرسی است که در فیلدی جای داده می شود و از نقطه ای از فایل مکان "داده ای" را در نقطه دیگر نشان می دهد.
هر اشاره گر (نشانه رو) دارای یک آدرس مبدا و یک مقصد است که به گونه های زیر می توانند تشکیل شوند.
رکورد به رکورد
رکورد به بلاک
بلاک به بلاک
بلاک به رکورد
گروهی از بلاک ها به گروه دیگر
فایل به فایل
(توجه : به مجموعه چند رکورد بلاک گویند که معمولا واحد انتقال داده از فایل به بافر است جزئیات بیشتر در بخش مربوط به بلاک ها گفته می شود)
از نشانه رو ها (اشاره گر ها) برای نشان دادن رکورد بعدی قبلی ویا رکورد سرایند و ... استفاده می شوند.
نشانه رو ها از نظر نوع نشانی بر سه نوعند:
1- نشانی در سطح فیزیکی که سیستم تولید می کند
2- نشانی نسبی :این نوع نشانی نهایتا تبدیل به نشانی فیزیکی می شود
3- شناسه رکورد :که نوعی اشاره گر ضمنی است.
برای درک بهتر از اشاره گر ها به بخش ساختار های منطقی و فیزیکی فایل رجوع شود.
فیلد (های ) حاوی فلاگ (های ) عملیات:
می دانیم که فلاگ(پرچم) تعدادی بیت یا بایت است حاوی اطلا عات وضعیتی و راهنما و به منظورهای مختلفی استفاده می شود.
در سیستم فایل فلاگ عملیاتی به دو منظور بکار می رود:
1- برای نشان دادن عملی که قرار است روی رکورد انجام شود.
2- برای نشان دادن عملی که روی رکورد انجام شده است.
فیلد های حاوی فلاگ های حفا ظتی :
در این فیلد درج می شود تا رکورد را از دستیابیهای غیر مجاز مصون بدارد. به این فلاگ گاه قفل در سطح رکورد نیز می گویند.به گونه ای که تنها کاربر مجاز میتواند به اطلا عات در آن رکورد دستیابی داشته باشد.
خب در این قسمت به تفسیر فیلد و رکورد پرداختیم در قسمت آیند ساختار های مربوط به فیلد و رکورد و همچنین تعریف فایل وکلید رکورد و دیگر موضوعات می پردازیم.
سیستم فایل :
قبل از ورود به موضوعات اصلی ابتدا به شرح برخی از مفاهیم مقدماتی می پردازیم که پیوسته در مبا حث سیستم فایل مطرح می شوند . این مفاهیم عبارت اند از : فیلد و اطلاع و رکورد و فایل و ....
فیلد : به مکان ذخیره سازی یک واحد معنایی داده (Semantic data unit) و نامدار (یک فقره اطلاع ) را فیلد گوییم.واحد معنایی داده حالت تجزیه ناپذیری (اتومیستی) دارد یا به بیان دیگر اگر آن را تجزیه کنیم اجزا حاصله در یک حیطه معنای مشخص فا قد معنا می باشد. طول این واحد حد اقل یک کاراکتر ( گاه یک بیت) هست و حداکثر طول آن بستگی به سیستم فایل و زبان برنامه سازی ای دارد که از آن استفاده می کنیم. گاه یک فیلد می تواند از اجزاء کوچکتری تشکیل شده باشد که آن را فیلد مرکب می نامیم ولی اگر کلمه فیلد را به تنهایی بکار بریم منظور همان فیلد ساده هست.
محیط عملیاتی : به محیطی که در رابطه با آن می خواهیم یک سری داده ذخیره کنیم را محیط عملیاتی گویند .
توجه : اصطلاح " خرد جهان واقع " نیز هم معنی محیط عملیاتی هست.
هر محیط عملیاتی از چند موجودیت تشکیل شده مثلا یک اداره از کارمندان ورئیس و غیره تشکیل شده است .
انواع موجودیت ها توسط صفات خاصه مربوط به هر یک از سایر موجودیت ها متمایز می گردنند. مثلا صفت خاصه یک کارمند می تواند اسم و فامیل و قدمت کار و ... باشد.
اطلاع : هر صفت خاصه از دو مولفه تشکیل شده است : یکی اسم صفت خاصه و دیگری مقدار آن مثلا "نام خانوادگی " اسم صفت خاصه است ولی "رضایی" مقدارآن هست.
رکورد :رکورد را می توان از سه دیدگاه بررسی کرد ولی مفهوم کلی آن چنین است:
مجموعه ای از فیلد ها تشکیل رکورد می دهند و همچنین رکورد واحد پردازش فایل از دید برنامه فایل پرداز هست.
برنامه فایل پرداز یا همان پردازشگر فایل نرم افزاری هست که می تواند کار هایی از جمله باز کردن فایل ساختن فایل و همچنین ویرایش فایل مربوط به خود را انجام بدهد مثلا نرم افزار ورد پردازشگر فایل های متنی می باشد.
اگر بخواهیم به موضوع ریزترنگاه کنیم رکورد را می توانیم از سه دیدگاه بررسی کنیم:
رکورد : در سطح انتزاعی
رکورد :در سطح برنامه کاربر
رکورد : در محیط ذخیره سازی
رکورد در سطح انتزاعی :
مجموعه اطلا عاتی هست که در مورد هر یک از نمونه های متمایز یک یا بیش از یک نوع موجودیت از یک خرد جهان واقع می خواهیم داشته باشیم.
اصطلاح خرد جهان واقع را به تفسیر بیشتر بررسی می کنیم:
خرد جهان واقع منظور از جهان بیرونی و محسوس وبه بیان دیگر هر محیطی که در آن فعالیت های داده داری و داده پردازی انجام می شود به منظور رفع مجموعه ای مشخص از نیازهای اطلاعاتی.
رکورد از دید برنامه نویس :
رکورد از این دید در اساس همان مجموعه اطلاعات هست و رکورد از این دید را رکورد منطقی می گوییم و چنین تعریف می کنیم:
مجموعه ای است دارای ساختار مشخص و نامدار از تعدادی فیلد.
رکورد در محیط ذخیره سازی :
در این سطح رکورد علاوه بر داده هایی که دارد ممکن هست بخش دیگری موسوم به بخش غیر داده ای هم داشته باشد.
بخش غیر داده ای حاوی اطلاعاتی هست که سیستم فایل برای پر دازش رکورد به آن ها نیاز دارد.این بخش معمولا از تعدادی فیلد تشکیل شده است که در سیستم ها و ساختار های گوناگون فایل متفاوت هست.این بخش به بخش پیشوندی یا سیستمی یا بخش کنترل نیز موسوم است در این بخش به طور کلی اطلاعات زیر ذخیره می شود.
1- طول رکورد
2- نوع رکورد
3- اشاره گر ها
4- فلاگ های عملیاتی
5- فلاگ های حفا ظتی
6- اطلاع های خاص در بعضی از ساختار ها
اینک به شرح هر یک از موارد فوق می پردازیم:
فیلد حاوی طول رکورد :
وقتی که رکورد ها طول متغیر دارند در نظر گرفتن فیلدی برای درج طول یکی از تکنیک های مشخص کردن محدوده رکورد است.در مورد رکورد ها با طول ثابت نیازی به استفاده از این فیلد نیست.
بعدا دلایل متغیر شدن طول رکورد را نیز بررسی می کنیم.
فیلد حاوی نوع رکورد :
در فایل های حاوی بیش از یک نوع رکورد فیلدی برای درج کد نوع در نظر گرفته می شود . برای روشن تر شدن مو ضوع به تعریف فایل رجوع شود.که فایل های تک نوعی و چند نوعی وجود دارد.
فیلد های حاوی اشاره گرها :
برای پیاده سازی منطقی فایل ها (ارتباط ساختاری بین رکورد ها ) وایجاد ساختار فیزیکی از اشاره گر استفاده می شودو البته لزوما در هر ساختاری چنین نیست.اشاره گر اساسا آدرسی است که در فیلدی جای داده می شود و از نقطه ای از فایل مکان "داده ای" را در نقطه دیگر نشان می دهد.
هر اشاره گر (نشانه رو) دارای یک آدرس مبدا و یک مقصد است که به گونه های زیر می توانند تشکیل شوند.
رکورد به رکورد
رکورد به بلاک
بلاک به بلاک
بلاک به رکورد
گروهی از بلاک ها به گروه دیگر
فایل به فایل
(توجه : به مجموعه چند رکورد بلاک گویند که معمولا واحد انتقال داده از فایل به بافر است جزئیات بیشتر در بخش مربوط به بلاک ها گفته می شود)
از نشانه رو ها (اشاره گر ها) برای نشان دادن رکورد بعدی قبلی ویا رکورد سرایند و ... استفاده می شوند.
نشانه رو ها از نظر نوع نشانی بر سه نوعند:
1- نشانی در سطح فیزیکی که سیستم تولید می کند
2- نشانی نسبی :این نوع نشانی نهایتا تبدیل به نشانی فیزیکی می شود
3- شناسه رکورد :که نوعی اشاره گر ضمنی است.
برای درک بهتر از اشاره گر ها به بخش ساختار های منطقی و فیزیکی فایل رجوع شود.
فیلد (های ) حاوی فلاگ (های ) عملیات:
می دانیم که فلاگ(پرچم) تعدادی بیت یا بایت است حاوی اطلا عات وضعیتی و راهنما و به منظورهای مختلفی استفاده می شود.
در سیستم فایل فلاگ عملیاتی به دو منظور بکار می رود:
1- برای نشان دادن عملی که قرار است روی رکورد انجام شود.
2- برای نشان دادن عملی که روی رکورد انجام شده است.
فیلد های حاوی فلاگ های حفا ظتی :
در این فیلد درج می شود تا رکورد را از دستیابیهای غیر مجاز مصون بدارد. به این فلاگ گاه قفل در سطح رکورد نیز می گویند.به گونه ای که تنها کاربر مجاز میتواند به اطلا عات در آن رکورد دستیابی داشته باشد.
خب در این قسمت به تفسیر فیلد و رکورد پرداختیم در قسمت آیند ساختار های مربوط به فیلد و رکورد و همچنین تعریف فایل وکلید رکورد و دیگر موضوعات می پردازیم.