ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

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

 
Post new topic   Reply to topic    ParsX.com Forum Index -> ذخيره و بازيابي اطلاعات - سيستم و ساختار فايلها
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Tue Apr 19, 2005 4:57 pm    Post subject: مفاهیم اولیه سیستم فایل Reply with quote

نوع موجوديت entity type :
به هر چيزي در اطراف محيط ما اعم از افراد اشيا و هر پديده اي كه ميتوانيم در رابطه با انها اطلاع داشته باشيم موجوديت گفته ميشود . هر موجوديت ميتواند نوع گونه اي در سطح طبقاتي خود داشته باشد كه به ان نوع موجوديت entity type گوييم . مثلا نوع موجوديت گوسفند حيوان است .
محيط عملياتي يا خرد جهان واقع semantec data unit :
به محيطي گفته ميشود كه ميخواهيم در رابطه با ان محيط يك سري داده ها را ذخيره بازيابي و پردازش كنيم .
مثلا اگر محيط عملياتي كلاس درس باشد . موجوديتهاي ان كلاس اعم از دانشجو استاد و صندليها از محيط عملياتي اطلاعاتي به ماميدهند .
صفات خاصه attribute :
انواع موجوديت ها entity types توسط صفات خاصه مربوط به خودشان از يكديگر متمايز ميشوند . به عبارت ديگر عاملي كه مسبب تمايز دو موجوديت در يك محيط عملياتي ميشود صفت خاصه ان موجوديت است .
مثلا صفت خاصه استاد : مدرك . سابقه تحصيل . درجه استادي . نام . نام خانوادگي ميتواند باشد .
اطلاع :‌
هر صفت خاصه از دو مولفه تشكيل ميشود :‌ اسم صفت خاصه ‍و مقدار صفت خاصه .
به مجموعه اين دو مولفه صفت خاصه گوييم . كه منجر به وجود اطلاع در مورد ان موجوديت ميشود . اطلاع توسط انسان يا ماشين ذخيره بازيابي و پردازش ميشود .
در مثال زير نام درس : اسم صفت خاصه است و ذخيره وبازيابي اطلاعات مقدار صفت خاصه است .
نام درس = ذخيره و بازيابي اطلاعات
فيلد :‌ به مكان ذخيره شدن يك واحد معنادار ( فقره اطلاع) فيلد گوييم . فيلد كوچكترين واحد اطلاعات در فايل است كه معنايي منطقي دارد .
ركورد :‌ به مجموعه اي از فيلدهاي مربوط به يك نوع موجوديت در يك محيط عملياتي ركورد گويند .
مثلا به مجموعه فيلدهاي : نام – نام خانوادگي – مدرك – ادرس ركورد گوييم . واحد پردازش فايل است از ديد پردازشگر فايل .
فايل :‌مجموعه ركوردها فايل را ميسازد .
ساختارهاي فيلد :
براي مشخص كردن فيلدها در ركوردها راههاي مختلفي وجود دارد :
1.قراردادن فيلدها در طولهاي از قبل تعيين شده و ثابت :
مثلا در ساختار يك ركورد تعيين ميكنيم كه طول فيلد هاي زير به ترتيب چقدر است :
نام – نام خانوادگي – ادرس – معدل – رشته
15بايت-25بايت – 50 بايت – 4 بايت – 5 بايت .
در روش استفاده شده در مثال فوق يعن استفاده از روش بصورتيكه طول فيلد قبلا تعريف شده باشد مشكلاتي به چشم ميخورد :‌
يك ايراد اين روش انستكه براي رساندن فيلدها به طول تعيين شده در صورتيكه طول داده ما در فيلد به سايز فيلد نميرسد ميبايست از فضاي خالي جهت رساندن فيلد به طول تعريف شده استفاده كرد كه اين روش باعث اتلاف حافظه و بزرگ شدن فايل ميشود .
همچنين ممكن است داده ها در آينده بزرگتر از اندازه تعيين شده براي فيلد شوند .
در ضمن استفاده از اين روش براي فيلدهايي كه قرار است مقداري مانند آدرس يا نام يا نام خانوادگي را نگهداري كند مشكل بنظر ميرسد چراكه ممكن است آدرس در آينده تغيير كند و در اندازه فعلي فيلد جا نشود . اما استفاده از اين روش براي چيزهايي كه اندازه معيني دارند مانند معدل يا نمرات افراد روش مناسبي است .
2.قرار دادن طول فيلد در ابتداي هر فيلد . مثال زير را ببينيد :
03ali13aghamohammadi08engineer
04amir07azemati06doctor

3. استفاده از يك كاراكتر ويژه (حدفاصل delimiter) براي مشخص كردن پايان هر فيلد :
ali,aghamohammadi,engineer
amir,azemati,doctor

4. به كاربردن نام هر فيلد در مقابل هر فيلد .
name=vahid,family=aghamohammadi
name=amir,family=aghamohammadi

مزيت اين ساختار توانايي جابجايي فيلدها در يك ركورد است و همچنين اگر فيلدي مقداري نداشته باشد نام ان نيز ذكر نميشود . اما مشكلي كه اين روش دارد انستكه در اين روش استفاده از نام هر فيلد ميتواند فضاي زيادي را مصرف كند .

ساختارهاي ركورد ها :
بعضي از روشهاي سازماندهي به ركوردها عبارتند از :
1.ركوردهاي با طول ثابت :
در اين روش طول ركوردها در تمامي فايل يكسان است . اين روش متداول ترين روش سازماندهي ركوردهاست . ( ثابت بودن طول ركورد الزاما به معناي ثابت بودن طول فيلدهاي تشكيل دهنده نيست . )
2. تعيين طول ركوردها بر حسب تعداد فيلد هاي ان :
در اين روش طول ركورد از n فيلد تشكيل ميشود . منتهي اين n در كل فايل يكي است . در مثال زير n=4 است :
vahid,aghamohammadi,engineer,arash,kiyani,doctor
3. ذخيره طول ركورد در اول هر ركورد :
در اين روش طول هر ركورد در ابتداي ركورد ذكر ميشود . اين روش براي فايلهايي به كار ميرود كه اغلب ركوردهاي با طول متغير دارند .
4. استفاده از انديس براي اشاره به ابتداي هر ركورد :
انديس ها در فايل ديگري نگهداري ميشوند و مقادير در فايل ديگري . مثال زير را ببينيد :
vahid,aghamohammadi,ali,moosavi,mohammad,rezaiee
1,21,34
هر يك از اعداد 1و21و34 در فايل ديگري هستند كه به ابتداي هر ركورد در فايل ديگر اشاره ميكنند .
5. استفاده از علامتي براي جدا كردن ركوردها .
در اين روش با استفاده از يك علامت خاص ميتوان ركوردها را از هم جدا كرد :
vahid,aghamohammadi|ali,moosavi|mohammad,rezaiee
با توجه به سازماندهي هايي كه در بالا براي ركورد تعريف كرديم . ميتوانيم به اين نتيجه برسيم كه كلا دو نوع ساختار براي ركوردها داريم :
Quote:
1. ركورد با قالب ثابت و مكاني كه تعداد ‚ مكان و طول فيلدها در نمونه هاي مختلف ثابت بوده و تعريف اين ساختار از قبل مشخص شده است .
2. ركورد با قالب غير ثابت و غير مكاني كه در هر فيلد اسم هر فيلد و مقدار هر فيلد مشخص ميشود .
روش مناسب انستكه اين نكته كه طول هر ركورد ممكن است متحرك شود را در نظر بگيريم . متحرك بودن طول ركورد به دلايل زير است :
الف- طول بعضي فيلدها ممكن است متغير باشد .
ب-تعداد فيلدهاي يك ركورد متغير باشد ( مثلا دانشجويي آدرس نداشته باشد . )
ركورد را ميتوان از سه ديدگاه مدنظر قرار داد :
الف) ركورد در سطح انتزاعي abstractive كه ركورد را مستفل از جنبه هاي نمايش ان و به صورت كلي نگاه ميكنيم .
ب) ركورد از ديدگاه برنامه نويس كه در سطح منطقي logical قرار ميگيرد .
اين ركورد توسط برنامه نويس در برنامه تعريف ميشود .
ج) ركورد ذخيره شده stored كه از نظر فيزيكي مدنظر قرار ميگيرد كه ركورد در كجا به چه صورتي ذخيره شده است .
ركورد منطقي طراحي شده توسط برنامه نويس ان چيزيستكه برنامه نويس ميبيند . حال انكه در سطح فيزيكي ركورد ممكن است اطلاعات ديگري نيز به ان اضافه شود و ساختار ركورد را براي ذخيره در حافظه تغيير دهد . معمولا ركوردها در سطح فيزيكي اطلاعاتي كنترلي و داده اي نيز خواهند داشت . بخش كنترلي اغلب پيشوندي است . كه به ان بخش غير داده اي meta section نيز ميگويند . بخش كنترلي نيز توسط سيستم فايل استفاده ميشود و از ديد برنامه مخفي است .
در بخش كنترلي اطلاعاتي نظير : طول ركورد . نوع ركورد . اشاره گرها . پرچمهاي عملياتي و حفاظتي . اطلاعاتي خاص ويژه بعضي ساختارها ذخيره ميشود .
طول ركورد ممكن است متغير باشد و اگر ثابت بود نيازي به طول ركورد نداريم .
نوع ركورد در بعضي فايلهاي Multi type چند نوعي مهم است . چرا كه در اين فايلها ممكن است ركوردهاي دو نوع موجوديت با هم حفظ شود مثل ركورد اطلاعات استاد و دانشجو باهم . كه بايد مشخص شود اين اطلاعات مربوط به كداميك است ؟ به فايلهايي كه تنها يك نوع ركورد ذخيره ميكنند Mono Type گويند .
اشاره گر وظيفه ارتباط منطقي ركورد ها را دارد . چرا كه در هنگام ذخيره ركورد به حالت فيزيكي الزاما شبيه به حالت منطقي عمليات ذخيره سازي صورت نميگيرد . بنابراين با استفاده از اشاره گر ها بايد انها را به هم متصل كرد . ( خانه هاي يك ارايه روي كاغذ كنار يكديگرند . درحاليكه در هاردديسك به اين ترتيب كنار هم قرار نميگيرند . ) نحوه كنار هم قرار گرفتن خانه هاي يك ارايه در هاردديسك نحوه قرار گرفتن فيزيكي ان و نحوه قرار گرفتن انها روي كاغذ نحوه منطقي است .
پرچمهاي حفاظتي براي نشان دادن عملياتي كه قرار است بر ركورد انجام شود يا شده اند به كار ميروند . اين فلگها بر دو گونه اند : فلگهايي براي حق دستيابي براي خواندن . حق دستيابي براي نوشتن ( شامل : ايجاد – ويرايش – حذف )
فلگهاي (پرچمها) عملياتي براي نشان دادن عملياتي است كه قرار است روي ركورد انجام شود . يا نشان دادن عملياتي كه روي ركورد انجام شده است .
فرضا قرار است ركوردي حذف شود . عمليات به اين صورت خواهد بود كه با قرار دادن علامتي خاص بر سر ركورد فرضا 1 ان ركورد حذف منطقي ميشود . سپس در فرصت مناسب ان ركورد حذف فيزيكي ميشود . مثلا ممكن است با پرچمي مشخص كنيم كه كاربر تنها ميتواند ان ركورد را بخواند read only و نه تغيير دهد .
اطلاعات ويژه بعضي ساختارها :
در ساختارهاي فايلها گاهي اوقات لازم است اطلاعات خاصي بر انها اورده شود كه در فصول اينده توضيح خواهيم داد . مثلا در يك ركورد بايد اين اطلاع باشد كه اين ركورد ركورد انتهايي فايل است .
كليد Key :
صفت خاصه يا تركيبي از چند صفت خاصه كه در طول حيات فايل (File Life Cycle) نمونه منحصر بفردي از نمونه هاي موجوديتهاي مختلف در فايل باشد را كليد ميگوييم . هميشه سعي ميشود صفت خاصه اي بعنوان كليد قرار بگيرد كه كوتاهترين طول را دارد .
هرگاه چند كليد ركورد داشته باشيم . كليد ركورد اصلي را كليدي در نظر ميگيريم كه كوتاهتر است و به ان اصطلاحا Primary Key : PK و به ديگر كليدها Secondry Key : SK ميگوييم
. با كليدها و انواع انها در درس پايگاه داده ها اشنا خواهيد شد .
كليد خارجي Foreign Key :
صفت خاصه اي از موجوديت ( ركورد) است كه بعنوان كليد شناخته شده است . منتهي اين صفت خاصه تنها براي يكتا كردن مقدار موجوديت بوجود امده است و از اول جزء صفات موجوديتهاي ما نبوده است .
مثلا فيلد شماره دانشجويي در يك موجوديت كليد فايلي است كه بوجود امده است نه انكه از قبل بوده باشد . مثلا در صفات يك دانشجو اگر شماره شناسنامه بعنوان كليد قرار بگيرد چون از قبل جز صفات بوده است ديگر كليد خارجي نيست .
Back to top
sama
مهمون يكي دو روزه


Joined: 24 Dec 2006
Posts: 6

PostPosted: Mon Dec 25, 2006 4:39 pm    Post subject: Reply with quote

سلام
دستتون درد نکنه . فقط بی زحمت بقیه مطالب مربوط به فایل ها رو هم بیارین ...
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> ذخيره و بازيابي اطلاعات - سيستم و ساختار فايلها All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum